From 66cd1dbd3e007da9d6c20b03cc38d4fa3d0c5e8b Mon Sep 17 00:00:00 2001 From: SuspiciousActivity <38253929+SuspiciousActivity@users.noreply.github.com> Date: Sun, 8 Jul 2018 14:39:06 +0200 Subject: [PATCH] Added code folding and formatted all files --- src/me/ByteEdit/main/Assembler.java | 1702 +- src/me/ByteEdit/main/ClassUtil.java | 582 +- .../ByteEdit/main/CustomBufferedReader.java | 5 +- src/me/ByteEdit/main/Disassembler.java | 442 +- .../main/ExternalTypeEnumeration.java | 23 +- .../ByteEdit/main/JavaAssemblyTokenMaker.java | 4510 +- src/me/ByteEdit/main/Main.java | 168 +- src/me/ByteEdit/main/OpcodesReverse.java | 1880 +- src/me/ByteEdit/main/OptionBox.java | 13 +- src/me/ByteEdit/main/SearchBox.java | 27 +- src/org/fife/io/DocumentReader.java | 115 +- src/org/fife/io/UnicodeReader.java | 205 +- src/org/fife/io/UnicodeWriter.java | 188 +- src/org/fife/print/RPrintUtilities.java | 522 +- .../ui/autocomplete/AbstractCompletion.java | 90 +- .../AbstractCompletionProvider.java | 140 +- .../autocomplete/AutoCompleteDescWindow.java | 294 +- .../autocomplete/AutoCompletePopupWindow.java | 513 +- .../fife/ui/autocomplete/AutoCompletion.java | 650 +- .../ui/autocomplete/AutoCompletionEvent.java | 39 +- .../autocomplete/AutoCompletionListener.java | 14 +- .../AutoCompletionStyleContext.java | 41 +- .../fife/ui/autocomplete/BasicCompletion.java | 100 +- src/org/fife/ui/autocomplete/Completion.java | 97 +- .../autocomplete/CompletionCellRenderer.java | 444 +- .../ui/autocomplete/CompletionListModel.java | 39 +- .../ui/autocomplete/CompletionProvider.java | 132 +- .../autocomplete/CompletionProviderBase.java | 116 +- .../ui/autocomplete/CompletionXMLParser.java | 243 +- .../DefaultCompletionProvider.java | 212 +- .../autocomplete/DelegatingCellRenderer.java | 53 +- .../ui/autocomplete/DescWindowCallback.java | 17 +- src/org/fife/ui/autocomplete/EmptyIcon.java | 29 +- .../ui/autocomplete/ExternalURLHandler.java | 33 +- src/org/fife/ui/autocomplete/FastListUI.java | 94 +- .../ui/autocomplete/FunctionCompletion.java | 199 +- .../LanguageAwareCompletionProvider.java | 208 +- .../fife/ui/autocomplete/LinkRedirector.java | 13 +- .../ui/autocomplete/MarkupTagCompletion.java | 113 +- .../autocomplete/OutlineHighlightPainter.java | 62 +- .../ParameterChoicesProvider.java | 24 +- .../autocomplete/ParameterizedCompletion.java | 115 +- .../ParameterizedCompletionChoicesWindow.java | 178 +- .../ParameterizedCompletionContext.java | 560 +- ...meterizedCompletionDescriptionToolTip.java | 120 +- .../ParameterizedCompletionInsertionInfo.java | 118 +- .../RoundRobinAutoCompletion.java | 72 +- .../ui/autocomplete/ShorthandCompletion.java | 90 +- src/org/fife/ui/autocomplete/SizeGrip.java | 144 +- .../SortByRelevanceComparator.java | 16 +- .../ui/autocomplete/TemplateCompletion.java | 203 +- .../fife/ui/autocomplete/TemplatePiece.java | 50 +- src/org/fife/ui/autocomplete/TipUtil.java | 94 +- src/org/fife/ui/autocomplete/Util.java | 161 +- .../ui/autocomplete/VariableCompletion.java | 90 +- .../AbstractJFlexCTokenMaker.java | 153 +- .../AbstractJFlexTokenMaker.java | 36 +- .../rsyntaxtextarea/AbstractTokenMaker.java | 32 +- .../AbstractTokenMakerFactory.java | 71 +- .../rsyntaxtextarea/ActiveLineRangeEvent.java | 33 +- .../ActiveLineRangeListener.java | 27 +- .../rsyntaxtextarea/CodeTemplateManager.java | 204 +- .../DefaultOccurrenceMarker.java | 59 +- .../rsyntaxtextarea/DefaultTokenFactory.java | 89 +- .../DefaultTokenMakerFactory.java | 114 +- .../rsyntaxtextarea/DefaultTokenPainter.java | 220 +- .../ui/rsyntaxtextarea/DocumentRange.java | 93 +- .../fife/ui/rsyntaxtextarea/ErrorStrip.java | 430 +- .../ui/rsyntaxtextarea/FileFileLocation.java | 40 +- .../fife/ui/rsyntaxtextarea/FileLocation.java | 72 +- .../FoldingAwareIconRowHeader.java | 158 +- .../rsyntaxtextarea/HtmlOccurrenceMarker.java | 278 +- .../ui/rsyntaxtextarea/LinkGenerator.java | 31 +- .../rsyntaxtextarea/LinkGeneratorResult.java | 23 +- .../MarkOccurrencesSupport.java | 156 +- .../rsyntaxtextarea/MatchedBracketPopup.java | 89 +- .../ui/rsyntaxtextarea/OccurrenceMarker.java | 46 +- .../ui/rsyntaxtextarea/ParserManager.java | 475 +- .../rsyntaxtextarea/PopupWindowDecorator.java | 36 +- src/org/fife/ui/rsyntaxtextarea/RSTAView.java | 46 +- .../ui/rsyntaxtextarea/RSyntaxDocument.java | 295 +- .../ui/rsyntaxtextarea/RSyntaxTextArea.java | 880 +- .../RSyntaxTextAreaDefaultInputMap.java | 78 +- .../RSyntaxTextAreaEditorKit.java | 1300 +- .../RSyntaxTextAreaHighlighter.java | 149 +- .../ui/rsyntaxtextarea/RSyntaxTextAreaUI.java | 145 +- .../RSyntaxTextArea_de.properties | 2 +- .../ui/rsyntaxtextarea/RSyntaxUtilities.java | 1106 +- .../fife/ui/rsyntaxtextarea/RTfToText.java | 131 +- .../fife/ui/rsyntaxtextarea/RtfGenerator.java | 309 +- .../ui/rsyntaxtextarea/RtfTransferable.java | 55 +- .../SelectRegionLinkGeneratorResult.java | 23 +- .../SquiggleUnderlineHighlightPainter.java | 85 +- src/org/fife/ui/rsyntaxtextarea/Style.java | 122 +- .../ui/rsyntaxtextarea/SyntaxConstants.java | 210 +- .../fife/ui/rsyntaxtextarea/SyntaxScheme.java | 557 +- .../fife/ui/rsyntaxtextarea/SyntaxView.java | 786 +- .../ui/rsyntaxtextarea/TextEditorPane.java | 465 +- src/org/fife/ui/rsyntaxtextarea/Theme.java | 426 +- src/org/fife/ui/rsyntaxtextarea/Token.java | 393 +- .../fife/ui/rsyntaxtextarea/TokenFactory.java | 59 +- .../fife/ui/rsyntaxtextarea/TokenImpl.java | 582 +- .../ui/rsyntaxtextarea/TokenIterator.java | 58 +- .../fife/ui/rsyntaxtextarea/TokenMaker.java | 143 +- .../ui/rsyntaxtextarea/TokenMakerBase.java | 201 +- .../ui/rsyntaxtextarea/TokenMakerFactory.java | 29 +- src/org/fife/ui/rsyntaxtextarea/TokenMap.java | 183 +- .../ui/rsyntaxtextarea/TokenOrientedView.java | 38 +- .../fife/ui/rsyntaxtextarea/TokenPainter.java | 163 +- .../fife/ui/rsyntaxtextarea/TokenTypes.java | 107 +- .../fife/ui/rsyntaxtextarea/TokenUtils.java | 137 +- .../ui/rsyntaxtextarea/URLFileLocation.java | 57 +- .../VisibleWhitespaceTokenPainter.java | 132 +- .../ui/rsyntaxtextarea/WrappedSyntaxView.java | 1060 +- .../rsyntaxtextarea/WrappedSyntaxView2.java | 282 +- .../rsyntaxtextarea/XmlOccurrenceMarker.java | 124 +- .../focusabletip/FocusableTip.java | 186 +- .../focusabletip/SizeGrip.java | 148 +- .../rsyntaxtextarea/focusabletip/TipUtil.java | 132 +- .../focusabletip/TipWindow.java | 141 +- .../folding/CurlyFoldParser.java | 216 +- .../folding/DefaultFoldManager.java | 413 +- .../fife/ui/rsyntaxtextarea/folding/Fold.java | 284 +- .../folding/FoldCollapser.java | 52 +- .../rsyntaxtextarea/folding/FoldManager.java | 152 +- .../rsyntaxtextarea/folding/FoldParser.java | 21 +- .../folding/FoldParserManager.java | 98 +- .../ui/rsyntaxtextarea/folding/FoldType.java | 33 +- .../folding/HtmlFoldParser.java | 235 +- .../folding/JsonFoldParser.java | 97 +- .../folding/LatexFoldParser.java | 56 +- .../folding/LispFoldParser.java | 15 +- .../folding/NsisFoldParser.java | 97 +- .../folding/XmlFoldParser.java | 80 +- .../modes/AbstractMarkupTokenMaker.java | 18 +- .../modes/ActionScriptTokenMaker.java | 2920 +- .../modes/AssemblerX86TokenMaker.java | 2923 +- .../modes/BBCodeTokenMaker.java | 1099 +- .../modes/CPlusPlusTokenMaker.java | 3434 +- .../rsyntaxtextarea/modes/CSSTokenMaker.java | 2058 +- .../modes/CSharpTokenMaker.java | 2478 +- .../ui/rsyntaxtextarea/modes/CTokenMaker.java | 3083 +- .../modes/ClojureTokenMaker.java | 3346 +- .../ui/rsyntaxtextarea/modes/DTokenMaker.java | 3081 +- .../rsyntaxtextarea/modes/DartTokenMaker.java | 3348 +- .../modes/DelphiTokenMaker.java | 2537 +- .../modes/DockerTokenMaker.java | 1223 +- .../rsyntaxtextarea/modes/DtdTokenMaker.java | 1259 +- .../modes/FortranTokenMaker.java | 1594 +- .../modes/GroovyTokenMaker.java | 8669 ++-- .../rsyntaxtextarea/modes/HTMLTokenMaker.java | 5056 +- .../modes/HostsTokenMaker.java | 1049 +- .../modes/HtaccessTokenMaker.java | 2347 +- .../rsyntaxtextarea/modes/IniTokenMaker.java | 1006 +- .../rsyntaxtextarea/modes/JSPTokenMaker.java | 12629 ++--- .../modes/JavaScriptTokenMaker.java | 3569 +- .../rsyntaxtextarea/modes/JavaTokenMaker.java | 4152 +- .../modes/JshintrcTokenMaker.java | 14 +- .../rsyntaxtextarea/modes/JsonTokenMaker.java | 1238 +- .../modes/LatexTokenMaker.java | 1151 +- .../rsyntaxtextarea/modes/LessTokenMaker.java | 21 +- .../rsyntaxtextarea/modes/LispTokenMaker.java | 2032 +- .../rsyntaxtextarea/modes/LuaTokenMaker.java | 1530 +- .../modes/MakefileTokenMaker.java | 1394 +- .../rsyntaxtextarea/modes/MxmlTokenMaker.java | 4226 +- .../rsyntaxtextarea/modes/NSISTokenMaker.java | 4692 +- .../rsyntaxtextarea/modes/PHPTokenMaker.java | 39658 ++++++---------- .../rsyntaxtextarea/modes/PerlTokenMaker.java | 3288 +- .../modes/PlainTextTokenMaker.java | 990 +- .../modes/PropertiesFileTokenMaker.java | 1037 +- .../modes/PythonTokenMaker.java | 1679 +- .../rsyntaxtextarea/modes/RubyTokenMaker.java | 2637 +- .../rsyntaxtextarea/modes/SASTokenMaker.java | 2365 +- .../rsyntaxtextarea/modes/SQLTokenMaker.java | 1756 +- .../modes/ScalaTokenMaker.java | 1574 +- .../rsyntaxtextarea/modes/TclTokenMaker.java | 1642 +- .../modes/TypeScriptTokenMaker.java | 3554 +- .../modes/UnixShellTokenMaker.java | 1436 +- .../modes/VisualBasicTokenMaker.java | 2409 +- .../modes/WindowsBatchTokenMaker.java | 711 +- .../rsyntaxtextarea/modes/XMLTokenMaker.java | 1502 +- .../rsyntaxtextarea/modes/YamlTokenMaker.java | 1075 +- .../parser/AbstractParser.java | 42 +- .../parser/DefaultParseResult.java | 66 +- .../parser/DefaultParserNotice.java | 157 +- .../parser/ExtendedHyperlinkListener.java | 20 +- .../rsyntaxtextarea/parser/ParseResult.java | 35 +- .../ui/rsyntaxtextarea/parser/Parser.java | 44 +- .../rsyntaxtextarea/parser/ParserNotice.java | 83 +- .../rsyntaxtextarea/parser/TaskTagParser.java | 88 +- .../rsyntaxtextarea/parser/ToolTipInfo.java | 45 +- .../ui/rsyntaxtextarea/parser/XmlParser.java | 154 +- .../templates/AbstractCodeTemplate.java | 71 +- .../templates/CodeTemplate.java | 44 +- .../templates/StaticCodeTemplate.java | 161 +- .../ui/rtextarea/AbstractGutterComponent.java | 78 +- .../rtextarea/BackgroundPainterStrategy.java | 22 +- ...ufferedImageBackgroundPainterStrategy.java | 84 +- src/org/fife/ui/rtextarea/CaretStyle.java | 28 +- .../rtextarea/ChangeableHighlightPainter.java | 293 +- .../fife/ui/rtextarea/ClipboardHistory.java | 73 +- .../ui/rtextarea/ClipboardHistoryPopup.java | 204 +- .../ColorBackgroundPainterStrategy.java | 61 +- .../fife/ui/rtextarea/ConfigurableCaret.java | 428 +- src/org/fife/ui/rtextarea/FoldIndicator.java | 409 +- src/org/fife/ui/rtextarea/Gutter.java | 642 +- src/org/fife/ui/rtextarea/GutterIconInfo.java | 25 +- src/org/fife/ui/rtextarea/IconGroup.java | 185 +- src/org/fife/ui/rtextarea/IconRowHeader.java | 573 +- .../ImageBackgroundPainterStrategy.java | 97 +- .../ui/rtextarea/LineHighlightManager.java | 135 +- src/org/fife/ui/rtextarea/LineNumberList.java | 469 +- src/org/fife/ui/rtextarea/Macro.java | 257 +- src/org/fife/ui/rtextarea/RDocument.java | 33 +- .../ui/rtextarea/RDocumentCharSequence.java | 75 +- .../fife/ui/rtextarea/RTADefaultInputMap.java | 218 +- .../ui/rtextarea/RTATextTransferHandler.java | 298 +- src/org/fife/ui/rtextarea/RTextArea.java | 553 +- src/org/fife/ui/rtextarea/RTextAreaBase.java | 731 +- .../fife/ui/rtextarea/RTextAreaEditorKit.java | 1535 +- .../ui/rtextarea/RTextAreaHighlighter.java | 198 +- src/org/fife/ui/rtextarea/RTextAreaUI.java | 390 +- .../fife/ui/rtextarea/RTextScrollPane.java | 90 +- src/org/fife/ui/rtextarea/RUndoManager.java | 107 +- .../ui/rtextarea/RecordableTextAction.java | 176 +- .../fife/ui/rtextarea/RegExReplaceInfo.java | 42 +- src/org/fife/ui/rtextarea/SearchContext.java | 218 +- src/org/fife/ui/rtextarea/SearchEngine.java | 764 +- src/org/fife/ui/rtextarea/SearchResult.java | 142 +- .../ui/rtextarea/SmartHighlightPainter.java | 78 +- .../fife/ui/rtextarea/ToolTipSupplier.java | 22 +- ...olatileImageBackgroundPainterStrategy.java | 87 +- src/org/fife/util/DynamicIntArray.java | 319 +- 233 files changed, 82245 insertions(+), 118134 deletions(-) diff --git a/src/me/ByteEdit/main/Assembler.java b/src/me/ByteEdit/main/Assembler.java index 1d5b817..d871c70 100644 --- a/src/me/ByteEdit/main/Assembler.java +++ b/src/me/ByteEdit/main/Assembler.java @@ -43,7 +43,7 @@ import org.objectweb.asm.tree.TypeInsnNode; import org.objectweb.asm.tree.VarInsnNode; public class Assembler { - + public static ClassNode assemble(String input) { Main.textArea.removeAllLineHighlights(); CustomBufferedReader read = null; @@ -51,16 +51,13 @@ public class Assembler { ClassNode clazz = new ClassNode(); read = new CustomBufferedReader(new StringReader(input)); String s; - while (!(s = read.readLine()).startsWith("// #Class v:")) { if (clazz.visibleAnnotations == null) { clazz.visibleAnnotations = new ArrayList<>(); } clazz.visibleAnnotations.add(parseAnnotation(s)); } - clazz.version = Integer.parseInt(s.substring(12)); - while ((s = read.readLine()).startsWith("// ")) { if (s.startsWith("// #Signature: ")) { clazz.signature = s.substring(15).equals("null") ? null : s.substring(15); @@ -74,7 +71,6 @@ public class Assembler { split[3].equals("null") ? null : split[3], Integer.parseInt(split[4].substring(2), 16))); } } - { s = s.substring(0, s.length() - 2); if (s.contains(" implements ")) { @@ -87,31 +83,27 @@ public class Assembler { } clazz.superName = s.substring(s.indexOf(" extends ") + 9); s = s.substring(0, s.indexOf(" extends ")); - String[] split = s.split(" "); clazz.name = split[split.length - 1]; - clazz.access = ClassUtil.ACC_SUPER; - switch (split[split.length - 2]) { - case "class": - break; - case "enum": - clazz.access ^= ClassUtil.ACC_ENUM; - break; - case "interface": - clazz.access = 0; - clazz.access ^= ClassUtil.ACC_ABSTRACT; - clazz.access ^= ClassUtil.ACC_INTERFACE; - break; - case "@interface": - clazz.access = 0; - clazz.access ^= ClassUtil.ACC_ABSTRACT; - clazz.access ^= ClassUtil.ACC_ANNOTATION; - clazz.access ^= ClassUtil.ACC_INTERFACE; - break; + case "class": + break; + case "enum": + clazz.access ^= ClassUtil.ACC_ENUM; + break; + case "interface": + clazz.access = 0; + clazz.access ^= ClassUtil.ACC_ABSTRACT; + clazz.access ^= ClassUtil.ACC_INTERFACE; + break; + case "@interface": + clazz.access = 0; + clazz.access ^= ClassUtil.ACC_ABSTRACT; + clazz.access ^= ClassUtil.ACC_ANNOTATION; + clazz.access ^= ClassUtil.ACC_INTERFACE; + break; } - if (split.length > 2) { String cons = consolidateStrings(split, 0, split.length - 2); if (cons.contains("public")) { @@ -128,19 +120,12 @@ public class Assembler { } } } - s = read.readLine(); - clazz.sourceFile = s.substring(16).equals("null") ? null : s.substring(16); - - while (!(s = read.readLine()).equals("// #Fields")) { - } - + while (!(s = read.readLine()).equals("// #Fields")) {} clazz.fields = new ArrayList<>(); clazz.methods = new ArrayList<>(); - String signature = null; - ArrayList annotationsForNext = new ArrayList<>(); while (!(s = read.readLine()).equals("// #Methods")) { s = s.trim(); @@ -163,11 +148,8 @@ public class Assembler { } String name = split[split.length - 1]; String desc = split[split.length - 2]; - value = getValue((String) value, desc); - int access = 0; - if (split.length > 2) { String cons = consolidateStrings(split, 0, split.length - 2); if (cons.startsWith("0x")) { @@ -238,18 +220,13 @@ public class Assembler { } } } - HashMap methodLabelMap = new HashMap(); - annotationsForNext.clear(); MethodNode node = null; String temp = ""; - ArrayList localVarsToParse = new ArrayList<>(); ArrayList tryCatchBlocksToParse = new ArrayList<>(); - int stage = 0; - while ((s = read.readLine()) != null) { if (s.trim().isEmpty() || s.equals("}")) continue; @@ -292,7 +269,6 @@ public class Assembler { } annotationsForNext.clear(); } - for (String st : localVarsToParse) { String[] sp = st.split(":"); int start = Integer.parseInt(sp[3].substring(0, sp[3].length() - 2)); @@ -308,10 +284,9 @@ public class Assembler { _end = new LabelNode(entry.getKey()); } } - node.localVariables.add(new LocalVariableNode(sp[0], sp[1].substring(1, sp[1].length() - 2), - signat, _start, _end, Integer.parseInt(sp[2].substring(0, sp[2].length() - 2)))); + node.localVariables.add(new LocalVariableNode(sp[0], sp[1].substring(1, sp[1].length() - 2), signat, _start, + _end, Integer.parseInt(sp[2].substring(0, sp[2].length() - 2)))); } - for (String st : tryCatchBlocksToParse) { String[] sp = st.split(" "); int start = Integer.parseInt(sp[1].substring(2)); @@ -331,8 +306,7 @@ public class Assembler { _handler = new LabelNode(entry.getKey()); } } - node.tryCatchBlocks.add( - new TryCatchBlockNode(_start, _end, _handler, sp[0].equals("null") ? null : sp[0])); + node.tryCatchBlocks.add(new TryCatchBlockNode(_start, _end, _handler, sp[0].equals("null") ? null : sp[0])); } clazz.methods.add(node); // signature = null; @@ -426,7 +400,6 @@ public class Assembler { } } } - return clazz; } catch (Throwable e) { System.err.println("Error at line: " + read.currentLine); @@ -440,12 +413,11 @@ public class Assembler { } finally { try { read.close(); - } catch (Exception e) { - } + } catch (Exception e) {} } } - - public static AnnotationNode parseAnnotation(String s) { + + private static AnnotationNode parseAnnotation(String s) { s = s.substring(1); String[] split = s.split(" "); AnnotationNode node = new AnnotationNode(split[0]); @@ -455,9 +427,7 @@ public class Assembler { } s = consolidateStrings(split, 1); s = s.substring(1, s.length() - 1); - split = s.split("\\], "); - for (int i = 0; i < split.length; i++) { String[] split2 = split[i].split(" = \\["); node.values.add(split2[0]); @@ -470,8 +440,7 @@ public class Assembler { for (String rofl : split3) { if (!rofl.startsWith("(")) { int index = rofl.indexOf(";"); - list.add(new String[] { rofl.substring(0, index) + ";", - rofl.substring(index).substring(2) }); + list.add(new String[] { rofl.substring(0, index) + ";", rofl.substring(index).substring(2) }); } else { // anderer typ mit casten list.add(ClassUtil.getCastedValue(rofl.split(" ")[1], rofl.split("\\) ")[0].substring(1))); } @@ -479,19 +448,17 @@ public class Assembler { } else { if (!value.startsWith("(")) { int index = value.indexOf(";"); - node.values.add( - new String[] { value.substring(0, index) + ";", value.substring(index).substring(2) }); + node.values.add(new String[] { value.substring(0, index) + ";", value.substring(index).substring(2) }); } else { // anderer typ mit casten - node.values.add( - ClassUtil.getCastedValue(value.split(" ")[1], value.split("\\) ")[0].substring(1))); + node.values.add(ClassUtil.getCastedValue(value.split(" ")[1], value.split("\\) ")[0].substring(1))); } } } } return node; } - - public static String consolidateStrings(String[] args, int start) { + + private static String consolidateStrings(String[] args, int start) { if (args.length == 0) { return null; } @@ -503,8 +470,8 @@ public class Assembler { } return ret; } - - public static String consolidateStrings(String[] args, int start, int end) { + + private static String consolidateStrings(String[] args, int start, int end) { if (end == 0) { return null; } @@ -516,38 +483,37 @@ public class Assembler { } return ret; } - - public static Object getValue(String s, String to) { + + private static Object getValue(String s, String to) { if (s == null) { return null; } switch (to) { - case "B": - return Byte.parseByte(s); - case "Z": - return Boolean.parseBoolean(s); - case "I": - return Integer.parseInt(s); - case "J": - return Long.parseLong(s.substring(0, s.length() - 1)); - case "C": - return (char) Integer.parseInt(s); - case "D": - return Double.parseDouble(s); - case "F": - return Float.parseFloat(s.substring(0, s.length() - 1)); - case "S": - return Short.parseShort(s); - case "Ljava/lang/String;": - return StringEscapeUtils.unescapeJava(s.substring(1, s.length() - 1)).replace("\\n", "\n").replace("\\r", - "\r"); - default: { - return null; - } + case "B": + return Byte.parseByte(s); + case "Z": + return Boolean.parseBoolean(s); + case "I": + return Integer.parseInt(s); + case "J": + return Long.parseLong(s.substring(0, s.length() - 1)); + case "C": + return (char) Integer.parseInt(s); + case "D": + return Double.parseDouble(s); + case "F": + return Float.parseFloat(s.substring(0, s.length() - 1)); + case "S": + return Short.parseShort(s); + case "Ljava/lang/String;": + return StringEscapeUtils.unescapeJava(s.substring(1, s.length() - 1)).replace("\\n", "\n").replace("\\r", "\r"); + default: { + return null; + } } } - - public static AbstractInsnNode getNode(String s, HashMap labels) throws Exception { + + private static AbstractInsnNode getNode(String s, HashMap labels) throws Exception { if (s.startsWith("// label ")) { int labelNr = Integer.parseInt(s.substring(9)); for (Map.Entry entry : labels.entrySet()) { @@ -658,549 +624,603 @@ public class Assembler { String[] split = s.split(" "); String command = split[0]; switch (command) { - case "nop": - return new InsnNode(0); - case "aconst_null": - return new InsnNode(1); - case "iconst_m1": - return new InsnNode(2); - case "iconst_0": - return new InsnNode(3); - case "iconst_1": - return new InsnNode(4); - case "iconst_2": - return new InsnNode(5); - case "iconst_3": - return new InsnNode(6); - case "iconst_4": - return new InsnNode(7); - case "iconst_5": - return new InsnNode(8); - case "lconst_0": - return new InsnNode(9); - case "lconst_1": - return new InsnNode(10); - case "fconst_0": - return new InsnNode(11); - case "fconst_1": - return new InsnNode(12); - case "fconst_2": - return new InsnNode(13); - case "dconst_0": - return new InsnNode(14); - case "dconst_1": - return new InsnNode(15); - case "bipush": { - return new IntInsnNode(16, Integer.parseInt(split[1])); - } - case "sipush": { - return new IntInsnNode(17, Integer.parseInt(split[1])); - } - case "ldc": { - String str = consolidateStrings(split, 1); - Object val; - try { - if (str.startsWith("Type: ")) { - str = str.substring(8, str.length() - 2); - String[] split2 = str.split("\n\t"); - Constructor constr = Type.class.getDeclaredConstructor(int.class, char[].class, int.class, - int.class); - constr.setAccessible(true); - String type = split2[0].substring(7); - val = constr.newInstance(new Object[] { ClassUtil.getIDFromClassNameForType(type), - split2[3].substring(6, split2[3].length() - 1).toCharArray(), - Integer.parseInt(split2[1].substring(5)), Integer.parseInt(split2[2].substring(5)) }); - } else if (str.startsWith("\"") && str.endsWith("\"")) { - val = StringEscapeUtils.unescapeJava(str.substring(1, str.length() - 1)).replace("\\n", "\n") - .replace("\\r", "\r"); - } else if (str.endsWith("l")) { - val = Long.parseLong(str.substring(0, str.length() - 1)); - } else if (str.endsWith("f")) { - val = Float.parseFloat(str.substring(0, str.length() - 1)); - } else if (str.contains(".")) { - val = Double.parseDouble(str); + case "nop": + return new InsnNode(0); + case "aconst_null": + return new InsnNode(1); + case "iconst_m1": + return new InsnNode(2); + case "iconst_0": + return new InsnNode(3); + case "iconst_1": + return new InsnNode(4); + case "iconst_2": + return new InsnNode(5); + case "iconst_3": + return new InsnNode(6); + case "iconst_4": + return new InsnNode(7); + case "iconst_5": + return new InsnNode(8); + case "lconst_0": + return new InsnNode(9); + case "lconst_1": + return new InsnNode(10); + case "fconst_0": + return new InsnNode(11); + case "fconst_1": + return new InsnNode(12); + case "fconst_2": + return new InsnNode(13); + case "dconst_0": + return new InsnNode(14); + case "dconst_1": + return new InsnNode(15); + case "bipush": { + return new IntInsnNode(16, Integer.parseInt(split[1])); + } + case "sipush": { + return new IntInsnNode(17, Integer.parseInt(split[1])); + } + case "ldc": { + String str = consolidateStrings(split, 1); + Object val; + try { + if (str.startsWith("Type: ")) { + str = str.substring(8, str.length() - 2); + String[] split2 = str.split("\n\t"); + Constructor constr = Type.class.getDeclaredConstructor(int.class, char[].class, int.class, int.class); + constr.setAccessible(true); + String type = split2[0].substring(7); + val = constr.newInstance(new Object[] { ClassUtil.getIDFromClassNameForType(type), + split2[3].substring(6, split2[3].length() - 1).toCharArray(), Integer.parseInt(split2[1].substring(5)), + Integer.parseInt(split2[2].substring(5)) }); + } else if (str.startsWith("\"") && str.endsWith("\"")) { + val = StringEscapeUtils.unescapeJava(str.substring(1, str.length() - 1)).replace("\\n", "\n").replace("\\r", + "\r"); + } else if (str.endsWith("l")) { + val = Long.parseLong(str.substring(0, str.length() - 1)); + } else if (str.endsWith("f")) { + val = Float.parseFloat(str.substring(0, str.length() - 1)); + } else if (str.contains(".")) { + val = Double.parseDouble(str); + } else { + val = Integer.parseInt(str); + } + } catch (Exception e) { + val = null; + throw e; + } + return new LdcInsnNode(val); + } + case "iload": { + return new VarInsnNode(21, Integer.parseInt(split[1])); + } + case "lload": { + return new VarInsnNode(22, Integer.parseInt(split[1])); + } + case "fload": { + return new VarInsnNode(23, Integer.parseInt(split[1])); + } + case "dload": { + return new VarInsnNode(24, Integer.parseInt(split[1])); + } + case "aload": { + return new VarInsnNode(25, Integer.parseInt(split[1])); + } + case "iaload": { + return new InsnNode(46); + } + case "laload": { + return new InsnNode(47); + } + case "faload": { + return new InsnNode(48); + } + case "daload": { + return new InsnNode(49); + } + case "aaload": { + return new InsnNode(50); + } + case "baload": { + return new InsnNode(51); + } + case "caload": { + return new InsnNode(52); + } + case "saload": { + return new InsnNode(53); + } + case "istore": { + return new VarInsnNode(54, Integer.parseInt(split[1])); + } + case "lstore": { + return new VarInsnNode(55, Integer.parseInt(split[1])); + } + case "fstore": { + return new VarInsnNode(56, Integer.parseInt(split[1])); + } + case "dstore": { + return new VarInsnNode(57, Integer.parseInt(split[1])); + } + case "astore": { + return new VarInsnNode(58, Integer.parseInt(split[1])); + } + case "iastore": { + return new InsnNode(79); + } + case "lastore": { + return new InsnNode(80); + } + case "fastore": { + return new InsnNode(81); + } + case "dastore": { + return new InsnNode(82); + } + case "aastore": { + return new InsnNode(83); + } + case "bastore": { + return new InsnNode(84); + } + case "castore": { + return new InsnNode(85); + } + case "sastore": { + return new InsnNode(86); + } + case "pop": { + return new InsnNode(87); + } + case "pop2": { + return new InsnNode(88); + } + case "dup": { + return new InsnNode(89); + } + case "dup_x1": { + return new InsnNode(90); + } + case "dup_x2": { + return new InsnNode(91); + } + case "dup2": { + return new InsnNode(92); + } + case "dup2_x1": { + return new InsnNode(93); + } + case "dup2_x2": { + return new InsnNode(94); + } + case "swap": { + return new InsnNode(95); + } + case "iadd": { + return new InsnNode(96); + } + case "ladd": { + return new InsnNode(97); + } + case "fadd": { + return new InsnNode(98); + } + case "dadd": { + return new InsnNode(99); + } + case "isub": { + return new InsnNode(100); + } + case "lsub": { + return new InsnNode(101); + } + case "fsub": { + return new InsnNode(102); + } + case "dsub": { + return new InsnNode(103); + } + case "imul": { + return new InsnNode(104); + } + case "lmul": { + return new InsnNode(105); + } + case "fmul": { + return new InsnNode(106); + } + case "dmul": { + return new InsnNode(107); + } + case "idiv": { + return new InsnNode(108); + } + case "ldiv": { + return new InsnNode(109); + } + case "fdiv": { + return new InsnNode(110); + } + case "ddiv": { + return new InsnNode(111); + } + case "irem": { + return new InsnNode(112); + } + case "lrem": { + return new InsnNode(113); + } + case "frem": { + return new InsnNode(114); + } + case "drem": { + return new InsnNode(115); + } + case "ineg": { + return new InsnNode(116); + } + case "lneg": { + return new InsnNode(117); + } + case "fneg": { + return new InsnNode(118); + } + case "dneg": { + return new InsnNode(119); + } + case "ishl": { + return new InsnNode(120); + } + case "lshl": { + return new InsnNode(121); + } + case "ishr": { + return new InsnNode(122); + } + case "lshr": { + return new InsnNode(123); + } + case "iushr": { + return new InsnNode(124); + } + case "lushr": { + return new InsnNode(125); + } + case "iand": { + return new InsnNode(126); + } + case "land": { + return new InsnNode(127); + } + case "ior": { + return new InsnNode(128); + } + case "lor": { + return new InsnNode(129); + } + case "ixor": { + return new InsnNode(130); + } + case "lxor": { + return new InsnNode(131); + } + case "iinc": { + return new IincInsnNode(Integer.parseInt(split[1]), Integer.parseInt(split[2])); + } + case "i2l": { + return new InsnNode(133); + } + case "i2f": { + return new InsnNode(134); + } + case "i2d": { + return new InsnNode(135); + } + case "l2i": { + return new InsnNode(136); + } + case "l2f": { + return new InsnNode(137); + } + case "l2d": { + return new InsnNode(138); + } + case "f2i": { + return new InsnNode(139); + } + case "f2l": { + return new InsnNode(140); + } + case "f2d": { + return new InsnNode(141); + } + case "d2i": { + return new InsnNode(142); + } + case "d2l": { + return new InsnNode(143); + } + case "d2f": { + return new InsnNode(144); + } + case "i2b": { + return new InsnNode(145); + } + case "i2c": { + return new InsnNode(146); + } + case "i2s": { + return new InsnNode(147); + } + case "lcmp": { + return new InsnNode(148); + } + case "fcmpl": { + return new InsnNode(149); + } + case "fcmpg": { + return new InsnNode(150); + } + case "dcmpl": { + return new InsnNode(151); + } + case "dcmpg": { + return new InsnNode(152); + } + case "ifeq": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(153, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(153, new LabelNode(l)); + } + case "ifne": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(154, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(154, new LabelNode(l)); + } + case "iflt": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(155, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(155, new LabelNode(l)); + } + case "ifge": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(156, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(156, new LabelNode(l)); + } + case "ifgt": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(157, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(157, new LabelNode(l)); + } + case "ifle": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(158, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(158, new LabelNode(l)); + } + case "if_icmpeq": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(159, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(159, new LabelNode(l)); + } + case "if_icmpne": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(160, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(160, new LabelNode(l)); + } + case "if_icmplt": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(161, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(161, new LabelNode(l)); + } + case "if_icmpge": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(162, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(162, new LabelNode(l)); + } + case "if_icmpgt": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(163, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(163, new LabelNode(l)); + } + case "if_icmple": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(164, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(164, new LabelNode(l)); + } + case "if_acmpeq": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(165, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(165, new LabelNode(l)); + } + case "if_acmpne": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(166, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(166, new LabelNode(l)); + } + case "goto": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(167, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(167, new LabelNode(l)); + } + case "jsr": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(168, new LabelNode(entry.getKey())); + } + } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(168, new LabelNode(l)); + } + case "ret": { + return new VarInsnNode(169, Integer.parseInt(s.split(" ")[1])); + } + case "tableswitch": { + String str = s.substring(14, s.length() - 2).replace("\t", ""); + String split2[] = str.split("\n"); + LinkedHashMap labelMap = new LinkedHashMap<>(); + for (int i = 4; i < split2.length - 1; i++) { + if (split2[i].equals("null")) { + labelMap.put(-1 - labelMap.size(), null); + } else { + labelMap.put(Integer.parseInt(split2[i]), null); + } + } + LabelNode dflt = null; + if (!split2[2].substring(9).equals("null")) { + int dfltLabelNr = Integer.parseInt(split2[2].substring(9)); + for (Entry entry : labels.entrySet()) { + if (entry.getValue() == dfltLabelNr) { + dflt = new LabelNode(entry.getKey()); + } + if (labelMap.containsKey(entry.getValue())) { + labelMap.replace(entry.getValue(), new LabelNode(entry.getKey())); + } + } + if (dflt == null) { + Label l = new Label(); + labels.put(l, dfltLabelNr); + dflt = new LabelNode(l); + } } else { - val = Integer.parseInt(str); + dflt = new LabelNode(new Label()); } - } catch (Exception e) { - val = null; - throw e; - } - return new LdcInsnNode(val); - } - case "iload": { - return new VarInsnNode(21, Integer.parseInt(split[1])); - } - case "lload": { - return new VarInsnNode(22, Integer.parseInt(split[1])); - } - case "fload": { - return new VarInsnNode(23, Integer.parseInt(split[1])); - } - case "dload": { - return new VarInsnNode(24, Integer.parseInt(split[1])); - } - case "aload": { - return new VarInsnNode(25, Integer.parseInt(split[1])); - } - case "iaload": { - return new InsnNode(46); - } - case "laload": { - return new InsnNode(47); - } - case "faload": { - return new InsnNode(48); - } - case "daload": { - return new InsnNode(49); - } - case "aaload": { - return new InsnNode(50); - } - case "baload": { - return new InsnNode(51); - } - case "caload": { - return new InsnNode(52); - } - case "saload": { - return new InsnNode(53); - } - case "istore": { - return new VarInsnNode(54, Integer.parseInt(split[1])); - } - case "lstore": { - return new VarInsnNode(55, Integer.parseInt(split[1])); - } - case "fstore": { - return new VarInsnNode(56, Integer.parseInt(split[1])); - } - case "dstore": { - return new VarInsnNode(57, Integer.parseInt(split[1])); - } - case "astore": { - return new VarInsnNode(58, Integer.parseInt(split[1])); - } - case "iastore": { - return new InsnNode(79); - } - case "lastore": { - return new InsnNode(80); - } - case "fastore": { - return new InsnNode(81); - } - case "dastore": { - return new InsnNode(82); - } - case "aastore": { - return new InsnNode(83); - } - case "bastore": { - return new InsnNode(84); - } - case "castore": { - return new InsnNode(85); - } - case "sastore": { - return new InsnNode(86); - } - case "pop": { - return new InsnNode(87); - } - case "pop2": { - return new InsnNode(88); - } - case "dup": { - return new InsnNode(89); - } - case "dup_x1": { - return new InsnNode(90); - } - case "dup_x2": { - return new InsnNode(91); - } - case "dup2": { - return new InsnNode(92); - } - case "dup2_x1": { - return new InsnNode(93); - } - case "dup2_x2": { - return new InsnNode(94); - } - case "swap": { - return new InsnNode(95); - } - case "iadd": { - return new InsnNode(96); - } - case "ladd": { - return new InsnNode(97); - } - case "fadd": { - return new InsnNode(98); - } - case "dadd": { - return new InsnNode(99); - } - case "isub": { - return new InsnNode(100); - } - case "lsub": { - return new InsnNode(101); - } - case "fsub": { - return new InsnNode(102); - } - case "dsub": { - return new InsnNode(103); - } - case "imul": { - return new InsnNode(104); - } - case "lmul": { - return new InsnNode(105); - } - case "fmul": { - return new InsnNode(106); - } - case "dmul": { - return new InsnNode(107); - } - case "idiv": { - return new InsnNode(108); - } - case "ldiv": { - return new InsnNode(109); - } - case "fdiv": { - return new InsnNode(110); - } - case "ddiv": { - return new InsnNode(111); - } - case "irem": { - return new InsnNode(112); - } - case "lrem": { - return new InsnNode(113); - } - case "frem": { - return new InsnNode(114); - } - case "drem": { - return new InsnNode(115); - } - case "ineg": { - return new InsnNode(116); - } - case "lneg": { - return new InsnNode(117); - } - case "fneg": { - return new InsnNode(118); - } - case "dneg": { - return new InsnNode(119); - } - case "ishl": { - return new InsnNode(120); - } - case "lshl": { - return new InsnNode(121); - } - case "ishr": { - return new InsnNode(122); - } - case "lshr": { - return new InsnNode(123); - } - case "iushr": { - return new InsnNode(124); - } - case "lushr": { - return new InsnNode(125); - } - case "iand": { - return new InsnNode(126); - } - case "land": { - return new InsnNode(127); - } - case "ior": { - return new InsnNode(128); - } - case "lor": { - return new InsnNode(129); - } - case "ixor": { - return new InsnNode(130); - } - case "lxor": { - return new InsnNode(131); - } - case "iinc": { - return new IincInsnNode(Integer.parseInt(split[1]), Integer.parseInt(split[2])); - } - case "i2l": { - return new InsnNode(133); - } - case "i2f": { - return new InsnNode(134); - } - case "i2d": { - return new InsnNode(135); - } - case "l2i": { - return new InsnNode(136); - } - case "l2f": { - return new InsnNode(137); - } - case "l2d": { - return new InsnNode(138); - } - case "f2i": { - return new InsnNode(139); - } - case "f2l": { - return new InsnNode(140); - } - case "f2d": { - return new InsnNode(141); - } - case "d2i": { - return new InsnNode(142); - } - case "d2l": { - return new InsnNode(143); - } - case "d2f": { - return new InsnNode(144); - } - case "i2b": { - return new InsnNode(145); - } - case "i2c": { - return new InsnNode(146); - } - case "i2s": { - return new InsnNode(147); - } - case "lcmp": { - return new InsnNode(148); - } - case "fcmpl": { - return new InsnNode(149); - } - case "fcmpg": { - return new InsnNode(150); - } - case "dcmpl": { - return new InsnNode(151); - } - case "dcmpg": { - return new InsnNode(152); - } - case "ifeq": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(153, new LabelNode(entry.getKey())); + LabelNode[] arr = new LabelNode[labelMap.size()]; + int counter = 0; + for (Entry entry : labelMap.entrySet()) { + LabelNode ln; + if (entry.getValue() == null) { + Label l = new Label(); + labels.put(l, entry.getKey()); + ln = new LabelNode(l); + } else { + ln = entry.getValue(); + } + arr[counter] = ln; + counter++; } + return new TableSwitchInsnNode(Integer.parseInt(split2[0].substring(5)), Integer.parseInt(split2[1].substring(5)), dflt, + arr); } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(153, new LabelNode(l)); - } - case "ifne": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(154, new LabelNode(entry.getKey())); + case "lookupswitch": { + String str = s.substring(15, s.length() - 2).replace("\t", ""); + String split2[] = str.split("\n"); + ArrayList keys = new ArrayList<>(); + LinkedHashMap labelMap = new LinkedHashMap<>(); + int stage = 0; + for (int i = 2; i < split2.length; i++) { + String spl = split2[i]; + if (spl.equals("]")) { + stage = 1; + } else if (spl.equals("labels: [")) { + stage = 2; + } else if (stage == 0) { + keys.add(Integer.parseInt(spl)); + } else if (stage == 2) { + if (spl.equals("null")) { + labelMap.put(-1 - labelMap.size(), null); + } else { + labelMap.put(Integer.parseInt(spl), null); + } + } } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(154, new LabelNode(l)); - } - case "iflt": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(155, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(155, new LabelNode(l)); - } - case "ifge": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(156, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(156, new LabelNode(l)); - } - case "ifgt": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(157, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(157, new LabelNode(l)); - } - case "ifle": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(158, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(158, new LabelNode(l)); - } - case "if_icmpeq": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(159, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(159, new LabelNode(l)); - } - case "if_icmpne": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(160, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(160, new LabelNode(l)); - } - case "if_icmplt": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(161, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(161, new LabelNode(l)); - } - case "if_icmpge": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(162, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(162, new LabelNode(l)); - } - case "if_icmpgt": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(163, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(163, new LabelNode(l)); - } - case "if_icmple": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(164, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(164, new LabelNode(l)); - } - case "if_acmpeq": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(165, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(165, new LabelNode(l)); - } - case "if_acmpne": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(166, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(166, new LabelNode(l)); - } - case "goto": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(167, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(167, new LabelNode(l)); - } - case "jsr": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(168, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(168, new LabelNode(l)); - } - case "ret": { - return new VarInsnNode(169, Integer.parseInt(s.split(" ")[1])); - } - case "tableswitch": { - String str = s.substring(14, s.length() - 2).replace("\t", ""); - String split2[] = str.split("\n"); - LinkedHashMap labelMap = new LinkedHashMap<>(); - - for (int i = 4; i < split2.length - 1; i++) { - if (split2[i].equals("null")) { - labelMap.put(-1 - labelMap.size(), null); - } else { - labelMap.put(Integer.parseInt(split2[i]), null); - } - } - - LabelNode dflt = null; - if (!split2[2].substring(9).equals("null")) { - int dfltLabelNr = Integer.parseInt(split2[2].substring(9)); + LabelNode dflt = null; + int labelNr = Integer.parseInt(split2[0].substring(9)); for (Entry entry : labels.entrySet()) { - if (entry.getValue() == dfltLabelNr) { + if (entry.getValue() == labelNr) { dflt = new LabelNode(entry.getKey()); } if (labelMap.containsKey(entry.getValue())) { @@ -1209,271 +1229,195 @@ public class Assembler { } if (dflt == null) { Label l = new Label(); - labels.put(l, dfltLabelNr); + labels.put(l, labelNr); dflt = new LabelNode(l); } - } else { - dflt = new LabelNode(new Label()); - } - - LabelNode[] arr = new LabelNode[labelMap.size()]; - - int counter = 0; - for (Entry entry : labelMap.entrySet()) { - LabelNode ln; - if (entry.getValue() == null) { - Label l = new Label(); - labels.put(l, entry.getKey()); - ln = new LabelNode(l); - } else { - ln = entry.getValue(); - } - arr[counter] = ln; - counter++; - } - - return new TableSwitchInsnNode(Integer.parseInt(split2[0].substring(5)), - Integer.parseInt(split2[1].substring(5)), dflt, arr); - } - case "lookupswitch": { - String str = s.substring(15, s.length() - 2).replace("\t", ""); - String split2[] = str.split("\n"); - ArrayList keys = new ArrayList<>(); - LinkedHashMap labelMap = new LinkedHashMap<>(); - - int stage = 0; - for (int i = 2; i < split2.length; i++) { - String spl = split2[i]; - if (spl.equals("]")) { - stage = 1; - } else if (spl.equals("labels: [")) { - stage = 2; - } else if (stage == 0) { - keys.add(Integer.parseInt(spl)); - } else if (stage == 2) { - if (spl.equals("null")) { - labelMap.put(-1 - labelMap.size(), null); + LabelNode[] arr = new LabelNode[labelMap.size()]; + int counter = 0; + for (Entry entry : labelMap.entrySet()) { + LabelNode ln; + if (entry.getValue() == null) { + Label l = new Label(); + labels.put(l, entry.getKey()); + ln = new LabelNode(l); } else { - labelMap.put(Integer.parseInt(spl), null); + ln = entry.getValue(); + } + arr[counter] = ln; + counter++; + } + int[] _keys = new int[keys.size()]; + counter = 0; + for (int i : keys) { + _keys[counter] = i; + counter++; + } + return new LookupSwitchInsnNode(dflt, _keys, arr); + } + case "ireturn": { + return new InsnNode(172); + } + case "lreturn": { + return new InsnNode(173); + } + case "freturn": { + return new InsnNode(174); + } + case "dreturn": { + return new InsnNode(175); + } + case "areturn": { + return new InsnNode(176); + } + case "return": { + return new InsnNode(177); + } + case "getstatic": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new FieldInsnNode(178, target.substring(0, index), target.substring(index + 1), split[1]); + } + case "putstatic": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new FieldInsnNode(179, target.substring(0, index), target.substring(index + 1), split[1]); + } + case "getfield": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new FieldInsnNode(180, target.substring(0, index), target.substring(index + 1), split[1]); + } + case "putfield": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new FieldInsnNode(181, target.substring(0, index), target.substring(index + 1), split[1]); + } + case "invokevirtual": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new MethodInsnNode(182, target.substring(0, index), target.substring(index + 1), split[1], false); + } + case "invokespecial": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new MethodInsnNode(183, target.substring(0, index), target.substring(index + 1), split[1], false); + } + case "invokestatic": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new MethodInsnNode(184, target.substring(0, index), target.substring(index + 1), split[1], false); + } + case "invokeinterface": { + String target = split[2]; + int index = target.lastIndexOf("/"); + return new MethodInsnNode(185, target.substring(0, index), target.substring(index + 1), split[1], true); + } + case "invokedynamic": { + String str = s.substring(16, s.length() - 2).replace("", ""); + String sp[] = str.split("\n\t"); + ArrayList args = new ArrayList<>(); + ArrayList vals = new ArrayList<>(); + int stage = 0; + for (int i = 10; i < sp.length - 1; i++) { + String st = sp[i].substring(1); + if (st.equals("]")) { + if (stage == 1) { + try { + Constructor constr = Type.class.getDeclaredConstructor(int.class, char[].class, int.class, + int.class); + constr.setAccessible(true); + args.add(constr.newInstance(new Object[] { Integer.parseInt(vals.get(0).substring(6)), + vals.get(3).substring(6, vals.get(3).length() - 1).toCharArray(), + Integer.parseInt(vals.get(1).substring(5)), Integer.parseInt(vals.get(2).substring(5)) })); + } catch (Exception e) { + throw e; + } + } else if (stage == 2) { + args.add(new Handle(Integer.parseInt(vals.get(4).substring(5)), vals.get(1).substring(7), + vals.get(0).substring(6), vals.get(2).substring(6), + Boolean.parseBoolean(vals.get(3).substring(13)))); + vals.clear(); + } + stage = 0; + } else if (st.equals("Type: [")) { + stage = 1; + } else if (stage == 1) { + st = st.substring(1); + vals.add(st); + } else if (st.equals("Handle: [")) { + vals.clear(); + stage = 2; + } else if (stage == 2) { + st = st.substring(1); + vals.add(st); } } - } - - LabelNode dflt = null; - int labelNr = Integer.parseInt(split2[0].substring(9)); - for (Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - dflt = new LabelNode(entry.getKey()); - } - if (labelMap.containsKey(entry.getValue())) { - labelMap.replace(entry.getValue(), new LabelNode(entry.getKey())); + Object[] _args = new Object[args.size()]; + stage = 0; + for (Object o : args) { + _args[stage] = o; + stage++; } + return new InvokeDynamicInsnNode(sp[0].substring(7), sp[1].substring(6), + new Handle(Integer.parseInt(sp[7].substring(6)), sp[4].substring(8), sp[3].substring(7), sp[5].substring(7), + Boolean.parseBoolean(sp[6].substring(14))), + _args); } - if (dflt == null) { + case "new": { + return new TypeInsnNode(187, split[1]); + } + case "newarray": { + return new IntInsnNode(188, ClassUtil.getArrayIDByType(split[1])); + } + case "anewarray": { + return new TypeInsnNode(189, split[1]); + } + case "arraylength": { + return new InsnNode(190); + } + case "athrow": { + return new InsnNode(191); + } + case "checkcast": { + return new TypeInsnNode(192, split[1]); + } + case "instanceof": { + return new TypeInsnNode(193, split[1]); + } + case "monitorenter": { + return new InsnNode(194); + } + case "monitorexit": { + return new InsnNode(195); + } + case "multianewarray": { + return new MultiANewArrayInsnNode(split[1], Integer.parseInt(split[2])); + } + case "ifnull": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(198, new LabelNode(entry.getKey())); + } + } Label l = new Label(); labels.put(l, labelNr); - dflt = new LabelNode(l); + return new JumpInsnNode(198, new LabelNode(l)); } - - LabelNode[] arr = new LabelNode[labelMap.size()]; - - int counter = 0; - for (Entry entry : labelMap.entrySet()) { - LabelNode ln; - if (entry.getValue() == null) { - Label l = new Label(); - labels.put(l, entry.getKey()); - ln = new LabelNode(l); - } else { - ln = entry.getValue(); - } - arr[counter] = ln; - counter++; - } - - int[] _keys = new int[keys.size()]; - counter = 0; - - for (int i : keys) { - _keys[counter] = i; - counter++; - } - - return new LookupSwitchInsnNode(dflt, _keys, arr); - } - case "ireturn": { - return new InsnNode(172); - } - case "lreturn": { - return new InsnNode(173); - } - case "freturn": { - return new InsnNode(174); - } - case "dreturn": { - return new InsnNode(175); - } - case "areturn": { - return new InsnNode(176); - } - case "return": { - return new InsnNode(177); - } - case "getstatic": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new FieldInsnNode(178, target.substring(0, index), target.substring(index + 1), split[1]); - } - case "putstatic": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new FieldInsnNode(179, target.substring(0, index), target.substring(index + 1), split[1]); - } - case "getfield": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new FieldInsnNode(180, target.substring(0, index), target.substring(index + 1), split[1]); - } - case "putfield": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new FieldInsnNode(181, target.substring(0, index), target.substring(index + 1), split[1]); - } - case "invokevirtual": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new MethodInsnNode(182, target.substring(0, index), target.substring(index + 1), split[1], - false); - } - case "invokespecial": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new MethodInsnNode(183, target.substring(0, index), target.substring(index + 1), split[1], - false); - } - case "invokestatic": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new MethodInsnNode(184, target.substring(0, index), target.substring(index + 1), split[1], - false); - } - case "invokeinterface": { - String target = split[2]; - int index = target.lastIndexOf("/"); - return new MethodInsnNode(185, target.substring(0, index), target.substring(index + 1), split[1], true); - } - case "invokedynamic": { - String str = s.substring(16, s.length() - 2).replace("", ""); - String sp[] = str.split("\n\t"); - ArrayList args = new ArrayList<>(); - - ArrayList vals = new ArrayList<>(); - - int stage = 0; - for (int i = 10; i < sp.length - 1; i++) { - String st = sp[i].substring(1); - if (st.equals("]")) { - if (stage == 1) { - try { - Constructor constr = Type.class.getDeclaredConstructor(int.class, char[].class, - int.class, int.class); - constr.setAccessible(true); - args.add(constr.newInstance(new Object[] { Integer.parseInt(vals.get(0).substring(6)), - vals.get(3).substring(6, vals.get(3).length() - 1).toCharArray(), - Integer.parseInt(vals.get(1).substring(5)), - Integer.parseInt(vals.get(2).substring(5)) })); - } catch (Exception e) { - throw e; - } - } else if (stage == 2) { - args.add(new Handle(Integer.parseInt(vals.get(4).substring(5)), vals.get(1).substring(7), - vals.get(0).substring(6), vals.get(2).substring(6), - Boolean.parseBoolean(vals.get(3).substring(13)))); - vals.clear(); + case "ifnonnull": { + int labelNr = Integer.parseInt(s.split(" ")[1]); + for (Map.Entry entry : labels.entrySet()) { + if (entry.getValue() == labelNr) { + return new JumpInsnNode(199, new LabelNode(entry.getKey())); } - stage = 0; - } else if (st.equals("Type: [")) { - stage = 1; - } else if (stage == 1) { - st = st.substring(1); - vals.add(st); - } else if (st.equals("Handle: [")) { - vals.clear(); - stage = 2; - } else if (stage == 2) { - st = st.substring(1); - vals.add(st); } + Label l = new Label(); + labels.put(l, labelNr); + return new JumpInsnNode(199, new LabelNode(l)); } - - Object[] _args = new Object[args.size()]; - - stage = 0; - for (Object o : args) { - _args[stage] = o; - stage++; - } - - return new InvokeDynamicInsnNode(sp[0].substring(7), sp[1].substring(6), - new Handle(Integer.parseInt(sp[7].substring(6)), sp[4].substring(8), sp[3].substring(7), - sp[5].substring(7), Boolean.parseBoolean(sp[6].substring(14))), - _args); - } - case "new": { - return new TypeInsnNode(187, split[1]); - } - case "newarray": { - return new IntInsnNode(188, ClassUtil.getArrayIDByType(split[1])); - } - case "anewarray": { - return new TypeInsnNode(189, split[1]); - } - case "arraylength": { - return new InsnNode(190); - } - case "athrow": { - return new InsnNode(191); - } - case "checkcast": { - return new TypeInsnNode(192, split[1]); - } - case "instanceof": { - return new TypeInsnNode(193, split[1]); - } - case "monitorenter": { - return new InsnNode(194); - } - case "monitorexit": { - return new InsnNode(195); - } - case "multianewarray": { - return new MultiANewArrayInsnNode(split[1], Integer.parseInt(split[2])); - } - case "ifnull": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(198, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(198, new LabelNode(l)); - } - case "ifnonnull": { - int labelNr = Integer.parseInt(s.split(" ")[1]); - for (Map.Entry entry : labels.entrySet()) { - if (entry.getValue() == labelNr) { - return new JumpInsnNode(199, new LabelNode(entry.getKey())); - } - } - Label l = new Label(); - labels.put(l, labelNr); - return new JumpInsnNode(199, new LabelNode(l)); - } - default: - throw new IllegalArgumentException("Illegal Instruction: " + s); + default: + throw new IllegalArgumentException("Illegal Instruction: " + s); } } } -} \ No newline at end of file +} diff --git a/src/me/ByteEdit/main/ClassUtil.java b/src/me/ByteEdit/main/ClassUtil.java index 27495e0..ef565c2 100644 --- a/src/me/ByteEdit/main/ClassUtil.java +++ b/src/me/ByteEdit/main/ClassUtil.java @@ -8,7 +8,7 @@ import org.apache.commons.lang3.StringEscapeUtils; import org.objectweb.asm.Type; public class ClassUtil { - + public static final int ACC_PUBLIC = 0x0001; public static final int ACC_PRIVATE = 0x0002; public static final int ACC_PROTECTED = 0x0004; @@ -26,131 +26,131 @@ public class ClassUtil { public static final int ACC_ANNOTATION = 0x2000; public static final int ACC_ENUM = 0x4000; public static final int ACC_MANDATED = 0x8000; - + public static int getIDFromClassNameForType(String s) { s = s.toUpperCase(); switch (s) { - case "V": { - return 0; - } - case "Z": { - return 1; - } - case "C": { - return 2; - } - case "B": { - return 3; - } - case "S": { - return 4; - } - case "I": { - return 5; - } - case "F": { - return 6; - } - case "J": { - return 7; - } - case "D": { - return 8; - } - case "NAME": { - return 10; - } - default: { - return Integer.parseInt(s); - } + case "V": { + return 0; + } + case "Z": { + return 1; + } + case "C": { + return 2; + } + case "B": { + return 3; + } + case "S": { + return 4; + } + case "I": { + return 5; + } + case "F": { + return 6; + } + case "J": { + return 7; + } + case "D": { + return 8; + } + case "NAME": { + return 10; + } + default: { + return Integer.parseInt(s); + } } } - + public static String getClassNameFromType(Type type) { switch (type.getSort()) { - case 0: { - return "V"; - } - case 1: { - return "Z"; - } - case 2: { - return "C"; - } - case 3: { - return "B"; - } - case 4: { - return "S"; - } - case 5: { - return "I"; - } - case 6: { - return "F"; - } - case 7: { - return "J"; - } - case 8: { - return "D"; - } - case 9: { - return getClassNameFromType(type.getElementType()); - } - case 10: { - return "Name"; - } + case 0: { + return "V"; + } + case 1: { + return "Z"; + } + case 2: { + return "C"; + } + case 3: { + return "B"; + } + case 4: { + return "S"; + } + case 5: { + return "I"; + } + case 6: { + return "F"; + } + case 7: { + return "J"; + } + case 8: { + return "D"; + } + case 9: { + return getClassNameFromType(type.getElementType()); + } + case 10: { + return "Name"; + } } return Integer.toString(type.getSort()); } - + public static String getArrayTypeByID(int id) { switch (id) { - case 4: - return "Z"; - case 5: - return "C"; - case 6: - return "F"; - case 7: - return "D"; - case 8: - return "B"; - case 9: - return "S"; - case 10: - return "I"; - case 11: - return "J"; - default: - return Integer.toString(id); + case 4: + return "Z"; + case 5: + return "C"; + case 6: + return "F"; + case 7: + return "D"; + case 8: + return "B"; + case 9: + return "S"; + case 10: + return "I"; + case 11: + return "J"; + default: + return Integer.toString(id); } } - + public static int getArrayIDByType(String type) { switch (type) { - case "Z": - return 4; - case "C": - return 5; - case "F": - return 6; - case "D": - return 7; - case "B": - return 8; - case "S": - return 9; - case "I": - return 10; - case "J": - return 11; - default: - return Integer.parseInt(type); + case "Z": + return 4; + case "C": + return 5; + case "F": + return 6; + case "D": + return 7; + case "B": + return 8; + case "S": + return 9; + case "I": + return 10; + case "J": + return 11; + default: + return Integer.parseInt(type); } } - + public static String getAccessFlagsClass(int access) { String s = ""; if ((ACC_PUBLIC & access) != 0) { @@ -159,8 +159,7 @@ public class ClassUtil { if ((ACC_FINAL & access) != 0) { s += "final "; } - if ((ACC_ABSTRACT & access) != 0 && (ACC_ANNOTATION & access) == 0 && (ACC_ENUM & access) == 0 - && (ACC_INTERFACE & access) == 0) { + if ((ACC_ABSTRACT & access) != 0 && (ACC_ANNOTATION & access) == 0 && (ACC_ENUM & access) == 0 && (ACC_INTERFACE & access) == 0) { s += "abstract "; } if ((ACC_SYNTHETIC & access) != 0) { @@ -177,7 +176,7 @@ public class ClassUtil { } return s; } - + public static String getAccessFlagsFull(int access) { int acc = 0; String s = ""; @@ -251,7 +250,7 @@ public class ClassUtil { return "0x" + Integer.toHexString(access) + " "; } } - + /** * @return { JavaType, Import } */ @@ -264,53 +263,53 @@ public class ClassUtil { desc = desc.substring(1); } switch (desc.substring(0, 1)) { - case "B": - type = "byte"; - break; - case "Z": - type = "boolean"; - break; - case "I": - type = "int"; - break; - case "J": - type = "long"; - break; - case "C": - type = "char"; - break; - case "D": - type = "double"; - break; - case "F": - type = "float"; - break; - case "S": - type = "short"; - break; - case "V": - type = "void"; - break; - case "L": { - importName = desc.substring(1, desc.length() - 1).replace("/", "."); - if (!importName.contains(".")) { - type = importName; - importName = null; - } else { - type = importName.split("\\.")[importName.split("\\.").length - 1]; + case "B": + type = "byte"; + break; + case "Z": + type = "boolean"; + break; + case "I": + type = "int"; + break; + case "J": + type = "long"; + break; + case "C": + type = "char"; + break; + case "D": + type = "double"; + break; + case "F": + type = "float"; + break; + case "S": + type = "short"; + break; + case "V": + type = "void"; + break; + case "L": { + importName = desc.substring(1, desc.length() - 1).replace("/", "."); + if (!importName.contains(".")) { + type = importName; + importName = null; + } else { + type = importName.split("\\.")[importName.split("\\.").length - 1]; + } + break; } - break; - } - default: - type = "ERROR"; - break; + default: + type = "ERROR"; + break; } for (int i = 0; i < arrSize; i++) { type += "[]"; } return new String[] { type, importName }; } - + /** * @return { ReturnValue, ParameterValues, Imports } getrennt durch ";" */ @@ -322,7 +321,6 @@ public class ClassUtil { } ArrayList parameters = new ArrayList<>(); String parameterType = desc.split("\\)")[0].substring(1); - while (!parameterType.isEmpty()) { String type = ""; int arrSize = 0; @@ -330,75 +328,72 @@ public class ClassUtil { arrSize++; parameterType = parameterType.substring(1); } - switch (parameterType.substring(0, 1)) { - case "B": - type = "byte"; - parameterType = parameterType.substring(1); - break; - case "Z": - type = "boolean"; - parameterType = parameterType.substring(1); - break; - case "I": - type = "int"; - parameterType = parameterType.substring(1); - break; - case "J": - type = "long"; - parameterType = parameterType.substring(1); - break; - case "C": - type = "char"; - parameterType = parameterType.substring(1); - break; - case "D": - type = "double"; - parameterType = parameterType.substring(1); - break; - case "F": - type = "float"; - parameterType = parameterType.substring(1); - break; - case "S": - type = "short"; - parameterType = parameterType.substring(1); - break; - case "V": - type = "void"; - parameterType = parameterType.substring(1); - break; - case "L": { - String rofl = ""; - while (!parameterType.startsWith(";")) { + case "B": + type = "byte"; + parameterType = parameterType.substring(1); + break; + case "Z": + type = "boolean"; + parameterType = parameterType.substring(1); + break; + case "I": + type = "int"; + parameterType = parameterType.substring(1); + break; + case "J": + type = "long"; + parameterType = parameterType.substring(1); + break; + case "C": + type = "char"; + parameterType = parameterType.substring(1); + break; + case "D": + type = "double"; + parameterType = parameterType.substring(1); + break; + case "F": + type = "float"; + parameterType = parameterType.substring(1); + break; + case "S": + type = "short"; + parameterType = parameterType.substring(1); + break; + case "V": + type = "void"; + parameterType = parameterType.substring(1); + break; + case "L": { + String rofl = ""; + while (!parameterType.startsWith(";")) { + rofl += parameterType.substring(0, 1); + parameterType = parameterType.substring(1); + } rofl += parameterType.substring(0, 1); parameterType = parameterType.substring(1); + String importName = rofl.substring(1, rofl.length() - 1).replace("/", "."); + if (!importName.contains(".")) { + type = importName; + importName = null; + } else { + type = importName.split("\\.")[importName.split("\\.").length - 1]; + } + if (importName != null) { + imports.add(importName); + } + break; } - rofl += parameterType.substring(0, 1); - parameterType = parameterType.substring(1); - String importName = rofl.substring(1, rofl.length() - 1).replace("/", "."); - if (!importName.contains(".")) { - type = importName; - importName = null; - } else { - type = importName.split("\\.")[importName.split("\\.").length - 1]; - } - if (importName != null) { - imports.add(importName); - } - break; + default: + type = "ERROR"; + break; } - default: - type = "ERROR"; - break; - } - for (int i = 0; i < arrSize; i++) { type += "[]"; } parameters.add(type); } - String importStr = ""; for (String s : imports) { if (importStr.isEmpty()) { @@ -417,136 +412,126 @@ public class ClassUtil { } return new String[] { returnType[0], parameterStr, importStr }; } - + public static int countMethodParams(String desc) { int count = 0; String parameterType = desc.split("\\)")[0].substring(1); - while (!parameterType.isEmpty()) { while (parameterType.startsWith("[")) { parameterType = parameterType.substring(1); } - switch (parameterType.substring(0, 1)) { - case "B": - case "Z": - case "I": - case "J": - case "C": - case "D": - case "F": - case "S": - case "V": - parameterType = parameterType.substring(1); - count++; - break; - case "L": { - while (!parameterType.startsWith(";")) { + case "B": + case "Z": + case "I": + case "J": + case "C": + case "D": + case "F": + case "S": + case "V": parameterType = parameterType.substring(1); + count++; + break; + case "L": { + while (!parameterType.startsWith(";")) { + parameterType = parameterType.substring(1); + } + parameterType = parameterType.substring(1); + count++; + break; } - parameterType = parameterType.substring(1); - count++; - break; - } - default: - break; + default: + break; } } return count; } - + public static String getDecompiledValue(Object o, String desc) { switch (o.getClass().getName()) { - case "java.lang.String": { - return "\"" + StringEscapeUtils.escapeJava((String) o).replace("\n", "\\n").replace("\r", "\\r") + "\""; - } - case "java.lang.Integer": { - if (desc.equals("Z")) { - return ((int) o) == 0 ? "false" : "true"; + case "java.lang.String": { + return "\"" + StringEscapeUtils.escapeJava((String) o).replace("\n", "\\n").replace("\r", "\\r") + "\""; } - return o.toString(); - } - case "java.lang.Long": { - return o.toString() + "l"; - } - case "java.lang.Float": { - return o.toString() + "f"; - } - // case "java.util.ArrayList": { - // ArrayList list = (ArrayList) o; - // for (Object obj : list) { - // System.out.println(obj.getClass().getName()); - // } - // } - - default: - return o.toString(); + case "java.lang.Integer": { + if (desc.equals("Z")) { + return ((int) o) == 0 ? "false" : "true"; + } + return o.toString(); + } + case "java.lang.Long": { + return o.toString() + "l"; + } + case "java.lang.Float": { + return o.toString() + "f"; + } + // case "java.util.ArrayList": { + // ArrayList list = (ArrayList) o; + // for (Object obj : list) { + // System.out.println(obj.getClass().getName()); + // } + // } + default: + return o.toString(); } } - + public static Object getCastedValue(String o, String className) { switch (className) { - case "java/lang/String": { - return o; - } - case "java/lang/Integer": { - return Integer.parseInt(o); - } - case "java/lang/Long": { - return Long.parseLong(o); - } - case "java/lang/Float": { - return Float.parseFloat(o); - } - case "java/lang/Double": { - return Double.parseDouble(o); - } - case "java/lang/Boolean": { - return Boolean.parseBoolean(o); - } - case "java/lang/Short": { - return Short.parseShort(o); - } - case "java/lang/Byte": { - return Byte.parseByte(o); - } - default: - return o.toString(); + case "java/lang/String": { + return o; + } + case "java/lang/Integer": { + return Integer.parseInt(o); + } + case "java/lang/Long": { + return Long.parseLong(o); + } + case "java/lang/Float": { + return Float.parseFloat(o); + } + case "java/lang/Double": { + return Double.parseDouble(o); + } + case "java/lang/Boolean": { + return Boolean.parseBoolean(o); + } + case "java/lang/Short": { + return Short.parseShort(o); + } + case "java/lang/Byte": { + return Byte.parseByte(o); + } + default: + return o.toString(); } } - + public static String getSimpleDesc(String type) { String desc = ""; - for (int i = 0; i < countArraySize(type); i++) { desc += "["; } - type = type.replace("[]", ""); - if (VARS.containsKey(type)) { desc += VARS.get(type); } else { desc += "L" + type + ";"; } - return desc; } - + private static int countArraySize(String type) { int size = 0; - for (byte b : type.getBytes()) { if (b == ']') { size++; } } - return size; } - + public static final HashMap VARS = new HashMap<>(); - static { VARS.put("byte", "B"); VARS.put("char", "C"); @@ -558,7 +543,7 @@ public class ClassUtil { VARS.put("boolean", "Z"); VARS.put("void", "V"); } - + public static int externalArrayTypeDimensionCount(String s) { int i = 0; int j = "[]".length(); @@ -569,7 +554,7 @@ public class ClassUtil { } return i; } - + public static String internalMethodDescriptor(String returnType, String methodArgs) { returnType = returnType.replace(".", "/"); methodArgs = methodArgs.replace(".", "/"); @@ -581,7 +566,6 @@ public class ClassUtil { } buf.append(')'); buf.append(getSimpleDesc(returnType)); - return buf.toString(); } } diff --git a/src/me/ByteEdit/main/CustomBufferedReader.java b/src/me/ByteEdit/main/CustomBufferedReader.java index 883e86e..d687d66 100644 --- a/src/me/ByteEdit/main/CustomBufferedReader.java +++ b/src/me/ByteEdit/main/CustomBufferedReader.java @@ -7,7 +7,7 @@ import java.io.Reader; public class CustomBufferedReader extends BufferedReader { public int currentLine = 0; - + public CustomBufferedReader(Reader in) { super(in); } @@ -17,5 +17,4 @@ public class CustomBufferedReader extends BufferedReader { currentLine++; return super.readLine(); } - -} \ No newline at end of file +} diff --git a/src/me/ByteEdit/main/Disassembler.java b/src/me/ByteEdit/main/Disassembler.java index 24bca7c..46d9a21 100644 --- a/src/me/ByteEdit/main/Disassembler.java +++ b/src/me/ByteEdit/main/Disassembler.java @@ -35,7 +35,7 @@ import org.objectweb.asm.tree.TypeInsnNode; import org.objectweb.asm.tree.VarInsnNode; public class Disassembler { - + public static String disassemble(ClassNode classNode) { if (classNode == null) { return "ClassNode is null! This is not a valid java class file!"; @@ -104,8 +104,7 @@ public class Disassembler { s += "// #InnerClasses:\n"; if (classNode.innerClasses != null) { for (InnerClassNode icn : classNode.innerClasses) { - s += "// " + icn.name + " " + icn.outerName + " " + icn.innerName + " 0x" - + Integer.toHexString(icn.access) + "\n"; + s += "// " + icn.name + " " + icn.outerName + " " + icn.innerName + " 0x" + Integer.toHexString(icn.access) + "\n"; } } s += ClassUtil.getAccessFlagsClass(classNode.access) + classNode.name + " "; @@ -122,9 +121,7 @@ public class Disassembler { if (!interfaceStr.isEmpty()) s += "implements " + interfaceStr + " "; } - s += "{\n// #SourceFile: " + (classNode.sourceFile == null ? "null" : classNode.sourceFile) - + "\n\n// #Fields\n"; - + s += "{\n// #SourceFile: " + (classNode.sourceFile == null ? "null" : classNode.sourceFile) + "\n\n// #Fields\n"; for (FieldNode fn : classNode.fields) { if (fn.signature != null) s += "\t// #Signature: " + fn.signature + "\n"; @@ -189,19 +186,15 @@ public class Disassembler { } s += "\n"; } - s += "\n// #Methods\n"; - for (MethodNode mn : classNode.methods) { try { s += "\t// #Max: l:" + mn.maxLocals + " s:" + mn.maxStack + "\n"; if (mn.signature != null) s += "\t// #Signature: " + mn.signature + "\n"; - String[] dis = disassembleMethod(classNode.name, mn); s += dis[2]; s += dis[1]; - if (mn.visibleAnnotations != null && !mn.visibleAnnotations.isEmpty()) { for (AnnotationNode annotationNode : mn.visibleAnnotations) { s += "\t@" + annotationNode.desc; @@ -274,22 +267,19 @@ public class Disassembler { s += dis[0]; s += "\t}\n\n"; } catch (Exception e) { - s += "\t\t// Method couldn't be disassembled:\n\t\t// " - + e.getClass().getName() + ": " + e.getMessage() + "\n" + Arrays.toString(e.getStackTrace()) - .replace(", ", "\n\t\t// \tat ").replace("[", "\t\t// \tat ").replace("]", "") + s += "\t\t// Method couldn't be disassembled:\n\t\t// " + e.getClass().getName() + ": " + e.getMessage() + "\n" + Arrays + .toString(e.getStackTrace()).replace(", ", "\n\t\t// \tat ").replace("[", "\t\t// \tat ").replace("]", "") + "\n\t}\n\n"; } } - s += "}\n"; return s; } catch (Throwable e) { return "Class couldn't be decompiled:\n" + e.getClass().getName() + ": " + e.getMessage() + "\n" - + Arrays.toString(e.getStackTrace()).replace(", ", "\n\tat ").replace("[", "\tat ").replace("]", "") - + "\n"; + + Arrays.toString(e.getStackTrace()).replace(", ", "\n\tat ").replace("[", "\tat ").replace("]", "") + "\n"; } } - + private static String[] disassembleMethod(String className, MethodNode mn) { HashMap labels = new HashMap(); String s = ""; @@ -302,244 +292,234 @@ public class Disassembler { } if (mn.localVariables != null) { for (LocalVariableNode lvn : mn.localVariables) { - localVarTable += "\t// " + lvn.name + ": " + lvn.desc + " i:" + lvn.index + " s:" - + labels.get(lvn.start.getLabel()) + " e:" + labels.get(lvn.end.getLabel()) + " sig:" - + lvn.signature + "\n"; + localVarTable += "\t// " + lvn.name + ": " + lvn.desc + " i:" + lvn.index + " s:" + labels.get(lvn.start.getLabel()) + " e:" + + labels.get(lvn.end.getLabel()) + " sig:" + lvn.signature + "\n"; } } if (mn.tryCatchBlocks != null) { for (TryCatchBlockNode tcbn : mn.tryCatchBlocks) { - tryCatchTable += "\t// " + tcbn.type + " s:" + labels.get(tcbn.start.getLabel()) + " e:" - + labels.get(tcbn.end.getLabel()) + " h:" + labels.get(tcbn.handler.getLabel()) + "\n"; + tryCatchTable += "\t// " + tcbn.type + " s:" + labels.get(tcbn.start.getLabel()) + " e:" + labels.get(tcbn.end.getLabel()) + + " h:" + labels.get(tcbn.handler.getLabel()) + "\n"; } } for (AbstractInsnNode n : mn.instructions.toArray()) { switch (n.getClass().getSimpleName()) { - case "FieldInsnNode": { - FieldInsnNode node = (FieldInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + node.desc + " " + node.owner + "/" - + node.name + "\n"; - break; - } - case "LabelNode": { - LabelNode node = (LabelNode) n; - s += "\t\t// label " + labels.get(node.getLabel()) + "\n"; - break; - } - case "FrameNode": { - FrameNode node = (FrameNode) n; - s += "\t\t// frame " + node.type + " l:"; - ArrayList arr = new ArrayList<>(); - if (node.local != null) { - for (Object o : node.local) { - if (o == null) { - arr.add(null); - } else { - if (o instanceof String) { - arr.add((String) o); - } else if (o instanceof LabelNode) { - arr.add("(label) " + labels.get(((LabelNode) o).getLabel())); + case "FieldInsnNode": { + FieldInsnNode node = (FieldInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + node.desc + " " + node.owner + "/" + node.name + + "\n"; + break; + } + case "LabelNode": { + LabelNode node = (LabelNode) n; + s += "\t\t// label " + labels.get(node.getLabel()) + "\n"; + break; + } + case "FrameNode": { + FrameNode node = (FrameNode) n; + s += "\t\t// frame " + node.type + " l:"; + ArrayList arr = new ArrayList<>(); + if (node.local != null) { + for (Object o : node.local) { + if (o == null) { + arr.add(null); } else { - arr.add("(" + o.getClass().getName().replace(".", "/") + ") " + o); + if (o instanceof String) { + arr.add((String) o); + } else if (o instanceof LabelNode) { + arr.add("(label) " + labels.get(((LabelNode) o).getLabel())); + } else { + arr.add("(" + o.getClass().getName().replace(".", "/") + ") " + o); + } } } - } - s += arr.toString(); - } else { - s += "null"; - } - arr.clear(); - s += " s:"; - if (node.stack != null) { - for (Object o : node.stack) { - if (o == null) { - arr.add(null); - } else { - if (o instanceof String) { - arr.add((String) o); - } else if (o instanceof LabelNode) { - arr.add("(label) " + labels.get(((LabelNode) o).getLabel())); - } else { - arr.add("(" + o.getClass().getName().replace(".", "/") + ") " + o); - } - } - } - s += arr.toString(); - } else { - s += "null"; - } - s += "\n"; - break; - } - case "LineNumberNode": { - LineNumberNode node = (LineNumberNode) n; - s += "\t\t// line " + node.line + " " + labels.get(node.start.getLabel()) + "\n"; - break; - } - case "InvokeDynamicInsnNode": { - InvokeDynamicInsnNode node = (InvokeDynamicInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " [\n\t\t\tname: " + node.name - + "\n\t\t\tdesc: " + node.desc + "\n\t\t\tHandle: [\n\t\t\t\tname: " + node.bsm.getName() - + "\n\t\t\t\towner: " + node.bsm.getOwner() + "\n\t\t\t\tdesc: " + node.bsm.getDesc() - + "\n\t\t\t\tisInterface: " + node.bsm.isInterface() + "\n\t\t\t\ttag: " + node.bsm.getTag() - + "\n\t\t\t]\n\t\t\targs: [\n"; - for (Object l : node.bsmArgs) { - if (l.getClass().getName().equals("org.objectweb.asm.Type")) { - Type type = (Type) l; - int off = 0; - int len = 0; - char[] buf = null; - try { - Field f_off = Type.class.getDeclaredField("off"); - f_off.setAccessible(true); - off = f_off.getInt(type); - Field f_len = Type.class.getDeclaredField("len"); - f_len.setAccessible(true); - len = f_len.getInt(type); - Field f_buf = Type.class.getDeclaredField("buf"); - f_buf.setAccessible(true); - buf = (char[]) f_buf.get(type); - } catch (Exception e) { - } - s += "\t\t\t\tType: [\n\t\t\t\t\ttype: " + ClassUtil.getClassNameFromType(type) - + "\n\t\t\t\t\toff: " + off + "\n\t\t\t\t\tlen: " + len + "\n\t\t\t\t\tbuf: " - + ClassUtil.getDecompiledValue(new String(buf), ""); - s += "\n\t\t\t\t]\n"; - } else if (l.getClass().getName().equals("org.objectweb.asm.Handle")) { - Handle h = (Handle) l; - s += "\t\t\t\tHandle: [\n\t\t\t\t\tname: " + h.getName() + "\n\t\t\t\t\towner: " + h.getOwner() - + "\n\t\t\t\t\tdesc: " + h.getDesc() + "\n\t\t\t\t\tisInterface: " + h.isInterface() - + "\n\t\t\t\t\ttag: " + h.getTag(); - s += "\n\t\t\t\t]\n"; + s += arr.toString(); } else { - s += "\t\t\t\t" + ClassUtil.getDecompiledValue(l, "") + "\n"; + s += "null"; } - } - s += "\t\t\t]\n\t\t]\n"; - break; - } - case "MethodInsnNode": { - MethodInsnNode node = (MethodInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + node.desc + " " + node.owner + "/" - + node.name + "\n"; - break; - } - case "TypeInsnNode": { - TypeInsnNode node = (TypeInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.desc + "\n"; - break; - } - case "MultiANewArrayInsnNode": { - MultiANewArrayInsnNode node = (MultiANewArrayInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + node.desc + " " + node.dims + "\n"; - break; - } - case "LdcInsnNode": { - LdcInsnNode node = (LdcInsnNode) n; - switch (node.cst.getClass().getSimpleName()) { - case "String": - case "Double": - case "Integer": - case "Float": - case "Long": { - s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " - + ClassUtil.getDecompiledValue(node.cst, "") + "\n"; - break; - } - case "Type": { - Type type = (Type) node.cst; - int off = 0; - int len = 0; - char[] buf = null; - try { - Field f_off = Type.class.getDeclaredField("off"); - f_off.setAccessible(true); - off = f_off.getInt(type); - Field f_len = Type.class.getDeclaredField("len"); - f_len.setAccessible(true); - len = f_len.getInt(type); - Field f_buf = Type.class.getDeclaredField("buf"); - f_buf.setAccessible(true); - buf = (char[]) f_buf.get(type); - } catch (Exception e) { + arr.clear(); + s += " s:"; + if (node.stack != null) { + for (Object o : node.stack) { + if (o == null) { + arr.add(null); + } else { + if (o instanceof String) { + arr.add((String) o); + } else if (o instanceof LabelNode) { + arr.add("(label) " + labels.get(((LabelNode) o).getLabel())); + } else { + arr.add("(" + o.getClass().getName().replace(".", "/") + ") " + o); + } + } + } + s += arr.toString(); + } else { + s += "null"; } - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " Type: [\n\t\t\ttype: " - + ClassUtil.getClassNameFromType(type) + "\n\t\t\toff: " + off + "\n\t\t\tlen: " + len - + "\n\t\t\tbuf: " + ClassUtil.getDecompiledValue(new String(buf), ""); - s += "\n\t\t]\n"; + s += "\n"; break; } - default: { - s += "\t\tUNRESOLVED TYPE! " + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " - + node.cst.getClass().getName().replace(".", "/") + " " + node.cst + "\n"; + case "LineNumberNode": { + LineNumberNode node = (LineNumberNode) n; + s += "\t\t// line " + node.line + " " + labels.get(node.start.getLabel()) + "\n"; break; } + case "InvokeDynamicInsnNode": { + InvokeDynamicInsnNode node = (InvokeDynamicInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " [\n\t\t\tname: " + node.name + "\n\t\t\tdesc: " + + node.desc + "\n\t\t\tHandle: [\n\t\t\t\tname: " + node.bsm.getName() + "\n\t\t\t\towner: " + + node.bsm.getOwner() + "\n\t\t\t\tdesc: " + node.bsm.getDesc() + "\n\t\t\t\tisInterface: " + + node.bsm.isInterface() + "\n\t\t\t\ttag: " + node.bsm.getTag() + "\n\t\t\t]\n\t\t\targs: [\n"; + for (Object l : node.bsmArgs) { + if (l.getClass().getName().equals("org.objectweb.asm.Type")) { + Type type = (Type) l; + int off = 0; + int len = 0; + char[] buf = null; + try { + Field f_off = Type.class.getDeclaredField("off"); + f_off.setAccessible(true); + off = f_off.getInt(type); + Field f_len = Type.class.getDeclaredField("len"); + f_len.setAccessible(true); + len = f_len.getInt(type); + Field f_buf = Type.class.getDeclaredField("buf"); + f_buf.setAccessible(true); + buf = (char[]) f_buf.get(type); + } catch (Exception e) {} + s += "\t\t\t\tType: [\n\t\t\t\t\ttype: " + ClassUtil.getClassNameFromType(type) + "\n\t\t\t\t\toff: " + off + + "\n\t\t\t\t\tlen: " + len + "\n\t\t\t\t\tbuf: " + ClassUtil.getDecompiledValue(new String(buf), ""); + s += "\n\t\t\t\t]\n"; + } else if (l.getClass().getName().equals("org.objectweb.asm.Handle")) { + Handle h = (Handle) l; + s += "\t\t\t\tHandle: [\n\t\t\t\t\tname: " + h.getName() + "\n\t\t\t\t\towner: " + h.getOwner() + + "\n\t\t\t\t\tdesc: " + h.getDesc() + "\n\t\t\t\t\tisInterface: " + h.isInterface() + + "\n\t\t\t\t\ttag: " + h.getTag(); + s += "\n\t\t\t\t]\n"; + } else { + s += "\t\t\t\t" + ClassUtil.getDecompiledValue(l, "") + "\n"; + } + } + s += "\t\t\t]\n\t\t]\n"; + break; } - break; - } - case "VarInsnNode": { - VarInsnNode node = (VarInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.var + "\n"; - break; - } - case "InsnNode": { - InsnNode node = (InsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + "\n"; - break; - } - case "IntInsnNode": { - IntInsnNode node = (IntInsnNode) n; - if (n.getOpcode() == 188) { - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " - + ClassUtil.getArrayTypeByID(node.operand) + "\n"; - } else { - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.operand + "\n"; + case "MethodInsnNode": { + MethodInsnNode node = (MethodInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + node.desc + " " + node.owner + "/" + node.name + + "\n"; + break; } - break; - } - case "JumpInsnNode": { - JumpInsnNode node = (JumpInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + labels.get(node.label.getLabel()) - + "\n"; - break; - } - case "TableSwitchInsnNode": { - TableSwitchInsnNode node = (TableSwitchInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " [\n\t\t\tmin: " + node.min - + "\n\t\t\tmax: " + node.max + "\n\t\t\tdefault: " + labels.get(node.dflt.getLabel()) - + "\n\t\t\tlabels: [\n"; - for (LabelNode l : node.labels) { - s += "\t\t\t\t" + labels.get(l.getLabel()) + "\n"; + case "TypeInsnNode": { + TypeInsnNode node = (TypeInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.desc + "\n"; + break; } - s += "\t\t\t]\n\t\t]\n"; - break; - } - case "LookupSwitchInsnNode": { - LookupSwitchInsnNode node = (LookupSwitchInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " [\n\t\t\tdefault: " - + labels.get(node.dflt.getLabel()) + "\n\t\t\tkeys: [\n"; - for (Integer l : node.keys) { - s += "\t\t\t\t" + l + "\n"; + case "MultiANewArrayInsnNode": { + MultiANewArrayInsnNode node = (MultiANewArrayInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + node.desc + " " + node.dims + "\n"; + break; } - s += "\t\t\t]" + "\n\t\t\tlabels: [\n"; - for (LabelNode l : node.labels) { - s += "\t\t\t\t" + labels.get(l.getLabel()) + "\n"; + case "LdcInsnNode": { + LdcInsnNode node = (LdcInsnNode) n; + switch (node.cst.getClass().getSimpleName()) { + case "String": + case "Double": + case "Integer": + case "Float": + case "Long": { + s += "\t\t" + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + ClassUtil.getDecompiledValue(node.cst, "") + + "\n"; + break; + } + case "Type": { + Type type = (Type) node.cst; + int off = 0; + int len = 0; + char[] buf = null; + try { + Field f_off = Type.class.getDeclaredField("off"); + f_off.setAccessible(true); + off = f_off.getInt(type); + Field f_len = Type.class.getDeclaredField("len"); + f_len.setAccessible(true); + len = f_len.getInt(type); + Field f_buf = Type.class.getDeclaredField("buf"); + f_buf.setAccessible(true); + buf = (char[]) f_buf.get(type); + } catch (Exception e) {} + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " Type: [\n\t\t\ttype: " + + ClassUtil.getClassNameFromType(type) + "\n\t\t\toff: " + off + "\n\t\t\tlen: " + len + "\n\t\t\tbuf: " + + ClassUtil.getDecompiledValue(new String(buf), ""); + s += "\n\t\t]\n"; + break; + } + default: { + s += "\t\tUNRESOLVED TYPE! " + OpcodesReverse.reverseOpcode(node.getOpcode()) + " " + + node.cst.getClass().getName().replace(".", "/") + " " + node.cst + "\n"; + break; + } + } + break; } - s += "\t\t\t]\n\t\t]\n"; - break; - } - case "IincInsnNode": { - IincInsnNode node = (IincInsnNode) n; - s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.var + " " + node.incr + "\n"; - break; - } - default: - s += "\t\tNOT HANDLED! " + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " - + n.getClass().getSimpleName() + "\n"; - break; + case "VarInsnNode": { + VarInsnNode node = (VarInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.var + "\n"; + break; + } + case "InsnNode": { + InsnNode node = (InsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + "\n"; + break; + } + case "IntInsnNode": { + IntInsnNode node = (IntInsnNode) n; + if (n.getOpcode() == 188) { + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + ClassUtil.getArrayTypeByID(node.operand) + "\n"; + } else { + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.operand + "\n"; + } + break; + } + case "JumpInsnNode": { + JumpInsnNode node = (JumpInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + labels.get(node.label.getLabel()) + "\n"; + break; + } + case "TableSwitchInsnNode": { + TableSwitchInsnNode node = (TableSwitchInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " [\n\t\t\tmin: " + node.min + "\n\t\t\tmax: " + node.max + + "\n\t\t\tdefault: " + labels.get(node.dflt.getLabel()) + "\n\t\t\tlabels: [\n"; + for (LabelNode l : node.labels) { + s += "\t\t\t\t" + labels.get(l.getLabel()) + "\n"; + } + s += "\t\t\t]\n\t\t]\n"; + break; + } + case "LookupSwitchInsnNode": { + LookupSwitchInsnNode node = (LookupSwitchInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " [\n\t\t\tdefault: " + labels.get(node.dflt.getLabel()) + + "\n\t\t\tkeys: [\n"; + for (Integer l : node.keys) { + s += "\t\t\t\t" + l + "\n"; + } + s += "\t\t\t]" + "\n\t\t\tlabels: [\n"; + for (LabelNode l : node.labels) { + s += "\t\t\t\t" + labels.get(l.getLabel()) + "\n"; + } + s += "\t\t\t]\n\t\t]\n"; + break; + } + case "IincInsnNode": { + IincInsnNode node = (IincInsnNode) n; + s += "\t\t" + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + node.var + " " + node.incr + "\n"; + break; + } + default: + s += "\t\tNOT HANDLED! " + OpcodesReverse.reverseOpcode(n.getOpcode()) + " " + n.getClass().getSimpleName() + "\n"; + break; } } return new String[] { s, localVarTable, tryCatchTable }; } - -} \ No newline at end of file +} diff --git a/src/me/ByteEdit/main/ExternalTypeEnumeration.java b/src/me/ByteEdit/main/ExternalTypeEnumeration.java index 70d1cc3..d491ff0 100644 --- a/src/me/ByteEdit/main/ExternalTypeEnumeration.java +++ b/src/me/ByteEdit/main/ExternalTypeEnumeration.java @@ -1,47 +1,44 @@ package me.ByteEdit.main; public class ExternalTypeEnumeration { + private String descriptor; private int index; - + public ExternalTypeEnumeration(String paramString) { setDescriptor(paramString); } - - ExternalTypeEnumeration() { - } - + + ExternalTypeEnumeration() {} + void setDescriptor(String paramString) { this.descriptor = paramString; - reset(); } - + public void reset() { this.index = (this.descriptor.indexOf('(') + 1); if (this.index < 1) { throw new IllegalArgumentException("Missing opening parenthesis in descriptor [" + this.descriptor + "]"); } } - + public boolean hasMoreTypes() { return this.index < this.descriptor.length() - 1; } - + public String nextType() { int i = this.index; - this.index = this.descriptor.indexOf(',', i); if (this.index < 0) { this.index = this.descriptor.indexOf(')', i); if (this.index < 0) { - throw new IllegalArgumentException( - "Missing closing parenthesis in descriptor [" + this.descriptor + "]"); + throw new IllegalArgumentException("Missing closing parenthesis in descriptor [" + this.descriptor + "]"); } } return this.descriptor.substring(i, this.index++).trim(); } - + public String methodName() { return this.descriptor.substring(0, this.descriptor.indexOf('(')).trim(); } diff --git a/src/me/ByteEdit/main/JavaAssemblyTokenMaker.java b/src/me/ByteEdit/main/JavaAssemblyTokenMaker.java index 05ea7b7..bf1db8d 100644 --- a/src/me/ByteEdit/main/JavaAssemblyTokenMaker.java +++ b/src/me/ByteEdit/main/JavaAssemblyTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 03.07.18 15:04 */ - /* * 11/13/2004 - * * JavaAssemblyTokenMaker.java - Scanner for the Java programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package me.ByteEdit.main; @@ -59,77 +56,59 @@ import org.fife.ui.rsyntaxtextarea.TokenImpl; * @version 1.0 * */ - public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { - + /** 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 EOL_COMMENT = 3; public static final int DOCCOMMENT = 2; public static final int YYINITIAL = 0; public static final int MLC = 1; - /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = "\11\0\1\23\1\11\1\0\1\23\1\20\22\0\1\23\1\53\1\16" - + "\1\21\1\22\1\53\1\55\1\10\2\77\1\25\1\46\1\45\1\34" - + "\1\35\1\24\1\4\1\5\1\100\1\17\1\101\1\102\1\126\1\7" + "\2\3\1\56\1\45\1\47\1\50\1\52\1\54\1\76\1\6\1\27" - + "\1\110\1\67\1\33\1\32\1\123\1\116\1\111\1\112\1\1\1\26" - + "\1\117\1\120\1\121\1\122\1\125\1\74\1\113\1\114\1\115\1\106" - + "\1\124\1\31\1\1\1\107\1\77\1\12\1\77\1\51\1\2\1\0" - + "\1\41\1\30\1\63\1\61\1\40\1\15\1\72\1\57\1\65\1\104" - + "\1\75\1\42\1\66\1\14\1\60\1\62\1\103\1\37\1\43\1\36" + + "\1\21\1\22\1\53\1\55\1\10\2\77\1\25\1\46\1\45\1\34" + "\1\35\1\24\1\4\1\5\1\100\1\17\1\101\1\102\1\126\1\7" + + "\2\3\1\56\1\45\1\47\1\50\1\52\1\54\1\76\1\6\1\27" + "\1\110\1\67\1\33\1\32\1\123\1\116\1\111\1\112\1\1\1\26" + + "\1\117\1\120\1\121\1\122\1\125\1\74\1\113\1\114\1\115\1\106" + "\1\124\1\31\1\1\1\107\1\77\1\12\1\77\1\51\1\2\1\0" + + "\1\41\1\30\1\63\1\61\1\40\1\15\1\72\1\57\1\65\1\104" + "\1\75\1\42\1\66\1\14\1\60\1\62\1\103\1\37\1\43\1\36" + "\1\13\1\71\1\70\1\64\1\73\1\105\1\127\1\51\1\44\1\54" + "\uff81\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 = "\4\0\1\1\1\2\2\3\1\2\1\4\1\5\2\2" - + "\1\6\1\1\1\7\2\10\1\2\1\11\1\2\1\11" + "\1\2\1\10\7\2\1\12\1\2\5\10\5\2\1\11" - + "\4\2\1\13\1\2\5\11\12\2\1\14\1\15\5\14" + "\1\16\10\14\1\17\3\14\1\1\2\20\1\21\1\3" - + "\1\20\1\21\2\20\1\22\2\20\5\2\1\4\1\23" + "\1\0\1\4\17\2\2\6\1\24\1\25\1\26\55\2" - + "\1\0\1\10\3\2\1\27\13\2\1\27\23\2\1\13" + "\57\2\2\0\1\30\4\0\1\31\2\0\1\32\22\0" - + "\1\1\1\3\1\21\1\0\2\22\1\3\1\22\6\2" + "\1\4\1\33\2\4\1\23\1\4\1\2\1\27\15\2" - + "\1\6\1\34\1\6\1\35\34\2\1\27\24\2\1\27" + "\6\2\1\27\35\2\1\1\31\2\1\36\26\2\1\36" - + "\24\2\37\0\1\1\2\20\6\2\1\4\7\2\1\6" + "\1\37\1\36\3\2\1\36\5\2\1\36\7\2\2\36" - + "\6\2\1\40\22\2\1\27\37\2\1\1\62\2\1\0" + "\31\2\2\0\1\41\2\0\1\42\10\0\1\43\17\0" - + "\1\44\1\1\6\2\1\4\3\2\1\27\1\6\37\2" + "\1\27\46\2\1\1\4\2\1\36\32\2\1\36\13\2" - + "\1\36\7\2\1\0\31\2\35\0\1\1\10\2\1\4" + "\4\2\1\6\1\36\5\2\1\36\27\2\1\45\32\2" - + "\1\36\1\1\36\2\1\36\12\2\1\36\11\2\1\0" + "\2\2\1\36\10\2\1\36\12\2\22\0\10\2\1\0" - + "\4\2\1\0\47\2\1\36\2\2\1\1\53\2\1\0" + "\12\2\1\0\23\2\1\36\6\2\2\0\1\43\6\0" - + "\4\2\4\0\4\2\2\0\41\2\1\36\52\2\2\0" + "\10\2\1\0\20\2\1\36\12\2\11\0\4\2\4\0" - + "\3\2\1\0\3\2\1\36\10\2\1\36\14\2\1\36" + "\3\2\1\0\4\2\1\36\43\2\2\0\7\2\1\36" - + "\30\2\5\0\4\2\4\0\1\2\1\0\2\2\1\0" + "\22\2\1\0\3\2\1\36\35\2\2\0\32\2\5\0" - + "\3\2\1\36\4\0\2\2\1\0\1\2\1\36\12\2" + "\2\0\7\2\1\36\22\2\1\36\2\0\13\2\1\36" - + "\7\2\2\0\3\2\5\0\2\2\1\0\6\2\1\36" + "\2\2\2\0\17\2\1\36\2\2\1\36\2\2\1\0" - + "\1\36\1\2\1\0\13\2\1\36\3\2\1\36\6\2" + "\4\0\2\2\1\0\2\2\1\36\4\2\2\0\15\2" - + "\2\0\1\2\1\0\23\2\3\0\2\2\1\0\4\2" + "\1\36\1\2\2\0\14\2\2\0\1\2\1\0\15\2" - + "\1\36\3\2\3\0\2\2\1\0\3\2\3\0\12\2" + "\5\0\1\2\1\0\12\2\1\0\3\2\3\0\1\2" - + "\1\0\2\2\2\0\11\2\5\0\6\2\1\0\2\2" + "\3\0\1\2\1\0\1\2\2\0\5\2\5\0\2\2" - + "\1\36\2\2\1\0\1\36\1\2\3\0\1\2\1\0" + "\1\2\3\0\3\2\4\0\2\2\1\0\1\2\1\36" - + "\3\0\1\2\1\0\1\2\3\0\2\2\3\0\1\2" + "\1\0\1\2\4\0\1\2\1\0\1\2\3\0\1\2" + private static final String ZZ_ACTION_PACKED_0 = "\4\0\1\1\1\2\2\3\1\2\1\4\1\5\2\2" + "\1\6\1\1\1\7\2\10\1\2\1\11\1\2\1\11" + + "\1\2\1\10\7\2\1\12\1\2\5\10\5\2\1\11" + "\4\2\1\13\1\2\5\11\12\2\1\14\1\15\5\14" + "\1\16\10\14\1\17\3\14\1\1\2\20\1\21\1\3" + + "\1\20\1\21\2\20\1\22\2\20\5\2\1\4\1\23" + "\1\0\1\4\17\2\2\6\1\24\1\25\1\26\55\2" + "\1\0\1\10\3\2\1\27\13\2\1\27\23\2\1\13" + + "\57\2\2\0\1\30\4\0\1\31\2\0\1\32\22\0" + "\1\1\1\3\1\21\1\0\2\22\1\3\1\22\6\2" + "\1\4\1\33\2\4\1\23\1\4\1\2\1\27\15\2" + + "\1\6\1\34\1\6\1\35\34\2\1\27\24\2\1\27" + "\6\2\1\27\35\2\1\1\31\2\1\36\26\2\1\36" + "\24\2\37\0\1\1\2\20\6\2\1\4\7\2\1\6" + + "\1\37\1\36\3\2\1\36\5\2\1\36\7\2\2\36" + "\6\2\1\40\22\2\1\27\37\2\1\1\62\2\1\0" + "\31\2\2\0\1\41\2\0\1\42\10\0\1\43\17\0" + + "\1\44\1\1\6\2\1\4\3\2\1\27\1\6\37\2" + "\1\27\46\2\1\1\4\2\1\36\32\2\1\36\13\2" + "\1\36\7\2\1\0\31\2\35\0\1\1\10\2\1\4" + + "\4\2\1\6\1\36\5\2\1\36\27\2\1\45\32\2" + "\1\36\1\1\36\2\1\36\12\2\1\36\11\2\1\0" + "\2\2\1\36\10\2\1\36\12\2\22\0\10\2\1\0" + + "\4\2\1\0\47\2\1\36\2\2\1\1\53\2\1\0" + "\12\2\1\0\23\2\1\36\6\2\2\0\1\43\6\0" + "\4\2\4\0\4\2\2\0\41\2\1\36\52\2\2\0" + + "\10\2\1\0\20\2\1\36\12\2\11\0\4\2\4\0" + "\3\2\1\0\3\2\1\36\10\2\1\36\14\2\1\36" + "\3\2\1\0\4\2\1\36\43\2\2\0\7\2\1\36" + + "\30\2\5\0\4\2\4\0\1\2\1\0\2\2\1\0" + "\22\2\1\0\3\2\1\36\35\2\2\0\32\2\5\0" + "\3\2\1\36\4\0\2\2\1\0\1\2\1\36\12\2" + + "\2\0\7\2\1\36\22\2\1\36\2\0\13\2\1\36" + "\7\2\2\0\3\2\5\0\2\2\1\0\6\2\1\36" + "\2\2\2\0\17\2\1\36\2\2\1\36\2\2\1\0" + + "\1\36\1\2\1\0\13\2\1\36\3\2\1\36\6\2" + "\4\0\2\2\1\0\2\2\1\36\4\2\2\0\15\2" + "\2\0\1\2\1\0\23\2\3\0\2\2\1\0\4\2" + + "\1\36\1\2\2\0\14\2\2\0\1\2\1\0\15\2" + "\1\36\3\2\3\0\2\2\1\0\3\2\3\0\12\2" + "\5\0\1\2\1\0\12\2\1\0\3\2\3\0\1\2" + + "\1\0\2\2\2\0\11\2\5\0\6\2\1\0\2\2" + "\3\0\1\2\1\0\1\2\2\0\5\2\5\0\2\2" + "\1\36\2\2\1\0\1\36\1\2\3\0\1\2\1\0" + + "\1\2\3\0\3\2\4\0\2\2\1\0\1\2\1\36" + "\3\0\1\2\1\0\1\2\3\0\2\2\3\0\1\2" + "\1\0\1\2\4\0\1\2\1\0\1\2\3\0\1\2" + "\10\0\1\2\1\0\1\2\31\0\1\36\37\0"; - + private static int[] zzUnpackAction() { int[] result = new int[2035]; 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 */ @@ -143,12 +122,11 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { } 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\130\0\260\0\u0108\0\u0160\0\u01b8\0\u0210\0\u0268" + "\0\u02c0\0\u0318\0\u0370\0\u03c8\0\u0420\0\u0478\0\u0370\0\u04d0" + "\0\u0528\0\u0580\0\u05d8\0\u0630\0\u0688\0\u06e0\0\u0738\0\u0790" @@ -403,14 +381,14 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { + "\2\ua530\2\ua588\2\ua5e0\2\ua638\2\ua690\2\ua6e8\2\ua740\2\ua798" + "\2\ua7f0\2\ua848\2\ua8a0\2\ua8f8\2\ua950\2\ua9a8\2\uaa00\2\uaa58" + "\2\uaab0\2\uab08\2\uab60\2\uabb8\2\uac10\2\uac68\2\uacc0\2\uad18" + "\2\uad70\2\uadc8\2\uae20"; - + private static int[] zzUnpackRowMap() { int[] result = new int[2035]; 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 */ @@ -421,108 +399,81 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { } return j; } - + /** * The transition table of the DFA */ private static final int[] ZZ_TRANS = zzUnpackTrans(); - - private static final String ZZ_TRANS_PACKED_0 = "\1\5\2\6\1\7\1\10\1\7\1\11\1\7\1\12" - + "\1\13\1\5\1\6\1\14\1\15\1\16\1\7\1\17" + "\1\5\1\6\1\20\1\21\1\22\1\23\1\24\1\25" - + "\1\6\1\26\1\27\1\30\1\31\1\32\1\33\1\34" + "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\2\22" - + "\1\44\1\22\1\45\1\46\1\45\2\6\1\47\1\50" + "\1\51\1\6\1\52\1\53\1\54\1\55\1\56\1\57" - + "\1\6\1\60\1\6\1\61\1\40\3\7\1\6\1\62" + "\1\6\1\63\1\64\1\65\1\66\1\64\1\67\1\70" + private static final String ZZ_TRANS_PACKED_0 = "\1\5\2\6\1\7\1\10\1\7\1\11\1\7\1\12" + "\1\13\1\5\1\6\1\14\1\15\1\16\1\7\1\17" + + "\1\5\1\6\1\20\1\21\1\22\1\23\1\24\1\25" + "\1\6\1\26\1\27\1\30\1\31\1\32\1\33\1\34" + + "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\2\22" + "\1\44\1\22\1\45\1\46\1\45\2\6\1\47\1\50" + + "\1\51\1\6\1\52\1\53\1\54\1\55\1\56\1\57" + "\1\6\1\60\1\6\1\61\1\40\3\7\1\6\1\62" + "\1\6\1\63\1\64\1\65\1\66\1\64\1\67\1\70" + "\1\71\1\72\1\73\1\74\1\75\1\76\1\77\1\100" + "\1\101\1\7\1\40\11\102\1\103\3\102\1\104\7\102" - + "\1\105\31\102\1\106\10\102\1\107\37\102\11\110\1\111" - + "\3\110\1\112\7\110\1\113\21\110\1\114\7\110\1\115" - + "\10\110\1\116\5\110\1\117\30\110\1\120\11\121\1\122" - + "\3\121\1\123\41\121\1\124\10\121\1\125\37\121\10\5" + "\2\0\4\5\1\0\1\5\1\0\2\5\3\0\6\5" - + "\2\0\6\5\13\0\20\5\1\0\27\5\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\2\127\1\130\3\7\1\127\1\7" - + "\2\0\3\127\1\131\1\0\1\7\1\0\2\127\3\0" + "\1\132\3\127\1\131\1\133\1\0\1\134\2\127\1\133" - + "\1\127\1\132\1\127\13\0\2\127\1\131\5\127\1\131" + "\7\127\1\0\3\7\23\127\1\7\1\0\2\127\1\135" - + "\1\136\2\137\1\127\1\137\2\0\3\127\1\131\1\0" + "\1\137\1\0\2\127\3\0\1\132\2\140\1\141\1\131" - + "\1\133\1\0\1\134\2\127\1\133\1\127\1\132\1\127" + "\13\0\2\127\1\131\2\127\1\141\2\127\1\131\7\127" - + "\1\0\3\137\23\127\1\137\1\0\1\5\7\6\2\0" + "\1\126\1\142\2\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\2\6\1\143\3\6\2\0\1\6\1\144\3\6" + "\1\145\13\0\3\6\1\146\13\6\1\5\1\0\27\6" + + "\1\105\31\102\1\106\10\102\1\107\37\102\11\110\1\111" + "\3\110\1\112\7\110\1\113\21\110\1\114\7\110\1\115" + + "\10\110\1\116\5\110\1\117\30\110\1\120\11\121\1\122" + "\3\121\1\123\41\121\1\124\10\121\1\125\37\121\10\5" + + "\2\0\4\5\1\0\1\5\1\0\2\5\3\0\6\5" + "\2\0\6\5\13\0\20\5\1\0\27\5\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\2\127\1\130\3\7\1\127\1\7" + "\2\0\3\127\1\131\1\0\1\7\1\0\2\127\3\0" + + "\1\132\3\127\1\131\1\133\1\0\1\134\2\127\1\133" + "\1\127\1\132\1\127\13\0\2\127\1\131\5\127\1\131" + + "\7\127\1\0\3\7\23\127\1\7\1\0\2\127\1\135" + "\1\136\2\137\1\127\1\137\2\0\3\127\1\131\1\0" + + "\1\137\1\0\2\127\3\0\1\132\2\140\1\141\1\131" + "\1\133\1\0\1\134\2\127\1\133\1\127\1\132\1\127" + + "\13\0\2\127\1\131\2\127\1\141\2\127\1\131\7\127" + "\1\0\3\137\23\127\1\137\1\0\1\5\7\6\2\0" + + "\1\126\1\142\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\143\3\6\2\0\1\6\1\144\3\6" + "\1\145\13\0\3\6\1\146\13\6\1\5\1\0\27\6" + "\1\0\10\147\1\150\1\151\1\152\115\147\130\0\1\5" + "\7\6\2\0\1\126\1\153\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\154\1\155" + "\2\6\13\0\1\6\1\156\15\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\157\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\160\1\6\1\161\1\162\1\163\13\0\1\6" + "\1\164\1\165\1\6\1\166\1\6\1\167\1\170\7\6" - + "\1\5\1\0\1\171\26\6\1\0\11\16\1\172\1\173" + "\3\16\1\174\111\16\23\0\1\20\130\0\1\175\1\176" - + "\22\0\1\45\127\0\1\45\57\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\177\4\6\1\200" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\201\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\202\2\6\13\0\1\6" - + "\1\203\4\6\1\204\5\6\1\205\2\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\206\1\6\1\207\2\6\13\0\6\6\1\210\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\211\1\6\13\0\1\6\1\212\4\6" + "\1\213\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\214\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\215\4\6" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\154\1\155" + "\2\6\13\0\1\6\1\156\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\157\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\160\1\6\1\161\1\162\1\163\13\0\1\6" + + "\1\164\1\165\1\6\1\166\1\6\1\167\1\170\7\6" + "\1\5\1\0\1\171\26\6\1\0\11\16\1\172\1\173" + + "\3\16\1\174\111\16\23\0\1\20\130\0\1\175\1\176" + "\22\0\1\45\127\0\1\45\57\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\177\4\6\1\200" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\1\201\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\202\2\6\13\0\1\6" + "\1\203\4\6\1\204\5\6\1\205\2\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\206\1\6\1\207\2\6\13\0\6\6\1\210\10\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\211\1\6\13\0\1\6\1\212\4\6" + + "\1\213\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\214\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\215\4\6" + "\13\0\5\6\1\216\1\6\1\217\2\6\1\220\4\6" + "\1\5\1\0\21\6\1\221\5\6\35\0\1\45\13\0" - + "\1\45\62\0\3\134\1\0\1\134\7\0\1\134\60\0" + "\3\134\23\0\1\134\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\222\1\6\1\223\2\6\13\0\1\224" - + "\16\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\225\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" - + "\1\226\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\227\1\6\13\0\5\6\1\230" - + "\11\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\231\1\6\1\0\1\6\1\0\1\5" + + "\1\45\62\0\3\134\1\0\1\134\7\0\1\134\60\0" + "\3\134\23\0\1\134\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\222\1\6\1\223\2\6\13\0\1\224" + "\16\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\225\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\226\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\4\6\1\227\1\6\13\0\5\6\1\230" + "\11\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\231\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\232\3\6\2\0\1\233\1\234" + "\1\6\1\207\1\162\1\235\13\0\4\6\1\236\12\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\237\1\157\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\160\1\6\1\240\1\162" + "\1\241\13\0\1\6\1\242\1\243\1\6\1\244\1\245" - + "\1\246\1\170\7\6\1\5\1\0\1\247\26\6\1\0" + "\1\5\7\6\2\0\1\126\1\250\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\251\2\6" + "\1\207\2\6\13\0\6\6\1\210\2\6\1\252\2\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\237\1\157\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\160\1\6\1\240\1\162" + + "\1\241\13\0\1\6\1\242\1\243\1\6\1\244\1\245" + "\1\246\1\170\7\6\1\5\1\0\1\247\26\6\1\0" + + "\1\5\7\6\2\0\1\126\1\250\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\251\2\6" + "\1\207\2\6\13\0\6\6\1\210\2\6\1\252\2\6" + "\1\253\2\6\1\5\1\0\27\6\47\0\1\45\1\0" + "\1\45\126\0\1\254\1\45\127\0\1\45\1\0\1\255" - + "\125\0\1\45\4\0\1\45\52\0\1\5\7\6\2\0" + "\1\126\1\256\1\157\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\160\1\257\1\260" + "\1\162\1\163\13\0\1\6\1\261\1\165\1\6\1\262" - + "\2\6\1\170\7\6\1\5\1\0\1\263\26\6\1\0" + "\1\5\7\6\2\0\1\126\1\264\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\265" + "\1\6\1\266\2\6\13\0\1\6\1\267\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\270\1\271\1\6\13\0\1\272\1\273\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\237\1\274\1\275\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\160\1\6\1\276\1\162" + + "\125\0\1\45\4\0\1\45\52\0\1\5\7\6\2\0" + "\1\126\1\256\1\157\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\160\1\257\1\260" + + "\1\162\1\163\13\0\1\6\1\261\1\165\1\6\1\262" + "\2\6\1\170\7\6\1\5\1\0\1\263\26\6\1\0" + + "\1\5\7\6\2\0\1\126\1\264\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\265" + "\1\6\1\266\2\6\13\0\1\6\1\267\15\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\270\1\271\1\6\13\0\1\272\1\273\15\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\237\1\274\1\275\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\160\1\6\1\276\1\162" + "\1\241\13\0\1\6\1\164\1\165\1\6\1\277\1\245" + "\1\300\1\301\7\6\1\5\1\0\1\302\26\6\1\0" - + "\1\5\7\6\2\0\1\126\1\303\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\304\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\305\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\306\1\307" + "\2\6\13\0\1\6\1\310\4\6\1\311\10\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\312\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\313\15\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\314\3\6\13\0\1\6" - + "\1\315\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\316\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\317\1\320\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\2\321" - + "\3\5\1\321\1\5\2\0\1\5\3\321\1\0\1\5" + "\1\0\1\5\1\321\3\0\6\321\2\0\6\321\13\0" - + "\17\321\1\5\1\0\3\5\23\321\1\5\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\164\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\322\3\6\13\0\1\6\1\323\4\6" - + "\1\324\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\325\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\326\1\327\1\6" + "\13\0\1\330\1\331\15\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\332\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\333" - + "\3\6\1\334\1\6\13\0\2\6\1\335\14\6\1\5" + "\1\0\21\6\1\336\5\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\337\1\6\1\340\3\6\13\0\1\341" - + "\1\342\1\6\1\343\1\344\1\6\1\345\5\6\1\346" + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\347\4\6\13\0\1\350\1\351" - + "\4\6\1\352\5\6\1\353\2\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\354\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\14\6\1\355\1\356" - + "\11\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\357\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\360\2\6" + "\13\0\6\6\1\361\10\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\362\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\363" - + "\1\364\2\6\13\0\1\6\1\365\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\366\2\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\367" + "\3\6\2\0\6\6\13\0\3\6\1\370\13\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\371" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\372\1\6\1\373\2\6\13\0\6\6" + "\1\374\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\375\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\376\1\377\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0100" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\11\102\1\0\3\102\1\0\7\102\1\0\31\102\1\0" + "\10\102\1\0\37\102\36\0\1\u0101\26\0\1\u0102\66\0" - + "\1\u0103\141\0\1\u0104\161\0\1\u0105\37\0\11\110\1\0" + "\3\110\1\0\7\110\1\0\21\110\1\0\7\110\1\0" - + "\10\110\1\0\5\110\1\0\30\110\37\0\1\u0106\26\0" + "\1\u0107\66\0\1\u0108\104\0\1\u0109\4\0\1\u0109\4\0" - + "\3\u0109\6\0\1\u010a\1\0\6\u0109\2\0\6\u0109\6\0" - + "\1\u010b\4\0\17\u0109\5\0\23\u0109\40\0\1\u010c\161\0" - + "\1\u010d\75\0\1\u010e\1\u010f\1\u0110\1\u0111\1\0\1\u0112" - + "\14\0\1\u0113\1\u0114\1\u0115\1\u0116\1\0\1\u0117\3\0" - + "\1\u0118\134\0\1\u0119\31\0\11\121\1\0\3\121\1\0" + "\41\121\1\0\10\121\1\0\37\121\36\0\1\u011a\26\0" - + "\1\u011b\100\0\1\u011c\161\0\1\u011d\37\0\10\5\2\0" + "\1\5\1\u011e\2\5\1\0\1\5\1\0\2\5\3\0" - + "\6\5\2\0\6\5\13\0\20\5\1\0\27\5\1\0" + "\10\127\2\0\4\127\1\0\1\127\1\0\2\127\3\0" + + "\1\5\7\6\2\0\1\126\1\303\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\304\15\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\1\305\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\306\1\307" + "\2\6\13\0\1\6\1\310\4\6\1\311\10\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\312\16\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\313\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\314\3\6\13\0\1\6" + "\1\315\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\316\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\317\1\320\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\2\321" + + "\3\5\1\321\1\5\2\0\1\5\3\321\1\0\1\5" + "\1\0\1\5\1\321\3\0\6\321\2\0\6\321\13\0" + "\17\321\1\5\1\0\3\5\23\321\1\5\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\164\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\322\3\6\13\0\1\6\1\323\4\6" + "\1\324\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\325\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\326\1\327\1\6" + "\13\0\1\330\1\331\15\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\6\1\332\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\333" + "\3\6\1\334\1\6\13\0\2\6\1\335\14\6\1\5" + + "\1\0\21\6\1\336\5\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\337\1\6\1\340\3\6\13\0\1\341" + + "\1\342\1\6\1\343\1\344\1\6\1\345\5\6\1\346" + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\347\4\6\13\0\1\350\1\351" + "\4\6\1\352\5\6\1\353\2\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\354\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\14\6\1\355\1\356" + "\11\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\357\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\360\2\6" + "\13\0\6\6\1\361\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\362\2\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\363" + "\1\364\2\6\13\0\1\6\1\365\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\366\2\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\367" + "\3\6\2\0\6\6\13\0\3\6\1\370\13\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\371" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\372\1\6\1\373\2\6\13\0\6\6" + "\1\374\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\375\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\376\1\377\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0100" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\11\102\1\0\3\102\1\0\7\102\1\0\31\102\1\0" + + "\10\102\1\0\37\102\36\0\1\u0101\26\0\1\u0102\66\0" + "\1\u0103\141\0\1\u0104\161\0\1\u0105\37\0\11\110\1\0" + + "\3\110\1\0\7\110\1\0\21\110\1\0\7\110\1\0" + "\10\110\1\0\5\110\1\0\30\110\37\0\1\u0106\26\0" + + "\1\u0107\66\0\1\u0108\104\0\1\u0109\4\0\1\u0109\4\0" + "\3\u0109\6\0\1\u010a\1\0\6\u0109\2\0\6\u0109\6\0" + + "\1\u010b\4\0\17\u0109\5\0\23\u0109\40\0\1\u010c\161\0" + "\1\u010d\75\0\1\u010e\1\u010f\1\u0110\1\u0111\1\0\1\u0112" + + "\14\0\1\u0113\1\u0114\1\u0115\1\u0116\1\0\1\u0117\3\0" + "\1\u0118\134\0\1\u0119\31\0\11\121\1\0\3\121\1\0" + + "\41\121\1\0\10\121\1\0\37\121\36\0\1\u011a\26\0" + "\1\u011b\100\0\1\u011c\161\0\1\u011d\37\0\10\5\2\0" + + "\1\5\1\u011e\2\5\1\0\1\5\1\0\2\5\3\0" + "\6\5\2\0\6\5\13\0\20\5\1\0\27\5\1\0" + "\10\127\2\0\4\127\1\0\1\127\1\0\2\127\3\0" + "\6\127\2\0\6\127\13\0\20\127\1\0\27\127\1\0" + "\2\127\1\130\3\u011f\1\127\1\u011f\2\0\4\127\1\0" + "\1\u011f\1\0\2\127\3\0\6\127\2\0\6\127\13\0" + "\20\127\1\0\3\u011f\23\127\1\u011f\1\0\3\127\3\u0120" + "\1\127\1\u0120\2\0\4\127\1\0\1\u0120\1\0\2\127" + "\3\0\6\127\1\u0121\1\0\6\127\2\0\1\u0121\10\0" @@ -536,2231 +487,1518 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { + "\1\127\1\u0123\1\127\13\0\2\127\1\131\5\127\1\131" + "\7\127\1\0\3\137\23\127\1\137\1\0\4\127\2\u0124" + "\2\127\2\0\4\127\1\0\1\127\1\0\2\127\3\0" + "\6\127\2\0\6\127\13\0\20\127\1\0\27\127\1\0" + "\3\127\5\u0125\2\0\3\127\1\u0125\1\0\1\u0125\1\0" + "\2\127\3\0\1\127\2\u0125\1\127\2\u0125\2\0\2\127" - + "\2\u0125\2\127\13\0\2\127\1\u0125\1\127\1\u0125\3\127" - + "\1\u0125\7\127\1\0\3\u0125\5\127\1\u0125\15\127\1\u0125" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0126\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0127\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u0128\4\6\13\0\6\6\1\u0129\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u012a\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u012b\13\6\1\5\1\0\27\6\1\0\10\u012c\1\u012d" - + "\1\0\116\u012c\10\0\1\u012d\117\0\4\u012c\2\u012e\1\u012c" - + "\1\u012f\1\u0130\1\0\1\147\1\u0131\3\147\1\u012e\10\u012c" - + "\1\147\5\u012c\2\147\40\u012c\1\u012e\2\u012f\23\u012c\1\u012f" - + "\1\u012c\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0132" - + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\11\6\1\u0133" + "\5\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0134\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\3\6\1\261\13\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0135\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0136\3\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u0137\1\u0138\13\0\2\6\1\u0139\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u013a\15\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u013b\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u013c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\261\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u013d\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u013e\5\6\1\u013f\7\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\6\1\u0140\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u0132\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\2\u0125\2\127\13\0\2\127\1\u0125\1\127\1\u0125\3\127" + "\1\u0125\7\127\1\0\3\u0125\5\127\1\u0125\15\127\1\u0125" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0126\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0127\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u0128\4\6\13\0\6\6\1\u0129\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u012a\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u012b\13\6\1\5\1\0\27\6\1\0\10\u012c\1\u012d" + + "\1\0\116\u012c\10\0\1\u012d\117\0\4\u012c\2\u012e\1\u012c" + "\1\u012f\1\u0130\1\0\1\147\1\u0131\3\147\1\u012e\10\u012c" + + "\1\147\5\u012c\2\147\40\u012c\1\u012e\2\u012f\23\u012c\1\u012f" + "\1\u012c\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0132" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\11\6\1\u0133" + "\5\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u0134\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\3\6\1\261\13\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0135\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0136\3\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0137\1\u0138\13\0\2\6\1\u0139\14\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u013a\15\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u013b\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u013c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\261\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u013d\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u013e\5\6\1\u013f\7\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\1\6\1\u0140\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u0132\2\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\261\1\6\13\0" + "\2\6\1\261\3\6\1\261\10\6\1\5\1\0\27\6" + "\1\0\12\172\1\u0141\3\172\1\u0142\115\172\2\16\1\172" + "\2\16\1\0\1\16\1\u0143\4\16\10\172\1\16\5\172" + "\2\16\40\172\3\16\23\172\1\16\1\172\25\0\1\u0144" + "\102\0\1\5\7\6\2\0\1\126\1\6\1\u0145\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0146\12\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0147\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u0148\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\2\6\1\u0149\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u014a\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\1\6\1\u014b\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u014c\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u014d\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u014e\3\6\13\0\6\6\1\u014f\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\162\1\u0138\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u0150\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\u0151\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0152" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u0153\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u0154\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\u0155\2\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0156\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u0157\5\6\13\0\4\6\1\u0158\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u0159\13\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u015a" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\4\6\1\u015b\1\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\u015c\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u015d\2\6\13\0\14\6" - + "\1\261\2\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\2\6\1\u015e\3\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u015f\4\6\13\0\6\6\1\u0160\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u0161\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\u0162\2\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0163\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0164\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0165\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0166\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\u0167\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0168\1\u0169" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u013c\4\6\1\u016a\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u016b\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u016c\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0146\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0147\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u0148\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\2\6\1\u0149\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u014a\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u014b\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u014c\5\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u014d\5\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u014e\3\6\13\0\6\6\1\u014f\10\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\162\1\u0138\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0150\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\u0151\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0152" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u0153\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u0154\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\u0155\2\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0156\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u0157\5\6\13\0\4\6\1\u0158\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\3\6\1\u0159\13\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u015a" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\4\6\1\u015b\1\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\u015c\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u015d\2\6\13\0\14\6" + + "\1\261\2\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\u015e\3\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u015f\4\6\13\0\6\6\1\u0160\10\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0161\5\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\1\u0162\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0163\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0164\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0165\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\5\6\1\u0166\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\u0167\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0168\1\u0169" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u013c\4\6\1\u016a\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u016b\15\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u016c\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0139\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u016d\3\6" + "\2\0\4\6\1\162\1\u0138\13\0\2\6\1\u0139\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\u013b\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u013c\5\6\13\0\1\u016e\16\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\261\4\6\13\0\1\6\1\u016f\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\261\1\6\1\u013d\10\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u0170\5\6\1\156\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\164\15\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0163\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\2\6\1\261\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\261\3\6\1\261\10\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u0171\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0172\1\6\1\u0173\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\156\2\6\13\0\6\6" - + "\1\u0174\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u0175\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\51\0\1\45\1\0\1\22\55\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u0176\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\2\6\1\u0177\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\162\1\u0138\13\0\2\6\1\u0139\14\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u0170\5\6\1\u013f\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" - + "\1\261\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\261\1\6\13\0\6\6\1\261\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" - + "\1\u0178\3\6\2\0\1\u0179\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u017a\4\6\1\u017b\10\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u017c\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u017d\13\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u017e\3\6\1\162\1\u017f" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0180\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0181\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u0182" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0183\1\6\1\u0135" + "\2\6\1\u0184\13\0\12\6\1\u0185\4\6\1\5\1\0" - + "\27\6\1\0\1\5\1\6\1\u0186\5\6\2\0\1\126" + "\1\6\1\u0187\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0188\1\6\1\u0189\1\6" + "\13\0\13\6\1\u0189\3\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u0139\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\162\1\u0138\13\0\2\6\1\u0139\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u018a\15\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u018b\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\u0132\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u018c" + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\2\6\1\261\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\261\3\6\2\0\4\6\2\261\13\0" - + "\2\6\1\261\1\6\1\261\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u018d" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u018e\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\3\6\1\u018f\13\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\3\6\1\u0190\23\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0191\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\u0192\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0193\12\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u0194\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u0195\1\6\13\0" + "\6\6\1\u0139\10\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0179\5\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u0196\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0197\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0198\1\6\1\u0199" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u019a\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\321\2\0\1\u019b" - + "\3\321\1\0\1\321\1\0\1\5\1\321\3\0\6\321" + "\2\0\6\321\13\0\17\321\1\5\1\0\27\321\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u019c\4\6" - + "\13\0\4\6\1\u019d\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u019e\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u019f\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u01a0\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u01a1\1\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01a2\2\6" - + "\13\0\1\6\1\u01a3\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01a4\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u01a5\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u01a6\1\6" - + "\13\0\7\6\1\u01a7\7\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u01a8\4\6\1\u01a9" + "\13\0\1\u01aa\1\6\1\u01ab\1\u01ac\1\u01ad\5\6\1\u01ae" - + "\4\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u01af\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u01b0\1\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u01b1" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\5\6\1\u01b2\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01b3\1\6\1\u01b4\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\1\u013b\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u013c\5\6\13\0\1\u016e\16\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\261\4\6\13\0\1\6\1\u016f\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\261\1\6\1\u013d\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u0170\5\6\1\156\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\164\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0163\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\2\6\1\261\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\261\3\6\1\261\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0171\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0172\1\6\1\u0173\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\156\2\6\13\0\6\6" + "\1\u0174\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u0175\1\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\51\0\1\45\1\0\1\22\55\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0176\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\2\6\1\u0177\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\4\6\1\162\1\u0138\13\0\2\6\1\u0139\14\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u0170\5\6\1\u013f\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\261\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\4\6\1\261\1\6\13\0\6\6\1\261\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + + "\1\u0178\3\6\2\0\1\u0179\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u017a\4\6\1\u017b\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\4\6\1\u017c\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\3\6\1\u017d\13\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u017e\3\6\1\162\1\u017f" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0180\2\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0181\3\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u0182" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0183\1\6\1\u0135" + + "\2\6\1\u0184\13\0\12\6\1\u0185\4\6\1\5\1\0" + "\27\6\1\0\1\5\1\6\1\u0186\5\6\2\0\1\126" + + "\1\6\1\u0187\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0188\1\6\1\u0189\1\6" + + "\13\0\13\6\1\u0189\3\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0139\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + + "\1\162\1\u0138\13\0\2\6\1\u0139\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u018a\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u018b\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\u0132\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u018c" + + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\2\6\1\261\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\261\3\6\2\0\4\6\2\261\13\0" + + "\2\6\1\261\1\6\1\261\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u018d" + + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u018e\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\3\6\1\u018f\13\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\3\6\1\u0190\23\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0191\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\u0192\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0193\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0194\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u0195\1\6\13\0" + "\6\6\1\u0139\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u0179\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u0196\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0197\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0198\1\6\1\u0199" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u019a\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\321\2\0\1\u019b" + "\3\321\1\0\1\321\1\0\1\5\1\321\3\0\6\321" + + "\2\0\6\321\13\0\17\321\1\5\1\0\27\321\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u019c\4\6" + + "\13\0\4\6\1\u019d\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + + "\1\u019e\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u019f\4\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01a0\4\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u01a1\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01a2\2\6" + "\13\0\1\6\1\u01a3\15\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01a4\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\6\1\u01a5\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u01a6\1\6" + "\13\0\7\6\1\u01a7\7\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u01a8\4\6\1\u01a9" + + "\13\0\1\u01aa\1\6\1\u01ab\1\u01ac\1\u01ad\5\6\1\u01ae" + "\4\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01af\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u01b0\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u01b1" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\5\6\1\u01b2\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u01b3\1\6\1\u01b4\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u01b5\1\u01b6\4\6\13\0\4\6\1\u01b7\12\6" + "\1\5\1\0\3\6\1\u01b8\23\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u01b9\15\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u01ba\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u01bb\1\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01bc\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u01bd\7\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\6\1\u01be\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u01bf\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u01c0\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u01c1" + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u01c2" - + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\7\6\1\u01c3\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u01c4\13\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u01c5" - + "\13\0\4\6\1\u01c6\11\6\1\u01c7\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\4\6\1\u01c8\1\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\11\6\1\u01c9\15\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u01ca\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u01cb" + "\5\6\13\0\3\6\1\u01cc\13\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u01cd" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\4\6\1\u01ce\1\6\13\0\7\6" + "\1\u01cf\7\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u01d0\3\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\12\6\1\u01d1\4\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u01d2" + "\5\6\13\0\17\6\1\5\1\0\10\6\1\u01d3\2\6" - + "\1\u01d4\13\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u01d5\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u01d6\13\0" + "\17\6\1\5\1\0\4\6\1\u01d7\22\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u01d8\5\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u01d9\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u01da\4\6\1\u01db\10\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\u01dc\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u01dd" + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01de\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u01df\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01e0" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0190\3\6\13\0" - + "\17\6\1\5\1\0\27\6\63\0\1\u01e1\107\0\1\u01e2" - + "\123\0\1\u01e3\161\0\1\u01e4\121\0\1\u01e5\107\0\1\u01e6" - + "\65\0\52\u0109\1\u010b\55\u0109\1\0\1\u0109\4\0\1\u0109" - + "\4\0\3\u0109\10\0\6\u0109\2\0\6\u0109\6\0\1\u010b" - + "\4\0\17\u0109\5\0\23\u0109\40\0\1\u01e7\161\0\1\u01e8" - + "\52\0\1\u01e9\43\0\1\u01ea\1\u01eb\107\0\1\u01ec\153\0" - + "\1\u01ed\56\0\1\u01ee\154\0\1\u01ef\24\0\1\u01f0\72\0" - + "\1\u01f1\137\0\1\u01f2\130\0\1\u01f3\127\0\1\u01f4\102\0" - + "\1\u01f5\153\0\1\u01f6\131\0\1\u01f7\16\0\1\u01f8\1\0" - + "\1\u01f9\1\0\1\u01fa\3\0\1\u01fb\120\0\1\u01fc\107\0" - + "\1\u01fd\123\0\1\u01fe\161\0\1\u01ff\37\0\3\5\5\u0200" + "\2\0\3\5\1\u0200\1\0\1\u0200\1\0\2\5\3\0" - + "\1\5\2\u0200\1\5\2\u0200\2\0\2\5\2\u0200\2\5" + "\13\0\2\5\1\u0200\1\5\1\u0200\3\5\1\u0200\7\5" - + "\1\0\3\u0200\5\5\1\u0200\15\5\1\u0200\1\0\2\127" + "\1\130\3\u011f\1\127\1\u011f\2\0\4\127\1\0\1\u011f" - + "\1\0\2\127\3\0\1\132\5\127\2\0\4\127\1\132" + "\1\127\13\0\20\127\1\0\3\u011f\23\127\1\u011f\1\0" - + "\3\127\3\u0120\1\127\1\u0120\2\0\3\127\1\131\1\0" + "\1\u0120\1\0\2\127\3\0\4\127\1\131\1\127\2\0" - + "\6\127\13\0\2\127\1\131\5\127\1\131\7\127\1\0" + "\3\u0120\23\127\1\u0120\4\0\3\u0120\1\0\1\u0120\7\0" - + "\1\u0120\60\0\3\u0120\23\0\1\u0120\1\0\2\127\1\135" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u01b9\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01ba\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u01bb\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01bc\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u01bd\7\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u01be\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\5\6\1\u01bf\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u01c0\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u01c1" + + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u01c2" + + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u01c3\7\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u01c4\13\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u01c5" + "\13\0\4\6\1\u01c6\11\6\1\u01c7\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u01c8\1\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\11\6\1\u01c9\15\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u01ca\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u01cb" + "\5\6\13\0\3\6\1\u01cc\13\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u01cd" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\4\6\1\u01ce\1\6\13\0\7\6" + "\1\u01cf\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u01d0\3\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\12\6\1\u01d1\4\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u01d2" + + "\5\6\13\0\17\6\1\5\1\0\10\6\1\u01d3\2\6" + "\1\u01d4\13\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u01d5\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u01d6\13\0" + + "\17\6\1\5\1\0\4\6\1\u01d7\22\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u01d8\5\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u01d9\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u01da\4\6\1\u01db\10\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u01dc\12\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u01dd" + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01de\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u01df\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01e0" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u0190\3\6\13\0" + "\17\6\1\5\1\0\27\6\63\0\1\u01e1\107\0\1\u01e2" + + "\123\0\1\u01e3\161\0\1\u01e4\121\0\1\u01e5\107\0\1\u01e6" + "\65\0\52\u0109\1\u010b\55\u0109\1\0\1\u0109\4\0\1\u0109" + + "\4\0\3\u0109\10\0\6\u0109\2\0\6\u0109\6\0\1\u010b" + "\4\0\17\u0109\5\0\23\u0109\40\0\1\u01e7\161\0\1\u01e8" + + "\52\0\1\u01e9\43\0\1\u01ea\1\u01eb\107\0\1\u01ec\153\0" + "\1\u01ed\56\0\1\u01ee\154\0\1\u01ef\24\0\1\u01f0\72\0" + + "\1\u01f1\137\0\1\u01f2\130\0\1\u01f3\127\0\1\u01f4\102\0" + "\1\u01f5\153\0\1\u01f6\131\0\1\u01f7\16\0\1\u01f8\1\0" + + "\1\u01f9\1\0\1\u01fa\3\0\1\u01fb\120\0\1\u01fc\107\0" + "\1\u01fd\123\0\1\u01fe\161\0\1\u01ff\37\0\3\5\5\u0200" + + "\2\0\3\5\1\u0200\1\0\1\u0200\1\0\2\5\3\0" + "\1\5\2\u0200\1\5\2\u0200\2\0\2\5\2\u0200\2\5" + + "\13\0\2\5\1\u0200\1\5\1\u0200\3\5\1\u0200\7\5" + "\1\0\3\u0200\5\5\1\u0200\15\5\1\u0200\1\0\2\127" + + "\1\130\3\u011f\1\127\1\u011f\2\0\4\127\1\0\1\u011f" + "\1\0\2\127\3\0\1\132\5\127\2\0\4\127\1\132" + + "\1\127\13\0\20\127\1\0\3\u011f\23\127\1\u011f\1\0" + "\3\127\3\u0120\1\127\1\u0120\2\0\3\127\1\131\1\0" + + "\1\u0120\1\0\2\127\3\0\4\127\1\131\1\127\2\0" + "\6\127\13\0\2\127\1\131\5\127\1\131\7\127\1\0" + + "\3\u0120\23\127\1\u0120\4\0\3\u0120\1\0\1\u0120\7\0" + "\1\u0120\60\0\3\u0120\23\0\1\u0120\1\0\2\127\1\135" + "\1\127\2\u0122\1\127\1\u0122\2\0\4\127\1\0\1\u0122" + "\1\0\2\127\3\0\1\u0123\5\127\2\0\4\127\1\u0123" + "\1\127\13\0\20\127\1\0\3\u0122\23\127\1\u0122\1\0" + "\2\127\1\u0201\1\127\2\u0124\2\127\2\0\4\127\1\0" + "\1\127\1\0\2\127\3\0\6\127\2\0\6\127\13\0" + "\20\127\1\0\27\127\1\0\2\127\1\u0202\5\u0125\2\0" - + "\3\127\1\u0125\1\0\1\u0125\1\0\2\127\3\0\1\u0123" - + "\2\u0125\1\127\2\u0125\2\0\2\127\2\u0125\1\u0123\1\127" - + "\13\0\2\127\1\u0125\1\127\1\u0125\3\127\1\u0125\7\127" - + "\1\0\3\u0125\5\127\1\u0125\15\127\1\u0125\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0203" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0204\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u0205\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0206\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0207\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\127\1\u0125\1\0\1\u0125\1\0\2\127\3\0\1\u0123" + "\2\u0125\1\127\2\u0125\2\0\2\127\2\u0125\1\u0123\1\127" + + "\13\0\2\127\1\u0125\1\127\1\u0125\3\127\1\u0125\7\127" + "\1\0\3\u0125\5\127\1\u0125\15\127\1\u0125\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0203" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0204\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0205\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u0206\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u0207\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0208\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\10\u012c\1\150\1\0\122\u012c\2\u012f\1\u012c\1\u012f" - + "\1\u012d\1\0\5\u012c\1\u012f\60\u012c\3\u012f\23\u012c\1\u012f" - + "\5\u012c\2\147\1\u012c\1\147\1\u012d\1\0\5\u012c\1\147" + + "\1\u012d\1\0\5\u012c\1\u012f\60\u012c\3\u012f\23\u012c\1\u012f" + "\5\u012c\2\147\1\u012c\1\147\1\u012d\1\0\5\u012c\1\147" + "\60\u012c\3\147\23\u012c\1\147\4\u012c\5\u0209\1\150\1\0" + "\3\u012c\1\u0209\1\u012c\1\u0209\7\u012c\2\u0209\1\u012c\2\u0209" + "\4\u012c\2\u0209\17\u012c\1\u0209\1\u012c\1\u0209\3\u012c\1\u0209" + "\10\u012c\3\u0209\5\u012c\1\u0209\15\u012c\1\u0209\1\u012c\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\261\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u020a\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u020b\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\13\6\1\261\3\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u020c\5\6\13\0\7\6" - + "\1\261\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u015c\13\0\1\6\1\u013a" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u013c\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\2\6\1\261\14\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0139\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\261\3\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u020d\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\261\4\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u020e\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u020f\13\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0210\2\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\11\172\1\0\121\172\5\u0211\2\172\1\u0141" - + "\2\172\1\u0211\1\u0142\1\u0211\7\172\2\u0211\1\172\2\u0211" - + "\4\172\2\u0211\17\172\1\u0211\1\172\1\u0211\3\172\1\u0211" + + "\1\6\3\0\6\6\2\0\4\6\1\261\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u020a\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u020b\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\13\6\1\261\3\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u020c\5\6\13\0\7\6" + + "\1\261\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u015c\13\0\1\6\1\u013a" + + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u013c\5\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\2\6\1\261\14\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0139\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\261\3\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u020d\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\261\4\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u020e\1\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u020f\13\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\3\6\1\u0210\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\11\172\1\0\121\172\5\u0211\2\172\1\u0141" + + "\2\172\1\u0211\1\u0142\1\u0211\7\172\2\u0211\1\172\2\u0211" + "\4\172\2\u0211\17\172\1\u0211\1\172\1\u0211\3\172\1\u0211" + "\10\172\3\u0211\5\172\1\u0211\15\172\1\u0211\1\172\24\0" + "\1\u0212\103\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\13\6\1\u0213\3\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0214\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0215\3\6\13\0\16\6" + "\1\u0216\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0217\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\2\6\1\u0218" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u0219\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u021a\3\6\1\u021b\1\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\13\6\1\u021c" + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u021d\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u021e\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u021f\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\u0220\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0221" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0222\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u0223\7\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0224" - + "\1\6\1\u0225\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u0226\7\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0227" - + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u0228\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0229\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u022a\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u022b\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\5\6" + "\1\u022c\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u022d" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u022e\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u022f\1\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u0230\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\261" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\u0231\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\7\6\1\261\7\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\261" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0232\3\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\11\6\1\u0233\5\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0234\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0235\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0236\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u020c\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0237" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u0238\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\164\16\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0132\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\261\2\6" + "\1\261\1\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\16\6" - + "\1\u0239\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u023a\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\164\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u023b\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u023c\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u017e\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u023d\5\6" - + "\13\0\4\6\1\u023e\12\6\1\5\1\0\27\6\1\0" + "\1\5\1\6\1\u023f\5\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\1\u0240\26\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0241\2\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u023c\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" - + "\1\u0242\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u0243\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0244\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u0245\4\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\16\6\1\u0246\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\1\261\26\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u0247\12\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u013c\1\6\1\261\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u0160\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u0248\12\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0249\4\6\1\u024a\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u024b\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u024c" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u024d" - + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u024e\2\6\13\0\6\6\1\u024f" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\153\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\261\3\6\13\0\1\6" - + "\1\u0250\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\3\6\1\261\23\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\261\1\6\1\261\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0251\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\261\12\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0252\1\6\13\0" - + "\1\6\1\u0237\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u0253\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0254\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u0255\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u0256\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01b5\1\u0257\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" - + "\1\u0258\3\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0259" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0163\1\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u025a\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\261\15\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u025b\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u025c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u025d\14\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u025e\15\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\2\6\1\u025f\14\6\1\5\1\0" + "\27\6\1\0\10\5\2\0\1\5\1\u0260\2\5\1\0" - + "\1\5\1\0\2\5\3\0\6\5\2\0\6\5\13\0" + "\20\5\1\0\27\5\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0261\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0156" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u01b5" + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0262\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u0263\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0264\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0265\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0266\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u0267\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0268\4\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0269\13\0" - + "\4\6\1\u026a\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u026b\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\3\6\1\u026c\13\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u026d\3\6\13\0\17\6\1\5\1\0\13\6" + "\1\u026e\13\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u026f\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0270\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0271\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\u0272\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u0273\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u0274\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u0275\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\u0276\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u0277\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u0278" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\215\4\6" - + "\13\0\5\6\1\u0279\11\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u027a\3\6" + "\13\0\6\6\1\u027b\10\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" - + "\1\u027c\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u027d\3\6" + "\1\u027e\4\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\u027f\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0280" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0222\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0281\5\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u0282\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0283\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u0284" - + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u0285\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0286\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0287\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0288\3\6\13\0\1\6" + "\1\u0289\15\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\17\6\1\u028a\7\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u028b\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u028c\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\u028d\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u028e" - + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u028f\16\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\6\1\u0290\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\10\6\1\u0291\6\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\10\6" + "\1\u01b5\6\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\u0292\16\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\u01b5\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\1\0\1\u0293\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u0294\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u0295\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\2\6\1\u0296\3\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0297\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u0298\10\6\1\5\1\0" + "\27\6\1\0\1\5\5\6\1\u0299\1\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\13\6\1\u029a" - + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u029b\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u029c\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\3\6\1\u029d\13\6\1\5" - + "\1\0\21\6\1\u029e\5\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u029f\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u02a0\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u02a1\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u02a2\16\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\3\6\1\u02a3\1\u02a4\12\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u02a5\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u02a6\5\6\1\u02a7" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\16\6\1\u02a8\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u02a9\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" + "\1\u02aa\3\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u02ab\5\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\16\6\1\u02ac\1\5\1\0\27\6\57\0" + "\1\u02ad\111\0\1\u01e1\151\0\1\u02ae\102\0\1\u02af\150\0" - + "\1\u02b0\111\0\1\u01e5\151\0\1\u02b1\102\0\1\u02b2\130\0" - + "\1\u02b3\130\0\1\u02b4\151\0\1\u02b5\104\0\1\u02b6\132\0" - + "\1\u02b7\21\0\1\u02b8\102\0\1\u02b9\130\0\1\u02ba\1\u02bb" - + "\103\0\1\u02bc\156\0\1\u02bd\146\0\1\u02be\104\0\1\u02bf" - + "\126\0\1\u02c0\127\0\1\u02c1\22\0\1\u02c2\105\0\1\u02c3" - + "\155\0\1\u02c4\122\0\1\u02c5\127\0\1\u02c6\63\0\1\u02c7" - + "\154\0\1\u02c8\144\0\1\u02c9\111\0\1\u01fc\151\0\1\u02ca" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\13\6\1\u0213\3\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0214\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u0215\3\6\13\0\16\6" + "\1\u0216\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u0217\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\2\6\1\u0218" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0219\3\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u021a\3\6\1\u021b\1\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\13\6\1\u021c" + + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u021d\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u021e\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u021f\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\1\u0220\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0221" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u0222\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\7\6\1\u0223\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0224" + + "\1\6\1\u0225\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\7\6\1\u0226\7\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0227" + + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0228\3\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0229\3\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u022a\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\6\1\u022b\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\5\6" + "\1\u022c\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u022d" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u022e\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\4\6\1\u022f\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u0230\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\261" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\u0231\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\261\7\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\261" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0232\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\11\6\1\u0233\5\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0234\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0235\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u0236\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u020c\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0237" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u0238\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\164\16\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0132\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\261\2\6" + "\1\261\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\16\6" + "\1\u0239\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\1\6\1\u023a\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\164\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u023b\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u023c\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u017e\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u023d\5\6" + + "\13\0\4\6\1\u023e\12\6\1\5\1\0\27\6\1\0" + "\1\5\1\6\1\u023f\5\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\1\u0240\26\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0241\2\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u023c\1\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\u0242\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u0243\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0244\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u0245\4\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\16\6\1\u0246\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\1\261\26\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u0247\12\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u013c\1\6\1\261\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\5\6\1\u0160\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + + "\1\u0248\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0249\4\6\1\u024a\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u024b\3\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u024c" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u024d" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u024e\2\6\13\0\6\6\1\u024f" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\1\153\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\261\3\6\13\0\1\6" + "\1\u0250\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\3\6\1\261\23\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\261\1\6\1\261\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + + "\1\u0251\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\261\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u0252\1\6\13\0" + "\1\6\1\u0237\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u0253\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u0254\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + + "\1\u0255\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u0256\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01b5\1\u0257\2\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u0258\3\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0259" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0163\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u025a\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\261\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u025b\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u025c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u025d\14\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u025e\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\2\6\1\u025f\14\6\1\5\1\0" + "\27\6\1\0\10\5\2\0\1\5\1\u0260\2\5\1\0" + "\1\5\1\0\2\5\3\0\6\5\2\0\6\5\13\0" + + "\20\5\1\0\27\5\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0261\10\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0156" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u01b5" + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0262\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0263\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0264\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\5\6\1\u0265\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0266\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u0267\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\u0268\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0269\13\0" + + "\4\6\1\u026a\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u026b\1\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\3\6\1\u026c\13\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u026d\3\6\13\0\17\6\1\5\1\0\13\6" + + "\1\u026e\13\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u026f\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0270\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0271\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\1\u0272\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0273\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u0274\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u0275\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\u0276\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u0277\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u0278" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\215\4\6" + + "\13\0\5\6\1\u0279\11\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u027a\3\6" + + "\13\0\6\6\1\u027b\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + + "\1\u027c\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u027d\3\6" + + "\1\u027e\4\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\u027f\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0280" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0222\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0281\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0282\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u0283\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u0284" + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\4\6\1\u0285\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u0286\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0287\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0288\3\6\13\0\1\6" + + "\1\u0289\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\17\6\1\u028a\7\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u028b\3\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u028c\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\u028d\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u028e" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u028f\16\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\1\6\1\u0290\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\10\6\1\u0291\6\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\10\6" + "\1\u01b5\6\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\u0292\16\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\u01b5\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\1\0\1\u0293\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u0294\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0295\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\2\6\1\u0296\3\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0297\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0298\10\6\1\5\1\0" + "\27\6\1\0\1\5\5\6\1\u0299\1\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\13\6\1\u029a" + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u029b\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u029c\2\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\3\6\1\u029d\13\6\1\5" + "\1\0\21\6\1\u029e\5\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u029f\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u02a0\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\6\6\1\u02a1\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u02a2\16\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\3\6\1\u02a3\1\u02a4\12\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u02a5\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u02a6\5\6\1\u02a7" + + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\16\6\1\u02a8\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u02a9\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" + "\1\u02aa\3\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u02ab\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\16\6\1\u02ac\1\5\1\0\27\6\57\0" + + "\1\u02ad\111\0\1\u01e1\151\0\1\u02ae\102\0\1\u02af\150\0" + "\1\u02b0\111\0\1\u01e5\151\0\1\u02b1\102\0\1\u02b2\130\0" + + "\1\u02b3\130\0\1\u02b4\151\0\1\u02b5\104\0\1\u02b6\132\0" + "\1\u02b7\21\0\1\u02b8\102\0\1\u02b9\130\0\1\u02ba\1\u02bb" + + "\103\0\1\u02bc\156\0\1\u02bd\146\0\1\u02be\104\0\1\u02bf" + "\126\0\1\u02c0\127\0\1\u02c1\22\0\1\u02c2\105\0\1\u02c3" + + "\155\0\1\u02c4\122\0\1\u02c5\127\0\1\u02c6\63\0\1\u02c7" + "\154\0\1\u02c8\144\0\1\u02c9\111\0\1\u01fc\151\0\1\u02ca" + "\102\0\1\u02cb\72\0\3\5\5\u02cc\2\0\3\5\1\u02cc" + "\1\0\1\u02cc\1\0\2\5\3\0\1\5\2\u02cc\1\5" + "\2\u02cc\2\0\2\5\2\u02cc\2\5\13\0\2\5\1\u02cc" + "\1\5\1\u02cc\3\5\1\u02cc\7\5\1\0\3\u02cc\5\5" + "\1\u02cc\15\5\1\u02cc\1\0\2\127\1\u0202\5\u0125\2\0" + "\3\127\1\u0125\1\0\1\u0125\1\0\2\127\3\0\1\127" - + "\2\u0125\1\127\2\u0125\2\0\2\127\2\u0125\2\127\13\0" - + "\2\127\1\u0125\1\127\1\u0125\3\127\1\u0125\7\127\1\0" + + "\2\u0125\1\127\2\u0125\2\0\2\127\2\u0125\2\127\13\0" + "\2\127\1\u0125\1\127\1\u0125\3\127\1\u0125\7\127\1\0" + "\3\u0125\5\127\1\u0125\15\127\1\u0125\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\10\6\1\u02cd\16\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u02ce\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\14\6\1\u02cf\2\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u02d0" + "\16\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u02d1\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u02d2\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\3\u012c\5\u02d3\1\150\1\0\3\u012c\1\u02d3\1\u012c" - + "\1\u02d3\7\u012c\2\u02d3\1\u012c\2\u02d3\4\u012c\2\u02d3\17\u012c" - + "\1\u02d3\1\u012c\1\u02d3\3\u012c\1\u02d3\10\u012c\3\u02d3\5\u012c" - + "\1\u02d3\15\u012c\1\u02d3\1\u012c\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u02d4\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\u0163\4\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\u02d5\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u0163\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u02d6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\261\1\6" - + "\13\0\13\6\1\261\3\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u02d7\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\3\172\5\u02d8" - + "\2\172\1\u0141\2\172\1\u02d8\1\u0142\1\u02d8\7\172\2\u02d8" - + "\1\172\2\u02d8\4\172\2\u02d8\17\172\1\u02d8\1\172\1\u02d8" - + "\3\172\1\u02d8\10\172\3\u02d8\5\172\1\u02d8\15\172\1\u02d8" + "\1\172\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\13\6\1\u026e\13\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u02d9\1\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\20\6" + "\1\u02da\6\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u02db\1\u02dc\2\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\15\6\1\u02dd\1\6\1\5\1\0\11\6\1\u02de" + "\15\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u02df\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\26\6\1\u02e0\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u02e1\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u02e2\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0222\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\5\6" + "\1\u02e3\1\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\16\6\1\261\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\13\6\1\u0163\3\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\u0247\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\u025b\16\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u01b5\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u02e4\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u02e5\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u02e6" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\10\6\1\u02cd\16\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u02ce\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\14\6\1\u02cf\2\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u02d0" + + "\16\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u02d1\4\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u02d2\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\3\u012c\5\u02d3\1\150\1\0\3\u012c\1\u02d3\1\u012c" + "\1\u02d3\7\u012c\2\u02d3\1\u012c\2\u02d3\4\u012c\2\u02d3\17\u012c" + + "\1\u02d3\1\u012c\1\u02d3\3\u012c\1\u02d3\10\u012c\3\u02d3\5\u012c" + "\1\u02d3\15\u012c\1\u02d3\1\u012c\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u02d4\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\u0163\4\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u02d5\2\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u0163\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\5\6\1\u02d6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\261\1\6" + + "\13\0\13\6\1\261\3\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u02d7\1\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\3\172\5\u02d8" + "\2\172\1\u0141\2\172\1\u02d8\1\u0142\1\u02d8\7\172\2\u02d8" + + "\1\172\2\u02d8\4\172\2\u02d8\17\172\1\u02d8\1\172\1\u02d8" + "\3\172\1\u02d8\10\172\3\u02d8\5\172\1\u02d8\15\172\1\u02d8" + + "\1\172\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\13\6\1\u026e\13\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u02d9\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\20\6" + "\1\u02da\6\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u02db\1\u02dc\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\15\6\1\u02dd\1\6\1\5\1\0\11\6\1\u02de" + "\15\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u02df\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\26\6\1\u02e0\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u02e1\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u02e2\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0222\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\5\6" + "\1\u02e3\1\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\16\6\1\261\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\13\6\1\u0163\3\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u0247\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\u025b\16\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u01b5\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u02e4\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u02e5\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u02e6" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" + "\1\u02e7\1\6\2\0\6\6\13\0\10\6\1\u02e8\4\6" + "\1\u02e9\1\6\1\5\1\0\11\6\1\u02ea\6\6\1\u02eb" + "\1\u02ec\1\u02ed\1\6\1\u02ee\2\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u02ef\3\6\13\0\17\6" + "\1\5\1\0\10\6\1\u02f0\2\6\1\u021c\3\6\1\u02f1" - + "\7\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u01b5\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02f2\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u02f3\13\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\14\6\1\u02f4\2\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u02f5" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\5\6\1\u0279" - + "\11\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u02f6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u02f7\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\11\6" - + "\1\u02f8\5\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u02f9\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\6\1\u02fa\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u02fb\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u02fc\15\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u02fd\2\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u024a\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u02fe\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\1\u02ff\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u0300\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u0301\12\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u018b" - + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\u0302\16\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\u0303\16\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\5\6\1\u0304" - + "\11\6\1\5\1\0\27\6\1\0\1\5\1\6\1\u023f" + "\5\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0305" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" - + "\1\u0306\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u0307\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0308\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0309" - + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u021f\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\261\16\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\16\6\1\u030a\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u030b" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\261\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u030c\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u030d\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u030e\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u030f\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u0310\12\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u0311\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u0312\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0313\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" - + "\1\u0314\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u0315\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0316\10\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u01b5" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\11\6\1\u0317\7\6\1\u0318\5\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0319\1\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u031a\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\312\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u031b\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u031c\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0227\1\u031b\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u031d" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u031e\15\6\1\5\1\0\27\6\1\0\3\5\5\u031f" + + "\7\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u01b5\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02f2\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u02f3\13\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\14\6\1\u02f4\2\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u02f5" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\5\6\1\u0279" + "\11\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u02f6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u02f7\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\11\6" + + "\1\u02f8\5\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u02f9\4\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u02fa\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u02fb\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u02fc\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u02fd\2\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u024a\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u02fe\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\u02ff\2\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u0300\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\u0301\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u018b" + + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u0302\16\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\u0303\16\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\5\6\1\u0304" + "\11\6\1\5\1\0\27\6\1\0\1\5\1\6\1\u023f" + + "\5\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0305" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0306\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u0307\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u0308\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0309" + + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u021f\2\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\261\16\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\16\6\1\u030a\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u030b" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\261\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u030c\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u030d\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u030e\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\4\6\1\u030f\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\u0310\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u0311\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u0312\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0313\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0314\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0315\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0316\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u01b5" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\11\6\1\u0317\7\6\1\u0318\5\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u0319\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\6\6\1\u031a\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\312\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u031b\2\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u031c\10\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0227\1\u031b\2\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u031d" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u031e\15\6\1\5\1\0\27\6\1\0\3\5\5\u031f" + "\2\0\3\5\1\u031f\1\0\1\u031f\1\0\2\5\3\0" + "\1\5\2\u031f\1\5\2\u031f\2\0\2\5\2\u031f\2\5" + "\13\0\2\5\1\u031f\1\5\1\u031f\3\5\1\u031f\7\5" + "\1\0\3\u031f\5\5\1\u031f\15\5\1\u031f\1\0\1\5" - + "\7\6\2\0\1\126\2\6\1\u0320\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\u0321\2\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0322" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u0323\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u0324\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0325\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u025b\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\5\6" + "\1\u0326\1\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0327\2\6" + "\13\0\17\6\1\5\1\0\10\6\1\u0328\2\6\1\u0329" - + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\1\6\1\u032a\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u032b\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u032c\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u01af\2\6\13\0\6\6\1\u032d\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u032e\4\6\13\0\13\6\1\u032f\3\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0330" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0331\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0332\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\5\6\1\u0333\11\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0334" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0335" - + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u0336\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0337\2\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u0338\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\13\6\1\u0339" + "\3\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u033a\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\4\6\1\u033b\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u033c\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u033d\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" - + "\1\u033e\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u033f\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0340\2\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u0341\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u0342\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0343\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0344\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0345\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u032f\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u0346\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u0347\1\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0348\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\13\6\1\u021c\3\6\1\u02f1\7\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0349\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\11\6\1\u025b\5\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u034a\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u034b\4\6" - + "\13\0\17\6\1\5\1\0\7\6\1\u034c\17\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\20\6\1\u034d\6\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u034e\13\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u034f\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0350" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0351" - + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u0352\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u025b\5\6\13\0\17\6\1\5\1\0\13\6\1\u021c" - + "\3\6\1\u02f1\7\6\34\0\1\u0353\74\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0354\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\22\6\1\u0355" - + "\4\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0356\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0357\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\13\6\1\u0358\3\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u0359\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u035a" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u035b\2\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u035c\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u035d" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\2\6\1\u035e\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u035f\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0360\12\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u0361\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\2\6\1\u0362\3\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0363\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0364\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0365\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0366\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u0367\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0368\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" - + "\1\u0369\14\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u036a\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u036b\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\16\6\1\u036c\10\6\25\0" + "\1\u036d\146\0\1\u01e1\12\0\1\u02ad\52\0\1\u02af\1\u036e" - + "\5\u02af\1\u036e\2\0\3\u02af\1\0\1\u02af\1\0\1\u036e" - + "\1\u02af\1\0\1\u02af\1\u036e\6\u02af\2\u036e\6\u02af\1\0" - + "\2\u036e\1\0\1\u036e\2\0\4\u036e\17\u02af\2\u036e\27\u02af" - + "\25\0\1\u036f\146\0\1\u01e5\12\0\1\u02b0\52\0\1\u02b2" - + "\1\u0370\5\u02b2\1\u0370\2\0\3\u02b2\1\0\1\u02b2\1\0" - + "\1\u0370\1\u02b2\1\0\1\u02b2\1\u0370\6\u02b2\2\u0370\6\u02b2" - + "\1\0\2\u0370\1\0\1\u0370\2\0\4\u0370\17\u02b2\2\u0370" - + "\27\u02b2\61\0\1\u0371\107\0\1\u0372\17\0\1\u0373\127\0" - + "\1\u02bb\62\0\1\u0374\202\0\1\u0375\101\0\1\u0376\1\0" - + "\1\u0377\144\0\1\u0378\135\0\1\u0379\125\0\1\u037a\124\0" - + "\1\u037b\106\0\1\u037c\131\0\1\u037d\126\0\1\u037e\127\0" - + "\1\u037f\127\0\1\u0380\132\0\1\u0381\100\0\1\u0382\21\0" - + "\1\u0383\154\0\1\u0384\125\0\1\u0385\125\0\1\u0386\112\0" - + "\1\u0387\111\0\1\u0388\146\0\1\u01fc\12\0\1\u02c9\52\0" - + "\1\u02cb\1\u0389\5\u02cb\1\u0389\2\0\3\u02cb\1\0\1\u02cb" - + "\1\0\1\u0389\1\u02cb\1\0\1\u02cb\1\u0389\6\u02cb\2\u0389" - + "\6\u02cb\1\0\2\u0389\1\0\1\u0389\2\0\4\u0389\17\u02cb" + + "\7\6\2\0\1\126\2\6\1\u0320\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\1\u0321\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0322" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u0323\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u0324\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u0325\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u025b\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\5\6" + "\1\u0326\1\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0327\2\6" + + "\13\0\17\6\1\5\1\0\10\6\1\u0328\2\6\1\u0329" + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u032a\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u032b\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u032c\3\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u01af\2\6\13\0\6\6\1\u032d\10\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u032e\4\6\13\0\13\6\1\u032f\3\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0330" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0331\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0332\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\5\6\1\u0333\11\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0334" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0335" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\4\6\1\u0336\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u0337\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u0338\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\13\6\1\u0339" + + "\3\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u033a\5\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u033b\12\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u033c\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\6\1\u033d\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u033e\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u033f\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0340\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0341\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u0342\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u0343\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u0344\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0345\5\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u032f\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0346\1\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u0347\1\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0348\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\13\6\1\u021c\3\6\1\u02f1\7\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0349\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\11\6\1\u025b\5\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u034a\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u034b\4\6" + "\13\0\17\6\1\5\1\0\7\6\1\u034c\17\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\20\6\1\u034d\6\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u034e\13\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u034f\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0350" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0351" + + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0352\2\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u025b\5\6\13\0\17\6\1\5\1\0\13\6\1\u021c" + + "\3\6\1\u02f1\7\6\34\0\1\u0353\74\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0354\10\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\22\6\1\u0355" + + "\4\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0356\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0357\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\13\6\1\u0358\3\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0359\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u035a" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u035b\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\4\6\1\u035c\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u035d" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\2\6\1\u035e\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u035f\4\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0360\12\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0361\15\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\u0362\3\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0363\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0364\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0365\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0366\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u0367\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u0368\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u0369\14\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u036a\15\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u036b\3\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\16\6\1\u036c\10\6\25\0" + + "\1\u036d\146\0\1\u01e1\12\0\1\u02ad\52\0\1\u02af\1\u036e" + "\5\u02af\1\u036e\2\0\3\u02af\1\0\1\u02af\1\0\1\u036e" + + "\1\u02af\1\0\1\u02af\1\u036e\6\u02af\2\u036e\6\u02af\1\0" + "\2\u036e\1\0\1\u036e\2\0\4\u036e\17\u02af\2\u036e\27\u02af" + + "\25\0\1\u036f\146\0\1\u01e5\12\0\1\u02b0\52\0\1\u02b2" + "\1\u0370\5\u02b2\1\u0370\2\0\3\u02b2\1\0\1\u02b2\1\0" + + "\1\u0370\1\u02b2\1\0\1\u02b2\1\u0370\6\u02b2\2\u0370\6\u02b2" + "\1\0\2\u0370\1\0\1\u0370\2\0\4\u0370\17\u02b2\2\u0370" + + "\27\u02b2\61\0\1\u0371\107\0\1\u0372\17\0\1\u0373\127\0" + "\1\u02bb\62\0\1\u0374\202\0\1\u0375\101\0\1\u0376\1\0" + + "\1\u0377\144\0\1\u0378\135\0\1\u0379\125\0\1\u037a\124\0" + "\1\u037b\106\0\1\u037c\131\0\1\u037d\126\0\1\u037e\127\0" + + "\1\u037f\127\0\1\u0380\132\0\1\u0381\100\0\1\u0382\21\0" + "\1\u0383\154\0\1\u0384\125\0\1\u0385\125\0\1\u0386\112\0" + + "\1\u0387\111\0\1\u0388\146\0\1\u01fc\12\0\1\u02c9\52\0" + "\1\u02cb\1\u0389\5\u02cb\1\u0389\2\0\3\u02cb\1\0\1\u02cb" + + "\1\0\1\u0389\1\u02cb\1\0\1\u02cb\1\u0389\6\u02cb\2\u0389" + "\6\u02cb\1\0\2\u0389\1\0\1\u0389\2\0\4\u0389\17\u02cb" + "\2\u0389\27\u02cb\1\0\3\5\5\u038a\2\0\3\5\1\u038a" + "\1\0\1\u038a\1\0\2\5\3\0\1\5\2\u038a\1\5" + "\2\u038a\2\0\2\5\2\u038a\2\5\13\0\2\5\1\u038a" + "\1\5\1\u038a\3\5\1\u038a\7\5\1\0\3\u038a\5\5" - + "\1\u038a\15\5\1\u038a\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u038b\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u038c\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\u038a\15\5\1\u038a\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u038b\1\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u038c\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\1\u038d\5\6\2\0\5\6\1\u01b5" - + "\13\0\10\6\1\u038e\6\6\1\5\1\0\11\6\1\u038f" + "\1\6\1\u0390\13\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u0391\7\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0392" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u025b" + "\14\6\1\5\1\0\27\6\1\0\3\u012c\5\u0393\1\150" - + "\1\0\3\u012c\1\u0393\1\u012c\1\u0393\7\u012c\2\u0393\1\u012c" + + "\13\0\10\6\1\u038e\6\6\1\5\1\0\11\6\1\u038f" + "\1\6\1\u0390\13\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\7\6\1\u0391\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0392" + + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u025b" + + "\14\6\1\5\1\0\27\6\1\0\3\u012c\5\u0393\1\150" + "\1\0\3\u012c\1\u0393\1\u012c\1\u0393\7\u012c\2\u0393\1\u012c" + "\2\u0393\4\u012c\2\u0393\17\u012c\1\u0393\1\u012c\1\u0393\3\u012c" - + "\1\u0393\10\u012c\3\u0393\5\u012c\1\u0393\15\u012c\1\u0393\1\u012c" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0394\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0395\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0396\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0397" + + "\1\u0393\10\u012c\3\u0393\5\u012c\1\u0393\15\u012c\1\u0393\1\u012c" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0394\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0395\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u0396\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0397" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\3\172" + "\5\u0398\2\172\1\u0141\2\172\1\u0398\1\u0142\1\u0398\7\172" - + "\2\u0398\1\172\2\u0398\4\172\2\u0398\17\172\1\u0398\1\172" - + "\1\u0398\3\172\1\u0398\10\172\3\u0398\5\172\1\u0398\15\172" + "\1\u0398\1\172\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0399\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\u039a\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\2\6\1\u039b\14\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u039c\3\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u039d" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u039e\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01dd\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\1\6\1\u039f\25\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u03a0\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u03a1\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u03a2\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u03a3\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0369\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u03a4\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u03a5\10\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03a6\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u03a7\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\6\1\u03a8\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\1\6\1\u03a9\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u03aa\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u03ab\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u03ac\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u03ad" + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u03ae" - + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u03af\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" - + "\1\u03b0\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u03b1\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\13\6\1\u03b2\13\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\u03b3" + "\5\6\2\0\6\6\13\0\17\6\1\5\1\0\21\6" - + "\1\u03b4\5\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u03b5\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u03b6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u03b7\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\2\6\1\u0160\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u03b8\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\11\6" - + "\1\261\5\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\4\6\1\u03b9\1\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u03ba\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\3\6\1\u02f7\13\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u03bb\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u03bc\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0173" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u03bd\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\4\6\1\261" - + "\2\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\1\261\26\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u024a\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u03be\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0173\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u03bf\12\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0163\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\u03c0\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u03c1\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\2\6\1\u03c2\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u03c3" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03c4\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u03c5\7\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\7\6\1\u03c6\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u03c7" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u03c8\5\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\7\6\1\u03c9\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u03ca\2\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u03cb\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u03cc" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\6\1\u03cd\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u03ce" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0213\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u03cf\15\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" - + "\1\u032a\3\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u03d0\7\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03d1\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u03d2\7\6" + "\1\5\1\0\27\6\1\0\3\5\5\u03d3\2\0\3\5" + + "\2\u0398\1\172\2\u0398\4\172\2\u0398\17\172\1\u0398\1\172" + "\1\u0398\3\172\1\u0398\10\172\3\u0398\5\172\1\u0398\15\172" + + "\1\u0398\1\172\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0399\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\u039a\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\u039b\14\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u039c\3\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u039d" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u039e\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u01dd\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\1\6\1\u039f\25\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u03a0\5\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u03a1\2\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03a2\4\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u03a3\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0369\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u03a4\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u03a5\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03a6\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u03a7\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u03a8\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u03a9\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u03aa\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u03ab\3\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03ac\4\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u03ad" + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u03ae" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u03af\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + + "\1\u03b0\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u03b1\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\13\6\1\u03b2\13\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\u03b3" + + "\5\6\2\0\6\6\13\0\17\6\1\5\1\0\21\6" + "\1\u03b4\5\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u03b5\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u03b6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u03b7\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u0160\14\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u03b8\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\11\6" + "\1\261\5\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u03b9\1\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u03ba\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u02f7\13\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u03bb\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u03bc\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0173" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u03bd\4\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\4\6\1\261" + "\2\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\1\261\26\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u024a\1\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u03be\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0173\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u03bf\12\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0163\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u03c0\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u03c1\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\2\6\1\u03c2\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u03c3" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03c4\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u03c5\7\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u03c6\7\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u03c7" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u03c8\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u03c9\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u03ca\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u03cb\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u03cc" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u03cd\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u03ce" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0213\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u03cf\15\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u032a\3\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u03d0\7\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03d1\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u03d2\7\6" + "\1\5\1\0\27\6\1\0\3\5\5\u03d3\2\0\3\5" + "\1\u03d3\1\0\1\u03d3\1\0\2\5\3\0\1\5\2\u03d3" + "\1\5\2\u03d3\2\0\2\5\2\u03d3\2\5\13\0\2\5" + "\1\u03d3\1\5\1\u03d3\3\5\1\u03d3\7\5\1\0\3\u03d3" + "\5\5\1\u03d3\15\5\1\u03d3\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u03d4\2\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u03d5\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u03d6\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u03d7" - + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u03d4\2\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u03d5\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u03d6\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u03d7" + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\1\u03d8\3\6\1\u03d9\1\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\6\6\1\u03da\1\6\1\u03db\7\6\1\u02eb" - + "\6\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u031b\2\6\13\0\17\6\1\5\1\0\20\6\1\u03dc" + "\6\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u03dd\4\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" - + "\1\u03de\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u03df\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u03e0\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u0256\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03e1\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u03e2\12\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u032f\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u03e3" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u03e4\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0227\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" + "\1\u03e5\7\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u03e6\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u03e7\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\21\6\1\u03e8\5\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\13\6\1\u03e9\3\6\1\u03ea\7\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u03eb\13\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u03ec\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" - + "\1\u032a\3\6\2\0\1\u0156\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03ed\4\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u03ee" - + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u03ef" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u03f0\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\7\6\1\u03f1\7\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\13\6\1\u03f2\3\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u03f3\5\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\14\6\1\u03f4" + "\4\6\1\u03f5\5\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u03f6\1\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\4\6\1\u03f7\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u03f8\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u03f9\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\2\6\1\u0287\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u03fa\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03fb\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u03fc\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u01b5\7\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\2\6\1\u03fd\14\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u03fe\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\14\6\1\u03ff\12\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u0400\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0401\15\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u0402\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0403\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\4\6\1\u0404\12\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\11\6\1\u0405\5\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\6\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u031b\2\6\13\0\17\6\1\5\1\0\20\6\1\u03dc" + + "\6\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u03dd\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u03de\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u03df\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u03e0\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0256\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03e1\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u03e2\12\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\4\6\1\u032f\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u03e3" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u03e4\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u0227\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" + + "\1\u03e5\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u03e6\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u03e7\10\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\21\6\1\u03e8\5\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\13\6\1\u03e9\3\6\1\u03ea\7\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u03eb\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u03ec\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u032a\3\6\2\0\1\u0156\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03ed\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u03ee" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u03ef" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u03f0\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\7\6\1\u03f1\7\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\13\6\1\u03f2\3\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u03f3\5\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\14\6\1\u03f4" + + "\4\6\1\u03f5\5\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u03f6\1\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u03f7\12\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u03f8\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\6\1\u03f9\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u0287\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u03fa\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03fb\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u03fc\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\7\6\1\u01b5\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\2\6\1\u03fd\14\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u03fe\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\14\6\1\u03ff\12\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u0400\15\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0401\15\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0402\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0403\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\4\6\1\u0404\12\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\11\6\1\u0405\5\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0406\5\6\13\0" + "\17\6\1\5\1\0\27\6\15\0\1\u0407\113\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u0408\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u0409\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u040a\4\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u040b\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u040c\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u040d\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u040e\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u040f\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u0410\16\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0411" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\17\6\1\u0412\7\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\12\6\1\u025d\4\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0413\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0414\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0415\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u0416\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0417\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\13\6\1\u0418\10\6\1\u02ee\2\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0419" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u041a\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\13\6\1\u0256\3\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\15\6" + "\1\u02e9\1\6\1\5\1\0\11\6\1\u02ea\7\6\1\u02ec" - + "\2\6\1\u02ee\2\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u041b\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\5\6\1\u041c\1\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01b5\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u041d\2\6\13\0\17\6\1\5\1\0\27\6\25\0" + "\1\u02af\127\0\1\u02b2\142\0\1\u041e\131\0\1\u041f\156\0" - + "\1\u0420\76\0\1\u0421\152\0\1\u0422\127\0\1\u0423\60\0" - + "\1\u0424\174\0\1\u0425\110\0\1\u0426\126\0\1\u02bb\131\0" - + "\1\u0427\125\0\1\u0428\155\0\1\u02bb\133\0\1\u0429\74\0" - + "\1\u042a\154\0\1\u02bb\130\0\1\u042b\137\0\1\u042c\72\0" - + "\1\u042d\163\0\1\u042e\73\0\1\u042c\127\0\1\u042f\102\0" + "\1\u0385\140\0\1\u02cb\103\0\3\5\5\6\2\0\3\5" - + "\1\6\1\0\1\6\1\0\2\5\3\0\1\5\2\6" + "\1\5\2\6\2\0\2\5\2\6\2\5\13\0\2\5" - + "\1\6\1\5\1\6\3\5\1\6\7\5\1\0\3\6" + "\5\5\1\6\15\5\1\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u0430\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u0431\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0432\10\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\306\3\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0433\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0434\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0435\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0436\10\6" + "\1\5\1\0\27\6\1\0\3\u012c\5\147\1\150\1\0" - + "\3\u012c\1\147\1\u012c\1\147\7\u012c\2\147\1\u012c\2\147" - + "\4\u012c\2\147\17\u012c\1\147\1\u012c\1\147\3\u012c\1\147" + + "\7\6\2\0\1\126\1\6\1\u0408\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u0409\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u040a\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u040b\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u040c\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u040d\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\u040e\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u040f\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u0410\16\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0411" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\17\6\1\u0412\7\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\12\6\1\u025d\4\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0413\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0414\1\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u0415\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u0416\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + + "\1\u0417\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\13\6\1\u0418\10\6\1\u02ee\2\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0419" + + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u041a\5\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\13\6\1\u0256\3\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\15\6" + "\1\u02e9\1\6\1\5\1\0\11\6\1\u02ea\7\6\1\u02ec" + + "\2\6\1\u02ee\2\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u041b\4\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\5\6\1\u041c\1\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01b5\4\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u041d\2\6\13\0\17\6\1\5\1\0\27\6\25\0" + + "\1\u02af\127\0\1\u02b2\142\0\1\u041e\131\0\1\u041f\156\0" + "\1\u0420\76\0\1\u0421\152\0\1\u0422\127\0\1\u0423\60\0" + + "\1\u0424\174\0\1\u0425\110\0\1\u0426\126\0\1\u02bb\131\0" + "\1\u0427\125\0\1\u0428\155\0\1\u02bb\133\0\1\u0429\74\0" + + "\1\u042a\154\0\1\u02bb\130\0\1\u042b\137\0\1\u042c\72\0" + "\1\u042d\163\0\1\u042e\73\0\1\u042c\127\0\1\u042f\102\0" + + "\1\u0385\140\0\1\u02cb\103\0\3\5\5\6\2\0\3\5" + "\1\6\1\0\1\6\1\0\2\5\3\0\1\5\2\6" + "\1\5\2\6\2\0\2\5\2\6\2\5\13\0\2\5" + + "\1\6\1\5\1\6\3\5\1\6\7\5\1\0\3\6" + "\5\5\1\6\15\5\1\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u0430\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\4\6\1\u0431\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\6\6\1\u0432\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\306\3\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0433\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0434\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0435\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0436\10\6" + "\1\5\1\0\27\6\1\0\3\u012c\5\147\1\150\1\0" + + "\3\u012c\1\147\1\u012c\1\147\7\u012c\2\147\1\u012c\2\147" + "\4\u012c\2\147\17\u012c\1\147\1\u012c\1\147\3\u012c\1\147" + "\10\u012c\3\147\5\u012c\1\147\15\u012c\1\147\1\u012c\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u0397\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\6\1\261\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\1\6\1\u0437\5\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\14\6\1\261\2\6\1\5\1\0\27\6\1\0\3\172" - + "\5\16\2\172\1\u0141\2\172\1\16\1\u0142\1\16\7\172" + "\2\16\1\172\2\16\4\172\2\16\17\172\1\16\1\172" - + "\1\16\3\172\1\16\10\172\3\16\5\172\1\16\15\172" + "\1\16\1\172\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u0438" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0439" - + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\1\u038d\5\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\16\6\1\u043a\10\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u03d4\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" - + "\1\u043b\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u043c\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\1\0\1\u043d\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u043e\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u01b5\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u043f\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" - + "\1\u0440\1\6\2\0\1\u0441\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u0442\7\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0443" - + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\u0444\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0445\2\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\3\6\1\u0446\13\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0447\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u03a8\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u0448\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0443\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0449\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u044a\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\3\6\1\u01b5\13\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u044b\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u044c\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u044d\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u044e\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\2\6\1\u044f\3\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0450\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\11\6\1\u0451\5\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u024a\12\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0452\3\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\1\6\1\u0311" + "\5\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\1\6\1\u0453\5\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\2\6\1\156\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0454\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0139\1\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0455" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u0456\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\u0163\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u0457\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u0458\12\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0459\13\0\2\6\1\u045a" - + "\3\6\1\u045b\3\6\1\u045c\4\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u045d\13\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u045e" - + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\153\2\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\1\6\1\u045f\5\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0460\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\231\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0461\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u0462\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0463\13\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u03cd\5\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0464\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0465" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0466" - + "\12\6\1\5\1\0\27\6\1\0\1\5\5\6\1\u0467" + "\1\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\3\5\5\u0468\2\0\3\5\1\u0468" - + "\1\0\1\u0468\1\0\2\5\3\0\1\5\2\u0468\1\5" + "\2\u0468\2\0\2\5\2\u0468\2\5\13\0\2\5\1\u0468" - + "\1\5\1\u0468\3\5\1\u0468\7\5\1\0\3\u0468\5\5" + "\1\u0468\15\5\1\u0468\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\5\6" + "\1\u0469\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u046a" - + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u046b" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u046c\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u03a7\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u046d\15\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u046e\2\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u046f\2\6\13\0\6\6\1\u0470" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u0471\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u0472\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0473\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u0474\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\3\6\1\u0475" + "\23\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0476\4\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0477\5\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u0478\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0479" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" - + "\1\u047a\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u047b\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u047c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\u047d\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u047e\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u047f\10\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0480\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0481\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u0482\7\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u0483\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0484\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\3\6\1\u0449\13\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\10\6\1\u0485\3\6" + "\1\u0486\12\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\1\6\1\u0487" + "\4\6\2\0\6\6\13\0\15\6\1\u02e9\1\6\1\5" - + "\1\0\11\6\1\u038f\1\u0488\1\6\1\u0486\7\6\1\u02ee" + "\2\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\17\6\1\u0489\7\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u048a\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u048b\4\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u048c\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u048d\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u048e\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u048f\12\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u0490\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\14\6\1\u0491\12\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0492" - + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\1\u0493\5\6\1\0\1\u0494\6\6\13\0\10\6\1\u0495" + "\6\6\1\5\1\0\23\6\1\u0496\3\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0497" - + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u0498\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" - + "\1\u0256\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0499\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u049a\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u049b\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\16\6\1\u049c\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u049d\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u049e\2\6\13\0\17\6\1\5\1\0" - + "\27\6\37\0\1\u049f\71\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\13\6\1\u04a0\3\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u04a1\10\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\4\6\1\u04a2\1\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u04a3\4\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u04a4\3\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u04a5\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u04a6\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u04a7\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u04a8" - + "\1\u04a9\2\0\6\6\13\0\17\6\1\5\1\0\17\6" + "\1\u04aa\7\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\13\6\1\u04ab\13\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u04ac" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u0397\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\261\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\1\6\1\u0437\5\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\14\6\1\261\2\6\1\5\1\0\27\6\1\0\3\172" + "\5\16\2\172\1\u0141\2\172\1\16\1\u0142\1\16\7\172" + + "\2\16\1\172\2\16\4\172\2\16\17\172\1\16\1\172" + "\1\16\3\172\1\16\10\172\3\16\5\172\1\16\15\172" + + "\1\16\1\172\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u0438" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0439" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\1\u038d\5\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\16\6\1\u043a\10\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u03d4\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u043b\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u043c\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\1\0\1\u043d\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\u043e\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u01b5\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u043f\4\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" + "\1\u0440\1\6\2\0\1\u0441\5\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u0442\7\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0443" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u0444\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0445\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\3\6\1\u0446\13\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u0447\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u03a8\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\u0448\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + + "\1\u0443\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0449\2\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u044a\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\3\6\1\u01b5\13\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u044b\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u044c\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u044d\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u044e\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\2\6\1\u044f\3\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u0450\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\11\6\1\u0451\5\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\u024a\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0452\3\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\1\6\1\u0311" + "\5\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\1\6\1\u0453\5\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\2\6\1\156\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0454\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0139\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0455" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u0456\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\u0163\2\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u0457\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + + "\1\u0458\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0459\13\0\2\6\1\u045a" + + "\3\6\1\u045b\3\6\1\u045c\4\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\3\6\1\u045d\13\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u045e" + + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\153\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\1\6\1\u045f\5\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0460\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\6\1\231\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0461\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0462\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0463\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u03cd\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0464\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0465" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0466" + + "\12\6\1\5\1\0\27\6\1\0\1\5\5\6\1\u0467" + "\1\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\3\5\5\u0468\2\0\3\5\1\u0468" + "\1\0\1\u0468\1\0\2\5\3\0\1\5\2\u0468\1\5" + + "\2\u0468\2\0\2\5\2\u0468\2\5\13\0\2\5\1\u0468" + "\1\5\1\u0468\3\5\1\u0468\7\5\1\0\3\u0468\5\5" + + "\1\u0468\15\5\1\u0468\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\5\6" + "\1\u0469\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u046a" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u046b" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u046c\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u03a7\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u046d\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u046e\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u046f\2\6\13\0\6\6\1\u0470" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u0471\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u0472\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0473\5\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u0474\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\3\6\1\u0475" + + "\23\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0476\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0477\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0478\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0479" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" + "\1\u047a\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u047b\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u047c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u047d\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u047e\5\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u047f\10\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0480\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0481\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u0482\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0483\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u0484\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\3\6\1\u0449\13\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\10\6\1\u0485\3\6" + "\1\u0486\12\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\1\6\1\u0487" + + "\4\6\2\0\6\6\13\0\15\6\1\u02e9\1\6\1\5" + "\1\0\11\6\1\u038f\1\u0488\1\6\1\u0486\7\6\1\u02ee" + + "\2\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\17\6\1\u0489\7\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u048a\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u048b\4\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u048c\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u048d\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u048e\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\4\6\1\u048f\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u0490\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\14\6\1\u0491\12\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0492" + + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\1\u0493\5\6\1\0\1\u0494\6\6\13\0\10\6\1\u0495" + + "\6\6\1\5\1\0\23\6\1\u0496\3\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0497" + + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0498\2\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0256\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0499\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u049a\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u049b\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\16\6\1\u049c\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u049d\1\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\3\6\1\u049e\2\6\13\0\17\6\1\5\1\0" + "\27\6\37\0\1\u049f\71\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\13\6\1\u04a0\3\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\6\6\1\u04a1\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\4\6\1\u04a2\1\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u04a3\4\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u04a4\3\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u04a5\10\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u04a6\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u04a7\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u04a8" + "\1\u04a9\2\0\6\6\13\0\17\6\1\5\1\0\17\6" + "\1\u04aa\7\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\13\6\1\u04ab\13\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u04ac" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u01b5\13\0\17\6" + "\1\5\1\0\11\6\1\u04ad\1\6\1\u04ae\5\6\1\u04af" - + "\5\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u04b0\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u04b1\12\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u04b2\5\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u04b3\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u04b4\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u04b5\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u04b6\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u04b7\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\u04b8\3\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u04b9\13\0\17\6\1\5\1\0\27\6" + "\66\0\1\u04ba\123\0\1\u04bb\111\0\1\u02bb\100\0\1\u02bb" - + "\155\0\1\u037a\123\0\1\u0381\152\0\1\u037a\105\0\1\u02bb" - + "\132\0\1\u04bc\125\0\1\u04bd\152\0\1\u04be\124\0\1\u04bf" - + "\63\0\1\u04ba\173\0\1\u0421\47\0\44\u042c\1\u02bb\63\u042c" + + "\5\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u04b0\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u04b1\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u04b2\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u04b3\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u04b4\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u04b5\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\6\6\1\u04b6\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + + "\1\u04b7\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\u04b8\3\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u04b9\13\0\17\6\1\5\1\0\27\6" + + "\66\0\1\u04ba\123\0\1\u04bb\111\0\1\u02bb\100\0\1\u02bb" + "\155\0\1\u037a\123\0\1\u0381\152\0\1\u037a\105\0\1\u02bb" + + "\132\0\1\u04bc\125\0\1\u04bd\152\0\1\u04be\124\0\1\u04bf" + "\63\0\1\u04ba\173\0\1\u0421\47\0\44\u042c\1\u02bb\63\u042c" + "\37\0\1\u04c0\150\0\1\u04c1\106\0\1\u04c2\70\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\u0267\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u04c3\5\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0222" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u01ab\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u04c4\15\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04c5" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u04c6" + "\15\6\1\5\1\0\27\6\1\0\1\5\3\6\2\261" + + "\1\6\3\0\6\6\2\0\5\6\1\u0267\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u04c3\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0222" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u01ab\14\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u04c4\15\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04c5" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u04c6" + "\15\6\1\5\1\0\27\6\1\0\1\5\3\6\2\261" + "\2\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\1\261\26\6\27\0\1\u04c7\1\u04c8\2\0\1\u04c9" + "\55\0\1\u04ca\17\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u04cb" + "\3\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u04cc" - + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u04cd" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u04ce\4\6\13\0\17\6\1\5" - + "\1\0\27\6\34\0\1\u04cf\33\0\1\u04d0\40\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u04d1\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u04d2\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u04d3\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u04d4" + "\1\u04d5\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u04d6\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u032f\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u04d7\12\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\2\6\1\u032f\14\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\u04d8\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" + "\1\u04d9\1\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\7\6\1\u04da\7\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u04db\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u04dc\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u04dd\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u04de\15\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u04df\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u04e0\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\4\6\1\u04e1\22\6\1\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u024a\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u0174\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" - + "\1\u04e2\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\3\6\2\261\2\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u04e3\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0139\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u024a\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u0163\12\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u04e4\3\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u0307\5\6\13\0\3\6\1\u04e5\13\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\14\6\1\u04e6\2\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u04e7\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u04e8" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\6\1\u0163\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0188\3\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0163\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u0188\1\6\1\u0189" + "\1\6\13\0\13\6\1\u0189\3\6\1\5\1\0\27\6" - + "\1\0\1\5\3\6\2\261\2\6\2\0\1\126\3\6" + "\1\0\1\261\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\7\6\1\u04e9\7\6\1\5\1\0\3\261" + "\24\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u04ea" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u04eb\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u04ec\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u04ed" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u04ee\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\5\6\1\u022c\2\0\6\6\13\0\17\6\1\5" + "\1\0\22\6\1\u02ed\4\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u04ef\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u04f0\12\6\1\5\1\0\27\6" + "\1\0\3\5\5\321\2\0\3\5\1\321\1\0\1\321" - + "\1\0\2\5\3\0\1\5\2\321\1\5\2\321\2\0" + "\2\5\2\321\2\5\13\0\2\5\1\321\1\5\1\321" - + "\3\5\1\321\7\5\1\0\3\321\5\5\1\321\15\5" + "\1\321\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\215\4\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\17\6\1\u04f1\7\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u01b5\2\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u04f2\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u04f3\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0190\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u04f4\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u04f5\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04f6\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u04f7\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u04f8\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\u04f9\4\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\u04fa\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u04fb\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u04fc\10\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u03d4" - + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u04fd" + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u04fe\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u04ff\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0500" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0501\5\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u0502\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0503\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0504\5\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\10\6\1\u0505" + "\10\6\1\u0506\1\u0507\4\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0508\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\5\6\1\u0509\1\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\4\6\1\u050a\1\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\13\6\1\u050b\1\u050c\2\6\1\u050d\7\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\14\6" - + "\1\u02ac\2\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u050e\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u050f\15\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u0510\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0511" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0512\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0513\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0514" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\5\6\1\u0515\21\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\1\u03d8\5\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\10\6\1\u0516\16\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\14\6\1\u0517\2\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0518\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0519\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u051a\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u051b\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u051c\15\6\1\5\1\0\27\6\114\0" - + "\1\u051d\1\0\1\u051e\12\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u0489\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u051f\4\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\1\u0520\5\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u0521\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\22\6\1\u0522\4\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0523\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\2\6\1\u0524\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0525\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u0526\1\u0469\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\40\0\1\u0527" + "\70\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\4\6\1\u0528\1\6\2\0" + "\6\6\13\0\15\6\1\u0529\1\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u052a\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u052b" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u052c\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u01c0\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\12\6\1\u052d\4\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u052e\2\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\10\6\1\u052f\6\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0530\10\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0531" - + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u0532\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0533\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\7\6\1\u0534\7\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0535\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0536\5\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0537" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0538\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u0539\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u053a\5\6\1\u053b\2\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\1\6\1\u053c" + "\4\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u053d" - + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u053e" + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\12\6\1\u053f\4\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0540\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0541\15\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u0542\16\6" - + "\1\5\1\0\27\6\42\0\1\u0543\131\0\1\u0544\116\0" - + "\1\u0545\34\0\1\u0546\76\0\1\u037a\132\0\1\u0547\125\0" + + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u04cb" + "\3\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u04cc" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u04cd" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u04ce\4\6\13\0\17\6\1\5" + "\1\0\27\6\34\0\1\u04cf\33\0\1\u04d0\40\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u04d1\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u04d2\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u04d3\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u04d4" + "\1\u04d5\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u04d6\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u032f\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\4\6\1\u04d7\12\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\2\6\1\u032f\14\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\u04d8\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" + "\1\u04d9\1\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u04da\7\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u04db\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u04dc\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u04dd\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u04de\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u04df\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u04e0\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\4\6\1\u04e1\22\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u024a\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0174\10\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u04e2\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\3\6\2\261\2\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\1\6\1\u04e3\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0139\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u024a\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u0163\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u04e4\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u0307\5\6\13\0\3\6\1\u04e5\13\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\14\6\1\u04e6\2\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u04e7\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u04e8" + + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0163\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0188\3\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0163\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0188\1\6\1\u0189" + + "\1\6\13\0\13\6\1\u0189\3\6\1\5\1\0\27\6" + "\1\0\1\5\3\6\2\261\2\6\2\0\1\126\3\6" + "\1\0\1\261\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\7\6\1\u04e9\7\6\1\5\1\0\3\261" + "\24\6\1\0\1\5\7\6\2\0\1\126\1\6\1\u04ea" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u04eb\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u04ec\5\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u04ed" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u04ee\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\5\6\1\u022c\2\0\6\6\13\0\17\6\1\5" + "\1\0\22\6\1\u02ed\4\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u04ef\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u04f0\12\6\1\5\1\0\27\6" + "\1\0\3\5\5\321\2\0\3\5\1\321\1\0\1\321" + + "\1\0\2\5\3\0\1\5\2\321\1\5\2\321\2\0" + "\2\5\2\321\2\5\13\0\2\5\1\321\1\5\1\321" + "\3\5\1\321\7\5\1\0\3\321\5\5\1\321\15\5" + + "\1\321\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\215\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\17\6\1\u04f1\7\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u01b5\2\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u04f2\4\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u04f3\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0190\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\5\6\1\u04f4\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u04f5\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04f6\5\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u04f7\2\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u04f8\3\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\u04f9\4\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\u04fa\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u04fb\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u04fc\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u03d4" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u04fd" + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u04fe\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u04ff\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0500" + + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0501\5\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0502\4\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0503\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0504\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\10\6\1\u0505" + "\10\6\1\u0506\1\u0507\4\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0508\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\5\6\1\u0509\1\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\4\6\1\u050a\1\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\13\6\1\u050b\1\u050c\2\6\1\u050d\7\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\14\6" + + "\1\u02ac\2\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u050e\15\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u050f\15\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u0510\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0511" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0512\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0513\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0514" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\5\6\1\u0515\21\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\1\u03d8\5\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\10\6\1\u0516\16\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\14\6\1\u0517\2\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u0518\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0519\2\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u051a\10\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u051b\1\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u051c\15\6\1\5\1\0\27\6\114\0" + + "\1\u051d\1\0\1\u051e\12\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0489\3\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u051f\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\1\u0520\5\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u0521\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\22\6\1\u0522\4\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0523\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\2\6\1\u0524\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u0525\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u0526\1\u0469\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\40\0\1\u0527" + "\70\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u0528\1\6\2\0" + + "\6\6\13\0\15\6\1\u0529\1\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u052a\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u052b" + + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u052c\3\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u01c0\1\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\12\6\1\u052d\4\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u052e\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\10\6\1\u052f\6\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0530\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0531" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u0532\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u0533\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\7\6\1\u0534\7\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0535\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0536\5\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u0537" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0538\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u0539\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u053a\5\6\1\u053b\2\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\1\6\1\u053c" + "\4\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u053d" + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u053e" + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\12\6\1\u053f\4\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u0540\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u0541\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u0542\16\6" + + "\1\5\1\0\27\6\42\0\1\u0543\131\0\1\u0544\116\0" + "\1\u0545\34\0\1\u0546\76\0\1\u037a\132\0\1\u0547\125\0" + "\1\u0548\131\0\1\u0549\146\0\1\u054a\134\0\1\u054b\42\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\1\u038d\5\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\10\6\1\u054c\2\6\1\u054d\3\6" - + "\1\u054e\5\6\1\101\1\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u052d\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u054f\10\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u03d4\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\42\0\1\u0550" + "\101\0\1\u0551\201\0\1\u0552\103\0\1\u0553\66\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0554\3\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u0555\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u0556\2\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u019d\2\6\13\0" - + "\17\6\1\5\1\0\27\6\15\0\1\u0557\153\0\1\u0557" + "\67\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u0558\13\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0559" - + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u055a\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u055b\4\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\2\6\1\u055c\3\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\4\6\1\u02e7\1\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u055d\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u055e\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u055f\15\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0560\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u0561\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0562" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0563" - + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0564\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0565\12\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0566\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0567\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u0568\3\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u0569\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u056a\15\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u056b\3\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u056c\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0183" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u056d\4\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\4\6\1\261" + "\2\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0160\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u056e\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\5\6\1\u056f\11\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0570\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0571\5\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u046b\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\1\6\1\u0572\4\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0573" - + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u0574\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\1\0" + "\1\u0575\6\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" - + "\1\u0576\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u015b\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0577\12\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\13\6\1\u0578\13\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0579" + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u057a\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u057b\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u057c" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u057d\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u057e\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u057f\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0580\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0581\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u0582\3\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\21\6\1\u0583\5\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0584\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u0585\7\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u0586\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0587\1\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\2\6\1\u0588\3\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0589\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u058a\14\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u058b\4\6\13\0\4\6\1\u058c\12\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u058d\15\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u058e\5\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\u058f\16\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0590\15\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0591\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u0592\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" - + "\1\u0593\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0594\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u0283\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u01cb\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u0595\12\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u0596\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0597" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0598" - + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\5\6\1\u022c\2\0\6\6\13\0\17\6\1\5\1\0" + "\17\6\1\u0599\7\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\11\6\1\u02ea" - + "\15\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u059a" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u059b" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u059c\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u059d\12\6\1\5\1\0\27\6" + "\37\0\1\u059e\105\0\1\u059f\113\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u05a0\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u05a1\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\16\6\1\u01b5\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u05a2\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u05a3\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u05a4\10\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u05a5" - + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u05a6\15\6\1\5" + "\1\0\27\6\74\0\1\u05a7\34\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u05a8\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u05a9\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u05aa\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u05ab\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\5\6\1\u05ac\1\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u015b\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u05ad\1\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u05ae\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u05af\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u05b0\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u05b1\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u05b2\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u05b3\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u05b4\13\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u05b5\4\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u05b6\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\1\u05b7\5\6\2\0" + "\6\6\13\0\10\6\1\u05b8\6\6\1\5\1\0\11\6" - + "\1\u05b9\15\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\15\6\1\u02e9\1\6\1\5\1\0\11\6" + "\1\u02ea\15\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u05ba\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\15\6\1\u02dd\1\6\1\5\1\0\22\6\1\u02ed\4\6" + "\1\0\1\5\7\6\2\0\1\126\1\u05bb\2\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u05bc\3\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\101" + "\1\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u05bd\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u05be\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u05bf\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\1\u054e\5\6\1\101\1\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u052d\4\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u054f\10\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u03d4\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\42\0\1\u0550" + + "\101\0\1\u0551\201\0\1\u0552\103\0\1\u0553\66\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u0554\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u0555\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u0556\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u019d\2\6\13\0" + + "\17\6\1\5\1\0\27\6\15\0\1\u0557\153\0\1\u0557" + "\67\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\3\6\1\u0558\13\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0559" + + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u055a\2\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u055b\4\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\2\6\1\u055c\3\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\4\6\1\u02e7\1\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u055d\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u055e\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u055f\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0560\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u0561\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0562" + + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0563" + + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0564\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0565\12\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0566\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0567\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u0568\3\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u0569\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u056a\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u056b\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u056c\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0183" + + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u056d\4\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\4\6\1\261" + "\2\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0160\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\6\1\u056e\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\5\6\1\u056f\11\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0570\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0571\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u046b\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\1\6\1\u0572\4\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0573" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u0574\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\1\0" + + "\1\u0575\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" + + "\1\u0576\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u015b\5\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0577\12\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\13\6\1\u0578\13\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0579" + "\2\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u057a\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u057b\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u057c" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u057d\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u057e\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u057f\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0580\4\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0581\2\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u0582\3\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\21\6\1\u0583\5\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0584\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u0585\7\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0586\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0587\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\2\6\1\u0588\3\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0589\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\2\6\1\u058a\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\u058b\4\6\13\0\4\6\1\u058c\12\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u058d\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u058e\5\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u058f\16\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0590\15\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0591\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\16\6\1\u0592\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" + + "\1\u0593\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0594\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u0283\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u01cb\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\4\6\1\u0595\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u0596\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0597" + + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0598" + + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\5\6\1\u022c\2\0\6\6\13\0\17\6\1\5\1\0" + + "\17\6\1\u0599\7\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\11\6\1\u02ea" + + "\15\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u059a" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u059b" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u059c\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u059d\12\6\1\5\1\0\27\6" + + "\37\0\1\u059e\105\0\1\u059f\113\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u05a0\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u05a1\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\16\6\1\u01b5\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u05a2\4\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u05a3\5\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u05a4\10\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u05a5" + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u05a6\15\6\1\5" + "\1\0\27\6\74\0\1\u05a7\34\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u05a8\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u05a9\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u05aa\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u05ab\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\5\6\1\u05ac\1\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u015b\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u05ad\1\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u05ae\3\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u05af\3\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u05b0\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u05b1\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u05b2\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u05b3\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u05b4\13\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u05b5\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u05b6\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u05b7\5\6\2\0" + + "\6\6\13\0\10\6\1\u05b8\6\6\1\5\1\0\11\6" + "\1\u05b9\15\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\15\6\1\u02e9\1\6\1\5\1\0\11\6" + "\1\u02ea\15\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u05ba\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\15\6\1\u02dd\1\6\1\5\1\0\22\6\1\u02ed\4\6" + "\1\0\1\5\7\6\2\0\1\126\1\u05bb\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u05bc\3\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\101" + + "\1\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u05bd\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\6\1\u05be\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u05bf\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\17\6\1\u02f1" - + "\7\6\43\0\1\u02bb\126\0\1\u05c0\153\0\1\u05c1\103\0" - + "\1\u05c2\124\0\1\u05c3\164\0\1\u02bb\76\0\1\u042c\123\0" + + "\7\6\43\0\1\u02bb\126\0\1\u05c0\153\0\1\u05c1\103\0" + "\1\u05c2\124\0\1\u05c3\164\0\1\u02bb\76\0\1\u042c\123\0" + "\1\u042c\127\0\1\u05c4\71\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u05c5\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u05c6\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u05c7\1\u05c8" - + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u015b" + "\12\6\1\5\1\0\27\6\15\0\1\u05c9\200\0\1\u05ca" - + "\104\0\1\u05cb\123\0\1\u05cc\71\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u0539\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u0287\16\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u05cd\4\6" - + "\13\0\17\6\1\5\1\0\27\6\64\0\1\u05ce\44\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\17\6\1\u05cf\7\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\11\6\1\u02ea\7\6\1\u02ec\5\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u05d0\3\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\1\0\1\u05d1\6\6\13\0\17\6\1\5\1\0\10\6" - + "\1\u05d2\16\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u05d3\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u05d4\10\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\13\6\1\u0418\13\6\1\0\1\5\7\6\2\0" + "\1\126\1\u05d5\2\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u05d6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u03a1" - + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u05d7\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\5\6\1\u025b\21\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\11\6\1\u05d8\15\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u015b" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u05d9\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\4\6\1\u0222\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0247\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\5\6" - + "\1\u0455\21\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\261\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u05da\12\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u05db\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u05dc\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0171\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u024a\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" - + "\1\u05dd\1\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u05de\2\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u05df\3\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u05e0\12\6\1\5" + "\1\0\27\6\30\0\1\u04c8\100\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u05e1\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u05e2" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u05e3\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\15\6\1\u02e9\1\6\1\5" - + "\1\0\24\6\1\u02ee\2\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\1\0\1\u05e4\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u05e5\4\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u05e6\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u05e7\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" - + "\1\u05e8\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6"; - - private static final String ZZ_TRANS_PACKED_1 = "\3\0\6\6\2\0\2\6\1\u05e9\3\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\14\6\1\u05ea\2\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u05eb" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u05ec\1\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\2\6\1\u05ed\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u05ee\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u05ef\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\2\6\1\u05f0\3\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u05f1\2\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\4\6\1\u05f2\22\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u05f3\15\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\1\u05f4\5\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\13\6\1\u05f5\3\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u05f6\12\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u05f7\4\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u05f8\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u05f9\4\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u05fa\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u05fb\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05fc\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\u05fd\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0445\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u05fe\3\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\2\6\1\u05ff\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\2\6\1\u0600\3\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u0601\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u0602\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u0603\15\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0604" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u015b" + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0605\2\6\13\0\17\6\1\5" + + "\2\0\6\6\13\0\1\6\1\u05c5\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u05c6\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u05c7\1\u05c8" + + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u015b" + + "\12\6\1\5\1\0\27\6\15\0\1\u05c9\200\0\1\u05ca" + "\104\0\1\u05cb\123\0\1\u05cc\71\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u0539\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u0287\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u05cd\4\6" + "\13\0\17\6\1\5\1\0\27\6\64\0\1\u05ce\44\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\17\6\1\u05cf\7\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\11\6\1\u02ea\7\6\1\u02ec\5\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u05d0\3\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\1\0\1\u05d1\6\6\13\0\17\6\1\5\1\0\10\6" + "\1\u05d2\16\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\4\6\1\u05d3\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\6\6\1\u05d4\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\13\6\1\u0418\13\6\1\0\1\5\7\6\2\0" + "\1\126\1\u05d5\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u05d6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u03a1" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u05d7\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\5\6\1\u025b\21\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\11\6\1\u05d8\15\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u015b" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u05d9\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\4\6\1\u0222\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0247\5\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\5\6" + + "\1\u0455\21\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\261\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u05da\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u05db\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u05dc\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0171\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u024a\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" + + "\1\u05dd\1\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u05de\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u05df\3\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u05e0\12\6\1\5" + + "\1\0\27\6\30\0\1\u04c8\100\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u05e1\2\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\u05e2" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\u05e3\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\15\6\1\u02e9\1\6\1\5" + "\1\0\24\6\1\u02ee\2\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\1\0\1\u05e4\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u05e5\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u05e6\1\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u05e7\5\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u05e8\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6"; + private static final String ZZ_TRANS_PACKED_1 = "\3\0\6\6\2\0\2\6\1\u05e9\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\14\6\1\u05ea\2\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u05eb" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u05ec\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\2\6\1\u05ed\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u05ee\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u05ef\2\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\2\6\1\u05f0\3\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u05f1\2\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\4\6\1\u05f2\22\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u05f3\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\1\u05f4\5\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u05f5\3\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u05f6\12\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u05f7\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u05f8\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u05f9\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u05fa\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u05fb\4\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05fc\3\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\2\6" + "\1\u05fd\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0445\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u05fe\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\2\6\1\u05ff\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\2\6\1\u0600\3\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u0601\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u0602\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u0603\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0604" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u015b" + + "\14\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0605\2\6\13\0\17\6\1\5" + "\1\0\27\6\42\0\1\u0606\151\0\1\u0607\44\0\1\5" + "\7\6\2\0\1\126\1\u03af\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u0608\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0609" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u060a\3\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u060b\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\11\6\1\u060c\15\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u060d" + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u060e\4\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u060f\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0610\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" - + "\1\u0611\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0612\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0613\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\2\6\1\u0614" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u0615\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u0616\7\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\u0617\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0618\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0320\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\u0619\2\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u061a" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u061b" - + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u061c\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u061d\2\6\13\0\1\6\1\u061e\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0222\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u01b5" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u061f\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u0348\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\11\6\1\u0620\15\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\10\6\1\u0621\16\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u051b\5\6\13\0\17\6\1\5" + "\1\0\27\6\16\0\1\u0622\152\0\1\u0623\125\0\1\u0624" - + "\131\0\1\u0625\156\0\1\u0626\40\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u0627\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u01b5\5\6\13\0\17\6\1\5\1\0\3\6\1\u0628" - + "\23\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0629" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u0608\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0609" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u060a\3\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u060b\3\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\11\6\1\u060c\15\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u060d" + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u060e\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u060f\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0610\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" + "\1\u0611\7\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0612\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u0613\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\2\6\1\u0614" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0615\1\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u0616\7\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u0617\16\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0618\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0320\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\1\u0619\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u061a" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u061b" + "\13\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u061c\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u061d\2\6\13\0\1\6\1\u061e\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0222\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u01b5" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u061f\10\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0348\2\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\11\6\1\u0620\15\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\10\6\1\u0621\16\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u051b\5\6\13\0\17\6\1\5" + + "\1\0\27\6\16\0\1\u0622\152\0\1\u0623\125\0\1\u0624" + "\131\0\1\u0625\156\0\1\u0626\40\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u0627\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u01b5\5\6\13\0\17\6\1\5\1\0\3\6\1\u0628" + "\23\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0629" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u062a" + "\13\6\1\5\1\0\27\6\73\0\1\u062b\77\0\1\u062c" + "\123\0\1\u062d\131\0\1\u062e\67\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u062f\12\6\1\5" + "\1\0\27\6\61\0\1\u062c\47\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05c7\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u0630\13\0\17\6\1\5\1\0\27\6\30\0" + "\1\u0631\100\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0632\1\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0633\3\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u019d\13\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\6\1\u059c\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" - + "\1\u04db\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u0634\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\6\1\u0635\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0636\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0637\10\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u023c" - + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\u0637\2\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0638\15\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u0639\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u063a\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u063b\16\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u03d4\5\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u063c\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u063d\13\6\1\5\1\0\27\6" - + "\114\0\1\u063e\1\0\1\u063f\12\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u0640\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0256\12\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\17\6\1\u0641\7\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0642\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\13\6\1\u0643" - + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u0644\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0645\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\1\6\1\u0646\4\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\7\6\1\u0647\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0648" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0649\1\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u064a\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u064b\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u064c\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u064d\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\1\u05b0\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u064e" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u064f" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u052d\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0650\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0651\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\1\u0652\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u0653\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0654" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\5\6\1\u0655\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u0656\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0657\1\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\2\6\1\u0658\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0659\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u065a\4\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\7\6\1\u034c\17\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u01b5\1\6\13\0" + "\17\6\1\5\1\0\27\6\37\0\1\u065b\132\0\1\u065c" - + "\66\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u065d\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u0616\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u065e\14\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\2\6\1\u065f\14\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\21\6\1\u015b\5\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u0660\7\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\7\6\1\u0661\7\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0662\15\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u015b\4\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u04f4\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u0663\4\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\5\6\1\u0664\21\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\4\6\1\u0665\1\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\336\14\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0666\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0615\15\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0667\2\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u0668\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0669\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\u066a\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u066b\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u066c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\u031b\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u066d\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u066e\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u066f\2\6" + + "\6\6\2\0\6\6\13\0\4\6\1\u062f\12\6\1\5" + "\1\0\27\6\61\0\1\u062c\47\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u05c7\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\5\6\1\u0630\13\0\17\6\1\5\1\0\27\6\30\0" + "\1\u0631\100\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + + "\1\u0632\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0633\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u019d\13\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u059c\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u04db\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\1\6\1\u0634\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\1\6\1\u0635\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + + "\1\u0636\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0637\10\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u023c" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\u0637\2\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u0638\15\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0639\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u063a\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u063b\16\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u03d4\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u063c\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u063d\13\6\1\5\1\0\27\6" + "\114\0\1\u063e\1\0\1\u063f\12\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u0640\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0256\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\17\6\1\u0641\7\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0642\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\13\6\1\u0643" + "\13\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\6\6\1\u0644\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0645\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\1\6\1\u0646\4\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u0647\7\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0648" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0649\1\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u064a\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u064b\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u064c\13\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u064d\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\u05b0\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u064e" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u064f" + + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u052d\5\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0650\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0651\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\u0652\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + + "\1\u0653\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0654" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\5\6\1\u0655\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\4\6\1\u0656\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + + "\1\u0657\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\2\6\1\u0658\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u0659\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u065a\4\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\7\6\1\u034c\17\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u01b5\1\6\13\0" + + "\17\6\1\5\1\0\27\6\37\0\1\u065b\132\0\1\u065c" + "\66\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u065d\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\5\6\1\u0616\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\2\6\1\u065e\14\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\2\6\1\u065f\14\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\21\6\1\u015b\5\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u0660\7\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u0661\7\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0662\15\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u015b\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u04f4\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u0663\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\5\6\1\u0664\21\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\4\6\1\u0665\1\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\2\6\1\336\14\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u0666\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u0615\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0667\2\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0668\5\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0669\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\u066a\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\1\6\1\u066b\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u066c\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u031b\2\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\4\6\1\u066d\1\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u066e\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u066f\2\6" + "\13\0\17\6\1\5\1\0\27\6\41\0\1\u0670\131\0" + "\1\u0625\126\0\1\u02bb\147\0\1\u02bb\126\0\1\u0671\47\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0672\1\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\u0673\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u0674\16\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\1\0\1\u0675\6\6\13\0" - + "\17\6\1\5\1\0\27\6\14\0\1\u0676\175\0\1\u0677" + "\106\0\1\u0678\161\0\1\u0679\35\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u067a\3\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\10\6\1\u067b\16\6" + "\66\0\1\u067c\42\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u067d\15\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u067e\1\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u028c\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\11\6\1\u067f" - + "\15\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0680\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0132\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0681\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\2\6\1\u0682\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0683\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0684" - + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u0685\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u04b8\13\6\1\5\1\0\27\6" - + "\14\0\1\u0686\130\0\1\u0687\113\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u0688\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u0689\15\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\5\6\1\u022c\2\0\6\6" - + "\13\0\17\6\1\5\1\0\11\6\1\u060c\15\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u068a\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u068b\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\14\6\1\u068c\12\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u068d\15\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\15\6\1\u02e9" - + "\1\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u068e\12\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u068f\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u015b" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u04f4\12\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0690\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\4\6\1\u0691\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0692\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0693\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0694\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0695\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u05bf\13\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u0696\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0697\4\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0698\1\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0699\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u069a\3\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u069b\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u069c\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\1\0\1\u069d\5\6\1\u069e\13\0\15\6" - + "\1\u069f\1\6\1\5\1\0\27\6\41\0\1\u05a7\102\0" + "\1\u06a0\114\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u06a1\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\5\6\1\u06a2\2\0\6\6\13\0" - + "\17\6\1\5\1\0\10\6\1\u06a3\10\6\1\u06a4\5\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\1\u06a5\5\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u06a6\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u06a7\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u06a8\2\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u06a9\2\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u06aa\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u06ab\15\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u04f4\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u06ac" + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\6\6" - + "\1\u06ad\4\6\1\u06ae\13\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\7\6\1\u06af\7\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u06b0\5\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" - + "\1\u01b5\3\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u015b\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u06b1\14\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u06b2\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0672\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\1\u0673\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u0674\16\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\1\0\1\u0675\6\6\13\0" + "\17\6\1\5\1\0\27\6\14\0\1\u0676\175\0\1\u0677" + + "\106\0\1\u0678\161\0\1\u0679\35\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u067a\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\10\6\1\u067b\16\6" + "\66\0\1\u067c\42\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u067d\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u067e\1\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u028c\5\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\11\6\1\u067f" + + "\15\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0680\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0132\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0681\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u0682\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0683\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0684" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u0685\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\3\6\1\u04b8\13\6\1\5\1\0\27\6" + "\14\0\1\u0686\130\0\1\u0687\113\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0688\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u0689\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\5\6\1\u022c\2\0\6\6" + "\13\0\17\6\1\5\1\0\11\6\1\u060c\15\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u068a\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u068b\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\14\6\1\u068c\12\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u068d\15\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\15\6\1\u02e9" + + "\1\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u068e\12\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u068f\3\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u015b" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u04f4\12\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0690\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0691\12\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0692\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u0693\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u0694\2\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0695\5\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u05bf\13\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0696\10\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0697\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0698\1\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0699\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u069a\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u069b\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u069c\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\1\0\1\u069d\5\6\1\u069e\13\0\15\6" + "\1\u069f\1\6\1\5\1\0\27\6\41\0\1\u05a7\102\0" + + "\1\u06a0\114\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u06a1\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\5\6\1\u06a2\2\0\6\6\13\0" + "\17\6\1\5\1\0\10\6\1\u06a3\10\6\1\u06a4\5\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\1\u06a5\5\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u06a6\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u06a7\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u06a8\2\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u06a9\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u06aa\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u06ab\15\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u04f4\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u06ac" + + "\7\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\6\6" + + "\1\u06ad\4\6\1\u06ae\13\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u06af\7\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u06b0\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" + "\1\u01b5\3\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u015b\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u06b1\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u06b2\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u06b3\1\6" + "\13\0\17\6\1\5\1\0\27\6\37\0\1\u0548\154\0" - + "\1\u042c\44\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u06b4\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u06b5\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\1\u042c\44\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u06b4\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u06b5\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u06b6\15\6" + "\1\5\1\0\27\6\114\0\1\u06b7\55\0\1\u06b8\126\0" + "\1\u06b9\126\0\1\u06ba\150\0\1\u049f\47\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\1\6\1\u06bb\4\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u06bc\15\6\1\5\1\0" + "\27\6\73\0\1\u06bd\35\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u051b\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u06be" - + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u06bf\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u06c0\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\7\6\1\u06c1\7\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u06c2" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\4\6\1\u06c3\1\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u039c\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u06c4\4\6\13\0\17\6\1\5\1\0\27\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\1\6\1\u06bb\4\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u06bc\15\6\1\5\1\0" + "\27\6\73\0\1\u06bd\35\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u051b\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u06be" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\u06bf\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u06c0\4\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\7\6\1\u06c1\7\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u06c2" + + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\4\6\1\u06c3\1\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u039c\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u06c4\4\6\13\0\17\6\1\5\1\0\27\6" + "\31\0\1\u06c5\164\0\1\u06c6\42\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u06c7\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u06c8\14\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u06c9" - + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\336\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u06ca\16\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u06cb\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u015b\16\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\10\6\1\u06cc" - + "\16\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u06cd\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u06ce\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\336\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u06cf\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u06d0\14\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u06d1\15\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\5\6\1\u032f" + "\21\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u06d2\3\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\11\6" - + "\1\u03d4\5\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\22\6\1\u02ed\4\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u06d3\3\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\13\6\1\u032f\3\6\1\5\1\0\27\6\122\0" + "\1\u06d4\6\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u06d5" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u06d6\2\6\13\0" - + "\17\6\1\5\1\0\27\6\73\0\1\u06d7\35\0\1\5" + "\7\6\2\0\1\126\1\6\1\u06d8\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\6\1\u06d9\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u06da\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u06db\13\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u06dc" - + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u06dd\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u06de" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u06df\4\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\14\6\1\u06e0\2\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u06ce" + "\3\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\u06e1\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\24\6\1\u02ee\2\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u06e2\2\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u06e3" - + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\4\6\1\u06e4\1\u022c\2\0\6\6\13\0" + "\17\6\1\5\1\0\10\6\1\u06e5\16\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\13\6\1\u06e6\13\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u06e7\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u06e8\4\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u06e9" - + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0449" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\1\6\1\u06ea\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\2\6\1\u03d4\14\6\1\5\1\0\27\6" + "\66\0\1\u06eb\134\0\1\u06ec\74\0\1\u05a7\155\0\1\u06ed" - + "\42\0\1\5\7\6\2\0\1\126\1\u06ee\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u06ef\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\70\0\1\u06f0\40\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u06f1\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u06f2\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\22\6\1\u06f3\4\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u06f4\2\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u06f5\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u032a\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u06f6\10\6\1\5\1\0\27\6\44\0" + "\1\u06f7\147\0\1\u06f8\44\0\1\5\7\6\2\0\1\126" - + "\1\6\1\u015b\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u06f9\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u06fa\5\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u06fb\4\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u06fc\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u06fd" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u06fe\5\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u052d\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u06c7\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\2\6\1\u06c8\14\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u06c9" + + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\1\6\1\336\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u06ca\16\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\1\u06cb\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u015b\16\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\10\6\1\u06cc" + "\16\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u06cd\4\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u06ce\2\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\5\6\1\336\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u06cf\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u06d0\14\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u06d1\15\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\5\6\1\u032f" + + "\21\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u06d2\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\11\6" + "\1\u03d4\5\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\22\6\1\u02ed\4\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u06d3\3\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\13\6\1\u032f\3\6\1\5\1\0\27\6\122\0" + "\1\u06d4\6\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u06d5" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u06d6\2\6\13\0" + "\17\6\1\5\1\0\27\6\73\0\1\u06d7\35\0\1\5" + + "\7\6\2\0\1\126\1\6\1\u06d8\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\1\6\1\u06d9\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u06da\1\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u06db\13\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u06dc" + "\10\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u06dd\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u06de" + + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u06df\4\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u06e0\2\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u06ce" + "\3\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\1\u06e1\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\24\6\1\u02ee\2\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u06e2\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u06e3" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\4\6\1\u06e4\1\u022c\2\0\6\6\13\0" + "\17\6\1\5\1\0\10\6\1\u06e5\16\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\13\6\1\u06e6\13\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u06e7\3\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u06e8\4\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u06e9" + + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0449" + + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\1\6\1\u06ea\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u03d4\14\6\1\5\1\0\27\6" + + "\66\0\1\u06eb\134\0\1\u06ec\74\0\1\u05a7\155\0\1\u06ed" + "\42\0\1\5\7\6\2\0\1\126\1\u06ee\2\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\1\6\1\u06ef\1\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\70\0\1\u06f0\40\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u06f1\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u06f2\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\22\6\1\u06f3\4\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u06f4\2\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u06f5\3\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u032a\10\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u06f6\10\6\1\5\1\0\27\6\44\0" + + "\1\u06f7\147\0\1\u06f8\44\0\1\5\7\6\2\0\1\126" + "\1\6\1\u015b\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\6\6\1\u06f9\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u06fa\5\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u06fb\4\6\13\0\17\6\1\5" + + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u06fc\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u06fd" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u06fe\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u052d\1\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u06ff\1\u022c" + "\2\0\6\6\13\0\17\6\1\5\1\0\10\6\1\u0700" - + "\11\6\1\u0701\1\6\1\u0702\2\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\13\6\1\u050b\13\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u06d0\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\7\6\1\u0703\7\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\u0704\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\16\0\1\u0705\120\0\1\u0706" - + "\121\0\1\5\7\6\2\0\1\126\1\6\1\u0707\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\60\0\1\u0708" + "\50\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0709" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u070a" - + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u070b\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u070c\3\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u070d\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\4\6\1\u06ff\1\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\10\6\1\u0328\16\6\1\0\1\5" - + "\5\6\1\u070e\1\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\24\6\1\u0702\2\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u052d" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\13\6" - + "\1\u070f\13\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u06b6\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0710" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0711\4\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u0712\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u0713\1\6\13\0\1\6\1\u0714\15\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0715\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0716\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0717\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u0718\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0719" + "\5\6\13\0\17\6\1\5\1\0\27\6\67\0\1\u071a" - + "\101\0\1\u071b\103\0\1\u071c\113\0\1\5\7\6\2\0" + "\1\126\1\6\1\u071d\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\12\6\1\u071e\4\6\1\5\1\0\27\6" - + "\41\0\1\u071f\67\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\13\6\1\u05ba\3\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0720\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0721\4\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u0722\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u0723\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0320\5\6\13\0\17\6\1\5" + + "\11\6\1\u0701\1\6\1\u0702\2\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\13\6\1\u050b\13\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u06d0\4\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u0703\7\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\1\u0704\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\27\6\16\0\1\u0705\120\0\1\u0706" + "\121\0\1\5\7\6\2\0\1\126\1\6\1\u0707\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\60\0\1\u0708" + "\50\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0709" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u070a" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u070b\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u070c\3\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\1\6\1\u070d\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\4\6\1\u06ff\1\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\10\6\1\u0328\16\6\1\0\1\5" + "\5\6\1\u070e\1\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\24\6\1\u0702\2\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u052d" + + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\13\6" + + "\1\u070f\13\6\1\0\1\5\7\6\2\0\1\126\1\6" + "\1\u06b6\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0710" + "\1\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0711\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0712\10\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u0713\1\6\13\0\1\6\1\u0714\15\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0715\5\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0716\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u0717\2\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\1\6\1\u0718\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0719" + + "\5\6\13\0\17\6\1\5\1\0\27\6\67\0\1\u071a" + "\101\0\1\u071b\103\0\1\u071c\113\0\1\5\7\6\2\0" + + "\1\126\1\6\1\u071d\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\12\6\1\u071e\4\6\1\5\1\0\27\6" + "\41\0\1\u071f\67\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u05ba\3\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0720\5\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0721\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u0722\5\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u0723\6\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0320\5\6\13\0\17\6\1\5" + "\1\0\27\6\41\0\1\u0724\147\0\1\u0725\47\0\1\5" + "\7\6\2\0\1\126\2\6\1\u0726\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0727\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0728\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u064a\14\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0729\2\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u072a\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u072b\1\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" - + "\1\u072c\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u072d\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u072e\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u05b9\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u0727\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u0728\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u064a\14\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0729\2\6\13\0\17\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u072a\10\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u072b\1\6\13\0\17\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u072c\15\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u072d\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u072e\10\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u05b9\3\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u072f\4\6" + "\13\0\17\6\1\5\1\0\27\6\27\0\1\u0730\40\0" + "\1\u0731\21\0\1\u0732\10\0\1\u0733\35\0\1\u0734\77\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u0735\14\6\1\5\1\0\27\6\37\0\1\u0736\71\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u064a\4\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0737\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u0738\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0739" - + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u03d4" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u058b\4\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u073a\10\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u073b\10\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u073c\3\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u073d\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u073e\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u073f\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0740\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\1\0\1\u0741\6\6\13\0\17\6\1\5\1\0\27\6" - + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0742\5\6" - + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0743\14\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0744\10\6\1\5\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u0735\14\6\1\5\1\0\27\6\37\0\1\u0736\71\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u064a\4\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0737\15\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u0738\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0739" + + "\4\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u03d4" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u058b\4\6\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u073a\10\6\1\5\1\0\27\6\1\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u073b\10\6\1\5\1\0\27\6\1\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u073c\3\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u073d\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u073e\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u073f\1\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u0740\4\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\1\0\1\u0741\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0742\5\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0743\14\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0744\10\6\1\5\1\0" + "\27\6\63\0\1\u0745\141\0\1\u0746\125\0\1\u0747\35\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u032a\14\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0748\3\6\13\0\17\6" - + "\1\5\1\0\27\6\64\0\1\u0749\44\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u074a\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u074b\15\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u06ff\1\6" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u032a\14\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u0748\3\6\13\0\17\6" + "\1\5\1\0\27\6\64\0\1\u0749\44\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u074a\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\1\6\1\u074b\15\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u06ff\1\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\111\0" + "\1\u074c\55\0\1\u05a7\152\0\1\u074d\46\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u074e\10\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u074f\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0750" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u0751\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u0752\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0753\2\6\13\0\17\6\1\5\1\0\27\6\1\0" - + "\1\5\7\6\2\0\1\126\1\6\1\u0474\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\2\6\1\u0754\14\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0755\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0756\14\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u02d1\2\6\13\0\17\6\1\5\1\0" + "\27\6\61\0\1\u0757\127\0\1\u0758\63\0\1\u0724\152\0" - + "\1\u0759\133\0\1\u075a\64\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u0348\15\6\1\5\1\0" + "\27\6\34\0\1\u075b\74\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u075c\14\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" - + "\1\u075d\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u075e\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\5\6" - + "\1\u052d\21\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\2\6\1\u03ad\14\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u075f" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u019e\1\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u05ba\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0760\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0761\3\6\13\0" - + "\17\6\1\5\1\0\27\6\75\0\1\u0762\33\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0763" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0227\2\6\13\0\17\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0764\2\6\13\0\17\6\1\5\1\0\27\6" + "\43\0\1\u0765\126\0\1\u0766\205\0\1\u0767\10\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0768\4\6\13\0" - + "\17\6\1\5\1\0\27\6\66\0\1\u0769\42\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u076a\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\5\6\1\u046b\11\6\1\5" - + "\1\0\27\6\61\0\1\u076b\107\0\1\u076c\67\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0739" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u076d\5\6\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\2\6\1\u076e\14\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u076f\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u049e\13\0\17\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\13\6\1\u064a\3\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0770\3\6" + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u0771\12\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u068e\5\6\13\0\17\6\1\5\1\0\27\6" + "\15\0\1\u0772\126\0\1\u0773\201\0\1\u0774\100\0\1\u0775" - + "\155\0\1\u0776\43\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u0777\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\6\6\1\u0778\20\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0640\5\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\7\6\1\u0779\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u077a" + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u077b\2\6\13\0" - + "\17\6\1\5\1\0\27\6\41\0\1\u077c\67\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u077d\4\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u077e\1\6\13\0\17\6\1\5" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u074e\10\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u074f\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0750" + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\5\6\1\u0751\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u0752\3\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u0753\2\6\13\0\17\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\1\6\1\u0474\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\2\6\1\u0754\14\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0755\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0756\14\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u02d1\2\6\13\0\17\6\1\5\1\0" + + "\27\6\61\0\1\u0757\127\0\1\u0758\63\0\1\u0724\152\0" + "\1\u0759\133\0\1\u075a\64\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u0348\15\6\1\5\1\0" + "\27\6\34\0\1\u075b\74\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u075c\14\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u075d\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u075e\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\5\6" + "\1\u052d\21\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\2\6\1\u03ad\14\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u075f" + + "\2\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u019e\1\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u05ba\13\0\17\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0760\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0761\3\6\13\0" + "\17\6\1\5\1\0\27\6\75\0\1\u0762\33\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0763" + "\15\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0227\2\6\13\0\17\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0764\2\6\13\0\17\6\1\5\1\0\27\6" + + "\43\0\1\u0765\126\0\1\u0766\205\0\1\u0767\10\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u0768\4\6\13\0" + "\17\6\1\5\1\0\27\6\66\0\1\u0769\42\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u076a\2\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\5\6\1\u046b\11\6\1\5" + "\1\0\27\6\61\0\1\u076b\107\0\1\u076c\67\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0739" + "\12\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u076d\5\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\2\6\1\u076e\14\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u076f\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u049e\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\13\6\1\u064a\3\6\1\5\1\0\27\6\1\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0770\3\6" + + "\13\0\17\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u0771\12\6" + + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u068e\5\6\13\0\17\6\1\5\1\0\27\6" + + "\15\0\1\u0772\126\0\1\u0773\201\0\1\u0774\100\0\1\u0775" + "\155\0\1\u0776\43\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0777\10\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\6\6\1\u0778\20\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u0640\5\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\7\6\1\u0779\7\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u077a" + + "\5\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u077b\2\6\13\0" + + "\17\6\1\5\1\0\27\6\41\0\1\u077c\67\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u077d\4\6\13\0" + + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u077e\1\6\13\0\17\6\1\5" + "\1\0\27\6\41\0\1\u077f\103\0\1\u0780\173\0\1\u0781" + "\47\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0782" + "\13\0\17\6\1\5\1\0\27\6\67\0\1\u0783\41\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0784\1\6" - + "\13\0\17\6\1\5\1\0\27\6\15\0\1\u0785\142\0" + "\1\u0786\63\0\1\u0787\14\0\1\5\7\6\2\0\1\126" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0788\10\6\1\5\1\0" - + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0493\5\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\10\6\1\u0789\16\6\1\0\1\5\7\6\2\0" - + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\22\6" - + "\1\u078a\4\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u05e5\10\6\1\5\1\0\27\6" + "\73\0\1\u05a7\65\0\1\u078b\165\0\1\u078c\100\0\1\u078d" - + "\153\0\1\u078e\44\0\1\5\7\6\2\0\1\126\1\6" + "\1\u078f\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0790" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" - + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\1\0\1\u0791\6\6\13\0\17\6" - + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u0792\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u0793\7\6\1\5\1\0\27\6\62\0" - + "\1\u0794\46\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u0795" - + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\1\u038d\5\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\34\0\1\u0353\55\0\1\u0796\110\0" - + "\1\u065b\116\0\1\u065b\46\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u0797\10\6\1\5\1\0" + "\27\6\42\0\1\u0798\66\0\1\5\7\6\2\0\1\126" + + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0782" + "\13\0\17\6\1\5\1\0\27\6\67\0\1\u0783\41\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0784\1\6" + "\13\0\17\6\1\5\1\0\27\6\15\0\1\u0785\142\0" + + "\1\u0786\63\0\1\u0787\14\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0788\10\6\1\5\1\0" + + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0493\5\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\10\6\1\u0789\16\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\22\6" + "\1\u078a\4\6\1\0\1\5\7\6\2\0\1\126\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u05e5\10\6\1\5\1\0\27\6" + + "\73\0\1\u05a7\65\0\1\u078b\165\0\1\u078c\100\0\1\u078d" + "\153\0\1\u078e\44\0\1\5\7\6\2\0\1\126\1\6" + + "\1\u078f\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\27\6" + "\1\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0790" + "\3\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\1\0\1\u0791\6\6\13\0\17\6" + "\1\5\1\0\27\6\1\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\3\6\1\u0792\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\7\6\1\u0793\7\6\1\5\1\0\27\6\62\0" + "\1\u0794\46\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u0795" + + "\6\6\13\0\17\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\1\u038d\5\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\27\6\34\0\1\u0353\55\0\1\u0796\110\0" + "\1\u065b\116\0\1\u065b\46\0\1\5\7\6\2\0\1\126" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0797\10\6\1\5\1\0" + "\27\6\42\0\1\u0798\66\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0799\10\6\1\5\1\0" + "\27\6\37\0\1\u079a\133\0\1\u079b\150\0\1\u079c\44\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u05ba\12\6\1\5\1\0\27\6\1\0\1\5\7\6" - + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\u079d\16\6\1\5" - + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u05ba\12\6\1\5\1\0\27\6\1\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\u079d\16\6\1\5" + "\1\0\27\6\1\0\1\5\7\6\2\0\1\126\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u079e\15\6\1\5\1\0\27\6" + "\43\0\1\u065b\152\0\1\u079f\103\0\1\u07a0\126\0\1\u07a1" - + "\67\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\13\6\1\u015b\3\6\1\5\1\0\27\6\1\0\1\5" + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u07a2\4\6\13\0" + "\17\6\1\5\1\0\27\6\124\0\1\u07a3\4\0\1\5" - + "\7\6\2\0\1\126\1\6\1\u07a4\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\1\0\1\u07a5\6\6\13\0\17\6\1\5\1\0" + "\27\6\66\0\1\u07a6\163\0\1\u07a7\74\0\1\u07a8\41\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" - + "\1\u07a9\15\6\1\5\1\0\27\6\43\0\1\u07aa\65\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\67\0\1\5\7\6\2\0\1\126\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\13\6\1\u015b\3\6\1\5\1\0\27\6\1\0\1\5" + + "\7\6\2\0\1\126\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u07a2\4\6\13\0" + "\17\6\1\5\1\0\27\6\124\0\1\u07a3\4\0\1\5" + + "\7\6\2\0\1\126\1\6\1\u07a4\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\27\6\1\0\1\5\7\6\2\0" + + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\1\0\1\u07a5\6\6\13\0\17\6\1\5\1\0" + + "\27\6\66\0\1\u07a6\163\0\1\u07a7\74\0\1\u07a8\41\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u07a9\15\6\1\5\1\0\27\6\43\0\1\u07aa\65\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\5\6\1\u07ab\21\6\40\0\1\u07ac\150\0" + "\1\u07ad\106\0\1\u07ae\70\0\1\5\7\6\2\0\1\126" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u07af\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u0666\10\6\1\5\1\0\27\6\37\0" - + "\1\u07b0\154\0\1\u07b1\126\0\1\u07b2\45\0\1\5\7\6" + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u0392\13\0\17\6\1\5" + "\1\0\27\6\41\0\1\u07b3\67\0\1\5\7\6\2\0" + + "\2\0\3\6\1\u07af\2\6\13\0\17\6\1\5\1\0" + "\27\6\1\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\6\6\1\u0666\10\6\1\5\1\0\27\6\37\0" + "\1\u07b0\154\0\1\u07b1\126\0\1\u07b2\45\0\1\5\7\6" + + "\2\0\1\126\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0392\13\0\17\6\1\5" + "\1\0\27\6\41\0\1\u07b3\67\0\1\5\7\6\2\0" + "\1\126\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u05ba\5\6\13\0\17\6\1\5\1\0" + "\27\6\123\0\1\u07b4\44\0\1\u07b5\105\0\1\u07b6\200\0" + "\1\u07b7\41\0\1\5\7\6\2\0\1\126\1\6\1\u07b8" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\27\0" - + "\1\u07b9\101\0\1\5\7\6\2\0\1\126\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u07ba\3\6\13\0\17\6\1\5\1\0\27\6\61\0" + "\1\u07bb\132\0\1\u07bc\131\0\1\u07bd\42\0\1\5\7\6" - + "\2\0\1\126\1\6\1\u02dc\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\27\6\66\0\1\u07be\100\0\1\u07bf\127\0" - + "\1\u07c0\127\0\1\u07c1\104\0\1\u07b3\154\0\1\u07c2\115\0" - + "\1\u0730\40\0\1\u0731\21\0\1\u0732\31\0\1\u07c3\114\0" + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\17\6\1\u03ea\7\6\42\0\1\u07c4\66\0" - + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03d4\4\6" - + "\13\0\17\6\1\5\1\0\27\6\43\0\1\u05a7\162\0" + "\1\u05a7\114\0\1\u0724\136\0\1\u065b\64\0\1\u07c5\40\0" - + "\1\u07c6\21\0\1\u07c7\1\0\1\u07c8\101\0\1\u07c9\74\0" - + "\1\u07ca\160\0\1\u07cb\102\0\1\u07cc\164\0\1\u07cd\114\0" - + "\1\u07ce\127\0\1\u07cf\63\0\1\u07d0\175\0\1\u07d1\125\0" - + "\1\u07d2\134\0\1\u07d3\100\0\1\u07d4\132\0\1\u07d5\146\0" - + "\1\u07d6\63\0\1\u07d7\126\0\1\u07d8\152\0\1\u07d9\133\0" - + "\1\u07da\101\0\1\u07db\153\0\1\u07dc\124\0\1\u07dd\122\0" - + "\1\u07de\112\0\1\u07df\206\0\1\u07d9\65\0\1\u07e0\212\0" - + "\1\u07c8\101\0\1\u07e1\160\0\1\u07e2\53\0\1\u07e3\201\0" - + "\1\u07e4\55\0\1\u07e5\123\0\1\u07e6\133\0\1\u07e7\123\0" - + "\1\u07e8\132\0\1\u07e9\147\0\1\u05a7\141\0\1\u07ea\74\0" - + "\1\u0293\121\0\1\u07eb\135\0\1\u07d9\127\0\1\u07ec\103\0" - + "\1\u07ed\175\0\1\u065b\125\0\1\u07ee\106\0\1\u07ef\151\0" - + "\1\u07f0\105\0\1\u07f1\131\0\1\u07f2\130\0\1\u0677\153\0" + "\1\u05a7\77\0\1\u07f3\151\0\1\u06b9\47\0"; - + + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\27\6\27\0" + "\1\u07b9\101\0\1\5\7\6\2\0\1\126\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u07ba\3\6\13\0\17\6\1\5\1\0\27\6\61\0" + + "\1\u07bb\132\0\1\u07bc\131\0\1\u07bd\42\0\1\5\7\6" + "\2\0\1\126\1\6\1\u02dc\1\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\27\6\66\0\1\u07be\100\0\1\u07bf\127\0" + + "\1\u07c0\127\0\1\u07c1\104\0\1\u07b3\154\0\1\u07c2\115\0" + "\1\u0730\40\0\1\u0731\21\0\1\u0732\31\0\1\u07c3\114\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\17\6\1\u03ea\7\6\42\0\1\u07c4\66\0" + + "\1\5\7\6\2\0\1\126\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03d4\4\6" + "\13\0\17\6\1\5\1\0\27\6\43\0\1\u05a7\162\0" + + "\1\u05a7\114\0\1\u0724\136\0\1\u065b\64\0\1\u07c5\40\0" + "\1\u07c6\21\0\1\u07c7\1\0\1\u07c8\101\0\1\u07c9\74\0" + + "\1\u07ca\160\0\1\u07cb\102\0\1\u07cc\164\0\1\u07cd\114\0" + "\1\u07ce\127\0\1\u07cf\63\0\1\u07d0\175\0\1\u07d1\125\0" + + "\1\u07d2\134\0\1\u07d3\100\0\1\u07d4\132\0\1\u07d5\146\0" + "\1\u07d6\63\0\1\u07d7\126\0\1\u07d8\152\0\1\u07d9\133\0" + + "\1\u07da\101\0\1\u07db\153\0\1\u07dc\124\0\1\u07dd\122\0" + "\1\u07de\112\0\1\u07df\206\0\1\u07d9\65\0\1\u07e0\212\0" + + "\1\u07c8\101\0\1\u07e1\160\0\1\u07e2\53\0\1\u07e3\201\0" + "\1\u07e4\55\0\1\u07e5\123\0\1\u07e6\133\0\1\u07e7\123\0" + + "\1\u07e8\132\0\1\u07e9\147\0\1\u05a7\141\0\1\u07ea\74\0" + "\1\u0293\121\0\1\u07eb\135\0\1\u07d9\127\0\1\u07ec\103\0" + + "\1\u07ed\175\0\1\u065b\125\0\1\u07ee\106\0\1\u07ef\151\0" + "\1\u07f0\105\0\1\u07f1\131\0\1\u07f2\130\0\1\u0677\153\0" + + "\1\u05a7\77\0\1\u07f3\151\0\1\u06b9\47\0"; + private static int[] zzUnpackTrans() { int[] result = new int[175736]; int offset = 0; @@ -2768,7 +2006,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, 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 */ @@ -2783,43 +2021,36 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { } 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 aState */ private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\6\1\1\11\3\1\1\11\20\1\2\11\3\1" - + "\1\11\35\1\1\11\5\1\1\11\10\1\1\11\25\1" + "\1\11\1\0\22\1\2\11\56\1\1\0\124\1\2\0" - + "\1\11\4\0\1\11\2\0\1\11\22\0\3\1\1\0" + "\13\1\1\11\24\1\1\11\236\1\37\0\22\1\1\11" - + "\200\1\1\0\31\1\2\0\1\1\2\0\1\1\10\0" + "\1\11\17\0\210\1\1\0\31\1\35\0\175\1\1\0" - + "\26\1\22\0\10\1\1\0\4\1\1\0\126\1\1\0" + "\12\1\1\0\32\1\2\0\1\1\6\0\4\1\4\0" - + "\4\1\2\0\114\1\2\0\10\1\1\0\33\1\11\0" + "\4\1\4\0\3\1\1\0\35\1\1\0\50\1\2\0" - + "\7\1\1\11\30\1\5\0\4\1\4\0\1\1\1\0" + "\2\1\1\0\22\1\1\0\41\1\2\0\32\1\5\0" - + "\4\1\4\0\2\1\1\0\14\1\2\0\33\1\2\0" + "\23\1\2\0\3\1\5\0\2\1\1\0\11\1\2\0" - + "\25\1\1\0\2\1\1\0\26\1\4\0\2\1\1\0" + "\7\1\2\0\15\1\2\0\1\1\1\0\23\1\3\0" - + "\2\1\1\0\6\1\2\0\14\1\2\0\1\1\1\0" + "\21\1\3\0\2\1\1\0\3\1\3\0\12\1\5\0" - + "\1\1\1\0\12\1\1\0\3\1\3\0\1\1\1\0" + "\2\1\2\0\11\1\5\0\6\1\1\0\2\1\3\0" - + "\1\1\1\0\1\1\2\0\5\1\5\0\5\1\1\0" + "\2\1\3\0\1\1\1\0\1\1\3\0\3\1\4\0" - + "\2\1\1\0\2\1\3\0\1\1\1\0\1\1\3\0" + "\2\1\3\0\1\1\1\0\1\1\4\0\1\1\1\0" - + "\1\1\3\0\1\1\10\0\1\1\1\0\1\1\31\0" + "\1\1\37\0"; - + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\6\1\1\11\3\1\1\11\20\1\2\11\3\1" + "\1\11\35\1\1\11\5\1\1\11\10\1\1\11\25\1" + + "\1\11\1\0\22\1\2\11\56\1\1\0\124\1\2\0" + "\1\11\4\0\1\11\2\0\1\11\22\0\3\1\1\0" + + "\13\1\1\11\24\1\1\11\236\1\37\0\22\1\1\11" + "\200\1\1\0\31\1\2\0\1\1\2\0\1\1\10\0" + + "\1\11\17\0\210\1\1\0\31\1\35\0\175\1\1\0" + "\26\1\22\0\10\1\1\0\4\1\1\0\126\1\1\0" + "\12\1\1\0\32\1\2\0\1\1\6\0\4\1\4\0" + + "\4\1\2\0\114\1\2\0\10\1\1\0\33\1\11\0" + "\4\1\4\0\3\1\1\0\35\1\1\0\50\1\2\0" + "\7\1\1\11\30\1\5\0\4\1\4\0\1\1\1\0" + + "\2\1\1\0\22\1\1\0\41\1\2\0\32\1\5\0" + "\4\1\4\0\2\1\1\0\14\1\2\0\33\1\2\0" + "\23\1\2\0\3\1\5\0\2\1\1\0\11\1\2\0" + + "\25\1\1\0\2\1\1\0\26\1\4\0\2\1\1\0" + "\7\1\2\0\15\1\2\0\1\1\1\0\23\1\3\0" + "\2\1\1\0\6\1\2\0\14\1\2\0\1\1\1\0" + + "\21\1\3\0\2\1\1\0\3\1\3\0\12\1\5\0" + "\1\1\1\0\12\1\1\0\3\1\3\0\1\1\1\0" + "\2\1\2\0\11\1\5\0\6\1\1\0\2\1\3\0" + + "\1\1\1\0\1\1\2\0\5\1\5\0\5\1\1\0" + "\2\1\3\0\1\1\1\0\1\1\3\0\3\1\4\0" + "\2\1\1\0\2\1\3\0\1\1\1\0\1\1\3\0" + + "\2\1\3\0\1\1\1\0\1\1\4\0\1\1\1\0" + "\1\1\3\0\1\1\10\0\1\1\1\0\1\1\31\0" + "\1\1\37\0"; + private static int[] zzUnpackAttribute() { int[] result = new int[2035]; 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 */ @@ -2833,48 +2064,41 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { } 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 + * this buffer contains the current text to be matched and is the source of + * the * yytext() string */ private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; - /** the textposition at the last accepting state */ private int zzMarkedPos; - /** the current text position in the buffer */ private int zzCurrentPos; - /** startRead marks the beginning of the yytext() string in the buffer */ private int zzStartRead; - /** - * endRead marks the last character in the buffer, that has been read from input + * endRead marks the last character in the buffer, that has been read from + * input */ private int zzEndRead; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - + /* user code: */ - /** - * Constructor. This must be here because JFlex does not generate a no-parameter + * Constructor. This must be here because JFlex does not generate a + * no-parameter * constructor. */ - public JavaAssemblyTokenMaker() { - } - + public JavaAssemblyTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * @@ -2886,7 +2110,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { int so = start + offsetShift; addToken(zzBuffer, start, end, tokenType, so, true); } - + /** * Adds the token specified to the current linked list of tokens. * @@ -2896,7 +2120,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { private void addToken(int tokenType) { addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - + /** * Adds the token specified to the current linked list of tokens. * @@ -2908,7 +2132,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { int so = start + offsetShift; addToken(zzBuffer, start, end, tokenType, so, false); } - + /** * Adds the token specified to the current linked list of tokens. * @@ -2930,7 +2154,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - + /** * {@inheritDoc} */ @@ -2938,10 +2162,11 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - + /** * Returns the first token in the linked list of tokens generated from - * text. This method must be implemented by subclasses so they can + * text. This method must be implemented by subclasses so they + * can * correctly implement syntax highlighting. * * @param text @@ -2949,30 +2174,29 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { * @param initialTokenType * The token type we should start with. * @param startOffset - * The offset into the document at which text starts. - * @return The first Token in a linked list representing the syntax + * The offset into the document at which text + * starts. + * @return The first Token in a linked list representing the + * syntax * highlighted text. */ public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { - case Token.COMMENT_MULTILINE: - state = MLC; - start = text.offset; - break; - case Token.COMMENT_DOCUMENTATION: - state = DOCCOMMENT; - start = text.offset; - break; - default: - state = Token.NULL; + case Token.COMMENT_MULTILINE: + state = MLC; + start = text.offset; + break; + case Token.COMMENT_DOCUMENTATION: + state = DOCCOMMENT; + start = text.offset; + break; + default: + state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -2982,20 +2206,21 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { return zzCurrentPos >= s.offset + s.count; } - + /** - * Resets the scanner to read from a new input stream. Does not close the old + * Resets the scanner to read from a new input stream. Does not close the + * old * reader. * * All internal variables are reset, the old input stream cannot be @@ -3009,8 +2234,10 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { // 's' has been updated. zzBuffer = s.array; /* - * We replaced the line below with the two below it because zzRefill no longer - * "refills" the buffer (since the way we do it, it's always "full" the first + * We replaced the line below with the two below it because zzRefill no + * longer + * "refills" the buffer (since the way we do it, it's always "full" the + * first * time through, since it points to the segment's array). So, we assign * zzEndRead here. */ @@ -3022,7 +2249,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { zzReader = reader; zzAtEOF = false; } - + /** * Creates a new scanner There is also a java.io.InputStream version of this * constructor. @@ -3033,7 +2260,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { public JavaAssemblyTokenMaker(java.io.Reader in) { this.zzReader = in; } - + /** * Creates a new scanner. There is also java.io.Reader version of this * constructor. @@ -3044,7 +2271,7 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { public JavaAssemblyTokenMaker(java.io.InputStream in) { this(new java.io.InputStreamReader(in)); } - + /** * Unpacks the compressed character translation table. * @@ -3065,25 +2292,24 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { } return map; } - + /** * 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(); } - + /** * Returns the current lexical state. */ public final int yystate() { return zzLexicalState; } - + /** * Enters a new lexical state * @@ -3093,14 +2319,14 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { public final void yybegin(int newState) { zzLexicalState = newState; } - + /** * Returns the text matched by the current regular expression. */ public final String yytext() { return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } - + /** * Returns the character at position pos from the matched text. * @@ -3115,23 +2341,25 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { 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 + * 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 + * Usual syntax/scanner level error handling should be done in error + * fallback * rules. * * @param errorCode @@ -3144,26 +2372,25 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { } 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 + * 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. @@ -3175,30 +2402,23 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { public org.fife.ui.rsyntaxtextarea.Token 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: { + zzForAction: + { while (true) { - if (zzCurrentPosL < zzEndReadL) zzInput = zzBufferL[zzCurrentPosL++]; else if (zzAtEOF) { @@ -3225,7 +2445,6 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { if (zzNext == -1) break zzForAction; zzState = zzNext; - int zzAttributes = zzAttrL[zzState]; if ((zzAttributes & 1) == 1) { zzAction = zzState; @@ -3233,265 +2452,260 @@ public class JavaAssemblyTokenMaker extends AbstractJFlexCTokenMaker { if ((zzAttributes & 8) == 8) break zzForAction; } - } } - // store back cached position zzMarkedPos = zzMarkedPosL; - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 2: { - addToken(Token.IDENTIFIER); - } - case 38: - break; - case 32: { - addToken(Token.LITERAL_BOOLEAN); - } - case 39: - break; - case 14: { - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - return firstToken; - } - case 40: - break; - case 19: { - addToken(Token.ERROR_CHAR); - } - case 41: - break; - case 16: { - addToken(Token.ERROR_NUMBER_FORMAT); - } - case 42: - break; - case 4: { - addToken(Token.ERROR_CHAR); - addNullToken(); - return firstToken; - } - case 43: - break; - case 20: { - addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 44: - break; - case 11: { - addToken(Token.ANNOTATION); - } - case 45: - break; - case 30: { - addToken(Token.FUNCTION); - } - case 46: - break; - case 6: { - addToken(Token.ERROR_STRING_DOUBLE); - addNullToken(); - return firstToken; - } - case 47: - break; - case 1: { - addToken(Token.ERROR_IDENTIFIER); - } - case 48: - break; - case 34: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); - start = zzMarkedPos; - } - case 49: - break; - case 27: { - addToken(Token.LITERAL_CHAR); - } - case 50: - break; - case 18: { - addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 51: - break; - case 22: { - start = zzMarkedPos - 2; - yybegin(MLC); - } - case 52: - break; - case 7: { - addToken(Token.WHITESPACE); - } - case 53: - break; - case 25: { - yybegin(YYINITIAL); - addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); - } - case 54: - break; - case 9: { - addToken(Token.DATA_TYPE); - } - case 55: - break; - case 24: { - yybegin(YYINITIAL); - addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); - } - case 56: - break; - case 3: { - addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 57: - break; - case 26: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); - start = zzMarkedPos; - } - case 58: - break; - case 29: { - start = zzMarkedPos - 3; - yybegin(DOCCOMMENT); - } - case 59: - break; - case 35: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); - start = zzMarkedPos; - } - case 60: - break; - case 23: { - addToken(Token.RESERVED_WORD); - } - case 61: - break; - case 33: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); - addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); - start = zzMarkedPos; - } - case 62: - break; - case 37: { - addToken(Token.RESERVED_WORD_2); - } - case 63: - break; - case 15: { - addToken(start, zzStartRead - 1, Token.COMMENT_EOL); - addNullToken(); - return firstToken; - } - case 64: - break; - case 10: { - addToken(Token.SEPARATOR); - } - case 65: - break; - case 5: { - addNullToken(); - return firstToken; - } - case 66: - break; - case 13: { - addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); - return firstToken; - } - case 67: - break; - case 8: { - addToken(Token.OPERATOR); - } - case 68: - break; - case 17: { - addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 69: - break; - case 36: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_EOL); - addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); - start = zzMarkedPos; - } - case 70: - break; - case 21: { - start = zzMarkedPos - 2; - yybegin(EOL_COMMENT); - } - case 71: - break; - case 31: { - addToken(Token.COMMENT_MULTILINE); - } - case 72: - break; - case 12: { - } - case 73: - break; - case 28: { - addToken(Token.ERROR_STRING_DOUBLE); - } - case 74: - break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start, zzStartRead - 1, Token.COMMENT_EOL); - addNullToken(); - return firstToken; - } - case 2036: - break; - case DOCCOMMENT: { - yybegin(YYINITIAL); - addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); - return firstToken; - } - case 2037: - break; - case YYINITIAL: { - addNullToken(); - return firstToken; - } - case 2038: - break; - case MLC: { - addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); - return firstToken; - } - case 2039: - break; - default: - return null; - } - } else { - zzScanError(ZZ_NO_MATCH); + case 2: { + addToken(Token.IDENTIFIER); } + case 38: + break; + case 32: { + addToken(Token.LITERAL_BOOLEAN); + } + case 39: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 40: + break; + case 19: { + addToken(Token.ERROR_CHAR); + } + case 41: + break; + case 16: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 42: + break; + case 4: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 43: + break; + case 20: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 44: + break; + case 11: { + addToken(Token.ANNOTATION); + } + case 45: + break; + case 30: { + addToken(Token.FUNCTION); + } + case 46: + break; + case 6: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 47: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 48: + break; + case 34: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 49: + break; + case 27: { + addToken(Token.LITERAL_CHAR); + } + case 50: + break; + case 18: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 51: + break; + case 22: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 52: + break; + case 7: { + addToken(Token.WHITESPACE); + } + case 53: + break; + case 25: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); + } + case 54: + break; + case 9: { + addToken(Token.DATA_TYPE); + } + case 55: + break; + case 24: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 56: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 57: + break; + case 26: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); + start = zzMarkedPos; + } + case 58: + break; + case 29: { + start = zzMarkedPos - 3; + yybegin(DOCCOMMENT); + } + case 59: + break; + case 35: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); + start = zzMarkedPos; + } + case 60: + break; + case 23: { + addToken(Token.RESERVED_WORD); + } + case 61: + break; + case 33: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 62: + break; + case 37: { + addToken(Token.RESERVED_WORD_2); + } + case 63: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 64: + break; + case 10: { + addToken(Token.SEPARATOR); + } + case 65: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 66: + break; + case 13: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 67: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 68: + break; + case 17: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 69: + break; + case 36: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 70: + break; + case 21: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 71: + break; + case 31: { + addToken(Token.COMMENT_MULTILINE); + } + case 72: + break; + case 12: {} + case 73: + break; + case 28: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 74: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 2036: + break; + case DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 2037: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 2038: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 2039: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } } } } - } diff --git a/src/me/ByteEdit/main/Main.java b/src/me/ByteEdit/main/Main.java index 96d6bf0..3292adf 100644 --- a/src/me/ByteEdit/main/Main.java +++ b/src/me/ByteEdit/main/Main.java @@ -59,6 +59,8 @@ import org.fife.ui.autocomplete.ShorthandCompletion; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; import org.fife.ui.rsyntaxtextarea.Theme; +import org.fife.ui.rsyntaxtextarea.folding.CurlyFoldParser; +import org.fife.ui.rsyntaxtextarea.folding.FoldParserManager; import org.fife.ui.rtextarea.RTextScrollPane; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; @@ -66,27 +68,25 @@ import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; public class Main extends JFrame { - + public static Main INSTANCE; - private JPanel contentPane; private boolean isChangingFile; private static File jarFile; public static HashMap OTHER_FILES = new HashMap<>(); public static HashMap classNodes = new HashMap<>(); public static String currentNodeName; - public static RSyntaxTextArea textArea; public static SearchBox searchBox; public static OptionBox optionBox; - public static JTree tree; - + /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { + public void run() { try { Main frame = new Main(); @@ -97,51 +97,32 @@ public class Main extends JFrame { } }); } - + /** * Create a simple provider that adds some Java-related completions. */ private CompletionProvider createCompletionProvider() { DefaultCompletionProvider provider = new DefaultCompletionProvider(); - for (int i = 0; i < 200; i++) { String s = OpcodesReverse.reverseOpcode(i); if (!s.startsWith("Unknown ")) - provider.addCompletion( - new BasicCompletion(provider, s, null, OpcodesReverse.generateCompletionDesc(s))); + provider.addCompletion(new BasicCompletion(provider, s, null, OpcodesReverse.generateCompletionDesc(s))); } - - provider.addCompletion( - new BasicCompletion(provider, "public", null, OpcodesReverse.generateCompletionDesc("public"))); - provider.addCompletion( - new BasicCompletion(provider, "private", null, OpcodesReverse.generateCompletionDesc("private"))); - provider.addCompletion( - new BasicCompletion(provider, "protected", null, OpcodesReverse.generateCompletionDesc("protected"))); - provider.addCompletion( - new BasicCompletion(provider, "final", null, OpcodesReverse.generateCompletionDesc("final"))); - provider.addCompletion( - new BasicCompletion(provider, "class", null, OpcodesReverse.generateCompletionDesc("class"))); - provider.addCompletion( - new BasicCompletion(provider, "enum", null, OpcodesReverse.generateCompletionDesc("enum"))); - provider.addCompletion( - new BasicCompletion(provider, "static", null, OpcodesReverse.generateCompletionDesc("static"))); - provider.addCompletion( - new BasicCompletion(provider, "strictfp", null, OpcodesReverse.generateCompletionDesc("strictfp"))); - provider.addCompletion( - new BasicCompletion(provider, "throws", null, OpcodesReverse.generateCompletionDesc("throws"))); - provider.addCompletion( - new BasicCompletion(provider, "synthetic", null, OpcodesReverse.generateCompletionDesc("synthetic"))); - provider.addCompletion( - new BasicCompletion(provider, "bridge", null, OpcodesReverse.generateCompletionDesc("bridge"))); - provider.addCompletion( - new BasicCompletion(provider, "label", null, OpcodesReverse.generateCompletionDesc("label"))); - provider.addCompletion( - new BasicCompletion(provider, "line", null, OpcodesReverse.generateCompletionDesc("line"))); - provider.addCompletion( - new BasicCompletion(provider, "extends", null, OpcodesReverse.generateCompletionDesc("extends"))); - provider.addCompletion( - new BasicCompletion(provider, "implements", null, OpcodesReverse.generateCompletionDesc("implements"))); - + provider.addCompletion(new BasicCompletion(provider, "public", null, OpcodesReverse.generateCompletionDesc("public"))); + provider.addCompletion(new BasicCompletion(provider, "private", null, OpcodesReverse.generateCompletionDesc("private"))); + provider.addCompletion(new BasicCompletion(provider, "protected", null, OpcodesReverse.generateCompletionDesc("protected"))); + provider.addCompletion(new BasicCompletion(provider, "final", null, OpcodesReverse.generateCompletionDesc("final"))); + provider.addCompletion(new BasicCompletion(provider, "class", null, OpcodesReverse.generateCompletionDesc("class"))); + provider.addCompletion(new BasicCompletion(provider, "enum", null, OpcodesReverse.generateCompletionDesc("enum"))); + provider.addCompletion(new BasicCompletion(provider, "static", null, OpcodesReverse.generateCompletionDesc("static"))); + provider.addCompletion(new BasicCompletion(provider, "strictfp", null, OpcodesReverse.generateCompletionDesc("strictfp"))); + provider.addCompletion(new BasicCompletion(provider, "throws", null, OpcodesReverse.generateCompletionDesc("throws"))); + provider.addCompletion(new BasicCompletion(provider, "synthetic", null, OpcodesReverse.generateCompletionDesc("synthetic"))); + provider.addCompletion(new BasicCompletion(provider, "bridge", null, OpcodesReverse.generateCompletionDesc("bridge"))); + provider.addCompletion(new BasicCompletion(provider, "label", null, OpcodesReverse.generateCompletionDesc("label"))); + provider.addCompletion(new BasicCompletion(provider, "line", null, OpcodesReverse.generateCompletionDesc("line"))); + provider.addCompletion(new BasicCompletion(provider, "extends", null, OpcodesReverse.generateCompletionDesc("extends"))); + provider.addCompletion(new BasicCompletion(provider, "implements", null, OpcodesReverse.generateCompletionDesc("implements"))); provider.addCompletion(new ShorthandCompletion(provider, "invvi", "invokevirtual desc owner/name", null, "invvi
Creates an example invokevirtual")); provider.addCompletion(new ShorthandCompletion(provider, "invif", "invokeinterface desc owner/name", null, @@ -157,13 +138,11 @@ public class Main extends JFrame { "// #Annotations\n// #Class v:52\n// #Signature: null\n// #OuterClass: null\n// #InnerClasses:\npublic class Main extends java/lang/Object {\n// #SourceFile: Main.java\n\n// #Fields\n\n// #Methods\n\n}\n", null, "clazz
Creates an example class")); provider.addCompletion(new ShorthandCompletion(provider, "method", - "// #Max: l:0 s:0\n\t// #TryCatch:\n\t// #LocalVars:\n\tpublic static method ()V {\n\t\treturn\n\t}", - null, "method
Creates an example method")); - + "// #Max: l:0 s:0\n\t// #TryCatch:\n\t// #LocalVars:\n\tpublic static method ()V {\n\t\treturn\n\t}", null, + "method
Creates an example method")); return provider; - } - + /** * Create the frame. */ @@ -185,24 +164,21 @@ public class Main extends JFrame { contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new GridLayout(0, 1, 0, 0)); - JSplitPane splitPane = new JSplitPane(); splitPane.setBackground(Color.GRAY); splitPane.setResizeWeight(0.2); contentPane.add(splitPane); - JScrollPane scrollPane = new JScrollPane(); splitPane.setLeftComponent(scrollPane); - textArea = new RSyntaxTextArea(); - CompletionProvider provider = createCompletionProvider(); - AutoCompletion ac = new AutoCompletion(provider); ac.setShowDescWindow(true); ac.install(textArea); - + FoldParserManager.get().addFoldParserMapping(SyntaxConstants.SYNTAX_STYLE_JAVA_DISASSEMBLE, new CurlyFoldParser(false, true)); + textArea.setCodeFoldingEnabled(true); textArea.addKeyListener(new KeyAdapter() { + @Override public void keyReleased(KeyEvent e) { if (e.getKeyCode() == 116 && currentNodeName != null) { @@ -221,13 +197,13 @@ public class Main extends JFrame { } textArea.setText(dis); textArea.setCaretPosition(prev); - } catch (Exception e2) { - } + } catch (Exception e2) {} } } }); KeyStroke ctrlF = KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK); textArea.registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { searchBox.setVisible(true); @@ -237,6 +213,7 @@ public class Main extends JFrame { }, ctrlF, JComponent.WHEN_IN_FOCUSED_WINDOW); KeyStroke ctrlS = KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_DOWN_MASK); textArea.registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { String txt = textArea.getText(); @@ -255,6 +232,7 @@ public class Main extends JFrame { }, ctrlS, JComponent.WHEN_FOCUSED); KeyStroke ctrlO = KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK); textArea.registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { optionBox.setVisible(true); @@ -269,9 +247,9 @@ public class Main extends JFrame { } catch (IOException e2) { e2.printStackTrace(); } - tree = new JTree(new DefaultTreeModel(null)); tree.addKeyListener(new KeyAdapter() { + @Override public void keyReleased(KeyEvent e) { if (e.getKeyCode() == 116 && jarFile != null) { @@ -291,6 +269,7 @@ public class Main extends JFrame { } }); tree.registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { save(); @@ -307,6 +286,7 @@ public class Main extends JFrame { } scrollPane.setViewportView(tree); tree.addTreeSelectionListener(new TreeSelectionListener() { + public void valueChanged(TreeSelectionEvent e) { if (!isChangingFile) { String s = ""; @@ -317,8 +297,7 @@ public class Main extends JFrame { b = true; continue; } - s += (s.isEmpty() || s.replace("/", "").isEmpty() ? "" : "/") - + (path.toString().isEmpty() ? "/" : path.toString()); + s += (s.isEmpty() || s.replace("/", "").isEmpty() ? "" : "/") + (path.toString().isEmpty() ? "/" : path.toString()); } if (s.endsWith(".class")) { currentNodeName = s; @@ -339,15 +318,15 @@ public class Main extends JFrame { } } }); - - RTextScrollPane scrollPane_1 = new RTextScrollPane(); - scrollPane_1.setLineNumbersEnabled(true); - scrollPane_1.setFoldIndicatorEnabled(true); + RTextScrollPane scrollPane_TextArea = new RTextScrollPane(); textArea.setBackground(Color.LIGHT_GRAY); - scrollPane_1.setViewportView(textArea); - splitPane.setRightComponent(scrollPane_1); + scrollPane_TextArea.setViewportView(textArea); + scrollPane_TextArea.setLineNumbersEnabled(true); + scrollPane_TextArea.setFoldIndicatorEnabled(true); + scrollPane_TextArea.getGutter().setBackground(Color.LIGHT_GRAY); + splitPane.setRightComponent(scrollPane_TextArea); new DropTarget(tree, new DropTargetListener() { - + @Override public void drop(DropTargetDropEvent dtde) { try { @@ -357,7 +336,6 @@ public class Main extends JFrame { if (flavors[i].isFlavorJavaFileListType()) { dtde.acceptDrop(dtde.getDropAction()); java.util.List files = (java.util.List) tr.getTransferData(flavors[i]); - final File file = files.get(0); if (file.getName().endsWith(".jar")) { jarFile = file; @@ -369,7 +347,6 @@ public class Main extends JFrame { } isChangingFile = false; } - dtde.dropComplete(true); } } @@ -379,30 +356,25 @@ public class Main extends JFrame { showError(t); } dtde.rejectDrop(); - } - + @Override - public void dragEnter(DropTargetDragEvent dtde) { - } - + public void dragEnter(DropTargetDragEvent dtde) {} + @Override - public void dragOver(DropTargetDragEvent dtde) { - } - + public void dragOver(DropTargetDragEvent dtde) {} + @Override - public void dropActionChanged(DropTargetDragEvent dtde) { - } - + public void dropActionChanged(DropTargetDragEvent dtde) {} + @Override - public void dragExit(DropTargetEvent dte) { - } - + public void dragExit(DropTargetEvent dte) {} }); } - + public void save() { final JFileChooser fileChooser = new JFileChooser() { + @Override protected JDialog createDialog(final Component parent) throws HeadlessException { final JDialog dialog = super.createDialog(parent); @@ -418,8 +390,8 @@ public class Main extends JFrame { if (action == 0) { final File file = fileChooser.getSelectedFile(); if (file.exists()) { - int dialogResult = JOptionPane.showConfirmDialog(null, "This file already exists! Overwrite it?", - "Warning", JOptionPane.YES_NO_OPTION); + int dialogResult = JOptionPane.showConfirmDialog(null, "This file already exists! Overwrite it?", "Warning", + JOptionPane.YES_NO_OPTION); if (dialogResult == JOptionPane.YES_OPTION) { save(file, classNodes.values()); } @@ -428,7 +400,7 @@ public class Main extends JFrame { } } } - + public void save(File jar, Collection classes) { try { final JarOutputStream output = new JarOutputStream(new FileOutputStream(jar)); @@ -485,7 +457,7 @@ public class Main extends JFrame { showError(e); } } - + public void showError(Throwable e) { String s = e.toString() + "\n"; StackTraceElement[] stackTrace = e.getStackTrace(); @@ -496,13 +468,15 @@ public class Main extends JFrame { } JOptionPane.showMessageDialog(this, s, "Error!", JOptionPane.ERROR_MESSAGE); } - + class ArchiveTreeModel extends DefaultTreeModel { - + public ArchiveTreeModel(JarFile jar) { - super(new DefaultMutableTreeNode(jar.getName().split(File.separator.equals("\\") ? "\\\\" - : File.separator)[jar.getName().split(File.separator.equals("\\") ? "\\\\" : File.separator).length - - 1])); + super(new DefaultMutableTreeNode( + jar.getName() + .split(File.separator.equals("\\") ? "\\\\" + : File.separator)[jar.getName().split(File.separator.equals("\\") ? "\\\\" : File.separator).length + - 1])); try { ArrayList paths = new ArrayList<>(); classNodes.clear(); @@ -512,12 +486,12 @@ public class Main extends JFrame { JarEntry next = enumeration.nextElement(); byte[] data = IOUtils.toByteArray(jar.getInputStream(next)); if (next.getName().endsWith(".class")) { - if (next.getName().contains("/") - ? (!next.getName().split("/")[next.getName().split("/").length - 1].contains("$")) + if (next.getName().contains("/") ? (!next.getName().split("/")[next.getName().split("/").length - 1].contains("$")) : (!next.getName().contains("$"))) { paths.add(next.getName()); - } else if (next.getName().startsWith("$") || next.getName().contains("$$") - || next.getName().endsWith("$")) { // obfuscated with $ + } else if (next.getName().startsWith("$") || next.getName().contains("$$") || next.getName().endsWith("$")) { // obfuscated + // with + // $ paths.add(next.getName()); } ClassReader reader; @@ -538,9 +512,7 @@ public class Main extends JFrame { Collections.sort(paths); for (String s : paths) { String[] elements = s.split("/"); - DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) getRoot(); - for (int i = 0; i < elements.length; i++) { String token = elements[i]; DefaultMutableTreeNode nextNode = findNode(currentNode, token); @@ -558,7 +530,7 @@ public class Main extends JFrame { showError(e); } } - + private DefaultMutableTreeNode findNode(DefaultMutableTreeNode parent, String name) { Enumeration e = parent.children(); while (e.hasMoreElements()) { @@ -570,4 +542,4 @@ public class Main extends JFrame { return null; } } -} \ No newline at end of file +} diff --git a/src/me/ByteEdit/main/OpcodesReverse.java b/src/me/ByteEdit/main/OpcodesReverse.java index 27b217a..1a42aa1 100644 --- a/src/me/ByteEdit/main/OpcodesReverse.java +++ b/src/me/ByteEdit/main/OpcodesReverse.java @@ -1,963 +1,961 @@ package me.ByteEdit.main; public class OpcodesReverse { - + public static String reverseOpcode(int opcode) { switch (opcode) { - case 0: - return "nop"; - case 1: - return "aconst_null"; - case 2: - return "iconst_m1"; - case 3: - return "iconst_0"; - case 4: - return "iconst_1"; - case 5: - return "iconst_2"; - case 6: - return "iconst_3"; - case 7: - return "iconst_4"; - case 8: - return "iconst_5"; - case 9: - return "lconst_0"; - case 10: - return "lconst_1"; - case 11: - return "fconst_0"; - case 12: - return "fconst_1"; - case 13: - return "fconst_2"; - case 14: - return "dconst_0"; - case 15: - return "dconst_1"; - case 16: - return "bipush"; - case 17: - return "sipush"; - case 18: - return "ldc"; - case 21: - return "iload"; - case 22: - return "lload"; - case 23: - return "fload"; - case 24: - return "dload"; - case 25: - return "aload"; - case 46: - return "iaload"; - case 47: - return "laload"; - case 48: - return "faload"; - case 49: - return "daload"; - case 50: - return "aaload"; - case 51: - return "baload"; - case 52: - return "caload"; - case 53: - return "saload"; - case 54: - return "istore"; - case 55: - return "lstore"; - case 56: - return "fstore"; - case 57: - return "dstore"; - case 58: - return "astore"; - case 79: - return "iastore"; - case 80: - return "lastore"; - case 81: - return "fastore"; - case 82: - return "dastore"; - case 83: - return "aastore"; - case 84: - return "bastore"; - case 85: - return "castore"; - case 86: - return "sastore"; - case 87: - return "pop"; - case 88: - return "pop2"; - case 89: - return "dup"; - case 90: - return "dup_x1"; - case 91: - return "dup_x2"; - case 92: - return "dup2"; - case 93: - return "dup2_x1"; - case 94: - return "dup2_x2"; - case 95: - return "swap"; - case 96: - return "iadd"; - case 97: - return "ladd"; - case 98: - return "fadd"; - case 99: - return "dadd"; - case 100: - return "isub"; - case 101: - return "lsub"; - case 102: - return "fsub"; - case 103: - return "dsub"; - case 104: - return "imul"; - case 105: - return "lmul"; - case 106: - return "fmul"; - case 107: - return "dmul"; - case 108: - return "idiv"; - case 109: - return "ldiv"; - case 110: - return "fdiv"; - case 111: - return "ddiv"; - case 112: - return "irem"; - case 113: - return "lrem"; - case 114: - return "frem"; - case 115: - return "drem"; - case 116: - return "ineg"; - case 117: - return "lneg"; - case 118: - return "fneg"; - case 119: - return "dneg"; - case 120: - return "ishl"; - case 121: - return "lshl"; - case 122: - return "ishr"; - case 123: - return "lshr"; - case 124: - return "iushr"; - case 125: - return "lushr"; - case 126: - return "iand"; - case 127: - return "land"; - case 128: - return "ior"; - case 129: - return "lor"; - case 130: - return "ixor"; - case 131: - return "lxor"; - case 132: - return "iinc"; - case 133: - return "i2l"; - case 134: - return "i2f"; - case 135: - return "i2d"; - case 136: - return "l2i"; - case 137: - return "l2f"; - case 138: - return "l2d"; - case 139: - return "f2i"; - case 140: - return "f2l"; - case 141: - return "f2d"; - case 142: - return "d2i"; - case 143: - return "d2l"; - case 144: - return "d2f"; - case 145: - return "i2b"; - case 146: - return "i2c"; - case 147: - return "i2s"; - case 148: - return "lcmp"; - case 149: - return "fcmpl"; - case 150: - return "fcmpg"; - case 151: - return "dcmpl"; - case 152: - return "dcmpg"; - case 153: - return "ifeq"; - case 154: - return "ifne"; - case 155: - return "iflt"; - case 156: - return "ifge"; - case 157: - return "ifgt"; - case 158: - return "ifle"; - case 159: - return "if_icmpeq"; - case 160: - return "if_icmpne"; - case 161: - return "if_icmplt"; - case 162: - return "if_icmpge"; - case 163: - return "if_icmpgt"; - case 164: - return "if_icmple"; - case 165: - return "if_acmpeq"; - case 166: - return "if_acmpne"; - case 167: - return "goto"; - case 168: - return "jsr"; - case 169: - return "ret"; - case 170: - return "tableswitch"; - case 171: - return "lookupswitch"; - case 172: - return "ireturn"; - case 173: - return "lreturn"; - case 174: - return "freturn"; - case 175: - return "dreturn"; - case 176: - return "areturn"; - case 177: - return "return"; - case 178: - return "getstatic"; - case 179: - return "putstatic"; - case 180: - return "getfield"; - case 181: - return "putfield"; - case 182: - return "invokevirtual"; - case 183: - return "invokespecial"; - case 184: - return "invokestatic"; - case 185: - return "invokeinterface"; - case 186: - return "invokedynamic"; - case 187: - return "new"; - case 188: - return "newarray"; - case 189: - return "anewarray"; - case 190: - return "arraylength"; - case 191: - return "athrow"; - case 192: - return "checkcast"; - case 193: - return "instanceof"; - case 194: - return "monitorenter"; - case 195: - return "monitorexit"; - case 197: - return "multianewarray"; - case 198: - return "ifnull"; - case 199: - return "ifnonnull"; - default: - return "Unknown Opcode: " + opcode; + case 0: + return "nop"; + case 1: + return "aconst_null"; + case 2: + return "iconst_m1"; + case 3: + return "iconst_0"; + case 4: + return "iconst_1"; + case 5: + return "iconst_2"; + case 6: + return "iconst_3"; + case 7: + return "iconst_4"; + case 8: + return "iconst_5"; + case 9: + return "lconst_0"; + case 10: + return "lconst_1"; + case 11: + return "fconst_0"; + case 12: + return "fconst_1"; + case 13: + return "fconst_2"; + case 14: + return "dconst_0"; + case 15: + return "dconst_1"; + case 16: + return "bipush"; + case 17: + return "sipush"; + case 18: + return "ldc"; + case 21: + return "iload"; + case 22: + return "lload"; + case 23: + return "fload"; + case 24: + return "dload"; + case 25: + return "aload"; + case 46: + return "iaload"; + case 47: + return "laload"; + case 48: + return "faload"; + case 49: + return "daload"; + case 50: + return "aaload"; + case 51: + return "baload"; + case 52: + return "caload"; + case 53: + return "saload"; + case 54: + return "istore"; + case 55: + return "lstore"; + case 56: + return "fstore"; + case 57: + return "dstore"; + case 58: + return "astore"; + case 79: + return "iastore"; + case 80: + return "lastore"; + case 81: + return "fastore"; + case 82: + return "dastore"; + case 83: + return "aastore"; + case 84: + return "bastore"; + case 85: + return "castore"; + case 86: + return "sastore"; + case 87: + return "pop"; + case 88: + return "pop2"; + case 89: + return "dup"; + case 90: + return "dup_x1"; + case 91: + return "dup_x2"; + case 92: + return "dup2"; + case 93: + return "dup2_x1"; + case 94: + return "dup2_x2"; + case 95: + return "swap"; + case 96: + return "iadd"; + case 97: + return "ladd"; + case 98: + return "fadd"; + case 99: + return "dadd"; + case 100: + return "isub"; + case 101: + return "lsub"; + case 102: + return "fsub"; + case 103: + return "dsub"; + case 104: + return "imul"; + case 105: + return "lmul"; + case 106: + return "fmul"; + case 107: + return "dmul"; + case 108: + return "idiv"; + case 109: + return "ldiv"; + case 110: + return "fdiv"; + case 111: + return "ddiv"; + case 112: + return "irem"; + case 113: + return "lrem"; + case 114: + return "frem"; + case 115: + return "drem"; + case 116: + return "ineg"; + case 117: + return "lneg"; + case 118: + return "fneg"; + case 119: + return "dneg"; + case 120: + return "ishl"; + case 121: + return "lshl"; + case 122: + return "ishr"; + case 123: + return "lshr"; + case 124: + return "iushr"; + case 125: + return "lushr"; + case 126: + return "iand"; + case 127: + return "land"; + case 128: + return "ior"; + case 129: + return "lor"; + case 130: + return "ixor"; + case 131: + return "lxor"; + case 132: + return "iinc"; + case 133: + return "i2l"; + case 134: + return "i2f"; + case 135: + return "i2d"; + case 136: + return "l2i"; + case 137: + return "l2f"; + case 138: + return "l2d"; + case 139: + return "f2i"; + case 140: + return "f2l"; + case 141: + return "f2d"; + case 142: + return "d2i"; + case 143: + return "d2l"; + case 144: + return "d2f"; + case 145: + return "i2b"; + case 146: + return "i2c"; + case 147: + return "i2s"; + case 148: + return "lcmp"; + case 149: + return "fcmpl"; + case 150: + return "fcmpg"; + case 151: + return "dcmpl"; + case 152: + return "dcmpg"; + case 153: + return "ifeq"; + case 154: + return "ifne"; + case 155: + return "iflt"; + case 156: + return "ifge"; + case 157: + return "ifgt"; + case 158: + return "ifle"; + case 159: + return "if_icmpeq"; + case 160: + return "if_icmpne"; + case 161: + return "if_icmplt"; + case 162: + return "if_icmpge"; + case 163: + return "if_icmpgt"; + case 164: + return "if_icmple"; + case 165: + return "if_acmpeq"; + case 166: + return "if_acmpne"; + case 167: + return "goto"; + case 168: + return "jsr"; + case 169: + return "ret"; + case 170: + return "tableswitch"; + case 171: + return "lookupswitch"; + case 172: + return "ireturn"; + case 173: + return "lreturn"; + case 174: + return "freturn"; + case 175: + return "dreturn"; + case 176: + return "areturn"; + case 177: + return "return"; + case 178: + return "getstatic"; + case 179: + return "putstatic"; + case 180: + return "getfield"; + case 181: + return "putfield"; + case 182: + return "invokevirtual"; + case 183: + return "invokespecial"; + case 184: + return "invokestatic"; + case 185: + return "invokeinterface"; + case 186: + return "invokedynamic"; + case 187: + return "new"; + case 188: + return "newarray"; + case 189: + return "anewarray"; + case 190: + return "arraylength"; + case 191: + return "athrow"; + case 192: + return "checkcast"; + case 193: + return "instanceof"; + case 194: + return "monitorenter"; + case 195: + return "monitorexit"; + case 197: + return "multianewarray"; + case 198: + return "ifnull"; + case 199: + return "ifnonnull"; + default: + return "Unknown Opcode: " + opcode; } } - + public static String generateCompletionDesc(String opcode) { return "" + opcode + "
" + generateDesc(opcode) + "

Arguments:
" - + generateByteDesc(opcode) + "

Stack:
" + generateStackDesc(opcode) - + ""; + + generateByteDesc(opcode) + "

Stack:
" + generateStackDesc(opcode) + ""; } - + private static String generateDesc(String opcode) { switch (opcode) { - case "dcmpl": - case "dcmpg": - return "compare two doubles"; - case "fcmpl": - case "fcmpg": - return "compare two floats"; - case "lookupswitch": - return "a target address is looked up from a table using a key and execution continues from the instruction at that address"; - case "isub": - return "int subtract"; - case "if_icmpeq": - return "if ints are equal, go to instruction at label id"; - case "aaload": - return "load onto the stack a reference from an array"; - case "ior": - return "bitwise int OR"; - case "laload": - return "load a long from an array"; - case "iconst_m1": - return "load the int value -1 onto the stack"; - case "if_icmpne": - return "if ints are not equal, go to instruction at label id"; - case "invokevirtual": - return "invoke virtual method on object objectref and puts the result on the stack (might be void), identified by desc and name"; - case "freturn": - return "return a float"; - case "lstore": - return "store a long value in a local variable index"; - case "multianewarray": - return "create a new array of dimension dimensions of type identified by class reference in constant pool desc"; - case "fsub": - return "subtract two floats"; - case "monitorenter": - return "enter monitor for object (grab the lock - start of synchronized() section)"; - case "sastore": - return "store short to array"; - case "astore": - return "store a reference into a local variable index"; - case "bastore": - return "store a byte or Boolean value into an array"; - case "if_icmpge": - return "if value1 is greater than or equal to value2, go to instruction at label id"; - case "iload": - return "load an int value from a local variable index"; - case "pop2": - return "discard the top two values on the stack (or one value, if it is a double or long)"; - case "putfield": - return "set field to value in an object objectref, where the field is identified by desc"; - case "anewarray": - return "create a new array of references of length count and component type the constant pool"; - case "athrow": - return "throws an error or exception (notice that the rest of the stack is cleared, leaving only a reference to the Throwable)"; - case "dup2": - return "duplicate top two stack words (two values, if value1 is not double nor long; a single value, if value1 is double or long)"; - case "caload": - return "load a char from an array"; - case "fconst_0": - return "push 0.0f on the stack"; - case "if_icmpgt": - return "if value1 is greater than value2, go to instruction at label id"; - case "fconst_1": - return "push 1.0f on the stack"; - case "fdiv": - return "divide two floats"; - case "frem": - return "get the remainder from a division between two floats"; - case "iaload": - return "load an int from an array"; - case "jsr": - return "jump to subroutine at label id and place the return address on the stack"; - case "sipush": - return "push a short onto the stack as an integer value"; - case "getfield": - return "get a field value of an object objectref, where the field is identified by desc"; - case "aconst_null": - return "push a null reference onto the stack"; - case "aload": - return "load a reference onto the stack from a local variable index"; - case "invokespecial": - return "invoke instance method on object objectref and puts the result on the stack (might be void), identified by desc and name"; - case "lor": - return "bitwise OR of two longs"; - case "pop": - return "discard the top value on the stack"; - case "goto": - return "goes to another instruction at label id"; - case "fadd": - return "add two floats"; - case "iflt": - return "if value is less than 0, go to instruction at label id"; - case "monitorexit": - return "exit monitor for object (release the lock - end of synchronized() section)"; - case "f2d": - return "convert a float to a double"; - case "castore": - return "store a char into an array"; - case "fneg": - return "negate a float"; - case "areturn": - return "return a reference from a method"; - case "f2i": - return "convert a float to an int"; - case "lxor": - return "bitwise XOR of two longs"; - case "fconst_2": - return "push 2.0f on the stack"; - case "baload": - return "load a byte or Boolean value from an array"; - case "f2l": - return "convert a float to a long"; - case "ixor": - return "int xor"; - case "ireturn": - return "return an integer from a method"; - case "lsub": - return "subtract two longs"; - case "ifle": - return "if value is less than or equal to 0, go to instruction at label id"; - case "lcmp": - return "push 0 if the two longs are the same, 1 if value1 is greater than value2, -1 otherwise"; - case "dsub": - return "subtract a double from another"; - case "ifnonnull": - return "if value is not null, go to instruction at label id"; - case "if_acmpeq": - return "if references are equal, go to instruction at label id"; - case "lload": - return "load a long value from a local variable index"; - case "arraylength": - return "get the length of an array"; - case "if_acmpne": - return "if references are not equal, go to instruction at label id"; - case "return": - return "return void from method"; - case "ddiv": - return "divide two doubles"; - case "dneg": - return "negate a double"; - case "dastore": - return "store a double into an array"; - case "ishr": - return "int arithmetic shift right"; - case "ladd": - return "add two longs"; - case "ifge": - return "if value is greater than or equal to 0, go to instruction at label id"; - case "imul": - return "multiply two integers"; - case "newarray": - return "create new array with count elements of primitive type identified by type"; - case "aastore": - return "store into a reference in an array"; - case "invokestatic": - return "invoke a static method and puts the result on the stack (might be void), identified by desc and name"; - case "checkcast": - return "checks whether an objectref is of a certain type, the class reference identified by desc"; - case "dadd": - return "add two doubles"; - case "lneg": - return "negate a long"; - case "ldiv": - return "divide two longs"; - case "i2b": - return "convert an int into a byte"; - case "drem": - return "get the remainder from a division between two doubles"; - case "i2d": - return "convert an int into a double"; - case "i2c": - return "convert an int into a character"; - case "fload": - return "load a float value from a local variable index"; - case "i2f": - return "convert an int into a float"; - case "lrem": - return "remainder of division of two longs"; - case "ishl": - return "int shift left"; - case "irem": - return "logical int remainder"; - case "ret": - return "continue execution from address taken from a local variable index (the asymmetry with jsr is intentional)"; - case "new": - return "create new object of type identified by desc"; - case "fstore": - return "store a float value into a local variable index"; - case "i2l": - return "convert an int into a long"; - case "ifne": - return "if value is not 0, go to instruction at label id"; - case "swap": - return "swaps two top words on the stack (note that value1 and value2 must not be double or long)"; - case "dreturn": - return "return a double from a method"; - case "iadd": - return "add two ints"; - case "i2s": - return "convert an int into a short"; - case "invokedynamic": - return "invokes a dynamic method and puts the result on the stack (might be void), identified by desc and name"; - case "fmul": - return "multiply two floats"; - case "istore": - return "store int value into variable index"; - case "dup_x1": - return "insert a copy of the top value into the stack two values from the top. value1 and value2 must not be of the type double or long."; - case "dup_x2": - return "insert a copy of the top value into the stack two (if value2 is double or long it takes up the entry of value3, too) or three values (if value2 is neither double nor long) from the top"; - case "faload": - return "load a float from an array"; - case "iastore": - return "store an int into an array"; - case "ineg": - return "negate int"; - case "ifeq": - return "if value is 0, go to instruction at label id"; - case "idiv": - return "divide two integers"; - case "lushr": - return "bitwise shift right of a long value1 by int value2 positions, unsigned"; - case "dup2_x1": - return "duplicate two words and insert beneath third word (see explanation above)"; - case "dup2_x2": - return "duplicate two words and insert beneath fourth word"; - case "lastore": - return "store a long to an array"; - case "iconst_5": - return "load the int value 5 onto the stack"; - case "getstatic": - return "get a static field value of a class, where the field is identified by desc"; - case "putstatic": - return "set static field to value in a class, where the field is identified by desc"; - case "fastore": - return "store a float in an array"; - case "daload": - return "load a double from an array"; - case "nop": - return "perform no operation"; - case "dmul": - return "multiply two doubles"; - case "dstore": - return "store a double value into a local variable index"; - case "if_icmple": - return "if value1 is less than or equal to value2, go to instruction at label id"; - case "bipush": - return "push a byte onto the stack as an integer value"; - case "d2f": - return "convert a double to a float"; - case "iconst_0": - return "load the int value 0 onto the stack"; - case "ifnull": - return "if value is null, go to instruction at label id"; - case "land": - return "bitwise AND of two longs"; - case "d2i": - return "convert a double to an int"; - case "dconst_0": - return "push the constant 0.0 (a double) onto the stack"; - case "iconst_3": - return "load the int value 3 onto the stack"; - case "lconst_1": - return "push 1L (the number one with type long) onto the stack"; - case "dconst_1": - return "push the constant 1.0 (a double) onto the stack"; - case "iconst_4": - return "load the int value 4 onto the stack"; - case "lconst_0": - return "push 0L (the number zero with type long) onto the stack"; - case "iconst_1": - return "load the int value 1 onto the stack"; - case "d2l": - return "convert a double to a long"; - case "iconst_2": - return "load the int value 2 onto the stack"; - case "l2d": - return "convert a long to a double"; - case "l2f": - return "convert a long to a float"; - case "l2i": - return "convert a long to a int"; - case "lshr": - return "bitwise shift right of a long value1 by int value2 positions"; - case "iinc": - return "increment local variable index by const"; - case "ldc": - return "push a constant value"; - case "lmul": - return "multiply two longs"; - case "if_icmplt": - return "if value1 is less than value2, go to instruction at label id"; - case "instanceof": - return "determines if an object objectref is of a given type, identified by desc"; - case "iushr": - return "int logical shift right"; - case "saload": - return "load short from array"; - case "lreturn": - return "return a long value"; - case "tableswitch": - return "a target address is looked up from a table using a key and execution continues from the instruction at that address"; - case "dload": - return "load a double value from a local variable index"; - case "lshl": - return "bitwise shift left of a long value1 by int value2 positions"; - case "ifgt": - return "if value is greater than 0, go to instruction at label id"; - case "invokeinterface": - return "invokes an interface method on object objectref and puts the result on the stack (might be void), identified by desc and name"; - case "dup": - return "duplicate the value on top of the stack"; - case "iand": - return "perform a bitwise AND on two integers"; - case "public": - return "access modifier public"; - case "private": - return "access modifier private"; - case "protected": - return "access modifier protected"; - case "final": - return "access modifier final"; - case "class": - return "keyword class"; - case "enum": - return "keyword enum"; - case "static": - return "access modifier static"; - case "strictfp": - return "keyword strictfp"; - case "throws": - return "keyword throws"; - case "synthetic": - return "access modifier synthetic"; - case "bridge": - return "access modifier bridge"; - case "label": - return "creates a label with id label id, use with
// label [label id]"; - case "line": - return "creates a line number with number line number, use with
// line [number]"; - case "extends": - return "keyword extends"; - case "implements": - return "keyword implements"; - default: - return "No description available."; + case "dcmpl": + case "dcmpg": + return "compare two doubles"; + case "fcmpl": + case "fcmpg": + return "compare two floats"; + case "lookupswitch": + return "a target address is looked up from a table using a key and execution continues from the instruction at that address"; + case "isub": + return "int subtract"; + case "if_icmpeq": + return "if ints are equal, go to instruction at label id"; + case "aaload": + return "load onto the stack a reference from an array"; + case "ior": + return "bitwise int OR"; + case "laload": + return "load a long from an array"; + case "iconst_m1": + return "load the int value -1 onto the stack"; + case "if_icmpne": + return "if ints are not equal, go to instruction at label id"; + case "invokevirtual": + return "invoke virtual method on object objectref and puts the result on the stack (might be void), identified by desc and name"; + case "freturn": + return "return a float"; + case "lstore": + return "store a long value in a local variable index"; + case "multianewarray": + return "create a new array of dimension dimensions of type identified by class reference in constant pool desc"; + case "fsub": + return "subtract two floats"; + case "monitorenter": + return "enter monitor for object (grab the lock - start of synchronized() section)"; + case "sastore": + return "store short to array"; + case "astore": + return "store a reference into a local variable index"; + case "bastore": + return "store a byte or Boolean value into an array"; + case "if_icmpge": + return "if value1 is greater than or equal to value2, go to instruction at label id"; + case "iload": + return "load an int value from a local variable index"; + case "pop2": + return "discard the top two values on the stack (or one value, if it is a double or long)"; + case "putfield": + return "set field to value in an object objectref, where the field is identified by desc"; + case "anewarray": + return "create a new array of references of length count and component type the constant pool"; + case "athrow": + return "throws an error or exception (notice that the rest of the stack is cleared, leaving only a reference to the Throwable)"; + case "dup2": + return "duplicate top two stack words (two values, if value1 is not double nor long; a single value, if value1 is double or long)"; + case "caload": + return "load a char from an array"; + case "fconst_0": + return "push 0.0f on the stack"; + case "if_icmpgt": + return "if value1 is greater than value2, go to instruction at label id"; + case "fconst_1": + return "push 1.0f on the stack"; + case "fdiv": + return "divide two floats"; + case "frem": + return "get the remainder from a division between two floats"; + case "iaload": + return "load an int from an array"; + case "jsr": + return "jump to subroutine at label id and place the return address on the stack"; + case "sipush": + return "push a short onto the stack as an integer value"; + case "getfield": + return "get a field value of an object objectref, where the field is identified by desc"; + case "aconst_null": + return "push a null reference onto the stack"; + case "aload": + return "load a reference onto the stack from a local variable index"; + case "invokespecial": + return "invoke instance method on object objectref and puts the result on the stack (might be void), identified by desc and name"; + case "lor": + return "bitwise OR of two longs"; + case "pop": + return "discard the top value on the stack"; + case "goto": + return "goes to another instruction at label id"; + case "fadd": + return "add two floats"; + case "iflt": + return "if value is less than 0, go to instruction at label id"; + case "monitorexit": + return "exit monitor for object (release the lock - end of synchronized() section)"; + case "f2d": + return "convert a float to a double"; + case "castore": + return "store a char into an array"; + case "fneg": + return "negate a float"; + case "areturn": + return "return a reference from a method"; + case "f2i": + return "convert a float to an int"; + case "lxor": + return "bitwise XOR of two longs"; + case "fconst_2": + return "push 2.0f on the stack"; + case "baload": + return "load a byte or Boolean value from an array"; + case "f2l": + return "convert a float to a long"; + case "ixor": + return "int xor"; + case "ireturn": + return "return an integer from a method"; + case "lsub": + return "subtract two longs"; + case "ifle": + return "if value is less than or equal to 0, go to instruction at label id"; + case "lcmp": + return "push 0 if the two longs are the same, 1 if value1 is greater than value2, -1 otherwise"; + case "dsub": + return "subtract a double from another"; + case "ifnonnull": + return "if value is not null, go to instruction at label id"; + case "if_acmpeq": + return "if references are equal, go to instruction at label id"; + case "lload": + return "load a long value from a local variable index"; + case "arraylength": + return "get the length of an array"; + case "if_acmpne": + return "if references are not equal, go to instruction at label id"; + case "return": + return "return void from method"; + case "ddiv": + return "divide two doubles"; + case "dneg": + return "negate a double"; + case "dastore": + return "store a double into an array"; + case "ishr": + return "int arithmetic shift right"; + case "ladd": + return "add two longs"; + case "ifge": + return "if value is greater than or equal to 0, go to instruction at label id"; + case "imul": + return "multiply two integers"; + case "newarray": + return "create new array with count elements of primitive type identified by type"; + case "aastore": + return "store into a reference in an array"; + case "invokestatic": + return "invoke a static method and puts the result on the stack (might be void), identified by desc and name"; + case "checkcast": + return "checks whether an objectref is of a certain type, the class reference identified by desc"; + case "dadd": + return "add two doubles"; + case "lneg": + return "negate a long"; + case "ldiv": + return "divide two longs"; + case "i2b": + return "convert an int into a byte"; + case "drem": + return "get the remainder from a division between two doubles"; + case "i2d": + return "convert an int into a double"; + case "i2c": + return "convert an int into a character"; + case "fload": + return "load a float value from a local variable index"; + case "i2f": + return "convert an int into a float"; + case "lrem": + return "remainder of division of two longs"; + case "ishl": + return "int shift left"; + case "irem": + return "logical int remainder"; + case "ret": + return "continue execution from address taken from a local variable index (the asymmetry with jsr is intentional)"; + case "new": + return "create new object of type identified by desc"; + case "fstore": + return "store a float value into a local variable index"; + case "i2l": + return "convert an int into a long"; + case "ifne": + return "if value is not 0, go to instruction at label id"; + case "swap": + return "swaps two top words on the stack (note that value1 and value2 must not be double or long)"; + case "dreturn": + return "return a double from a method"; + case "iadd": + return "add two ints"; + case "i2s": + return "convert an int into a short"; + case "invokedynamic": + return "invokes a dynamic method and puts the result on the stack (might be void), identified by desc and name"; + case "fmul": + return "multiply two floats"; + case "istore": + return "store int value into variable index"; + case "dup_x1": + return "insert a copy of the top value into the stack two values from the top. value1 and value2 must not be of the type double or long."; + case "dup_x2": + return "insert a copy of the top value into the stack two (if value2 is double or long it takes up the entry of value3, too) or three values (if value2 is neither double nor long) from the top"; + case "faload": + return "load a float from an array"; + case "iastore": + return "store an int into an array"; + case "ineg": + return "negate int"; + case "ifeq": + return "if value is 0, go to instruction at label id"; + case "idiv": + return "divide two integers"; + case "lushr": + return "bitwise shift right of a long value1 by int value2 positions, unsigned"; + case "dup2_x1": + return "duplicate two words and insert beneath third word (see explanation above)"; + case "dup2_x2": + return "duplicate two words and insert beneath fourth word"; + case "lastore": + return "store a long to an array"; + case "iconst_5": + return "load the int value 5 onto the stack"; + case "getstatic": + return "get a static field value of a class, where the field is identified by desc"; + case "putstatic": + return "set static field to value in a class, where the field is identified by desc"; + case "fastore": + return "store a float in an array"; + case "daload": + return "load a double from an array"; + case "nop": + return "perform no operation"; + case "dmul": + return "multiply two doubles"; + case "dstore": + return "store a double value into a local variable index"; + case "if_icmple": + return "if value1 is less than or equal to value2, go to instruction at label id"; + case "bipush": + return "push a byte onto the stack as an integer value"; + case "d2f": + return "convert a double to a float"; + case "iconst_0": + return "load the int value 0 onto the stack"; + case "ifnull": + return "if value is null, go to instruction at label id"; + case "land": + return "bitwise AND of two longs"; + case "d2i": + return "convert a double to an int"; + case "dconst_0": + return "push the constant 0.0 (a double) onto the stack"; + case "iconst_3": + return "load the int value 3 onto the stack"; + case "lconst_1": + return "push 1L (the number one with type long) onto the stack"; + case "dconst_1": + return "push the constant 1.0 (a double) onto the stack"; + case "iconst_4": + return "load the int value 4 onto the stack"; + case "lconst_0": + return "push 0L (the number zero with type long) onto the stack"; + case "iconst_1": + return "load the int value 1 onto the stack"; + case "d2l": + return "convert a double to a long"; + case "iconst_2": + return "load the int value 2 onto the stack"; + case "l2d": + return "convert a long to a double"; + case "l2f": + return "convert a long to a float"; + case "l2i": + return "convert a long to a int"; + case "lshr": + return "bitwise shift right of a long value1 by int value2 positions"; + case "iinc": + return "increment local variable index by const"; + case "ldc": + return "push a constant value"; + case "lmul": + return "multiply two longs"; + case "if_icmplt": + return "if value1 is less than value2, go to instruction at label id"; + case "instanceof": + return "determines if an object objectref is of a given type, identified by desc"; + case "iushr": + return "int logical shift right"; + case "saload": + return "load short from array"; + case "lreturn": + return "return a long value"; + case "tableswitch": + return "a target address is looked up from a table using a key and execution continues from the instruction at that address"; + case "dload": + return "load a double value from a local variable index"; + case "lshl": + return "bitwise shift left of a long value1 by int value2 positions"; + case "ifgt": + return "if value is greater than 0, go to instruction at label id"; + case "invokeinterface": + return "invokes an interface method on object objectref and puts the result on the stack (might be void), identified by desc and name"; + case "dup": + return "duplicate the value on top of the stack"; + case "iand": + return "perform a bitwise AND on two integers"; + case "public": + return "access modifier public"; + case "private": + return "access modifier private"; + case "protected": + return "access modifier protected"; + case "final": + return "access modifier final"; + case "class": + return "keyword class"; + case "enum": + return "keyword enum"; + case "static": + return "access modifier static"; + case "strictfp": + return "keyword strictfp"; + case "throws": + return "keyword throws"; + case "synthetic": + return "access modifier synthetic"; + case "bridge": + return "access modifier bridge"; + case "label": + return "creates a label with id label id, use with
// label [label id]"; + case "line": + return "creates a line number with number line number, use with
// line [number]"; + case "extends": + return "keyword extends"; + case "implements": + return "keyword implements"; + default: + return "No description available."; } } - + private static String generateByteDesc(String opcode) { switch (opcode) { - case "if_icmpeq": - case "if_icmpne": - case "if_icmpge": - case "if_icmpgt": - case "jsr": - case "goto": - case "iflt": - case "ifle": - case "ifnonnull": - case "if_acmpeq": - case "if_acmpne": - case "ifge": - case "ifne": - case "ifeq": - case "if_icmple": - case "ifnull": - case "if_icmplt": - case "ifgt": - case "label": - return "label id"; - case "lstore": - case "astore": - case "iload": - case "aload": - case "lload": - case "fload": - case "ret": - case "fstore": - case "istore": - case "dstore": - case "dload": - return "index"; - case "invokevirtual": - case "putfield": - case "getfield": - case "invokespecial": - case "invokestatic": - case "invokedynamic": - case "getstatic": - case "putstatic": - case "invokeinterface": - return "desc, name"; - case "anewarray": - case "checkcast": - case "new": - return "classname"; - case "multianewarray": - return "desc, dimension"; - case "lookupswitch": - return "lookupswitch node"; - case "sipush": - return "short"; - case "newarray": - return "type"; - case "bipush": - return "byte"; - case "iinc": - return "index, const"; - case "ldc": - return "value"; - case "instanceof": - return "desc"; - case "tableswitch": - return "tableswitch node"; - case "line": - return "line number"; - default: - return "No arguments."; + case "if_icmpeq": + case "if_icmpne": + case "if_icmpge": + case "if_icmpgt": + case "jsr": + case "goto": + case "iflt": + case "ifle": + case "ifnonnull": + case "if_acmpeq": + case "if_acmpne": + case "ifge": + case "ifne": + case "ifeq": + case "if_icmple": + case "ifnull": + case "if_icmplt": + case "ifgt": + case "label": + return "label id"; + case "lstore": + case "astore": + case "iload": + case "aload": + case "lload": + case "fload": + case "ret": + case "fstore": + case "istore": + case "dstore": + case "dload": + return "index"; + case "invokevirtual": + case "putfield": + case "getfield": + case "invokespecial": + case "invokestatic": + case "invokedynamic": + case "getstatic": + case "putstatic": + case "invokeinterface": + return "desc, name"; + case "anewarray": + case "checkcast": + case "new": + return "classname"; + case "multianewarray": + return "desc, dimension"; + case "lookupswitch": + return "lookupswitch node"; + case "sipush": + return "short"; + case "newarray": + return "type"; + case "bipush": + return "byte"; + case "iinc": + return "index, const"; + case "ldc": + return "value"; + case "instanceof": + return "desc"; + case "tableswitch": + return "tableswitch node"; + case "line": + return "line number"; + default: + return "No arguments."; } } - + private static String generateStackDesc(String opcode) { switch (opcode) { - case "isub": - case "ior": - case "fsub": - case "fdiv": - case "frem": - case "lor": - case "fadd": - case "lxor": - case "ixor": - case "lsub": - case "lcmp": - case "dsub": - case "fcmpl": - case "ddiv": - case "ishr": - case "ladd": - case "imul": - case "fcmpg": - case "dadd": - case "ldiv": - case "drem": - case "lrem": - case "ishl": - case "irem": - case "iadd": - case "fmul": - case "idiv": - case "lushr": - case "dmul": - case "land": - case "lshr": - case "dcmpl": - case "dcmpg": - case "lmul": - case "iushr": - case "lshl": - case "iand": - return "value1, value2 -> result"; - case "sastore": - case "bastore": - case "castore": - case "dastore": - case "aastore": - case "iastore": - case "lastore": - case "fastore": - return "arrayref, index, value ->"; - case "monitorenter": - case "astore": - case "monitorexit": - return "objectref ->"; - case "f2d": - case "fneg": - case "f2i": - case "f2l": - case "dneg": - case "lneg": - case "i2b": - case "i2d": - case "i2c": - case "i2f": - case "i2l": - case "i2s": - case "ineg": - case "d2f": - case "d2i": - case "d2l": - case "l2d": - case "l2f": - case "l2i": - return "value -> result"; - case "iload": - case "sipush": - case "lload": - case "fload": - case "getstatic": - case "bipush": - case "ldc": - case "dload": - return "-> value"; - case "lstore": - case "pop": - case "iflt": - case "ifle": - case "ifnonnull": - case "ifge": - case "fstore": - case "ifne": - case "istore": - case "ifeq": - case "putstatic": - case "dstore": - case "ifnull": - case "ifgt": - return "value ->"; - case "freturn": - case "ireturn": - case "dreturn": - case "lreturn": - return "value -> [empty]"; - case "if_icmpeq": - case "if_icmpne": - case "if_icmpge": - case "if_icmpgt": - case "if_acmpeq": - case "if_acmpne": - case "if_icmple": - case "if_icmplt": - return "value1, value2 ->"; - case "aaload": - case "laload": - case "caload": - case "iaload": - case "baload": - case "faload": - case "daload": - case "saload": - return "arrayref, index -> value"; - case "invokevirtual": - case "invokespecial": - case "invokeinterface": - return "objectref, [arg1, arg2, ...] -> result"; - case "anewarray": - case "newarray": - return "count -> arrayref"; - case "aload": - case "new": - return "-> objectref"; - case "lookupswitch": - return "key ->"; - case "iconst_m1": - return "-> -1"; - case "multianewarray": - return "count1, [count2,...] -> arrayref"; - case "pop2": - return "{value2, value1} ->"; - case "putfield": - return "objectref, value ->"; - case "athrow": - return "objectref -> [empty], objectref"; - case "dup2": - return "{value2, value1} -> {value2, value1}, {value2, value1}"; - case "fconst_0": - return "-> 0.0f"; - case "fconst_1": - return "-> 1.0f"; - case "jsr": - return "-> address"; - case "getfield": - return "objectref -> value"; - case "aconst_null": - return "-> null"; - case "areturn": - return "objectref -> [empty]"; - case "fconst_2": - return "-> 2.0f"; - case "arraylength": - return "arrayref -> length"; - case "return": - return "-> [empty]"; - case "invokestatic": - return "[arg1, arg2, ...] -> result"; - case "checkcast": - return "objectref -> objectref"; - case "swap": - return "value2, value1 -> value1, value2"; - case "invokedynamic": - return "[arg1, [arg2 ...]] -> result"; - case "dup_x1": - return "value2, value1 -> value1, value2, value1"; - case "dup_x2": - return "value3, value2, value1 -> value1, value3, value2, value1"; - case "dup2_x1": - return "value3, {value2, value1} -> {value2, value1}, value3, {value2, value1}"; - case "dup2_x2": - return "{value4, value3}, {value2, value1} -> {value2, value1}, {value4, value3}, {value2, value1}"; - case "iconst_5": - return "-> 5"; - case "iconst_0": - return "-> 0"; - case "dconst_0": - return "-> 0.0"; - case "iconst_3": - return "-> 3"; - case "lconst_1": - return "-> 1L"; - case "dconst_1": - return "-> 1.0"; - case "iconst_4": - return "-> 4"; - case "lconst_0": - return "-> 0L"; - case "iconst_1": - return "-> 1"; - case "iconst_2": - return "-> 2"; - case "instanceof": - return "objectref -> result"; - case "tableswitch": - return "index ->"; - case "dup": - return "value -> value, value"; - default: - return "Stack doesn't change."; + case "isub": + case "ior": + case "fsub": + case "fdiv": + case "frem": + case "lor": + case "fadd": + case "lxor": + case "ixor": + case "lsub": + case "lcmp": + case "dsub": + case "fcmpl": + case "ddiv": + case "ishr": + case "ladd": + case "imul": + case "fcmpg": + case "dadd": + case "ldiv": + case "drem": + case "lrem": + case "ishl": + case "irem": + case "iadd": + case "fmul": + case "idiv": + case "lushr": + case "dmul": + case "land": + case "lshr": + case "dcmpl": + case "dcmpg": + case "lmul": + case "iushr": + case "lshl": + case "iand": + return "value1, value2 -> result"; + case "sastore": + case "bastore": + case "castore": + case "dastore": + case "aastore": + case "iastore": + case "lastore": + case "fastore": + return "arrayref, index, value ->"; + case "monitorenter": + case "astore": + case "monitorexit": + return "objectref ->"; + case "f2d": + case "fneg": + case "f2i": + case "f2l": + case "dneg": + case "lneg": + case "i2b": + case "i2d": + case "i2c": + case "i2f": + case "i2l": + case "i2s": + case "ineg": + case "d2f": + case "d2i": + case "d2l": + case "l2d": + case "l2f": + case "l2i": + return "value -> result"; + case "iload": + case "sipush": + case "lload": + case "fload": + case "getstatic": + case "bipush": + case "ldc": + case "dload": + return "-> value"; + case "lstore": + case "pop": + case "iflt": + case "ifle": + case "ifnonnull": + case "ifge": + case "fstore": + case "ifne": + case "istore": + case "ifeq": + case "putstatic": + case "dstore": + case "ifnull": + case "ifgt": + return "value ->"; + case "freturn": + case "ireturn": + case "dreturn": + case "lreturn": + return "value -> [empty]"; + case "if_icmpeq": + case "if_icmpne": + case "if_icmpge": + case "if_icmpgt": + case "if_acmpeq": + case "if_acmpne": + case "if_icmple": + case "if_icmplt": + return "value1, value2 ->"; + case "aaload": + case "laload": + case "caload": + case "iaload": + case "baload": + case "faload": + case "daload": + case "saload": + return "arrayref, index -> value"; + case "invokevirtual": + case "invokespecial": + case "invokeinterface": + return "objectref, [arg1, arg2, ...] -> result"; + case "anewarray": + case "newarray": + return "count -> arrayref"; + case "aload": + case "new": + return "-> objectref"; + case "lookupswitch": + return "key ->"; + case "iconst_m1": + return "-> -1"; + case "multianewarray": + return "count1, [count2,...] -> arrayref"; + case "pop2": + return "{value2, value1} ->"; + case "putfield": + return "objectref, value ->"; + case "athrow": + return "objectref -> [empty], objectref"; + case "dup2": + return "{value2, value1} -> {value2, value1}, {value2, value1}"; + case "fconst_0": + return "-> 0.0f"; + case "fconst_1": + return "-> 1.0f"; + case "jsr": + return "-> address"; + case "getfield": + return "objectref -> value"; + case "aconst_null": + return "-> null"; + case "areturn": + return "objectref -> [empty]"; + case "fconst_2": + return "-> 2.0f"; + case "arraylength": + return "arrayref -> length"; + case "return": + return "-> [empty]"; + case "invokestatic": + return "[arg1, arg2, ...] -> result"; + case "checkcast": + return "objectref -> objectref"; + case "swap": + return "value2, value1 -> value1, value2"; + case "invokedynamic": + return "[arg1, [arg2 ...]] -> result"; + case "dup_x1": + return "value2, value1 -> value1, value2, value1"; + case "dup_x2": + return "value3, value2, value1 -> value1, value3, value2, value1"; + case "dup2_x1": + return "value3, {value2, value1} -> {value2, value1}, value3, {value2, value1}"; + case "dup2_x2": + return "{value4, value3}, {value2, value1} -> {value2, value1}, {value4, value3}, {value2, value1}"; + case "iconst_5": + return "-> 5"; + case "iconst_0": + return "-> 0"; + case "dconst_0": + return "-> 0.0"; + case "iconst_3": + return "-> 3"; + case "lconst_1": + return "-> 1L"; + case "dconst_1": + return "-> 1.0"; + case "iconst_4": + return "-> 4"; + case "lconst_0": + return "-> 0L"; + case "iconst_1": + return "-> 1"; + case "iconst_2": + return "-> 2"; + case "instanceof": + return "objectref -> result"; + case "tableswitch": + return "index ->"; + case "dup": + return "value -> value, value"; + default: + return "Stack doesn't change."; } } - -} \ No newline at end of file +} diff --git a/src/me/ByteEdit/main/OptionBox.java b/src/me/ByteEdit/main/OptionBox.java index c7095dd..902baee 100644 --- a/src/me/ByteEdit/main/OptionBox.java +++ b/src/me/ByteEdit/main/OptionBox.java @@ -1,27 +1,26 @@ package me.ByteEdit.main; -import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Toolkit; +import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; -import javax.swing.JLabel; -import javax.swing.JCheckBox; public class OptionBox extends JFrame { - + private JPanel contentPane; public JCheckBox chckbxComputeFrames; public JCheckBox chckbxComputeMax; - + /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { + public void run() { try { OptionBox frame = new OptionBox(); @@ -32,7 +31,7 @@ public class OptionBox extends JFrame { } }); } - + /** * Create the frame. */ @@ -51,11 +50,9 @@ public class OptionBox extends JFrame { contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); - chckbxComputeFrames = new JCheckBox("Compute Frames"); chckbxComputeFrames.setBounds(6, 7, 138, 23); contentPane.add(chckbxComputeFrames); - chckbxComputeMax = new JCheckBox("Compute Max"); chckbxComputeMax.setBounds(6, 33, 138, 23); contentPane.add(chckbxComputeMax); diff --git a/src/me/ByteEdit/main/SearchBox.java b/src/me/ByteEdit/main/SearchBox.java index df5aa29..fa30cf5 100644 --- a/src/me/ByteEdit/main/SearchBox.java +++ b/src/me/ByteEdit/main/SearchBox.java @@ -18,12 +18,12 @@ import javax.swing.UIManager; import javax.swing.border.EmptyBorder; public class SearchBox extends JFrame { - + public JPanel contentPane; public JTextField txtFind; public JTextField txtReplace; public JCheckBox chckbxCaseSensitive; - + /** * Create the frame. */ @@ -42,14 +42,13 @@ public class SearchBox extends JFrame { contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); - JLabel lblFind = new JLabel("Find:"); lblFind.setBounds(10, 25, 71, 14); contentPane.add(lblFind); - txtFind = new JTextField(); KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); txtFind.registerKeyboardAction(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { find(); @@ -58,49 +57,46 @@ public class SearchBox extends JFrame { txtFind.setBounds(91, 22, 149, 20); contentPane.add(txtFind); txtFind.setColumns(10); - JLabel lblReplaceWith = new JLabel("Replace with:"); lblReplaceWith.setBounds(10, 53, 71, 14); contentPane.add(lblReplaceWith); - txtReplace = new JTextField(); txtReplace.setColumns(10); txtReplace.setBounds(91, 50, 149, 20); contentPane.add(txtReplace); - chckbxCaseSensitive = new JCheckBox("Case sensitive"); chckbxCaseSensitive.setBounds(10, 103, 230, 23); contentPane.add(chckbxCaseSensitive); - JButton btnFind = new JButton("Find"); btnFind.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { find(); } }); btnFind.setBounds(10, 150, 110, 23); contentPane.add(btnFind); - JButton btnReplacefind = new JButton("Replace/Find"); btnReplacefind.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { replaceFind(); } }); btnReplacefind.setBounds(130, 150, 110, 23); contentPane.add(btnReplacefind); - JButton btnReplace = new JButton("Replace"); btnReplace.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { replace(); } }); btnReplace.setBounds(10, 184, 110, 23); contentPane.add(btnReplace); - JButton btnReplaceAll = new JButton("Replace All"); btnReplaceAll.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { replaceAll(); } @@ -108,7 +104,7 @@ public class SearchBox extends JFrame { btnReplaceAll.setBounds(130, 184, 110, 23); contentPane.add(btnReplaceAll); } - + public void find() { int startPos = Main.textArea.getCaretPosition(); String toFind = txtFind.getText(); @@ -125,19 +121,19 @@ public class SearchBox extends JFrame { } Main.textArea.select(startPos + index, startPos + index + toFind.length()); } - + public void replaceFind() { replace(); find(); } - + public void replace() { String txt = Main.textArea.getText(); int startPos = Main.textArea.getSelectionStart(); Main.textArea.replaceSelection(txtReplace.getText()); Main.textArea.select(startPos, startPos + txtReplace.getText().length()); } - + public void replaceAll() { String toFind = txtFind.getText(); String toReplace = txtReplace.getText(); @@ -150,5 +146,4 @@ public class SearchBox extends JFrame { } Main.textArea.setCaretPosition(prev); } - } diff --git a/src/org/fife/io/DocumentReader.java b/src/org/fife/io/DocumentReader.java index cdcb1ec..3a8b328 100644 --- a/src/org/fife/io/DocumentReader.java +++ b/src/org/fife/io/DocumentReader.java @@ -1,10 +1,8 @@ /* * 02/24/2004 - * * DocumentReader.java - A reader for javax.swing.text.Document * objects. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.io; @@ -15,7 +13,6 @@ import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.Segment; - /** * A Reader for javax.swing.text.Document objects. * @@ -23,32 +20,29 @@ import javax.swing.text.Segment; * @version 1.0 */ public class DocumentReader extends Reader { - + /** * The stream's position in the document. */ private long position; - /** * A remembered position in the document. */ private long mark; - /** * The document we're working on. */ private Document document; - /** * Used for fast character access. */ private Segment segment; - - + /** * Constructor. * - * @param document The document we're 'reading'. + * @param document + * The document we're 'reading'. */ public DocumentReader(Document document) { position = 0; @@ -56,28 +50,25 @@ public class DocumentReader extends Reader { this.document = document; this.segment = new Segment(); } - - + /** * This currently does nothing... */ @Override - public void close() { - } - - + public void close() {} + /** - * Marks the present position in the stream. Subsequent calls to + * Marks the present position in the stream. Subsequent calls to * reset() will reposition the stream to this point. * - * @param readAheadLimit Ignored. + * @param readAheadLimit + * Ignored. */ @Override public void mark(int readAheadLimit) { mark = position; } - - + /** * Tells whether this reader supports the mark operation. * This always returns true for DocumentReader. @@ -86,18 +77,17 @@ public class DocumentReader extends Reader { public boolean markSupported() { return true; } - - + /** * Reads the single character at the current position in the document. */ @Override public int read() { - if(position>=document.getLength()) { - return -1; // Read past end of document. + if (position >= document.getLength()) { + return -1; // Read past end of document. } try { - document.getText((int)position,1, segment); + document.getText((int) position, 1, segment); position++; return segment.array[segment.offset]; } catch (BadLocationException ble) { @@ -106,60 +96,59 @@ public class DocumentReader extends Reader { return -1; } } - - + /** * Read array.length characters from the beginning * of the document into array. * - * @param array The array to read characters into. + * @param array + * The array to read characters into. * @return The number of characters read. */ @Override public int read(char[] array) { return read(array, 0, array.length); } - - + /** * Reads characters into a portion of an array. * - * @param cbuf The destination buffer. - * @param off Offset at which to start storing characters. - * @param len Maximum number of characters to read. + * @param cbuf + * The destination buffer. + * @param off + * Offset at which to start storing characters. + * @param len + * Maximum number of characters to read. * @return The number of characters read, or -1 if the * end of the stream (document) has been reached. */ @Override public int read(char[] cbuf, int off, int len) { int k; - if(position>=document.getLength()) { - return -1; // Read past end of document. + if (position >= document.getLength()) { + return -1; // Read past end of document. } k = len; - if((position+k)>=document.getLength()) { - k = document.getLength() - (int)position; + if ((position + k) >= document.getLength()) { + k = document.getLength() - (int) position; } - if(off + k >= cbuf.length) { + if (off + k >= cbuf.length) { k = cbuf.length - off; } try { - document.getText((int)position, k, segment); + document.getText((int) position, k, segment); position += k; - System.arraycopy(segment.array,segment.offset, - cbuf,off, - k); + System.arraycopy(segment.array, segment.offset, cbuf, off, k); return k; } catch (BadLocationException ble) { /* Should never happen ? */ return -1; } } - - + /** * Tells whether this reader is ready to be read without - * blocking for input. DocumentReader will + * blocking for input. DocumentReader will * always return true. * * @return true if the next read operation will @@ -169,34 +158,32 @@ public class DocumentReader extends Reader { public boolean ready() { return true; } - - + /** - * Resets the stream. If the stream has been marked, then attempt to - * reposition it at the mark. If the stream has not been marked, then + * Resets the stream. If the stream has been marked, then attempt to + * reposition it at the mark. If the stream has not been marked, then * move it to the beginning of the document. */ @Override public void reset() { - if(mark==-1) { + if (mark == -1) { position = 0; - } - else { + } else { position = mark; mark = -1; } } - - + /** - * Skips characters. This will not 'skip' past the end of the document. + * Skips characters. This will not 'skip' past the end of the document. * - * @param n The number of characters to skip. + * @param n + * The number of characters to skip. * @return The number of characters actually skipped. */ @Override public long skip(long n) { - if (position+n<=document.getLength()) { + if (position + n <= document.getLength()) { position += n; return n; } @@ -204,18 +191,16 @@ public class DocumentReader extends Reader { position = document.getLength(); return document.getLength() - temp; } - - + /** - * Move to the specified position in the document. If pos + * Move to the specified position in the document. If pos * is greater than the document's length, the stream's position is moved * to the end of the document. * - * @param pos The position in the document to move to. + * @param pos + * The position in the document to move to. */ public void seek(long pos) { position = Math.min(pos, document.getLength()); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/io/UnicodeReader.java b/src/org/fife/io/UnicodeReader.java index f6868ef..8ff183e 100644 --- a/src/org/fife/io/UnicodeReader.java +++ b/src/org/fife/io/UnicodeReader.java @@ -1,10 +1,8 @@ /* * 09/23/2004 - * * UnicodeReader.java - A reader for Unicode input streams that is capable of * discerning which particular encoding is being used via the BOM. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.io; @@ -17,23 +15,24 @@ import java.io.InputStreamReader; import java.io.PushbackInputStream; import java.io.Reader; - /** - * A reader capable of identifying Unicode streams by their BOMs. This class + * A reader capable of identifying Unicode streams by their BOMs. This class * will recognize the following encodings: *
    - *
  • UTF-8 - *
  • UTF-16LE - *
  • UTF-16BE - *
  • UTF-32LE - *
  • UTF-32BE + *
  • UTF-8 + *
  • UTF-16LE + *
  • UTF-16BE + *
  • UTF-32LE + *
  • UTF-32BE *
* If the stream is not found to be any of the above, then a default encoding - * is used for reading. The user can specify this default encoding, or a system - * default will be used.

+ * is used for reading. The user can specify this default encoding, or a system + * default will be used. + *

* * For optimum performance, it is recommended that you wrap all instances of - * UnicodeReader with a java.io.BufferedReader.

+ * UnicodeReader with a java.io.BufferedReader. + *

* * This class is mostly ripped off from the workaround in the description of * Java Bug 4508058. @@ -43,110 +42,119 @@ import java.io.Reader; */ @SuppressWarnings({ "checkstyle:magicnumber" }) public class UnicodeReader extends Reader { - + /** * The input stream from which we're really reading. */ private InputStreamReader internalIn = null; - /** - * The encoding being used. We keep our own instead of using the string + * The encoding being used. We keep our own instead of using the string * returned by java.io.InputStreamReader since that class * does not return user-friendly names. */ private String encoding; - /** * The size of a BOM. */ private static final int BOM_SIZE = 4; - - + /** * This utility constructor is here because you will usually use a - * UnicodeReader on files.

+ * UnicodeReader on files. + *

* Creates a reader using the encoding specified by the BOM in the file; * if there is no recognized BOM, then a system default encoding is used. * - * @param file The file from which you want to read. - * @throws IOException If an error occurs when checking for/reading the - * BOM. - * @throws SecurityException If a security manager exists and its - * checkRead method denies read access to the file. + * @param file + * The file from which you want to read. + * @throws IOException + * If an error occurs when checking for/reading the + * BOM. + * @throws SecurityException + * If a security manager exists and its + * checkRead method denies read access to the file. */ public UnicodeReader(String file) throws IOException { this(new File(file)); } - - + /** * This utility constructor is here because you will usually use a - * UnicodeReader on files.

+ * UnicodeReader on files. + *

* Creates a reader using the encoding specified by the BOM in the file; * if there is no recognized BOM, then a system default encoding is used. * - * @param file The file from which you want to read. - * @throws IOException If an error occurs when checking for/reading the - * BOM. - * @throws SecurityException If a security manager exists and its - * checkRead method denies read access to the file. + * @param file + * The file from which you want to read. + * @throws IOException + * If an error occurs when checking for/reading the + * BOM. + * @throws SecurityException + * If a security manager exists and its + * checkRead method denies read access to the file. */ public UnicodeReader(File file) throws IOException { this(new FileInputStream(file)); } - - + /** * This utility constructor is here because you will usually use a - * UnicodeReader on files.

+ * UnicodeReader on files. + *

* Creates a reader using the encoding specified by the BOM in the file; * if there is no recognized BOM, then a specified default encoding is * used. * - * @param file The file from which you want to read. - * @param defaultEncoding The encoding to use if no BOM is found. If - * this value is null, a system default is used. - * @throws IOException If an error occurs when checking for/reading the - * BOM. - * @throws SecurityException If a security manager exists and its - * checkRead method denies read access to the file. + * @param file + * The file from which you want to read. + * @param defaultEncoding + * The encoding to use if no BOM is found. If + * this value is null, a system default is used. + * @throws IOException + * If an error occurs when checking for/reading the + * BOM. + * @throws SecurityException + * If a security manager exists and its + * checkRead method denies read access to the file. */ public UnicodeReader(File file, String defaultEncoding) throws IOException { this(new FileInputStream(file), defaultEncoding); } - - + /** * Creates a reader using the encoding specified by the BOM in the file; * if there is no recognized BOM, then a system default encoding is used. * - * @param in The input stream from which to read. - * @throws IOException If an error occurs when checking for/reading the - * BOM. + * @param in + * The input stream from which to read. + * @throws IOException + * If an error occurs when checking for/reading the + * BOM. */ public UnicodeReader(InputStream in) throws IOException { this(in, null); } - - + /** * Creates a reader using the encoding specified by the BOM in the file; * if there is no recognized BOM, then defaultEncoding is * used. * - * @param in The input stream from which to read. - * @param defaultEncoding The encoding to use if no recognized BOM is - * found. If this value is null, a system default - * is used. - * @throws IOException If an error occurs when checking for/reading the - * BOM. + * @param in + * The input stream from which to read. + * @param defaultEncoding + * The encoding to use if no recognized BOM is + * found. If this value is null, a system default + * is used. + * @throws IOException + * If an error occurs when checking for/reading the + * BOM. */ - public UnicodeReader(InputStream in, String defaultEncoding) - throws IOException { + public UnicodeReader(InputStream in, String defaultEncoding) throws IOException { init(in, defaultEncoding); } - - + /** * Closes this reader. */ @@ -154,11 +162,10 @@ public class UnicodeReader extends Reader { public void close() throws IOException { internalIn.close(); } - - + /** * Returns the encoding being used to read this input stream (i.e., the - * encoding of the file). If a BOM was recognized, then the specific + * encoding of the file). If a BOM was recognized, then the specific * Unicode type is returned; otherwise, either the default encoding passed * into the constructor or the system default is returned. * @@ -167,88 +174,70 @@ public class UnicodeReader extends Reader { public String getEncoding() { return encoding; } - - + /** * Read-ahead four bytes and check for BOM marks. Extra bytes are * unread back to the stream, only BOM bytes are skipped. * - * @param defaultEncoding The encoding to use if no BOM was recognized. If - * this value is null, then a system default is used. - * @throws IOException If an error occurs when trying to read a BOM. + * @param defaultEncoding + * The encoding to use if no BOM was recognized. If + * this value is null, then a system default is + * used. + * @throws IOException + * If an error occurs when trying to read a BOM. */ - protected void init(InputStream in, String defaultEncoding) - throws IOException { - + protected void init(InputStream in, String defaultEncoding) throws IOException { PushbackInputStream tempIn = new PushbackInputStream(in, BOM_SIZE); - byte[] bom = new byte[BOM_SIZE]; int n, unread; n = tempIn.read(bom, 0, bom.length); - - if ((bom[0]==(byte)0x00) && (bom[1]==(byte)0x00) && - (bom[2]==(byte)0xFE) && (bom[3]==(byte)0xFF)) { + if ((bom[0] == (byte) 0x00) && (bom[1] == (byte) 0x00) && (bom[2] == (byte) 0xFE) && (bom[3] == (byte) 0xFF)) { encoding = "UTF-32BE"; unread = n - 4; - } - - else if (n==BOM_SIZE && // Last 2 bytes are 0; could be an empty UTF-16 - (bom[0]==(byte)0xFF) && (bom[1]==(byte)0xFE) && - (bom[2]==(byte)0x00) && (bom[3]==(byte)0x00)) { + } else if (n == BOM_SIZE && // Last 2 bytes are 0; could be an empty + // UTF-16 + (bom[0] == (byte) 0xFF) && (bom[1] == (byte) 0xFE) && (bom[2] == (byte) 0x00) && (bom[3] == (byte) 0x00)) { encoding = "UTF-32LE"; unread = n - 4; - } - - else if ((bom[0]==(byte)0xEF) && - (bom[1]==(byte)0xBB) && - (bom[2]==(byte)0xBF)) { + } else if ((bom[0] == (byte) 0xEF) && (bom[1] == (byte) 0xBB) && (bom[2] == (byte) 0xBF)) { encoding = "UTF-8"; unread = n - 3; - } - - else if ((bom[0]==(byte)0xFE) && (bom[1] == (byte)0xFF)) { + } else if ((bom[0] == (byte) 0xFE) && (bom[1] == (byte) 0xFF)) { encoding = "UTF-16BE"; unread = n - 2; - } - - else if ((bom[0]==(byte)0xFF) && (bom[1]== (byte)0xFE)) { + } else if ((bom[0] == (byte) 0xFF) && (bom[1] == (byte) 0xFE)) { encoding = "UTF-16LE"; unread = n - 2; - } - - else { + } else { // Unicode BOM mark not found, unread all bytes encoding = defaultEncoding; unread = n; } - if (unread > 0) { tempIn.unread(bom, (n - unread), unread); - } - else if (unread < -1) { + } else if (unread < -1) { tempIn.unread(bom, 0, 0); } - // Use given encoding if (encoding == null) { internalIn = new InputStreamReader(tempIn); encoding = internalIn.getEncoding(); // Get the default. - } - else { + } else { internalIn = new InputStreamReader(tempIn, encoding); } - } - - + /** * Read characters into a portion of an array. This method will block until * some input is available, an I/O error occurs, or the end of the stream * is reached. * - * @param cbuf The buffer into which to read. - * @param off The offset at which to start storing characters. - * @param len The maximum number of characters to read. + * @param cbuf + * The buffer into which to read. + * @param off + * The offset at which to start storing characters. + * @param len + * The maximum number of characters to read. * * @return The number of characters read, or -1 if the end * of the stream has been reached. @@ -257,6 +246,4 @@ public class UnicodeReader extends Reader { public int read(char[] cbuf, int off, int len) throws IOException { return internalIn.read(cbuf, off, len); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/io/UnicodeWriter.java b/src/org/fife/io/UnicodeWriter.java index dd50b02..102814e 100644 --- a/src/org/fife/io/UnicodeWriter.java +++ b/src/org/fife/io/UnicodeWriter.java @@ -1,9 +1,7 @@ /* * 09/24/2004 - * * UnicodeWriter.java - Writes Unicode output with the proper BOM. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.io; @@ -15,10 +13,9 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; - /** - * Writes Unicode text to an output stream. If the specified encoding is a - * Unicode, then the text is preceded by the proper Unicode BOM. If it is any + * Writes Unicode text to an output stream. If the specified encoding is a + * Unicode, then the text is preceded by the proper Unicode BOM. If it is any * other encoding, this class behaves just like OutputStreamWriter. * This class is here because Java's OutputStreamWriter apparently * doesn't believe in writing BOMs. @@ -31,115 +28,90 @@ import java.io.Writer; * @version 0.7 */ public class UnicodeWriter extends Writer { - + /** * If this system property evaluates to "false", ignoring * case, files written out as UTF-8 will not have a BOM written for them. * Otherwise (even if the property is not set), UTF-8 files will have a * BOM written. */ - public static final String PROPERTY_WRITE_UTF8_BOM = - "UnicodeWriter.writeUtf8BOM"; - - + public static final String PROPERTY_WRITE_UTF8_BOM = "UnicodeWriter.writeUtf8BOM"; /** * The writer actually doing the writing. */ private OutputStreamWriter internalOut; - - private static final byte[] UTF8_BOM = new byte[] { - (byte)0xEF, - (byte)0xBB, - (byte)0xBF - }; - - private static final byte[] UTF16LE_BOM = new byte[] { - (byte)0xFF, - (byte)0xFE - }; - - private static final byte[] UTF16BE_BOM = new byte[] { - (byte)0xFE, - (byte)0xFF - }; - - private static final byte[] UTF32LE_BOM = new byte[] { - (byte)0xFF, - (byte)0xFE, - (byte)0x00, - (byte)0x00 - }; - - private static final byte[] UTF32BE_BOM = new byte[] { - (byte)0x00, - (byte)0x00, - (byte)0xFE, - (byte)0xFF - }; - - + private static final byte[] UTF8_BOM = new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF }; + private static final byte[] UTF16LE_BOM = new byte[] { (byte) 0xFF, (byte) 0xFE }; + private static final byte[] UTF16BE_BOM = new byte[] { (byte) 0xFE, (byte) 0xFF }; + private static final byte[] UTF32LE_BOM = new byte[] { (byte) 0xFF, (byte) 0xFE, (byte) 0x00, (byte) 0x00 }; + private static final byte[] UTF32BE_BOM = new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0xFE, (byte) 0xFF }; + /** * This is a utility constructor since the vast majority of the time, this * class will be used to write Unicode files. * - * @param fileName The file to which to write the Unicode output. - * @param encoding The encoding to use. - * @throws IOException If an IO exception occurs. + * @param fileName + * The file to which to write the Unicode output. + * @param encoding + * The encoding to use. + * @throws IOException + * If an IO exception occurs. */ public UnicodeWriter(String fileName, String encoding) throws IOException { this(new FileOutputStream(fileName), encoding); } - - - + /** * This is a utility constructor since the vast majority of the time, this * class will be used to write Unicode files. * - * @param file The file to which to write the Unicode output. - * @param encoding The encoding to use. - * @throws IOException If an IO exception occurs. + * @param file + * The file to which to write the Unicode output. + * @param encoding + * The encoding to use. + * @throws IOException + * If an IO exception occurs. */ public UnicodeWriter(File file, String encoding) throws IOException { this(new FileOutputStream(file), encoding); } - - - + /** * Creates a new writer. * - * @param out The output stream to write. - * @param encoding The encoding to use. - * @throws IOException If an IO exception occurs. + * @param out + * The output stream to write. + * @param encoding + * The encoding to use. + * @throws IOException + * If an IO exception occurs. */ public UnicodeWriter(OutputStream out, String encoding) throws IOException { init(out, encoding); } - - + /** * Closes this writer. * - * @throws IOException If an IO exception occurs. + * @throws IOException + * If an IO exception occurs. */ @Override public void close() throws IOException { internalOut.close(); } - - + /** * Flushes the stream. * - * @throws IOException If an IO exception occurs. + * @throws IOException + * If an IO exception occurs. */ @Override public void flush() throws IOException { internalOut.flush(); } - - + /** * Returns the encoding being used to write this output stream (i.e., the * encoding of the file). @@ -149,8 +121,7 @@ public class UnicodeWriter extends Writer { public String getEncoding() { return internalOut.getEncoding(); } - - + /** * Returns whether UTF-8 files should have a BOM in them when written. * @@ -161,25 +132,25 @@ public class UnicodeWriter extends Writer { public static boolean getWriteUtf8BOM() { String prop = System.getProperty(PROPERTY_WRITE_UTF8_BOM); // We default to writing the BOM, for some reason. - if (prop!=null && Boolean.valueOf(prop).equals(Boolean.FALSE)) { + if (prop != null && Boolean.valueOf(prop).equals(Boolean.FALSE)) { return false; } return true; } - - + /** * Initializes the internal output stream and writes the BOM if the * specified encoding is a Unicode encoding. * - * @param out The output stream we are writing. - * @param encoding The encoding in which to write. - * @throws IOException If an I/O error occurs while writing a BOM. + * @param out + * The output stream we are writing. + * @param encoding + * The encoding in which to write. + * @throws IOException + * If an I/O error occurs while writing a BOM. */ private void init(OutputStream out, String encoding) throws IOException { - internalOut = new OutputStreamWriter(out, encoding); - // Write the proper BOM if they specified a Unicode encoding. // NOTE: Creating an OutputStreamWriter with encoding "UTF-16" DOES // DOES write out the BOM; "UTF-16LE", "UTF-16BE", "UTF-32", "UTF-32LE" @@ -188,74 +159,73 @@ public class UnicodeWriter extends Writer { if (getWriteUtf8BOM()) { out.write(UTF8_BOM, 0, UTF8_BOM.length); } - } - else if ("UTF-16LE".equals(encoding)) { + } else if ("UTF-16LE".equals(encoding)) { out.write(UTF16LE_BOM, 0, UTF16LE_BOM.length); - } - else if (/*"UTF-16".equals(encoding) || */"UTF-16BE".equals(encoding)) { + } else if (/* "UTF-16".equals(encoding) || */"UTF-16BE".equals(encoding)) { out.write(UTF16BE_BOM, 0, UTF16BE_BOM.length); - } - else if ("UTF-32LE".equals(encoding)) { + } else if ("UTF-32LE".equals(encoding)) { out.write(UTF32LE_BOM, 0, UTF32LE_BOM.length); - } - else if ("UTF-32".equals(encoding) || "UTF-32BE".equals(encoding)) { + } else if ("UTF-32".equals(encoding) || "UTF-32BE".equals(encoding)) { out.write(UTF32BE_BOM, 0, UTF32BE_BOM.length); } - } - - + /** * Sets whether UTF-8 files should have a BOM written in them. * - * @param write Whether to write a BOM. + * @param write + * Whether to write a BOM. * @see #getWriteUtf8BOM() * @see UnicodeWriter */ public static void setWriteUtf8BOM(boolean write) { - System.setProperty(UnicodeWriter.PROPERTY_WRITE_UTF8_BOM, - Boolean.toString(write)); + System.setProperty(UnicodeWriter.PROPERTY_WRITE_UTF8_BOM, Boolean.toString(write)); } - - + /** * Writes a portion of an array of characters. * - * @param cbuf The buffer of characters. - * @param off The offset from which to start writing characters. - * @param len The number of characters to write. - * @throws IOException If an I/O error occurs. + * @param cbuf + * The buffer of characters. + * @param off + * The offset from which to start writing characters. + * @param len + * The number of characters to write. + * @throws IOException + * If an I/O error occurs. */ @Override public void write(char[] cbuf, int off, int len) throws IOException { internalOut.write(cbuf, off, len); } - - + /** * Writes a single character. * - * @param c An integer specifying the character to write. - * @throws IOException If an IO error occurs. + * @param c + * An integer specifying the character to write. + * @throws IOException + * If an IO error occurs. */ @Override public void write(int c) throws IOException { internalOut.write(c); } - - + /** * Writes a portion of a string. * - * @param str The string from which to write. - * @param off The offset from which to start writing characters. - * @param len The number of characters to write. - * @throws IOException If an IO error occurs. + * @param str + * The string from which to write. + * @param off + * The offset from which to start writing characters. + * @param len + * The number of characters to write. + * @throws IOException + * If an IO error occurs. */ @Override public void write(String str, int off, int len) throws IOException { internalOut.write(str, off, len); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/print/RPrintUtilities.java b/src/org/fife/print/RPrintUtilities.java index bc0eb73..ac3955f 100644 --- a/src/org/fife/print/RPrintUtilities.java +++ b/src/org/fife/print/RPrintUtilities.java @@ -1,10 +1,8 @@ /* * 11/14/2003 - * * RPrintUtilities.java - A collection of static methods useful for printing * text from Swing text components. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.print; @@ -24,146 +22,147 @@ import javax.swing.text.Segment; import javax.swing.text.TabExpander; import javax.swing.text.Utilities; - - /** - * A collection of static methods useful for printing text from Swing text components. + * A collection of static methods useful for printing text from Swing text + * components. * * @author Robert Futrell * @version 1.0 */ public abstract class RPrintUtilities { - - private static int currentDocLineNumber; // The line number in the document we are currently on. - private static int numDocLines; // The number of lines in the current document. - private static Element rootElement; // The first Element (line) in the current document. - + + private static int currentDocLineNumber; // The line number in the document + // we are currently on. + private static int numDocLines; // The number of lines in the current + // document. + private static Element rootElement; // The first Element (line) in the + // current document. // The characters at which to break a line if implementing word wrap. - private static final char [] BREAK_CHARS = { ' ', '\t', ',', '.', ';', '?', '!' }; - + private static final char[] BREAK_CHARS = { ' ', '\t', ',', '.', ';', '?', '!' }; // These variables are 'global' because RPrintTabExpander uses them. - /** * The x-offset (for the page margin) when printing. */ private static int xOffset; - /** * The length of a tab, in spaces. */ private static int tabSizeInSpaces; - /** * The metrics of the font currently being used to print. */ private static FontMetrics fm; - - + /** - * Returns the position closest to, but before, position maxCharsPerLine in - * line of one of the chars in breakChars, or simply returns - * maxCharsPerLine-1 if none of the breakChars comes before - * that position. This position represents the logical line break for this java.lang.String - * if it is being printed in a monospaced font when lines can only be maxCharsPerLine + * Returns the position closest to, but before, position + * maxCharsPerLine in + * line of one of the chars in breakChars, or + * simply returns + * maxCharsPerLine-1 if none of the breakChars + * comes before + * that position. This position represents the logical line break for this + * java.lang.String + * if it is being printed in a monospaced font when lines can only be + * maxCharsPerLine * characters long. * - * @param line The text being printed. - * @param maxCharsPerLine Only up-to this many characters from - * line can be printed on one line. + * @param line + * The text being printed. + * @param maxCharsPerLine + * Only up-to this many characters from + * line can be printed on one line. * @return The logical position at which to stop printing line * to simulate word wrap. */ private static int getLineBreakPoint(String line, final int maxCharsPerLine) { - int breakPoint = -1; - for (int i=0; i breakPoint) { breakPoint = breakCharPos; } } - - return (breakPoint==-1 ? maxCharsPerLine-1 : breakPoint); - + return (breakPoint == -1 ? maxCharsPerLine - 1 : breakPoint); } - - + /** - * Prints a Document using a monospaced font, and does no word wrapping (ie, - * words will wrap mid-word to the next line). This method is expected to be called from + * Prints a Document using a monospaced font, and does no word + * wrapping (ie, + * words will wrap mid-word to the next line). This method is expected to be + * called from * Printable 'print(Graphics g)' functions. * - * @param g The graphics context to write to. - * @param doc The javax.swing.text.Document to print. - * @param fontSize the point size to use for the monospaced font. - * @param pageIndex The page number to print. - * @param pageFormat The format to print the page with. - * @param tabSize The number of spaces to expand tabs to. + * @param g + * The graphics context to write to. + * @param doc + * The javax.swing.text.Document to print. + * @param fontSize + * the point size to use for the monospaced font. + * @param pageIndex + * The page number to print. + * @param pageFormat + * The format to print the page with. + * @param tabSize + * The number of spaces to expand tabs to. * * @see #printDocumentMonospacedWordWrap */ - public static int printDocumentMonospaced(Graphics g, Document doc, int fontSize, int pageIndex, - PageFormat pageFormat, int tabSize) { - + public static int printDocumentMonospaced(Graphics g, Document doc, int fontSize, int pageIndex, PageFormat pageFormat, int tabSize) { g.setColor(Color.BLACK); g.setFont(new Font("Monospaced", Font.PLAIN, fontSize)); - - // Initialize our static variables (these are used by our tab expander below). + // Initialize our static variables (these are used by our tab expander + // below). tabSizeInSpaces = tabSize; fm = g.getFontMetrics(); - // Create our tab expander. - //RPrintTabExpander tabExpander = new RPrintTabExpander(); - + // RPrintTabExpander tabExpander = new RPrintTabExpander(); // Get width and height of characters in this monospaced font. - int fontWidth = fm.charWidth('w'); // Any character will do as font is monospaced. + int fontWidth = fm.charWidth('w'); // Any character will do as font is + // monospaced. int fontHeight = fm.getHeight(); - - int maxCharsPerLine = (int)pageFormat.getImageableWidth() / fontWidth; - int maxLinesPerPage = (int)pageFormat.getImageableHeight() / fontHeight; - + int maxCharsPerLine = (int) pageFormat.getImageableWidth() / fontWidth; + int maxLinesPerPage = (int) pageFormat.getImageableHeight() / fontHeight; final int startingLineNumber = maxLinesPerPage * pageIndex; - // The (x,y) coordinate to print at (in pixels, not characters). - // Since y is the baseline of where we'll start printing (not the top-left - // corner), we offset it by the font's ascent ( + 1 just for good measure). - xOffset = (int)pageFormat.getImageableX(); - int y = (int)pageFormat.getImageableY() + fm.getAscent() + 1; - + // Since y is the baseline of where we'll start printing (not the + // top-left + // corner), we offset it by the font's ascent ( + 1 just for good + // measure). + xOffset = (int) pageFormat.getImageableX(); + int y = (int) pageFormat.getImageableY() + fm.getAscent() + 1; // A counter to keep track of the number of lines that WOULD HAVE been // printed if we were printing all lines. int numPrintedLines = 0; - // Keep going while there are more lines in the document. - currentDocLineNumber = 0; // The line number of the document we're currently on. - rootElement = doc.getDefaultRootElement(); // To shorten accesses in our loop. - numDocLines = rootElement.getElementCount(); // The number of lines in our document. - while (currentDocLineNumber -1) { int spacesNeeded = tabSizeInSpaces - (tabIndex % tabSizeInSpaces); - StringBuilder stringBuilder = new StringBuilder(); - for (int i=0; i maxCharsPerLine) { - numPrintedLines++; if (numPrintedLines > startingLineNumber) { - g.drawString(curLineString.substring(0,maxCharsPerLine), xOffset,y); - y += fontHeight; - if (numPrintedLines==startingLineNumber+maxLinesPerPage) { - return Printable.PAGE_EXISTS; - } - } - + g.drawString(curLineString.substring(0, maxCharsPerLine), xOffset, y); + y += fontHeight; + if (numPrintedLines == startingLineNumber + maxLinesPerPage) { + return Printable.PAGE_EXISTS; + } + } curLineString = curLineString.substring(maxCharsPerLine, curLineString.length()); - } - - currentDocLineNumber += 1; // We have printed one more line from the document. - + currentDocLineNumber += 1; // We have printed one more line from the + // document. numPrintedLines++; - if (numPrintedLines>startingLineNumber) { - g.drawString(curLineString, xOffset,y); + if (numPrintedLines > startingLineNumber) { + g.drawString(curLineString, xOffset, y); y += fontHeight; - if (numPrintedLines==startingLineNumber+maxLinesPerPage) { + if (numPrintedLines == startingLineNumber + maxLinesPerPage) { return Printable.PAGE_EXISTS; } } - - } - - // Now, the whole document has been "printed." Decide if this page had any text on it or not. + // Now, the whole document has been "printed." Decide if this page had + // any text on it or not. if (numPrintedLines > startingLineNumber) { return Printable.PAGE_EXISTS; } return Printable.NO_SUCH_PAGE; - } - - + /** * Prints a Document using a monospaced font, word wrapping on - * the characters ' ', '\t', '\n', ',', '.', and ';'. This method is + * the characters ' ', '\t', '\n', ',', '.', and ';'. This method is * expected to be called from Printable 'print(Graphics g)' functions. * - * @param g The graphics context to write to. - * @param doc The javax.swing.text.Document to print. - * @param fontSize the point size to use for the monospaced font. - * @param pageIndex The page number to print. - * @param pageFormat The format to print the page with. - * @param tabSize The number of spaces to expand tabs to. + * @param g + * The graphics context to write to. + * @param doc + * The javax.swing.text.Document to print. + * @param fontSize + * the point size to use for the monospaced font. + * @param pageIndex + * The page number to print. + * @param pageFormat + * The format to print the page with. + * @param tabSize + * The number of spaces to expand tabs to. * * @see #printDocumentMonospaced */ - public static int printDocumentMonospacedWordWrap(Graphics g, Document doc, - int fontSize, int pageIndex, - PageFormat pageFormat, int tabSize) { - + public static int printDocumentMonospacedWordWrap(Graphics g, Document doc, int fontSize, int pageIndex, PageFormat pageFormat, + int tabSize) { g.setColor(Color.BLACK); g.setFont(new Font("Monospaced", Font.PLAIN, fontSize)); - - // Initialize our static variables (these are used by our tab expander below). + // Initialize our static variables (these are used by our tab expander + // below). tabSizeInSpaces = tabSize; fm = g.getFontMetrics(); - // Create our tab expander. - //RPrintTabExpander tabExpander = new RPrintTabExpander(); - + // RPrintTabExpander tabExpander = new RPrintTabExpander(); // Get width and height of characters in this monospaced font. - int fontWidth = fm.charWidth('w'); // Any character will do here, since font is monospaced. + int fontWidth = fm.charWidth('w'); // Any character will do here, since + // font is monospaced. int fontHeight = fm.getHeight(); - - int maxCharsPerLine = (int)pageFormat.getImageableWidth() / fontWidth; - int maxLinesPerPage = (int)pageFormat.getImageableHeight() / fontHeight; - + int maxCharsPerLine = (int) pageFormat.getImageableWidth() / fontWidth; + int maxLinesPerPage = (int) pageFormat.getImageableHeight() / fontHeight; final int startingLineNumber = maxLinesPerPage * pageIndex; - // The (x,y) coordinate to print at (in pixels, not characters). - // Since y is the baseline of where we'll start printing (not the top-left - // corner), we offset it by the font's ascent ( + 1 just for good measure). - xOffset = (int)pageFormat.getImageableX(); - int y = (int)pageFormat.getImageableY() + fm.getAscent() + 1; - + // Since y is the baseline of where we'll start printing (not the + // top-left + // corner), we offset it by the font's ascent ( + 1 just for good + // measure). + xOffset = (int) pageFormat.getImageableX(); + int y = (int) pageFormat.getImageableY() + fm.getAscent() + 1; // A counter to keep track of the number of lines that WOULD HAVE been // printed if we were printing all lines. int numPrintedLines = 0; - // Keep going while there are more lines in the document. - currentDocLineNumber = 0; // The line number of the document we're currently on. - rootElement = doc.getDefaultRootElement(); // To shorten accesses in our loop. - numDocLines = rootElement.getElementCount(); // The number of lines in our document. - while (currentDocLineNumber -1) { int spacesNeeded = tabSizeInSpaces - (tabIndex % tabSizeInSpaces); - StringBuilder stringBuilder = new StringBuilder(); - for (int i=0; i maxCharsPerLine) { - int breakPoint = getLineBreakPoint(curLineString, maxCharsPerLine) + 1; - numPrintedLines++; if (numPrintedLines > startingLineNumber) { - g.drawString(curLineString.substring(0,breakPoint), xOffset,y); - y += fontHeight; - if (numPrintedLines==startingLineNumber+maxLinesPerPage) { - return Printable.PAGE_EXISTS; - } - } - + g.drawString(curLineString.substring(0, breakPoint), xOffset, y); + y += fontHeight; + if (numPrintedLines == startingLineNumber + maxLinesPerPage) { + return Printable.PAGE_EXISTS; + } + } curLineString = curLineString.substring(breakPoint, curLineString.length()); - } - - currentDocLineNumber += 1; // We have printed one more line from the document. - + currentDocLineNumber += 1; // We have printed one more line from the + // document. numPrintedLines++; - if (numPrintedLines>startingLineNumber) { - g.drawString(curLineString, xOffset,y); + if (numPrintedLines > startingLineNumber) { + g.drawString(curLineString, xOffset, y); y += fontHeight; - if (numPrintedLines==startingLineNumber+maxLinesPerPage) { + if (numPrintedLines == startingLineNumber + maxLinesPerPage) { return Printable.PAGE_EXISTS; } } - - } - - // Now, the whole document has been "printed." Decide if this page had any text on it or not. + // Now, the whole document has been "printed." Decide if this page had + // any text on it or not. if (numPrintedLines > startingLineNumber) { return Printable.PAGE_EXISTS; } return Printable.NO_SUCH_PAGE; - } - - + /** * Prints a Document using the specified font, word wrapping - * on the characters ' ', '\t', '\n', ',', '.', and ';'. This method is + * on the characters ' ', '\t', '\n', ',', '.', and ';'. This method is * expected to be called from Printable 'print(Graphics g)' functions. * - * @param g The graphics context to write to. - * @param textComponent The javax.swing.text.JTextComponent - * whose text you're printing. - * @param font The font to use for printing. If null, then - * textComponent's font is used. - * @param pageIndex The page number to print. - * @param pageFormat The format to print the page with. - * @param tabSize The number of spaces to convert tabs to. + * @param g + * The graphics context to write to. + * @param textComponent + * The javax.swing.text.JTextComponent + * whose text you're printing. + * @param font + * The font to use for printing. If null, then + * textComponent's font is used. + * @param pageIndex + * The page number to print. + * @param pageFormat + * The format to print the page with. + * @param tabSize + * The number of spaces to convert tabs to. * */ - public static int printDocumentWordWrap(Graphics g, JTextComponent textComponent, - Font font, int pageIndex, - PageFormat pageFormat, - int tabSize) { - + public static int printDocumentWordWrap(Graphics g, JTextComponent textComponent, Font font, int pageIndex, PageFormat pageFormat, + int tabSize) { // Initialize our graphics object. g.setColor(Color.BLACK); - g.setFont(font!=null ? font : textComponent.getFont()); - - // Initialize our static variables (these are used by our tab expander below). + g.setFont(font != null ? font : textComponent.getFont()); + // Initialize our static variables (these are used by our tab expander + // below). tabSizeInSpaces = tabSize; fm = g.getFontMetrics(); int fontHeight = fm.getHeight(); - - final int lineLengthInPixels = (int)pageFormat.getImageableWidth(); - final int maxLinesPerPage = (int)pageFormat.getImageableHeight() / fontHeight; - + final int lineLengthInPixels = (int) pageFormat.getImageableWidth(); + final int maxLinesPerPage = (int) pageFormat.getImageableHeight() / fontHeight; final int startingLineNumber = maxLinesPerPage * pageIndex; - // Create our tab expander. RPrintTabExpander tabExpander = new RPrintTabExpander(); - // The (x,y) coordinate to print at (in pixels, not characters). - // Since y is the baseline of where we'll start printing (not the top-left - // corner), we offset it by the font's ascent ( + 1 just for good measure). - xOffset = (int)pageFormat.getImageableX(); - int y = (int)pageFormat.getImageableY() + fm.getAscent() + 1; - + // Since y is the baseline of where we'll start printing (not the + // top-left + // corner), we offset it by the font's ascent ( + 1 just for good + // measure). + xOffset = (int) pageFormat.getImageableX(); + int y = (int) pageFormat.getImageableY() + fm.getAscent() + 1; // A counter to keep track of the number of lines that WOULD HAVE been // printed if we were printing all lines. int numPrintedLines = 0; - // Keep going while there are more lines in the document. Document doc = textComponent.getDocument(); rootElement = doc.getDefaultRootElement(); - numDocLines = rootElement.getElementCount(); // The number of lines in our document. - currentDocLineNumber = 0; // The line number of the document we're currently on. - int startingOffset = 0; // Used when a line is so long it has to be wrapped. - while (currentDocLineNumber lineLengthInPixels) { - -//System.err.println("'" + currentLineSeg + "' - " + currentLineLengthInPixels + "/" + LINE_LENGTH_IN_PIXELS); - - // Remove any spaces and/or tabs from the end of the segment (would cause problems if you left 'em). + // System.err.println("'" + currentLineSeg + "' - " + + // currentLineLengthInPixels + "/" + LINE_LENGTH_IN_PIXELS); + // Remove any spaces and/or tabs from the end of the segment + // (would cause problems if you left 'em). currentLineSeg = removeEndingWhitespace(currentLineSeg); - - // currentPos will be the last position in the current text of a "line break character." + // currentPos will be the last position in the current text + // of a "line break character." currentPos = -1; String currentLineString = currentLineSeg.toString(); - for (int i=0; i-1 && pos>currentPos) - // currentPos = pos; - if (pos>0 && pos>currentPos && pos!=currentLineString.length()) { + // if (pos>-1 && pos>currentPos) + // currentPos = pos; + if (pos > 0 && pos > currentPos && pos != currentLineString.length()) { currentPos = pos; } } - - // If we didn't find a line break character, we'll simply break the line at + // If we didn't find a line break character, we'll simply + // break the line at // the last character that fits on a printed line. - // So here, we set currentPos to be the position of the last character that fits + // So here, we set currentPos to be the position of the last + // character that fits // on the current printed line. if (currentPos == -1) { - - // Fix currentLineSeg so that it contains exactly enough text to fit in + // Fix currentLineSeg so that it contains exactly enough + // text to fit in // LINE_LENGTH_IN_PIXELS pixels... currentPos = 0; do { currentPos++; try { - doc.getText(currentLineStart+startingOffset, currentPos, currentLineSeg); + doc.getText(currentLineStart + startingOffset, currentPos, currentLineSeg); } catch (BadLocationException ble) { System.err.println(ble); return Printable.NO_SUCH_PAGE; } - currentLineLengthInPixels = Utilities. - getTabbedTextWidth(currentLineSeg, fm, 0, tabExpander, 0); + currentLineLengthInPixels = Utilities.getTabbedTextWidth(currentLineSeg, fm, 0, tabExpander, 0); } while (currentLineLengthInPixels <= lineLengthInPixels); currentPos--; - } - try { - doc.getText((currentLineStart+startingOffset), currentPos, currentLineSeg); + doc.getText((currentLineStart + startingOffset), currentPos, currentLineSeg); } catch (BadLocationException ble) { System.err.println("BadLocationException in print (a):"); - System.err.println("==> currentLineStart: " + currentLineStart + - "; startingOffset: " + startingOffset + "; currentPos: " + currentPos); - System.err.println("==> Range: " + (currentLineStart+startingOffset) + " - " + - (currentLineStart+startingOffset+currentPos)); + System.err.println("==> currentLineStart: " + currentLineStart + "; startingOffset: " + startingOffset + + "; currentPos: " + currentPos); + System.err.println("==> Range: " + (currentLineStart + startingOffset) + " - " + + (currentLineStart + startingOffset + currentPos)); ble.printStackTrace(); return Printable.NO_SUCH_PAGE; } - currentLineLengthInPixels = Utilities.getTabbedTextWidth(currentLineSeg, fm, 0, tabExpander, 0); - } // End of while (currentLineLengthInPixels > LINE_LENGTH_IN_PIXELS). - - startingOffset += currentPos; // Where to start (offset from line's start), since this line wraps. - + } // End of while (currentLineLengthInPixels > + // LINE_LENGTH_IN_PIXELS). + startingOffset += currentPos; // Where to start (offset from + // line's start), since this + // line wraps. } // End of else. - numPrintedLines++; - if (numPrintedLines>startingLineNumber) { - //g.drawString(currentLineSeg.toString(), xOffset,y); - Utilities.drawTabbedText(currentLineSeg, xOffset,y, g, tabExpander, 0); + if (numPrintedLines > startingLineNumber) { + // g.drawString(currentLineSeg.toString(), xOffset,y); + Utilities.drawTabbedText(currentLineSeg, xOffset, y, g, tabExpander, 0); y += fontHeight; - if (numPrintedLines==startingLineNumber+maxLinesPerPage) { + if (numPrintedLines == startingLineNumber + maxLinesPerPage) { return Printable.PAGE_EXISTS; } } - } - - // Now, the whole document has been "printed." Decide if this page had any text on it or not. + // Now, the whole document has been "printed." Decide if this page had + // any text on it or not. if (numPrintedLines > startingLineNumber) { return Printable.PAGE_EXISTS; } return Printable.NO_SUCH_PAGE; - } - - + /** * Removes any spaces or tabs from the end of the segment. * - * @param segment The segment from which to remove tailing whitespace. + * @param segment + * The segment from which to remove tailing whitespace. * @return segment with trailing whitespace removed. */ private static Segment removeEndingWhitespace(Segment segment) { int toTrim = 0; - char currentChar = segment.setIndex(segment.getEndIndex()-1); - while ((currentChar==' ' || currentChar=='\t') && currentChar!=Segment.DONE) { + char currentChar = segment.setIndex(segment.getEndIndex() - 1); + while ((currentChar == ' ' || currentChar == '\t') && currentChar != Segment.DONE) { toTrim++; currentChar = segment.previous(); } String stringVal = segment.toString(); - String newStringVal = stringVal.substring(0,stringVal.length()-toTrim); + String newStringVal = stringVal.substring(0, stringVal.length() - toTrim); return new Segment(newStringVal.toCharArray(), 0, newStringVal.length()); } - - + /** * A tab expander for the document currently being printed with the * font being used for the printing. */ private static class RPrintTabExpander implements TabExpander { - - RPrintTabExpander() { - } - + + RPrintTabExpander() {} + @Override public float nextTabStop(float x, int tabOffset) { if (tabSizeInSpaces == 0) { @@ -551,8 +528,5 @@ public abstract class RPrintUtilities { int ntabs = (((int) x) - xOffset) / tabSizeInPixels; return xOffset + ((ntabs + 1f) * tabSizeInPixels); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/AbstractCompletion.java b/src/org/fife/ui/autocomplete/AbstractCompletion.java index 9eb70c3..3f09778 100644 --- a/src/org/fife/ui/autocomplete/AbstractCompletion.java +++ b/src/org/fife/ui/autocomplete/AbstractCompletion.java @@ -1,9 +1,7 @@ /* * 12/21/2008 - * * AbstractCompletion.java - Base class for possible completions. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -11,81 +9,77 @@ package org.fife.ui.autocomplete; import javax.swing.Icon; import javax.swing.text.JTextComponent; - /** - * Base class for possible completions. Most, if not all, {@link Completion} - * implementations can extend this class. It remembers the + * Base class for possible completions. Most, if not all, {@link Completion} + * implementations can extend this class. It remembers the * CompletionProvider that returns this completion, and also implements * Comparable, allowing such completions to be compared - * lexicographically (ignoring case).

+ * lexicographically (ignoring case). + *

* * This implementation assumes the input text and replacement text are the - * same value. It also returns the input text from its {@link #toString()} + * same value. It also returns the input text from its {@link #toString()} * method (which is what DefaultListCellRenderer uses to render - * objects). Subclasses that wish to override any of this behavior can simply + * objects). Subclasses that wish to override any of this behavior can simply * override the corresponding method(s) needed to do so. * * @author Robert Futrell * @version 1.0 */ public abstract class AbstractCompletion implements Completion { - + /** * The provider that created this completion; */ private CompletionProvider provider; - /** * The icon to use for this completion. */ private Icon icon; - /** - * The relevance of this completion. Completion instances with higher + * The relevance of this completion. Completion instances with higher * "relevance" values are inserted higher into the list of possible - * completions than those with lower values. Completion instances with + * completions than those with lower values. Completion instances with * equal relevance values are sorted alphabetically. */ private int relevance; - - + /** * Constructor. * - * @param provider The provider that created this completion. + * @param provider + * The provider that created this completion. */ protected AbstractCompletion(CompletionProvider provider) { this.provider = provider; } - - + /** * Constructor. * - * @param provider The provider that created this completion. - * @param icon The icon for this completion. + * @param provider + * The provider that created this completion. + * @param icon + * The icon for this completion. */ protected AbstractCompletion(CompletionProvider provider, Icon icon) { this(provider); setIcon(icon); } - - + /** * {@inheritDoc} */ @Override public int compareTo(Completion c2) { - if (c2==this) { + if (c2 == this) { return 0; - } - else if (c2!=null) { + } else if (c2 != null) { return toString().compareToIgnoreCase(c2.toString()); } return -1; } - - + /** * {@inheritDoc} */ @@ -93,8 +87,7 @@ public abstract class AbstractCompletion implements Completion { public String getAlreadyEntered(JTextComponent comp) { return provider.getAlreadyEnteredText(comp); } - - + /** * {@inheritDoc} */ @@ -102,11 +95,10 @@ public abstract class AbstractCompletion implements Completion { public Icon getIcon() { return icon; } - - + /** * Returns the text the user has to (start) typing for this completion - * to be offered. The default implementation simply returns + * to be offered. The default implementation simply returns * {@link #getReplacementText()}. * * @return The text the user has to (start) typing for this completion. @@ -116,8 +108,7 @@ public abstract class AbstractCompletion implements Completion { public String getInputText() { return getReplacementText(); } - - + /** * {@inheritDoc} */ @@ -125,8 +116,7 @@ public abstract class AbstractCompletion implements Completion { public CompletionProvider getProvider() { return provider; } - - + /** * {@inheritDoc} */ @@ -134,10 +124,9 @@ public abstract class AbstractCompletion implements Completion { public int getRelevance() { return relevance; } - - + /** - * The default implementation returns null. Subclasses + * The default implementation returns null. Subclasses * can override this method. * * @return The tool tip text. @@ -146,32 +135,31 @@ public abstract class AbstractCompletion implements Completion { public String getToolTipText() { return null; } - - + /** * Sets the icon to use for this completion. * - * @param icon The icon to use. + * @param icon + * The icon to use. * @see #getIcon() */ public void setIcon(Icon icon) { this.icon = icon; } - - + /** * Sets the relevance of this completion. * - * @param relevance The new relevance of this completion. + * @param relevance + * The new relevance of this completion. * @see #getRelevance() */ public void setRelevance(int relevance) { this.relevance = relevance; } - - + /** - * Returns a string representation of this completion. The default + * Returns a string representation of this completion. The default * implementation returns {@link #getInputText()}. * * @return A string representation of this completion. @@ -180,6 +168,4 @@ public abstract class AbstractCompletion implements Completion { public String toString() { return getInputText(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/AbstractCompletionProvider.java b/src/org/fife/ui/autocomplete/AbstractCompletionProvider.java index 2d3e00e..4940577 100644 --- a/src/org/fife/ui/autocomplete/AbstractCompletionProvider.java +++ b/src/org/fife/ui/autocomplete/AbstractCompletionProvider.java @@ -1,9 +1,7 @@ /* * 12/21/2008 - * * AbstractCompletionProvider.java - Base class for completion providers. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -16,31 +14,27 @@ import java.util.List; import javax.swing.text.JTextComponent; - /** - * A base class for completion providers. {@link Completion}s are kept in - * a sorted list. To get the list of completions that match a given input, + * A base class for completion providers. {@link Completion}s are kept in + * a sorted list. To get the list of completions that match a given input, * a binary search is done to find the first matching completion, then all * succeeding completions that also match are also returned. * * @author Robert Futrell * @version 1.0 */ -public abstract class AbstractCompletionProvider - extends CompletionProviderBase { - +public abstract class AbstractCompletionProvider extends CompletionProviderBase { + /** - * The completions this provider is aware of. Subclasses should ensure + * The completions this provider is aware of. Subclasses should ensure * that this list is sorted alphabetically (case-insensitively). */ protected List completions; - /** * Compares a {@link Completion} against a String. */ protected CaseInsensitiveComparator comparator; - - + /** * Constructor. */ @@ -49,16 +43,17 @@ public abstract class AbstractCompletionProvider clearParameterizedCompletionParams(); completions = new ArrayList(); } - - + /** - * Adds a single completion to this provider. If you are adding multiple + * Adds a single completion to this provider. If you are adding multiple * completions to this provider, for efficiency reasons please consider * using {@link #addCompletions(List)} instead. * - * @param c The completion to add. - * @throws IllegalArgumentException If the completion's provider isn't - * this CompletionProvider. + * @param c + * The completion to add. + * @throws IllegalArgumentException + * If the completion's provider isn't + * this CompletionProvider. * @see #addCompletions(List) * @see #removeCompletion(Completion) * @see #clear() @@ -67,53 +62,52 @@ public abstract class AbstractCompletionProvider checkProviderAndAdd(c); Collections.sort(completions); } - - + /** * Adds {@link Completion}s to this provider. * - * @param completions The completions to add. This cannot be - * null. - * @throws IllegalArgumentException If a completion's provider isn't - * this CompletionProvider. + * @param completions + * The completions to add. This cannot be + * null. + * @throws IllegalArgumentException + * If a completion's provider isn't + * this CompletionProvider. * @see #addCompletion(Completion) * @see #removeCompletion(Completion) * @see #clear() */ public void addCompletions(List completions) { - //this.completions.addAll(completions); + // this.completions.addAll(completions); for (Completion c : completions) { checkProviderAndAdd(c); } Collections.sort(this.completions); } - - + /** * Adds simple completions for a list of words. * - * @param words The words. + * @param words + * The words. * @see BasicCompletion */ protected void addWordCompletions(String[] words) { - int count = words==null ? 0 : words.length; - for (int i=0; iCompletionProvider, if there is one. * * @see #addCompletion(Completion) @@ -123,92 +117,75 @@ public abstract class AbstractCompletionProvider public void clear() { completions.clear(); } - - + /** * Returns a list of Completions in this provider with the * specified input text. * - * @param inputText The input text to search for. + * @param inputText + * The input text to search for. * @return A list of {@link Completion}s, or null if there * are no matching Completions. */ @SuppressWarnings("unchecked") public List getCompletionByInputText(String inputText) { - // Find any entry that matches this input text (there may be > 1). int end = Collections.binarySearch(completions, inputText, comparator); - if (end<0) { + if (end < 0) { return null; } - // There might be multiple entries with the same input text. int start = end; - while (start>0 && - comparator.compare(completions.get(start-1), inputText)==0) { + while (start > 0 && comparator.compare(completions.get(start - 1), inputText) == 0) { start--; } int count = completions.size(); - while (++end getCompletionsImpl(JTextComponent comp) { - List retVal = new ArrayList(); String text = getAlreadyEnteredText(comp); - - if (text!=null) { - + if (text != null) { int index = Collections.binarySearch(completions, text, comparator); - if (index<0) { // No exact match + if (index < 0) { // No exact match index = -index - 1; - } - else { + } else { // If there are several overloads for the function being // completed, Collections.binarySearch() will return the index // of one of those overloads, but we must return all of them, // so search backward until we find the first one. int pos = index - 1; - while (pos>0 && - comparator.compare(completions.get(pos), text)==0) { + while (pos > 0 && comparator.compare(completions.get(pos), text) == 0) { retVal.add(completions.get(pos)); pos--; } } - - while (indextrue if this provider contained the specified * completion. * @see #clear() @@ -218,32 +195,25 @@ public abstract class AbstractCompletionProvider public boolean removeCompletion(Completion c) { // Don't just call completions.remove(c) as it'll be a linear search. int index = Collections.binarySearch(completions, c); - if (index<0) { + if (index < 0) { return false; } completions.remove(index); return true; } - - + /** * A comparator that compares the input text of a {@link Completion} * against a String lexicographically, ignoring case. */ @SuppressWarnings("rawtypes") - public static class CaseInsensitiveComparator implements Comparator, - Serializable { - + public static class CaseInsensitiveComparator implements Comparator, Serializable { + @Override public int compare(Object o1, Object o2) { - String s1 = o1 instanceof String ? (String)o1 : - ((Completion)o1).getInputText(); - String s2 = o2 instanceof String ? (String)o2 : - ((Completion)o2).getInputText(); + String s1 = o1 instanceof String ? (String) o1 : ((Completion) o1).getInputText(); + String s2 = o2 instanceof String ? (String) o2 : ((Completion) o2).getInputText(); return String.CASE_INSENSITIVE_ORDER.compare(s1, s2); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java index 786e18c..8b6c025 100644 --- a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java +++ b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java @@ -1,10 +1,8 @@ /* * 12/21/2008 - * * AutoCompleteDescWindow.java - A window containing a description of the * currently selected completion. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -22,6 +20,7 @@ import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; + import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.BorderFactory; @@ -43,7 +42,6 @@ import javax.swing.event.HyperlinkListener; import org.fife.ui.rsyntaxtextarea.PopupWindowDecorator; - /** * The optional "description" window that describes the currently selected * item in the auto-completion window. @@ -51,54 +49,44 @@ import org.fife.ui.rsyntaxtextarea.PopupWindowDecorator; * @author Robert Futrell * @version 1.0 */ -class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, - DescWindowCallback { - +class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, DescWindowCallback { + /** * The parent AutoCompletion instance. */ private AutoCompletion ac; - /** * Renders the HTML description. */ private JEditorPane descArea; - /** * The scroll pane that {@link #descArea} is in. */ private JScrollPane scrollPane; - /** * The bottom panel, containing the toolbar and size grip. */ private JPanel bottomPanel; - /** * The toolbar with "back" and "forward" buttons. */ private JToolBar descWindowNavBar; - /** * Action that goes to the previous description displayed. */ private Action backAction; - /** * Action that goes to the next description displayed. */ private Action forwardAction; - /** * History of descriptions displayed. */ private List history; - /** * The current position in {@link #history}. */ private int historyPos; - /** * Provides a slight delay between asking to set a description and actually * displaying it, so that if the user is scrolling quickly through @@ -106,48 +94,40 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, * scrolling. */ private Timer timer; - /** * The action that listens for the timer to fire. */ private TimerAction timerAction; - /** * The resource bundle for this window. */ private ResourceBundle bundle; - /** * The amount of time to wait after the user changes the selected - * completion to refresh the description. This delay is in place to help + * completion to refresh the description. This delay is in place to help * performance for {@link Completion}s that may be slow to compute their * summary text. */ - private static final int INITIAL_TIMER_DELAY = 120; - + private static final int INITIAL_TIMER_DELAY = 120; /** * The resource bundle name. */ - private static final String MSG = - "org.fife.ui.autocomplete.AutoCompleteDescWindow"; - - + private static final String MSG = "org.fife.ui.autocomplete.AutoCompleteDescWindow"; + /** * Constructor. * - * @param owner The parent window. - * @param ac The parent auto-completion. + * @param owner + * The parent window. + * @param ac + * The parent auto-completion. */ public AutoCompleteDescWindow(Window owner, AutoCompletion ac) { - super(owner); this.ac = ac; - ComponentOrientation o = ac.getTextComponentOrientation(); - JPanel cp = new JPanel(new BorderLayout()); cp.setBorder(TipUtil.getToolTipBorder()); - descArea = new JEditorPane("text/html", null); TipUtil.tweakTipEditorPane(descArea); descArea.addHyperlinkListener(this); @@ -158,24 +138,24 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, scrollPane.setBackground(descArea.getBackground()); scrollPane.getViewport().setBackground(descArea.getBackground()); cp.add(scrollPane); - descWindowNavBar = new JToolBar(); backAction = new ToolBarBackAction(o.isLeftToRight()); forwardAction = new ToolBarForwardAction(o.isLeftToRight()); descWindowNavBar.setFloatable(false); descWindowNavBar.add(new JButton(backAction)); descWindowNavBar.add(new JButton(forwardAction)); - bottomPanel = new JPanel(new BorderLayout()); b = new AbstractBorder() { + @Override - public Insets getBorderInsets(Component c) { + public Insets getBorderInsets(Component c) { return new Insets(1, 0, 0, 0); } + @Override public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.setColor(UIManager.getColor("controlDkShadow")); - g.drawLine(x,y, x+w-1,y); + g.drawLine(x, y, x + w - 1, y); } }; bottomPanel.setBorder(b); @@ -184,63 +164,55 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, bottomPanel.add(rp, BorderLayout.LINE_END); cp.add(bottomPanel, BorderLayout.SOUTH); setContentPane(cp); - applyComponentOrientation(o); setFocusableWindowState(false); - // Give apps a chance to decorate us with drop shadows, etc. if (Util.getShouldAllowDecoratingMainAutoCompleteWindows()) { PopupWindowDecorator decorator = PopupWindowDecorator.get(); - if (decorator!=null) { + if (decorator != null) { decorator.decorate(this); } } - history = new ArrayList(1); // Usually small historyPos = -1; - timerAction = new TimerAction(); timer = new Timer(INITIAL_TIMER_DELAY, timerAction); timer.setRepeats(false); - } - - + /** * Sets the currently displayed description and updates the history. * - * @param historyItem The item to add to the history. + * @param historyItem + * The item to add to the history. */ private void addToHistory(HistoryEntry historyItem) { history.add(++historyPos, historyItem); clearHistoryAfterCurrentPos(); setActionStates(); } - - + /** * Clears the history of viewed descriptions. */ private void clearHistory() { history.clear(); // Try to free some memory. historyPos = -1; - if (descWindowNavBar!=null) { + if (descWindowNavBar != null) { setActionStates(); } } - - + /** * Makes the current history page the last one in the history. */ private void clearHistoryAfterCurrentPos() { - for (int i=history.size()-1; i>historyPos; i--) { + for (int i = history.size() - 1; i > historyPos; i--) { history.remove(i); } setActionStates(); } - - + /** * Copies from the description text area, if it is visible and there is * a selection. @@ -248,195 +220,177 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, * @return Whether a copy occurred. */ public boolean copy() { - if (isVisible() && - descArea.getSelectionStart()!=descArea.getSelectionEnd()) { + if (isVisible() && descArea.getSelectionStart() != descArea.getSelectionEnd()) { descArea.copy(); return true; } return false; } - - + /** * Returns the localized message for the specified key. * - * @param key The key. + * @param key + * The key. * @return The localized message. */ private String getString(String key) { - if (bundle==null) { + if (bundle == null) { bundle = ResourceBundle.getBundle(MSG); } return bundle.getString(key); } - - + /** * Called when a hyperlink is clicked. * - * @param e The event. + * @param e + * The event. */ @Override public void hyperlinkUpdate(HyperlinkEvent e) { - HyperlinkEvent.EventType type = e.getEventType(); if (!type.equals(HyperlinkEvent.EventType.ACTIVATED)) { return; } - // Users can redirect URL's, perhaps to a local copy of documentation. URL url = e.getURL(); - if (url!=null) { + if (url != null) { LinkRedirector redirector = AutoCompletion.getLinkRedirector(); - if (redirector!=null) { + if (redirector != null) { URL newUrl = redirector.possiblyRedirect(url); - if (newUrl!=null && newUrl!=url) { + if (newUrl != null && newUrl != url) { url = newUrl; - e = new HyperlinkEvent(e.getSource(), e.getEventType(), - newUrl, e.getDescription(), e.getSourceElement()); + e = new HyperlinkEvent(e.getSource(), e.getEventType(), newUrl, e.getDescription(), e.getSourceElement()); } } } - // Custom hyperlink handler for this completion type ExternalURLHandler handler = ac.getExternalURLHandler(); - if (handler!=null) { + if (handler != null) { HistoryEntry current = history.get(historyPos); handler.urlClicked(e, current.completion, this); return; } - // No custom handler... - if (url!=null) { + if (url != null) { // Try loading in external browser (Java 6+ only). try { Util.browse(new URI(url.toString())); - } catch (/*IO*/URISyntaxException ioe) { + } catch (/* IO */URISyntaxException ioe) { UIManager.getLookAndFeel().provideErrorFeedback(descArea); ioe.printStackTrace(); } - } - else { // Assume simple function name text, like in c.xml - // FIXME: This is really a hack, and we assume we can find the - // linked-to item in the same CompletionProvider. - AutoCompletePopupWindow parent = - (AutoCompletePopupWindow)getParent(); + } else { // Assume simple function name text, like in c.xml + // FIXME: This is really a hack, and we assume we can find + // the + // linked-to item in the same CompletionProvider. + AutoCompletePopupWindow parent = (AutoCompletePopupWindow) getParent(); CompletionProvider p = parent.getSelection().getProvider(); if (p instanceof AbstractCompletionProvider) { String name = e.getDescription(); - List l = ((AbstractCompletionProvider)p). - getCompletionByInputText(name); - if (l!=null && !l.isEmpty()) { + List l = ((AbstractCompletionProvider) p).getCompletionByInputText(name); + if (l != null && !l.isEmpty()) { // Just use the 1st one if there's more than 1 Completion c = l.get(0); setDescriptionFor(c, true); - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(descArea); } } } - } - - + /** * Enables or disables the back and forward actions as appropriate. */ private void setActionStates() { // TODO: Localize this text! String desc = null; - if (historyPos>0) { + if (historyPos > 0) { backAction.setEnabled(true); - desc = "Back to " + history.get(historyPos-1); - } - else { + desc = "Back to " + history.get(historyPos - 1); + } else { backAction.setEnabled(false); } backAction.putValue(Action.SHORT_DESCRIPTION, desc); - if (historyPos>-1 && historyPos -1 && historyPos < history.size() - 1) { forwardAction.setEnabled(true); - desc = "Forward to " + history.get(historyPos+1); - } - else { + desc = "Forward to " + history.get(historyPos + 1); + } else { forwardAction.setEnabled(false); desc = null; } forwardAction.putValue(Action.SHORT_DESCRIPTION, desc); } - - + /** - * Sets the description displayed in this window. This clears the + * Sets the description displayed in this window. This clears the * history. * - * @param item The item whose description you want to display. + * @param item + * The item whose description you want to display. */ public void setDescriptionFor(Completion item) { setDescriptionFor(item, false); } - - + /** * Sets the description displayed in this window. * - * @param item The item whose description you want to display. - * @param addToHistory Whether to add this page to the page history - * (as opposed to clearing it and starting anew). + * @param item + * The item whose description you want to display. + * @param addToHistory + * Whether to add this page to the page history + * (as opposed to clearing it and starting anew). */ protected void setDescriptionFor(Completion item, boolean addToHistory) { setDescriptionFor(item, null, addToHistory); } - - + /** * Sets the description displayed in this window. * - * @param item The item whose description you want to display. + * @param item + * The item whose description you want to display. * @parma anchor The anchor to jump to, or null if none. - * @param addToHistory Whether to add this page to the page history - * (as opposed to clearing it and starting anew). + * @param addToHistory + * Whether to add this page to the page history + * (as opposed to clearing it and starting anew). */ - protected void setDescriptionFor(Completion item, String anchor, - boolean addToHistory) { + protected void setDescriptionFor(Completion item, String anchor, boolean addToHistory) { timer.stop(); timerAction.setCompletion(item, anchor, addToHistory); timer.start(); } - - - private void setDisplayedDesc(Completion completion, final String anchor, - boolean addToHistory) { - - String desc = completion==null ? null : completion.getSummary(); - if (desc==null) { + + private void setDisplayedDesc(Completion completion, final String anchor, boolean addToHistory) { + String desc = completion == null ? null : completion.getSummary(); + if (desc == null) { desc = "" + getString("NoDescAvailable") + ""; } descArea.setText(desc); - if (anchor!=null) { + if (anchor != null) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { descArea.scrollToReference(anchor); } }); - } - else { + } else { descArea.setCaretPosition(0); // In case of scrolling } - if (!addToHistory) { // Remove everything first if this is going to be the only // thing in history. clearHistory(); } addToHistory(new HistoryEntry(completion, desc, null)); - } - - + /** - * {@inheritDoc} + * {@inheritDoc} */ @Override public void setVisible(boolean visible) { @@ -445,21 +399,21 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, } super.setVisible(visible); } - - + /** * Callback for custom ExternalURLHandlers. * - * @param completion The completion to display. - * @param anchor The anchor in the HTML to jump to, or null - * if none. + * @param completion + * The completion to display. + * @param anchor + * The anchor in the HTML to jump to, or null + * if none. */ @Override public void showSummaryFor(Completion completion, String anchor) { setDescriptionFor(completion, anchor, true); } - - + /** * Called by the parent completion popup window the LookAndFeel is updated. */ @@ -469,26 +423,24 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, TipUtil.tweakTipEditorPane(descArea); scrollPane.setBackground(descArea.getBackground()); scrollPane.getViewport().setBackground(descArea.getBackground()); - ((JPanel)getContentPane()).setBorder(TipUtil.getToolTipBorder()); + ((JPanel) getContentPane()).setBorder(TipUtil.getToolTipBorder()); } - - + /** * A completion and its cached summary text. */ private static class HistoryEntry { - + public Completion completion; public String summary; public String anchor; - - public HistoryEntry(Completion completion, String summary, - String anchor) { + + public HistoryEntry(Completion completion, String summary, String anchor) { this.completion = completion; this.summary = summary; this.anchor = anchor; } - + /** * Overridden to display a short name for the completion, since it's * used in the tool tips for the "back" and "forward" buttons. @@ -499,19 +451,17 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, public String toString() { return completion.getInputText(); } - } - - + /** * Action that actually updates the summary text displayed. */ private class TimerAction extends AbstractAction { - + private Completion completion; private String anchor; private boolean addToHistory; - + /** * Called when the timer is fired. */ @@ -519,79 +469,67 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener, public void actionPerformed(ActionEvent e) { setDisplayedDesc(completion, anchor, addToHistory); } - - public void setCompletion(Completion c, String anchor, - boolean addToHistory) { + + public void setCompletion(Completion c, String anchor, boolean addToHistory) { this.completion = c; this.anchor = anchor; this.addToHistory = addToHistory; } - } - - + /** * Action that moves to the previous description displayed. */ class ToolBarBackAction extends AbstractAction { - + public ToolBarBackAction(boolean ltr) { - String img = "org/fife/ui/autocomplete/arrow_" + - (ltr ? "left.png" : "right.png"); + String img = "org/fife/ui/autocomplete/arrow_" + (ltr ? "left.png" : "right.png"); ClassLoader cl = getClass().getClassLoader(); Icon icon = new ImageIcon(cl.getResource(img)); putValue(Action.SMALL_ICON, icon); } - + @Override public void actionPerformed(ActionEvent e) { - if (historyPos>0) { + if (historyPos > 0) { HistoryEntry pair = history.get(--historyPos); descArea.setText(pair.summary); - if (pair.anchor!=null) { - //System.out.println("Scrolling to: " + pair.anchor); + if (pair.anchor != null) { + // System.out.println("Scrolling to: " + pair.anchor); descArea.scrollToReference(pair.anchor); - } - else { + } else { descArea.setCaretPosition(0); } setActionStates(); } } - } - - + /** * Action that moves to the previous description displayed. */ class ToolBarForwardAction extends AbstractAction { - + public ToolBarForwardAction(boolean ltr) { - String img = "org/fife/ui/autocomplete/arrow_" + - (ltr ? "right.png" : "left.png"); + String img = "org/fife/ui/autocomplete/arrow_" + (ltr ? "right.png" : "left.png"); ClassLoader cl = getClass().getClassLoader(); Icon icon = new ImageIcon(cl.getResource(img)); putValue(Action.SMALL_ICON, icon); } - + @Override public void actionPerformed(ActionEvent e) { - if (history!=null && historyPosnull if nothing is selected. * * @return The selected value. */ public Completion getSelection() { - return isShowing() ? (Completion)list.getSelectedValue():lastSelection; + return isShowing() ? (Completion) list.getSelectedValue() : lastSelection; } - - + /** * Inserts the currently selected completion. * @@ -311,8 +266,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, Completion comp = getSelection(); ac.insertCompletion(comp); } - - + /** * Registers keyboard actions to listen for in the text component and * intercept. @@ -320,7 +274,6 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, * @see #uninstallKeyBindings() */ private void installKeyBindings() { - if (AutoCompletion.getDebug()) { System.out.println("PopupWindow: Installing keybindings"); } @@ -329,17 +282,14 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, Thread.dumpStack(); return; } - - if (escapeKap==null) { // Lazily create actions. + if (escapeKap == null) { // Lazily create actions. createKeyActionPairs(); } - JTextComponent comp = ac.getTextComponent(); InputMap im = comp.getInputMap(); ActionMap am = comp.getActionMap(); - replaceAction(im, am, KeyEvent.VK_ESCAPE, escapeKap, oldEscape); - if (AutoCompletion.getDebug() && oldEscape.action==escapeKap.action) { + if (AutoCompletion.getDebug() && oldEscape.action == escapeKap.action) { Thread.dumpStack(); } replaceAction(im, am, KeyEvent.VK_UP, upKap, oldUp); @@ -352,8 +302,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, replaceAction(im, am, KeyEvent.VK_END, endKap, oldEnd); replaceAction(im, am, KeyEvent.VK_PAGE_UP, pageUpKap, oldPageUp); replaceAction(im, am, KeyEvent.VK_PAGE_DOWN, pageDownKap, oldPageDown); - - // Make Ctrl+C copy from description window. This isn't done + // Make Ctrl+C copy from description window. This isn't done // automagically because the desc. window is not focusable, and copying // from text components can only be done from focused components. KeyStroke ks = getCopyKeyStroke(); @@ -361,128 +310,114 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, im.put(ks, ctrlCKap.key); oldCtrlC.action = am.get(ctrlCKap.key); am.put(ctrlCKap.key, ctrlCKap.action); - comp.addCaretListener(this); - keyBindingsInstalled = true; - } - - + @Override public void mouseClicked(MouseEvent e) { - if (e.getClickCount()==2) { + if (e.getClickCount() == 2) { insertSelectedCompletion(); } } - - + @Override - public void mouseEntered(MouseEvent e) { - } - - + public void mouseEntered(MouseEvent e) {} + @Override - public void mouseExited(MouseEvent e) { - } - - + public void mouseExited(MouseEvent e) {} + @Override - public void mousePressed(MouseEvent e) { - } - - + public void mousePressed(MouseEvent e) {} + @Override - public void mouseReleased(MouseEvent e) { - } - - + public void mouseReleased(MouseEvent e) {} + /** * Positions the description window relative to the completion choices - * window. We assume there is room on one side of the other for this + * window. We assume there is room on one side of the other for this * entire window to fit. */ private void positionDescWindow() { - - boolean showDescWindow = descWindow!=null && ac.getShowDescWindow(); + boolean showDescWindow = descWindow != null && ac.getShowDescWindow(); if (!showDescWindow) { return; } - // Don't use getLocationOnScreen() as this throws an exception if // window isn't visible yet, but getLocation() doesn't, and is in // screen coordinates! Point p = getLocation(); Rectangle screenBounds = Util.getScreenBoundsForPoint(p.x, p.y); - //Dimension screenSize = getToolkit().getScreenSize(); - //int totalH = Math.max(getHeight(), descWindow.getHeight()); - + // Dimension screenSize = getToolkit().getScreenSize(); + // int totalH = Math.max(getHeight(), descWindow.getHeight()); // Try to position to the right first (LTR) - int x; + int x; if (ac.getTextComponentOrientation().isLeftToRight()) { x = getX() + getWidth() + 5; - if (x+descWindow.getWidth()>screenBounds.x+screenBounds.width) { // doesn't fit + if (x + descWindow.getWidth() > screenBounds.x + screenBounds.width) { // doesn't + // fit x = getX() - 5 - descWindow.getWidth(); } - } - else { // RTL + } else { // RTL x = getX() - 5 - descWindow.getWidth(); - if (xkey. - * @param old A buffer in which to place the old key/Action pair. + * @param im + * The input map. + * @param am + * The action map. + * @param key + * The keystroke whose information to replace. + * @param kap + * The new key/Action pair for key. + * @param old + * A buffer in which to place the old key/Action pair. * @see #putBackAction(InputMap, ActionMap, int, KeyActionPair) */ - private void replaceAction(InputMap im, ActionMap am, int key, - KeyActionPair kap, KeyActionPair old) { + private void replaceAction(InputMap im, ActionMap am, int key, KeyActionPair kap, KeyActionPair old) { KeyStroke ks = KeyStroke.getKeyStroke(key, 0); old.key = im.get(ks); im.put(ks, kap.key); old.action = am.get(kap.key); am.put(kap.key, kap.action); } - - + /** * Selects the first item in the completion list. * @@ -494,8 +429,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, list.ensureIndexIsVisible(0); } } - - + /** * Selects the last item in the completion list. * @@ -508,8 +442,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, list.ensureIndexIsVisible(index); } } - - + /** * Selects the next item in the completion list. * @@ -523,8 +456,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, list.ensureIndexIsVisible(index); } } - - + /** * Selects the completion item one "page down" from the currently selected * one. @@ -533,13 +465,11 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, */ private void selectPageDownItem() { int visibleRowCount = list.getVisibleRowCount(); - int i = Math.min(list.getModel().getSize()-1, - list.getSelectedIndex()+visibleRowCount); + int i = Math.min(list.getModel().getSize() - 1, list.getSelectedIndex() + visibleRowCount); list.setSelectedIndex(i); list.ensureIndexIsVisible(i); } - - + /** * Selects the completion item one "page up" from the currently selected * one. @@ -548,12 +478,11 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, */ private void selectPageUpItem() { int visibleRowCount = list.getVisibleRowCount(); - int i = Math.max(0, list.getSelectedIndex()-visibleRowCount); + int i = Math.max(0, list.getSelectedIndex() - visibleRowCount); list.setSelectedIndex(i); list.ensureIndexIsVisible(i); } - - + /** * Selects the previous item in the completion list. * @@ -562,200 +491,180 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, private void selectPreviousItem() { int index = list.getSelectedIndex(); switch (index) { - case 0: - index = list.getModel().getSize() - 1; - break; - case -1: // Check for an empty list (would be an error) - index = list.getModel().getSize() - 1; - if (index == -1) { - return; - } - break; - default: - index = index - 1; - break; + case 0: + index = list.getModel().getSize() - 1; + break; + case -1: // Check for an empty list (would be an error) + index = list.getModel().getSize() - 1; + if (index == -1) { + return; + } + break; + default: + index = index - 1; + break; } list.setSelectedIndex(index); list.ensureIndexIsVisible(index); } - - + /** - * Sets the completions to display in the choices list. The first + * Sets the completions to display in the choices list. The first * completion is selected. * - * @param completions The completions to display. + * @param completions + * The completions to display. */ public void setCompletions(List completions) { model.setContents(completions); selectFirstItem(); } - - + /** * Sets the size of the description window. * - * @param size The new size. This cannot be null. + * @param size + * The new size. This cannot be null. */ public void setDescriptionWindowSize(Dimension size) { - if (descWindow!=null) { + if (descWindow != null) { descWindow.setSize(size); - } - else { + } else { preferredDescWindowSize = size; } } - - + /** * Sets the default list cell renderer to use when a completion provider * does not supply its own. * - * @param renderer The renderer to use. If this is null, - * a default renderer is used. + * @param renderer + * The renderer to use. If this is null, + * a default renderer is used. * @see #getListCellRenderer() */ public void setListCellRenderer(ListCellRenderer renderer) { - DelegatingCellRenderer dcr = (DelegatingCellRenderer)list. - getCellRenderer(); + DelegatingCellRenderer dcr = (DelegatingCellRenderer) list.getCellRenderer(); dcr.setFallbackCellRenderer(renderer); } - - + /** * Sets the location of this window to be "good" relative to the specified - * rectangle. That rectangle should be the location of the text + * rectangle. That rectangle should be the location of the text * component's caret, in screen coordinates. * - * @param r The text component's caret position, in screen coordinates. + * @param r + * The text component's caret position, in screen coordinates. */ public void setLocationRelativeTo(Rectangle r) { - // Multi-monitor support - make sure the completion window (and // description window, if applicable) both fit in the same window in - // a multi-monitor environment. To do this, we decide which monitor + // a multi-monitor environment. To do this, we decide which monitor // the rectangle "r" is in, and use that one (just pick top-left corner // as the defining point). Rectangle screenBounds = Util.getScreenBoundsForPoint(r.x, r.y); - //Dimension screenSize = getToolkit().getScreenSize(); - - boolean showDescWindow = descWindow!=null && ac.getShowDescWindow(); + // Dimension screenSize = getToolkit().getScreenSize(); + boolean showDescWindow = descWindow != null && ac.getShowDescWindow(); int totalH = getHeight(); if (showDescWindow) { totalH = Math.max(totalH, descWindow.getHeight()); } - - // Try putting our stuff "below" the caret first. We assume that the + // Try putting our stuff "below" the caret first. We assume that the // entire height of our stuff fits on the screen one way or the other. aboveCaret = false; int y = r.y + r.height + VERTICAL_SPACE; - if (y+totalH>screenBounds.height) { + if (y + totalH > screenBounds.height) { y = r.y - VERTICAL_SPACE - getHeight(); aboveCaret = true; } - - // Get x-coordinate of completions. Try to align left edge with the + // Get x-coordinate of completions. Try to align left edge with the // caret first. int x = r.x; if (!ac.getTextComponentOrientation().isLeftToRight()) { x -= getWidth(); // RTL => align right edge } - if (xscreenBounds.x+screenBounds.width) { // completions don't fit + } else if (x + getWidth() > screenBounds.x + screenBounds.width) { // completions + // don't + // fit x = screenBounds.x + screenBounds.width - getWidth(); } - setLocation(x, y); - // Position the description window, if necessary. if (showDescWindow) { positionDescWindow(); } - } - - + /** * Toggles the visibility of this popup window. * - * @param visible Whether this window should be visible. + * @param visible + * Whether this window should be visible. */ @Override public void setVisible(boolean visible) { - - if (visible!=isVisible()) { - + if (visible != isVisible()) { if (visible) { installKeyBindings(); lastLine = ac.getLineOfCaret(); selectFirstItem(); - if (descWindow==null && ac.getShowDescWindow()) { + if (descWindow == null && ac.getShowDescWindow()) { descWindow = createDescriptionWindow(); positionDescWindow(); } // descWindow needs a kick-start the first time it's displayed. // Also, the newly-selected item in the choices list is // probably different from the previous one anyway. - if (descWindow!=null) { - Completion c = (Completion)list.getSelectedValue(); - if (c!=null) { + if (descWindow != null) { + Completion c = (Completion) list.getSelectedValue(); + if (c != null) { descWindow.setDescriptionFor(c); } } - } - else { + } else { uninstallKeyBindings(); } - super.setVisible(visible); - // Some languages, such as Java, can use quite a lot of memory - // when displaying hundreds of completion choices. We pro-actively + // when displaying hundreds of completion choices. We pro-actively // clear our list model here to make them available for GC. - // Otherwise, they stick around, and consider the following: a + // Otherwise, they stick around, and consider the following: a // user starts code-completion for Java 5 SDK classes, then hides // the dialog, then changes the "class path" to use a Java 6 SDK - // instead. On pressing Ctrl+space, a new array of Completions is - // created. If this window holds on to the previous Completions, + // instead. On pressing Ctrl+space, a new array of Completions is + // created. If this window holds on to the previous Completions, // you're getting roughly 2x the necessary Completions in memory // until the Completions are actually passed to this window. if (!visible) { // Do after super.setVisible(false) - lastSelection = (Completion)list.getSelectedValue(); + lastSelection = (Completion) list.getSelectedValue(); model.clear(); } - // Must set descWindow's visibility one way or the other each time, // because of the way child JWindows' visibility is handled - in // some ways it's dependent on the parent, in other ways it's not. - if (descWindow!=null) { + if (descWindow != null) { descWindow.setVisible(visible && ac.getShowDescWindow()); } - } - } - - + /** * Stops intercepting certain keystrokes from the text component. * * @see #installKeyBindings() */ private void uninstallKeyBindings() { - if (AutoCompletion.getDebug()) { System.out.println("PopupWindow: Removing keybindings"); } if (!keyBindingsInstalled) { return; } - JTextComponent comp = ac.getTextComponent(); InputMap im = comp.getInputMap(); ActionMap am = comp.getActionMap(); - putBackAction(im, am, KeyEvent.VK_ESCAPE, oldEscape); putBackAction(im, am, KeyEvent.VK_UP, oldUp); putBackAction(im, am, KeyEvent.VK_DOWN, oldDown); @@ -767,145 +676,124 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, putBackAction(im, am, KeyEvent.VK_END, oldEnd); putBackAction(im, am, KeyEvent.VK_PAGE_UP, oldPageUp); putBackAction(im, am, KeyEvent.VK_PAGE_DOWN, oldPageDown); - // Ctrl+C KeyStroke ks = getCopyKeyStroke(); am.put(im.get(ks), oldCtrlC.action); // Original action im.put(ks, oldCtrlC.key); // Original key - comp.removeCaretListener(this); - keyBindingsInstalled = false; - } - - + /** * Updates the LookAndFeel of this window and the description * window. */ public void updateUI() { SwingUtilities.updateComponentTreeUI(this); - if (descWindow!=null) { + if (descWindow != null) { descWindow.updateUI(); } } - - + /** * Called when a new item is selected in the popup list. * - * @param e The event. + * @param e + * The event. */ @Override public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { Object value = list.getSelectedValue(); - if (value!=null && descWindow!=null) { - descWindow.setDescriptionFor((Completion)value); + if (value != null && descWindow != null) { + descWindow.setDescriptionFor((Completion) value); positionDescWindow(); } } } - - + class CopyAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { boolean doNormalCopy = false; - if (descWindow!=null && descWindow.isVisible()) { + if (descWindow != null && descWindow.isVisible()) { doNormalCopy = !descWindow.copy(); } if (doNormalCopy) { ac.getTextComponent().copy(); } } - } - - + class DownAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { selectNextItem(); } } - } - - + class EndAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { selectLastItem(); } } - } - - + class EnterAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { insertSelectedCompletion(); } } - } - - + class EscapeAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { setVisible(false); } } - } - - + class HomeAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { selectFirstItem(); } } - } - - + /** * A mapping from a key (an Object) to an Action. */ private static class KeyActionPair { - + public Object key; public Action action; - - public KeyActionPair() { - } - + + public KeyActionPair() {} + public KeyActionPair(Object key, Action a) { this.key = key; this.action = a; } - } - - + class LeftAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { @@ -917,54 +805,47 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, // Ensure moving left hasn't moved us up a line, thus // hiding the popup window. if (comp.isVisible()) { - if (lastLine!=-1) { + if (lastLine != -1) { doAutocomplete(); } } } } } - } - - + class PageDownAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { selectPageDownItem(); } } - } - - + class PageUpAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { selectPageUpItem(); } } - } - - + /** * The actual list of completion choices in this popup window. */ private class PopupList extends JList { - + public PopupList(CompletionListModel model) { super(model); } - + @Override public void setUI(ListUI ui) { - if (Util.getUseSubstanceRenderers() && - SUBSTANCE_LIST_UI.equals(ui.getClass().getName())) { + if (Util.getUseSubstanceRenderers() && SUBSTANCE_LIST_UI.equals(ui.getClass().getName())) { // Substance requires its special ListUI be installed for // its renderers to actually render (!), but long completion // lists (e.g. PHPCompletionProvider in RSTALanguageSupport) @@ -974,20 +855,17 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, CompletionProvider p = ac.getCompletionProvider(); BasicCompletion bc = new BasicCompletion(p, "Hello world"); setPrototypeCellValue(bc); - } - else { + } else { // Our custom UI that is faster for long HTML completion lists. ui = new FastListUI(); setPrototypeCellValue(null); } super.setUI(ui); } - } - - + class RightAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { @@ -999,27 +877,22 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener, // Ensure moving right hasn't moved us up a line, thus // hiding the popup window. if (comp.isVisible()) { - if (lastLine!=-1) { + if (lastLine != -1) { doAutocomplete(); } } } } } - } - - + class UpAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isVisible()) { selectPreviousItem(); } } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/AutoCompletion.java b/src/org/fife/ui/autocomplete/AutoCompletion.java index b10fae2..4fa9545 100644 --- a/src/org/fife/ui/autocomplete/AutoCompletion.java +++ b/src/org/fife/ui/autocomplete/AutoCompletion.java @@ -1,255 +1,253 @@ /* * 12/21/2008 - * * AutoCompletion.java - Handles auto-completion for a text component. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; -import java.awt.*; -import java.awt.event.*; -import java.beans.*; +import java.awt.ComponentOrientation; +import java.awt.Dimension; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Window; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; +import java.awt.event.HierarchyEvent; +import java.awt.event.HierarchyListener; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.awt.event.WindowEvent; +import java.awt.event.WindowFocusListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.List; -import javax.swing.*; -import javax.swing.Timer; -import javax.swing.event.*; -import javax.swing.text.*; +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; +import javax.swing.KeyStroke; +import javax.swing.ListCellRenderer; +import javax.swing.SwingUtilities; +import javax.swing.Timer; +import javax.swing.UIManager; +import javax.swing.event.CaretEvent; +import javax.swing.event.CaretListener; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.event.EventListenerList; +import javax.swing.text.BadLocationException; +import javax.swing.text.Caret; +import javax.swing.text.Document; +import javax.swing.text.Element; +import javax.swing.text.JTextComponent; /** * Adds auto-completion to a text component. Provides a popup window with a - * list of auto-complete choices on a given keystroke, such as Crtrl+Space.

+ * list of auto-complete choices on a given keystroke, such as Crtrl+Space. + *

* * Depending on the {@link CompletionProvider} installed, the following * auto-completion features may be enabled: * *

    - *
  • An auto-complete choices list made visible via e.g. Ctrl+Space
  • - *
  • A "description" window displayed alongside the choices list that - * provides documentation on the currently selected completion choice - * (as seen in Eclipse and NetBeans).
  • - *
  • Parameter assistance. If this is enabled, if the user enters a - * "parameterized" completion, such as a method or a function, then they - * will receive a tool tip describing the arguments they have to enter to - * the completion. Also, the arguments can be navigated via tab and - * shift+tab (a la Eclipse and NetBeans).
  • + *
  • An auto-complete choices list made visible via e.g. Ctrl+Space
  • + *
  • A "description" window displayed alongside the choices list that + * provides documentation on the currently selected completion choice + * (as seen in Eclipse and NetBeans).
  • + *
  • Parameter assistance. If this is enabled, if the user enters a + * "parameterized" completion, such as a method or a function, then they + * will receive a tool tip describing the arguments they have to enter to + * the completion. Also, the arguments can be navigated via tab and + * shift+tab (a la Eclipse and NetBeans).
  • *
* * @author Robert Futrell * @version 1.0 */ -/* This class handles intercepting window and hierarchy events from the text +/* + * This class handles intercepting window and hierarchy events from the text * component, so the popup window is only visible when it should be visible. It * also handles communication between the CompletionProvider and the actual * popup Window. */ public class AutoCompletion { - + /** * The text component we're providing completion for. */ private JTextComponent textComponent; - /** * The parent window of {@link #textComponent}. */ private Window parentWindow; - /** * The popup window containing completion choices. */ private AutoCompletePopupWindow popupWindow; - /** * The preferred size of the completion choices window. This field exists * because the user will likely set the preferred size of the window before * it is actually created. */ private Dimension preferredChoicesWindowSize; - /** * The preferred size of the optional description window. This field only * exists because the user may (and usually will) set the size of the * description window before it exists (it must be parented to a Window). */ private Dimension preferredDescWindowSize; - /** * Manages any parameterized completions that are inserted. */ private ParameterizedCompletionContext pcc; - /** * Provides the completion options relevant to the current caret position. */ private CompletionProvider provider; - /** * The renderer to use for the completion choices. If this is * null, then a default renderer is used. */ private ListCellRenderer renderer; - /** * The handler to use when an external URL is clicked in the help * documentation. */ private ExternalURLHandler externalURLHandler; - /** * An optional redirector that converts URL's to some other location before * being handed over to externalURLHandler. */ private static LinkRedirector linkRedirector; - /** * Whether the description window should be displayed along with the * completion choice window. */ private boolean showDescWindow; - /** * Whether auto-complete is enabled. */ private boolean autoCompleteEnabled; - /** * Whether the auto-activation of auto-complete (after a delay, after the * user types an appropriate character) is enabled. */ private boolean autoActivationEnabled; - /** * Whether or not, when there is only a single auto-complete option that * matches the text at the current text position, that text should be * auto-inserted, instead of the completion window displaying. */ private boolean autoCompleteSingleChoices; - /** * Whether parameter assistance is enabled. */ private boolean parameterAssistanceEnabled; - /** * A renderer used for {@link Completion}s in the optional parameter choices * popup window (displayed when a {@link ParameterizedCompletion} is * code-completed). If this isn't set, a default renderer is used. */ private ListCellRenderer paramChoicesRenderer; - /** * The keystroke that triggers the completion window. */ private KeyStroke trigger; - /** * The previous key in the text component's InputMap for the * trigger key. */ private Object oldTriggerKey; - /** * The action previously assigned to {@link #trigger}, so we can reset it if * the user disables auto-completion. */ private Action oldTriggerAction; - /** * The previous key in the text component's InputMap for the * parameter completion trigger key. */ private Object oldParenKey; - /** * The action previously assigned to the parameter completion key, so we can * reset it when we uninstall. */ private Action oldParenAction; - /** * Listens for events in the parent window that affect the visibility of the * popup windows. */ private ParentWindowListener parentWindowListener; - /** * Listens for events from the text component that affect the visibility of * the popup windows. */ private TextComponentListener textComponentListener; - /** * Listens for events in the text component that cause the popup windows to * automatically activate. */ private AutoActivationListener autoActivationListener; - /** * Listens for LAF changes so the auto-complete windows automatically update * themselves accordingly. */ private LookAndFeelChangeListener lafListener; - /** * Listens for events from the popup window. */ private PopupWindowListener popupWindowListener; - /** * All listeners registered on this component. */ private EventListenerList listeners; - /** * Whether or not the popup should be hidden when user types a space (or any * character that resets the completion list to "all completions"). Defaults * to true. */ private boolean hideOnNoText; - /** * Whether or not the popup should be hidden when the CompletionProvider * changes. If set to false, caller has to ensure refresh of the popup * content. Defaults to true. */ private boolean hideOnCompletionProviderChange; - /** * The key used in the input map for the AutoComplete action. */ private static final String PARAM_TRIGGER_KEY = "AutoComplete"; - /** * Key used in the input map for the parameter completion action. */ private static final String PARAM_COMPLETE_KEY = "AutoCompletion.FunctionStart"; - /** * Stores how to render auto-completion-specific highlights in text * components. */ private static final AutoCompletionStyleContext styleContext = new AutoCompletionStyleContext(); - /** * Whether debug messages should be printed to stdout as AutoCompletion * runs. */ private static final boolean DEBUG = initDebug(); - - + /** * Constructor. * - * @param provider The completion provider. This cannot be null + * @param provider + * The completion provider. This cannot be null */ public AutoCompletion(CompletionProvider provider) { - setChoicesWindowSize(350, 200); setDescriptionWindowSize(350, 250); - setCompletionProvider(provider); setTriggerKey(getDefaultTriggerKey()); setAutoCompleteEnabled(true); @@ -264,21 +262,19 @@ public class AutoCompletion { lafListener = new LookAndFeelChangeListener(); popupWindowListener = new PopupWindowListener(); listeners = new EventListenerList(); - } - - + /** * Adds a listener interested in popup window events from this instance. * - * @param l The listener to add. + * @param l + * The listener to add. * @see #removeAutoCompletionListener(AutoCompletionListener) */ public void addAutoCompletionListener(AutoCompletionListener l) { listeners.add(AutoCompletionListener.class, l); } - - + /** * Displays the popup window. Hosting applications can call this method to * programmatically begin an auto-completion operation. @@ -286,33 +282,29 @@ public class AutoCompletion { public void doCompletion() { refreshPopupWindow(); } - - + /** * Fires an {@link AutoCompletionEvent} of the specified type. * - * @param type The type of event to fire. + * @param type + * The type of event to fire. */ protected void fireAutoCompletionEvent(AutoCompletionEvent.Type type) { - // Guaranteed to return a non-null array Object[] listeners = this.listeners.getListenerList(); AutoCompletionEvent e = null; - // Process the listeners last to first, notifying those that are // interested in this event - for (int i=listeners.length-2; i>=0; i-=2) { + for (int i = listeners.length - 2; i >= 0; i -= 2) { if (listeners[i] == AutoCompletionListener.class) { - if (e==null) { + if (e == null) { e = new AutoCompletionEvent(this, type); } - ((AutoCompletionListener)listeners[i+1]).autoCompleteUpdate(e); + ((AutoCompletionListener) listeners[i + 1]).autoCompleteUpdate(e); } } - } - - + /** * Returns the delay between when the user types a character and when the * code completion popup should automatically appear (if applicable). @@ -323,8 +315,7 @@ public class AutoCompletion { public int getAutoActivationDelay() { return autoActivationListener.timer.getDelay(); } - - + /** * Returns whether, if a single auto-complete choice is available, it should * be automatically inserted, without displaying the popup menu. @@ -335,8 +326,7 @@ public class AutoCompletion { public boolean getAutoCompleteSingleChoices() { return autoCompleteSingleChoices; } - - + /** * Returns the completion provider. * @@ -345,8 +335,7 @@ public class AutoCompletion { public CompletionProvider getCompletionProvider() { return provider; } - - + /** * Returns whether debug is enabled for AutoCompletion. * @@ -355,8 +344,7 @@ public class AutoCompletion { static boolean getDebug() { return DEBUG; } - - + /** * Returns the default auto-complete "trigger key" for this OS. For Windows, * for example, it is Ctrl+Space. @@ -368,8 +356,7 @@ public class AutoCompletion { int mask = InputEvent.CTRL_MASK; return KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, mask); } - - + /** * Returns the handler to use when an external URL is clicked in the * description window. @@ -381,15 +368,13 @@ public class AutoCompletion { public ExternalURLHandler getExternalURLHandler() { return externalURLHandler; } - - + int getLineOfCaret() { Document doc = textComponent.getDocument(); Element root = doc.getDefaultRootElement(); return root.getElementIndex(textComponent.getCaretPosition()); } - - + /** * Returns the link redirector, if any. * @@ -399,8 +384,7 @@ public class AutoCompletion { public static LinkRedirector getLinkRedirector() { return linkRedirector; } - - + /** * Returns the default list cell renderer used when a completion provider * does not supply its own. @@ -411,8 +395,7 @@ public class AutoCompletion { public ListCellRenderer getListCellRenderer() { return renderer; } - - + /** * Returns the renderer to use for {@link Completion}s in the optional * parameter choices popup window (displayed when a @@ -426,8 +409,7 @@ public class AutoCompletion { public ListCellRenderer getParamChoicesRenderer() { return paramChoicesRenderer; } - - + /** * Returns the text to replace with in the document. This is a "last-chance" * hook for subclasses to make special modifications to the completion text @@ -435,18 +417,20 @@ public class AutoCompletion { * c.getReplacementText(). You usually will not need to modify this * method. * - * @param c The completion being inserted. - * @param doc The document being modified. - * @param start The start of the text being replaced. - * @param len The length of the text being replaced. + * @param c + * The completion being inserted. + * @param doc + * The document being modified. + * @param start + * The start of the text being replaced. + * @param len + * The length of the text being replaced. * @return The text to replace with. */ - protected String getReplacementText(Completion c, Document doc, int start, - int len) { + protected String getReplacementText(Completion c, Document doc, int start, int len) { return c.getReplacementText(); } - - + /** * Returns whether the "description window" should be shown alongside the * completion window. @@ -457,8 +441,7 @@ public class AutoCompletion { public boolean getShowDescWindow() { return showDescWindow; } - - + /** * Returns the style context describing how auto-completion related * highlights in the editor are rendered. @@ -468,8 +451,7 @@ public class AutoCompletion { public static AutoCompletionStyleContext getStyleContext() { return styleContext; } - - + /** * Returns the text component for which auto-completion is enabled. * @@ -480,8 +462,7 @@ public class AutoCompletion { public JTextComponent getTextComponent() { return textComponent; } - - + /** * Returns the orientation of the text component we're installed to. * @@ -489,11 +470,9 @@ public class AutoCompletion { * are not installed on one. */ ComponentOrientation getTextComponentOrientation() { - return textComponent == null ? null : textComponent - .getComponentOrientation(); + return textComponent == null ? null : textComponent.getComponentOrientation(); } - - + /** * Returns the "trigger key" used for auto-complete. * @@ -503,8 +482,7 @@ public class AutoCompletion { public KeyStroke getTriggerKey() { return trigger; } - - + /** * Hides any child windows being displayed by the auto-completion system. * @@ -516,8 +494,7 @@ public class AutoCompletion { res |= hideParameterCompletionPopups(); return res; } - - + /** * Hides and disposes of any parameter completion-related popups. * @@ -531,8 +508,7 @@ public class AutoCompletion { } return false; } - - + /** * Hides the popup window, if it is visible. * @@ -547,8 +523,7 @@ public class AutoCompletion { } return false; } - - + /** * Determines whether debug should be enabled for the AutoCompletion * library. This method checks a system property, but takes care of @@ -565,71 +540,61 @@ public class AutoCompletion { } return debug; } - - + /** * Inserts a completion. Any time a code completion event occurs, the actual * text insertion happens through this method. * - * @param c A completion to insert. This cannot be null. + * @param c + * A completion to insert. This cannot be null. */ protected final void insertCompletion(Completion c) { insertCompletion(c, false); } - - + /** * Inserts a completion. Any time a code completion event occurs, the actual * text insertion happens through this method. * - * @param c A completion to insert. This cannot be null. - * @param typedParamListStartChar Whether the parameterized completion start - * character was typed (typically '('). + * @param c + * A completion to insert. This cannot be null. + * @param typedParamListStartChar + * Whether the parameterized completion start + * character was typed (typically '('). */ - protected void insertCompletion(Completion c, - boolean typedParamListStartChar) { - + protected void insertCompletion(Completion c, boolean typedParamListStartChar) { JTextComponent textComp = getTextComponent(); String alreadyEntered = c.getAlreadyEntered(textComp); hidePopupWindow(); Caret caret = textComp.getCaret(); - int dot = caret.getDot(); int len = alreadyEntered.length(); int start = dot - len; - String replacement = getReplacementText(c, textComp.getDocument(), - start, len); - + String replacement = getReplacementText(c, textComp.getDocument(), start, len); caret.setDot(start); caret.moveDot(dot); textComp.replaceSelection(replacement); - - if (isParameterAssistanceEnabled() - && (c instanceof ParameterizedCompletion)) { + if (isParameterAssistanceEnabled() && (c instanceof ParameterizedCompletion)) { ParameterizedCompletion pc = (ParameterizedCompletion) c; startParameterizedCompletionAssistance(pc, typedParamListStartChar); } - } - - + /** * Installs this auto-completion on a text component. If this * {@link AutoCompletion} is already installed on another text component, * it is uninstalled first. * - * @param c The text component. + * @param c + * The text component. * @see #uninstall() */ public void install(JTextComponent c) { - if (textComponent != null) { uninstall(); } - this.textComponent = c; installTriggerKey(getTriggerKey()); - // Install the function completion key, if there is one. // NOTE: We cannot do this if the start char is ' ' (e.g. just a space // between the function name and parameters) because it overrides @@ -644,28 +609,23 @@ public class AutoCompletion { oldParenKey = im.get(ks); im.put(ks, PARAM_COMPLETE_KEY); oldParenAction = am.get(PARAM_COMPLETE_KEY); - am.put(PARAM_COMPLETE_KEY, new ParameterizedCompletionStartAction( - start)); + am.put(PARAM_COMPLETE_KEY, new ParameterizedCompletionStartAction(start)); } - textComponentListener.addTo(this.textComponent); // In case textComponent is already in a window... textComponentListener.hierarchyChanged(null); - if (isAutoActivationEnabled()) { autoActivationListener.addTo(this.textComponent); } - UIManager.addPropertyChangeListener(lafListener); updateUI(); // In case there have been changes since we uninstalled - } - - + /** * Installs a "trigger key" action onto the current text component. * - * @param ks The keystroke that should trigger the action. + * @param ks + * The keystroke that should trigger the action. * @see #uninstallTriggerKey() */ private void installTriggerKey(KeyStroke ks) { @@ -676,11 +636,10 @@ public class AutoCompletion { oldTriggerAction = am.get(PARAM_TRIGGER_KEY); am.put(PARAM_TRIGGER_KEY, createAutoCompleteAction()); } - - + /** * Creates and returns the action to call when the user presses the - * auto-completion trigger key (e.g. ctrl+space). This is a hook for + * auto-completion trigger key (e.g. ctrl+space). This is a hook for * subclasses that want to provide their own behavior in this scenario. * The default implementation returns an {@link AutoCompleteAction}. * @@ -690,8 +649,7 @@ public class AutoCompletion { protected Action createAutoCompleteAction() { return new AutoCompleteAction(); } - - + /** * Returns whether auto-activation is enabled (that is, whether the * completion popup will automatically appear after a delay when the user @@ -706,8 +664,7 @@ public class AutoCompletion { public boolean isAutoActivationEnabled() { return autoActivationEnabled; } - - + /** * Returns whether auto-completion is enabled. * @@ -717,8 +674,7 @@ public class AutoCompletion { public boolean isAutoCompleteEnabled() { return autoCompleteEnabled; } - - + /** * Whether or not the popup should be hidden when the CompletionProvider * changes. If set to false, caller has to ensure refresh of the popup @@ -731,21 +687,19 @@ public class AutoCompletion { protected boolean isHideOnCompletionProviderChange() { return hideOnCompletionProviderChange; } - - + /** * Whether or not the popup should be hidden when user types a space (or * any character that resets the completion list to "all completions"). * * @return Whether the popup should be hidden when the completion list is - * reset to show all completions. + * reset to show all completions. * @see #setHideOnNoText(boolean) */ protected boolean isHideOnNoText() { return hideOnNoText; } - - + /** * Returns whether parameter assistance is enabled. * @@ -755,8 +709,7 @@ public class AutoCompletion { public boolean isParameterAssistanceEnabled() { return parameterAssistanceEnabled; } - - + /** * Returns whether the completion popup window is visible. * @@ -765,8 +718,7 @@ public class AutoCompletion { public boolean isPopupVisible() { return popupWindow != null && popupWindow.isVisible(); } - - + /** * Refreshes the popup window. First, this method gets the possible * completions for the current caret position. If there are none, and the @@ -778,13 +730,11 @@ public class AutoCompletion { * @return The current line number of the caret. */ protected int refreshPopupWindow() { - // A return value of null => don't suggest completions String text = provider.getAlreadyEnteredText(textComponent); if (text == null && !isPopupVisible()) { return getLineOfCaret(); } - // If the popup is currently visible, and they type a space (or any // character that resets the completion list to "all completions"), // the popup window should be hidden instead of being reset to show @@ -796,22 +746,16 @@ public class AutoCompletion { return getLineOfCaret(); } } - - final List completions = provider - .getCompletions(textComponent); - int count = completions==null ? 0 : completions.size(); - - if (count > 1 || (count == 1 && (isPopupVisible() || textLen == 0)) - || (count == 1 && !getAutoCompleteSingleChoices())) { - + final List completions = provider.getCompletions(textComponent); + int count = completions == null ? 0 : completions.size(); + if (count > 1 || (count == 1 && (isPopupVisible() || textLen == 0)) || (count == 1 && !getAutoCompleteSingleChoices())) { if (popupWindow == null) { popupWindow = new AutoCompletePopupWindow(parentWindow, this); popupWindowListener.install(popupWindow); // Completion is usually done for code, which is always done // LTR, so make completion stuff RTL only if text component is // also RTL. - popupWindow - .applyComponentOrientation(getTextComponentOrientation()); + popupWindow.applyComponentOrientation(getTextComponentOrientation()); if (renderer != null) { popupWindow.setListCellRenderer(renderer); } @@ -819,18 +763,14 @@ public class AutoCompletion { popupWindow.setSize(preferredChoicesWindowSize); } if (preferredDescWindowSize != null) { - popupWindow - .setDescriptionWindowSize(preferredDescWindowSize); + popupWindow.setDescriptionWindowSize(preferredDescWindowSize); } } - popupWindow.setCompletions(completions); - if (!popupWindow.isVisible()) { Rectangle r = null; try { - r = textComponent.modelToView(textComponent - .getCaretPosition()); + r = textComponent.modelToView(textComponent.getCaretPosition()); } catch (BadLocationException ble) { ble.printStackTrace(); return -1; @@ -842,44 +782,37 @@ public class AutoCompletion { popupWindow.setLocationRelativeTo(r); setPopupVisible(true); } - - } - - else if (count == 1) { // !isPopupVisible && autoCompleteSingleChoices + } else if (count == 1) { // !isPopupVisible && autoCompleteSingleChoices SwingUtilities.invokeLater(new Runnable() { - + @Override public void run() { insertCompletion(completions.get(0)); } }); - } - - else { + } else { hidePopupWindow(); } - return getLineOfCaret(); - } - - + /** * Removes a listener interested in popup window events from this instance. * - * @param l The listener to remove. + * @param l + * The listener to remove. * @see #addAutoCompletionListener(AutoCompletionListener) */ public void removeAutoCompletionListener(AutoCompletionListener l) { listeners.remove(AutoCompletionListener.class, l); } - - + /** * Sets the delay between when the user types a character and when the code * completion popup should automatically appear (if applicable). * - * @param ms The delay, in milliseconds. This should be greater than zero. + * @param ms + * The delay, in milliseconds. This should be greater than zero. * @see #getAutoActivationDelay() */ public void setAutoActivationDelay(int ms) { @@ -887,13 +820,13 @@ public class AutoCompletion { autoActivationListener.timer.stop(); autoActivationListener.timer.setInitialDelay(ms); } - - + /** * Toggles whether auto-activation is enabled. Note that auto-activation * also depends on auto-completion itself being enabled. * - * @param enabled Whether auto-activation is enabled. + * @param enabled + * Whether auto-activation is enabled. * @see #isAutoActivationEnabled() * @see #setAutoActivationDelay(int) */ @@ -903,19 +836,18 @@ public class AutoCompletion { if (textComponent != null) { if (autoActivationEnabled) { autoActivationListener.addTo(textComponent); - } - else { + } else { autoActivationListener.removeFrom(textComponent); } } } } - - + /** * Sets whether auto-completion is enabled. * - * @param enabled Whether auto-completion is enabled. + * @param enabled + * Whether auto-completion is enabled. * @see #isAutoCompleteEnabled() */ public void setAutoCompleteEnabled(boolean enabled) { @@ -924,27 +856,28 @@ public class AutoCompletion { hidePopupWindow(); } } - - + /** * Sets whether, if a single auto-complete choice is available, it should be * automatically inserted, without displaying the popup menu. * - * @param autoComplete Whether to auto-complete single choices. + * @param autoComplete + * Whether to auto-complete single choices. * @see #getAutoCompleteSingleChoices() */ public void setAutoCompleteSingleChoices(boolean autoComplete) { autoCompleteSingleChoices = autoComplete; } - - + /** * Sets the completion provider being used. * - * @param provider The new completion provider. This cannot be - * null. - * @throws IllegalArgumentException If provider is - * null. + * @param provider + * The new completion provider. This cannot be + * null. + * @throws IllegalArgumentException + * If provider is + * null. */ public void setCompletionProvider(CompletionProvider provider) { if (provider == null) { @@ -955,13 +888,14 @@ public class AutoCompletion { hidePopupWindow(); // In case new choices should be displayed. } } - - + /** * Sets the size of the completion choices window. * - * @param w The new width. - * @param h The new height. + * @param w + * The new width. + * @param h + * The new height. * @see #setDescriptionWindowSize(int, int) */ public void setChoicesWindowSize(int w, int h) { @@ -970,13 +904,14 @@ public class AutoCompletion { popupWindow.setSize(preferredChoicesWindowSize); } } - - + /** * Sets the size of the description window. * - * @param w The new width. - * @param h The new height. + * @param w + * The new width. + * @param h + * The new height. * @see #setChoicesWindowSize(int, int) */ public void setDescriptionWindowSize(int w, int h) { @@ -985,8 +920,7 @@ public class AutoCompletion { popupWindow.setDescriptionWindowSize(preferredDescWindowSize); } } - - + /** * Sets the handler to use when an external URL is clicked in the * description window. This handler can perform some action, such as open @@ -995,62 +929,62 @@ public class AutoCompletion { * Java 5 and below, or otherwise want to respond to hyperlink clicks, you * will have to install your own handler to do so. * - * @param handler The new handler. + * @param handler + * The new handler. * @see #getExternalURLHandler() */ public void setExternalURLHandler(ExternalURLHandler handler) { this.externalURLHandler = handler; } - - + /** * Sets whether or not the popup should be hidden when the * CompletionProvider changes. If set to false, caller has to ensure refresh * of the popup content. * - * @param hideOnCompletionProviderChange Whether the popup should be hidden - * when the completion provider changes. + * @param hideOnCompletionProviderChange + * Whether the popup should be hidden + * when the completion provider changes. * @see #isHideOnCompletionProviderChange() */ - protected void setHideOnCompletionProviderChange( - boolean hideOnCompletionProviderChange) { + protected void setHideOnCompletionProviderChange(boolean hideOnCompletionProviderChange) { this.hideOnCompletionProviderChange = hideOnCompletionProviderChange; } - - + /** * Sets whether or not the popup should be hidden when user types a space * (or any character that resets the completion list to "all completions"). * - * @param hideOnNoText Whether the popup sh ould be hidden when the - * completion list is reset to show all completions. + * @param hideOnNoText + * Whether the popup sh ould be hidden when the + * completion list is reset to show all completions. * @see #isHideOnNoText() */ protected void setHideOnNoText(boolean hideOnNoText) { this.hideOnNoText = hideOnNoText; } - - + /** * Sets the redirector for external URL's found in code completion * documentation. When a non-local link in completion popups is clicked, * this redirector is given the chance to modify the URL fetched and * displayed. * - * @param linkRedirector The link redirector, or null for none. + * @param linkRedirector + * The link redirector, or null for none. * @see #getLinkRedirector() */ public static void setLinkRedirector(LinkRedirector linkRedirector) { AutoCompletion.linkRedirector = linkRedirector; } - - + /** * Sets the default list cell renderer to use when a completion provider * does not supply its own. * - * @param renderer The renderer to use. If this is null, a - * default renderer is used. + * @param renderer + * The renderer to use. If this is null, a + * default renderer is used. * @see #getListCellRenderer() */ public void setListCellRenderer(ListCellRenderer renderer) { @@ -1060,23 +994,22 @@ public class AutoCompletion { hidePopupWindow(); } } - - + /** * Sets the renderer to use for {@link Completion}s in the optional * parameter choices popup window (displayed when a * {@link ParameterizedCompletion} is code-completed). If this isn't set, a * default renderer is used. * - * @param r The renderer to use. + * @param r + * The renderer to use. * @see #getParamChoicesRenderer() * @see #setParameterAssistanceEnabled(boolean) */ public void setParamChoicesRenderer(ListCellRenderer r) { paramChoicesRenderer = r; } - - + /** * Sets whether parameter assistance is enabled. If parameter assistance is * enabled, and a "parameterized" completion (such as a function or method) @@ -1084,47 +1017,49 @@ public class AutoCompletion { * in the form of a popup window with documentation and easy tabbing through * the arguments (as seen in Eclipse and NetBeans). * - * @param enabled Whether parameter assistance should be enabled. + * @param enabled + * Whether parameter assistance should be enabled. * @see #isParameterAssistanceEnabled() */ public void setParameterAssistanceEnabled(boolean enabled) { parameterAssistanceEnabled = enabled; } - - + /** - * Toggles the visibility of the auto-completion popup window. This fires + * Toggles the visibility of the auto-completion popup window. This fires * an {@link AutoCompletionEvent} of the appropriate type. * - * @param visible Whether the window should be made visible or hidden. + * @param visible + * Whether the window should be made visible or hidden. * @see #isPopupVisible() */ protected void setPopupVisible(boolean visible) { - if (visible!=popupWindow.isVisible()) { + if (visible != popupWindow.isVisible()) { popupWindow.setVisible(visible); } } - - + /** * Sets whether the "description window" should be shown beside the * completion window. * - * @param show Whether to show the description window. + * @param show + * Whether to show the description window. * @see #getShowDescWindow() */ public void setShowDescWindow(boolean show) { hidePopupWindow(); // Needed to force it to take effect showDescWindow = show; } - - + /** * Sets the keystroke that should be used to trigger the auto-complete popup * window. * - * @param ks The keystroke. - * @throws IllegalArgumentException If ks is null. + * @param ks + * The keystroke. + * @throws IllegalArgumentException + * If ks is null. * @see #getTriggerKey() */ public void setTriggerKey(KeyStroke ks) { @@ -1141,21 +1076,19 @@ public class AutoCompletion { trigger = ks; } } - - + /** * Displays a "tool tip" detailing the inputs to the function just entered. * - * @param pc The completion. - * @param typedParamListStartChar Whether the parameterized completion list - * starting character was typed. + * @param pc + * The completion. + * @param typedParamListStartChar + * Whether the parameterized completion list + * starting character was typed. */ - private void startParameterizedCompletionAssistance( - ParameterizedCompletion pc, boolean typedParamListStartChar) { - + private void startParameterizedCompletionAssistance(ParameterizedCompletion pc, boolean typedParamListStartChar) { // Get rid of the previous tool tip window, if there is one. hideParameterCompletionPopups(); - // Don't bother with a tool tip if there are no parameters, but if // they typed e.g. the opening '(', make them overtype the ')'. if (pc.getParamCount() == 0 && !(pc instanceof TemplateCompletion)) { @@ -1164,25 +1097,19 @@ public class AutoCompletion { String text = end == '\0' ? "" : Character.toString(end); if (typedParamListStartChar) { String template = "${}" + text + "${cursor}"; - textComponent.replaceSelection(Character.toString(p - .getParameterListStart())); - TemplateCompletion tc = new TemplateCompletion(p, null, null, - template); + textComponent.replaceSelection(Character.toString(p.getParameterListStart())); + TemplateCompletion tc = new TemplateCompletion(p, null, null, template); pc = tc; - } - else { + } else { text = p.getParameterListStart() + text; textComponent.replaceSelection(text); return; } } - pcc = new ParameterizedCompletionContext(parentWindow, this, pc); pcc.activate(); - } - - + /** * Uninstalls this auto-completion from its text component. If it is not * installed on any text component, nothing happens. @@ -1190,13 +1117,9 @@ public class AutoCompletion { * @see #install(JTextComponent) */ public void uninstall() { - if (textComponent != null) { - hidePopupWindow(); // Unregisters listeners, actions, etc. - uninstallTriggerKey(); - // Uninstall the function completion key. char start = provider.getParameterListStart(); if (start != 0) { @@ -1206,27 +1129,20 @@ public class AutoCompletion { ActionMap am = textComponent.getActionMap(); am.put(PARAM_COMPLETE_KEY, oldParenAction); } - textComponentListener.removeFrom(textComponent); if (parentWindow != null) { parentWindowListener.removeFrom(parentWindow); } - if (isAutoActivationEnabled()) { autoActivationListener.removeFrom(textComponent); } - UIManager.removePropertyChangeListener(lafListener); - textComponent = null; popupWindowListener.uninstall(popupWindow); popupWindow = null; - } - } - - + /** * Replaces the "trigger key" action with the one that was there before * auto-completion was installed. @@ -1239,8 +1155,7 @@ public class AutoCompletion { ActionMap am = textComponent.getActionMap(); am.put(PARAM_TRIGGER_KEY, oldTriggerAction); } - - + /** * Updates the LookAndFeel of the popup window. Applications can call this * method as appropriate if they support changing the LookAndFeel at @@ -1258,72 +1173,67 @@ public class AutoCompletion { ((JComponent) paramChoicesRenderer).updateUI(); } } - + /** * Listens for events in the text component to auto-activate the code * completion popup. */ - private class AutoActivationListener extends FocusAdapter implements - DocumentListener, CaretListener, ActionListener { - + private class AutoActivationListener extends FocusAdapter implements DocumentListener, CaretListener, ActionListener { + private Timer timer; private boolean justInserted; - + public AutoActivationListener() { timer = new Timer(200, this); timer.setRepeats(false); } - + @Override public void actionPerformed(ActionEvent e) { doCompletion(); } - + public void addTo(JTextComponent tc) { tc.addFocusListener(this); tc.getDocument().addDocumentListener(this); tc.addCaretListener(this); } - + @Override public void caretUpdate(CaretEvent e) { if (justInserted) { justInserted = false; - } - else { + } else { timer.stop(); } } - + @Override public void changedUpdate(DocumentEvent e) { // Ignore } - + @Override public void focusLost(FocusEvent e) { timer.stop(); // hideChildWindows(); Other listener will do this } - + @Override public void insertUpdate(DocumentEvent e) { justInserted = false; - if (isAutoCompleteEnabled() && isAutoActivationEnabled() - && e.getLength() == 1) { + if (isAutoCompleteEnabled() && isAutoActivationEnabled() && e.getLength() == 1) { if (provider.isAutoActivateOkay(textComponent)) { timer.restart(); justInserted = true; - } - else { + } else { timer.stop(); } - } - else { + } else { timer.stop(); } } - + public void removeFrom(JTextComponent tc) { tc.removeFocusListener(this); tc.getDocument().removeDocumentListener(this); @@ -1331,38 +1241,35 @@ public class AutoCompletion { timer.stop(); justInserted = false; } - + @Override public void removeUpdate(DocumentEvent e) { timer.stop(); } - } - + /** * The Action that displays the popup window if auto-completion * is enabled. */ protected class AutoCompleteAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { if (isAutoCompleteEnabled()) { refreshPopupWindow(); - } - else if (oldTriggerAction != null) { + } else if (oldTriggerAction != null) { oldTriggerAction.actionPerformed(e); } } - } - + /** * Listens for LookAndFeel changes and updates the various popup windows * involved in auto-completion accordingly. */ private class LookAndFeelChangeListener implements PropertyChangeListener { - + @Override public void propertyChange(PropertyChangeEvent e) { String name = e.getPropertyName(); @@ -1370,126 +1277,112 @@ public class AutoCompletion { updateUI(); } } - } - + /** * Action that starts a parameterized completion, e.g. after '(' is typed. */ private class ParameterizedCompletionStartAction extends AbstractAction { - + private String start; - - + public ParameterizedCompletionStartAction(char ch) { this.start = Character.toString(ch); } - + @Override public void actionPerformed(ActionEvent e) { - // Prevents keystrokes from messing up boolean wasVisible = hidePopupWindow(); - // Only proceed if they were selecting a completion if (!wasVisible || !isParameterAssistanceEnabled()) { textComponent.replaceSelection(start); return; } - Completion c = popupWindow.getSelection(); if (c instanceof ParameterizedCompletion) { // Should always be true // Fixes capitalization of the entered text. insertCompletion(c, true); } - } - } - + /** * Listens for events in the parent window of the text component with * auto-completion enabled. */ - private class ParentWindowListener extends ComponentAdapter implements - WindowFocusListener { - + private class ParentWindowListener extends ComponentAdapter implements WindowFocusListener { + public void addTo(Window w) { w.addComponentListener(this); w.addWindowFocusListener(this); } - + @Override public void componentHidden(ComponentEvent e) { hideChildWindows(); } - + @Override public void componentMoved(ComponentEvent e) { hideChildWindows(); } - + @Override public void componentResized(ComponentEvent e) { hideChildWindows(); } - + public void removeFrom(Window w) { w.removeComponentListener(this); w.removeWindowFocusListener(this); } - + @Override - public void windowGainedFocus(WindowEvent e) { - } - + public void windowGainedFocus(WindowEvent e) {} + @Override public void windowLostFocus(WindowEvent e) { hideChildWindows(); } - } - - + /** * Listens for events from the popup window. */ private class PopupWindowListener extends ComponentAdapter { - + @Override public void componentHidden(ComponentEvent e) { fireAutoCompletionEvent(AutoCompletionEvent.Type.POPUP_HIDDEN); } - + @Override public void componentShown(ComponentEvent e) { fireAutoCompletionEvent(AutoCompletionEvent.Type.POPUP_SHOWN); } - + public void install(AutoCompletePopupWindow popupWindow) { popupWindow.addComponentListener(this); } - + public void uninstall(AutoCompletePopupWindow popupWindow) { - if (popupWindow!=null) { + if (popupWindow != null) { popupWindow.removeComponentListener(this); } } - } - - + /** * Listens for events from the text component we're installed on. */ - private class TextComponentListener extends FocusAdapter implements - HierarchyListener { - + private class TextComponentListener extends FocusAdapter implements HierarchyListener { + void addTo(JTextComponent tc) { tc.addFocusListener(this); tc.addHierarchyListener(this); } - + /** * Hide the auto-completion windows when the text component loses focus. */ @@ -1497,20 +1390,19 @@ public class AutoCompletion { public void focusLost(FocusEvent e) { hideChildWindows(); } - + /** * Called when the component hierarchy for our text component changes. * When the text component is added to a new {@link Window}, this method * registers listeners on that Window. * - * @param e The event. + * @param e + * The event. */ @Override public void hierarchyChanged(HierarchyEvent e) { - // NOTE: e many be null as we call this method at other times. // System.out.println("Hierarchy changed! " + e); - Window oldParentWindow = parentWindow; parentWindow = SwingUtilities.getWindowAncestor(textComponent); if (parentWindow != oldParentWindow) { @@ -1521,15 +1413,11 @@ public class AutoCompletion { parentWindowListener.addTo(parentWindow); } } - } - + public void removeFrom(JTextComponent tc) { tc.removeFocusListener(this); tc.removeHierarchyListener(this); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/AutoCompletionEvent.java b/src/org/fife/ui/autocomplete/AutoCompletionEvent.java index e70fcf4..43f0bc3 100644 --- a/src/org/fife/ui/autocomplete/AutoCompletionEvent.java +++ b/src/org/fife/ui/autocomplete/AutoCompletionEvent.java @@ -1,16 +1,14 @@ /* * 02/08/2014 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.util.EventObject; - /** - * An event fired by an instance of {@link AutoCompletion}. This can be + * An event fired by an instance of {@link AutoCompletion}. This can be * used by applications that wish to be notified of the auto-complete popup * window showing and hiding. * @@ -18,37 +16,36 @@ import java.util.EventObject; * @version 1.0 */ public class AutoCompletionEvent extends EventObject { - + /** * The type of this event. */ private Type type; - - + /** * Constructor. * - * @param source The AutoCompletion instance that fired - * this event. - * @param type The event type. + * @param source + * The AutoCompletion instance that fired + * this event. + * @param type + * The event type. */ public AutoCompletionEvent(AutoCompletion source, Type type) { super(source); this.type = type; } - - + /** - * Returns the source AutoCompletion instance. This is just + * Returns the source AutoCompletion instance. This is just * shorthand for return (AutoCompletion)getSource();. * * @return The source AutoCompletion instance. */ public AutoCompletion getAutoCompletion() { - return (AutoCompletion)getSource(); + return (AutoCompletion) getSource(); } - - + /** * Returns the type of this event. * @@ -57,15 +54,11 @@ public class AutoCompletionEvent extends EventObject { public Type getEventType() { return type; } - - + /** * Enumeration of the various types of this event. */ public static enum Type { - POPUP_SHOWN, - POPUP_HIDDEN + POPUP_SHOWN, POPUP_HIDDEN } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/AutoCompletionListener.java b/src/org/fife/ui/autocomplete/AutoCompletionListener.java index 2619f33..11fc662 100644 --- a/src/org/fife/ui/autocomplete/AutoCompletionListener.java +++ b/src/org/fife/ui/autocomplete/AutoCompletionListener.java @@ -1,14 +1,12 @@ /* * 02/08/2014 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.util.EventListener; - /** * An interface that allows listening for interesting events from an * {@link AutoCompletion}. @@ -17,15 +15,13 @@ import java.util.EventListener; * @version 1.0 */ public interface AutoCompletionListener extends EventListener { - - + /** * Callback notified when a change to the AutoCompletion's * status occurs. * - * @param e The event. + * @param e + * The event. */ void autoCompleteUpdate(AutoCompletionEvent e); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/AutoCompletionStyleContext.java b/src/org/fife/ui/autocomplete/AutoCompletionStyleContext.java index 5b85a65..9d92938 100644 --- a/src/org/fife/ui/autocomplete/AutoCompletionStyleContext.java +++ b/src/org/fife/ui/autocomplete/AutoCompletionStyleContext.java @@ -1,16 +1,13 @@ /* * 06/24/2012 - * * AutoCompletionStyleContext.java - Manages styles related to auto-completion. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.awt.Color; - /** * Manages the colors shared across the library. * @@ -18,33 +15,29 @@ import java.awt.Color; * @version 1.0 */ public class AutoCompletionStyleContext { - + /** * The color used to denote the ending caret position for parameterized * completions. */ private Color parameterizedCompletionCursorPositionColor; - /** * The color used to highlight copies of editable parameters in * parameterized completions. */ private Color parameterCopyColor; - /** * The color of the outline highlight used to denote editable parameters * in parameterized completions. */ private Color parameterOutlineColor; - - + public AutoCompletionStyleContext() { setParameterOutlineColor(Color.gray); setParameterCopyColor(new Color(0xb4d7ff)); setParameterizedCompletionCursorPositionColor(new Color(0x00b400)); } - - + /** * Returns the color of the highlight painted on copies of editable * parameters in parameterized completions. @@ -55,7 +48,6 @@ public class AutoCompletionStyleContext { public Color getParameterCopyColor() { return parameterCopyColor; } - /** * Returns the color used to denote the ending caret position for @@ -67,8 +59,7 @@ public class AutoCompletionStyleContext { public Color getParameterizedCompletionCursorPositionColor() { return parameterizedCompletionCursorPositionColor; } - - + /** * Returns the color of the outline highlight used to denote editable * parameters in parameterized completions. @@ -79,42 +70,40 @@ public class AutoCompletionStyleContext { public Color getParameterOutlineColor() { return parameterOutlineColor; } - - + /** * Sets the color of the highlight painted on copies of editable * parameters in parameterized completions. * - * @param color The color to use. + * @param color + * The color to use. * @see #setParameterCopyColor(Color) */ public void setParameterCopyColor(Color color) { this.parameterCopyColor = color; } - - + /** * Sets the color used to denote the ending caret position for * parameterized completions. * - * @param color The color to use. + * @param color + * The color to use. * @see #getParameterizedCompletionCursorPositionColor() */ public void setParameterizedCompletionCursorPositionColor(Color color) { this.parameterizedCompletionCursorPositionColor = color; } - - + /** * Sets the color of the outline highlight used to denote editable * parameters in parameterized completions. * - * @param color The color to use. + * @param color + * The color to use. * @see #getParameterOutlineColor() */ public void setParameterOutlineColor(Color color) { this.parameterOutlineColor = color; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/BasicCompletion.java b/src/org/fife/ui/autocomplete/BasicCompletion.java index d98fa09..8a5366b 100644 --- a/src/org/fife/ui/autocomplete/BasicCompletion.java +++ b/src/org/fife/ui/autocomplete/BasicCompletion.java @@ -1,77 +1,80 @@ /* * 01/03/2009 - * * BasicCompletion.java - A straightforward Completion implementation. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; - /** - * A straightforward {@link Completion} implementation. This implementation + * A straightforward {@link Completion} implementation. This implementation * can be used if you have a relatively short number of static completions - * with no (or short) summaries.

+ * with no (or short) summaries. + *

* - * This implementation uses the replacement text as the input text. It also + * This implementation uses the replacement text as the input text. It also * includes a "short description" field, which (if non-null), is - * used in the completion choices list. + * used in the completion choices list. * * @author Robert Futrell * @version 1.0 */ public class BasicCompletion extends AbstractCompletion { - + private String replacementText; private String shortDesc; private String summary; - - + /** * Constructor. * - * @param provider The parent completion provider. - * @param replacementText The text to replace. + * @param provider + * The parent completion provider. + * @param replacementText + * The text to replace. */ - public BasicCompletion(CompletionProvider provider, String replacementText){ + public BasicCompletion(CompletionProvider provider, String replacementText) { this(provider, replacementText, null); } - - + /** * Constructor. * - * @param provider The parent completion provider. - * @param replacementText The text to replace. - * @param shortDesc A short description of the completion. This will be - * displayed in the completion list. This may be null. + * @param provider + * The parent completion provider. + * @param replacementText + * The text to replace. + * @param shortDesc + * A short description of the completion. This will be + * displayed in the completion list. This may be + * null. */ - public BasicCompletion(CompletionProvider provider, String replacementText, - String shortDesc) { + public BasicCompletion(CompletionProvider provider, String replacementText, String shortDesc) { this(provider, replacementText, shortDesc, null); } - - + /** * Constructor. * - * @param provider The parent completion provider. - * @param replacementText The text to replace. - * @param shortDesc A short description of the completion. This will be - * displayed in the completion list. This may be null. - * @param summary The summary of this completion. This should be HTML. - * This may be null. + * @param provider + * The parent completion provider. + * @param replacementText + * The text to replace. + * @param shortDesc + * A short description of the completion. This will be + * displayed in the completion list. This may be + * null. + * @param summary + * The summary of this completion. This should be HTML. + * This may be null. */ - public BasicCompletion(CompletionProvider provider, String replacementText, - String shortDesc, String summary) { + public BasicCompletion(CompletionProvider provider, String replacementText, String shortDesc, String summary) { super(provider); this.replacementText = replacementText; this.shortDesc = shortDesc; this.summary = summary; } - - + /** * {@inheritDoc} */ @@ -79,8 +82,7 @@ public class BasicCompletion extends AbstractCompletion { public String getReplacementText() { return replacementText; } - - + /** * Returns the short description of this completion, usually used in * the completion choices list. @@ -91,8 +93,7 @@ public class BasicCompletion extends AbstractCompletion { public String getShortDescription() { return shortDesc; } - - + /** * {@inheritDoc} */ @@ -100,32 +101,31 @@ public class BasicCompletion extends AbstractCompletion { public String getSummary() { return summary; } - - + /** * Sets the short description of this completion. * - * @param shortDesc The short description of this completion. + * @param shortDesc + * The short description of this completion. * @see #getShortDescription() */ public void setShortDescription(String shortDesc) { this.shortDesc = shortDesc; } - - + /** * Sets the summary for this completion. * - * @param summary The summary for this completion. + * @param summary + * The summary for this completion. * @see #getSummary() */ public void setSummary(String summary) { this.summary = summary; } - - + /** - * Returns a string representation of this completion. If the short + * Returns a string representation of this completion. If the short * description is not null, this method will return: * * getInputText() + " - " + shortDesc @@ -136,11 +136,9 @@ public class BasicCompletion extends AbstractCompletion { */ @Override public String toString() { - if (shortDesc==null) { + if (shortDesc == null) { return getInputText(); } return getInputText() + " - " + shortDesc; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/Completion.java b/src/org/fife/ui/autocomplete/Completion.java index 1fce8a2..eed1adb 100644 --- a/src/org/fife/ui/autocomplete/Completion.java +++ b/src/org/fife/ui/autocomplete/Completion.java @@ -1,9 +1,7 @@ /* * 12/21/2008 - * * Completion.java - Represents a single completion choice. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -11,25 +9,24 @@ package org.fife.ui.autocomplete; import javax.swing.Icon; import javax.swing.text.JTextComponent; - /** - * Represents a completion choice. A {@link CompletionProvider} returns lists - * of objects implementing this interface. A Completion contains the + * Represents a completion choice. A {@link CompletionProvider} returns lists + * of objects implementing this interface. A Completion contains the * following information: * *

    - *
  • The text the user must (begin to) input for this to be a completion - * choice. - *
  • The text that will be filled in if the user chooses this completion. - * Note that often, this is the same as the text the user must (begin to) - * enter, but this doesn't have to be the case. - *
  • Summary HTML that describes this completion. This is information that - * can be displayed in a helper "tooltip"-style window beside the - * completion list. This may be null. It may also be - * lazily generated to cut down on memory usage. - *
  • The CompletionProvider that returned this completion. - *
  • Tool tip text that can be displayed when a mouse hovers over this - * completion in a text component. + *
  • The text the user must (begin to) input for this to be a completion + * choice. + *
  • The text that will be filled in if the user chooses this completion. + * Note that often, this is the same as the text the user must (begin to) + * enter, but this doesn't have to be the case. + *
  • Summary HTML that describes this completion. This is information that + * can be displayed in a helper "tooltip"-style window beside the + * completion list. This may be null. It may also be + * lazily generated to cut down on memory usage. + *
  • The CompletionProvider that returned this completion. + *
  • Tool tip text that can be displayed when a mouse hovers over this + * completion in a text component. *
* * @author Robert Futrell @@ -37,43 +34,42 @@ import javax.swing.text.JTextComponent; * @see AbstractCompletion */ public interface Completion extends Comparable { - - + /** * Compares this completion to another one lexicographically, ignoring * case. * - * @param other Another completion instance. + * @param other + * Another completion instance. * @return How this completion compares to the other one. */ @Override public int compareTo(Completion other); - - + /** * Returns the portion of this completion that has already been entered - * into the text component. The match is case-insensitive.

+ * into the text component. The match is case-insensitive. + *

* * This is a convenience method for: * getProvider().getAlreadyEnteredText(comp). * - * @param comp The text component. + * @param comp + * The text component. * @return The already-entered portion of this completion. */ public String getAlreadyEntered(JTextComponent comp); - - + /** * Returns the icon to use for this completion. * * @return The icon, or null for none. */ public Icon getIcon(); - - + /** * Returns the text that the user has to (start) typing for this completion - * to be offered. Note that this will usually be the same value as + * to be offered. Note that this will usually be the same value as * {@link #getReplacementText()}, but not always (a completion could be * a way to implement shorthand, for example, "sysout" mapping * to "System.out.println("). @@ -83,35 +79,33 @@ public interface Completion extends Comparable { * @see #getReplacementText() */ public String getInputText(); - - + /** * Returns the provider that returned this completion. * * @return The provider. */ public CompletionProvider getProvider(); - - + /** - * Returns the "relevance" of this completion. This is used when sorting - * completions by their relevance. It is an abstract concept that may + * Returns the "relevance" of this completion. This is used when sorting + * completions by their relevance. It is an abstract concept that may * mean different things to different languages, and may depend on the - * context of the completion.

+ * context of the completion. + *

* - * By default, all completions have a relevance of 0. The + * By default, all completions have a relevance of 0. The * higher the value returned by this method, the higher up in the list * this completion will be; the lower the value returned, the lower it will - * be. Completions with equal relevance values will be + * be. Completions with equal relevance values will be * sorted alphabetically. * * @return The relevance of this completion. */ public int getRelevance(); - - + /** - * Returns the text to insert as the result of this auto-completion. This + * Returns the text to insert as the result of this auto-completion. This * is the "complete" text, including any text that replaces what the user * has already typed. * @@ -119,27 +113,26 @@ public interface Completion extends Comparable { * @see #getInputText() */ public String getReplacementText(); - - + /** - * Returns the description of this auto-complete choice. This can be + * Returns the description of this auto-complete choice. This can be * used in a popup "description window." * - * @return This item's description. This should be HTML. It may be + * @return This item's description. This should be HTML. It may be * null if there is no description for this * completion. */ public String getSummary(); - - + /** * Returns the tool tip text to display for mouse hovers over this - * completion.

+ * completion. + *

* * Note that for this functionality to be enabled, a * JTextComponent must be registered with the * ToolTipManager, and the text component must know to search - * for this value. In the case of an + * for this value. In the case of an * RSyntaxTextArea, this * can be done with a org.fife.ui.rtextarea.ToolTipSupplier that * calls into @@ -149,6 +142,4 @@ public interface Completion extends Comparable { * none. */ public String getToolTipText(); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/CompletionCellRenderer.java b/src/org/fife/ui/autocomplete/CompletionCellRenderer.java index e29f28c..b26009d 100644 --- a/src/org/fife/ui/autocomplete/CompletionCellRenderer.java +++ b/src/org/fife/ui/autocomplete/CompletionCellRenderer.java @@ -1,10 +1,8 @@ /* * 12/23/2008 - * * CompletionCellRenderer.java - Cell renderer that can render the standard * completion types like Eclipse or NetBeans does. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -26,113 +24,98 @@ import javax.swing.SwingUtilities; import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.View; - /** * A cell renderer that adds some pizazz when rendering the standard - * {@link Completion} types, like Eclipse and NetBeans do. Specifically, - * this renderer handles: + * {@link Completion} types, like Eclipse and NetBeans do. Specifically, + * this renderer handles: * *

    - *
  • {@link FunctionCompletion}s
  • - *
  • {@link VariableCompletion}s
  • - *
  • {@link MarkupTagCompletion}s
  • - *
  • {@link ShorthandCompletion}s
  • - *
  • {@link TemplateCompletion}s
  • + *
  • {@link FunctionCompletion}s
  • + *
  • {@link VariableCompletion}s
  • + *
  • {@link MarkupTagCompletion}s
  • + *
  • {@link ShorthandCompletion}s
  • + *
  • {@link TemplateCompletion}s
  • *
* * @author Robert Futrell * @version 1.0 */ public class CompletionCellRenderer extends DefaultListCellRenderer { - + /** * The alternating background color, or null if alternating * row colors should not be used. */ private static Color altBG; - /** * The font to use when rendering items, or null if the * list's default font should be used. */ private Font font; - /** * Whether to display the types of fields and return types of functions * in the completion text. */ private boolean showTypes; - /** * The color to use when rendering types in completion text. */ private String typeColor; - /** * During rendering, whether the item being rendered is selected. */ private boolean selected; - /** * During rendering, this is the "real" background color of the item being * rendered (i.e., what its background color is if it isn't selected). */ private Color realBG; - /** * The color to use for function arguments. */ private String paramColor; - /** * An icon to use when no appropriate icon is found. */ private Icon emptyIcon; - /** * Used in rendering calculations. */ private Rectangle paintTextR; - /** * An optional delegate renderer (primarily for Substance). */ private DefaultListCellRenderer delegate; - - private static final String SUBSTANCE_RENDERER_CLASS_NAME = - "org.pushingpixels.substance.api.renderers.SubstanceDefaultListCellRenderer"; - + private static final String SUBSTANCE_RENDERER_CLASS_NAME = "org.pushingpixels.substance.api.renderers.SubstanceDefaultListCellRenderer"; /** * Keeps the HTML descriptions from "wrapping" in the list, which cuts off * words. */ private static final String PREFIX = ""; - - + /** * Constructor. */ public CompletionCellRenderer() { init(); } - - + /** - * Constructor. This is primarily a hook for Substance, or any other + * Constructor. This is primarily a hook for Substance, or any other * Look and Feel whose renderers look drastically different than standard - * DefaultListCellRenderers. Everything except for the text - * rendering will be done by the delegate. In almost all scenarios, you + * DefaultListCellRenderers. Everything except for the text + * rendering will be done by the delegate. In almost all scenarios, you * will want to use the no-argument constructor instead of this one. * - * @param delegate The delegate renderer. + * @param delegate + * The delegate renderer. * @see #delegateToSubstanceRenderer() */ public CompletionCellRenderer(DefaultListCellRenderer delegate) { setDelegateRenderer(delegate); init(); } - - + /** * Creates the icon to use if no icon is found for a specific completion. * The default implementation returns a 16x16 empty icon. @@ -143,8 +126,7 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { protected Icon createEmptyIcon() { return new EmptyIcon(16); } - - + /** * Returns a decent "parameter" color based on the current default * foreground color. @@ -152,11 +134,9 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { * @return The parameter color to use. */ private String createParamColor() { - return Util.isLightForeground(getForeground()) ? - Util.getHexString(Util.getHyperlinkForeground()): "#aa0077"; + return Util.isLightForeground(getForeground()) ? Util.getHexString(Util.getHyperlinkForeground()) : "#aa0077"; } - - + /** * Returns a decent "type" color based on the current default foreground * color. @@ -166,37 +146,34 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { private String createTypeColor() { return "#808080"; } - - + /** - * Attempts to delegate rendering to a Substance cell renderer. This + * Attempts to delegate rendering to a Substance cell renderer. This * should only be called if Substance is known to be on the classpath. * - * @throws Exception If Substance is not on the classpath, or some other - * error occurs creating the Substance cell renderer. + * @throws Exception + * If Substance is not on the classpath, or some other + * error occurs creating the Substance cell renderer. * @see Util#getUseSubstanceRenderers() * @see #setDelegateRenderer(DefaultListCellRenderer) */ public void delegateToSubstanceRenderer() throws Exception { Class clazz = Class.forName(SUBSTANCE_RENDERER_CLASS_NAME); - DefaultListCellRenderer delegate = - (DefaultListCellRenderer)clazz.newInstance(); + DefaultListCellRenderer delegate = (DefaultListCellRenderer) clazz.newInstance(); setDelegateRenderer(delegate); } - - + /** * Returns the background color to use on alternating lines. * - * @return The alternate background color. If this is null, + * @return The alternate background color. If this is null, * alternating colors are not used. * @see #setAlternateBackground(Color) */ public static Color getAlternateBackground() { return altBG; } - - + /** * Returns the delegate renderer, or null if there is none. * @@ -206,20 +183,18 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { public DefaultListCellRenderer getDelegateRenderer() { return delegate; } - - + /** * Returns the font used when rendering completions. * - * @return The font. If this is null, then the default list + * @return The font. If this is null, then the default list * font is used. * @see #setDisplayFont(Font) */ public Font getDisplayFont() { return font; } - - + /** * Returns the icon to use if no icon is found for a specific completion. * This icon is lazily created if necessary. @@ -228,23 +203,23 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { * @see #createEmptyIcon() */ protected Icon getEmptyIcon() { - if (emptyIcon==null) { + if (emptyIcon == null) { emptyIcon = createEmptyIcon(); } return emptyIcon; } - - + /** * Returns an icon. * - * @param resource The icon to retrieve. This should either be a file, - * or a resource loadable by the current ClassLoader. + * @param resource + * The icon to retrieve. This should either be a file, + * or a resource loadable by the current ClassLoader. * @return The icon. */ protected Icon getIcon(String resource) { URL url = getClass().getResource(resource); - if (url==null) { + if (url == null) { File file = new File(resource); try { url = file.toURI().toURL(); @@ -252,72 +227,62 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { mue.printStackTrace(); // Never happens } } - return url!=null ? new ImageIcon(url) : null; + return url != null ? new ImageIcon(url) : null; } - - + /** * Returns the renderer. * - * @param list The list of choices being rendered. - * @param value The {@link Completion} being rendered. - * @param index The index into list being rendered. - * @param selected Whether the item is selected. - * @param hasFocus Whether the item has focus. + * @param list + * The list of choices being rendered. + * @param value + * The {@link Completion} being rendered. + * @param index + * The index into list being rendered. + * @param selected + * Whether the item is selected. + * @param hasFocus + * Whether the item has focus. */ @Override - public Component getListCellRendererComponent(JList list, Object value, - int index, boolean selected, boolean hasFocus) { - - super.getListCellRendererComponent(list,value,index,selected,hasFocus); - if (font!=null) { + public Component getListCellRendererComponent(JList list, Object value, int index, boolean selected, boolean hasFocus) { + super.getListCellRendererComponent(list, value, index, selected, hasFocus); + if (font != null) { setFont(font); // Overrides super's setFont(list.getFont()). } this.selected = selected; - this.realBG = altBG!=null && (index&1)==1 ? altBG : list.getBackground(); - - Completion c = (Completion)value; + this.realBG = altBG != null && (index & 1) == 1 ? altBG : list.getBackground(); + Completion c = (Completion) value; setIcon(c.getIcon()); - if (c instanceof FunctionCompletion) { - FunctionCompletion fc = (FunctionCompletion)value; + FunctionCompletion fc = (FunctionCompletion) value; prepareForFunctionCompletion(list, fc, index, selected, hasFocus); - } - else if (c instanceof VariableCompletion) { - VariableCompletion vc = (VariableCompletion)value; + } else if (c instanceof VariableCompletion) { + VariableCompletion vc = (VariableCompletion) value; prepareForVariableCompletion(list, vc, index, selected, hasFocus); - } - else if (c instanceof TemplateCompletion) { - TemplateCompletion tc = (TemplateCompletion)value; + } else if (c instanceof TemplateCompletion) { + TemplateCompletion tc = (TemplateCompletion) value; prepareForTemplateCompletion(list, tc, index, selected, hasFocus); - } - else if (c instanceof MarkupTagCompletion) { - MarkupTagCompletion mtc = (MarkupTagCompletion)value; + } else if (c instanceof MarkupTagCompletion) { + MarkupTagCompletion mtc = (MarkupTagCompletion) value; prepareForMarkupTagCompletion(list, mtc, index, selected, hasFocus); - } - else { + } else { prepareForOtherCompletion(list, c, index, selected, hasFocus); } - // A delegate renderer might do its own alternate row striping // (Substance does). - if (delegate!=null) { - delegate.getListCellRendererComponent(list, getText(), index, - selected, hasFocus); + if (delegate != null) { + delegate.getListCellRendererComponent(list, getText(), index, selected, hasFocus); delegate.setFont(getFont()); delegate.setIcon(getIcon()); return delegate; } - - if (!selected && (index&1)==1 && altBG!=null) { + if (!selected && (index & 1) == 1 && altBG != null) { setBackground(altBG); } - return this; - } - - + /** * Returns whether the types of fields and return types of methods are * shown in the completion text. @@ -328,90 +293,83 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { public boolean getShowTypes() { return showTypes; } - - + private void init() { - //setDisplayFont(new Font("Monospaced", Font.PLAIN, 12)); + // setDisplayFont(new Font("Monospaced", Font.PLAIN, 12)); setShowTypes(true); typeColor = createTypeColor(); paramColor = createParamColor(); paintTextR = new Rectangle(); } - - + @Override protected void paintComponent(Graphics g) { - - //super.paintComponent(g); - + // super.paintComponent(g); g.setColor(realBG); int iconW = 0; - if (getIcon()!=null) { + if (getIcon() != null) { iconW = getIcon().getIconWidth(); } - if (selected && iconW>0) { // The icon area is never in the "selection" + if (selected && iconW > 0) { // The icon area is never in the + // "selection" g.fillRect(0, 0, iconW, getHeight()); g.setColor(getBackground()); - g.fillRect(iconW,0, getWidth()-iconW,getHeight()); - } - else { + g.fillRect(iconW, 0, getWidth() - iconW, getHeight()); + } else { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); } - if (getIcon()!=null) { + if (getIcon() != null) { getIcon().paintIcon(this, g, 0, 0); } - String text = getText(); if (text != null) { - paintTextR.setBounds(iconW,0, getWidth()-iconW,getHeight()); + paintTextR.setBounds(iconW, 0, getWidth() - iconW, getHeight()); paintTextR.x += 3; // Force a slight margin int space = paintTextR.height - g.getFontMetrics().getHeight(); - View v = (View)getClientProperty(BasicHTML.propertyKey); + View v = (View) getClientProperty(BasicHTML.propertyKey); if (v != null) { // HTML rendering doesn't auto-center vertically, for some // reason - paintTextR.y += space/2; + paintTextR.y += space / 2; paintTextR.height -= space; v.paint(g, paintTextR); - } - else { + } else { int textX = paintTextR.x; int textY = paintTextR.y;// + g.getFontMetrics().getAscent(); - //System.out.println(g.getFontMetrics().getAscent()); + // System.out.println(g.getFontMetrics().getAscent()); g.drawString(text, textX, textY); } } - } - - + /** - * Prepares this renderer to display a function completion. + * Prepares this renderer to display a function completion. * - * @param list The list of choices being rendered. - * @param fc The completion to render. - * @param index The index into list being rendered. - * @param selected Whether the item is selected. - * @param hasFocus Whether the item has focus. + * @param list + * The list of choices being rendered. + * @param fc + * The completion to render. + * @param index + * The index into list being rendered. + * @param selected + * Whether the item is selected. + * @param hasFocus + * Whether the item has focus. */ - protected void prepareForFunctionCompletion(JList list, - FunctionCompletion fc, int index, boolean selected, boolean hasFocus) { - + protected void prepareForFunctionCompletion(JList list, FunctionCompletion fc, int index, boolean selected, boolean hasFocus) { StringBuilder sb = new StringBuilder(PREFIX); sb.append(fc.getName()); - char paramListStart = fc.getProvider().getParameterListStart(); - if (paramListStart!=0) { // 0 => no start char + if (paramListStart != 0) { // 0 => no start char sb.append(paramListStart); } - int paramCount = fc.getParamCount(); - for (int i=0; i"); } @@ -419,24 +377,22 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { if (!selected) { sb.append(""); } - if (name!=null) { + if (name != null) { sb.append(' '); } } - if (name!=null) { + if (name != null) { sb.append(name); } - if (i No parameter list end char + if (paramListEnd != 0) { // 0 => No parameter list end char sb.append(paramListEnd); } - - if (getShowTypes() && fc.getType()!=null) { + if (getShowTypes() && fc.getType() != null) { sb.append(" : "); if (!selected) { sb.append(""); @@ -446,51 +402,50 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { sb.append(""); } } - setText(sb.toString()); - } - - + /** * Prepares this renderer to display a markup tag completion. * - * @param list The list of choices being rendered. - * @param mc The completion to render. - * @param index The index into list being rendered. - * @param selected Whether the item is selected. - * @param hasFocus Whether the item has focus. + * @param list + * The list of choices being rendered. + * @param mc + * The completion to render. + * @param index + * The index into list being rendered. + * @param selected + * Whether the item is selected. + * @param hasFocus + * Whether the item has focus. */ - protected void prepareForMarkupTagCompletion(JList list, - MarkupTagCompletion mc, int index, boolean selected, boolean hasFocus) { - + protected void prepareForMarkupTagCompletion(JList list, MarkupTagCompletion mc, int index, boolean selected, boolean hasFocus) { StringBuilder sb = new StringBuilder(PREFIX); sb.append(mc.getName()); - setText(sb.toString()); - } - - + /** * Prepares this renderer to display a completion not specifically handled * elsewhere. * - * @param list The list of choices being rendered. - * @param c The completion to render. - * @param index The index into list being rendered. - * @param selected Whether the item is selected. - * @param hasFocus Whether the item has focus. + * @param list + * The list of choices being rendered. + * @param c + * The completion to render. + * @param index + * The index into list being rendered. + * @param selected + * Whether the item is selected. + * @param hasFocus + * Whether the item has focus. */ - protected void prepareForOtherCompletion(JList list, - Completion c, int index, boolean selected, boolean hasFocus) { - + protected void prepareForOtherCompletion(JList list, Completion c, int index, boolean selected, boolean hasFocus) { StringBuilder sb = new StringBuilder(PREFIX); sb.append(c.getInputText()); - if (c instanceof BasicCompletion) { - String definition = ((BasicCompletion)c).getShortDescription(); - if (definition!=null) { + String definition = ((BasicCompletion) c).getShortDescription(); + if (definition != null) { sb.append(" - "); if (!selected) { sb.append(""); @@ -501,29 +456,28 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { } } } - setText(sb.toString()); - } - - + /** * Prepares this renderer to display a template completion. * - * @param list The list of choices being rendered. - * @param tc The completion to render. - * @param index The index into list being rendered. - * @param selected Whether the item is selected. - * @param hasFocus Whether the item has focus. + * @param list + * The list of choices being rendered. + * @param tc + * The completion to render. + * @param index + * The index into list being rendered. + * @param selected + * Whether the item is selected. + * @param hasFocus + * Whether the item has focus. */ - protected void prepareForTemplateCompletion(JList list, - TemplateCompletion tc, int index, boolean selected, boolean hasFocus) { - + protected void prepareForTemplateCompletion(JList list, TemplateCompletion tc, int index, boolean selected, boolean hasFocus) { StringBuilder sb = new StringBuilder(PREFIX); sb.append(tc.getInputText()); - String definition = tc.getShortDescription(); - if (definition!=null) { + if (definition != null) { sb.append(" - "); if (!selected) { sb.append(""); @@ -533,28 +487,27 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { sb.append(""); } } - setText(sb.toString()); - } - - + /** * Prepares this renderer to display a variable completion. * - * @param list The list of choices being rendered. - * @param vc The completion to render. - * @param index The index into list being rendered. - * @param selected Whether the item is selected. - * @param hasFocus Whether the item has focus. + * @param list + * The list of choices being rendered. + * @param vc + * The completion to render. + * @param index + * The index into list being rendered. + * @param selected + * Whether the item is selected. + * @param hasFocus + * Whether the item has focus. */ - protected void prepareForVariableCompletion(JList list, - VariableCompletion vc, int index, boolean selected, boolean hasFocus) { - + protected void prepareForVariableCompletion(JList list, VariableCompletion vc, int index, boolean selected, boolean hasFocus) { StringBuilder sb = new StringBuilder(PREFIX); sb.append(vc.getName()); - - if (getShowTypes() && vc.getType()!=null) { + if (getShowTypes() && vc.getType() != null) { sb.append(" : "); if (!selected) { sb.append(""); @@ -564,134 +517,129 @@ public class CompletionCellRenderer extends DefaultListCellRenderer { sb.append(""); } } - setText(sb.toString()); - } - - + /** * Sets the background color to use on alternating lines. * - * @param altBG The new alternate background color. If this is - * null, alternating lines will not use different - * background colors. + * @param altBG + * The new alternate background color. If this is + * null, alternating lines will not use different + * background colors. * @see #getAlternateBackground() */ public static void setAlternateBackground(Color altBG) { CompletionCellRenderer.altBG = altBG; } - - + /** - * Sets the delegate renderer. Most users will never use this method; it + * Sets the delegate renderer. Most users will never use this method; it * is primarily a hook for Substance and other Look and Feels whose * renderers look drastically different from the standard * DefaultListCellRenderer. * - * @param delegate The new delegate renderer. If this is null, - * the default rendering of this component is used. + * @param delegate + * The new delegate renderer. If this is null, + * the default rendering of this component is used. * @see #getDelegateRenderer() * @see #delegateToSubstanceRenderer() */ public void setDelegateRenderer(DefaultListCellRenderer delegate) { this.delegate = delegate; } - - + /** * Sets the font to use when rendering completion items. * - * @param font The font to use. If this is null, then - * the default list font is used. + * @param font + * The font to use. If this is null, then + * the default list font is used. * @see #getDisplayFont() */ public void setDisplayFont(Font font) { this.font = font; } - - + /** * Sets the icon to display based off of a completion, falling back to the * empty icon if the completion has no icon. * - * @param completion The completion to check. + * @param completion + * The completion to check. * @see #setIconWithDefault(Completion, Icon) */ protected void setIconWithDefault(Completion completion) { setIconWithDefault(completion, getEmptyIcon()); } - - + /** * Sets the icon to display based off of a completion, falling back to a * default icon if the completion has no icon. * - * @param completion The completion to check. - * @param defaultIcon The icon to use if completion does not - * specify an icon. + * @param completion + * The completion to check. + * @param defaultIcon + * The icon to use if completion does not + * specify an icon. * @see #setIconWithDefault(Completion) */ protected void setIconWithDefault(Completion completion, Icon defaultIcon) { Icon icon = completion.getIcon(); - setIcon(icon!=null ? icon : - (defaultIcon!=null ? defaultIcon : emptyIcon)); + setIcon(icon != null ? icon : (defaultIcon != null ? defaultIcon : emptyIcon)); } - - + /** * Sets the color to use for function arguments. * - * @param color The color to use. This is ignored if null. + * @param color + * The color to use. This is ignored if null. * @see #setTypeColor(Color) */ public void setParamColor(Color color) { - if (color!=null) { + if (color != null) { paramColor = Util.getHexString(color); } } - - + /** * Sets whether the types of fields and return types of methods are * shown in the completion text. * - * @param show Whether to show the types. + * @param show + * Whether to show the types. * @see #getShowTypes() */ public void setShowTypes(boolean show) { this.showTypes = show; } - - + /** - * Sets the color to use for function/field types. Note that if + * Sets the color to use for function/field types. Note that if * {@link #getShowTypes()} returns false, this property * effectively does nothing. * - * @param color The color to use for types. This is ignored if - * null. + * @param color + * The color to use for types. This is ignored if + * null. * @see #setShowTypes(boolean) * @see #setParamColor(Color) */ public void setTypeColor(Color color) { - if (color!=null) { + if (color != null) { typeColor = Util.getHexString(color); } } - - + /** * Overridden to update our delegate, if necessary. */ @Override public void updateUI() { super.updateUI(); - if (delegate!=null) { + if (delegate != null) { SwingUtilities.updateComponentTreeUI(delegate); } paramColor = createParamColor(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/CompletionListModel.java b/src/org/fife/ui/autocomplete/CompletionListModel.java index 1902ceb..c6e8705 100644 --- a/src/org/fife/ui/autocomplete/CompletionListModel.java +++ b/src/org/fife/ui/autocomplete/CompletionListModel.java @@ -1,9 +1,7 @@ /* * 12/22/2008 - * * CompletionListModel.java - A model that allows bulk addition of elements. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -14,7 +12,6 @@ import java.util.List; import javax.swing.AbstractListModel; - /** * A list model implementation that allows the bulk addition of elements. * This is the only feature missing from DefaultListModel that @@ -24,36 +21,33 @@ import javax.swing.AbstractListModel; * @version 1.0 */ class CompletionListModel extends AbstractListModel { - + /** * Container for items in this model. */ private List delegate; - - + /** * Constructor. */ public CompletionListModel() { delegate = new ArrayList(); } - - + /** - * Removes all of the elements from this list. The list will + * Removes all of the elements from this list. The list will * be empty after this call returns (unless it throws an exception). * * @see #setContents(Collection) */ public void clear() { - int end = delegate.size()-1; + int end = delegate.size() - 1; delegate.clear(); if (end >= 0) { fireIntervalRemoved(this, 0, end); } } - - + /** * {@inheritDoc} */ @@ -61,8 +55,7 @@ class CompletionListModel extends AbstractListModel { public Object getElementAt(int index) { return delegate.get(index); } - - + /** * {@inheritDoc} */ @@ -70,21 +63,19 @@ class CompletionListModel extends AbstractListModel { public int getSize() { return delegate.size(); } - - + /** - * Sets the contents of this model. All previous contents are removed. + * Sets the contents of this model. All previous contents are removed. * - * @param contents The new contents of this model. + * @param contents + * The new contents of this model. */ public void setContents(Collection contents) { clear(); int count = contents.size(); - if (count>0) { + if (count > 0) { delegate.addAll(contents); - fireIntervalAdded(this, 0, count-1); // endpoints included (!) + fireIntervalAdded(this, 0, count - 1); // endpoints included (!) } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/CompletionProvider.java b/src/org/fife/ui/autocomplete/CompletionProvider.java index 4048c1a..e5f556e 100644 --- a/src/org/fife/ui/autocomplete/CompletionProvider.java +++ b/src/org/fife/ui/autocomplete/CompletionProvider.java @@ -1,10 +1,8 @@ /* * 12/21/2008 - * * CompletionProvider.java - Provides autocompletion values based on the * text currently in a text component. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -15,66 +13,65 @@ import java.util.List; import javax.swing.ListCellRenderer; import javax.swing.text.JTextComponent; - /** - * Provides autocompletion values to an {@link AutoCompletion}.

+ * Provides autocompletion values to an {@link AutoCompletion}. + *

* - * Completion providers can have an optional parent. Parents are searched for - * completions when their children are. This allows for chaining of completion + * Completion providers can have an optional parent. Parents are searched for + * completions when their children are. This allows for chaining of completion * providers. * * @author Robert Futrell * @version 1.0 */ public interface CompletionProvider { - - + /** * Clears the values used to identify and insert "parameterized completions" - * (e.g. functions or methods). After this method is called, functions and + * (e.g. functions or methods). After this method is called, functions and * methods will not have their parameters auto-completed. * * @see #setParameterizedCompletionParams(char, String, char) */ public void clearParameterizedCompletionParams(); - - + /** * Returns the text just before the current caret position that could be * the start of something auto-completable. * - * @param comp The text component. - * @return The text. A return value of null means nothing + * @param comp + * The text component. + * @return The text. A return value of null means nothing * should be auto-completed; a value of an empty string * ("") means auto-completion should still be * considered (i.e., all possible choices are valid). */ public String getAlreadyEnteredText(JTextComponent comp); - - + /** * Gets the possible completions for the text component at the current * caret position. * - * @param comp The text component. - * @return The list of {@link Completion}s. If no completions are + * @param comp + * The text component. + * @return The list of {@link Completion}s. If no completions are * available, this method should return an empty list. */ public List getCompletions(JTextComponent comp); - - + /** * Returns the completions that have been entered at the specified visual - * location. This can be used for tool tips when the user hovers the + * location. This can be used for tool tips when the user hovers the * mouse over completed text. * - * @param comp The text component. - * @param p The position, usually from a MouseEvent. + * @param comp + * The text component. + * @param p + * The position, usually from a MouseEvent. * @return The completions, or an empty list if there are none. */ public List getCompletionsAt(JTextComponent comp, Point p); - - + /** * Returns the cell renderer for completions returned from this provider. * @@ -83,32 +80,30 @@ public interface CompletionProvider { * @see #setListCellRenderer(ListCellRenderer) */ public ListCellRenderer getListCellRenderer(); - - + /** * Returns an object that can return a list of completion choices for - * parameters. This is used when a user code-completes a parameterized - * completion, such as a function or method. For any parameter to the + * parameters. This is used when a user code-completes a parameterized + * completion, such as a function or method. For any parameter to the * function/method, this object can return possible completions. * * @return The parameter choices provider, or null if * none is installed. */ public ParameterChoicesProvider getParameterChoicesProvider(); - - + /** * Returns a list of parameterized completions that have been entered * at the current caret position of a text component (and thus can have * their completion choices displayed). * - * @param tc The text component. - * @return The list of {@link ParameterizedCompletion}s. If no completions + * @param tc + * The text component. + * @return The list of {@link ParameterizedCompletion}s. If no completions * are available, this may be null. */ public List getParameterizedCompletions(JTextComponent tc); - - + /** * Returns the text that marks the end of a list of parameters to a * function or method. @@ -120,8 +115,7 @@ public interface CompletionProvider { * @see #setParameterizedCompletionParams(char, String, char) */ public char getParameterListEnd(); - - + /** * Returns the text that separates parameters to a function or method. * @@ -132,8 +126,7 @@ public interface CompletionProvider { * @see #setParameterizedCompletionParams(char, String, char) */ public String getParameterListSeparator(); - - + /** * Returns the text that marks the start of a list of parameters to a * function or method. @@ -145,8 +138,7 @@ public interface CompletionProvider { * @see #setParameterizedCompletionParams(char, String, char) */ public char getParameterListStart(); - - + /** * Returns the parent completion provider. * @@ -154,60 +146,60 @@ public interface CompletionProvider { * @see #setParent(CompletionProvider) */ public CompletionProvider getParent(); - - + /** * This method is called if auto-activation is enabled in the parent - * {@link AutoCompletion} after the user types a single character. This + * {@link AutoCompletion} after the user types a single character. This * provider should check the text at the current caret position of the * text component, and decide whether auto-activation would be appropriate - * here. For example, a CompletionProvider for Java might + * here. For example, a CompletionProvider for Java might * want to return true for this method only if the last * character typed was a '.'. * - * @param tc The text component. + * @param tc + * The text component. * @return Whether auto-activation would be appropriate. */ public boolean isAutoActivateOkay(JTextComponent tc); - - + /** * Sets the renderer to use when displaying completion choices. * - * @param r The renderer to use. + * @param r + * The renderer to use. * @see #getListCellRenderer() */ public void setListCellRenderer(ListCellRenderer r); - - + /** * Sets the values used to identify and insert "parameterized completions" - * (e.g. functions or methods). If this method isn't called, functions + * (e.g. functions or methods). If this method isn't called, functions * and methods will not have their parameters auto-completed. * - * @param listStart The character that marks the beginning of a list of - * parameters, such as '(' in C or Java. - * @param separator Text that should separate parameters in a parameter - * list when one is inserted. For example, ", ". - * @param listEnd The character that marks the end of a list of parameters, - * such as ')' in C or Java. - * @throws IllegalArgumentException If either listStart or - * listEnd is not printable ASCII, or if - * separator is null or an empty string. + * @param listStart + * The character that marks the beginning of a list of + * parameters, such as '(' in C or Java. + * @param separator + * Text that should separate parameters in a parameter + * list when one is inserted. For example, ", ". + * @param listEnd + * The character that marks the end of a list of parameters, + * such as ')' in C or Java. + * @throws IllegalArgumentException + * If either listStart or + * listEnd is not printable ASCII, or if + * separator is null or an empty string. * @see #clearParameterizedCompletionParams() */ - public void setParameterizedCompletionParams(char listStart, - String separator, char listEnd); - - + public void setParameterizedCompletionParams(char listStart, String separator, char listEnd); + /** * Sets the parent completion provider. * - * @param parent The parent provider. null means there will - * be no parent provider. + * @param parent + * The parent provider. null means there will + * be no parent provider. * @see #getParent() */ public void setParent(CompletionProvider parent); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/CompletionProviderBase.java b/src/org/fife/ui/autocomplete/CompletionProviderBase.java index ca5a80b..d089614 100644 --- a/src/org/fife/ui/autocomplete/CompletionProviderBase.java +++ b/src/org/fife/ui/autocomplete/CompletionProviderBase.java @@ -1,9 +1,7 @@ /* * 02/06/2010 - * * CompletionProviderBase.java - Base completion provider implementation. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -11,15 +9,15 @@ package org.fife.ui.autocomplete; import java.util.Collections; import java.util.Comparator; import java.util.List; + import javax.swing.ListCellRenderer; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.JTextComponent; import javax.swing.text.Segment; - /** - * A base class for all standard completion providers. This class implements + * A base class for all standard completion providers. This class implements * functionality that should be sharable across all CompletionProvider * implementations. * @@ -28,63 +26,51 @@ import javax.swing.text.Segment; * @see AbstractCompletionProvider */ public abstract class CompletionProviderBase implements CompletionProvider { - + /** * The parent completion provider. */ private CompletionProvider parent; - /** - * The renderer to use for completions from this provider. If this is + * The renderer to use for completions from this provider. If this is * null, a default renderer is used. */ private ListCellRenderer listCellRenderer; - /** * Text that marks the beginning of a parameter list, for example, '('. */ private char paramListStart; - /** * Text that marks the end of a parameter list, for example, ')'. */ private char paramListEnd; - /** * Text that separates items in a parameter list, for example, ", ". */ private String paramListSeparator; - /** * Whether auto-activation should occur after letters. */ private boolean autoActivateAfterLetters; - /** * Non-letter chars that should cause auto-activation to occur. */ private String autoActivateChars; - /** * Provides completion choices for a parameterized completion's parameters. */ private ParameterChoicesProvider paramChoicesProvider; - /** * A segment to use for fast char access. */ private Segment s = new Segment(); - protected static final String EMPTY_STRING = ""; - /** * Comparator used to sort completions by their relevance before sorting * them lexicographically. */ - private static final Comparator sortByRelevanceComparator = - new SortByRelevanceComparator(); - - + private static final Comparator sortByRelevanceComparator = new SortByRelevanceComparator(); + /** * {@inheritDoc} */ @@ -93,45 +79,39 @@ public abstract class CompletionProviderBase implements CompletionProvider { paramListEnd = paramListStart = 0; paramListSeparator = null; } - - + /** * {@inheritDoc} */ @Override public List getCompletions(JTextComponent comp) { - List completions = getCompletionsImpl(comp); - if (parent!=null) { + if (parent != null) { List parentCompletions = parent.getCompletions(comp); - if (parentCompletions!=null) { + if (parentCompletions != null) { completions.addAll(parentCompletions); Collections.sort(completions); } } - // NOTE: We can't sort by relevance prior to this; we need to have // things alphabetical so we can easily narrow down completions to // those starting with what was already typed. - if (/*sortByRelevance*/true) { + if (/* sortByRelevance */true) { Collections.sort(completions, sortByRelevanceComparator); } - return completions; - } - - + /** * Does the dirty work of creating a list of completions. * - * @param comp The text component to look in. + * @param comp + * The text component to look in. * @return The list of possible completions, or an empty list if there * are none. */ protected abstract List getCompletionsImpl(JTextComponent comp); - - + /** * {@inheritDoc} */ @@ -139,8 +119,7 @@ public abstract class CompletionProviderBase implements CompletionProvider { public ListCellRenderer getListCellRenderer() { return listCellRenderer; } - - + /** * {@inheritDoc} */ @@ -148,8 +127,7 @@ public abstract class CompletionProviderBase implements CompletionProvider { public ParameterChoicesProvider getParameterChoicesProvider() { return paramChoicesProvider; } - - + /** * {@inheritDoc} */ @@ -157,8 +135,7 @@ public abstract class CompletionProviderBase implements CompletionProvider { public char getParameterListEnd() { return paramListEnd; } - - + /** * {@inheritDoc} */ @@ -166,8 +143,7 @@ public abstract class CompletionProviderBase implements CompletionProvider { public String getParameterListSeparator() { return paramListSeparator; } - - + /** * {@inheritDoc} */ @@ -175,8 +151,7 @@ public abstract class CompletionProviderBase implements CompletionProvider { public char getParameterListStart() { return paramListStart; } - - + /** * {@inheritDoc} */ @@ -184,8 +159,7 @@ public abstract class CompletionProviderBase implements CompletionProvider { public CompletionProvider getParent() { return parent; } - - + /** * {@inheritDoc} */ @@ -199,41 +173,40 @@ public abstract class CompletionProviderBase implements CompletionProvider { } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); } - return (autoActivateAfterLetters && Character.isLetter(ch)) || - (autoActivateChars!=null && autoActivateChars.indexOf(ch)>-1); + return (autoActivateAfterLetters && Character.isLetter(ch)) || (autoActivateChars != null && autoActivateChars.indexOf(ch) > -1); } - - + /** - * Sets the characters that auto-activation should occur after. A Java + * Sets the characters that auto-activation should occur after. A Java * completion provider, for example, might want to set others * to ".", to allow auto-activation for members of an object. * - * @param letters Whether auto-activation should occur after any letter. - * @param others A string of (non-letter) chars that auto-activation should - * occur after. This may be null. + * @param letters + * Whether auto-activation should occur after any letter. + * @param others + * A string of (non-letter) chars that auto-activation should + * occur after. This may be null. */ public void setAutoActivationRules(boolean letters, String others) { autoActivateAfterLetters = letters; autoActivateChars = others; } - - + /** - * Sets the param choices provider. This is used when a user + * Sets the param choices provider. This is used when a user * code-completes a parameterized completion, such as a function or method. * For any parameter to the function/method, this object can return * possible completions. * - * @param pcp The parameter choices provider, or null for - * none. + * @param pcp + * The parameter choices provider, or null for + * none. * @see #getParameterChoicesProvider() */ public void setParameterChoicesProvider(ParameterChoicesProvider pcp) { paramChoicesProvider = pcp; } - - + /** * {@inheritDoc} */ @@ -241,29 +214,26 @@ public abstract class CompletionProviderBase implements CompletionProvider { public void setListCellRenderer(ListCellRenderer r) { listCellRenderer = r; } - - + /** * {@inheritDoc} */ @Override - public void setParameterizedCompletionParams(char listStart, - String separator, char listEnd) { - if (listStart<0x20 || listStart==0x7F) { + public void setParameterizedCompletionParams(char listStart, String separator, char listEnd) { + if (listStart < 0x20 || listStart == 0x7F) { throw new IllegalArgumentException("Invalid listStart"); } - if (listEnd<0x20 || listEnd==0x7F) { + if (listEnd < 0x20 || listEnd == 0x7F) { throw new IllegalArgumentException("Invalid listEnd"); } - if (separator==null || separator.length()==0) { + if (separator == null || separator.length() == 0) { throw new IllegalArgumentException("Invalid separator"); } paramListStart = listStart; paramListSeparator = separator; paramListEnd = listEnd; } - - + /** * {@inheritDoc} */ @@ -271,6 +241,4 @@ public abstract class CompletionProviderBase implements CompletionProvider { public void setParent(CompletionProvider parent) { this.parent = parent; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/CompletionXMLParser.java b/src/org/fife/ui/autocomplete/CompletionXMLParser.java index e19daef..151a12f 100644 --- a/src/org/fife/ui/autocomplete/CompletionXMLParser.java +++ b/src/org/fife/ui/autocomplete/CompletionXMLParser.java @@ -1,10 +1,8 @@ /* * 02/06/2010 - * * CompletionXMLParser.java - Parses XML representing code completion for a * C-like language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -12,15 +10,15 @@ package org.fife.ui.autocomplete; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; + import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler; - /** - * Parser for an XML file describing a procedural language such as C. XML + * Parser for an XML file describing a procedural language such as C. XML * files will be validated against the CompletionXml.dtd DTD * found in this package. * @@ -28,24 +26,20 @@ import org.xml.sax.helpers.DefaultHandler; * @version 1.0 */ public class CompletionXMLParser extends DefaultHandler { - + /** * The completions found after parsing the XML. */ private List completions; - /** * The provider we're getting completions for. */ private CompletionProvider provider; - /** * The completion provider to use when loading classes, such as custom * {@link FunctionCompletion}s. */ private ClassLoader completionCL; - - private String name; private String type; private String returnType; @@ -67,48 +61,49 @@ public class CompletionXMLParser extends DefaultHandler { private char paramStartChar; private char paramEndChar; private String paramSeparator; - /** * If specified in the XML, this class will be used instead of - * {@link FunctionCompletion} when appropriate. This class should extend + * {@link FunctionCompletion} when appropriate. This class should extend * FunctionCompletion, or stuff will break. */ private String funcCompletionType; - /** * The class loader to use to load custom completion classes, such as - * the one defined by {@link #funcCompletionType}. If this is - * null, then a default class loader is used. This field + * the one defined by {@link #funcCompletionType}. If this is + * null, then a default class loader is used. This field * will usually be null. */ private static ClassLoader DEFAULT_COMPLETION_CLASS_LOADER; - - + /** * Constructor. * - * @param provider The provider to get completions for. + * @param provider + * The provider to get completions for. * @see #reset(CompletionProvider) */ public CompletionXMLParser(CompletionProvider provider) { this(provider, null); } - - + /** * Constructor. * - * @param provider The provider to get completions for. - * @param cl The class loader to use, if necessary, when loading classes - * from the XML (custom {@link FunctionCompletion}s, for example). - * This may be null if the default is to be used, or - * if the XML does not define specific classes for completion types. + * @param provider + * The provider to get completions for. + * @param cl + * The class loader to use, if necessary, when loading classes + * from the XML (custom {@link FunctionCompletion}s, for + * example). + * This may be null if the default is to be used, or + * if the XML does not define specific classes for completion + * types. * @see #reset(CompletionProvider) */ public CompletionXMLParser(CompletionProvider provider, ClassLoader cl) { this.provider = provider; this.completionCL = cl; - if (completionCL==null) { + if (completionCL == null) { // May also be null, but that's okay. completionCL = DEFAULT_COMPLETION_CLASS_LOADER; } @@ -120,8 +115,7 @@ public class CompletionXMLParser extends DefaultHandler { paramStartChar = paramEndChar = 0; paramSeparator = null; } - - + /** * Called when character data inside an element is found. */ @@ -129,74 +123,59 @@ public class CompletionXMLParser extends DefaultHandler { public void characters(char[] ch, int start, int length) { if (gettingDesc) { desc.append(ch, start, length); - } - else if (gettingParamDesc) { + } else if (gettingParamDesc) { paramDesc.append(ch, start, length); - } - else if (gettingReturnValDesc) { + } else if (gettingReturnValDesc) { returnValDesc.append(ch, start, length); } } - - + private FunctionCompletion createFunctionCompletion() { - FunctionCompletion fc = null; - if (funcCompletionType!=null) { + if (funcCompletionType != null) { try { Class clazz = null; - if (completionCL!=null) { - clazz = Class.forName(funcCompletionType, true, - completionCL); - } - else { + if (completionCL != null) { + clazz = Class.forName(funcCompletionType, true, completionCL); + } else { clazz = Class.forName(funcCompletionType); } - Constructor c = clazz.getDeclaredConstructor( - CompletionProvider.class, String.class, String.class); - fc = (FunctionCompletion)c.newInstance(provider, name, - returnType); + Constructor c = clazz.getDeclaredConstructor(CompletionProvider.class, String.class, String.class); + fc = (FunctionCompletion) c.newInstance(provider, name, returnType); } catch (RuntimeException re) { // FindBugs throw re; } catch (Exception e) { e.printStackTrace(); } } - - if (fc==null) { // Fallback if completion failed for some reason + if (fc == null) { // Fallback if completion failed for some reason fc = new FunctionCompletion(provider, name, returnType); } - - if (desc.length()>0) { + if (desc.length() > 0) { fc.setShortDescription(desc.toString()); desc.setLength(0); } fc.setParams(params); fc.setDefinedIn(definedIn); - if (returnValDesc.length()>0) { + if (returnValDesc.length() > 0) { fc.setReturnValueDescription(returnValDesc.toString()); returnValDesc.setLength(0); } - return fc; - } - - + private BasicCompletion createOtherCompletion() { BasicCompletion bc = new BasicCompletion(provider, name); - if (desc.length()>0) { + if (desc.length() > 0) { bc.setSummary(desc.toString()); desc.setLength(0); } return bc; } - - + private MarkupTagCompletion createMarkupTagCompletion() { - MarkupTagCompletion mc = new MarkupTagCompletion(provider, - name); - if (desc.length()>0) { + MarkupTagCompletion mc = new MarkupTagCompletion(provider, name); + if (desc.length() > 0) { mc.setDescription(desc.toString()); desc.setLength(0); } @@ -204,98 +183,75 @@ public class CompletionXMLParser extends DefaultHandler { mc.setDefinedIn(definedIn); return mc; } - - + private VariableCompletion createVariableCompletion() { - VariableCompletion vc = new VariableCompletion(provider, - name, returnType); - if (desc.length()>0) { + VariableCompletion vc = new VariableCompletion(provider, name, returnType); + if (desc.length() > 0) { vc.setShortDescription(desc.toString()); desc.setLength(0); } vc.setDefinedIn(definedIn); return vc; } - - + /** * Called when an element is closed. */ @Override public void endElement(String uri, String localName, String qName) { - if ("keywords".equals(qName)) { doingKeywords = false; - } - - else if (doingKeywords) { - + } else if (doingKeywords) { if ("keyword".equals(qName)) { Completion c = null; if ("function".equals(type)) { c = createFunctionCompletion(); - } - else if ("constant".equals(type)) { + } else if ("constant".equals(type)) { c = createVariableCompletion(); - } - else if ("tag".equals(type)) { // Markup tag, such as HTML + } else if ("tag".equals(type)) { // Markup tag, such as HTML c = createMarkupTagCompletion(); - } - else if ("other".equals(type)) { + } else if ("other".equals(type)) { c = createOtherCompletion(); - } - else { + } else { throw new InternalError("Unexpected type: " + type); } completions.add(c); inKeyword = false; - } - else if (inKeyword) { + } else if (inKeyword) { if ("returnValDesc".equals(qName)) { gettingReturnValDesc = false; - } - else if (gettingParams) { + } else if (gettingParams) { if ("params".equals(qName)) { gettingParams = false; - } - else if ("param".equals(qName)) { - FunctionCompletion.Parameter param = - new FunctionCompletion.Parameter(paramType, - paramName); - if (paramDesc.length()>0) { + } else if ("param".equals(qName)) { + FunctionCompletion.Parameter param = new FunctionCompletion.Parameter(paramType, paramName); + if (paramDesc.length() > 0) { param.setDescription(paramDesc.toString()); paramDesc.setLength(0); } params.add(param); inParam = false; - } - else if (inParam) { + } else if (inParam) { if ("desc".equals(qName)) { gettingParamDesc = false; } } - } - else if ("desc".equals(qName)) { + } else if ("desc".equals(qName)) { gettingDesc = false; } } - - } - - else if (inCompletionTypes) { + } else if (inCompletionTypes) { if ("completionTypes".equals(qName)) { inCompletionTypes = false; } } - } - - + @Override public void error(SAXParseException e) throws SAXException { throw e; } - + /** * Returns the completions found after parsing the XML. * @@ -304,8 +260,7 @@ public class CompletionXMLParser extends DefaultHandler { public List getCompletions() { return completions; } - - + /** * Returns the parameter end character specified. * @@ -314,8 +269,7 @@ public class CompletionXMLParser extends DefaultHandler { public char getParamEndChar() { return paramEndChar; } - - + /** * Returns the parameter end string specified. * @@ -324,8 +278,7 @@ public class CompletionXMLParser extends DefaultHandler { public String getParamSeparator() { return paramSeparator; } - - + /** * Returns the parameter start character specified. * @@ -334,60 +287,54 @@ public class CompletionXMLParser extends DefaultHandler { public char getParamStartChar() { return paramStartChar; } - - + private static final char getSingleChar(String str) { - return str.length()==1 ? str.charAt(0) : 0; + return str.length() == 1 ? str.charAt(0) : 0; } - - + /** * Resets this parser to grab more completions. * - * @param provider The new provider to get completions for. + * @param provider + * The new provider to get completions for. */ public void reset(CompletionProvider provider) { this.provider = provider; completions.clear(); - doingKeywords = inKeyword = gettingDesc = gettingParams = inParam = - gettingParamDesc = false; + doingKeywords = inKeyword = gettingDesc = gettingParams = inParam = gettingParamDesc = false; paramStartChar = paramEndChar = 0; paramSeparator = null; } - - - @Override - public InputSource resolveEntity(String publicID, - String systemID) throws SAXException { - return new InputSource(getClass(). - getResourceAsStream("CompletionXml.dtd")); + + @Override + public InputSource resolveEntity(String publicID, String systemID) throws SAXException { + return new InputSource(getClass().getResourceAsStream("CompletionXml.dtd")); } - + /** * Sets the class loader to use when loading custom classes to use for * various {@link Completion} types, such as {@link FunctionCompletion}s, - * from XML.

+ * from XML. + *

* * Users should very rarely have a need to use this method. * - * @param cl The class loader to use. If this is null, then - * a default is used. + * @param cl + * The class loader to use. If this is null, then + * a default is used. */ public static void setDefaultCompletionClassLoader(ClassLoader cl) { DEFAULT_COMPLETION_CLASS_LOADER = cl; } - - + /** * Called when an element starts. */ @Override - public void startElement(String uri, String localName, String qName, - Attributes attrs) { + public void startElement(String uri, String localName, String qName, Attributes attrs) { if ("keywords".equals(qName)) { doingKeywords = true; - } - else if (doingKeywords) { + } else if (doingKeywords) { if ("keyword".equals(qName)) { name = attrs.getValue("name"); type = attrs.getValue("type"); @@ -395,15 +342,12 @@ public class CompletionXMLParser extends DefaultHandler { params.clear(); definedIn = attrs.getValue("definedIn"); inKeyword = true; - } - else if (inKeyword) { + } else if (inKeyword) { if ("returnValDesc".equals(qName)) { gettingReturnValDesc = true; - } - else if ("params".equals(qName)) { + } else if ("params".equals(qName)) { gettingParams = true; - } - else if (gettingParams) { + } else if (gettingParams) { if ("param".equals(qName)) { paramName = attrs.getValue("name"); paramType = attrs.getValue("type"); @@ -414,33 +358,26 @@ public class CompletionXMLParser extends DefaultHandler { gettingParamDesc = true; } } - } - else if ("desc".equals(qName)) { + } else if ("desc".equals(qName)) { gettingDesc = true; } } - } - else if ("environment".equals(qName)) { + } else if ("environment".equals(qName)) { paramStartChar = getSingleChar(attrs.getValue("paramStartChar")); paramEndChar = getSingleChar(attrs.getValue("paramEndChar")); paramSeparator = attrs.getValue("paramSeparator"); - //paramTerminal = attrs.getValua("terminal"); - } - else if ("completionTypes".equals(qName)) { + // paramTerminal = attrs.getValua("terminal"); + } else if ("completionTypes".equals(qName)) { inCompletionTypes = true; - } - else if (inCompletionTypes) { + } else if (inCompletionTypes) { if ("functionCompletionType".equals(qName)) { funcCompletionType = attrs.getValue("type"); } } } - - + @Override public void warning(SAXParseException e) throws SAXException { throw e; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java b/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java index ffdbe0e..f62801c 100644 --- a/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java +++ b/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java @@ -1,9 +1,7 @@ /* * 12/21/2008 - * * DefaultCompletionProvider.java - A basic completion provider implementation. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -16,6 +14,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; + import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.Element; @@ -24,112 +23,102 @@ import javax.swing.text.Segment; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; + import org.xml.sax.SAXException; - /** - * A basic completion provider implementation. This provider has no - * understanding of language semantics. It simply checks the text entered up - * to the caret position for a match against known completions. This is all + * A basic completion provider implementation. This provider has no + * understanding of language semantics. It simply checks the text entered up + * to the caret position for a match against known completions. This is all * that is needed in the majority of cases. * * @author Robert Futrell * @version 1.0 */ public class DefaultCompletionProvider extends AbstractCompletionProvider { - + protected Segment seg; - /** * Used to speed up {@link #getCompletionsAt(JTextComponent, Point)}. */ private String lastCompletionsAtText; - /** * Used to speed up {@link #getCompletionsAt(JTextComponent, Point)}, * since this may be called multiple times in succession (this is usually * called by JTextComponent.getToolTipText(), and if the user * wiggles the mouse while a tool tip is displayed, this method gets - * repeatedly called. It can be costly so we try to speed it up a tad). + * repeatedly called. It can be costly so we try to speed it up a tad). */ private List lastParameterizedCompletionsAt; - + /** - * Constructor. The returned provider will not be aware of any completions. + * Constructor. The returned provider will not be aware of any completions. * * @see #addCompletion(Completion) */ public DefaultCompletionProvider() { init(); } - - + /** * Creates a completion provider that provides completion for a simple * list of words. * - * @param words The words to offer as completion suggestions. If this is - * null, no completions will be known. + * @param words + * The words to offer as completion suggestions. If this is + * null, no completions will be known. * @see BasicCompletion */ public DefaultCompletionProvider(String[] words) { init(); addWordCompletions(words); } - - + /** * Returns the text just before the current caret position that could be - * the start of something auto-completable.

+ * the start of something auto-completable. + *

* * This method returns all characters before the caret that are matched - * by {@link #isValidChar(char)}. + * by {@link #isValidChar(char)}. * * {@inheritDoc} */ @Override public String getAlreadyEnteredText(JTextComponent comp) { - Document doc = comp.getDocument(); - int dot = comp.getCaretPosition(); Element root = doc.getDefaultRootElement(); int index = root.getElementIndex(dot); Element elem = root.getElement(index); int start = elem.getStartOffset(); - int len = dot-start; + int len = dot - start; try { doc.getText(start, len, seg); } catch (BadLocationException ble) { ble.printStackTrace(); return EMPTY_STRING; } - int segEnd = seg.offset + len; start = segEnd - 1; - while (start>=seg.offset && isValidChar(seg.array[start])) { + while (start >= seg.offset && isValidChar(seg.array[start])) { start--; } start++; - len = segEnd - start; - return len==0 ? EMPTY_STRING : new String(seg.array, start, len); - + return len == 0 ? EMPTY_STRING : new String(seg.array, start, len); } - - + /** * {@inheritDoc} */ @Override public List getCompletionsAt(JTextComponent tc, Point p) { - int offset = tc.viewToModel(p); - if (offset<0 || offset>=tc.getDocument().getLength()) { + if (offset < 0 || offset >= tc.getDocument().getLength()) { lastCompletionsAtText = null; return lastParameterizedCompletionsAt = null; } - Segment s = new Segment(); Document doc = tc.getDocument(); Element root = doc.getDefaultRootElement(); @@ -137,64 +126,49 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { Element elem = root.getElement(line); int start = elem.getStartOffset(); int end = elem.getEndOffset() - 1; - try { - - doc.getText(start, end-start, s); - + doc.getText(start, end - start, s); // Get the valid chars before the specified offset. - int startOffs = s.offset + (offset-start) - 1; - while (startOffs>=s.offset && isValidChar(s.array[startOffs])) { + int startOffs = s.offset + (offset - start) - 1; + while (startOffs >= s.offset && isValidChar(s.array[startOffs])) { startOffs--; } - // Get the valid chars at and after the specified offset. - int endOffs = s.offset + (offset-start); - while (endOffs list = getCompletionByInputText(text); lastCompletionsAtText = text; return lastParameterizedCompletionsAt = list; - } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - lastCompletionsAtText = null; return lastParameterizedCompletionsAt = null; - } - - + /** * {@inheritDoc} */ @Override - public List getParameterizedCompletions( - JTextComponent tc) { - + public List getParameterizedCompletions(JTextComponent tc) { List list = null; - // If this provider doesn't support parameterized completions, // bail out now. char paramListStart = getParameterListStart(); - if (paramListStart==0) { + if (paramListStart == 0) { return list; // null } - int dot = tc.getCaretPosition(); Segment s = new Segment(); Document doc = tc.getDocument(); @@ -202,119 +176,112 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { int line = root.getElementIndex(dot); Element elem = root.getElement(line); int offs = elem.getStartOffset(); - int len = dot - offs - 1/*paramListStart.length()*/; - if (len<=0) { // Not enough chars on line for a method. + int len = dot - offs - 1/* paramListStart.length() */; + if (len <= 0) { // Not enough chars on line for a method. return list; // null } - try { - doc.getText(offs, len, s); - // Get the identifier preceding the '(', ignoring any whitespace // between them. offs = s.offset + len - 1; - while (offs>=s.offset && Character.isWhitespace(s.array[offs])) { + while (offs >= s.offset && Character.isWhitespace(s.array[offs])) { offs--; } int end = offs; - while (offs>=s.offset && isValidChar(s.array[offs])) { + while (offs >= s.offset && isValidChar(s.array[offs])) { offs--; } - - String text = new String(s.array, offs+1, end-offs); - + String text = new String(s.array, offs + 1, end - offs); // Get a list of all Completions matching the text, but then // narrow it down to just the ParameterizedCompletions. List l = getCompletionByInputText(text); - if (l!=null && !l.isEmpty()) { - for (int i=0; i(1); } - list.add((ParameterizedCompletion)o); + list.add((ParameterizedCompletion) o); } } } - } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - return list; - } - - + /** * Initializes this completion provider. */ protected void init() { seg = new Segment(); } - - + /** * Returns whether the specified character is valid in an auto-completion. * The default implementation is equivalent to - * "Character.isLetterOrDigit(ch) || ch=='_'". Subclasses + * "Character.isLetterOrDigit(ch) || ch=='_'". Subclasses * can override this method to change what characters are matched. * - * @param ch The character. + * @param ch + * The character. * @return Whether the character is valid. */ protected boolean isValidChar(char ch) { - return Character.isLetterOrDigit(ch) || ch=='_'; + return Character.isLetterOrDigit(ch) || ch == '_'; } - - + /** - * Loads completions from an XML file. The XML should validate against + * Loads completions from an XML file. The XML should validate against * CompletionXml.dtd. * - * @param file An XML file to load from. - * @throws IOException If an IO error occurs. + * @param file + * An XML file to load from. + * @throws IOException + * If an IO error occurs. */ public void loadFromXML(File file) throws IOException { - BufferedInputStream bin = new BufferedInputStream( - new FileInputStream(file)); + BufferedInputStream bin = new BufferedInputStream(new FileInputStream(file)); try { loadFromXML(bin); } finally { bin.close(); } } - - + /** - * Loads completions from an XML input stream. The XML should validate + * Loads completions from an XML input stream. The XML should validate * against CompletionXml.dtd. * - * @param in The input stream to read from. - * @throws IOException If an IO error occurs. + * @param in + * The input stream to read from. + * @throws IOException + * If an IO error occurs. */ public void loadFromXML(InputStream in) throws IOException { loadFromXML(in, null); } - - + /** - * Loads completions from an XML input stream. The XML should validate + * Loads completions from an XML input stream. The XML should validate * against CompletionXml.dtd. * - * @param in The input stream to read from. - * @param cl The class loader to use when loading any extra classes defined - * in the XML, such as custom {@link FunctionCompletion}s. This - * may be null if the default is to be used, or if no - * custom completions are defined in the XML. - * @throws IOException If an IO error occurs. + * @param in + * The input stream to read from. + * @param cl + * The class loader to use when loading any extra classes defined + * in the XML, such as custom {@link FunctionCompletion}s. This + * may be null if the default is to be used, or if + * no + * custom completions are defined in the XML. + * @throws IOException + * If an IO error occurs. */ public void loadFromXML(InputStream in, ClassLoader cl) throws IOException { - - //long start = System.currentTimeMillis(); - + // long start = System.currentTimeMillis(); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(true); CompletionXMLParser handler = new CompletionXMLParser(this, cl); @@ -322,13 +289,13 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { try { SAXParser saxParser = factory.newSAXParser(); saxParser.parse(bin, handler); - List completions = handler.getCompletions(); + List completions = handler.getCompletions(); addCompletions(completions); char startChar = handler.getParamStartChar(); - if (startChar!=0) { + if (startChar != 0) { char endChar = handler.getParamEndChar(); String sep = handler.getParamSeparator(); - if (endChar!=0 && sep!=null && sep.length()>0) { // Sanity + if (endChar != 0 && sep != null && sep.length() > 0) { // Sanity setParameterizedCompletionParams(startChar, sep, endChar); } } @@ -337,30 +304,29 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { } catch (ParserConfigurationException pce) { throw new IOException(pce.toString()); } finally { - //long time = System.currentTimeMillis() - start; - //System.out.println("XML loaded in: " + time + "ms"); + // long time = System.currentTimeMillis() - start; + // System.out.println("XML loaded in: " + time + "ms"); bin.close(); } - } - - + /** - * Loads completions from an XML file. The XML should validate against + * Loads completions from an XML file. The XML should validate against * CompletionXml.dtd. * - * @param resource A resource the current ClassLoader can get to. - * @throws IOException If an IO error occurs. + * @param resource + * A resource the current ClassLoader can get to. + * @throws IOException + * If an IO error occurs. */ public void loadFromXML(String resource) throws IOException { ClassLoader cl = getClass().getClassLoader(); InputStream in = cl.getResourceAsStream(resource); - if (in==null) { + if (in == null) { File file = new File(resource); if (file.isFile()) { in = new FileInputStream(file); - } - else { + } else { throw new IOException("No such resource: " + resource); } } @@ -371,6 +337,4 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { bin.close(); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/DelegatingCellRenderer.java b/src/org/fife/ui/autocomplete/DelegatingCellRenderer.java index 29f46d9..0ce9f64 100644 --- a/src/org/fife/ui/autocomplete/DelegatingCellRenderer.java +++ b/src/org/fife/ui/autocomplete/DelegatingCellRenderer.java @@ -1,24 +1,22 @@ /* * 12/22/2008 - * * DelegatingCellRenderer.java - A renderer for Completions that will delegate * to the Completion's provider's renderer, if there is one. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.awt.Component; + import javax.swing.DefaultListCellRenderer; import javax.swing.JComponent; import javax.swing.JList; import javax.swing.ListCellRenderer; - /** * List cell renderer that delegates to a {@link CompletionProvider}'s - * renderer, if it has one. If it doesn't, it calls into a fallback renderer. + * renderer, if it has one. If it doesn't, it calls into a fallback renderer. * If a fallback renderer isn't specified, it simply renders * (({@link Completion})value).toString(). * @@ -26,14 +24,13 @@ import javax.swing.ListCellRenderer; * @version 1.0 */ class DelegatingCellRenderer extends DefaultListCellRenderer { - + /** * The renderer to fall back on if one isn't specified by a provider. * This is usually this. */ private ListCellRenderer fallback; - - + /** * Returns the fallback cell renderer. * @@ -43,52 +40,44 @@ class DelegatingCellRenderer extends DefaultListCellRenderer { public ListCellRenderer getFallbackCellRenderer() { return fallback; } - - + /** * {@inheritDoc} */ @Override - public Component getListCellRendererComponent(JList list, Object value, - int index, boolean selected, boolean hasFocus) { - Completion c = (Completion)value; + public Component getListCellRendererComponent(JList list, Object value, int index, boolean selected, boolean hasFocus) { + Completion c = (Completion) value; CompletionProvider p = c.getProvider(); ListCellRenderer r = p.getListCellRenderer(); - if (r!=null) { - return r.getListCellRendererComponent(list, value, index, selected, - hasFocus); + if (r != null) { + return r.getListCellRendererComponent(list, value, index, selected, hasFocus); } - if (fallback==null) { - return super.getListCellRendererComponent(list, value, index, - selected, hasFocus); + if (fallback == null) { + return super.getListCellRendererComponent(list, value, index, selected, hasFocus); } - return fallback.getListCellRendererComponent(list, value, index, - selected, hasFocus); + return fallback.getListCellRendererComponent(list, value, index, selected, hasFocus); } - - + /** * Sets the fallback cell renderer. * - * @param fallback The fallback cell renderer. If this is - * null, this will be used. + * @param fallback + * The fallback cell renderer. If this is + * null, this will be used. * @see #getFallbackCellRenderer() */ public void setFallbackCellRenderer(ListCellRenderer fallback) { this.fallback = fallback; } - - + /** * {@inheritDoc} */ @Override public void updateUI() { super.updateUI(); - if ((fallback instanceof JComponent) && fallback!=this) { - ((JComponent)fallback).updateUI(); + if ((fallback instanceof JComponent) && fallback != this) { + ((JComponent) fallback).updateUI(); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/DescWindowCallback.java b/src/org/fife/ui/autocomplete/DescWindowCallback.java index 55755c7..eed6064 100644 --- a/src/org/fife/ui/autocomplete/DescWindowCallback.java +++ b/src/org/fife/ui/autocomplete/DescWindowCallback.java @@ -1,12 +1,10 @@ /* * 05/11/2012 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; - /** * Passed to {@link ExternalURLHandler}s as a way for them to display a summary * for a new completion in response to a link event. @@ -16,16 +14,15 @@ package org.fife.ui.autocomplete; * @see ExternalURLHandler */ public interface DescWindowCallback { - - + /** * Callback allowing a new code completion's description to be displayed * in the description window. * - * @param completion The new completion. - * @param anchor The anchor to scroll to, or null if none. + * @param completion + * The new completion. + * @param anchor + * The anchor to scroll to, or null if none. */ public void showSummaryFor(Completion completion, String anchor); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/EmptyIcon.java b/src/org/fife/ui/autocomplete/EmptyIcon.java index 4547b09..b5ce5f4 100644 --- a/src/org/fife/ui/autocomplete/EmptyIcon.java +++ b/src/org/fife/ui/autocomplete/EmptyIcon.java @@ -1,9 +1,7 @@ /* * 04/29/2010 - * * EmptyIcon.java - The canonical icon that paints nothing. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -11,11 +9,11 @@ package org.fife.ui.autocomplete; import java.awt.Component; import java.awt.Graphics; import java.io.Serializable; + import javax.swing.Icon; - /** - * A standard icon that doesn't paint anything. This can be used when some + * A standard icon that doesn't paint anything. This can be used when some * Completions have icons and others don't, to visually align the * text of all completions. * @@ -23,30 +21,23 @@ import javax.swing.Icon; * @version 1.0 */ public class EmptyIcon implements Icon, Serializable { - + private int size; - - + public EmptyIcon(int size) { this.size = size; } - - + @Override public int getIconHeight() { return size; } - - + @Override public int getIconWidth() { return size; } - - + @Override - public void paintIcon(Component c, Graphics g, int x, int y) { - } - - -} \ No newline at end of file + public void paintIcon(Component c, Graphics g, int x, int y) {} +} diff --git a/src/org/fife/ui/autocomplete/ExternalURLHandler.java b/src/org/fife/ui/autocomplete/ExternalURLHandler.java index 39db7e2..1f7c68d 100644 --- a/src/org/fife/ui/autocomplete/ExternalURLHandler.java +++ b/src/org/fife/ui/autocomplete/ExternalURLHandler.java @@ -1,24 +1,22 @@ /* * 12/23/2008 - * * ExternalURLHandler.java - Implementations can be registered as a callback * to handle the user clicking on external URL's. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import javax.swing.event.HyperlinkEvent; - /** * A callback for when an external URL is clicked in the description window. * If no handler is installed, and if running in Java 6, the system default - * web browser is used to open the URL. If not running Java 6, nothing will - * happen. If you want browser support for pre-Java 6 JRE's, you will need + * web browser is used to open the URL. If not running Java 6, nothing will + * happen. If you want browser support for pre-Java 6 JRE's, you will need * to register one of these callbacks on your {@link AutoCompletion}, and - * open the URL in a web browser yourself.

+ * open the URL in a web browser yourself. + *

* * Alternatively, folks implementing robust code completion support for a * language might install an ExternalURLHandler to handle @@ -29,18 +27,17 @@ import javax.swing.event.HyperlinkEvent; * @see AutoCompletion#setExternalURLHandler(ExternalURLHandler) */ public interface ExternalURLHandler { - - + /** * Called when an external URL is clicked in the description window. * - * @param e The event containing the hyperlink clicked. - * @param c The completion currently being displayed. - * @param callback Allows you to display new content in the description - * window. + * @param e + * The event containing the hyperlink clicked. + * @param c + * The completion currently being displayed. + * @param callback + * Allows you to display new content in the description + * window. */ - public void urlClicked(HyperlinkEvent e, Completion c, - DescWindowCallback callback); - - -} \ No newline at end of file + public void urlClicked(HyperlinkEvent e, Completion c, DescWindowCallback callback); +} diff --git a/src/org/fife/ui/autocomplete/FastListUI.java b/src/org/fife/ui/autocomplete/FastListUI.java index 08c80ac..e872720 100644 --- a/src/org/fife/ui/autocomplete/FastListUI.java +++ b/src/org/fife/ui/autocomplete/FastListUI.java @@ -1,11 +1,9 @@ /* * 04/26/2010 - * * FastListUI.java - A JList UI implementation that computes the preferred size * of all cells really fast, to facilitate lists of possibly thousands of items * rendered with HTML, which is slow with BasicListUI extensions. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -13,77 +11,71 @@ package org.fife.ui.autocomplete; import java.awt.Color; import java.awt.Dimension; import java.awt.SystemColor; + import javax.swing.JViewport; import javax.swing.ListCellRenderer; import javax.swing.ListModel; import javax.swing.UIManager; import javax.swing.plaf.basic.BasicListUI; - /** - * A custom list UI, used by the completion choices list. If the number of + * A custom list UI, used by the completion choices list. If the number of * completion choices is "large," it does a fast estimate of the preferred - * width and height of list items. This allows HTML renderers to be used (such + * width and height of list items. This allows HTML renderers to be used (such * as {@link CompletionCellRenderer}), with thousands of completion choices, - * with no performance penalty. With standard BasicListUI subclasses, this can + * with no performance penalty. With standard BasicListUI subclasses, this can * cause very poor performance each time the list is displayed, which * is bad for lists that are repeatedly hidden and re-displayed, such as - * completion choices. This is all because the calculation to get the + * completion choices. This is all because the calculation to get the * preferred size of each list item, when it is displayed with HTML, is slow. * * @author Robert Futrell * @version 1.0 */ class FastListUI extends BasicListUI { - + /** * Whether the selection background was overridden (usually because of * Nimbus) so we know to manually uninstall the color we installed. */ private boolean overriddenBackground; - /** * Whether the selection foreground was overridden (usually because of * Nimbus) so we know to manually uninstall the color we installed. */ private boolean overriddenForeground; - /** * If there are more than this many completions in a single list, this * UI will estimate the cell width and height needed for each item instead * of computing it, for performance reasons. */ - private static final int ESTIMATION_THRESHOLD = 200; - - + private static final int ESTIMATION_THRESHOLD = 200; + private Color determineSelectionBackground() { Color c = UIManager.getColor("List.selectionBackground"); - if (c==null) { + if (c == null) { c = UIManager.getColor("nimbusSelectionBackground"); - if (c==null) { // Not Nimbus, but still need a value - fallback + if (c == null) { // Not Nimbus, but still need a value - fallback c = UIManager.getColor("textHighlight"); - if (c==null) { + if (c == null) { c = SystemColor.textHighlight; } } } - // Nimbus unfortunately requires a Color, not a ColorUIResource, for // the background override to work. This causes this color to "stick" - // even if the LAF is changed to something else later. "c" here may + // even if the LAF is changed to something else later. "c" here may // actually be a ColorUIResource - return new Color(c.getRGB());//new ColorUIResource(c); - + return new Color(c.getRGB());// new ColorUIResource(c); } - - + private Color determineSelectionForeground() { Color c = UIManager.getColor("List.selectionForeground"); - if (c==null) { + if (c == null) { c = UIManager.getColor("nimbusSelectedText"); - if (c==null) { // Not Nimbus, but still need a value - fallback + if (c == null) { // Not Nimbus, but still need a value - fallback c = UIManager.getColor("textHighlightText"); - if (c==null) { + if (c == null) { c = SystemColor.textHighlightText; } } @@ -92,98 +84,76 @@ class FastListUI extends BasicListUI { // may actually be a ColorUIResource return new Color(c.getRGB()); } - - + /** * Overridden to ensure we have selection background/foreground colors * defined, even if we're in some weirdo LAF such as Nimbus which doesn't - * define them. Since FastListUI extends BasicListUI, we need these values + * define them. Since FastListUI extends BasicListUI, we need these values * to be defined. */ @Override protected void installDefaults() { - super.installDefaults(); - - if (list.getSelectionBackground()==null) { + if (list.getSelectionBackground() == null) { list.setSelectionBackground(determineSelectionBackground()); overriddenBackground = true; } - - if (list.getSelectionForeground()==null) { + if (list.getSelectionForeground() == null) { list.setSelectionForeground(determineSelectionForeground()); overriddenForeground = true; } } - - + /** * Overridden to work around a Nimbus issue. */ @Override protected void uninstallDefaults() { - super.uninstallDefaults(); - if (overriddenBackground) { list.setSelectionBackground(null); } - if (overriddenForeground) { list.setSelectionForeground(null); } - } - - + /** - * Recalculates the cell width and height of each cell in the list. This + * Recalculates the cell width and height of each cell in the list. This * method is overridden to do a fast estimation if the completion list is * too long, to improve performance for lists with huge amounts of * completions. */ @Override protected void updateLayoutState() { - ListModel model = list.getModel(); int itemCount = model.getSize(); - // If the item count is small enough to run fast on practically all // machines, go ahead and use the super implementation to determine // the optimal cell sizes. - if (itemCount0) { + if (renderer != null && itemCount > 0) { Object value = model.getElementAt(0); - java.awt.Component c = renderer.getListCellRendererComponent(list, - value, 0, false, false); + java.awt.Component c = renderer.getListCellRendererComponent(list, value, 0, false, false); rendererPane.add(c); Dimension cellSize = c.getPreferredSize(); cellHeight = cellSize.height; cellWidth = Math.max(cellWidth, cellSize.width); + } else { + cellHeight = 20; } - else { - cellHeight = 20; - } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/FunctionCompletion.java b/src/org/fife/ui/autocomplete/FunctionCompletion.java index 133fb3e..866630a 100644 --- a/src/org/fife/ui/autocomplete/FunctionCompletion.java +++ b/src/org/fife/ui/autocomplete/FunctionCompletion.java @@ -1,173 +1,147 @@ /* * 12/22/2008 - * * FunctionCompletion.java - A completion representing a function. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.util.ArrayList; import java.util.List; + import javax.swing.text.BadLocationException; import javax.swing.text.JTextComponent; import javax.swing.text.Position; - /** * A completion choice representing a function. * * @author Robert Futrell * @version 1.0 */ -public class FunctionCompletion extends VariableCompletion - implements ParameterizedCompletion { - +public class FunctionCompletion extends VariableCompletion implements ParameterizedCompletion { + /** * Parameters to the function. */ private List params; - /** * A description of the return value of this function. */ private String returnValDesc; - /** * Used to improve performance of sorting FunctionCompletions. */ private String compareString; - - + /** * Constructor. * - * @param provider The parent provider. - * @param name The name of this function. - * @param returnType The return type of this function. + * @param provider + * The parent provider. + * @param name + * The name of this function. + * @param returnType + * The return type of this function. */ - public FunctionCompletion(CompletionProvider provider, String name, - String returnType) { + public FunctionCompletion(CompletionProvider provider, String name, String returnType) { super(provider, name, returnType); } - - + @Override protected void addDefinitionString(StringBuilder sb) { sb.append(""); sb.append(getDefinitionString()); sb.append(""); } - - + /** * Adds HTML describing the parameters to this function to a buffer. * - * @param sb The buffer to append to. + * @param sb + * The buffer to append to. */ protected void addParameters(StringBuilder sb) { - // TODO: Localize me - int paramCount = getParamCount(); - if (paramCount>0) { + if (paramCount > 0) { sb.append("Parameters:
"); sb.append("

"); - for (int i=0; i"); - sb.append(param.getName()!=null ? param.getName() : - param.getType()); + sb.append(param.getName() != null ? param.getName() : param.getType()); sb.append(" "); String desc = param.getDescription(); - if (desc!=null) { + if (desc != null) { sb.append(desc); } sb.append("
"); } sb.append("


"); } - - if (returnValDesc!=null) { + if (returnValDesc != null) { sb.append("Returns:
"); sb.append(returnValDesc); sb.append("


"); } - } - - + /** * Overridden to compare methods by their comparison strings. * - * @param c2 A Completion to compare to. + * @param c2 + * A Completion to compare to. * @return The sort order. */ @Override public int compareTo(Completion c2) { - int rc = -1; - - if (c2==this) { + if (c2 == this) { rc = 0; - } - - else if (c2 instanceof FunctionCompletion) { - rc = getCompareString().compareTo( - ((FunctionCompletion)c2).getCompareString()); - } - - else { + } else if (c2 instanceof FunctionCompletion) { + rc = getCompareString().compareTo(((FunctionCompletion) c2).getCompareString()); + } else { rc = super.compareTo(c2); } - return rc; - } - - + /** * Returns a string used to compare this method completion to another. * * @return The comparison string. */ private String getCompareString() { - /* * This string compares the following parts of methods in this order, * to optimize sort order in completion lists. - * * 1. First, by name * 2. Next, by number of parameters. * 3. Finally, by parameter type. */ - - if (compareString==null) { + if (compareString == null) { StringBuilder sb = new StringBuilder(getName()); // NOTE: This will fail if a method has > 99 parameters (!) int paramCount = getParamCount(); - if (paramCount<10) { + if (paramCount < 10) { sb.append('0'); } sb.append(paramCount); - for (int i=0; iprintf" function, this would return * "int printf(const char *, ...)". * @@ -175,85 +149,72 @@ public class FunctionCompletion extends VariableCompletion */ @Override public String getDefinitionString() { - StringBuilder sb = new StringBuilder(); - // Add the return type if applicable (C macros like NULL have no type). String type = getType(); - if (type!=null) { + if (type != null) { sb.append(type).append(' '); } - // Add the item being described's name. sb.append(getName()); - // Add parameters for functions. CompletionProvider provider = getProvider(); char start = provider.getParameterListStart(); - if (start!=0) { + if (start != 0) { sb.append(start); } - for (int i=0; i 2 - // thanks to Matthew Adereth! String sep = getProvider().getParameterListSeparator(); - if (i0 ? (dot+firstParamLen) : dot; + int selectionEnd = paramCount > 0 ? (dot + firstParamLen) : dot; info.setInitialSelection(dot, selectionEnd); info.setTextToInsert(sb.toString()); return info; - } - - + /** * {@inheritDoc} */ @@ -288,8 +246,7 @@ public class FunctionCompletion extends VariableCompletion public Parameter getParam(int index) { return params.get(index); } - - + /** * Returns the number of parameters to this function. * @@ -298,10 +255,9 @@ public class FunctionCompletion extends VariableCompletion */ @Override public int getParamCount() { - return params==null ? 0 : params.size(); + return params == null ? 0 : params.size(); } - - + /** * {@inheritDoc} */ @@ -309,26 +265,25 @@ public class FunctionCompletion extends VariableCompletion public boolean getShowParameterToolTip() { return true; } - - + /** * Returns the text to insert for a parameter. * - * @param param The parameter. + * @param param + * The parameter. * @return The text. */ private String getParamText(ParameterizedCompletion.Parameter param) { String text = param.getName(); - if (text==null) { + if (text == null) { text = param.getType(); - if (text==null) { // Shouldn't ever happen + if (text == null) { // Shouldn't ever happen text = "arg"; } } return text; } - - + /** * Returns the description of the return value of this function. * @@ -338,8 +293,7 @@ public class FunctionCompletion extends VariableCompletion public String getReturnValueDescription() { return returnValDesc; } - - + /** * {@inheritDoc} */ @@ -354,46 +308,43 @@ public class FunctionCompletion extends VariableCompletion possiblyAddDefinedIn(sb); return sb.toString(); } - - + /** * {@inheritDoc} */ @Override public String getToolTipText() { String text = getSummary(); - if (text==null) { + if (text == null) { text = getDefinitionString(); } return text; } - - + /** * Sets the parameters to this function. * - * @param params The parameters. This should be a list of - * {@link ParameterizedCompletion.Parameter}s. + * @param params + * The parameters. This should be a list of + * {@link ParameterizedCompletion.Parameter}s. * @see #getParam(int) * @see #getParamCount() */ public void setParams(List params) { - if (params!=null) { + if (params != null) { // Deep copy so parsing can re-use its array. this.params = new ArrayList(params); } } - - + /** * Sets the description of the return value of this function. * - * @param desc The description. + * @param desc + * The description. * @see #getReturnValueDescription() */ public void setReturnValueDescription(String desc) { this.returnValDesc = desc; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java b/src/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java index 4d04ffb..8914782 100644 --- a/src/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java +++ b/src/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java @@ -1,10 +1,8 @@ /* * 01/03/2009 - * * LanguageAwareCompletionProvider.java - A completion provider that is aware * of the language it is working with. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -13,6 +11,7 @@ import java.awt.Point; import java.awt.event.MouseEvent; import java.util.Collections; import java.util.List; + import javax.swing.text.JTextComponent; import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; @@ -22,25 +21,25 @@ import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rtextarea.RTextArea; import org.fife.ui.rtextarea.ToolTipSupplier; - /** * A completion provider for the C programming language (and other languages - * with similar syntax). This provider simply delegates to another provider, + * with similar syntax). This provider simply delegates to another provider, * depending on whether the caret is in: * *
    - *
  • Code (plain text)
  • - *
  • A string
  • - *
  • A comment
  • - *
  • A documentation comment
  • + *
  • Code (plain text)
  • + *
  • A string
  • + *
  • A comment
  • + *
  • A documentation comment
  • *
* - * This allows for different completion choices in comments than in code, - * for example.

+ * This allows for different completion choices in comments than in code, + * for example. + *

* * This provider also implements the * org.fife.ui.rtextarea.ToolTipSupplier interface, which allows it - * to display tooltips for completion choices. Thus the standard + * to display tooltips for completion choices. Thus the standard * {@link VariableCompletion} and {@link FunctionCompletion} completions should * be able to display tooltips with the variable declaration or function * definition (provided the RSyntaxTextArea was registered with the @@ -49,67 +48,60 @@ import org.fife.ui.rtextarea.ToolTipSupplier; * @author Robert Futrell * @version 1.0 */ -public class LanguageAwareCompletionProvider extends CompletionProviderBase - implements ToolTipSupplier { - +public class LanguageAwareCompletionProvider extends CompletionProviderBase implements ToolTipSupplier { + /** * The provider to use when no provider is assigned to a particular token * type. */ private CompletionProvider defaultProvider; - /** * The provider to use when completing in a string. */ private CompletionProvider stringCompletionProvider; - /** * The provider to use when completing in a comment. */ private CompletionProvider commentCompletionProvider; - /** * The provider to use while in documentation comments. */ private CompletionProvider docCommentCompletionProvider; - - + /** * Constructor subclasses can use when they don't have their default - * provider created at construction time. They should call + * provider created at construction time. They should call * {@link #setDefaultCompletionProvider(CompletionProvider)} in this * constructor. */ - protected LanguageAwareCompletionProvider() { - } - - + protected LanguageAwareCompletionProvider() {} + /** * Constructor. * - * @param defaultProvider The provider to use when no provider is assigned - * to a particular token type. This cannot be null. + * @param defaultProvider + * The provider to use when no provider is assigned + * to a particular token type. This cannot be null. */ public LanguageAwareCompletionProvider(CompletionProvider defaultProvider) { setDefaultCompletionProvider(defaultProvider); } - - + /** * Calling this method will result in an - * {@link UnsupportedOperationException} being thrown. To set the + * {@link UnsupportedOperationException} being thrown. To set the * parameter completion parameters, do so on the provider returned by * {@link #getDefaultCompletionProvider()}. * - * @throws UnsupportedOperationException Always. + * @throws UnsupportedOperationException + * Always. * @see #setParameterizedCompletionParams(char, String, char) */ @Override public void clearParameterizedCompletionParams() { throw new UnsupportedOperationException(); } - - + /** * {@inheritDoc} */ @@ -119,10 +111,9 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase return EMPTY_STRING; } CompletionProvider provider = getProviderFor(comp); - return provider!=null ? provider.getAlreadyEnteredText(comp) : null; + return provider != null ? provider.getAlreadyEnteredText(comp) : null; } - - + /** * Returns the completion provider to use for comments. * @@ -132,22 +123,20 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase public CompletionProvider getCommentCompletionProvider() { return commentCompletionProvider; } - - + /** * {@inheritDoc} */ @Override public List getCompletionsAt(JTextComponent tc, Point p) { - return defaultProvider==null ? null : - defaultProvider.getCompletionsAt(tc, p); + return defaultProvider == null ? null : defaultProvider.getCompletionsAt(tc, p); } - - + /** * Does the dirty work of creating a list of completions. * - * @param comp The text component to look in. + * @param comp + * The text component to look in. * @return The list of possible completions, or an empty list if there * are none. */ @@ -155,14 +144,13 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase protected List getCompletionsImpl(JTextComponent comp) { if (comp instanceof RSyntaxTextArea) { CompletionProvider provider = getProviderFor(comp); - if (provider!=null) { + if (provider != null) { return provider.getCompletions(comp); } } return Collections.emptyList(); } - - + /** * Returns the completion provider used when one isn't defined for a * particular token type. @@ -173,8 +161,7 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase public CompletionProvider getDefaultCompletionProvider() { return defaultProvider; } - - + /** * Returns the completion provider to use for documentation comments. * @@ -184,23 +171,19 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase public CompletionProvider getDocCommentCompletionProvider() { return docCommentCompletionProvider; } - - + /** * {@inheritDoc} */ @Override - public List getParameterizedCompletions( - JTextComponent tc) { + public List getParameterizedCompletions(JTextComponent tc) { // Parameterized completions can only come from the "code" completion - // provider. We do not do function/method completions while editing + // provider. We do not do function/method completions while editing // strings or comments. CompletionProvider provider = getProviderFor(tc); - return provider==defaultProvider ? - provider.getParameterizedCompletions(tc) : null; + return provider == defaultProvider ? provider.getParameterizedCompletions(tc) : null; } - - + /** * {@inheritDoc} */ @@ -208,8 +191,7 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase public char getParameterListEnd() { return defaultProvider.getParameterListEnd(); } - - + /** * {@inheritDoc} */ @@ -217,8 +199,7 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase public String getParameterListSeparator() { return defaultProvider.getParameterListSeparator(); } - - + /** * {@inheritDoc} */ @@ -226,46 +207,40 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase public char getParameterListStart() { return defaultProvider.getParameterListStart(); } - - + /** * Returns the completion provider to use at the current caret position in * a text component. * - * @param comp The text component to check. + * @param comp + * The text component to check. * @return The completion provider to use. */ private CompletionProvider getProviderFor(JTextComponent comp) { - - RSyntaxTextArea rsta = (RSyntaxTextArea)comp; - RSyntaxDocument doc = (RSyntaxDocument)rsta.getDocument(); + RSyntaxTextArea rsta = (RSyntaxTextArea) comp; + RSyntaxDocument doc = (RSyntaxDocument) rsta.getDocument(); int line = rsta.getCaretLineNumber(); Token t = doc.getTokenListForLine(line); - if (t==null) { + if (t == null) { return getDefaultCompletionProvider(); } - int dot = rsta.getCaretPosition(); Token curToken = RSyntaxUtilities.getTokenAtOffset(t, dot); - - if (curToken==null) { // At end of the line - + if (curToken == null) { // At end of the line int type = doc.getLastTokenTypeOnLine(line); - if (type==Token.NULL) { + if (type == Token.NULL) { Token temp = t.getLastPaintableToken(); - if (temp==null) { + if (temp == null) { return getDefaultCompletionProvider(); } type = temp.getType(); } - - // TokenMakers can use types < 0 for "internal types." This + // TokenMakers can use types < 0 for "internal types." This // gives them a chance to map their internal types back to "real" // types to get completion providers. - else if (type<0) { + else if (type < 0) { type = doc.getClosestStandardTokenTypeForInternalType(type); } - switch (type) { case Token.ERROR_STRING_DOUBLE: return getStringCompletionProvider(); @@ -277,16 +252,14 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase default: return getDefaultCompletionProvider(); } - } - // FIXME: This isn't always a safe assumption. - if (dot==curToken.getOffset()) { // At the very beginning of a new token + if (dot == curToken.getOffset()) { // At the very beginning of a new + // token // Need to check previous token for its type before deciding. // Previous token may also be on previous line! return getDefaultCompletionProvider(); } - switch (curToken.getType()) { case Token.LITERAL_STRING_DOUBLE_QUOTE: case Token.ERROR_STRING_DOUBLE: @@ -306,12 +279,9 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase case Token.OPERATOR: return getDefaultCompletionProvider(); } - return null; // In a token type we can't auto-complete from. - } - - + /** * Returns the completion provider to use for strings. * @@ -321,84 +291,82 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase public CompletionProvider getStringCompletionProvider() { return stringCompletionProvider; } - - + /** * {@inheritDoc} */ @Override public boolean isAutoActivateOkay(JTextComponent tc) { CompletionProvider provider = getProviderFor(tc); - return provider!=null ? provider.isAutoActivateOkay(tc) : false; + return provider != null ? provider.isAutoActivateOkay(tc) : false; } - - + /** * Sets the comment completion provider. * - * @param provider The provider to use in comments. + * @param provider + * The provider to use in comments. * @see #getCommentCompletionProvider() */ public void setCommentCompletionProvider(CompletionProvider provider) { this.commentCompletionProvider = provider; } - - + /** * Sets the default completion provider. * - * @param provider The provider to use when no provider is assigned to a - * particular token type. This cannot be null. + * @param provider + * The provider to use when no provider is assigned to a + * particular token type. This cannot be null. * @see #getDefaultCompletionProvider() */ public void setDefaultCompletionProvider(CompletionProvider provider) { - if (provider==null) { + if (provider == null) { throw new IllegalArgumentException("provider cannot be null"); } this.defaultProvider = provider; } - - + /** * Sets the documentation comment completion provider. * - * @param provider The provider to use in comments. + * @param provider + * The provider to use in comments. * @see #getDocCommentCompletionProvider() */ public void setDocCommentCompletionProvider(CompletionProvider provider) { this.docCommentCompletionProvider = provider; } - - + /** * Calling this method will result in an - * {@link UnsupportedOperationException} being thrown. To set the + * {@link UnsupportedOperationException} being thrown. To set the * parameter completion parameters, do so on the provider returned by * {@link #getDefaultCompletionProvider()}. * - * @throws UnsupportedOperationException Always. + * @throws UnsupportedOperationException + * Always. * @see #clearParameterizedCompletionParams() */ @Override - public void setParameterizedCompletionParams(char listStart, - String separator, char listEnd) { + public void setParameterizedCompletionParams(char listStart, String separator, char listEnd) { throw new UnsupportedOperationException(); } - - + /** * Sets the completion provider to use while in a string. * - * @param provider The provider to use. + * @param provider + * The provider to use. * @see #getStringCompletionProvider() */ public void setStringCompletionProvider(CompletionProvider provider) { stringCompletionProvider = provider; } - - + /** - * Returns the tool tip to display for a mouse event.

+ * Returns the tool tip to display for a mouse event. + *

* * For this method to be called, the RSyntaxTextArea must be * registered with the javax.swing.ToolTipManager like so: @@ -407,25 +375,21 @@ public class LanguageAwareCompletionProvider extends CompletionProviderBase * ToolTipManager.sharedInstance().registerComponent(textArea); * * - * @param textArea The text area. - * @param e The mouse event. + * @param textArea + * The text area. + * @param e + * The mouse event. * @return The tool tip text, or null if none. */ @Override public String getToolTipText(RTextArea textArea, MouseEvent e) { - String tip = null; - List completions = getCompletionsAt(textArea, e.getPoint()); - if (completions!=null && completions.size()>0) { + if (completions != null && completions.size() > 0) { // Only ever 1 match for us in C... Completion c = completions.get(0); tip = c.getToolTipText(); } - return tip; - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/LinkRedirector.java b/src/org/fife/ui/autocomplete/LinkRedirector.java index 6c1eb3d..f343efb 100644 --- a/src/org/fife/ui/autocomplete/LinkRedirector.java +++ b/src/org/fife/ui/autocomplete/LinkRedirector.java @@ -1,16 +1,14 @@ /* * 05/16/2012 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.net.URL; - /** - * Possibly redirects one URL to another. Useful if you want "external" URL's + * Possibly redirects one URL to another. Useful if you want "external" URL's * in code completion documentation to point to a local copy instead, for * example. * @@ -18,9 +16,6 @@ import java.net.URL; * @version 1.0 */ public interface LinkRedirector { - - + public URL possiblyRedirect(URL original); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/MarkupTagCompletion.java b/src/org/fife/ui/autocomplete/MarkupTagCompletion.java index be66c26..206e026 100644 --- a/src/org/fife/ui/autocomplete/MarkupTagCompletion.java +++ b/src/org/fife/ui/autocomplete/MarkupTagCompletion.java @@ -1,10 +1,8 @@ /* * 01/06/2009 - * * MarkupTagComletion.java - A completion representing a tag in markup, such * as HTML or XML. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -14,7 +12,6 @@ import java.util.List; import org.fife.ui.autocomplete.ParameterizedCompletion.Parameter; - /** * A completion representing a tag in markup, such as HTML or XML. * @@ -22,65 +19,59 @@ import org.fife.ui.autocomplete.ParameterizedCompletion.Parameter; * @version 1.0 */ public class MarkupTagCompletion extends AbstractCompletion { - + private String name; private String desc; private String definedIn; - /** * Attributes of the tag. */ private List attrs; - - + /** * Constructor. * - * @param provider The parent provider instance. - * @param name The name of the tag. + * @param provider + * The parent provider instance. + * @param name + * The name of the tag. */ public MarkupTagCompletion(CompletionProvider provider, String name) { super(provider); this.name = name; } - - + /** * Adds HTML describing the attributes of this tag to a buffer. * - * @param sb The buffer to append to. + * @param sb + * The buffer to append to. */ protected void addAttributes(StringBuilder sb) { - // TODO: Localize me. - int attrCount = getAttributeCount(); - if (attrCount>0) { + if (attrCount > 0) { sb.append("Attributes:
"); sb.append("

"); - for (int i=0; i"); - sb.append(attr.getName()!=null ? attr.getName() : - attr.getType()); + sb.append(attr.getName() != null ? attr.getName() : attr.getType()); sb.append(" "); String desc = attr.getDescription(); - if (desc!=null) { + if (desc != null) { sb.append(desc); } sb.append("
"); } sb.append("


"); } - } - - + protected void addDefinitionString(StringBuilder sb) { sb.append("").append(name).append(""); } - - + /** * Returns all attributes of this tag. * @@ -91,20 +82,19 @@ public class MarkupTagCompletion extends AbstractCompletion { public List getAttributes() { return attrs; } - - + /** * Returns the specified {@link ParameterizedCompletion.Parameter}. * - * @param index The index of the attribute to retrieve. + * @param index + * The index of the attribute to retrieve. * @return The attribute. * @see #getAttributeCount() */ public Parameter getAttribute(int index) { return attrs.get(index); } - - + /** * Returns the number of attributes of this tag. * @@ -112,10 +102,9 @@ public class MarkupTagCompletion extends AbstractCompletion { * @see #getAttribute(int) */ public int getAttributeCount() { - return attrs==null ? 0 : attrs.size(); + return attrs == null ? 0 : attrs.size(); } - - + /** * Returns where this variable is defined. * @@ -125,21 +114,19 @@ public class MarkupTagCompletion extends AbstractCompletion { public String getDefinedIn() { return definedIn; } - - + /** - * Returns a short description of this variable. This should be an + * Returns a short description of this variable. This should be an * HTML snippet. * - * @return A short description of this variable. This may be + * @return A short description of this variable. This may be * null. * @see #setDescription(String) */ public String getDescription() { return desc; } - - + /** * Returns the name of this tag. * @@ -148,8 +135,7 @@ public class MarkupTagCompletion extends AbstractCompletion { public String getName() { return name; } - - + /** * {@inheritDoc} */ @@ -157,8 +143,7 @@ public class MarkupTagCompletion extends AbstractCompletion { public String getReplacementText() { return getName(); } - - + /** * {@inheritDoc} */ @@ -171,65 +156,65 @@ public class MarkupTagCompletion extends AbstractCompletion { possiblyAddDefinedIn(sb); return sb.toString(); } - - + /** * Adds some HTML describing where this variable is defined, if this * information is known. * - * @param sb The buffer to append to. + * @param sb + * The buffer to append to. */ protected void possiblyAddDefinedIn(StringBuilder sb) { - if (definedIn!=null) { + if (definedIn != null) { sb.append("
Defined in:"); // TODO: Localize me sb.append(" ").append(definedIn).append(""); } } - - + /** * Adds the description text as HTML to a buffer, if a description is * defined. * - * @param sb The buffer to append to. + * @param sb + * The buffer to append to. */ protected void possiblyAddDescription(StringBuilder sb) { - if (desc!=null) { + if (desc != null) { sb.append("

"); sb.append(desc); sb.append("


"); } } - - + /** * Sets where this variable is defined. * - * @param definedIn Where this variable is defined. + * @param definedIn + * Where this variable is defined. * @see #getDefinedIn() */ public void setDefinedIn(String definedIn) { this.definedIn = definedIn; } - - + /** - * Sets the short description of this tag. This should be an + * Sets the short description of this tag. This should be an * HTML snippet. * - * @param desc A short description of this tag. This may be - * null. + * @param desc + * A short description of this tag. This may be + * null. * @see #getDescription() */ public void setDescription(String desc) { this.desc = desc; } - - + /** * Sets the attributes of this tag. * - * @param attrs The attributes. + * @param attrs + * The attributes. * @see #getAttribute(int) * @see #getAttributeCount() */ @@ -237,6 +222,4 @@ public class MarkupTagCompletion extends AbstractCompletion { // Deep copy so parsing can re-use its array. this.attrs = new ArrayList(attrs); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/OutlineHighlightPainter.java b/src/org/fife/ui/autocomplete/OutlineHighlightPainter.java index 9cc465d..4709950 100644 --- a/src/org/fife/ui/autocomplete/OutlineHighlightPainter.java +++ b/src/org/fife/ui/autocomplete/OutlineHighlightPainter.java @@ -1,10 +1,8 @@ /* * 04/26/2009 - * * OutlineHighlightPainter.java - Highlight painter that draws an outline * around its text. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -13,15 +11,15 @@ import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; + import javax.swing.text.BadLocationException; import javax.swing.text.DefaultHighlighter; import javax.swing.text.JTextComponent; import javax.swing.text.Position; import javax.swing.text.View; - /** - * Highlight painter that draws an outline around the text. This is used to + * Highlight painter that draws an outline around the text. This is used to * draw bounds around function/method parameters. * * @author Robert Futrell @@ -31,32 +29,30 @@ import javax.swing.text.View; * NOTE: Whenever you see text like "Workaround for Java Highlight issues", * this is because highlighted text in a JTextComponent gets "pushed" forward * when the caret is at the Highlight's start, when we need it to instead get - * prepended to. For this reason, the auto-complete package adds its Highlights + * prepended to. For this reason, the auto-complete package adds its Highlights * 1 char too long (1 char earlier than where it should really start), but only * paint the Highlight from the 2nd char on. */ -class OutlineHighlightPainter extends - DefaultHighlighter.DefaultHighlightPainter { - +class OutlineHighlightPainter extends DefaultHighlighter.DefaultHighlightPainter { + /** * DefaultHighlightPainter doesn't allow changing color, so we must cache * ours here. */ private Color color; - /** * Constructor. * - * @param color The color to draw the bounding boxes with. This cannot - * be null. + * @param color + * The color to draw the bounding boxes with. This cannot + * be null. */ public OutlineHighlightPainter(Color color) { super(color); setColor(color); } - - + /** * Returns the color to paint bounding boxes with. * @@ -67,36 +63,30 @@ class OutlineHighlightPainter extends public Color getColor() { return color; } - - + /** * {@inheritDoc} */ @Override - public Shape paintLayer(Graphics g, int p0, int p1, Shape viewBounds, - JTextComponent c, View view) { - + public Shape paintLayer(Graphics g, int p0, int p1, Shape viewBounds, JTextComponent c, View view) { g.setColor(getColor()); p0++; // Workaround for Java Highlight issues. - // This special case isn't needed for most standard Swing Views (which // always return a width of 1 for modelToView() calls), but it is // needed for RSTA views, which actually return the width of chars for - // modelToView calls. But this should be faster anyway, as we + // modelToView calls. But this should be faster anyway, as we // short-circuit and do only one modelToView() for one offset. - if (p0==p1) { + if (p0 == p1) { try { - Shape s = view.modelToView(p0, viewBounds, - Position.Bias.Forward); + Shape s = view.modelToView(p0, viewBounds, Position.Bias.Forward); Rectangle r = s.getBounds(); - g.drawLine(r.x, r.y, r.x, r.y+r.height); + g.drawLine(r.x, r.y, r.x, r.y + r.height); return r; } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens return null; } } - if (p0 == view.getStartOffset() && p1 == view.getEndOffset()) { // Contained in view, can just use bounds. Rectangle alloc; @@ -108,36 +98,30 @@ class OutlineHighlightPainter extends g.drawRect(alloc.x, alloc.y, alloc.width - 1, alloc.height - 1); return alloc; } - // Should only render part of View. try { // --- determine locations --- - Shape shape = view.modelToView(p0, Position.Bias.Forward, p1, - Position.Bias.Backward, viewBounds); - Rectangle r = (shape instanceof Rectangle) ? (Rectangle) shape - : shape.getBounds(); + Shape shape = view.modelToView(p0, Position.Bias.Forward, p1, Position.Bias.Backward, viewBounds); + Rectangle r = (shape instanceof Rectangle) ? (Rectangle) shape : shape.getBounds(); g.drawRect(r.x, r.y, r.width - 1, r.height - 1); return r; } catch (BadLocationException e) { // Never happens e.printStackTrace(); return null; } - } - - + /** * Sets the color to paint the bounding boxes with. * - * @param color The new color. This cannot be null. + * @param color + * The new color. This cannot be null. * @see #getColor() */ public void setColor(Color color) { - if (color==null) { + if (color == null) { throw new IllegalArgumentException("color cannot be null"); } this.color = color; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/ParameterChoicesProvider.java b/src/org/fife/ui/autocomplete/ParameterChoicesProvider.java index 148a151..8719e79 100644 --- a/src/org/fife/ui/autocomplete/ParameterChoicesProvider.java +++ b/src/org/fife/ui/autocomplete/ParameterChoicesProvider.java @@ -1,17 +1,15 @@ /* * 12/14/2010 - * * ParameterChoicesProvider.java - Provides completions for a * ParameterizedCompletion's parameters. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.util.List; -import javax.swing.text.JTextComponent; +import javax.swing.text.JTextComponent; /** * Provides completions for a {@link ParameterizedCompletion}'s parameters. @@ -23,18 +21,16 @@ import javax.swing.text.JTextComponent; * @version 1.0 */ public interface ParameterChoicesProvider { - - + /** * Returns a list of choices for a specific parameter. * - * @param tc The text component. - * @param param The currently focused parameter. - * @return The list of parameters. This may be null for + * @param tc + * The text component. + * @param param + * The currently focused parameter. + * @return The list of parameters. This may be null for * "no parameters," but might also be an empty list. */ - public List getParameterChoices(JTextComponent tc, - ParameterizedCompletion.Parameter param); - - -} \ No newline at end of file + public List getParameterChoices(JTextComponent tc, ParameterizedCompletion.Parameter param); +} diff --git a/src/org/fife/ui/autocomplete/ParameterizedCompletion.java b/src/org/fife/ui/autocomplete/ParameterizedCompletion.java index 03fb8f5..a6ff10f 100644 --- a/src/org/fife/ui/autocomplete/ParameterizedCompletion.java +++ b/src/org/fife/ui/autocomplete/ParameterizedCompletion.java @@ -1,16 +1,13 @@ /* * 12/11/2010 - * * ParameterizedCompletion.java - A completion option. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import javax.swing.text.JTextComponent; - /** * A completion option that takes parameters, such as a function or method. * @@ -18,28 +15,26 @@ import javax.swing.text.JTextComponent; * @version 1.0 */ public interface ParameterizedCompletion extends Completion { - - + /** - * Returns the "definition string" for this completion. For example, + * Returns the "definition string" for this completion. For example, * for the C "printf" function, this would return * "int printf(const char *, ...)". * * @return The definition string. */ public String getDefinitionString(); - - + /** * Returns the specified {@link Parameter}. * - * @param index The index of the parameter to retrieve. + * @param index + * The index of the parameter to retrieve. * @return The parameter. * @see #getParamCount() */ public Parameter getParam(int index); - - + /** * Returns the number of parameters this completion takes. * @@ -47,12 +42,9 @@ public interface ParameterizedCompletion extends Completion { * @see #getParam(int) */ public int getParamCount(); - - - public ParameterizedCompletionInsertionInfo getInsertionInfo( - JTextComponent tc, boolean replaceTabsWithSpaces); - - + + public ParameterizedCompletionInsertionInfo getInsertionInfo(JTextComponent tc, boolean replaceTabsWithSpaces); + /** * Returns whether a tool tip displaying assistance for each parameter * while it is being edited is appropriate for this completion. @@ -60,73 +52,81 @@ public interface ParameterizedCompletion extends Completion { * @return Whether the tool tip is appropriate to display. */ public boolean getShowParameterToolTip(); - - + /** * A parameter passed to a parameterized {@link Completion}. */ public static class Parameter { - + private String name; private Object type; private String desc; private boolean isEndParam; - + /** * Constructor. * - * @param type The type of this parameter. This may be - * null for languages without specific types, - * dynamic typing, etc. Usually you'll pass a String for this - * value, but you may pass any object representing a type in - * your language, as long as its toString() method - * returns a string representation of the type. - * @param name The name of the parameter. + * @param type + * The type of this parameter. This may be + * null for languages without specific types, + * dynamic typing, etc. Usually you'll pass a String for this + * value, but you may pass any object representing a type in + * your language, as long as its toString() + * method + * returns a string representation of the type. + * @param name + * The name of the parameter. */ public Parameter(Object type, String name) { this(type, name, false); } - + /** * Constructor. * - * @param type The type of this parameter. This may be - * null for languages without specific types, - * dynamic typing, etc. Usually you'll pass a String for this - * value, but you may pass any object representing a type in - * your language, as long as its toString() method - * returns a string representation of the type. - * @param name The name of the parameter. - * @param endParam Whether this parameter is an "ending parameter;" - * that is, whether this parameter is at a logical "ending - * point" in the completion text. If the user types in a - * parameter that is an ending point, parameter completion mode - * terminates. Set this to true for a trailing - * parameter after a function call's closing ')', for example. + * @param type + * The type of this parameter. This may be + * null for languages without specific types, + * dynamic typing, etc. Usually you'll pass a String for this + * value, but you may pass any object representing a type in + * your language, as long as its toString() + * method + * returns a string representation of the type. + * @param name + * The name of the parameter. + * @param endParam + * Whether this parameter is an "ending parameter;" + * that is, whether this parameter is at a logical "ending + * point" in the completion text. If the user types in a + * parameter that is an ending point, parameter completion + * mode + * terminates. Set this to true for a trailing + * parameter after a function call's closing ')', for + * example. */ public Parameter(Object type, String name, boolean endParam) { this.name = name; this.type = type; this.isEndParam = endParam; } - + public String getDescription() { return desc; } - + public String getName() { return name; } - + /** * Returns the type of this parameter, as a string. * * @return The type of the parameter, or null for none. */ public String getType() { - return type==null ? null : type.toString(); + return type == null ? null : type.toString(); } - + /** * Returns the object used to describe the type of this parameter. * @@ -135,38 +135,35 @@ public interface ParameterizedCompletion extends Completion { public Object getTypeObject() { return type; } - + /** * @return Whether this parameter is an "ending parameter;" * that is, whether this parameter is at a logical "ending - * point" in the completion text. If the user types in a + * point" in the completion text. If the user types in a * parameter that is an ending point, parameter completion mode * terminates. */ public boolean isEndParam() { return isEndParam; } - + public void setDescription(String desc) { this.desc = desc; } - + @Override public String toString() { StringBuilder sb = new StringBuilder(); - if (getType()!=null) { + if (getType() != null) { sb.append(getType()); } - if (getName()!=null) { - if (getType()!=null) { + if (getName() != null) { + if (getType() != null) { sb.append(' '); } sb.append(getName()); } return sb.toString(); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/ParameterizedCompletionChoicesWindow.java b/src/org/fife/ui/autocomplete/ParameterizedCompletionChoicesWindow.java index 4c35196..d7f9025 100644 --- a/src/org/fife/ui/autocomplete/ParameterizedCompletionChoicesWindow.java +++ b/src/org/fife/ui/autocomplete/ParameterizedCompletionChoicesWindow.java @@ -1,10 +1,8 @@ /* * 12/11/2010 - * * ParameterizedCompletionChoicesWindow.java - A list of likely choices for a * parameter. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -19,6 +17,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; + import javax.swing.DefaultListModel; import javax.swing.JList; import javax.swing.JScrollPane; @@ -28,10 +27,9 @@ import javax.swing.text.JTextComponent; import org.fife.ui.rsyntaxtextarea.PopupWindowDecorator; - /** * A small popup window offering a list of likely choices for a parameter - * when the user has code-completed a parameterized completion. For example, + * when the user has code-completed a parameterized completion. For example, * if they have just code-completed the C function "fprintf", * when entering the file name, this popup might display all local variables * of type "char *". @@ -40,83 +38,72 @@ import org.fife.ui.rsyntaxtextarea.PopupWindowDecorator; * @version 1.0 */ public class ParameterizedCompletionChoicesWindow extends JWindow { - + /** * The parent AutoCompletion instance. */ private AutoCompletion ac; - /** * The list of completion choices. */ private JList list; - /** * The currently displayed completion choices. */ private DefaultListModel model; - /** * A list of lists of choices for each parameter. */ private List> choicesListList; - /** * The scroll pane containing the list. */ private JScrollPane sp; - /** * Comparator used to sort completions by their relevance before sorting * them lexicographically. */ - private static final Comparator sortByRelevanceComparator = - new SortByRelevanceComparator(); - - + private static final Comparator sortByRelevanceComparator = new SortByRelevanceComparator(); + /** * Constructor. * - * @param parent The parent window (hosting the text component). - * @param ac The auto-completion instance. - * @param context The completion context. + * @param parent + * The parent window (hosting the text component). + * @param ac + * The auto-completion instance. + * @param context + * The completion context. */ - public ParameterizedCompletionChoicesWindow(Window parent, - AutoCompletion ac, - final ParameterizedCompletionContext context) { - + public ParameterizedCompletionChoicesWindow(Window parent, AutoCompletion ac, final ParameterizedCompletionContext context) { super(parent); this.ac = ac; ComponentOrientation o = ac.getTextComponentOrientation(); - model = new DefaultListModel(); list = new JList(model); - if (ac.getParamChoicesRenderer()!=null) { + if (ac.getParamChoicesRenderer() != null) { list.setCellRenderer(ac.getParamChoicesRenderer()); } list.addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { - if (e.getClickCount()==2) { + if (e.getClickCount() == 2) { context.insertSelectedChoice(); } } }); sp = new JScrollPane(list); - setContentPane(sp); applyComponentOrientation(o); setFocusableWindowState(false); - // Give apps a chance to decorate us with drop shadows, etc. PopupWindowDecorator decorator = PopupWindowDecorator.get(); - if (decorator!=null) { + if (decorator != null) { decorator.decorate(this); } - } - - + /** * Returns the selected value. * @@ -124,150 +111,133 @@ public class ParameterizedCompletionChoicesWindow extends JWindow { * selected. */ public String getSelectedChoice() { - Completion c = (Completion)list.getSelectedValue(); - return c==null ? null : c.toString(); + Completion c = (Completion) list.getSelectedValue(); + return c == null ? null : c.toString(); } - - + /** * Changes the selected index. * - * @param amount The amount by which to change the selected index. + * @param amount + * The amount by which to change the selected index. */ public void incSelection(int amount) { int selection = list.getSelectedIndex(); selection += amount; - if (selection<0) { + if (selection < 0) { // Account for nothing selected yet - selection = model.getSize()-1;//+= model.getSize(); - } - else { + selection = model.getSize() - 1;// += model.getSize(); + } else { selection %= model.getSize(); } list.setSelectedIndex(selection); list.ensureIndexIsVisible(selection); } - - + /** * Initializes this window to offer suggestions for the parameters of * a specific completion. * - * @param pc The completion whose parameters we should offer suggestions - * for. + * @param pc + * The completion whose parameters we should offer suggestions + * for. */ public void initialize(ParameterizedCompletion pc) { - CompletionProvider provider = pc.getProvider(); ParameterChoicesProvider pcp = provider.getParameterChoicesProvider(); - if (pcp==null) { + if (pcp == null) { choicesListList = null; return; } - int paramCount = pc.getParamCount(); choicesListList = new ArrayList>(paramCount); JTextComponent tc = ac.getTextComponent(); - - for (int i=0; i choices = pcp.getParameterChoices(tc, param); choicesListList.add(choices); } - } - - + /** * Sets the location of this window relative to the given rectangle. * - * @param r The visual position of the caret (in screen coordinates). + * @param r + * The visual position of the caret (in screen coordinates). */ public void setLocationRelativeTo(Rectangle r) { - // Multi-monitor support - make sure the completion window (and // description window, if applicable) both fit in the same window in - // a multi-monitor environment. To do this, we decide which monitor + // a multi-monitor environment. To do this, we decide which monitor // the rectangle "r" is in, and use that one (just pick top-left corner // as the defining point). Rectangle screenBounds = Util.getScreenBoundsForPoint(r.x, r.y); - //Dimension screenSize = tooltip.getToolkit().getScreenSize(); - + // Dimension screenSize = tooltip.getToolkit().getScreenSize(); // Try putting our stuff "below" the caret first. int y = r.y + r.height + 5; - - // Get x-coordinate of completions. Try to align left edge with the + // Get x-coordinate of completions. Try to align left edge with the // caret first. int x = r.x; - if (xscreenBounds.x+screenBounds.width) { // completions don't fit + } else if (x + getWidth() > screenBounds.x + screenBounds.width) { // completions + // don't + // fit x = screenBounds.x + screenBounds.width - getWidth(); } - setLocation(x, y); - } - - + /** * Displays the choices for the specified parameter matching the given - * text. This will display or hide this popup window as necessary. + * text. This will display or hide this popup window as necessary. * - * @param param The index of the parameter the caret is currently in. - * This may be -1 if not in a parameter (i.e., on - * the comma between parameters). - * @param prefix Text in the parameter before the dot. This may - * be null to represent the empty string. + * @param param + * The index of the parameter the caret is currently in. + * This may be -1 if not in a parameter (i.e., on + * the comma between parameters). + * @param prefix + * Text in the parameter before the dot. This may + * be null to represent the empty string. */ public void setParameter(int param, String prefix) { - model.clear(); List temp = new ArrayList(); - - if (choicesListList!=null && param>=0 && param= 0 && param < choicesListList.size()) { List choices = choicesListList.get(param); - if (choices!=null) { + if (choices != null) { for (Completion c : choices) { String choice = c.getReplacementText(); - if (prefix==null || Util.startsWithIgnoreCase(choice, prefix)) { + if (prefix == null || Util.startsWithIgnoreCase(choice, prefix)) { temp.add(c); } } } - // Sort completions appropriately. Comparator c = null; - if (/*sortByRelevance*/true) { + if (/* sortByRelevance */true) { c = sortByRelevanceComparator; } Collections.sort(temp, c); - for (int i=0; i0) { + } else if (visibleRowCount > 0) { Dimension size = getPreferredSize(); - if (size.width<150) { + if (size.width < 150) { setSize(150, size.height); - } - else { + } else { pack(); } // Make sure nothing is ever obscured by vertical scroll bar. - if (sp.getVerticalScrollBar()!=null && - sp.getVerticalScrollBar().isVisible()) { + if (sp.getVerticalScrollBar() != null && sp.getVerticalScrollBar().isVisible()) { size = getSize(); - int w = size.width + sp.getVerticalScrollBar().getWidth()+5; + int w = size.width + sp.getVerticalScrollBar().getWidth() + 5; setSize(w, size.height); } list.setSelectedIndex(0); @@ -276,39 +246,33 @@ public class ParameterizedCompletionChoicesWindow extends JWindow { setVisible(true); } } - - } - - else { + } else { setVisible(false); } - } - - + /** * Toggles the visibility of this popup window. * - * @param visible Whether this window should be visible. + * @param visible + * Whether this window should be visible. */ @Override public void setVisible(boolean visible) { - if (visible!=isVisible()) { + if (visible != isVisible()) { // i.e. if no possibilities matched what's been typed - if (visible && model.size()==0) {//list.getVisibleRowCount()==0) { + if (visible && model.size() == 0) {// list.getVisibleRowCount()==0) + // { return; } super.setVisible(visible); } } - - + /** * Updates the LookAndFeel of this window. */ public void updateUI() { SwingUtilities.updateComponentTreeUI(this); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/ParameterizedCompletionContext.java b/src/org/fife/ui/autocomplete/ParameterizedCompletionContext.java index 22e2203..36114b3 100644 --- a/src/org/fife/ui/autocomplete/ParameterizedCompletionContext.java +++ b/src/org/fife/ui/autocomplete/ParameterizedCompletionContext.java @@ -1,10 +1,8 @@ /* * 06/17/2012 - * * ParameritizedCompletionContext.java - Manages the state of parameterized * completion-related UI components during code completion. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -19,6 +17,7 @@ import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.List; + import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ActionMap; @@ -35,10 +34,10 @@ import javax.swing.text.BadLocationException; import javax.swing.text.DefaultEditorKit; import javax.swing.text.Document; import javax.swing.text.Highlighter; -import javax.swing.text.JTextComponent; -import javax.swing.text.Position; import javax.swing.text.Highlighter.Highlight; import javax.swing.text.Highlighter.HighlightPainter; +import javax.swing.text.JTextComponent; +import javax.swing.text.Position; import org.fife.ui.autocomplete.ParameterizedCompletion.Parameter; import org.fife.ui.autocomplete.ParameterizedCompletionInsertionInfo.ReplacementCopy; @@ -46,11 +45,10 @@ import org.fife.ui.rsyntaxtextarea.DocumentRange; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rtextarea.ChangeableHighlightPainter; - /** * Manages UI and state specific to parameterized completions - the parameter * description tool tip, the parameter completion choices list, the actual - * highlights in the editor, etc. This component installs new key bindings + * highlights in the editor, etc. This component installs new key bindings * when appropriate to allow the user to cycle through the parameters of the * completion, and optionally cycle through completion choices for those * parameters. @@ -59,86 +57,68 @@ import org.fife.ui.rtextarea.ChangeableHighlightPainter; * @version 1.0 */ class ParameterizedCompletionContext { - + /** * The parent window. */ private Window parentWindow; - /** * The parent AutoCompletion instance. */ private AutoCompletion ac; - /** * The completion being described. */ private ParameterizedCompletion pc; - /** * Whether parameterized completion assistance is active. */ private boolean active; - /** * A tool tip displaying the currently edited parameter name and type. */ private ParameterizedCompletionDescriptionToolTip tip; - /** * The painter to paint borders around the variables. */ private Highlighter.HighlightPainter p; - private Highlighter.HighlightPainter endingP; - private Highlighter.HighlightPainter paramCopyP; - /** * The tags for the highlights around parameters. */ private List tags; - private List paramCopyInfos; - private transient boolean ignoringDocumentEvents; - /** * Listens for events in the text component while this window is visible. */ private Listener listener; - /** * The minimum offset into the document that the caret can move to * before this tool tip disappears. */ private int minPos; - /** * The maximum offset into the document that the caret can move to * before this tool tip disappears. */ private Position maxPos; // Moves with text inserted. - private Position defaultEndOffs; - /** * The currently "selected" parameter in the displayed text. */ private int lastSelectedParam; - /** * A small popup window giving likely choices for parameterized completions. */ private ParameterizedCompletionChoicesWindow paramChoicesWindow; - /** - * The text before the caret for the current parameter. If + * The text before the caret for the current parameter. If * {@link #paramChoicesWindow} is non-null, this is used to * determine what parameter choices to actually show. */ private String paramPrefix; - private Object oldTabKey; private Action oldTabAction; private Object oldShiftTabKey; @@ -153,7 +133,6 @@ class ParameterizedCompletionContext { private Action oldEscapeAction; private Object oldClosingKey; private Action oldClosingAction; - private static final String IM_KEY_TAB = "ParamCompKey.Tab"; private static final String IM_KEY_SHIFT_TAB = "ParamCompKey.ShiftTab"; private static final String IM_KEY_UP = "ParamCompKey.Up"; @@ -161,48 +140,37 @@ class ParameterizedCompletionContext { private static final String IM_KEY_ESCAPE = "ParamCompKey.Escape"; private static final String IM_KEY_ENTER = "ParamCompKey.Enter"; private static final String IM_KEY_CLOSING = "ParamCompKey.Closing"; - - + /** * Constructor. */ - public ParameterizedCompletionContext(Window owner, - AutoCompletion ac, ParameterizedCompletion pc) { - + public ParameterizedCompletionContext(Window owner, AutoCompletion ac, ParameterizedCompletion pc) { this.parentWindow = owner; this.ac = ac; this.pc = pc; listener = new Listener(); - AutoCompletionStyleContext sc = AutoCompletion.getStyleContext(); p = new OutlineHighlightPainter(sc.getParameterOutlineColor()); - endingP = new OutlineHighlightPainter( - sc.getParameterizedCompletionCursorPositionColor()); + endingP = new OutlineHighlightPainter(sc.getParameterizedCompletionCursorPositionColor()); paramCopyP = new ChangeableHighlightPainter(sc.getParameterCopyColor()); tags = new ArrayList(1); // Usually small paramCopyInfos = new ArrayList(1); - } - - + /** * Activates parameter completion support. * * @see #deactivate() */ public void activate() { - if (active) { return; } - active = true; JTextComponent tc = ac.getTextComponent(); lastSelectedParam = -1; - if (pc.getShowParameterToolTip()) { - tip = new ParameterizedCompletionDescriptionToolTip( - parentWindow, this, ac, pc); + tip = new ParameterizedCompletionDescriptionToolTip(parentWindow, this, ac, pc); try { int dot = tc.getCaretPosition(); Rectangle r = tc.modelToView(dot); @@ -218,33 +186,27 @@ class ParameterizedCompletionContext { tip = null; } } - listener.install(tc); // First time through, we'll need to create this window. - if (paramChoicesWindow==null) { + if (paramChoicesWindow == null) { paramChoicesWindow = createParamChoicesWindow(); } lastSelectedParam = getCurrentParameterIndex(); prepareParamChoicesWindow(); paramChoicesWindow.setVisible(true); - } - - + /** * Creates the completion window offering suggestions for parameters. * * @return The window. */ private ParameterizedCompletionChoicesWindow createParamChoicesWindow() { - ParameterizedCompletionChoicesWindow pcw = - new ParameterizedCompletionChoicesWindow(parentWindow, - ac, this); + ParameterizedCompletionChoicesWindow pcw = new ParameterizedCompletionChoicesWindow(parentWindow, ac, this); pcw.initialize(pc); return pcw; } - - + /** * Hides any popup windows and terminates parameterized completion * assistance. @@ -257,30 +219,30 @@ class ParameterizedCompletionContext { } active = false; listener.uninstall(); - if (tip!=null) { + if (tip != null) { tip.setVisible(false); } - if (paramChoicesWindow!=null) { + if (paramChoicesWindow != null) { paramChoicesWindow.setVisible(false); } } - - + /** * Returns the text inserted for the parameter containing the specified * offset. * - * @param offs The offset into the document. + * @param offs + * The offset into the document. * @return The text of the parameter containing the offset, or * null if the offset is not in a parameter. */ public String getArgumentText(int offs) { List paramHighlights = getParameterHighlights(); - if (paramHighlights==null || paramHighlights.size()==0) { + if (paramHighlights == null || paramHighlights.size() == 0) { return null; } for (Highlight h : paramHighlights) { - if (offs>=h.getStartOffset() && offs<=h.getEndOffset()) { + if (offs >= h.getStartOffset() && offs <= h.getEndOffset()) { int start = h.getStartOffset() + 1; int len = h.getEndOffset() - start; JTextComponent tc = ac.getTextComponent(); @@ -296,8 +258,7 @@ class ParameterizedCompletionContext { } return null; } - - + /** * Returns the highlight of the current parameter. * @@ -306,46 +267,36 @@ class ParameterizedCompletionContext { * @see #getCurrentParameterStartOffset() */ private Highlight getCurrentParameterHighlight() { - JTextComponent tc = ac.getTextComponent(); int dot = tc.getCaretPosition(); - if (dot>0) { + if (dot > 0) { dot--; // Workaround for Java Highlight issues } - List paramHighlights = getParameterHighlights(); for (Highlight h : paramHighlights) { - if (dot>=h.getStartOffset() && dot= h.getStartOffset() && dot < h.getEndOffset()) { return h; } } - return null; - } - - + private int getCurrentParameterIndex() { - JTextComponent tc = ac.getTextComponent(); int dot = tc.getCaretPosition(); - if (dot>0) { + if (dot > 0) { dot--; // Workaround for Java Highlight issues } - List paramHighlights = getParameterHighlights(); - for (int i=0; i=h.getStartOffset() && dot= h.getStartOffset() && dot < h.getEndOffset()) { return i; } } - return -1; - } - - + /** * Returns the starting offset of the current parameter. * @@ -355,92 +306,89 @@ class ParameterizedCompletionContext { */ private int getCurrentParameterStartOffset() { Highlight h = getCurrentParameterHighlight(); - return h!=null ? h.getStartOffset()+1 : -1; + return h != null ? h.getStartOffset() + 1 : -1; } - - + /** - * Returns the highlight from a list that comes "first" in a list. Even + * Returns the highlight from a list that comes "first" in a list. Even * though most parameter highlights are ordered, sometimes they aren't * (e.g. the "cursor" parameter in a template completion is always last, * even though it can be anywhere in the template). * - * @param highlights The list of highlights. Assumed to be non-empty. + * @param highlights + * The list of highlights. Assumed to be non-empty. * @return The highlight that comes first in the document. * @see #getLastHighlight(List) */ private static final int getFirstHighlight(List highlights) { int first = -1; Highlight firstH = null; - for (int i=0; i highlights) { int last = -1; Highlight lastH = null; - for (int i=highlights.size()-1; i>=0; i--) { + for (int i = highlights.size() - 1; i >= 0; i--) { Highlight h = highlights.get(i); - if (lastH==null || h.getStartOffset()>lastH.getStartOffset()) { + if (lastH == null || h.getStartOffset() > lastH.getStartOffset()) { lastH = h; last = i; } } return last; } - - + public List getParameterHighlights() { List paramHighlights = new ArrayList(2); JTextComponent tc = ac.getTextComponent(); Highlight[] highlights = tc.getHighlighter().getHighlights(); - for (int i=0; ifalse + * @return Whether the choice was inserted. This will be false * if the window is not visible, or no choice is selected. */ boolean insertSelectedChoice() { - if (paramChoicesWindow!=null && paramChoicesWindow.isVisible()) { + if (paramChoicesWindow != null && paramChoicesWindow.isVisible()) { String choice = paramChoicesWindow.getSelectedChoice(); - if (choice!=null) { + if (choice != null) { JTextComponent tc = ac.getTextComponent(); Highlight h = getCurrentParameterHighlight(); - if (h!=null) { - // "+1" is a workaround for Java Highlight issues. - tc.setSelectionStart(h.getStartOffset()+1); + if (h != null) { + // "+1" is a workaround for Java Highlight issues. + tc.setSelectionStart(h.getStartOffset() + 1); tc.setSelectionEnd(h.getEndOffset()); tc.replaceSelection(choice); moveToNextParam(); - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(tc); } return true; @@ -448,8 +396,7 @@ class ParameterizedCompletionContext { } return false; } - - + /** * Installs key bindings on the text component that facilitate the user * editing this completion's parameters. @@ -457,181 +404,151 @@ class ParameterizedCompletionContext { * @see #uninstallKeyBindings() */ private void installKeyBindings() { - if (AutoCompletion.getDebug()) { System.out.println("CompletionContext: Installing keybindings"); } - JTextComponent tc = ac.getTextComponent(); InputMap im = tc.getInputMap(); ActionMap am = tc.getActionMap(); - KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0); oldTabKey = im.get(ks); im.put(ks, IM_KEY_TAB); oldTabAction = am.get(IM_KEY_TAB); am.put(IM_KEY_TAB, new NextParamAction()); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_MASK); oldShiftTabKey = im.get(ks); im.put(ks, IM_KEY_SHIFT_TAB); oldShiftTabAction = am.get(IM_KEY_SHIFT_TAB); am.put(IM_KEY_SHIFT_TAB, new PrevParamAction()); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0); oldUpKey = im.get(ks); im.put(ks, IM_KEY_UP); oldUpAction = am.get(IM_KEY_UP); am.put(IM_KEY_UP, new NextChoiceAction(-1, oldUpAction)); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0); oldDownKey = im.get(ks); im.put(ks, IM_KEY_DOWN); oldDownAction = am.get(IM_KEY_DOWN); am.put(IM_KEY_DOWN, new NextChoiceAction(1, oldDownAction)); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); oldEnterKey = im.get(ks); im.put(ks, IM_KEY_ENTER); oldEnterAction = am.get(IM_KEY_ENTER); am.put(IM_KEY_ENTER, new GotoEndAction()); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); oldEscapeKey = im.get(ks); im.put(ks, IM_KEY_ESCAPE); oldEscapeAction = am.get(IM_KEY_ESCAPE); am.put(IM_KEY_ESCAPE, new HideAction()); - char end = pc.getProvider().getParameterListEnd(); ks = KeyStroke.getKeyStroke(end); oldClosingKey = im.get(ks); im.put(ks, IM_KEY_CLOSING); oldClosingAction = am.get(IM_KEY_CLOSING); am.put(IM_KEY_CLOSING, new ClosingAction()); - } - - + /** * Moves to and selects the next parameter. * * @see #moveToPreviousParam() */ private void moveToNextParam() { - JTextComponent tc = ac.getTextComponent(); int dot = tc.getCaretPosition(); int tagCount = tags.size(); - if (tagCount==0) { + if (tagCount == 0) { tc.setCaretPosition(maxPos.getOffset()); deactivate(); } - Highlight currentNext = null; int pos = -1; List highlights = getParameterHighlights(); - for (int i=0; idot && - hl.getStartOffset()<=currentNext.getStartOffset())) { + // Java issue. Thanks to Matthew Adereth! + if (currentNext == null || currentNext.getStartOffset() < /* = */dot + || (hl.getStartOffset() > dot && hl.getStartOffset() <= currentNext.getStartOffset())) { currentNext = hl; pos = i; } } - // No params after caret - go to first one - if (currentNext.getStartOffset()+1<=dot) { + if (currentNext.getStartOffset() + 1 <= dot) { int nextIndex = getFirstHighlight(highlights); currentNext = highlights.get(nextIndex); pos = 0; } - // "+1" is a workaround for Java Highlight issues. - tc.setSelectionStart(currentNext.getStartOffset()+1); + tc.setSelectionStart(currentNext.getStartOffset() + 1); tc.setSelectionEnd(currentNext.getEndOffset()); updateToolTipText(pos); - } - - + /** * Moves to and selects the previous parameter. * * @see #moveToNextParam() */ private void moveToPreviousParam() { - JTextComponent tc = ac.getTextComponent(); - int tagCount = tags.size(); - if (tagCount==0) { // Should never happen + if (tagCount == 0) { // Should never happen tc.setCaretPosition(maxPos.getOffset()); deactivate(); } - int dot = tc.getCaretPosition(); - int selStart = tc.getSelectionStart()-1; // Workaround for Java Highlight issues. + int selStart = tc.getSelectionStart() - 1; // Workaround for Java + // Highlight issues. Highlight currentPrev = null; int pos = 0; List highlights = getParameterHighlights(); - - for (int i=0; i=dot || - (h.getStartOffset()currentPrev.getStartOffset() || - pos==lastSelectedParam))) { + if (currentPrev == null || currentPrev.getStartOffset() >= dot + || (h.getStartOffset() < selStart && (h.getStartOffset() > currentPrev.getStartOffset() || pos == lastSelectedParam))) { currentPrev = h; pos = i; } } - // Loop back from param 0 to last param. int firstIndex = getFirstHighlight(highlights); - //if (pos==0 && lastSelectedParam==0 && highlights.size()>1) { - if (pos==firstIndex && lastSelectedParam==firstIndex && highlights.size()>1) { + // if (pos==0 && lastSelectedParam==0 && highlights.size()>1) { + if (pos == firstIndex && lastSelectedParam == firstIndex && highlights.size() > 1) { pos = getLastHighlight(highlights); currentPrev = highlights.get(pos); - // "+1" is a workaround for Java Highlight issues. - tc.setSelectionStart(currentPrev.getStartOffset()+1); + // "+1" is a workaround for Java Highlight issues. + tc.setSelectionStart(currentPrev.getStartOffset() + 1); tc.setSelectionEnd(currentPrev.getEndOffset()); updateToolTipText(pos); - } - else if (currentPrev!=null && dot>currentPrev.getStartOffset()) { - // "+1" is a workaround for Java Highlight issues. - tc.setSelectionStart(currentPrev.getStartOffset()+1); + } else if (currentPrev != null && dot > currentPrev.getStartOffset()) { + // "+1" is a workaround for Java Highlight issues. + tc.setSelectionStart(currentPrev.getStartOffset() + 1); tc.setSelectionEnd(currentPrev.getEndOffset()); updateToolTipText(pos); - } - else { + } else { tc.setCaretPosition(maxPos.getOffset()); deactivate(); } - } - - + private void possiblyUpdateParamCopies(Document doc) { - int index = getCurrentParameterIndex(); // FunctionCompletions add an extra param at end of inserted text - if (index>-1 && index -1 && index < pc.getParamCount()) { // Typing in an "end parameter" => stop parameter assistance. Parameter param = pc.getParam(index); if (param.isEndParam()) { deactivate(); return; } - // Get the current value of the current parameter. List paramHighlights = getParameterHighlights(); Highlight h = paramHighlights.get(index); - int start = h.getStartOffset() + 1; // param offsets are offset (!) by 1 + int start = h.getStartOffset() + 1; // param offsets are offset (!) + // by 1 int len = h.getEndOffset() - start; String replacement = null; try { @@ -639,7 +556,6 @@ class ParameterizedCompletionContext { } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - // Replace any param copies tracking this parameter with the // value of this parameter. for (ParamCopyInfo pci : paramCopyInfos) { @@ -647,30 +563,22 @@ class ParameterizedCompletionContext { pci.h = replaceHighlightedText(doc, pci.h, replacement); } } - - } - - else { // Probably the "end parameter" for FunctionCompletions. + } else { // Probably the "end parameter" for FunctionCompletions. deactivate(); } - } - - + /** * Updates the optional window listing likely completion choices, */ private void prepareParamChoicesWindow() { - // If this window was set to null, the user pressed Escape to hide it - if (paramChoicesWindow!=null) { - + if (paramChoicesWindow != null) { int offs = getCurrentParameterStartOffset(); - if (offs==-1) { + if (offs == -1) { paramChoicesWindow.setVisible(false); return; } - JTextComponent tc = ac.getTextComponent(); try { Rectangle r = tc.modelToView(offs); @@ -683,22 +591,18 @@ class ParameterizedCompletionContext { UIManager.getLookAndFeel().provideErrorFeedback(tc); ble.printStackTrace(); } - // Toggles visibility, if necessary. paramChoicesWindow.setParameter(lastSelectedParam, paramPrefix); - } - } - - + /** * Removes the bounding boxes around parameters. */ private void removeParameterHighlights() { JTextComponent tc = ac.getTextComponent(); Highlighter h = tc.getHighlighter(); - for (int i=0; iHighlight classes are funny about insertions at * their start offsets. * - * @param doc The document. - * @param h The highlight whose text to change. - * @param replacement The new text to be in the highlight. + * @param doc + * The document. + * @param h + * The highlight whose text to change. + * @param replacement + * The new text to be in the highlight. * @return The replacement highlight for h. */ - private Highlight replaceHighlightedText(Document doc, Highlight h, - String replacement) { + private Highlight replaceHighlightedText(Document doc, Highlight h, String replacement) { try { - int start = h.getStartOffset(); int len = h.getEndOffset() - start; Highlighter highlighter = ac.getTextComponent().getHighlighter(); highlighter.removeHighlight(h); - if (doc instanceof AbstractDocument) { - ((AbstractDocument)doc).replace(start, len, replacement, null); - } - else { + ((AbstractDocument) doc).replace(start, len, replacement, null); + } else { doc.remove(start, len); doc.insertString(start, replacement, null); } - int newEnd = start + replacement.length(); - h = (Highlight)highlighter.addHighlight(start, newEnd, paramCopyP); + h = (Highlight) highlighter.addHighlight(start, newEnd, paramCopyP); return h; - } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - return null; - } - - + /** * Removes the key bindings we installed. * * @see #installKeyBindings() */ private void uninstallKeyBindings() { - if (AutoCompletion.getDebug()) { System.out.println("CompletionContext Uninstalling keybindings"); } - JTextComponent tc = ac.getTextComponent(); InputMap im = tc.getInputMap(); ActionMap am = tc.getActionMap(); - KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0); im.put(ks, oldTabKey); am.put(IM_KEY_TAB, oldTabAction); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_MASK); im.put(ks, oldShiftTabKey); am.put(IM_KEY_SHIFT_TAB, oldShiftTabAction); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0); im.put(ks, oldUpKey); am.put(IM_KEY_UP, oldUpAction); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0); im.put(ks, oldDownKey); am.put(IM_KEY_DOWN, oldDownAction); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); im.put(ks, oldEnterKey); am.put(IM_KEY_ENTER, oldEnterAction); - ks = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); im.put(ks, oldEscapeKey); am.put(IM_KEY_ESCAPE, oldEscapeAction); - char end = pc.getProvider().getParameterListEnd(); ks = KeyStroke.getKeyStroke(end); im.put(ks, oldClosingKey); am.put(IM_KEY_CLOSING, oldClosingAction); - } - - + /** * Updates the text in the tool tip to have the current parameter - * displayed in bold. The "current parameter" is determined from the + * displayed in bold. The "current parameter" is determined from the * current caret position. * * @return The "prefix" of text in the caret's parameter before the caret. */ private String updateToolTipText() { - JTextComponent tc = ac.getTextComponent(); int dot = tc.getSelectionStart(); int mark = tc.getSelectionEnd(); int index = -1; String paramPrefix = null; - List paramHighlights = getParameterHighlights(); - for (int i=0; i=start && dot<=h.getEndOffset()) { + int start = h.getStartOffset() + 1; + if (dot >= start && dot <= h.getEndOffset()) { try { // All text selected => offer all suggestions, otherwise // use prefix before selection - if (dot!=start || mark!=h.getEndOffset()) { - paramPrefix = tc.getText(start, dot-start); + if (dot != start || mark != h.getEndOffset()) { + paramPrefix = tc.getText(start, dot - start); } } catch (BadLocationException ble) { ble.printStackTrace(); @@ -831,184 +715,158 @@ class ParameterizedCompletionContext { break; } } - updateToolTipText(index); return paramPrefix; - } - - + private void updateToolTipText(int selectedParam) { - if (selectedParam!=lastSelectedParam) { - if (tip!=null) { + if (selectedParam != lastSelectedParam) { + if (tip != null) { tip.updateText(selectedParam); } this.lastSelectedParam = selectedParam; } } - - + /** * Updates the LookAndFeel of all popup windows this context * manages. */ public void updateUI() { - if (tip!=null) { + if (tip != null) { tip.updateUI(); } - if (paramChoicesWindow!=null) { + if (paramChoicesWindow != null) { paramChoicesWindow.updateUI(); } } - - + /** * Called when the user presses Enter while entering parameters. */ private class GotoEndAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { - // If the param choices window is visible and something is chosen, // replace the parameter with it and move to the next one. - if (paramChoicesWindow!=null && paramChoicesWindow.isVisible()) { + if (paramChoicesWindow != null && paramChoicesWindow.isVisible()) { if (insertSelectedChoice()) { return; } } - // Otherwise, just move to the end. deactivate(); JTextComponent tc = ac.getTextComponent(); int dot = tc.getCaretPosition(); - if (dot!=defaultEndOffs.getOffset()) { + if (dot != defaultEndOffs.getOffset()) { tc.setCaretPosition(defaultEndOffs.getOffset()); - } - else { + } else { // oldEnterAction isn't what we're looking for (wrong key) Action a = getDefaultEnterAction(tc); - if (a!=null) { + if (a != null) { a.actionPerformed(e); - } - else { + } else { tc.replaceSelection("\n"); } } - } - + private Action getDefaultEnterAction(JTextComponent tc) { ActionMap am = tc.getActionMap(); return am.get(DefaultEditorKit.insertBreakAction); } - } - - + /** * Called when the user types the character marking the closing of the * parameter list, such as ')'. */ private class ClosingAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { - JTextComponent tc = ac.getTextComponent(); int dot = tc.getCaretPosition(); char end = pc.getProvider().getParameterListEnd(); - // Are they at or past the end of the parameters? - if (dot>=maxPos.getOffset()-2) { // ">=" for overwrite mode - + if (dot >= maxPos.getOffset() - 2) { // ">=" for overwrite mode // Try to decide if we're closing a paren that is a part // of the (last) arg being typed. String text = getArgumentText(dot); - if (text!=null) { + if (text != null) { char start = pc.getProvider().getParameterListStart(); int startCount = getCount(text, start); int endCount = getCount(text, end); - if (startCount>endCount) { // Just closing a paren + if (startCount > endCount) { // Just closing a paren tc.replaceSelection(Character.toString(end)); return; } } - //tc.setCaretPosition(maxPos.getOffset()); - tc.setCaretPosition(Math.min(tc.getCaretPosition()+1, - tc.getDocument().getLength())); - + // tc.setCaretPosition(maxPos.getOffset()); + tc.setCaretPosition(Math.min(tc.getCaretPosition() + 1, tc.getDocument().getLength())); deactivate(); - } - // If not (in the middle of parameters), just insert the paren. else { tc.replaceSelection(Character.toString(end)); } - } - + public int getCount(String text, char ch) { int count = 0; int old = 0; int pos = 0; - while ((pos=text.indexOf(ch, old))>-1) { + while ((pos = text.indexOf(ch, old)) > -1) { count++; old = pos + 1; } - return count; } - } - - + /** * Action performed when the user hits the escape key. */ private class HideAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { // On first escape press, if the param choices window is visible, - // just remove it, but keep ability to tab through params. If + // just remove it, but keep ability to tab through params. If // param choices window isn't visible, or second escape press, // exit tabbing through params entirely. - if (paramChoicesWindow!=null && paramChoicesWindow.isVisible()) { + if (paramChoicesWindow != null && paramChoicesWindow.isVisible()) { paramChoicesWindow.setVisible(false); paramChoicesWindow = null; - } - else { + } else { deactivate(); } } - } - - + /** * Listens for various events in the text component while this tool tip * is visible. */ - private class Listener implements FocusListener, CaretListener, - DocumentListener { - + private class Listener implements FocusListener, CaretListener, DocumentListener { + private boolean markOccurrencesEnabled; - + /** * Called when the text component's caret moves. * - * @param e The event. + * @param e + * The event. */ @Override public void caretUpdate(CaretEvent e) { - if (maxPos==null) { // Sanity check + if (maxPos == null) { // Sanity check deactivate(); return; } int dot = e.getDot(); - if (dotmaxPos.getOffset()) { + if (dot < minPos || dot > maxPos.getOffset()) { deactivate(); return; } @@ -1017,39 +875,37 @@ class ParameterizedCompletionContext { prepareParamChoicesWindow(); } } - - + @Override - public void changedUpdate(DocumentEvent e) { - } - - + public void changedUpdate(DocumentEvent e) {} + /** * Called when the text component gains focus. * - * @param e The event. + * @param e + * The event. */ @Override public void focusGained(FocusEvent e) { // Do nothing } - - + /** * Called when the text component loses focus. * - * @param e The event. + * @param e + * The event. */ @Override public void focusLost(FocusEvent e) { deactivate(); } - - + private void handleDocumentEvent(final DocumentEvent e) { if (!ignoringDocumentEvents) { ignoringDocumentEvents = true; SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { possiblyUpdateParamCopies(e.getDocument()); @@ -1058,192 +914,154 @@ class ParameterizedCompletionContext { }); } } - - + @Override public void insertUpdate(DocumentEvent e) { handleDocumentEvent(e); } - - + /** * Installs this listener onto a text component. * - * @param tc The text component to install onto. + * @param tc + * The text component to install onto. * @see #uninstall() */ public void install(JTextComponent tc) { - boolean replaceTabs = false; if (tc instanceof RSyntaxTextArea) { - RSyntaxTextArea textArea = (RSyntaxTextArea)tc; + RSyntaxTextArea textArea = (RSyntaxTextArea) tc; markOccurrencesEnabled = textArea.getMarkOccurrences(); textArea.setMarkOccurrences(false); replaceTabs = textArea.getTabsEmulated(); } - Highlighter h = tc.getHighlighter(); - try { - // Insert the parameter text - ParameterizedCompletionInsertionInfo info = - pc.getInsertionInfo(tc, replaceTabs); + ParameterizedCompletionInsertionInfo info = pc.getInsertionInfo(tc, replaceTabs); tc.replaceSelection(info.getTextToInsert()); - // Add highlights around the parameters. final int replacementCount = info.getReplacementCount(); - for (int i=0; iscreenBounds.x+screenBounds.width) { // completions don't fit + } else if (x + tooltip.getWidth() > screenBounds.x + screenBounds.width) { // completions + // don't + // fit x = screenBounds.x + screenBounds.width - tooltip.getWidth(); } - tooltip.setLocation(x, y); - } - - + /** * Toggles the visibility of this tool tip. * - * @param visible Whether this tool tip should be visible. + * @param visible + * Whether this tool tip should be visible. * @see #isVisible() */ public void setVisible(boolean visible) { tooltip.setVisible(visible); } - - + /** * Updates the text in the tool tip to have the current parameter * displayed in bold. * - * @param selectedParam The index of the selected parameter. + * @param selectedParam + * The index of the selected parameter. * @return Whether the text needed to be updated. */ public boolean updateText(int selectedParam) { - StringBuilder sb = new StringBuilder(""); int paramCount = pc.getParamCount(); - for (int i=0; i"); } - // Some parameter types may have chars in them unfriendly to HTML - // (such as type parameters in Java). We need to take care to + // (such as type parameters in Java). We need to take care to // escape these. String temp = pc.getParam(i).toString(); sb.append(RSyntaxUtilities.escapeForHtml(temp, "
", false)); - - if (i==selectedParam) { + if (i == selectedParam) { sb.append(""); } - if (i=0 && selectedParam= 0 && selectedParam < paramCount) { + ParameterizedCompletion.Parameter param = pc.getParam(selectedParam); String desc = param.getDescription(); - if (desc!=null) { + if (desc != null) { sb.append("
"); sb.append(desc); } } - descLabel.setText(sb.toString()); tooltip.pack(); - return true; - } - - + /** * Updates the LookAndFeel of this window and the description * window. @@ -206,6 +178,4 @@ class ParameterizedCompletionDescriptionToolTip { public void updateUI() { SwingUtilities.updateComponentTreeUI(tooltip); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/ParameterizedCompletionInsertionInfo.java b/src/org/fife/ui/autocomplete/ParameterizedCompletionInsertionInfo.java index 563a29a..acd48e8 100644 --- a/src/org/fife/ui/autocomplete/ParameterizedCompletionInsertionInfo.java +++ b/src/org/fife/ui/autocomplete/ParameterizedCompletionInsertionInfo.java @@ -1,21 +1,19 @@ /* * 05/26/2012 - * * ParameterizedCompletionInsertionInfo.java - Used internally to track the * changes required for a specific parameterized completion. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import java.util.ArrayList; import java.util.List; + import javax.swing.text.Position; import org.fife.ui.rsyntaxtextarea.DocumentRange; - /** * Describes a parameterized completion - what's being inserted, where the * parameters are in the inserted text, etc. @@ -24,7 +22,7 @@ import org.fife.ui.rsyntaxtextarea.DocumentRange; * @version 1.0 */ class ParameterizedCompletionInsertionInfo { - + private int minOffs; private Position maxOffs; private int defaultEnd; @@ -33,43 +31,40 @@ class ParameterizedCompletionInsertionInfo { private String textToInsert; private List replacementLocations; private List replacementCopies; - - + public ParameterizedCompletionInsertionInfo() { defaultEnd = -1; } - - + public void addReplacementCopy(String id, int start, int end) { - if (replacementCopies==null) { + if (replacementCopies == null) { replacementCopies = new ArrayList(1); } replacementCopies.add(new ReplacementCopy(id, start, end)); } - - + /** * Marks a region of the replacement text as representing a variable name * or some other construct that the user should replace. * - * @param start The start offset. - * @param end The end offset. + * @param start + * The start offset. + * @param end + * The end offset. * @see #getReplacementCount() * @see #getReplacementLocation(int) */ public void addReplacementLocation(int start, int end) { - if (replacementLocations==null) { + if (replacementLocations == null) { replacementLocations = new ArrayList(1); } replacementLocations.add(new DocumentRange(start, end)); } - - + public int getDefaultEndOffs() { - return defaultEnd>-1 ? defaultEnd : getMaxOffset().getOffset(); + return defaultEnd > -1 ? defaultEnd : getMaxOffset().getOffset(); } - - + /** * Returns the maximum offset the caret can move to before being outside * of the text inserted for this completion. @@ -80,8 +75,7 @@ class ParameterizedCompletionInsertionInfo { public Position getMaxOffset() { return maxOffs; } - - + /** * Returns the minimum offset the caret can move to before being outside * of the text inserted for this completion. @@ -92,41 +86,37 @@ class ParameterizedCompletionInsertionInfo { public int getMinOffset() { return minOffs; } - - + public int getReplacementCopyCount() { - return replacementCopies==null ? 0 : replacementCopies.size(); + return replacementCopies == null ? 0 : replacementCopies.size(); } - - + /** * Returns the number of replacements in the completion. * * @return The number of replacements in the completion. */ public int getReplacementCount() { - return replacementLocations==null ? 0 : replacementLocations.size(); + return replacementLocations == null ? 0 : replacementLocations.size(); } - - + public ReplacementCopy getReplacementCopy(int index) { return replacementCopies.get(index); } - - + /** * Returns the starting- and ending-offsets of the replacement regions * in the completion. * - * @param index The replacement region. + * @param index + * The replacement region. * @return The range in the document of that replacement region. * @see #getReplacementCount() */ public DocumentRange getReplacementLocation(int index) { return replacementLocations.get(index); } - - + /** * Returns the offset that should be the end of the initially selected * text when the completion is inserted (i.e., the end offset of the first @@ -138,8 +128,7 @@ class ParameterizedCompletionInsertionInfo { public int getSelectionEnd() { return selEnd; } - - + /** * Returns the offset that should be the start of the initially selected * text when the completion is inserted (i.e., the start offset of the @@ -151,8 +140,7 @@ class ParameterizedCompletionInsertionInfo { public int getSelectionStart() { return selStart; } - - + /** * Returns the actual text to insert when the completion is selected. * @@ -162,8 +150,7 @@ class ParameterizedCompletionInsertionInfo { public String getTextToInsert() { return textToInsert; } - - + /** * Returns whether or not there is an initial selected region for the * completion (i.e., whether the completion actually has any parameters). @@ -171,15 +158,16 @@ class ParameterizedCompletionInsertionInfo { * @return Whether there is a region to initially select for the completion. */ public boolean hasSelection() { - return selEnd!=selStart; + return selEnd != selStart; } - - + /** * Sets the initially selected region for the completion. * - * @param selStart The selection start. - * @param selEnd The selection end. + * @param selStart + * The selection start. + * @param selEnd + * The selection end. * @see #getSelectionEnd() * @see #getSelectionStart() */ @@ -187,15 +175,16 @@ class ParameterizedCompletionInsertionInfo { this.selStart = selStart; this.selEnd = selEnd; } - - + /** * Sets the document range the caret can move around in before being * outside of the text inserted for the completion. * - * @param minOffs The minimum offset. - * @param maxOffs The maximum offset, that will track its location as the - * document is modified. + * @param minOffs + * The minimum offset. + * @param maxOffs + * The maximum offset, that will track its location as the + * document is modified. * @see #getMinOffset() * @see #getMaxOffset() */ @@ -203,49 +192,44 @@ class ParameterizedCompletionInsertionInfo { this.minOffs = minOffs; this.maxOffs = maxOffs; } - - + public void setDefaultEndOffs(int end) { defaultEnd = end; } - - + /** * Sets the text to insert for the completion. * - * @param text The text to insert. + * @param text + * The text to insert. * @see #getTextToInsert() */ public void setTextToInsert(String text) { this.textToInsert = text; } - - + public static class ReplacementCopy { - + private String id; private int start; private int end; - + public ReplacementCopy(String id, int start, int end) { this.id = id; this.start = start; this.end = end; } - + public int getEnd() { return end; } - + public String getId() { return id; } - + public int getStart() { return start; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/RoundRobinAutoCompletion.java b/src/org/fife/ui/autocomplete/RoundRobinAutoCompletion.java index b525b04..add9e17 100644 --- a/src/org/fife/ui/autocomplete/RoundRobinAutoCompletion.java +++ b/src/org/fife/ui/autocomplete/RoundRobinAutoCompletion.java @@ -1,7 +1,6 @@ /* * 12/02/2013 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -12,14 +11,15 @@ import java.util.List; import javax.swing.Action; - /** * An AutoCompletion that adds the ability to cycle through a set - * of CompletionProviders via the trigger key. This allows the + * of CompletionProviders via the trigger key. This allows the * application to logically "group together" completions of similar kinds; - * for example, Java code completions vs. template completions.

+ * for example, Java code completions vs. template completions. + *

* * Usage: + * *

  * XPathDynamicCompletionProvider dynamicProvider = new XPathDynamicCompletionProvider();
  * RoundRobinAutoCompletion ac = new RoundRobinAutoCompletion(dynamicProvider);
@@ -33,22 +33,20 @@ import javax.swing.Action;
  * @author mschlegel
  */
 public class RoundRobinAutoCompletion extends AutoCompletion {
-
+	
 	/** The List of CompletionProviders to use */
 	private List cycle = new ArrayList();
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param provider A single completion provider.
+	 * @param provider
+	 *            A single completion provider.
 	 * @see #addCompletionProvider(CompletionProvider)
 	 */
 	public RoundRobinAutoCompletion(CompletionProvider provider) {
-
 		super(provider);
 		cycle.add(provider);
-
 		// principal requirement for round-robin
 		setHideOnCompletionProviderChange(false);
 		// this is required since otherwise, on empty list of completions for
@@ -59,21 +57,19 @@ public class RoundRobinAutoCompletion extends AutoCompletion {
 		// the completion since the user may want the second provider to be
 		// chosen.
 		setAutoCompleteSingleChoices(false);
-
 	}
-
-
+	
 	/**
 	 * Adds an additional CompletionProvider to the list to
 	 * cycle through.
 	 *
-	 * @param provider The new completion provider.
+	 * @param provider
+	 *            The new completion provider.
 	 */
 	public void addCompletionProvider(CompletionProvider provider) {
 		cycle.add(provider);
 	}
-
-
+	
 	/**
 	 * Moves to the next Provider internally. Needs refresh of the popup window
 	 * to display the changes.
@@ -84,12 +80,11 @@ public class RoundRobinAutoCompletion extends AutoCompletion {
 	 */
 	public boolean advanceProvider() {
 		CompletionProvider currentProvider = getCompletionProvider();
-		int i = (cycle.indexOf(currentProvider)+1) % cycle.size();
+		int i = (cycle.indexOf(currentProvider) + 1) % cycle.size();
 		setCompletionProvider(cycle.get(i));
-		return i==0;
+		return i == 0;
 	}
-
-
+	
 	/**
 	 * Overridden to provide our own implementation of the action.
 	 */
@@ -97,8 +92,7 @@ public class RoundRobinAutoCompletion extends AutoCompletion {
 	protected Action createAutoCompleteAction() {
 		return new CycleAutoCompleteAction();
 	}
-
-
+	
 	/**
 	 * Resets the cycle to use the default provider on next refresh.
 	 */
@@ -109,46 +103,44 @@ public class RoundRobinAutoCompletion extends AutoCompletion {
 			setCompletionProvider(defaultProvider);
 		}
 	}
-
-
+	
 	/**
 	 * An implementation of the auto-complete action that ensures the proper
 	 * CompletionProvider is displayed based on the context in
 	 * which the user presses the trigger key.
 	 */
 	private class CycleAutoCompleteAction extends AutoCompleteAction {
-
+		
 		@Override
 		public void actionPerformed(ActionEvent e) {
 			if (isAutoCompleteEnabled()) {
 				if (isPopupVisible()) {
 					// The popup is already visible, and user pressed the
-					// trigger-key.  In this case, move to next provider.
+					// trigger-key. In this case, move to next provider.
 					advanceProvider();
-				}
-				else {
+				} else {
 					// Be sure to start with the default provider
 					resetProvider();
 				}
-				//Check if there are completions from the current provider. If not, advance to the next provider and display that one.
-				//A completion provider can force displaying "his" empty completion pop-up by returning an empty BasicCompletion. This is useful when the user is typing backspace and you like to display the first provider always first.
-				for (int i=1; i completions = getCompletionProvider().getCompletions(getTextComponent());
 					if (completions.size() > 0) {
-						//nothing to do, just let the current provider display
+						// nothing to do, just let the current provider display
 						break;
-					}
-					else{
-						//search for non-empty completions
+					} else {
+						// search for non-empty completions
 						advanceProvider();
 					}
 				}
 			}
 			super.actionPerformed(e);
 		}
-
 	}
-
-
 	// TODO add label "Ctrl-Space for " to the popup window
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/autocomplete/ShorthandCompletion.java b/src/org/fife/ui/autocomplete/ShorthandCompletion.java
index 67e92a7..81e6c6d 100644
--- a/src/org/fife/ui/autocomplete/ShorthandCompletion.java
+++ b/src/org/fife/ui/autocomplete/ShorthandCompletion.java
@@ -1,18 +1,15 @@
 /*
  * 12/22/2008
- *
  * ShorhandCompletion.java - A completion that is shorthand for some other
  * text.
- * 
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * AutoComplete.License.txt file for details.
  */
 package org.fife.ui.autocomplete;
 
-
 /**
  * A completion where the input text is shorthand for (really, just different
- * than) the actual text to be inserted.  For example, the input text
+ * than) the actual text to be inserted. For example, the input text
  * "sysout" could be associated with the completion
  * "System.out.println(" in Java.
  *
@@ -20,61 +17,68 @@ package org.fife.ui.autocomplete;
  * @version 1.0
  */
 public class ShorthandCompletion extends BasicCompletion {
-
+	
 	/**
 	 * The text the user can start typing that will match this completion.
 	 */
 	private String inputText;
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param provider The provider that returns this completion.
-	 * @param inputText The text the user inputs to get this completion.
-	 * @param replacementText The replacement text of the completion.
+	 * @param provider
+	 *            The provider that returns this completion.
+	 * @param inputText
+	 *            The text the user inputs to get this completion.
+	 * @param replacementText
+	 *            The replacement text of the completion.
 	 */
-	public ShorthandCompletion(CompletionProvider provider, String inputText,
-								String replacementText) {
+	public ShorthandCompletion(CompletionProvider provider, String inputText, String replacementText) {
 		super(provider, replacementText);
 		this.inputText = inputText;
 	}
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param provider The provider that returns this completion.
-	 * @param inputText The text the user inputs to get this completion.
-	 * @param replacementText The replacement text of the completion.
-	 * @param shortDesc A short description of the completion.  This will be
-	 *        displayed in the completion list.  This may be null.
+	 * @param provider
+	 *            The provider that returns this completion.
+	 * @param inputText
+	 *            The text the user inputs to get this completion.
+	 * @param replacementText
+	 *            The replacement text of the completion.
+	 * @param shortDesc
+	 *            A short description of the completion. This will be
+	 *            displayed in the completion list. This may be
+	 *            null.
 	 */
-	public ShorthandCompletion(CompletionProvider provider, String inputText,
-								String replacementText, String shortDesc) {
+	public ShorthandCompletion(CompletionProvider provider, String inputText, String replacementText, String shortDesc) {
 		super(provider, replacementText, shortDesc);
 		this.inputText = inputText;
 	}
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param provider The provider that returns this completion.
-	 * @param inputText The text the user inputs to get this completion.
-	 * @param replacementText The replacement text of the completion.
-	 * @param shortDesc A short description of the completion.  This will be
-	 *        displayed in the completion list.  This may be null.
-	 * @param summary The summary of this completion.  This should be HTML.
-	 *        This may be null.
+	 * @param provider
+	 *            The provider that returns this completion.
+	 * @param inputText
+	 *            The text the user inputs to get this completion.
+	 * @param replacementText
+	 *            The replacement text of the completion.
+	 * @param shortDesc
+	 *            A short description of the completion. This will be
+	 *            displayed in the completion list. This may be
+	 *            null.
+	 * @param summary
+	 *            The summary of this completion. This should be HTML.
+	 *            This may be null.
 	 */
-	public ShorthandCompletion(CompletionProvider provider, String inputText,
-					String replacementText, String shortDesc, String summary) {
+	public ShorthandCompletion(CompletionProvider provider, String inputText, String replacementText, String shortDesc, String summary) {
 		super(provider, replacementText, shortDesc, summary);
 		this.inputText = inputText;
 	}
-
-
+	
 	/**
 	 * Returns the text the user must start typing to get this completion.
 	 *
@@ -84,10 +88,9 @@ public class ShorthandCompletion extends BasicCompletion {
 	public String getInputText() {
 		return inputText;
 	}
-
-
+	
 	/**
-	 * If a summary has been set, that summary is returned.  Otherwise, the
+	 * If a summary has been set, that summary is returned. Otherwise, the
 	 * replacement text is returned.
 	 *
 	 * @return A description of this completion (the text that will be
@@ -97,13 +100,12 @@ public class ShorthandCompletion extends BasicCompletion {
 	@Override
 	public String getSummary() {
 		String summary = super.getSummary();
-		return summary!=null ? summary : ("" + getSummaryBody());
+		return summary != null ? summary : ("" + getSummaryBody());
 	}
-
-
+	
 	/**
 	 * Returns the "body" of the HTML returned by {@link #getSummary()} when
-	 * no summary text has been set.  This is defined to return the replacement
+	 * no summary text has been set. This is defined to return the replacement
 	 * text in a monospaced font.
 	 *
 	 * @return The summary text's body, if no other summary has been defined.
@@ -112,6 +114,4 @@ public class ShorthandCompletion extends BasicCompletion {
 	protected String getSummaryBody() {
 		return "" + getReplacementText();
 	}
-
-
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/autocomplete/SizeGrip.java b/src/org/fife/ui/autocomplete/SizeGrip.java
index 7fd2219..6ee35ed 100644
--- a/src/org/fife/ui/autocomplete/SizeGrip.java
+++ b/src/org/fife/ui/autocomplete/SizeGrip.java
@@ -1,10 +1,8 @@
 /*
  * 12/23/2008
- *
  * SizeGrip.java - A size grip component that sits at the bottom of the window,
  * allowing the user to easily resize that window.
- * 
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * AutoComplete.License.txt file for details.
  */
 package org.fife.ui.autocomplete;
@@ -22,16 +20,16 @@ import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
+
 import javax.imageio.ImageIO;
 import javax.swing.JPanel;
 import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
 import javax.swing.event.MouseInputAdapter;
 
-
 /**
  * A component that allows its parent window to be resizable, similar to the
- * size grip seen on status bars.  This is essentially a copy of the class with
+ * size grip seen on status bars. This is essentially a copy of the class with
  * the same name in RSyntaxTextArea, but is duplicated to prevent a dependency
  * on that library.
  *
@@ -39,34 +37,32 @@ import javax.swing.event.MouseInputAdapter;
  * @version 1.0
  */
 class SizeGrip extends JPanel {
-
+	
 	/**
 	 * The size grip to use if we're on OS X.
 	 */
 	private Image osxSizeGrip;
-
-
+	
 	public SizeGrip() {
 		MouseHandler adapter = new MouseHandler();
 		addMouseListener(adapter);
 		addMouseMotionListener(adapter);
 		setPreferredSize(new Dimension(16, 16));
 	}
-
-
+	
 	/**
 	 * Overridden to ensure that the cursor for this component is appropriate
 	 * for the orientation.
 	 *
-	 * @param o The new orientation.
+	 * @param o
+	 *            The new orientation.
 	 */
 	@Override
 	public void applyComponentOrientation(ComponentOrientation o) {
 		possiblyFixCursor(o.isLeftToRight());
 		super.applyComponentOrientation(o);
 	}
-
-
+	
 	/**
 	 * Creates and returns the OS X size grip image.
 	 *
@@ -75,7 +71,7 @@ class SizeGrip extends JPanel {
 	private Image createOSXSizeGrip() {
 		ClassLoader cl = getClass().getClassLoader();
 		URL url = cl.getResource("org/fife/ui/autocomplete/osx_sizegrip.png");
-		if (url==null) {
+		if (url == null) {
 			// We're not running in a jar - we may be debugging in Eclipse,
 			// for example
 			File f = new File("../AutoComplete/src/org/fife/ui/autocomplete/osx_sizegrip.png");
@@ -86,8 +82,7 @@ class SizeGrip extends JPanel {
 					mue.printStackTrace();
 					return null;
 				}
-			}
-			else {
+			} else {
 				return null; // Can't find resource or image file
 			}
 		}
@@ -99,102 +94,91 @@ class SizeGrip extends JPanel {
 		}
 		return image;
 	}
-
-
+	
 	/**
 	 * Paints this panel.
 	 *
-	 * @param g The graphics context.
+	 * @param g
+	 *            The graphics context.
 	 */
 	@Override
 	protected void paintComponent(Graphics g) {
-
 		super.paintComponent(g);
-
 		Dimension dim = getSize();
-
-		if (osxSizeGrip!=null) {
-			g.drawImage(osxSizeGrip, dim.width-16, dim.height-16, null);
+		if (osxSizeGrip != null) {
+			g.drawImage(osxSizeGrip, dim.width - 16, dim.height - 16, null);
 			return;
 		}
-
 		Color c1 = UIManager.getColor("Label.disabledShadow");
 		Color c2 = UIManager.getColor("Label.disabledForeground");
 		ComponentOrientation orientation = getComponentOrientation();
-
 		if (orientation.isLeftToRight()) {
-			int width = dim.width  -= 3;
+			int width = dim.width -= 3;
 			int height = dim.height -= 3;
 			g.setColor(c1);
-			g.fillRect(width-9,height-1, 3,3);
-			g.fillRect(width-5,height-1, 3,3);
-			g.fillRect(width-1,height-1, 3,3);
-			g.fillRect(width-5,height-5, 3,3);
-			g.fillRect(width-1,height-5, 3,3);
-			g.fillRect(width-1,height-9, 3,3);
+			g.fillRect(width - 9, height - 1, 3, 3);
+			g.fillRect(width - 5, height - 1, 3, 3);
+			g.fillRect(width - 1, height - 1, 3, 3);
+			g.fillRect(width - 5, height - 5, 3, 3);
+			g.fillRect(width - 1, height - 5, 3, 3);
+			g.fillRect(width - 1, height - 9, 3, 3);
 			g.setColor(c2);
-			g.fillRect(width-9,height-1, 2,2);
-			g.fillRect(width-5,height-1, 2,2);
-			g.fillRect(width-1,height-1, 2,2);
-			g.fillRect(width-5,height-5, 2,2);
-			g.fillRect(width-1,height-5, 2,2);
-			g.fillRect(width-1,height-9, 2,2);
-		}
-		else {
+			g.fillRect(width - 9, height - 1, 2, 2);
+			g.fillRect(width - 5, height - 1, 2, 2);
+			g.fillRect(width - 1, height - 1, 2, 2);
+			g.fillRect(width - 5, height - 5, 2, 2);
+			g.fillRect(width - 1, height - 5, 2, 2);
+			g.fillRect(width - 1, height - 9, 2, 2);
+		} else {
 			int height = dim.height -= 3;
 			g.setColor(c1);
-			g.fillRect(10,height-1, 3,3);
-			g.fillRect(6,height-1, 3,3);
-			g.fillRect(2,height-1, 3,3);
-			g.fillRect(6,height-5, 3,3);
-			g.fillRect(2,height-5, 3,3);
-			g.fillRect(2,height-9, 3,3);
+			g.fillRect(10, height - 1, 3, 3);
+			g.fillRect(6, height - 1, 3, 3);
+			g.fillRect(2, height - 1, 3, 3);
+			g.fillRect(6, height - 5, 3, 3);
+			g.fillRect(2, height - 5, 3, 3);
+			g.fillRect(2, height - 9, 3, 3);
 			g.setColor(c2);
-			g.fillRect(10,height-1, 2,2);
-			g.fillRect(6,height-1, 2,2);
-			g.fillRect(2,height-1, 2,2);
-			g.fillRect(6,height-5, 2,2);
-			g.fillRect(2,height-5, 2,2);
-			g.fillRect(2,height-9, 2,2);
+			g.fillRect(10, height - 1, 2, 2);
+			g.fillRect(6, height - 1, 2, 2);
+			g.fillRect(2, height - 1, 2, 2);
+			g.fillRect(6, height - 5, 2, 2);
+			g.fillRect(2, height - 5, 2, 2);
+			g.fillRect(2, height - 9, 2, 2);
 		}
-
 	}
-
-
+	
 	/**
 	 * Ensures that the cursor for this component is appropriate for the
 	 * orientation.
 	 *
-	 * @param ltr Whether the current component orientation is LTR.
+	 * @param ltr
+	 *            Whether the current component orientation is LTR.
 	 */
 	protected void possiblyFixCursor(boolean ltr) {
 		int cursor = Cursor.NE_RESIZE_CURSOR;
 		if (ltr) {
 			cursor = Cursor.NW_RESIZE_CURSOR;
 		}
-		if (cursor!=getCursor().getType()) {
+		if (cursor != getCursor().getType()) {
 			setCursor(Cursor.getPredefinedCursor(cursor));
 		}
 	}
-
-
+	
 	@Override
 	public void updateUI() {
 		super.updateUI();
 		// TODO: Key off of Aqua LaF, not just OS X, as this size grip looks
 		// bad on other LaFs on Mac such as Nimbus.
 		if (System.getProperty("os.name").contains("OS X")) {
-			if (osxSizeGrip==null) {
+			if (osxSizeGrip == null) {
 				osxSizeGrip = createOSXSizeGrip();
 			}
-		}
-		else { // Clear memory in case of runtime LaF change.
+		} else { // Clear memory in case of runtime LaF change.
 			osxSizeGrip = null;
 		}
-
 	}
-
-
+	
 	/**
 	 * Listens for mouse events on this panel and resizes the parent window
 	 * appropriately.
@@ -206,9 +190,9 @@ class SizeGrip extends JPanel {
 	 * started happening somewhere - our window would grow way too large.
 	 */
 	private class MouseHandler extends MouseInputAdapter {
-
+		
 		private Point origPos;
-
+		
 		@Override
 		public void mouseDragged(MouseEvent e) {
 			Point newPos = e.getPoint();
@@ -216,21 +200,20 @@ class SizeGrip extends JPanel {
 			int xDelta = newPos.x - origPos.x;
 			int yDelta = newPos.y - origPos.y;
 			Window wind = SwingUtilities.getWindowAncestor(SizeGrip.this);
-			if (wind!=null) { // Should always be true
+			if (wind != null) { // Should always be true
 				if (getComponentOrientation().isLeftToRight()) {
 					int w = wind.getWidth();
-					if (newPos.x>=wind.getX()) {
+					if (newPos.x >= wind.getX()) {
 						w += xDelta;
 					}
 					int h = wind.getHeight();
-					if (newPos.y>=wind.getY()) {
+					if (newPos.y >= wind.getY()) {
 						h += yDelta;
 					}
-					wind.setSize(w,h);
-				}
-				else { // RTL
-					int newW = Math.max(1, wind.getWidth()-xDelta);
-					int newH = Math.max(1, wind.getHeight()+yDelta);
+					wind.setSize(w, h);
+				} else { // RTL
+					int newW = Math.max(1, wind.getWidth() - xDelta);
+					int newH = Math.max(1, wind.getHeight() + yDelta);
 					wind.setBounds(newPos.x, wind.getY(), newW, newH);
 				}
 				// invalidate()/validate() needed pre-1.6.
@@ -239,19 +222,16 @@ class SizeGrip extends JPanel {
 			}
 			origPos.setLocation(newPos);
 		}
-
+		
 		@Override
 		public void mousePressed(MouseEvent e) {
 			origPos = e.getPoint();
 			SwingUtilities.convertPointToScreen(origPos, SizeGrip.this);
 		}
-
+		
 		@Override
 		public void mouseReleased(MouseEvent e) {
 			origPos = null;
 		}
-
 	}
-
-
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/autocomplete/SortByRelevanceComparator.java b/src/org/fife/ui/autocomplete/SortByRelevanceComparator.java
index efd8294..09c32b0 100644
--- a/src/org/fife/ui/autocomplete/SortByRelevanceComparator.java
+++ b/src/org/fife/ui/autocomplete/SortByRelevanceComparator.java
@@ -1,17 +1,14 @@
 /*
  * 12/17/2010
- *
  * SortByRelevanceComparator.java - Sorts two Completions by relevance before
  * sorting them lexicographically.
- * 
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * AutoComplete.License.txt file for details.
  */
 package org.fife.ui.autocomplete;
 
 import java.util.Comparator;
 
-
 /**
  * Compares two Completions by their relevance before
  * sorting them lexicographically.
@@ -20,15 +17,12 @@ import java.util.Comparator;
  * @version 1.0
  */
 public class SortByRelevanceComparator implements Comparator {
-
-
+	
 	@Override
 	public int compare(Completion c1, Completion c2) {
 		int rel1 = c1.getRelevance();
 		int rel2 = c2.getRelevance();
-		int diff = rel2 - rel1;//rel1 - rel2;
-		return diff==0 ? c1.compareTo(c2) : diff;
+		int diff = rel2 - rel1;// rel1 - rel2;
+		return diff == 0 ? c1.compareTo(c2) : diff;
 	}
-
-
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/autocomplete/TemplateCompletion.java b/src/org/fife/ui/autocomplete/TemplateCompletion.java
index 7612d01..29b4c71 100644
--- a/src/org/fife/ui/autocomplete/TemplateCompletion.java
+++ b/src/org/fife/ui/autocomplete/TemplateCompletion.java
@@ -1,17 +1,16 @@
 /*
  * 05/26/2012
- *
  * TemplateCompletion.java - A completion used to insert boilerplate code
  * snippets that have arbitrary sections the user will want to change, such as
  * for-loops.
- * 
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * AutoComplete.License.txt file for details.
  */
 package org.fife.ui.autocomplete;
 
 import java.util.ArrayList;
 import java.util.List;
+
 import javax.swing.text.BadLocationException;
 import javax.swing.text.Document;
 import javax.swing.text.JTextComponent;
@@ -23,13 +22,13 @@ import org.fife.ui.autocomplete.TemplatePiece.ParamCopy;
 import org.fife.ui.autocomplete.TemplatePiece.Text;
 import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities;
 
-
 /**
  * A completion made up of a template with arbitrary parameters that the user
- * can tab through and fill in.  This completion type is useful for inserting
- * common boilerplate code, such as for-loops.

+ * can tab through and fill in. This completion type is useful for inserting + * common boilerplate code, such as for-loops. + *

* - * The format of a template is similar to those in Eclipse. The following + * The format of a template is similar to those in Eclipse. The following * example would be the format for a for-loop template: * *

@@ -40,15 +39,17 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities;
  *
  * In the above example, the first ${i} is a parameter for the
  * user to type into; all the other ${i} instances are
- * automatically changed to what the user types in the first one.  The parameter
- * named ${cursor} is the "ending position" of the template.  It's
- * where the caret moves after it cycles through all other parameters.  If the
- * user types into it, template mode terminates.  If more than one
- * ${cursor} parameter is specified, behavior is undefined.

+ * automatically changed to what the user types in the first one. The parameter + * named ${cursor} is the "ending position" of the template. It's + * where the caret moves after it cycles through all other parameters. If the + * user types into it, template mode terminates. If more than one + * ${cursor} parameter is specified, behavior is undefined. + *

* * Two dollar signs in a row ("$$") will be evaluated as a single - * dollar sign. Otherwise, the template parsing is pretty straightforward and - * fault-tolerant.

+ * dollar sign. Otherwise, the template parsing is pretty straightforward and + * fault-tolerant. + *

* * Leading whitespace is automatically added to lines if the template spans * more than one line, and if used with a text component using a @@ -57,34 +58,24 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; * @author Robert Futrell * @version 1.0 */ -public class TemplateCompletion extends AbstractCompletion - implements ParameterizedCompletion { - +public class TemplateCompletion extends AbstractCompletion implements ParameterizedCompletion { + private List pieces; - private String inputText; - private String definitionString; - private String shortDescription; - private String summary; - /** * The template's parameters. */ private List params; - - - public TemplateCompletion(CompletionProvider provider, - String inputText, String definitionString, String template) { + + public TemplateCompletion(CompletionProvider provider, String inputText, String definitionString, String template) { this(provider, inputText, definitionString, template, null, null); } - - - public TemplateCompletion(CompletionProvider provider, - String inputText, String definitionString, String template, - String shortDescription, String summary) { + + public TemplateCompletion(CompletionProvider provider, String inputText, String definitionString, String template, + String shortDescription, String summary) { super(provider); this.inputText = inputText; this.definitionString = definitionString; @@ -94,8 +85,7 @@ public class TemplateCompletion extends AbstractCompletion params = new ArrayList(3); parse(template); } - - + private void addTemplatePiece(TemplatePiece piece) { pieces.add(piece); if (piece instanceof Param && !"cursor".equals(piece.getText())) { @@ -104,24 +94,21 @@ public class TemplateCompletion extends AbstractCompletion params.add(param); } } - - + @Override public String getInputText() { return inputText; } - - + private String getPieceText(int index, String leadingWS) { TemplatePiece piece = pieces.get(index); String text = piece.getText(); - if (text.indexOf('\n')>-1) { + if (text.indexOf('\n') > -1) { text = text.replaceAll("\n", "\n" + leadingWS); } return text; } - - + /** * Returns null; template completions insert all of their * text via getInsertionInfo(). @@ -132,24 +119,21 @@ public class TemplateCompletion extends AbstractCompletion public String getReplacementText() { return null; } - - + @Override public String getSummary() { return summary; } - - + @Override public String getDefinitionString() { return definitionString; } - + public String getShortDescription() { return shortDescription; } - /** * {@inheritDoc} */ @@ -157,18 +141,12 @@ public class TemplateCompletion extends AbstractCompletion public boolean getShowParameterToolTip() { return false; } - - + @Override - public ParameterizedCompletionInsertionInfo getInsertionInfo( - JTextComponent tc, boolean replaceTabsWithSpaces) { - - ParameterizedCompletionInsertionInfo info = - new ParameterizedCompletionInsertionInfo(); - + public ParameterizedCompletionInsertionInfo getInsertionInfo(JTextComponent tc, boolean replaceTabsWithSpaces) { + ParameterizedCompletionInsertionInfo info = new ParameterizedCompletionInsertionInfo(); StringBuilder sb = new StringBuilder(); int dot = tc.getCaretPosition(); - // Get the range in which the caret can move before we hide // this tool tip. int minPos = dot; @@ -182,7 +160,6 @@ public class TemplateCompletion extends AbstractCompletion info.setCaretRange(minPos, maxPos); int selStart = dot; // Default value int selEnd = selStart; - Document doc = tc.getDocument(); String leadingWS = null; try { @@ -191,63 +168,53 @@ public class TemplateCompletion extends AbstractCompletion ble.printStackTrace(); leadingWS = ""; } - // Create the text to insert (keep it one completion for // performance and simplicity of undo/redo). int start = dot; - for (int i=0; i-1) { // ${cursor} specified + if (selStart == minPos && selStart == selEnd && getParamCount() == 0) { + if (defaultEndOffs > -1) { // ${cursor} specified selStart = selEnd = defaultEndOffs; } } info.setInitialSelection(selStart, selEnd); - - if (defaultEndOffs>-1) { + if (defaultEndOffs > -1) { // Keep this location "after" all others when tabbing info.addReplacementLocation(defaultEndOffs, defaultEndOffs); } info.setDefaultEndOffs(defaultEndOffs); info.setTextToInsert(sb.toString()); - return info; - } - - + /** * {@inheritDoc} */ @@ -255,25 +222,24 @@ public class TemplateCompletion extends AbstractCompletion public Parameter getParam(int index) { return params.get(index); } - - + /** * {@inheritDoc} */ @Override public int getParamCount() { - return params==null ? 0 : params.size(); + return params == null ? 0 : params.size(); } - - + /** * Returns whether a parameter is already defined with a specific name. * - * @param name The name. + * @param name + * The name. * @return Whether a parameter is defined with that name. */ private boolean isParamDefined(String name) { - for (int i=0; i-1 && offs -1 && offs < template.length() - 1) { + char next = template.charAt(offs + 1); switch (next) { case '$': // "$$" => escaped single dollar sign - addTemplatePiece(new TemplatePiece.Text( - template.substring(lastOffs, offs+1))); + addTemplatePiece(new TemplatePiece.Text(template.substring(lastOffs, offs + 1))); lastOffs = offs + 2; break; case '{': // "${...}" => variable - int closingCurly = template.indexOf('}', offs+2); - if (closingCurly>-1) { - addTemplatePiece(new TemplatePiece.Text( - template.substring(lastOffs, offs))); - String varName = template.substring(offs+2, closingCurly); + int closingCurly = template.indexOf('}', offs + 2); + if (closingCurly > -1) { + addTemplatePiece(new TemplatePiece.Text(template.substring(lastOffs, offs))); + String varName = template.substring(offs + 2, closingCurly); if (!"cursor".equals(varName) && isParamDefined(varName)) { addTemplatePiece(new TemplatePiece.ParamCopy(varName)); - } - else { + } else { addTemplatePiece(new TemplatePiece.Param(varName)); } lastOffs = closingCurly + 1; } break; } - } - - if (lastOffs-1) { - + if (tab > -1) { int startLen = sb.length(); - int size = 4; Document doc = tc.getDocument(); if (doc != null) { @@ -346,46 +298,37 @@ public class TemplateCompletion extends AbstractCompletion } } String tabStr = ""; - for (int i=0; i-1); + } while ((tab = text.indexOf('\t', lastOffs)) > -1); sb.append(text.substring(lastOffs)); - start += sb.length() - startLen; - - } - else { + } else { sb.append(text); start += text.length(); } - return start; - } - - + /** * Sets the short description of this template completion. * - * @param shortDesc The new short description. + * @param shortDesc + * The new short description. * @see #getShortDescription() */ public void setShortDescription(String shortDesc) { this.shortDescription = shortDesc; } - - + @Override public String toString() { return getDefinitionString(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/TemplatePiece.java b/src/org/fife/ui/autocomplete/TemplatePiece.java index e6d5cd9..449aa19 100644 --- a/src/org/fife/ui/autocomplete/TemplatePiece.java +++ b/src/org/fife/ui/autocomplete/TemplatePiece.java @@ -1,16 +1,13 @@ /* * 06/17/2012 - * * TemplatePiece.java - A logical piece of a template completion. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; - /** - * A piece of a TemplateCompletion. You add instances of this + * A piece of a TemplateCompletion. You add instances of this * class to template completions to define them. * * @author Robert Futrell @@ -18,72 +15,63 @@ package org.fife.ui.autocomplete; * @see TemplateCompletion */ interface TemplatePiece { - - + String getText(); - - + public class Text implements TemplatePiece { - + private String text; - + public Text(String text) { this.text = text; } - + @Override public String getText() { return text; } - + @Override public String toString() { return "[TemplatePiece.Text: text=" + text + "]"; } - } - - + public class Param implements TemplatePiece { - + String text; - + public Param(String text) { this.text = text; } - + @Override public String getText() { return text; } - + @Override public String toString() { return "[TemplatePiece.Param: param=" + text + "]"; } - } - - + public class ParamCopy implements TemplatePiece { - + private String text; - + public ParamCopy(String text) { this.text = text; } - + @Override public String getText() { return text; } - + @Override public String toString() { return "[TemplatePiece.ParamCopy: param=" + text + "]"; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/TipUtil.java b/src/org/fife/ui/autocomplete/TipUtil.java index c487fad..dc1ee2c 100644 --- a/src/org/fife/ui/autocomplete/TipUtil.java +++ b/src/org/fife/ui/autocomplete/TipUtil.java @@ -1,9 +1,7 @@ /* * 08/13/2009 - * * TipUtil.java - Utility methods for homemade tool tips. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -12,6 +10,7 @@ import java.awt.Color; import java.awt.Font; import java.awt.SystemColor; import java.net.URL; + import javax.swing.BorderFactory; import javax.swing.JEditorPane; import javax.swing.UIManager; @@ -19,9 +18,9 @@ import javax.swing.border.Border; import javax.swing.plaf.ColorUIResource; import javax.swing.text.html.HTMLDocument; - /** - * Static utility methods for homemade tool tips.

+ * Static utility methods for homemade tool tips. + *

* * This is blatantly ripped off from RSyntaxTextArea's "FocusableTips" class * of the same name, but isn't re-used to prevent a hard dependency on the @@ -31,76 +30,62 @@ import javax.swing.text.html.HTMLDocument; * @version 1.0 */ class TipUtil { - - - private TipUtil() { - } - - + + private TipUtil() {} + /** * Returns the default background color to use for tool tip windows. * * @return The default background color. */ public static Color getToolTipBackground() { - Color c = UIManager.getColor("ToolTip.background"); - // Tooltip.background is wrong color on Nimbus (!) boolean isNimbus = isNimbusLookAndFeel(); - if (c==null || isNimbus) { + if (c == null || isNimbus) { c = UIManager.getColor("info"); // Used by Nimbus (and others) - if (c==null || (isNimbus && isDerivedColor(c))) { + if (c == null || (isNimbus && isDerivedColor(c))) { c = SystemColor.info; // System default } } - // Workaround for a bug (?) with Nimbus - calling JLabel.setBackground() // with a ColorUIResource does nothing, must be a normal Color if (c instanceof ColorUIResource) { c = new Color(c.getRGB()); } - return c; - } - - + /** * Returns the border used by tool tips in this look and feel. * * @return The border. */ public static Border getToolTipBorder() { - Border border = UIManager.getBorder("ToolTip.border"); - - if (border==null || isNimbusLookAndFeel()) { + if (border == null || isNimbusLookAndFeel()) { border = UIManager.getBorder("nimbusBorder"); - if (border==null) { + if (border == null) { border = BorderFactory.createLineBorder(SystemColor.controlDkShadow); } } - return border; - } - - + /** * Returns whether a color is a Nimbus DerivedColor, which is troublesome * in that it doesn't use its RGB values (uses HSB instead?) and so * querying them is useless. * - * @param c The color to check. + * @param c + * The color to check. * @return Whether it is a DerivedColor */ private static final boolean isDerivedColor(Color c) { - return c!=null && (c.getClass().getName().endsWith(".DerivedColor") || - c.getClass().getName().endsWith(".DerivedColor$UIResource")); + return c != null + && (c.getClass().getName().endsWith(".DerivedColor") || c.getClass().getName().endsWith(".DerivedColor$UIResource")); } - - + /** * Returns whether the Nimbus Look and Feel is installed. * @@ -109,17 +94,16 @@ class TipUtil { private static final boolean isNimbusLookAndFeel() { return UIManager.getLookAndFeel().getName().equals("Nimbus"); } - - + /** * Tweaks a JEditorPane so it can be used to render the - * content in a focusable pseudo-tool tip. It is assumed that the editor + * content in a focusable pseudo-tool tip. It is assumed that the editor * pane is using an HTMLDocument. * - * @param textArea The editor pane to tweak. + * @param textArea + * The editor pane to tweak. */ public static void tweakTipEditorPane(JEditorPane textArea) { - // Jump through a few hoops to get things looking nice in Nimbus boolean isNimbus = isNimbusLookAndFeel(); if (isNimbus) { @@ -129,25 +113,20 @@ class TipUtil { textArea.setSelectedTextColor(selFG); textArea.setSelectionColor(selBG); } - textArea.setEditable(false); // Required for links to work! - textArea.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); - + textArea.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); // Make selection visible even though we are not (initially) focusable. textArea.getCaret().setSelectionVisible(true); - - // Set the foreground color. Important because when rendering HTML, + // Set the foreground color. Important because when rendering HTML, // default foreground becomes black, which may not match all LAF's // (e.g. Substance). Color fg = UIManager.getColor("Label.foreground"); - if (fg==null || (isNimbus && isDerivedColor(fg))) { + if (fg == null || (isNimbus && isDerivedColor(fg))) { fg = SystemColor.textText; } textArea.setForeground(fg); - // Make it use the "tool tip" background color. textArea.setBackground(TipUtil.getToolTipBackground()); - // Force JEditorPane to use a certain font even in HTML. // All standard LookAndFeels, even Nimbus (!), define Label.font. Font font = UIManager.getFont("Label.font"); @@ -155,25 +134,16 @@ class TipUtil { font = new Font("SansSerif", Font.PLAIN, 12); } HTMLDocument doc = (HTMLDocument) textArea.getDocument(); - doc.getStyleSheet().addRule( - "body { font-family: " + font.getFamily() + - "; font-size: " + font.getSize() + "pt" + - "; color: " + Util.getHexString(fg) + "; }"); - - // Always add link foreground rule. Unfortunately these CSS rules + doc.getStyleSheet().addRule("body { font-family: " + font.getFamily() + "; font-size: " + font.getSize() + "pt" + "; color: " + + Util.getHexString(fg) + "; }"); + // Always add link foreground rule. Unfortunately these CSS rules // stack each time the LaF is changed (how can we overwrite them // without clearing out the important "standard" ones?). Color linkFG = Util.getHyperlinkForeground(); - doc.getStyleSheet().addRule( - "a { color: " + Util.getHexString(linkFG) + "; }"); - + doc.getStyleSheet().addRule("a { color: " + Util.getHexString(linkFG) + "; }"); URL url = TipUtil.class.getResource("bullet_black.png"); - if (url!=null) { - doc.getStyleSheet().addRule( - "ul { list-style-image: '" + url.toString() + "'; }"); + if (url != null) { + doc.getStyleSheet().addRule("ul { list-style-image: '" + url.toString() + "'; }"); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/Util.java b/src/org/fife/ui/autocomplete/Util.java index 05bd40d..2788edb 100644 --- a/src/org/fife/ui/autocomplete/Util.java +++ b/src/org/fife/ui/autocomplete/Util.java @@ -1,9 +1,7 @@ /* * 12/21/2008 - * * Util.java - Utility methods for the autocompletion package. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; @@ -23,7 +21,6 @@ import javax.swing.UIManager; import org.fife.ui.rsyntaxtextarea.PopupWindowDecorator; - /** * Utility methods for the auto-complete framework. * @@ -31,63 +28,55 @@ import org.fife.ui.rsyntaxtextarea.PopupWindowDecorator; * @version 1.0 */ public class Util { - + /** * If a system property is defined with this name and set, ignoring case, * to true, this library will not attempt to use Substance - * renderers. Otherwise, if a Substance Look and Feel is installed, we - * will attempt to use Substance cell renderers in all of our dropdowns.

+ * renderers. Otherwise, if a Substance Look and Feel is installed, we + * will attempt to use Substance cell renderers in all of our dropdowns. + *

* * Note that we do not have a build dependency on Substance, so all access - * to Substance stuff is done via reflection. We will fall back onto + * to Substance stuff is done via reflection. We will fall back onto * default renderers if something goes horribly wrong. */ - public static final String PROPERTY_DONT_USE_SUBSTANCE_RENDERERS = - "org.fife.ui.autocomplete.DontUseSubstanceRenderers"; - + public static final String PROPERTY_DONT_USE_SUBSTANCE_RENDERERS = "org.fife.ui.autocomplete.DontUseSubstanceRenderers"; /** * If this system property is true, then even the "main" two * auto-complete windows will allow window decorations via - * {@link PopupWindowDecorator}. If this property is undefined or - * false, they won't honor such decorations. This is due to + * {@link PopupWindowDecorator}. If this property is undefined or + * false, they won't honor such decorations. This is due to * certain performance issues with translucent windows (used for drop * shadows), even as of Java 7u2. */ - public static final String PROPERTY_ALLOW_DECORATED_AUTOCOMPLETE_WINDOWS = - "org.fife.ui.autocomplete.allowDecoratedAutoCompleteWindows"; - + public static final String PROPERTY_ALLOW_DECORATED_AUTOCOMPLETE_WINDOWS = "org.fife.ui.autocomplete.allowDecoratedAutoCompleteWindows"; /** * Used for the color of hyperlinks when a LookAndFeel uses light text * against a dark background. */ private static final Color LIGHT_HYPERLINK_FG = new Color(0xd8ffff); - private static final Pattern TAG_PATTERN = Pattern.compile("<[^>]*>"); - private static final boolean useSubstanceRenderers; private static boolean desktopCreationAttempted; private static Object desktop; private static final Object LOCK_DESKTOP_CREATION = new Object(); - - + /** * Attempts to open a web browser to the specified URI. * - * @param uri The URI to open. If this is null, nothing - happens and this method returns false. - * @return Whether the operation was successful. This will be + * @param uri + * The URI to open. If this is null, nothing + * happens and this method returns false. + * @return Whether the operation was successful. This will be * false on JRE's older than 1.6. */ public static boolean browse(URI uri) { - boolean success = false; - - if (uri!=null) { + if (uri != null) { Object desktop = getDesktop(); - if (desktop!=null) { + if (desktop != null) { try { - Method m = desktop.getClass().getDeclaredMethod( - "browse", new Class[] { URI.class }); + Method m = desktop.getClass().getDeclaredMethod("browse", new Class[] { URI.class }); m.invoke(desktop, new Object[] { uri }); success = true; } catch (RuntimeException re) { @@ -97,12 +86,9 @@ public class Util { } } } - return success; - } - - + /** * Returns the singleton java.awt.Desktop instance, or * null if it is unsupported on this platform (or the JRE @@ -111,79 +97,62 @@ public class Util { * @return The desktop, as an {@link Object}. */ private static Object getDesktop() { - synchronized (LOCK_DESKTOP_CREATION) { - if (!desktopCreationAttempted) { - desktopCreationAttempted = true; - try { Class desktopClazz = Class.forName("java.awt.Desktop"); - Method m = desktopClazz. - getDeclaredMethod("isDesktopSupported"); - - boolean supported= ((Boolean)m.invoke(null)).booleanValue(); + Method m = desktopClazz.getDeclaredMethod("isDesktopSupported"); + boolean supported = ((Boolean) m.invoke(null)).booleanValue(); if (supported) { m = desktopClazz.getDeclaredMethod("getDesktop"); desktop = m.invoke(null); } - } catch (RuntimeException re) { throw re; // Keep FindBugs happy } catch (Exception e) { // Ignore; keeps desktop as null. } - } - } - return desktop; - } - - + /** * Returns a hex string for the specified color, suitable for HTML. * - * @param c The color. + * @param c + * The color. * @return The string representation, in the form "#rrggbb", * or null if c is null. */ public static String getHexString(Color c) { - - if (c==null) { + if (c == null) { return null; } - // Don't assume 0xff alpha - //return "#" + Integer.toHexString(c.getRGB()&0xffffff).substring(2); - + // return "#" + Integer.toHexString(c.getRGB()&0xffffff).substring(2); StringBuilder sb = new StringBuilder("#"); int r = c.getRed(); - if (r<16) { + if (r < 16) { sb.append('0'); } sb.append(Integer.toHexString(r)); int g = c.getGreen(); - if (g<16) { + if (g < 16) { sb.append('0'); } sb.append(Integer.toHexString(g)); int b = c.getBlue(); - if (b<16) { + if (b < 16) { sb.append('0'); } sb.append(Integer.toHexString(b)); - return sb.toString(); - } - - + /** - * Returns the color to use for hyperlink-style components. This method + * Returns the color to use for hyperlink-style components. This method * will return Color.blue unless it appears that the current * LookAndFeel uses light text on a dark background, in which case a * brighter alternative is returned. @@ -191,33 +160,30 @@ public class Util { * @return The color to use for hyperlinks. */ static final Color getHyperlinkForeground() { - // This property is defined by all standard LaFs, even Nimbus (!), // but you never know what crazy LaFs there are... Color fg = UIManager.getColor("Label.foreground"); - if (fg==null) { + if (fg == null) { fg = new JLabel().getForeground(); } - return isLightForeground(fg) ? LIGHT_HYPERLINK_FG : Color.blue; - } - - + /** * Returns the screen coordinates for the monitor that contains the - * specified point. This is useful for setups with multiple monitors, + * specified point. This is useful for setups with multiple monitors, * to ensure that popup windows are positioned properly. * - * @param x The x-coordinate, in screen coordinates. - * @param y The y-coordinate, in screen coordinates. + * @param x + * The x-coordinate, in screen coordinates. + * @param y + * The y-coordinate, in screen coordinates. * @return The bounds of the monitor that contains the specified point. */ public static Rectangle getScreenBoundsForPoint(int x, int y) { - GraphicsEnvironment env = GraphicsEnvironment. - getLocalGraphicsEnvironment(); + GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] devices = env.getScreenDevices(); - for (int i=0; ifalse, we'll use our + * Feel is installed. If this is false, we'll use our * standard rendering for completions, even when Substance is being used. * * @return Whether to use Substance renderers if Substance is installed. @@ -259,27 +222,28 @@ public class Util { public static boolean getUseSubstanceRenderers() { return useSubstanceRenderers; } - - + /** * Returns whether the specified color is "light" to use as a foreground. * Colors that return true indicate that the current Look and * Feel probably uses light text colors on a dark background. * - * @param fg The foreground color. + * @param fg + * The foreground color. * @return Whether it is a "light" foreground color. */ public static final boolean isLightForeground(Color fg) { - return fg.getRed()>0xa0 && fg.getGreen()>0xa0 && fg.getBlue()>0xa0; + return fg.getRed() > 0xa0 && fg.getGreen() > 0xa0 && fg.getBlue() > 0xa0; } - - + /** * Returns whether a string starts with a specified prefix, ignoring case. * This method does not support characters outside of the BMP. * - * @param str The string to check. This cannot be {@code null}. - * @param prefix The prefix to check for. This cannot be {@code null}. + * @param str + * The string to check. This cannot be {@code null}. + * @param prefix + * The prefix to check for. This cannot be {@code null}. * @return Whether {@code str} starts with {@code prefix}, ignoring case. */ public static boolean startsWithIgnoreCase(String str, String prefix) { @@ -289,26 +253,24 @@ public class Util { } return false; } - - + /** - * Strips any HTML from a string. The string must start with + * Strips any HTML from a string. The string must start with * "<html>" for markup tags to be stripped. * - * @param text The string. + * @param text + * The string. * @return The string, with any HTML stripped. */ public static String stripHtml(String text) { - if (text==null || !text.startsWith("")) { + if (text == null || !text.startsWith("")) { return text; } // TODO: Micro-optimize me, might be called in renderers and loops return TAG_PATTERN.matcher(text).replaceAll(""); } - - + static { - boolean use = true; try { use = !Boolean.getBoolean(PROPERTY_DONT_USE_SUBSTANCE_RENDERERS); @@ -316,8 +278,5 @@ public class Util { use = true; } useSubstanceRenderers = use; - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/autocomplete/VariableCompletion.java b/src/org/fife/ui/autocomplete/VariableCompletion.java index b100d46..5ae22fa 100644 --- a/src/org/fife/ui/autocomplete/VariableCompletion.java +++ b/src/org/fife/ui/autocomplete/VariableCompletion.java @@ -1,18 +1,16 @@ /* * 12/22/2008 - * * VariableCompletion.java - A completion for a variable. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import javax.swing.text.JTextComponent; - /** - * A completion for a variable (or constant) in a programming language.

+ * A completion for a variable (or constant) in a programming language. + *

* * This completion type uses its shortDescription property as part of * its summary returned by {@link #getSummary()}; for this reason, it may be @@ -24,55 +22,47 @@ import javax.swing.text.JTextComponent; * @version 1.0 */ public class VariableCompletion extends BasicCompletion { - + /** * The variable's type. */ private String type; - /** * What library (for example) this variable is defined in. */ private String definedIn; - - + /** * Constructor. * - * @param provider The parent provider. - * @param name The name of this variable. - * @param type The type of this variable (e.g. "int", - * "String", etc.). + * @param provider + * The parent provider. + * @param name + * The name of this variable. + * @param type + * The type of this variable (e.g. "int", + * "String", etc.). */ - public VariableCompletion(CompletionProvider provider, String name, - String type) { + public VariableCompletion(CompletionProvider provider, String name, String type) { super(provider, name); this.type = type; } - - + protected void addDefinitionString(StringBuilder sb) { sb.append("").append(getDefinitionString()).append(""); } - - + public String getDefinitionString() { - StringBuilder sb = new StringBuilder(); - // Add the return type if applicable (C macros like NULL have no type). - if (type!=null) { + if (type != null) { sb.append(type).append(' '); } - // Add the item being described's name. sb.append(getName()); - return sb.toString(); - } - - + /** * Returns where this variable is defined. * @@ -82,8 +72,7 @@ public class VariableCompletion extends BasicCompletion { public String getDefinedIn() { return definedIn; } - - + /** * Returns the name of this variable. * @@ -92,8 +81,7 @@ public class VariableCompletion extends BasicCompletion { public String getName() { return getReplacementText(); } - - + /** * {@inheritDoc} */ @@ -105,16 +93,16 @@ public class VariableCompletion extends BasicCompletion { possiblyAddDefinedIn(sb); return sb.toString(); } - - + /** * Returns the tool tip text to display for mouse hovers over this - * completion.

+ * completion. + *

* * Note that for this functionality to be enabled, a * JTextComponent must be registered with the * ToolTipManager, and the text component must know to search - * for this value. In the case of an + * for this value. In the case of an * RSyntaxTextArea, this * can be done with a org.fife.ui.rtextarea.ToolTipSupplier that * calls into @@ -127,8 +115,7 @@ public class VariableCompletion extends BasicCompletion { public String getToolTipText() { return getDefinitionString(); } - - + /** * Returns the type of this variable. * @@ -137,31 +124,31 @@ public class VariableCompletion extends BasicCompletion { public String getType() { return type; } - - + /** * Adds some HTML describing where this variable is defined, if this * information is known. * - * @param sb The buffer to append to. + * @param sb + * The buffer to append to. */ protected void possiblyAddDefinedIn(StringBuilder sb) { - if (definedIn!=null) { + if (definedIn != null) { sb.append("


Defined in:"); // TODO: Localize me sb.append(" ").append(definedIn).append(""); } } - - + /** * Adds the description text as HTML to a buffer, if a description is * defined. * - * @param sb The buffer to append to. + * @param sb + * The buffer to append to. * @return Whether there was a description to add. */ protected boolean possiblyAddDescription(StringBuilder sb) { - if (getShortDescription()!=null) { + if (getShortDescription() != null) { sb.append("

"); sb.append(getShortDescription()); sb.append("


"); @@ -169,19 +156,18 @@ public class VariableCompletion extends BasicCompletion { } return false; } - - + /** * Sets where this variable is defined. * - * @param definedIn Where this variable is defined. + * @param definedIn + * Where this variable is defined. * @see #getDefinedIn() */ public void setDefinedIn(String definedIn) { this.definedIn = definedIn; } - - + /** * Overridden to return the name of the variable being completed. * @@ -191,6 +177,4 @@ public class VariableCompletion extends BasicCompletion { public String toString() { return getName(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/AbstractJFlexCTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/AbstractJFlexCTokenMaker.java index 3d939a6..db38873 100644 --- a/src/org/fife/ui/rsyntaxtextarea/AbstractJFlexCTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/AbstractJFlexCTokenMaker.java @@ -1,10 +1,8 @@ /* * 01/25/2009 - * * AbstractJFlexCTokenMaker.java - Base class for token makers that use curly * braces to denote code blocks, such as C, C++, Java, Perl, etc. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,38 +10,34 @@ package org.fife.ui.rsyntaxtextarea; import java.awt.event.ActionEvent; import java.util.regex.Matcher; import java.util.regex.Pattern; + import javax.swing.Action; import javax.swing.UIManager; import javax.swing.text.BadLocationException; import org.fife.ui.rtextarea.RTextArea; - /** - * Base class for JFlex-based token makers using C-style syntax. This class + * Base class for JFlex-based token makers using C-style syntax. This class * knows how to: * *
    - *
  • Auto-indent after opening braces and parens - *
  • Automatically close multi-line and documentation comments + *
  • Auto-indent after opening braces and parens + *
  • Automatically close multi-line and documentation comments *
* * @author Robert Futrell * @version 1.0 */ public abstract class AbstractJFlexCTokenMaker extends AbstractJFlexTokenMaker { - + private final Action INSERT_BREAK_ACTION; - - private static final Pattern MLC_PATTERN = - Pattern.compile("([ \\t]*)(/?[\\*]+)([ \\t]*)"); - - + private static final Pattern MLC_PATTERN = Pattern.compile("([ \\t]*)(/?[\\*]+)([ \\t]*)"); + protected AbstractJFlexCTokenMaker() { INSERT_BREAK_ACTION = createInsertBreakAction(); } - - + /** * Creates and returns the action to use when the user inserts a newline. * The default implementation intelligently closes multi-line comments. @@ -55,8 +49,7 @@ public abstract class AbstractJFlexCTokenMaker extends AbstractJFlexTokenMaker { protected Action createInsertBreakAction() { return new CStyleInsertBreakAction(); } - - + /** * Returns true always as C-style languages use curly braces * to denote code blocks. @@ -67,8 +60,7 @@ public abstract class AbstractJFlexCTokenMaker extends AbstractJFlexTokenMaker { public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex) { return true; } - - + /** * Returns an action to handle "insert break" key presses (i.e. Enter). * An action is returned that handles newlines differently in multi-line @@ -80,94 +72,81 @@ public abstract class AbstractJFlexCTokenMaker extends AbstractJFlexTokenMaker { public Action getInsertBreakAction() { return INSERT_BREAK_ACTION; } - - + /** * {@inheritDoc} */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER || type==Token.FUNCTION; + return type == Token.IDENTIFIER || type == Token.FUNCTION; } - - + /** * {@inheritDoc} */ @Override public boolean getShouldIndentNextLineAfter(Token t) { - if (t!=null && t.length()==1) { + if (t != null && t.length() == 1) { char ch = t.charAt(0); - return ch=='{' || ch=='('; + return ch == '{' || ch == '('; } return false; } - - + /** * Returns whether a given token is an internal token type that represents - * an MLC or documentation comment continuing on to the next line. This is + * an MLC or documentation comment continuing on to the next line. This is * done by languages such as JavaScript that are a little more verbose * than necessary so that their code can be copy-and-pasted into other * TokenMakers that use them as nested languages (such as * HTML, JSP, etc.). * - * @param t The token to check. This cannot be null. + * @param t + * The token to check. This cannot be null. * @return Whether the token is an internal token representing the end of * a line for an MLC/doc comment continuing on to the next line. */ private boolean isInternalEolTokenForMLCs(Token t) { int type = t.getType(); - if (type<0) { + if (type < 0) { type = getClosestStandardTokenTypeForInternalType(type); - return type==TokenTypes.COMMENT_MULTILINE || - type==TokenTypes.COMMENT_DOCUMENTATION; + return type == TokenTypes.COMMENT_MULTILINE || type == TokenTypes.COMMENT_DOCUMENTATION; } return false; } - - + /** * Action that knows how to special-case inserting a newline in a * multi-line comment for languages like C and Java. */ - protected class CStyleInsertBreakAction extends - RSyntaxTextAreaEditorKit.InsertBreakAction { - + protected class CStyleInsertBreakAction extends RSyntaxTextAreaEditorKit.InsertBreakAction { + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - if (!textArea.isEditable() || !textArea.isEnabled()) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - - RSyntaxTextArea rsta = (RSyntaxTextArea)getTextComponent(e); - RSyntaxDocument doc = (RSyntaxDocument)rsta.getDocument(); - + RSyntaxTextArea rsta = (RSyntaxTextArea) getTextComponent(e); + RSyntaxDocument doc = (RSyntaxDocument) rsta.getDocument(); int line = textArea.getCaretLineNumber(); int type = doc.getLastTokenTypeOnLine(line); - if (type<0) { + if (type < 0) { type = doc.getClosestStandardTokenTypeForInternalType(type); } - // Only in MLC's should we try this - if (type==Token.COMMENT_DOCUMENTATION || - type==Token.COMMENT_MULTILINE) { + if (type == Token.COMMENT_DOCUMENTATION || type == Token.COMMENT_MULTILINE) { insertBreakInMLC(e, rsta, line); - } - else { + } else { handleInsertBreak(rsta, true); } - } - - + /** * Returns whether the MLC token containing offs appears * to have a "nested" comment (i.e., contains "/*" - * somewhere inside of it). This implies that it is likely a "new" MLC - * and needs to be closed. While not foolproof, this is usually good + * somewhere inside of it). This implies that it is likely a "new" MLC + * and needs to be closed. While not foolproof, this is usually good * enough of a sign. * * @param textArea @@ -175,45 +154,37 @@ public abstract class AbstractJFlexCTokenMaker extends AbstractJFlexTokenMaker { * @param offs * @return Whether a comment appears to be nested inside this one. */ - private boolean appearsNested(RSyntaxTextArea textArea, - int line, int offs) { - + private boolean appearsNested(RSyntaxTextArea textArea, int line, int offs) { final int firstLine = line; // Remember the line we start at. - - while (line=start && - dot= start && dot < start + leadingWS.length() + mlcMarker.length()) { // If we're in the whitespace before the very start of the // MLC though, just insert a normal newline - if (mlcMarker.charAt(0)=='/') { + if (mlcMarker.charAt(0) == '/') { handleInsertBreak(textArea, true); return; } - textArea.setCaretPosition(end-1); - } - else { + textArea.setCaretPosition(end - 1); + } else { // Ensure caret is at the "end" of any whitespace // immediately after the '*', but before any possible // non-whitespace chars. boolean moved = false; - while (dotalmost could + * Base class for JFlex-generated token makers. This class attempts to factor + * out all common code from these classes. Many methods almost could * be factored out into this class, but cannot because they reference JFlex * variables that we cannot access from this class. * @@ -22,31 +19,30 @@ import javax.swing.text.Segment; * @version 0.1 */ public abstract class AbstractJFlexTokenMaker extends TokenMakerBase { - + protected Segment s; - - protected int start; // Just for states. - protected int offsetShift; // As parser always starts at 0, but our line doesn't. - - + protected int start; // Just for states. + protected int offsetShift; // As parser always starts at 0, but our line + // doesn't. + /** * Declared here so we can define overloads that refer to this method. * - * @param newState The new JFlex state to enter. + * @param newState + * The new JFlex state to enter. */ public abstract void yybegin(int newState); - - + /** * Starts a new JFlex state and changes the current language index. * - * @param state The new JFlex state to enter. - * @param languageIndex The new language index. + * @param state + * The new JFlex state to enter. + * @param languageIndex + * The new language index. */ protected void yybegin(int state, int languageIndex) { yybegin(state); setLanguageIndex(languageIndex); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMaker.java index 0058cc5..fbb7ea1 100644 --- a/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMaker.java @@ -1,19 +1,17 @@ /* * 11/07/2004 - * * AbstractTokenMaker.java - An abstract implementation of TokenMaker. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; - /** * An abstract implementation of the - * {@link org.fife.ui.rsyntaxtextarea.TokenMaker} interface. It should + * {@link org.fife.ui.rsyntaxtextarea.TokenMaker} interface. It should * be overridden for every language for which you want to provide - * syntax highlighting.

+ * syntax highlighting. + *

* * @see Token * @@ -21,7 +19,7 @@ package org.fife.ui.rsyntaxtextarea; * @version 0.2 */ public abstract class AbstractTokenMaker extends TokenMakerBase { - + /** * Hash table of words to highlight and what token type they are. * The keys are the words to highlight, and their values are the @@ -29,16 +27,14 @@ public abstract class AbstractTokenMaker extends TokenMakerBase { * Token.FUNCTION. */ protected TokenMap wordsToHighlight; - - + /** * Constructor. */ public AbstractTokenMaker() { wordsToHighlight = getWordsToHighlight(); } - - + /** * Returns the words to highlight for this programming language. * @@ -46,22 +42,18 @@ public abstract class AbstractTokenMaker extends TokenMakerBase { * this programming language. */ public abstract TokenMap getWordsToHighlight(); - - + /** - * Removes the token last added from the linked list of tokens. The + * Removes the token last added from the linked list of tokens. The * programmer should never have to call this directly; it can be called * by subclasses of TokenMaker if necessary. */ public void removeLastToken() { - if (previousToken==null) { + if (previousToken == null) { firstToken = currentToken = null; - } - else { + } else { currentToken = previousToken; currentToken.setNextToken(null); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMakerFactory.java b/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMakerFactory.java index 224dfb3..2ee11e5 100644 --- a/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMakerFactory.java +++ b/src/org/fife/ui/rsyntaxtextarea/AbstractTokenMakerFactory.java @@ -1,9 +1,7 @@ /* * 12/14/08 - * * AbstractTokenMakerFactory.java - Base class for TokenMaker implementations. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,25 +10,23 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; - /** - * Base class for {@link TokenMakerFactory} implementations. A mapping from + * Base class for {@link TokenMakerFactory} implementations. A mapping from * language keys to the names of {@link TokenMaker} classes is stored. * * @author Robert Futrell * @version 1.0 */ public abstract class AbstractTokenMakerFactory extends TokenMakerFactory { - + /** * A mapping from keys to the names of {@link TokenMaker} implementation - * class names. When {@link #getTokenMaker(String)} is called with a key + * class names. When {@link #getTokenMaker(String)} is called with a key * defined in this map, a TokenMaker of the corresponding type * is returned. */ private Map tokenMakerMap; - - + /** * Constructor. */ @@ -38,19 +34,19 @@ public abstract class AbstractTokenMakerFactory extends TokenMakerFactory { tokenMakerMap = new HashMap(); initTokenMakerMap(); } - - + /** * Returns a {@link TokenMaker} for the specified key. * - * @param key The key. + * @param key + * The key. * @return The corresponding TokenMaker, or null * if none matches the specified key. */ @Override protected TokenMaker getTokenMakerImpl(String key) { - TokenMakerCreator tmc = (TokenMakerCreator)tokenMakerMap.get(key); - if (tmc!=null) { + TokenMakerCreator tmc = (TokenMakerCreator) tokenMakerMap.get(key); + if (tmc != null) { try { return tmc.create(); } catch (RuntimeException re) { // FindBugs @@ -61,11 +57,10 @@ public abstract class AbstractTokenMakerFactory extends TokenMakerFactory { } return null; } - - + /** * Populates the mapping from keys to instances of - * TokenMakerCreators. Subclasses should override this method + * TokenMakerCreators. Subclasses should override this method * and call one of the putMapping overloads to register * {@link TokenMaker}s for syntax constants. * @@ -73,8 +68,7 @@ public abstract class AbstractTokenMakerFactory extends TokenMakerFactory { * @see #putMapping(String, String, ClassLoader) */ protected abstract void initTokenMakerMap(); - - + /** * {@inheritDoc} */ @@ -82,53 +76,52 @@ public abstract class AbstractTokenMakerFactory extends TokenMakerFactory { public Set keySet() { return tokenMakerMap.keySet(); } - - + /** * Adds a mapping from a key to a TokenMaker implementation * class name. * - * @param key The key. - * @param className The TokenMaker class name. + * @param key + * The key. + * @param className + * The TokenMaker class name. * @see #putMapping(String, String, ClassLoader) */ public void putMapping(String key, String className) { putMapping(key, className, null); } - - + /** * Adds a mapping from a key to a TokenMaker implementation * class name. * - * @param key The key. - * @param className The TokenMaker class name. - * @param cl The class loader to use when loading the class. + * @param key + * The key. + * @param className + * The TokenMaker class name. + * @param cl + * The class loader to use when loading the class. * @see #putMapping(String, String) */ public void putMapping(String key, String className, ClassLoader cl) { tokenMakerMap.put(key, new TokenMakerCreator(className, cl)); } - - + /** * Wrapper that handles the creation of TokenMaker instances. */ private static class TokenMakerCreator { - + private String className; private ClassLoader cl; - + public TokenMakerCreator(String className, ClassLoader cl) { this.className = className; - this.cl = cl!=null ? cl : getClass().getClassLoader(); + this.cl = cl != null ? cl : getClass().getClassLoader(); } - + public TokenMaker create() throws Exception { - return (TokenMaker)Class.forName(className, true, cl).newInstance(); + return (TokenMaker) Class.forName(className, true, cl).newInstance(); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeEvent.java b/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeEvent.java index 3cb23cd..4b25778 100644 --- a/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeEvent.java +++ b/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeEvent.java @@ -1,17 +1,14 @@ /* * 02/06/2011 - * * ActiveLineRangeEvent.java - Notifies listeners of an "active line range" * change in an RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import java.util.EventObject; - /** * The event fired by {@link RSyntaxTextArea}s when the active line range * changes. @@ -20,27 +17,28 @@ import java.util.EventObject; * @version 1.0 */ public class ActiveLineRangeEvent extends EventObject { - + private int min; private int max; - - + /** * Constructor. * - * @param source The text area. - * @param min The first line in the active line range, or - * -1 if the line range is being cleared. - * @param max The last line in the active line range, or - * -1 if the line range is being cleared. + * @param source + * The text area. + * @param min + * The first line in the active line range, or + * -1 if the line range is being cleared. + * @param max + * The last line in the active line range, or + * -1 if the line range is being cleared. */ public ActiveLineRangeEvent(RSyntaxTextArea source, int min, int max) { super(source); this.min = min; this.max = max; } - - + /** * Returns the last line in the active line range. * @@ -51,8 +49,7 @@ public class ActiveLineRangeEvent extends EventObject { public int getMax() { return max; } - - + /** * Returns the first line in the active line range. * @@ -63,6 +60,4 @@ public class ActiveLineRangeEvent extends EventObject { public int getMin() { return min; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeListener.java b/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeListener.java index 693d454..81204d4 100644 --- a/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeListener.java +++ b/src/org/fife/ui/rsyntaxtextarea/ActiveLineRangeListener.java @@ -1,44 +1,41 @@ /* * 02/06/2011 - * * ActiveLineRangeListener.java - Listens for "active line range" changes * in an RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import java.util.EventListener; - /** * Listens for "active line range" events from an RSyntaxTextArea. * If a text area contains some semantic knowledge of the programming language * being edited, it may broadcast {@link ActiveLineRangeEvent}s whenever the - * caret moves into a new "block" of code. Listeners can listen for these - * events and respond accordingly.

+ * caret moves into a new "block" of code. Listeners can listen for these + * events and respond accordingly. + *

* * See the RSTALanguageSupport project at * http://fifesoft.com for some * LanguageSupport implementations that may broadcast these - * events. Note that if an RSTA/LanguageSupport does not support broadcasting + * events. Note that if an RSTA/LanguageSupport does not support broadcasting * these events, the listener will simply never receive any notifications. * * @author Robert Futrell * @version 1.0 */ public interface ActiveLineRangeListener extends EventListener { - - + /** * Called whenever the "active line range" changes. * - * @param e Information about the line range change. If there is no longer - * an "active line range," the "minimum" and "maximum" line values - * should both be -1. + * @param e + * Information about the line range change. If there is no longer + * an "active line range," the "minimum" and "maximum" line + * values + * should both be -1. */ void activeLineRangeChanged(ActiveLineRangeEvent e); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/CodeTemplateManager.java b/src/org/fife/ui/rsyntaxtextarea/CodeTemplateManager.java index 2c5360d..896162f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/CodeTemplateManager.java +++ b/src/org/fife/ui/rsyntaxtextarea/CodeTemplateManager.java @@ -1,9 +1,7 @@ /* * 02/21/2005 - * * CodeTemplateManager.java - manages code templates. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -30,18 +28,20 @@ import javax.swing.text.Segment; import org.fife.ui.rsyntaxtextarea.templates.CodeTemplate; - /** - * Manages "code templates."

+ * Manages "code templates." + *

* * All methods in this class are synchronized for thread safety, but as a * best practice, you should probably only modify the templates known to a - * CodeTemplateManager on the EDT. Modifying a + * CodeTemplateManager on the EDT. Modifying a * CodeTemplate retrieved from a CodeTemplateManager - * while not on the EDT could cause problems.

+ * while not on the EDT could cause problems. + *

* * For more flexible boilerplate code insertion, consider using the - * + * * TemplateCompletion class in the * AutoComplete * add-on library. @@ -50,15 +50,13 @@ import org.fife.ui.rsyntaxtextarea.templates.CodeTemplate; * @version 1.0 */ public class CodeTemplateManager { - + private int maxTemplateIDLength; private List templates; - private Segment s; private TemplateComparator comparator; private File directory; - - + /** * Constructor. */ @@ -67,31 +65,32 @@ public class CodeTemplateManager { comparator = new TemplateComparator(); templates = new ArrayList(); } - - + /** * Registers the specified template with this template manager. * - * @param template The template to register. - * @throws IllegalArgumentException If template is - * null. + * @param template + * The template to register. + * @throws IllegalArgumentException + * If template is + * null. * @see #removeTemplate(CodeTemplate) * @see #removeTemplate(String) */ public synchronized void addTemplate(CodeTemplate template) { - if (template==null) { + if (template == null) { throw new IllegalArgumentException("template cannot be null"); } templates.add(template); sortTemplates(); } - - + /** * Returns the template that should be inserted at the current caret * position, assuming the trigger character was pressed. * - * @param textArea The text area that's getting text inserted into it. + * @param textArea + * The text area that's getting text inserted into it. * @return A template that should be inserted, if appropriate, or * null if no template should be inserted. */ @@ -100,17 +99,16 @@ public class CodeTemplateManager { int charsToGet = Math.min(caretPos, maxTemplateIDLength); try { Document doc = textArea.getDocument(); - doc.getText(caretPos-charsToGet, charsToGet, s); + doc.getText(caretPos - charsToGet, charsToGet, s); @SuppressWarnings("unchecked") int index = Collections.binarySearch(templates, s, comparator); - return index>=0 ? (CodeTemplate)templates.get(index) : null; + return index >= 0 ? (CodeTemplate) templates.get(index) : null; } catch (BadLocationException ble) { ble.printStackTrace(); throw new InternalError("Error in CodeTemplateManager"); } } - - + /** * Returns the number of templates this manager knows about. * @@ -119,8 +117,7 @@ public class CodeTemplateManager { public synchronized int getTemplateCount() { return templates.size(); } - - + /** * Returns the templates currently available. * @@ -130,123 +127,113 @@ public class CodeTemplateManager { CodeTemplate[] temp = new CodeTemplate[templates.size()]; return templates.toArray(temp); } - - + /** * Returns whether the specified character is a valid character for a * CodeTemplate id. * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether the character is a valid template character. */ public static final boolean isValidChar(char ch) { - return RSyntaxUtilities.isLetterOrDigit(ch) || ch=='_'; + return RSyntaxUtilities.isLetterOrDigit(ch) || ch == '_'; } - - + /** * Returns the specified code template. * - * @param template The template to remove. + * @param template + * The template to remove. * @return true if the template was removed, false * if the template was not in this template manager. - * @throws IllegalArgumentException If template is - * null. + * @throws IllegalArgumentException + * If template is + * null. * @see #removeTemplate(String) * @see #addTemplate(CodeTemplate) */ public synchronized boolean removeTemplate(CodeTemplate template) { - - if (template==null) { + if (template == null) { throw new IllegalArgumentException("template cannot be null"); } - // TODO: Do a binary search return templates.remove(template); - } - - + /** * Returns the code template with the specified id. * - * @param id The id to check for. + * @param id + * The id to check for. * @return The code template that was removed, or null if * there was no template with the specified ID. - * @throws IllegalArgumentException If id is null. + * @throws IllegalArgumentException + * If id is null. * @see #removeTemplate(CodeTemplate) * @see #addTemplate(CodeTemplate) */ public synchronized CodeTemplate removeTemplate(String id) { - - if (id==null) { + if (id == null) { throw new IllegalArgumentException("id cannot be null"); } - // TODO: Do a binary search - for (Iterator i=templates.iterator(); i.hasNext();) { + for (Iterator i = templates.iterator(); i.hasNext();) { CodeTemplate template = i.next(); if (id.equals(template.getID())) { i.remove(); return template; } } - return null; - } - - + /** * Replaces the current set of available templates with the ones * specified. * - * @param newTemplates The new set of templates. Note that we will - * be taking a shallow copy of these and sorting them. + * @param newTemplates + * The new set of templates. Note that we will + * be taking a shallow copy of these and sorting them. */ public synchronized void replaceTemplates(CodeTemplate[] newTemplates) { templates.clear(); - if (newTemplates!=null) { - for (int i=0; i-1 if the specified directory does not exist. */ public synchronized int setTemplateDirectory(File dir) { - - if (dir!=null && dir.isDirectory()) { - + if (dir != null && dir.isDirectory()) { this.directory = dir; - File[] files = dir.listFiles(new XMLFileFilter()); - int newCount = files==null ? 0 : files.length; + int newCount = files == null ? 0 : files.length; int oldCount = templates.size(); - - List temp = - new ArrayList(oldCount+newCount); + List temp = new ArrayList(oldCount + newCount); temp.addAll(templates); - - for (int i=0; i i=templates.iterator(); i.hasNext();) { + for (Iterator i = templates.iterator(); i.hasNext();) { CodeTemplate temp = i.next(); - if (temp==null || temp.getID()==null) { + if (temp == null || temp.getID() == null) { i.remove(); - } - else { - maxTemplateIDLength = Math.max(maxTemplateIDLength, - temp.getID().length()); + } else { + maxTemplateIDLength = Math.max(maxTemplateIDLength, temp.getID().length()); } } - Collections.sort(templates); - } - - + /** * A comparator that takes a CodeTemplate as its first * parameter and a Segment as its second, and knows * to compare the template's ID to the segment's text. */ @SuppressWarnings("rawtypes") - private static class TemplateComparator implements Comparator, Serializable{ - + private static class TemplateComparator implements Comparator, Serializable { + @Override public int compare(Object template, Object segment) { - // Get template start index (0) and length. - CodeTemplate t = (CodeTemplate)template; + CodeTemplate t = (CodeTemplate) template; final char[] templateArray = t.getID().toCharArray(); int i = 0; int len1 = templateArray.length; - // Find "token" part of segment and get its offset and length. - Segment s = (Segment)segment; + Segment s = (Segment) segment; char[] segArray = s.array; int len2 = s.count; int j = s.offset + len2 - 1; - while (j>=s.offset && isValidChar(segArray[j])) { + while (j >= s.offset && isValidChar(segArray[j])) { j--; } j++; int segShift = j - s.offset; len2 -= segShift; - int n = Math.min(len1, len2); while (n-- != 0) { char c1 = templateArray[i++]; @@ -381,21 +343,17 @@ public class CodeTemplateManager { } } return len1 - len2; - } - } - - + /** * A file filter that accepts only XML files. */ private static class XMLFileFilter implements FileFilter { + @Override public boolean accept(File f) { return f.getName().toLowerCase().endsWith(".xml"); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/DefaultOccurrenceMarker.java b/src/org/fife/ui/rsyntaxtextarea/DefaultOccurrenceMarker.java index 4b78828..792e1cc 100644 --- a/src/org/fife/ui/rsyntaxtextarea/DefaultOccurrenceMarker.java +++ b/src/org/fife/ui/rsyntaxtextarea/DefaultOccurrenceMarker.java @@ -1,10 +1,8 @@ /* * 03/09/2013 - * * DefaultOccurrenceMarker - Marks occurrences of the current token for most * languages. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -14,48 +12,40 @@ import javax.swing.text.Caret; import org.fife.ui.rtextarea.SmartHighlightPainter; - /** - * The default implementation of {@link OccurrenceMarker}. It goes through + * The default implementation of {@link OccurrenceMarker}. It goes through * the document and marks all instances of the specified token. * * @author Robert Futrell * @version 1.0 */ class DefaultOccurrenceMarker implements OccurrenceMarker { - - + /** * {@inheritDoc} */ @Override public Token getTokenToMark(RSyntaxTextArea textArea) { - // Get the token at the caret position. int line = textArea.getCaretLineNumber(); Token tokenList = textArea.getTokenListForLine(line); Caret c = textArea.getCaret(); int dot = c.getDot(); - Token t = RSyntaxUtilities.getTokenAtOffset(tokenList, dot); - if (t==null /* EOL */ || !isValidType(textArea, t) || - RSyntaxUtilities.isNonWordChar(t)) { + if (t == null /* EOL */ || !isValidType(textArea, t) || RSyntaxUtilities.isNonWordChar(t)) { // Try to the "left" of the caret. dot--; try { - if (dot>=textArea.getLineStartOffset(line)) { + if (dot >= textArea.getLineStartOffset(line)) { t = RSyntaxUtilities.getTokenAtOffset(tokenList, dot); } } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } } - return t; - } - - + /** * {@inheritDoc} */ @@ -63,41 +53,39 @@ class DefaultOccurrenceMarker implements OccurrenceMarker { public boolean isValidType(RSyntaxTextArea textArea, Token t) { return textArea.getMarkOccurrencesOfTokenType(t.getType()); } - - + /** * {@inheritDoc} */ @Override - public void markOccurrences(RSyntaxDocument doc, Token t, - RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { + public void markOccurrences(RSyntaxDocument doc, Token t, RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { markOccurrencesOfToken(doc, t, h, p); } - - + /** * Highlights all instances of tokens identical to t in the * specified document. * - * @param doc The document. - * @param t The document whose relevant occurrences should be marked. - * @param h The highlighter to add the highlights to. - * @param p The painter for the highlights. + * @param doc + * The document. + * @param t + * The document whose relevant occurrences should be marked. + * @param h + * The highlighter to add the highlights to. + * @param p + * The painter for the highlights. */ - public static final void markOccurrencesOfToken(RSyntaxDocument doc, - Token t, RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { - + public static final void markOccurrencesOfToken(RSyntaxDocument doc, Token t, RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { char[] lexeme = t.getLexeme().toCharArray(); int type = t.getType(); int lineCount = doc.getDefaultRootElement().getElementCount(); - - for (int i=0; icreateToken is called. Instead, it internally keeps a stack of - * available already-created tokens. When more tokens are needed to properly - * display a line, more tokens are added to the available stack. This saves + * createToken is called. Instead, it internally keeps a stack of + * available already-created tokens. When more tokens are needed to properly + * display a line, more tokens are added to the available stack. This saves * from needless repetitive memory allocation. However, it makes it IMPERATIVE * that users call resetTokenList when creating a new token list so - * that the token maker can keep an accurate list of available tokens.

+ * that the token maker can keep an accurate list of available tokens. + *

* - * NOTE: This class should only be used by {@link TokenMaker}; nobody else + * NOTE: This class should only be used by {@link TokenMaker}; nobody else * needs it! * * @author Robert Futrell * @version 0.1 */ class DefaultTokenFactory implements TokenFactory { - + private int size; private int increment; private TokenImpl[] tokenList; private int currentFreeToken; - - protected static final int DEFAULT_START_SIZE = 30; - protected static final int DEFAULT_INCREMENT = 10; - - + protected static final int DEFAULT_START_SIZE = 30; + protected static final int DEFAULT_INCREMENT = 10; + /** * Constructor. */ DefaultTokenFactory() { this(DEFAULT_START_SIZE, DEFAULT_INCREMENT); } - - + /** * Constructor. * - * @param size The initial number of tokens in this factory. - * @param increment How many tokens to increment by when the stack gets - * empty. + * @param size + * The initial number of tokens in this factory. + * @param increment + * How many tokens to increment by when the stack gets + * empty. */ DefaultTokenFactory(int size, int increment) { - this.size = size; this.increment = increment; this.currentFreeToken = 0; - // Give us some tokens to initially work with. tokenList = new TokenImpl[size]; - for (int i=0; iTokenMaker every time a token list is generated for * a new line so the tokens can be reused. */ @@ -138,6 +125,4 @@ class DefaultTokenFactory implements TokenFactory { public void resetAllTokens() { currentFreeToken = 0; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/DefaultTokenMakerFactory.java b/src/org/fife/ui/rsyntaxtextarea/DefaultTokenMakerFactory.java index 00f1ccb..a04c5c8 100644 --- a/src/org/fife/ui/rsyntaxtextarea/DefaultTokenMakerFactory.java +++ b/src/org/fife/ui/rsyntaxtextarea/DefaultTokenMakerFactory.java @@ -1,83 +1,73 @@ /* * 12/14/2008 - * * DefaultTokenMakerFactory.java - The default TokenMaker factory. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; - /** - * The default implementation of TokenMakerFactory. This factory + * The default implementation of TokenMakerFactory. This factory * can create {@link TokenMaker}s for all languages known to * {@link RSyntaxTextArea}. * * @author Robert Futrell * @version 1.0 */ -class DefaultTokenMakerFactory extends AbstractTokenMakerFactory - implements SyntaxConstants { - - +class DefaultTokenMakerFactory extends AbstractTokenMakerFactory implements SyntaxConstants { + /** * {@inheritDoc} */ @Override protected void initTokenMakerMap() { - String pkg = "org.fife.ui.rsyntaxtextarea.modes."; - - putMapping(SYNTAX_STYLE_NONE, pkg + "PlainTextTokenMaker"); - putMapping(SYNTAX_STYLE_ACTIONSCRIPT, pkg + "ActionScriptTokenMaker"); - putMapping(SYNTAX_STYLE_ASSEMBLER_X86, pkg + "AssemblerX86TokenMaker"); - putMapping(SYNTAX_STYLE_BBCODE, pkg + "BBCodeTokenMaker"); - putMapping(SYNTAX_STYLE_C, pkg + "CTokenMaker"); - putMapping(SYNTAX_STYLE_CLOJURE, pkg + "ClojureTokenMaker"); - putMapping(SYNTAX_STYLE_CPLUSPLUS, pkg + "CPlusPlusTokenMaker"); - putMapping(SYNTAX_STYLE_CSHARP, pkg + "CSharpTokenMaker"); - putMapping(SYNTAX_STYLE_CSS, pkg + "CSSTokenMaker"); - putMapping(SYNTAX_STYLE_D, pkg + "DTokenMaker"); - putMapping(SYNTAX_STYLE_DART, pkg + "DartTokenMaker"); - putMapping(SYNTAX_STYLE_DELPHI, pkg + "DelphiTokenMaker"); - putMapping(SYNTAX_STYLE_DOCKERFILE, pkg + "DockerTokenMaker"); - putMapping(SYNTAX_STYLE_DTD, pkg + "DtdTokenMaker"); - putMapping(SYNTAX_STYLE_FORTRAN, pkg + "FortranTokenMaker"); - putMapping(SYNTAX_STYLE_GROOVY, pkg + "GroovyTokenMaker"); - putMapping(SYNTAX_STYLE_HOSTS, pkg + "HostsTokenMaker"); - putMapping(SYNTAX_STYLE_HTACCESS, pkg + "HtaccessTokenMaker"); - putMapping(SYNTAX_STYLE_HTML, pkg + "HTMLTokenMaker"); - putMapping(SYNTAX_STYLE_INI, pkg + "IniTokenMaker"); - putMapping(SYNTAX_STYLE_JAVA, pkg + "JavaTokenMaker"); - putMapping(SYNTAX_STYLE_JAVASCRIPT, pkg + "JavaScriptTokenMaker"); - putMapping(SYNTAX_STYLE_JSON_WITH_COMMENTS, pkg + "JshintrcTokenMaker"); - putMapping(SYNTAX_STYLE_JSON, pkg + "JsonTokenMaker"); - putMapping(SYNTAX_STYLE_JSP, pkg + "JSPTokenMaker"); - putMapping(SYNTAX_STYLE_LATEX, pkg + "LatexTokenMaker"); - putMapping(SYNTAX_STYLE_LESS, pkg + "LessTokenMaker"); - putMapping(SYNTAX_STYLE_LISP, pkg + "LispTokenMaker"); - putMapping(SYNTAX_STYLE_LUA, pkg + "LuaTokenMaker"); - putMapping(SYNTAX_STYLE_MAKEFILE, pkg + "MakefileTokenMaker"); - putMapping(SYNTAX_STYLE_MXML, pkg + "MxmlTokenMaker"); - putMapping(SYNTAX_STYLE_NSIS, pkg + "NSISTokenMaker"); - putMapping(SYNTAX_STYLE_PERL, pkg + "PerlTokenMaker"); - putMapping(SYNTAX_STYLE_PHP, pkg + "PHPTokenMaker"); - putMapping(SYNTAX_STYLE_PROPERTIES_FILE,pkg + "PropertiesFileTokenMaker"); - putMapping(SYNTAX_STYLE_PYTHON, pkg + "PythonTokenMaker"); - putMapping(SYNTAX_STYLE_RUBY, pkg + "RubyTokenMaker"); - putMapping(SYNTAX_STYLE_SAS, pkg + "SASTokenMaker"); - putMapping(SYNTAX_STYLE_SCALA, pkg + "ScalaTokenMaker"); - putMapping(SYNTAX_STYLE_SQL, pkg + "SQLTokenMaker"); - putMapping(SYNTAX_STYLE_TCL, pkg + "TclTokenMaker"); - putMapping(SYNTAX_STYLE_TYPESCRIPT, pkg + "TypeScriptTokenMaker"); - putMapping(SYNTAX_STYLE_UNIX_SHELL, pkg + "UnixShellTokenMaker"); - putMapping(SYNTAX_STYLE_VISUAL_BASIC, pkg + "VisualBasicTokenMaker"); - putMapping(SYNTAX_STYLE_WINDOWS_BATCH, pkg + "WindowsBatchTokenMaker"); - putMapping(SYNTAX_STYLE_XML, pkg + "XMLTokenMaker"); - putMapping(SYNTAX_STYLE_YAML, pkg + "YamlTokenMaker"); - + putMapping(SYNTAX_STYLE_NONE, pkg + "PlainTextTokenMaker"); + putMapping(SYNTAX_STYLE_ACTIONSCRIPT, pkg + "ActionScriptTokenMaker"); + putMapping(SYNTAX_STYLE_ASSEMBLER_X86, pkg + "AssemblerX86TokenMaker"); + putMapping(SYNTAX_STYLE_BBCODE, pkg + "BBCodeTokenMaker"); + putMapping(SYNTAX_STYLE_C, pkg + "CTokenMaker"); + putMapping(SYNTAX_STYLE_CLOJURE, pkg + "ClojureTokenMaker"); + putMapping(SYNTAX_STYLE_CPLUSPLUS, pkg + "CPlusPlusTokenMaker"); + putMapping(SYNTAX_STYLE_CSHARP, pkg + "CSharpTokenMaker"); + putMapping(SYNTAX_STYLE_CSS, pkg + "CSSTokenMaker"); + putMapping(SYNTAX_STYLE_D, pkg + "DTokenMaker"); + putMapping(SYNTAX_STYLE_DART, pkg + "DartTokenMaker"); + putMapping(SYNTAX_STYLE_DELPHI, pkg + "DelphiTokenMaker"); + putMapping(SYNTAX_STYLE_DOCKERFILE, pkg + "DockerTokenMaker"); + putMapping(SYNTAX_STYLE_DTD, pkg + "DtdTokenMaker"); + putMapping(SYNTAX_STYLE_FORTRAN, pkg + "FortranTokenMaker"); + putMapping(SYNTAX_STYLE_GROOVY, pkg + "GroovyTokenMaker"); + putMapping(SYNTAX_STYLE_HOSTS, pkg + "HostsTokenMaker"); + putMapping(SYNTAX_STYLE_HTACCESS, pkg + "HtaccessTokenMaker"); + putMapping(SYNTAX_STYLE_HTML, pkg + "HTMLTokenMaker"); + putMapping(SYNTAX_STYLE_INI, pkg + "IniTokenMaker"); + putMapping(SYNTAX_STYLE_JAVA, pkg + "JavaTokenMaker"); + putMapping(SYNTAX_STYLE_JAVASCRIPT, pkg + "JavaScriptTokenMaker"); + putMapping(SYNTAX_STYLE_JSON_WITH_COMMENTS, pkg + "JshintrcTokenMaker"); + putMapping(SYNTAX_STYLE_JSON, pkg + "JsonTokenMaker"); + putMapping(SYNTAX_STYLE_JSP, pkg + "JSPTokenMaker"); + putMapping(SYNTAX_STYLE_LATEX, pkg + "LatexTokenMaker"); + putMapping(SYNTAX_STYLE_LESS, pkg + "LessTokenMaker"); + putMapping(SYNTAX_STYLE_LISP, pkg + "LispTokenMaker"); + putMapping(SYNTAX_STYLE_LUA, pkg + "LuaTokenMaker"); + putMapping(SYNTAX_STYLE_MAKEFILE, pkg + "MakefileTokenMaker"); + putMapping(SYNTAX_STYLE_MXML, pkg + "MxmlTokenMaker"); + putMapping(SYNTAX_STYLE_NSIS, pkg + "NSISTokenMaker"); + putMapping(SYNTAX_STYLE_PERL, pkg + "PerlTokenMaker"); + putMapping(SYNTAX_STYLE_PHP, pkg + "PHPTokenMaker"); + putMapping(SYNTAX_STYLE_PROPERTIES_FILE, pkg + "PropertiesFileTokenMaker"); + putMapping(SYNTAX_STYLE_PYTHON, pkg + "PythonTokenMaker"); + putMapping(SYNTAX_STYLE_RUBY, pkg + "RubyTokenMaker"); + putMapping(SYNTAX_STYLE_SAS, pkg + "SASTokenMaker"); + putMapping(SYNTAX_STYLE_SCALA, pkg + "ScalaTokenMaker"); + putMapping(SYNTAX_STYLE_SQL, pkg + "SQLTokenMaker"); + putMapping(SYNTAX_STYLE_TCL, pkg + "TclTokenMaker"); + putMapping(SYNTAX_STYLE_TYPESCRIPT, pkg + "TypeScriptTokenMaker"); + putMapping(SYNTAX_STYLE_UNIX_SHELL, pkg + "UnixShellTokenMaker"); + putMapping(SYNTAX_STYLE_VISUAL_BASIC, pkg + "VisualBasicTokenMaker"); + putMapping(SYNTAX_STYLE_WINDOWS_BATCH, pkg + "WindowsBatchTokenMaker"); + putMapping(SYNTAX_STYLE_XML, pkg + "XMLTokenMaker"); + putMapping(SYNTAX_STYLE_YAML, pkg + "YamlTokenMaker"); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/DefaultTokenPainter.java b/src/org/fife/ui/rsyntaxtextarea/DefaultTokenPainter.java index d764802..1cdea5a 100644 --- a/src/org/fife/ui/rsyntaxtextarea/DefaultTokenPainter.java +++ b/src/org/fife/ui/rsyntaxtextarea/DefaultTokenPainter.java @@ -1,9 +1,7 @@ /* * 03/16/2013 - * * DefaultTokenPainter - Standard implementation of a token painter. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -15,7 +13,6 @@ import java.awt.geom.Rectangle2D; import javax.swing.text.TabExpander; - /** * Standard implementation of a token painter. * @@ -23,111 +20,101 @@ import javax.swing.text.TabExpander; * @version 1.0 */ class DefaultTokenPainter implements TokenPainter { - + /** * Rectangle used for filling token backgrounds. */ private Rectangle2D.Float bgRect; - /** - * Micro-optimization; buffer used to compute tab width. If the width is + * Micro-optimization; buffer used to compute tab width. If the width is * correct it's not re-allocated, to prevent lots of very small garbage. * Only used when painting tab lines. */ private static char[] tabBuf; - - + DefaultTokenPainter() { bgRect = new Rectangle2D.Float(); } - - + /** * {@inheritDoc} */ @Override - public final float paint(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e) { - return paint(token, g, x,y, host, e, 0); + public final float paint(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e) { + return paint(token, g, x, y, host, e, 0); } - - + /** * {@inheritDoc} */ @Override - public float paint(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart) { + public float paint(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart) { return paintImpl(token, g, x, y, host, e, clipStart, false, false); } - - + /** * {@inheritDoc} */ @Override - public float paint(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart, - boolean paintBG) { + public float paint(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart, boolean paintBG) { return paintImpl(token, g, x, y, host, e, clipStart, !paintBG, false); } - - + /** * Paints the background of a token. * - * @param x The x-coordinate of the token. - * @param y The y-coordinate of the token. - * @param width The width of the token (actually, the width of the part of - * the token to paint). - * @param height The height of the token. - * @param g The graphics context with which to paint. - * @param fontAscent The ascent of the token's font. - * @param host The text area. - * @param color The color with which to paint. + * @param x + * The x-coordinate of the token. + * @param y + * The y-coordinate of the token. + * @param width + * The width of the token (actually, the width of the part of + * the token to paint). + * @param height + * The height of the token. + * @param g + * The graphics context with which to paint. + * @param fontAscent + * The ascent of the token's font. + * @param host + * The text area. + * @param color + * The color with which to paint. */ - protected void paintBackground(float x, float y, float width, float height, - Graphics2D g, int fontAscent, RSyntaxTextArea host, - Color color) { + protected void paintBackground(float x, float y, float width, float height, Graphics2D g, int fontAscent, RSyntaxTextArea host, + Color color) { g.setColor(color); - bgRect.setRect(x,y-fontAscent, width,height); - //g.fill(bgRect); - g.fillRect((int)x, (int)(y-fontAscent), (int)width, (int)height); + bgRect.setRect(x, y - fontAscent, width, height); + // g.fill(bgRect); + g.fillRect((int) x, (int) (y - fontAscent), (int) width, (int) height); } - - + /** * Does the dirty-work of actually painting the token. */ - protected float paintImpl(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart, + protected float paintImpl(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart, boolean selected, boolean useSTC) { - - int origX = (int)x; + int origX = (int) x; int textOffs = token.getTextOffset(); char[] text = token.getTextArray(); int end = textOffs + token.length(); float nextX = x; int flushLen = 0; int flushIndex = textOffs; - Color fg = useSTC ? host.getSelectedTextColor() : - host.getForegroundForToken(token); + Color fg = useSTC ? host.getSelectedTextColor() : host.getForegroundForToken(token); Color bg = selected ? null : host.getBackgroundForToken(token); g.setFont(host.getFontForTokenType(token.getType())); FontMetrics fm = host.getFontMetricsForTokenType(token.getType()); - - for (int i=textOffs; i 0) { g.setColor(fg); - g.drawChars(text, flushIndex, flushLen, (int)x,(int)y); + g.drawChars(text, flushIndex, flushLen, (int) x, (int) y); flushLen = 0; } flushIndex = i + 1; @@ -138,142 +125,131 @@ class DefaultTokenPainter implements TokenPainter { break; } } - - nextX = x+fm.charsWidth(text, flushIndex,flushLen); -java.awt.Rectangle r = host.getMatchRectangle(); - - if (flushLen>0 && nextX>=clipStart) { - if (bg!=null) { - paintBackground(x,y, nextX-x,fm.getHeight(), - g, fm.getAscent(), host, bg); - if (token.length()==1 && r!=null && r.x==x) { - ((RSyntaxTextAreaUI)host.getUI()).paintMatchedBracketImpl( - g, host, r); + nextX = x + fm.charsWidth(text, flushIndex, flushLen); + java.awt.Rectangle r = host.getMatchRectangle(); + if (flushLen > 0 && nextX >= clipStart) { + if (bg != null) { + paintBackground(x, y, nextX - x, fm.getHeight(), g, fm.getAscent(), host, bg); + if (token.length() == 1 && r != null && r.x == x) { + ((RSyntaxTextAreaUI) host.getUI()).paintMatchedBracketImpl(g, host, r); } } g.setColor(fg); - g.drawChars(text, flushIndex, flushLen, (int)x,(int)y); + g.drawChars(text, flushIndex, flushLen, (int) x, (int) y); } - if (host.getUnderlineForToken(token)) { g.setColor(fg); - int y2 = (int)(y+1); - g.drawLine(origX,y2, (int)nextX,y2); + int y2 = (int) (y + 1); + g.drawLine(origX, y2, (int) nextX, y2); } - // Don't check if it's whitespace - some TokenMakers may return types // other than Token.WHITESPACE for spaces (such as Token.IDENTIFIER). // This also allows us to paint tab lines for MLC's. - if (host.getPaintTabLines() && origX==host.getMargin().left) {// && isWhitespace()) { - paintTabLines(token, origX, (int)y, (int)nextX, g, e, host); + if (host.getPaintTabLines() && origX == host.getMargin().left) {// && + // isWhitespace()) + // { + paintTabLines(token, origX, (int) y, (int) nextX, g, e, host); } - return nextX; - } - - + /** * {@inheritDoc} */ @Override - public float paintSelected(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, boolean useSTC) { + public float paintSelected(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, boolean useSTC) { return paintSelected(token, g, x, y, host, e, 0, useSTC); } - - + /** * {@inheritDoc} */ @Override - public float paintSelected(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart, + public float paintSelected(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart, boolean useSTC) { return paintImpl(token, g, x, y, host, e, clipStart, true, useSTC); } - - + /** * Paints dotted "tab" lines; that is, lines that show where your caret - * would go to on the line if you hit "tab". This visual effect is usually + * would go to on the line if you hit "tab". This visual effect is usually * done in the leading whitespace token(s) of lines. * - * @param token The token to render. - * @param x The starting x-offset of this token. It is assumed that this - * is the left margin of the text area (may be non-zero due to - * insets), since tab lines are only painted for leading whitespace. - * @param y The baseline where this token was painted. - * @param endX The ending x-offset of this token. - * @param g The graphics context. - * @param e Used to expand tabs. - * @param host The text area. + * @param token + * The token to render. + * @param x + * The starting x-offset of this token. It is assumed that this + * is the left margin of the text area (may be non-zero due to + * insets), since tab lines are only painted for leading + * whitespace. + * @param y + * The baseline where this token was painted. + * @param endX + * The ending x-offset of this token. + * @param g + * The graphics context. + * @param e + * Used to expand tabs. + * @param host + * The text area. */ - protected void paintTabLines(Token token, int x, int y, int endX, - Graphics2D g, TabExpander e, RSyntaxTextArea host) { - + protected void paintTabLines(Token token, int x, int y, int endX, Graphics2D g, TabExpander e, RSyntaxTextArea host) { // We allow tab lines to be painted in more than just Token.WHITESPACE, // i.e. for MLC's and Token.IDENTIFIERS (for TokenMakers that return - // whitespace as identifiers for performance). But we only paint tab - // lines for the leading whitespace in the token. So, if this isn't a + // whitespace as identifiers for performance). But we only paint tab + // lines for the leading whitespace in the token. So, if this isn't a // WHITESPACE token, figure out the leading whitespace's length. - if (token.getType()!=Token.WHITESPACE) { + if (token.getType() != Token.WHITESPACE) { int offs = 0; - for (; offs0) { + if ((y0 & 1) > 0) { // Only paint on even y-pixels to prevent doubling up between lines y0++; } - // TODO: Go to endX (inclusive) if this token is last token in the line Token next = token.getNextToken(); - if (next==null || !next.isPaintable()) { + if (next == null || !next.isPaintable()) { endX++; } - while (x0 { - + private int startOffs; private int endOffs; - - + /** * Constructor. * - * @param startOffs The starting offset in the document, inclusive. - * @param endOffs The ending offset in the document, exclusive. - * @throws IllegalArgumentException If endOffs is less than - * startOffs, or either argument is less than zero. + * @param startOffs + * The starting offset in the document, inclusive. + * @param endOffs + * The ending offset in the document, exclusive. + * @throws IllegalArgumentException + * If endOffs is less than + * startOffs, or either argument is less than zero. */ public DocumentRange(int startOffs, int endOffs) { set(startOffs, endOffs); } - - + /** * Compares this document range to another. * - * @param other Another document range. + * @param other + * Another document range. * @return How the two should be sorted relative to each other. */ @Override public int compareTo(DocumentRange other) { - if (other==null) { + if (other == null) { return 1; } int diff = startOffs - other.startOffs; - if (diff!=0) { + if (diff != 0) { return diff; } return endOffs - other.endOffs; } - - + /** * Returns whether this document range is equal to another one. * - * @param other Another object, presumably a document range. + * @param other + * Another object, presumably a document range. * @return Whether other is also a document range, and equal * to this one. */ @Override public boolean equals(Object other) { - if (other==this) { + if (other == this) { return true; } if (other instanceof DocumentRange) { - return this.compareTo((DocumentRange)other)==0; + return this.compareTo((DocumentRange) other) == 0; } return false; } - - + /** * Gets the end offset of the range. * @@ -81,8 +79,7 @@ public class DocumentRange implements Comparable { public int getEndOffset() { return endOffs; } - - + /** * Gets the starting offset of the range. * @@ -92,8 +89,7 @@ public class DocumentRange implements Comparable { public int getStartOffset() { return startOffs; } - - + /** * Overridden simply as a best practice, since {@link #equals(Object)} is * overridden. @@ -104,10 +100,9 @@ public class DocumentRange implements Comparable { public int hashCode() { return startOffs + endOffs; } - - + /** - * Returns whether this document range has zero length. This can happen, + * Returns whether this document range has zero length. This can happen, * for example, with regex searches of forms like * "foo|", where the right-hand sub-expression matches empty * strings. @@ -117,31 +112,29 @@ public class DocumentRange implements Comparable { public boolean isZeroLength() { return startOffs == endOffs; } - - + /** * Sets the document range. * - * @param start The new start value, inclusive. - * @param end The new end value, exclusive. - * @throws IllegalArgumentException If end is less than - * start, or either argument is less than zero. + * @param start + * The new start value, inclusive. + * @param end + * The new end value, exclusive. + * @throws IllegalArgumentException + * If end is less than + * start, or either argument is less than zero. */ public void set(int start, int end) { - if (start<0 || end<0) { - throw new IllegalArgumentException( - "start and end must be >= 0 (" + start + "-" + end + ")"); + if (start < 0 || end < 0) { + throw new IllegalArgumentException("start and end must be >= 0 (" + start + "-" + end + ")"); } - if (end { public String toString() { return "[DocumentRange: " + startOffs + "-" + endOffs + "]"; } - - + /** * Translates this document range by a given amount. * - * @param amount The amount to translate this range by. + * @param amount + * The amount to translate this range by. * @return This (modified) range. */ public DocumentRange translate(int amount) { @@ -164,6 +157,4 @@ public class DocumentRange implements Comparable { endOffs += amount; return this; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/ErrorStrip.java b/src/org/fife/ui/rsyntaxtextarea/ErrorStrip.java index f53d264..144753c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/ErrorStrip.java +++ b/src/org/fife/ui/rsyntaxtextarea/ErrorStrip.java @@ -1,10 +1,8 @@ /* * 08/10/2009 - * * ErrorStrip.java - A component that can visually show Parser messages (syntax * errors, etc.) in an RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -40,22 +38,24 @@ import org.fife.ui.rsyntaxtextarea.parser.ParserNotice; import org.fife.ui.rsyntaxtextarea.parser.TaskTagParser.TaskNotice; import org.fife.ui.rtextarea.RTextArea; - /** * A component to sit alongside an {@link RSyntaxTextArea} that displays * colored markers for locations of interest (parser errors, marked - * occurrences, etc.).

+ * occurrences, etc.). + *

* * ErrorStrips display ParserNotices from - * {@link Parser}s. Currently, the only way to get lines flagged in this + * {@link Parser}s. Currently, the only way to get lines flagged in this * component is to register a Parser on an RSyntaxTextArea and * return ParserNotices for each line to display an icon for. * The severity of each notice must be at least the threshold set by * {@link #setLevelThreshold(org.fife.ui.rsyntaxtextarea.parser.ParserNotice.Level)} - * to be displayed in this error strip. The default threshold is - * {@link org.fife.ui.rsyntaxtextarea.parser.ParserNotice.Level#WARNING}.

+ * to be displayed in this error strip. The default threshold is + * {@link org.fife.ui.rsyntaxtextarea.parser.ParserNotice.Level#WARNING}. + *

* * An ErrorStrip can be added to a UI like so: + * *

  * textArea = createTextArea();
  * textArea.addParser(new MyParser(textArea)); // Identifies lines to display
@@ -70,84 +70,72 @@ import org.fife.ui.rtextarea.RTextArea;
  * @version 0.5
  */
 // Possible improvements:
-//    1. Handle marked occurrence changes & "mark all" changes separately from
-//       parser changes. For each property change, call a method that removes
-//       the notices being reloaded from the Markers (removing any Markers that
-//       are now "empty").
+// 1. Handle marked occurrence changes & "mark all" changes separately from
+// parser changes. For each property change, call a method that removes
+// the notices being reloaded from the Markers (removing any Markers that
+// are now "empty").
 //
 public class ErrorStrip extends JPanel {
-
+	
 	/**
 	 * The text area.
 	 */
 	private RSyntaxTextArea textArea;
-
 	/**
 	 * Listens for events in this component.
 	 */
 	private transient Listener listener;
-
 	/**
 	 * Whether "marked occurrences" in the text area should be shown in this
 	 * error strip.
 	 */
 	private boolean showMarkedOccurrences;
-
 	/**
 	 * Whether markers for "mark all" highlights should be shown in this
 	 * error strip.
 	 */
 	private boolean showMarkAll;
-
 	/**
-	 * Mapping of colors to brighter colors.  This is kept to prevent
+	 * Mapping of colors to brighter colors. This is kept to prevent
 	 * unnecessary creation of the same Colors over and over.
 	 */
 	private Map brighterColors;
-
 	/**
 	 * Only notices of this severity (or worse) will be displayed in this
 	 * error strip.
 	 */
 	private ParserNotice.Level levelThreshold;
-
 	/**
 	 * Whether the caret marker's location should be rendered.
 	 */
 	private boolean followCaret;
-
 	/**
 	 * The color to use for the caret marker.
 	 */
 	private Color caretMarkerColor;
-
 	/**
 	 * Where we paint the caret marker.
 	 */
 	private int caretLineY;
-
 	/**
 	 * The last location of the caret marker.
 	 */
 	private int lastLineY;
-
 	/**
 	 * Generates the tool tips for markers in this error strip.
 	 */
 	private transient ErrorStripMarkerToolTipProvider markerToolTipProvider;
-
 	/**
 	 * The preferred width of this component.
 	 */
 	private static final int PREFERRED_WIDTH = 14;
-
-	private static final ResourceBundle MSG = ResourceBundle.getBundle(
-			"org.fife.ui.rsyntaxtextarea.ErrorStrip");
-
+	private static final ResourceBundle MSG = ResourceBundle.getBundle("org.fife.ui.rsyntaxtextarea.ErrorStrip");
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param textArea The text area we are examining.
+	 * @param textArea
+	 *            The text area we are examining.
 	 */
 	public ErrorStrip(RSyntaxTextArea textArea) {
 		this.textArea = textArea;
@@ -162,8 +150,7 @@ public class ErrorStrip extends JPanel {
 		setCaretMarkerColor(Color.BLACK);
 		setMarkerToolTipProvider(null); // Install default
 	}
-
-
+	
 	/**
 	 * Overridden so we only start listening for parser notices when this
 	 * component (and presumably the text area) are visible.
@@ -172,43 +159,38 @@ public class ErrorStrip extends JPanel {
 	public void addNotify() {
 		super.addNotify();
 		textArea.addCaretListener(listener);
-		textArea.addPropertyChangeListener(
-				RSyntaxTextArea.PARSER_NOTICES_PROPERTY, listener);
-		textArea.addPropertyChangeListener(
-				RSyntaxTextArea.MARK_OCCURRENCES_PROPERTY, listener);
-		textArea.addPropertyChangeListener(
-				RSyntaxTextArea.MARKED_OCCURRENCES_CHANGED_PROPERTY, listener);
-		textArea.addPropertyChangeListener(
-			RSyntaxTextArea.MARK_ALL_OCCURRENCES_CHANGED_PROPERTY, listener);
+		textArea.addPropertyChangeListener(RSyntaxTextArea.PARSER_NOTICES_PROPERTY, listener);
+		textArea.addPropertyChangeListener(RSyntaxTextArea.MARK_OCCURRENCES_PROPERTY, listener);
+		textArea.addPropertyChangeListener(RSyntaxTextArea.MARKED_OCCURRENCES_CHANGED_PROPERTY, listener);
+		textArea.addPropertyChangeListener(RSyntaxTextArea.MARK_ALL_OCCURRENCES_CHANGED_PROPERTY, listener);
 		refreshMarkers();
 	}
-
-
+	
 	/**
 	 * Manually manages layout since this component uses no layout manager.
 	 */
 	@Override
 	public void doLayout() {
-		for (int i=0; i(5); // Usually small
 		}
 		Color brighter = brighterColors.get(c);
-		if (brighter==null) {
+		if (brighter == null) {
 			// Don't use c.brighter() as it doesn't work well for blue, and
 			// also doesn't return something brighter "enough."
 			int r = possiblyBrighter(c.getRed());
@@ -219,8 +201,7 @@ public class ErrorStrip extends JPanel {
 		}
 		return brighter;
 	}
-
-
+	
 	/**
 	 * returns the color to use when painting the caret marker.
 	 *
@@ -230,8 +211,7 @@ public class ErrorStrip extends JPanel {
 	public Color getCaretMarkerColor() {
 		return caretMarkerColor;
 	}
-
-
+	
 	/**
 	 * Returns whether the caret's position should be drawn.
 	 *
@@ -241,8 +221,7 @@ public class ErrorStrip extends JPanel {
 	public boolean getFollowCaret() {
 		return followCaret;
 	}
-
-
+	
 	/**
 	 * {@inheritDoc}
 	 */
@@ -251,11 +230,10 @@ public class ErrorStrip extends JPanel {
 		int height = textArea.getPreferredScrollableViewportSize().height;
 		return new Dimension(PREFERRED_WIDTH, height);
 	}
-
-
+	
 	/**
 	 * Returns the minimum severity a parser notice must be for it to be
-	 * displayed in this error strip.  This will be one of the constants
+	 * displayed in this error strip. This will be one of the constants
 	 * defined in the ParserNotice class.
 	 *
 	 * @return The minimum severity.
@@ -264,8 +242,7 @@ public class ErrorStrip extends JPanel {
 	public ParserNotice.Level getLevelThreshold() {
 		return levelThreshold;
 	}
-
-
+	
 	/**
 	 * Returns whether "mark all" highlights are shown in this error strip.
 	 *
@@ -275,8 +252,7 @@ public class ErrorStrip extends JPanel {
 	public boolean getShowMarkAll() {
 		return showMarkAll;
 	}
-
-
+	
 	/**
 	 * Returns whether marked occurrences are shown in this error strip.
 	 *
@@ -286,8 +262,7 @@ public class ErrorStrip extends JPanel {
 	public boolean getShowMarkedOccurrences() {
 		return showMarkedOccurrences;
 	}
-
-
+	
 	/**
 	 * {@inheritDoc}
 	 */
@@ -295,110 +270,102 @@ public class ErrorStrip extends JPanel {
 	public String getToolTipText(MouseEvent e) {
 		String text = null;
 		int line = yToLine(e.getY());
-		if (line>-1) {
+		if (line > -1) {
 			text = MSG.getString("Line");
-			text = MessageFormat.format(text, Integer.valueOf(line+1));
+			text = MessageFormat.format(text, Integer.valueOf(line + 1));
 		}
 		return text;
 	}
-
-
+	
 	/**
 	 * Returns the y-offset in this component corresponding to a line in the
 	 * text component.
 	 *
-	 * @param line The line.
+	 * @param line
+	 *            The line.
 	 * @return The y-offset.
 	 * @see #yToLine(int)
 	 */
 	private int lineToY(int line) {
 		int h = textArea.getVisibleRect().height;
 		float lineCount = textArea.getLineCount();
-		return (int)(((line-1)/(lineCount-1)) * (h-2));
+		return (int) (((line - 1) / (lineCount - 1)) * (h - 2));
 	}
-
-
+	
 	/**
 	 * Overridden to (possibly) draw the caret's position.
 	 *
-	 * @param g The graphics context.
+	 * @param g
+	 *            The graphics context.
 	 */
 	@Override
 	protected void paintComponent(Graphics g) {
 		super.paintComponent(g);
-		if (caretLineY>-1) {
+		if (caretLineY > -1) {
 			g.setColor(getCaretMarkerColor());
 			g.fillRect(0, caretLineY, getWidth(), 2);
 		}
 	}
-
-
+	
 	/**
 	 * Returns a possibly brighter component for a color.
 	 *
-	 * @param i An RGB component for a color (0-255).
+	 * @param i
+	 *            An RGB component for a color (0-255).
 	 * @return A possibly brighter value for the component.
 	 */
 	private static int possiblyBrighter(int i) {
-		if (i<255) {
-			i += (int)((255-i)*0.8f);
+		if (i < 255) {
+			i += (int) ((255 - i) * 0.8f);
 		}
 		return i;
 	}
-
-
+	
 	/**
 	 * Refreshes the markers displayed in this error strip.
 	 */
 	private void refreshMarkers() {
-
 		removeAll(); // listener is removed in Marker.removeNotify()
 		Map markerMap = new HashMap();
-
 		List notices = textArea.getParserNotices();
 		for (ParserNotice notice : notices) {
-			if (notice.getLevel().isEqualToOrWorseThan(levelThreshold) ||
-					(notice instanceof TaskNotice)) {
+			if (notice.getLevel().isEqualToOrWorseThan(levelThreshold) || (notice instanceof TaskNotice)) {
 				Integer key = Integer.valueOf(notice.getLine());
 				Marker m = markerMap.get(key);
-				if (m==null) {
+				if (m == null) {
 					m = new Marker(notice);
 					m.addMouseListener(listener);
 					markerMap.put(key, m);
 					add(m);
-				}
-				else {
+				} else {
 					m.addNotice(notice);
 				}
 			}
 		}
-
 		if (getShowMarkedOccurrences() && textArea.getMarkOccurrences()) {
 			List occurrences = textArea.getMarkedOccurrences();
 			addMarkersForRanges(occurrences, markerMap, textArea.getMarkOccurrencesColor());
 		}
-
-		if (getShowMarkAll() /*&& textArea.getMarkAll()*/) {
+		if (getShowMarkAll() /* && textArea.getMarkAll() */) {
 			Color markAllColor = textArea.getMarkAllHighlightColor();
 			List ranges = textArea.getMarkAllHighlightRanges();
 			addMarkersForRanges(ranges, markerMap, markAllColor);
 		}
-
 		revalidate();
 		repaint();
-
 	}
-
-
+	
 	/**
 	 * Adds markers for a list of ranges in the document.
 	 *
-	 * @param ranges The list of ranges in the document.
-	 * @param markerMap A mapping from line number to Marker.
-	 * @param color The color to use for the markers.
+	 * @param ranges
+	 *            The list of ranges in the document.
+	 * @param markerMap
+	 *            A mapping from line number to Marker.
+	 * @param color
+	 *            The color to use for the markers.
 	 */
-	private void addMarkersForRanges(List ranges,
-			Map markerMap, Color color) {
+	private void addMarkersForRanges(List ranges, Map markerMap, Color color) {
 		for (DocumentRange range : ranges) {
 			int line = 0;
 			try {
@@ -409,21 +376,19 @@ public class ErrorStrip extends JPanel {
 			ParserNotice notice = new MarkedOccurrenceNotice(range, color);
 			Integer key = Integer.valueOf(line);
 			Marker m = markerMap.get(key);
-			if (m==null) {
+			if (m == null) {
 				m = new Marker(notice);
 				m.addMouseListener(listener);
 				markerMap.put(key, m);
 				add(m);
-			}
-			else {
+			} else {
 				if (!m.containsMarkedOccurence()) {
 					m.addNotice(notice);
 				}
 			}
 		}
 	}
-
-
+	
 	/**
 	 * {@inheritDoc}
 	 */
@@ -431,41 +396,37 @@ public class ErrorStrip extends JPanel {
 	public void removeNotify() {
 		super.removeNotify();
 		textArea.removeCaretListener(listener);
-		textArea.removePropertyChangeListener(
-				RSyntaxTextArea.PARSER_NOTICES_PROPERTY, listener);
-		textArea.removePropertyChangeListener(
-				RSyntaxTextArea.MARK_OCCURRENCES_PROPERTY, listener);
-		textArea.removePropertyChangeListener(
-				RSyntaxTextArea.MARKED_OCCURRENCES_CHANGED_PROPERTY, listener);
-		textArea.removePropertyChangeListener(
-			RSyntaxTextArea.MARK_ALL_OCCURRENCES_CHANGED_PROPERTY, listener);
+		textArea.removePropertyChangeListener(RSyntaxTextArea.PARSER_NOTICES_PROPERTY, listener);
+		textArea.removePropertyChangeListener(RSyntaxTextArea.MARK_OCCURRENCES_PROPERTY, listener);
+		textArea.removePropertyChangeListener(RSyntaxTextArea.MARKED_OCCURRENCES_CHANGED_PROPERTY, listener);
+		textArea.removePropertyChangeListener(RSyntaxTextArea.MARK_ALL_OCCURRENCES_CHANGED_PROPERTY, listener);
 	}
-
-
+	
 	/**
 	 * Sets the color to use when painting the caret marker.
 	 *
-	 * @param color The new caret marker color.
+	 * @param color
+	 *            The new caret marker color.
 	 * @see #getCaretMarkerColor()
 	 */
 	public void setCaretMarkerColor(Color color) {
-		if (color!=null) {
+		if (color != null) {
 			caretMarkerColor = color;
 			listener.caretUpdate(null); // Force repaint
 		}
 	}
-
-
+	
 	/**
 	 * Toggles whether the caret's current location should be drawn.
 	 *
-	 * @param follow Whether the caret's current location should be followed.
+	 * @param follow
+	 *            Whether the caret's current location should be followed.
 	 * @see #getFollowCaret()
 	 */
 	public void setFollowCaret(boolean follow) {
-		if (followCaret!=follow) {
+		if (followCaret != follow) {
 			if (followCaret) {
-				repaint(0,caretLineY, getWidth(),2); // Erase
+				repaint(0, caretLineY, getWidth(), 2); // Erase
 			}
 			caretLineY = -1;
 			lastLineY = -1;
@@ -473,15 +434,15 @@ public class ErrorStrip extends JPanel {
 			listener.caretUpdate(null); // Possibly repaint
 		}
 	}
-
-
+	
 	/**
 	 * Sets the minimum severity a parser notice must be for it to be displayed
-	 * in this error strip.  This should be one of the constants defined in
-	 * the ParserNotice class.  The default value is
+	 * in this error strip. This should be one of the constants defined in
+	 * the ParserNotice class. The default value is
 	 * {@link org.fife.ui.rsyntaxtextarea.parser.ParserNotice.Level#WARNING}.
 	 *
-	 * @param level The new severity threshold.
+	 * @param level
+	 *            The new severity threshold.
 	 * @see #getLevelThreshold()
 	 * @see ParserNotice
 	 */
@@ -491,95 +452,89 @@ public class ErrorStrip extends JPanel {
 			refreshMarkers();
 		}
 	}
-
-
+	
 	/**
 	 * Sets the provider of tool tips for markers in this error strip.
 	 * Applications can use this method to control the content and format of
 	 * the tool tip descriptions of line markers.
 	 *
-	 * @param provider The provider.  If this is null, a default
-	 *        implementation will be used.
+	 * @param provider
+	 *            The provider. If this is null, a default
+	 *            implementation will be used.
 	 */
 	public void setMarkerToolTipProvider(ErrorStripMarkerToolTipProvider provider) {
-		markerToolTipProvider = provider != null ? provider :
-			new DefaultErrorStripMarkerToolTipProvider();
+		markerToolTipProvider = provider != null ? provider : new DefaultErrorStripMarkerToolTipProvider();
 	}
-
-
+	
 	/**
 	 * Sets whether "mark all" highlights are shown in this error strip.
 	 *
-	 * @param show Whether to show markers for "mark all" highlights.
+	 * @param show
+	 *            Whether to show markers for "mark all" highlights.
 	 * @see #getShowMarkAll()
 	 */
 	public void setShowMarkAll(boolean show) {
-		if (show!=showMarkAll) {
+		if (show != showMarkAll) {
 			showMarkAll = show;
 			if (isDisplayable()) { // Skip this when we're first created
 				refreshMarkers();
 			}
 		}
 	}
-
-
+	
 	/**
 	 * Sets whether marked occurrences are shown in this error strip.
 	 *
-	 * @param show Whether to show marked occurrences.
+	 * @param show
+	 *            Whether to show marked occurrences.
 	 * @see #getShowMarkedOccurrences()
 	 */
 	public void setShowMarkedOccurrences(boolean show) {
-		if (show!=showMarkedOccurrences) {
+		if (show != showMarkedOccurrences) {
 			showMarkedOccurrences = show;
 			if (isDisplayable()) { // Skip this when we're first created
 				refreshMarkers();
 			}
 		}
 	}
-
-
+	
 	/**
 	 * Returns the line in the text area corresponding to a y-offset in this
 	 * component.
 	 *
-	 * @param y The y-offset.
+	 * @param y
+	 *            The y-offset.
 	 * @return The line.
 	 * @see #lineToY(int)
 	 */
 	private int yToLine(int y) {
 		int line = -1;
 		int h = textArea.getVisibleRect().height;
-		if (y notices) {
-
 			String text = null;
-
-			if (notices.size()==1) {
+			if (notices.size() == 1) {
 				text = notices.get(0).getMessage();
-			}
-			else { // > 1
+			} else { // > 1
 				StringBuilder sb = new StringBuilder("");
 				sb.append(MSG.getString("MultipleMarkers"));
 				sb.append("
"); - for (int i=0; iErrorStrip * that denotes a given list of parser notices. * - * @param notices The list of parser notices. - * @return The tool tip text. This may be HTML. Returning + * @param notices + * The list of parser notices. + * @return The tool tip text. This may be HTML. Returning * null will result in no tool tip being displayed. */ String getToolTipText(List notices); - } - - + /** * Listens for events in the error strip and its markers. */ - private class Listener extends MouseAdapter - implements PropertyChangeListener, CaretListener { - + private class Listener extends MouseAdapter implements PropertyChangeListener, CaretListener { + private Rectangle visibleRect = new Rectangle(); - + @Override public void caretUpdate(CaretEvent e) { if (getFollowCaret()) { int line = textArea.getCaretLineNumber(); - float percent = line / (float)(textArea.getLineCount()-1); + float percent = line / (float) (textArea.getLineCount() - 1); textArea.computeVisibleRect(visibleRect); - caretLineY = (int)(visibleRect.height*percent); - if (caretLineY!=lastLineY) { - repaint(0,lastLineY, getWidth(), 2); // Erase old position - repaint(0,caretLineY, getWidth(), 2); + caretLineY = (int) (visibleRect.height * percent); + if (caretLineY != lastLineY) { + repaint(0, lastLineY, getWidth(), 2); // Erase old position + repaint(0, caretLineY, getWidth(), 2); lastLineY = caretLineY; } } } - + @Override public void mouseClicked(MouseEvent e) { - - Component source = (Component)e.getSource(); + Component source = (Component) e.getSource(); if (source instanceof Marker) { - ((Marker)source).mouseClicked(e); + ((Marker) source).mouseClicked(e); return; } - int line = yToLine(e.getY()); - if (line>-1) { + if (line > -1) { try { int offs = textArea.getLineStartOffset(line); textArea.setCaretPosition(offs); @@ -657,87 +604,76 @@ public class ErrorStrip extends JPanel { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } } - } - + @Override public void propertyChange(PropertyChangeEvent e) { - String propName = e.getPropertyName(); - // If they change whether marked occurrences are visible in editor if (RSyntaxTextArea.MARK_OCCURRENCES_PROPERTY.equals(propName)) { if (getShowMarkedOccurrences()) { refreshMarkers(); } } - // If parser notices changed. // TODO: Don't update "mark all/occurrences" markers. else if (RSyntaxTextArea.PARSER_NOTICES_PROPERTY.equals(propName)) { refreshMarkers(); } - // If marked occurrences changed. // TODO: Only update "mark occurrences" markers, not all of them. - else if (RSyntaxTextArea.MARKED_OCCURRENCES_CHANGED_PROPERTY. - equals(propName)) { + else if (RSyntaxTextArea.MARKED_OCCURRENCES_CHANGED_PROPERTY.equals(propName)) { if (getShowMarkedOccurrences()) { refreshMarkers(); } } - // If "mark all" occurrences changed. // TODO: Only update "mark all" markers, not all of them. - else if (RTextArea.MARK_ALL_OCCURRENCES_CHANGED_PROPERTY. - equals(propName)) { + else if (RTextArea.MARK_ALL_OCCURRENCES_CHANGED_PROPERTY.equals(propName)) { if (getShowMarkAll()) { refreshMarkers(); } } - } - } - - + /** * A notice that wraps a "marked occurrence" instance. */ private class MarkedOccurrenceNotice implements ParserNotice { - + private DocumentRange range; private Color color; - + MarkedOccurrenceNotice(DocumentRange range, Color color) { this.range = range; this.color = color; } - + @Override public int compareTo(ParserNotice other) { return 0; // Value doesn't matter } - + @Override public boolean containsPosition(int pos) { - return pos>=range.getStartOffset() && pos= range.getStartOffset() && pos < range.getEndOffset(); } - + @Override public boolean equals(Object o) { // FindBugs - Define equals() when defining compareTo() if (!(o instanceof ParserNotice)) { return false; } - return compareTo((ParserNotice)o)==0; + return compareTo((ParserNotice) o) == 0; } - + @Override public Color getColor() { return color; } - + /** * {@inheritDoc} */ @@ -745,32 +681,31 @@ public class ErrorStrip extends JPanel { public boolean getKnowsOffsetAndLength() { return true; } - + @Override public int getLength() { return range.getEndOffset() - range.getStartOffset(); } - + @Override public Level getLevel() { return Level.INFO; // Won't matter } - + @Override public int getLine() { try { - return textArea.getLineOfOffset(range.getStartOffset())+1; + return textArea.getLineOfOffset(range.getStartOffset()) + 1; } catch (BadLocationException ble) { return 0; } } - + @Override public String getMessage() { String text = null; try { - String word = textArea.getText(range.getStartOffset(), - getLength()); + String word = textArea.getText(range.getStartOffset(), getLength()); text = MSG.getString("OccurrenceOf"); text = MessageFormat.format(text, word); } catch (BadLocationException ble) { @@ -778,42 +713,40 @@ public class ErrorStrip extends JPanel { } return text; } - + @Override public int getOffset() { return range.getStartOffset(); } - + @Override public Parser getParser() { return null; } - + @Override public boolean getShowInEditor() { return false; // Value doesn't matter } - + @Override public String getToolTipText() { return null; } - + @Override public int hashCode() { // FindBugs, since we override equals() return 0; // Value doesn't matter for us. } - } - - + /** * A "marker" in this error strip, representing one or more notices. */ private class Marker extends JComponent { - + private List notices; - + Marker(ParserNotice notice) { notices = new ArrayList(1); // Usually just 1 addNotice(notice); @@ -821,14 +754,14 @@ public class ErrorStrip extends JPanel { setSize(getPreferredSize()); ToolTipManager.sharedInstance().registerComponent(this); } - + public void addNotice(ParserNotice notice) { notices.add(notice); } - + public boolean containsMarkedOccurence() { boolean result = false; - for (int i=0; i-1 && len>-1) { // These values are optional + if (offs > -1 && len > -1) { // These values are optional DocumentRange range = new DocumentRange(offs, offs + len); RSyntaxUtilities.selectAndPossiblyCenter(textArea, range, true); - } - else { + } else { int line = pn.getLine(); try { offs = textArea.getLineStartOffset(line); @@ -881,44 +812,35 @@ public class ErrorStrip extends JPanel { } } } - + @Override protected void paintComponent(Graphics g) { - // TODO: Give "priorities" and always pick color of a notice with // highest priority (e.g. parsing errors will usually be red). - Color borderColor = getColor(); - if (borderColor==null) { + if (borderColor == null) { borderColor = Color.DARK_GRAY; } Color fillColor = getBrighterColor(borderColor); - int w = getWidth(); int h = getHeight(); - g.setColor(fillColor); - g.fillRect(0,0, w,h); - + g.fillRect(0, 0, w, h); g.setColor(borderColor); - g.drawRect(0,0, w-1,h-1); - + g.drawRect(0, 0, w - 1, h - 1); } - + @Override public void removeNotify() { super.removeNotify(); ToolTipManager.sharedInstance().unregisterComponent(this); removeMouseListener(listener); } - + public void updateLocation() { int line = notices.get(0).getLine(); int y = lineToY(line); setLocation(2, y); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/FileFileLocation.java b/src/org/fife/ui/rsyntaxtextarea/FileFileLocation.java index b7e9fee..211eace 100644 --- a/src/org/fife/ui/rsyntaxtextarea/FileFileLocation.java +++ b/src/org/fife/ui/rsyntaxtextarea/FileFileLocation.java @@ -1,9 +1,7 @@ /* * 11/13/2008 - * * FileFileLocation.java - The location of a local file. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -15,7 +13,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; - /** * The location of a local file. * @@ -23,17 +20,17 @@ import java.io.OutputStream; * @version 1.0 */ class FileFileLocation extends FileLocation { - + /** - * The file. This may or may not actually exist. + * The file. This may or may not actually exist. */ private File file; - - + /** * Constructor. * - * @param file The local file. + * @param file + * The local file. */ FileFileLocation(File file) { try { @@ -43,8 +40,7 @@ class FileFileLocation extends FileLocation { this.file = file; } } - - + /** * {@inheritDoc} */ @@ -52,8 +48,7 @@ class FileFileLocation extends FileLocation { protected long getActualLastModified() { return file.lastModified(); } - - + /** * Returns the full path to the file. * @@ -64,8 +59,7 @@ class FileFileLocation extends FileLocation { public String getFileFullPath() { return file.getAbsolutePath(); } - - + /** * {@inheritDoc} */ @@ -73,8 +67,7 @@ class FileFileLocation extends FileLocation { public String getFileName() { return file.getName(); } - - + /** * {@inheritDoc} */ @@ -82,8 +75,7 @@ class FileFileLocation extends FileLocation { protected InputStream getInputStream() throws IOException { return new FileInputStream(file); } - - + /** * {@inheritDoc} */ @@ -91,8 +83,7 @@ class FileFileLocation extends FileLocation { protected OutputStream getOutputStream() throws IOException { return new FileOutputStream(file); } - - + /** * Always returns true. * @@ -103,8 +94,7 @@ class FileFileLocation extends FileLocation { public boolean isLocal() { return true; } - - + /** * Since file locations of this type are guaranteed to be local, this * method returns whether the file exists. @@ -116,6 +106,4 @@ class FileFileLocation extends FileLocation { public boolean isLocalAndExists() { return file.exists(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/FileLocation.java b/src/org/fife/ui/rsyntaxtextarea/FileLocation.java index 2b94d9c..8443a83 100644 --- a/src/org/fife/ui/rsyntaxtextarea/FileLocation.java +++ b/src/org/fife/ui/rsyntaxtextarea/FileLocation.java @@ -1,67 +1,61 @@ /* * 11/13/2008 - * * FileLocation.java - Holds the location of a local or remote file. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import java.io.File; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; - /** - * Holds the location of a local or remote file. This provides a common way + * Holds the location of a local or remote file. This provides a common way * to read, write, and check properties of both local and remote files. * * @author Robert Futrell * @version 1.0 */ public abstract class FileLocation { - - + /** * Creates a {@link FileLocation} instance for the specified local file. * - * @param fileFullPath The full path to a local file. + * @param fileFullPath + * The full path to a local file. * @return The file's location. */ public static FileLocation create(String fileFullPath) { - if (fileFullPath.startsWith("http://") || - fileFullPath.startsWith("https://") || - fileFullPath.startsWith("ftp://")) { + if (fileFullPath.startsWith("http://") || fileFullPath.startsWith("https://") || fileFullPath.startsWith("ftp://")) { try { return new URLFileLocation(new URL(fileFullPath)); } catch (MalformedURLException mue) { - throw new IllegalArgumentException( - "Not a valid URL: " + fileFullPath, mue); + throw new IllegalArgumentException("Not a valid URL: " + fileFullPath, mue); } } return new FileFileLocation(new File(fileFullPath)); } - - + /** * Creates a {@link FileLocation} instance for the specified local file. * - * @param file A local file. + * @param file + * A local file. * @return The file's location. */ public static FileLocation create(File file) { return new FileFileLocation(file); } - - + /** * Creates a {@link FileLocation} instance for the specified file. * - * @param url The URL of a file. + * @param url + * The URL of a file. * @return The file's location. */ public static FileLocation create(URL url) { @@ -70,8 +64,7 @@ public abstract class FileLocation { } return new URLFileLocation(url); } - - + /** * Returns the last time this file was modified, or * {@link TextEditorPane#LAST_MODIFIED_UNKNOWN} if this value cannot be @@ -80,18 +73,16 @@ public abstract class FileLocation { * @return The last time this file was modified. */ protected abstract long getActualLastModified(); - - + /** - * Returns the full path to the file. This will be stripped of + * Returns the full path to the file. This will be stripped of * sensitive information such as passwords for remote files. * * @return The full path to the file. * @see #getFileName() */ public abstract String getFileFullPath(); - - + /** * Returns the name of the file. * @@ -99,27 +90,26 @@ public abstract class FileLocation { * @see #getFileFullPath() */ public abstract String getFileName(); - - + /** * Opens an input stream for reading from this file. * * @return The input stream. - * @throws IOException If the file does not exist, or some other IO error - * occurs. + * @throws IOException + * If the file does not exist, or some other IO error + * occurs. */ protected abstract InputStream getInputStream() throws IOException; - - + /** * Opens an output stream for writing this file. * * @return An output stream. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ protected abstract OutputStream getOutputStream() throws IOException; - - + /** * Returns whether this file location is a local file. * @@ -127,8 +117,7 @@ public abstract class FileLocation { * @see #isLocalAndExists() */ public abstract boolean isLocal(); - - + /** * Returns whether this file location is a local file that already * exists. @@ -137,8 +126,7 @@ public abstract class FileLocation { * @see #isLocal() */ public abstract boolean isLocalAndExists(); - - + /** * Returns whether this file location is a remote location. * @@ -147,6 +135,4 @@ public abstract class FileLocation { public boolean isRemote() { return !isLocal(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/FoldingAwareIconRowHeader.java b/src/org/fife/ui/rsyntaxtextarea/FoldingAwareIconRowHeader.java index 10611c5..7594b3d 100644 --- a/src/org/fife/ui/rsyntaxtextarea/FoldingAwareIconRowHeader.java +++ b/src/org/fife/ui/rsyntaxtextarea/FoldingAwareIconRowHeader.java @@ -1,10 +1,8 @@ /* * 03/07/2012 - * * FoldingAwareIconRowHeader - Icon row header that paints itself correctly * even when code folding is enabled. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,6 +10,7 @@ package org.fife.ui.rsyntaxtextarea; import java.awt.Color; import java.awt.Graphics; import java.awt.Point; + import javax.swing.Icon; import javax.swing.text.BadLocationException; import javax.swing.text.Document; @@ -21,7 +20,6 @@ import org.fife.ui.rsyntaxtextarea.folding.FoldManager; import org.fife.ui.rtextarea.GutterIconInfo; import org.fife.ui.rtextarea.IconRowHeader; - /** * A row header component that takes code folding into account when painting * itself. @@ -30,222 +28,196 @@ import org.fife.ui.rtextarea.IconRowHeader; * @version 1.0 */ public class FoldingAwareIconRowHeader extends IconRowHeader { - - + /** * Constructor. * - * @param textArea The parent text area. + * @param textArea + * The parent text area. */ public FoldingAwareIconRowHeader(RSyntaxTextArea textArea) { super(textArea); } - - + /** * {@inheritDoc} */ @Override protected void paintComponent(Graphics g) { - // When line wrap is not enabled, take the faster code path. - if (textArea==null) { + if (textArea == null) { return; } - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; FoldManager fm = rsta.getFoldManager(); if (!fm.isCodeFoldingSupportedAndEnabled()) { super.paintComponent(g); return; } - visibleRect = g.getClipBounds(visibleRect); - if (visibleRect==null) { // ??? + if (visibleRect == null) { // ??? visibleRect = getVisibleRect(); } - //System.out.println("IconRowHeader repainting: " + visibleRect); - if (visibleRect==null) { + // System.out.println("IconRowHeader repainting: " + visibleRect); + if (visibleRect == null) { return; } paintBackgroundImpl(g, visibleRect); - if (textArea.getLineWrap()) { paintComponentWrapped(g); return; } - Document doc = textArea.getDocument(); Element root = doc.getDefaultRootElement(); textAreaInsets = textArea.getInsets(textAreaInsets); - if (visibleRect.y-1 && activeLineRangeEnd>-1) { + if (activeLineRangeStart > -1 && activeLineRangeEnd > -1) { Color activeLineRangeColor = getActiveLineRangeColor(); g.setColor(activeLineRangeColor); try { - int realY1 = rsta.yForLine(activeLineRangeStart); - if (realY1>-1) { // Not in a collapsed fold... - - int y1 = realY1;//Math.max(y, realY1); - + if (realY1 > -1) { // Not in a collapsed fold... + int y1 = realY1;// Math.max(y, realY1); int y2 = rsta.yForLine(activeLineRangeEnd); - if (y2==-1) { // In a collapsed fold + if (y2 == -1) { // In a collapsed fold y2 = y1; } y2 += cellHeight - 1; - - if (y2visibleRect.y+visibleRect.height) { - //System.out.println("... nothing to paint, bailing..."); + if (y2 < visibleRect.y || y1 > visibleRect.y + visibleRect.height) { + // System.out.println("... nothing to paint, + // bailing..."); return; } y1 = Math.max(y, realY1); - y2 = Math.min(y2, visibleRect.y+visibleRect.height); - //System.out.println(y1 + "... " + y2 + "; " + realY1 + ", " + visibleRect); - + y2 = Math.min(y2, visibleRect.y + visibleRect.height); + // System.out.println(y1 + "... " + y2 + "; " + realY1 + ", + // " + visibleRect); int j = y1; - while (j<=y2) { - int yEnd = Math.min(y2, j+getWidth()); - int xEnd = yEnd-j; - g.drawLine(0,j, xEnd,yEnd); + while (j <= y2) { + int yEnd = Math.min(y2, j + getWidth()); + int xEnd = yEnd - j; + g.drawLine(0, j, xEnd, yEnd); j += 2; } - int i = 2; - while (i=y && realY1= y && realY1 < visibleRect.y + visibleRect.height) { + g.drawLine(0, realY1, getWidth(), realY1); } - if (y2>=y && y2= y && y2 < visibleRect.y + visibleRect.height) { + g.drawLine(0, y2, getWidth(), y2); } - } - } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } } - // Paint icons - if (trackingIcons!=null) { + if (trackingIcons != null) { int lastLine = textArea.getLineCount() - 1; - for (int i=trackingIcons.size()-1; i>=0; i--) { // Last to first + for (int i = trackingIcons.size() - 1; i >= 0; i--) { // Last to + // first GutterIconInfo ti = getTrackingIcon(i); int offs = ti.getMarkedOffset(); - if (offs>=0 && offs<=doc.getLength()) { + if (offs >= 0 && offs <= doc.getLength()) { int line = root.getElementIndex(offs); - if (line<=lastLine && line>=topLine) { + if (line <= lastLine && line >= topLine) { try { Icon icon = ti.getIcon(); - if (icon!=null) { + if (icon != null) { int lineY = rsta.yForLine(line); - if (lineY>=y && lineY<=visibleRect.y+visibleRect.height) { - int y2 = lineY + (cellHeight-icon.getIconHeight())/2; + if (lineY >= y && lineY <= visibleRect.y + visibleRect.height) { + int y2 = lineY + (cellHeight - icon.getIconHeight()) / 2; icon.paintIcon(this, g, 0, y2); - lastLine = line-1; // Paint only 1 icon per line + lastLine = line - 1; // Paint only 1 icon + // per line } } } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - } - else if (line=0; i--) { // Last to first + for (int i = trackingIcons.size() - 1; i >= 0; i--) { // Last to + // first GutterIconInfo ti = getTrackingIcon(i); Icon icon = ti.getIcon(); - if (icon!=null) { + if (icon != null) { int iconH = icon.getIconHeight(); int offs = ti.getMarkedOffset(); - if (offs>=0 && offs<=doc.getLength()) { + if (offs >= 0 && offs <= doc.getLength()) { int line = root.getElementIndex(offs); - if (line<=lastLine && line>=topLine) { + if (line <= lastLine && line >= topLine) { try { int lineY = rsta.yForLine(line); - if (lineY<=bottomY && (lineY+iconH>=topY)) { - int y2 = lineY + (cellHeight-iconH)/2; + if (lineY <= bottomY && (lineY + iconH >= topY)) { + int y2 = lineY + (cellHeight - iconH) / 2; ti.getIcon().paintIcon(this, g, 0, y2); - lastLine = line-1; // Paint only 1 icon per line + lastLine = line - 1; // Paint only 1 icon + // per line } } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - } - else if (line' }; - - private static final Set TAGS_REQUIRING_CLOSING = - getRequiredClosingTags(); - + private static final Set TAGS_REQUIRING_CLOSING = getRequiredClosingTags(); + public static final Set getRequiredClosingTags() { - final String[] tags = { - "html", - "head", - "title", - "style", - "script", - "noscript", - "body", - "section", - "nav", - "article", - "aside", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "header", - "footer", - "address", - "pre", - "dialog", - "blockquote", - "ol", - "ul", - "dl", - "a", - "q", - "cite", - "em", - "strong", - "small", - "mark", - "dfn", - "abbr", - "time", - "progress", - "meter", - "code", - "var", - "samp", - "kbd", - "sub", - "sup", - "span", - "i", - "b", - "bdo", - "ruby", - "rt", - "rp", - "ins", - "del", - "figure", - "iframe", - "object", - "video", - "audio", - "canvas", - "map", - "table", - "caption", - "form", - "fieldset", - "label", - "button", - "select", - "datalist", - "textarea", - "output", - "details", - "bb", - "menu", - "legend", - "div", - // Obsolete elements - "acronym", - "applet", - "big", - "blink", - "center", - "dir", - "font", - "frame", - "frameset", - "isindex", - "listing", - "marquee", - "nobr", - "noembed", - "noframes", - "plaintext", - "s", - "spacer", - "strike", - "tt", - "u", - "xmp", - }; + final String[] tags = { "html", "head", "title", "style", "script", "noscript", "body", "section", "nav", "article", "aside", "h1", + "h2", "h3", "h4", "h5", "h6", "header", "footer", "address", "pre", "dialog", "blockquote", "ol", "ul", "dl", "a", "q", + "cite", "em", "strong", "small", "mark", "dfn", "abbr", "time", "progress", "meter", "code", "var", "samp", "kbd", "sub", + "sup", "span", "i", "b", "bdo", "ruby", "rt", "rp", "ins", "del", "figure", "iframe", "object", "video", "audio", "canvas", + "map", "table", "caption", "form", "fieldset", "label", "button", "select", "datalist", "textarea", "output", "details", + "bb", "menu", "legend", "div", + // Obsolete elements + "acronym", "applet", "big", "blink", "center", "dir", "font", "frame", "frameset", "isindex", "listing", "marquee", "nobr", + "noembed", "noframes", "plaintext", "s", "spacer", "strike", "tt", "u", "xmp", }; return new HashSet(Arrays.asList(tags)); } - - + /** * If the caret is inside of a tag, this method returns the token - * representing the tag name; otherwise, null is returned.

+ * representing the tag name; otherwise, null is returned. + *

* * Currently, this method only checks for tag names on the same line as - * the caret, for simplicity. In the future it could check prior lines + * the caret, for simplicity. In the future it could check prior lines * until the tag name is found. * - * @param textArea The text area. - * @param occurrenceMarker The occurrence marker. - * @return The token to mark occurrences of. Note that, if the + * @param textArea + * The text area. + * @param occurrenceMarker + * The occurrence marker. + * @return The token to mark occurrences of. Note that, if the * specified occurrence marker identifies tokens other than * tag names, these other element types may be returned. */ - public static final Token getTagNameTokenForCaretOffset( - RSyntaxTextArea textArea, OccurrenceMarker occurrenceMarker) { - + public static final Token getTagNameTokenForCaretOffset(RSyntaxTextArea textArea, OccurrenceMarker occurrenceMarker) { // Get the tag name token. // For now, we only check for tags on the current line, for simplicity. - int dot = textArea.getCaretPosition(); Token t = textArea.getTokenListForLine(textArea.getCaretLineNumber()); Token toMark = null; - - while (t!=null && t.isPaintable()) { - if (t.getType()==Token.MARKUP_TAG_NAME) { + while (t != null && t.isPaintable()) { + if (t.getType() == Token.MARKUP_TAG_NAME) { toMark = t; } // Check for the token containing the caret before checking // if it's the close token. - if (t.getEndOffset()==dot || t.containsPosition(dot)) { + if (t.getEndOffset() == dot || t.containsPosition(dot)) { // Some languages, like PHP, mark functions/variables (PHP, // JavaScirpt) as well as HTML tags. - if (occurrenceMarker.isValidType(textArea, t) && - t.getType()!=Token.MARKUP_TAG_NAME) { + if (occurrenceMarker.isValidType(textArea, t) && t.getType() != Token.MARKUP_TAG_NAME) { return t; } if (t.containsPosition(dot)) { break; } } - if (t.getType()==Token.MARKUP_TAG_DELIMITER) { + if (t.getType() == Token.MARKUP_TAG_DELIMITER) { if (t.isSingleChar('>') || t.is(TAG_SELF_CLOSE)) { toMark = null; } } t = t.getNextToken(); } - return toMark; - } - - + /** * {@inheritDoc} */ @@ -203,8 +101,7 @@ public class HtmlOccurrenceMarker implements OccurrenceMarker { public Token getTokenToMark(RSyntaxTextArea textArea) { return getTagNameTokenForCaretOffset(textArea, this); } - - + /** * {@inheritDoc} */ @@ -212,20 +109,16 @@ public class HtmlOccurrenceMarker implements OccurrenceMarker { public boolean isValidType(RSyntaxTextArea textArea, Token t) { return textArea.getMarkOccurrencesOfTokenType(t.getType()); } - - + /** * {@inheritDoc} */ @Override - public void markOccurrences(RSyntaxDocument doc, Token t, - RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { - - if (t.getType()!=Token.MARKUP_TAG_NAME) { + public void markOccurrences(RSyntaxDocument doc, Token t, RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { + if (t.getType() != Token.MARKUP_TAG_NAME) { DefaultOccurrenceMarker.markOccurrencesOfToken(doc, t, h, p); return; } - String lexemeStr = t.getLexeme(); char[] lexeme = lexemeStr.toCharArray(); lexemeStr = lexemeStr.toLowerCase(); @@ -234,25 +127,23 @@ public class HtmlOccurrenceMarker implements OccurrenceMarker { int lineCount = root.getElementCount(); int curLine = root.getElementIndex(t.getOffset()); int depth = 0; - // For now, we only check for tags on the current line, for - // simplicity. Tags spanning multiple lines aren't common anyway. + // simplicity. Tags spanning multiple lines aren't common anyway. boolean found = false; boolean forward = true; t = doc.getTokenListForLine(curLine); - while (t!=null && t.isPaintable()) { - if (t.getType()==Token.MARKUP_TAG_DELIMITER) { - if (t.isSingleChar('<') && t.getOffset()+1==tokenOffs) { + while (t != null && t.isPaintable()) { + if (t.getType() == Token.MARKUP_TAG_DELIMITER) { + if (t.isSingleChar('<') && t.getOffset() + 1 == tokenOffs) { // Don't try to match a tag that is optionally closed (or // closing is forbidden entirely). if (TAGS_REQUIRING_CLOSING.contains(lexemeStr)) { found = true; } break; - } - else if (t.is(CLOSE_TAG_START) && t.getOffset()+2==tokenOffs) { + } else if (t.is(CLOSE_TAG_START) && t.getOffset() + 2 == tokenOffs) { // Searching backward, we assume we can find the opening - // tag. Don't really care if it's valid or not. + // tag. Don't really care if it's valid or not. found = true; forward = false; break; @@ -260,26 +151,20 @@ public class HtmlOccurrenceMarker implements OccurrenceMarker { } t = t.getNextToken(); } - if (!found) { return; } - if (forward) { - t = t.getNextToken().getNextToken(); - do { - - while (t!=null && t.isPaintable()) { - if (t.getType()==Token.MARKUP_TAG_DELIMITER) { + while (t != null && t.isPaintable()) { + if (t.getType() == Token.MARKUP_TAG_DELIMITER) { if (t.is(CLOSE_TAG_START)) { Token match = t.getNextToken(); - if (match!=null && match.is(lexeme)) { - if (depth>0) { + if (match != null && match.is(lexeme)) { + if (depth > 0) { depth--; - } - else { + } else { try { int end = match.getOffset() + match.length(); h.addMarkedOccurrenceHighlight(match.getOffset(), end, p); @@ -291,65 +176,50 @@ public class HtmlOccurrenceMarker implements OccurrenceMarker { return; // We're done! } } - } - else if (t.isSingleChar('<')) { + } else if (t.isSingleChar('<')) { t = t.getNextToken(); - if (t!=null && t.is(lexeme)) { + if (t != null && t.is(lexeme)) { depth++; } } } - t = t==null ? null : t.getNextToken(); + t = t == null ? null : t.getNextToken(); } - - if (++curLine openCloses = new ArrayList(); boolean inPossibleMatch = false; t = doc.getTokenListForLine(curLine); final int endBefore = tokenOffs - 2; // Stop before "')) { + } else if (t.isSingleChar('>')) { inPossibleMatch = false; - } - else if (inPossibleMatch && t.is(TAG_SELF_CLOSE)) { - openCloses.remove(openCloses.size()-1); + } else if (inPossibleMatch && t.is(TAG_SELF_CLOSE)) { + openCloses.remove(openCloses.size() - 1); inPossibleMatch = false; - } - else if (t.is(CLOSE_TAG_START)) { + } else if (t.is(CLOSE_TAG_START)) { Token next = t.getNextToken(); - if (next!=null) { + if (next != null) { // Invalid XML might not have a match if (next.is(lexeme)) { openCloses.add(new Entry(false, next)); @@ -360,11 +230,10 @@ public class HtmlOccurrenceMarker implements OccurrenceMarker { } t = t.getNextToken(); } - - for (int i=openCloses.size()-1; i>=0; i--) { + for (int i = openCloses.size() - 1; i >= 0; i--) { Entry entry = openCloses.get(i); depth += entry.open ? -1 : 1; - if (depth==-1) { + if (depth == -1) { try { Token match = entry.t; int end = match.getOffset() + match.length(); @@ -378,34 +247,25 @@ public class HtmlOccurrenceMarker implements OccurrenceMarker { return; } } - openCloses.clear(); - if (--curLine>=0) { + if (--curLine >= 0) { t = doc.getTokenListForLine(curLine); } - - } while (curLine>=0); - - + } while (curLine >= 0); } - } - - + /** * Used internally when searching backward for a matching "open" tag. */ private static class Entry { - + private boolean open; private Token t; - + Entry(boolean open, Token t) { this.open = open; this.t = t; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/LinkGenerator.java b/src/org/fife/ui/rsyntaxtextarea/LinkGenerator.java index e77bd2d..b7b0762 100644 --- a/src/org/fife/ui/rsyntaxtextarea/LinkGenerator.java +++ b/src/org/fife/ui/rsyntaxtextarea/LinkGenerator.java @@ -1,27 +1,25 @@ /* * 02/16/2012 - * * Copyright (C) 2013 Robert Futrell * robert_futrell at users.sourceforge.net * http://fifesoft.com/rsyntaxtextarea - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; - /** - * Generates hyperlinks in a document. If one of these is installed on an + * Generates hyperlinks in a document. If one of these is installed on an * RSyntaxTextArea it is queried when the mouse is moved and - * hyperlinks are enabled. If the user is not hovering over a "real" hyperlink + * hyperlinks are enabled. If the user is not hovering over a "real" hyperlink * (e.g. "http://www.google.com"), the link generator is asked if a text region - * at the mouse position should be considered a hyperlink. If so, a result + * at the mouse position should be considered a hyperlink. If so, a result * object is returned, describing exactly what region of text is the link, and - * where it goes to.

+ * where it goes to. + *

* * This interface is typically used by applications providing advanced support - * for programming languages, such as IDEs. For example, an implementation of + * for programming languages, such as IDEs. For example, an implementation of * this class could identify the token under the mouse position as a "variable," * and the hyperlink returned would select the variable's declaration in the * document. @@ -30,20 +28,19 @@ package org.fife.ui.rsyntaxtextarea; * @version 1.0 */ public interface LinkGenerator { - - + /** * If a region of text under the mouse position should be considered a - * hyperlink, a result object is returned. This object describes what + * hyperlink, a result object is returned. This object describes what * region of text is the link, and what action to perform if the link is * clicked. * - * @param textArea The text component. - * @param offs The offset in the document under the mouse position. + * @param textArea + * The text component. + * @param offs + * The offset in the document under the mouse position. * @return The link information, or null if no link is at the * specified offset. */ LinkGeneratorResult isLinkAtOffset(RSyntaxTextArea textArea, int offs); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/LinkGeneratorResult.java b/src/org/fife/ui/rsyntaxtextarea/LinkGeneratorResult.java index 89fa78c..5ef97df 100644 --- a/src/org/fife/ui/rsyntaxtextarea/LinkGeneratorResult.java +++ b/src/org/fife/ui/rsyntaxtextarea/LinkGeneratorResult.java @@ -1,22 +1,19 @@ /* * 02/16/2012 - * * Copyright (C) 2013 Robert Futrell * robert_futrell at users.sourceforge.net * http://fifesoft.com/rsyntaxtextarea - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import javax.swing.event.HyperlinkEvent; - /** - * A result object from a {@link LinkGenerator}. Implementations of this class + * A result object from a {@link LinkGenerator}. Implementations of this class * specify what action to execute when the user clicks on the "link" specified - * by the LinkGenerator. Typically, this will do something like + * by the LinkGenerator. Typically, this will do something like * select another region of text in the document (the declaration of the * variable at the mouse position), or open another file in the parent * application, etc. @@ -26,11 +23,10 @@ import javax.swing.event.HyperlinkEvent; * @see SelectRegionLinkGeneratorResult */ public interface LinkGeneratorResult { - - + /** - * Executes the action associated with this object. If the result is a - * URL to open, a standard hyperlink event can be returned. Alternatively, + * Executes the action associated with this object. If the result is a + * URL to open, a standard hyperlink event can be returned. Alternatively, * null can be returned and the action performed in this * method itself. * @@ -39,8 +35,7 @@ public interface LinkGeneratorResult { * directly. */ HyperlinkEvent execute(); - - + /** * Returns the starting offset of the link specified by the parent * LinkGenerator. @@ -48,6 +43,4 @@ public interface LinkGeneratorResult { * @return The offset. */ int getSourceOffset(); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/MarkOccurrencesSupport.java b/src/org/fife/ui/rsyntaxtextarea/MarkOccurrencesSupport.java index 66d829e..9bfb1cc 100644 --- a/src/org/fife/ui/rsyntaxtextarea/MarkOccurrencesSupport.java +++ b/src/org/fife/ui/rsyntaxtextarea/MarkOccurrencesSupport.java @@ -1,10 +1,8 @@ /* * 01/06/2009 - * * MarkOccurrencesSupport.java - Handles marking all occurrences of the * currently selected identifier in a text area. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -20,7 +18,6 @@ import javax.swing.text.Caret; import org.fife.ui.rtextarea.SmartHighlightPainter; - /** * Marks all occurrences of the token at the current caret position, if it is * an identifier. @@ -30,50 +27,48 @@ import org.fife.ui.rtextarea.SmartHighlightPainter; * @see OccurrenceMarker */ class MarkOccurrencesSupport implements CaretListener, ActionListener { - + private RSyntaxTextArea textArea; private Timer timer; private SmartHighlightPainter p; - /** * The default color used to mark occurrences. */ static final Color DEFAULT_COLOR = new Color(224, 224, 224); - /** * The default delay. */ static final int DEFAULT_DELAY_MS = 1000; - - + /** - * Constructor. Creates a listener with a 1 second delay. + * Constructor. Creates a listener with a 1 second delay. */ MarkOccurrencesSupport() { this(DEFAULT_DELAY_MS); } - - + /** * Constructor. * - * @param delay The delay between when the caret last moves and when the - * text should be scanned for matching occurrences. This should - * be in milliseconds. + * @param delay + * The delay between when the caret last moves and when the + * text should be scanned for matching occurrences. This should + * be in milliseconds. */ MarkOccurrencesSupport(int delay) { this(delay, DEFAULT_COLOR); } - - + /** * Constructor. * - * @param delay The delay between when the caret last moves and when the - * text should be scanned for matching occurrences. This should - * be in milliseconds. - * @param color The color to use to mark the occurrences. This cannot be - * null. + * @param delay + * The delay between when the caret last moves and when the + * text should be scanned for matching occurrences. This should + * be in milliseconds. + * @param color + * The color to use to mark the occurrences. This cannot be + * null. */ MarkOccurrencesSupport(int delay, Color color) { timer = new Timer(delay, this); @@ -81,89 +76,76 @@ class MarkOccurrencesSupport implements CaretListener, ActionListener { p = new SmartHighlightPainter(); setColor(color); } - - + /** * Called after the caret has been moved and a fixed time delay has - * elapsed. This locates and highlights all occurrences of the identifier - * at the caret position, if any.

+ * elapsed. This locates and highlights all occurrences of the identifier + * at the caret position, if any. + *

* * Callers should not call this method directly, but should rather prefer * {@link #doMarkOccurrences()} to mark occurrences. * - * @param e The event. + * @param e + * The event. * @see #doMarkOccurrences() */ @Override public void actionPerformed(ActionEvent e) { - // Don't do anything if they are selecting text. Caret c = textArea.getCaret(); - if (c.getDot()!=c.getMark()) { + if (c.getDot() != c.getMark()) { return; } - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); OccurrenceMarker occurrenceMarker = doc.getOccurrenceMarker(); boolean occurrencesChanged = false; - - if (occurrenceMarker!=null) { - + if (occurrenceMarker != null) { doc.readLock(); try { - Token t = occurrenceMarker.getTokenToMark(textArea); - - if (t!=null && occurrenceMarker.isValidType(textArea, t) && - !RSyntaxUtilities.isNonWordChar(t)) { + if (t != null && occurrenceMarker.isValidType(textArea, t) && !RSyntaxUtilities.isNonWordChar(t)) { clear(); - RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) - textArea.getHighlighter(); + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) textArea.getHighlighter(); occurrenceMarker.markOccurrences(doc, t, h, p); - //textArea.repaint(); + // textArea.repaint(); // TODO: Do a textArea.repaint() instead of repainting each // marker as it's added if count is huge occurrencesChanged = true; } - } finally { doc.readUnlock(); - //time = System.currentTimeMillis() - time; - //System.out.println("MarkOccurrencesSupport took: " + time + " ms"); + // time = System.currentTimeMillis() - time; + // System.out.println("MarkOccurrencesSupport took: " + time + " + // ms"); } - } - if (occurrencesChanged) { textArea.fireMarkedOccurrencesChanged(); } - } - - + /** * Called when the caret moves in the text area. * - * @param e The event. + * @param e + * The event. */ @Override public void caretUpdate(CaretEvent e) { timer.restart(); } - - + /** * Removes all highlights added to the text area by this listener. */ void clear() { - if (textArea!=null) { - RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) - textArea.getHighlighter(); + if (textArea != null) { + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) textArea.getHighlighter(); h.clearMarkOccurrencesHighlights(); } } - - + /** * Immediately marks all occurrences of the token at the current caret * position. @@ -172,8 +154,7 @@ class MarkOccurrencesSupport implements CaretListener, ActionListener { timer.stop(); actionPerformed(null); } - - + /** * Returns the color being used to mark occurrences. * @@ -181,10 +162,9 @@ class MarkOccurrencesSupport implements CaretListener, ActionListener { * @see #setColor(Color) */ public Color getColor() { - return (Color)p.getPaint(); + return (Color) p.getPaint(); } - - + /** * Returns the delay, in milliseconds. * @@ -194,8 +174,7 @@ class MarkOccurrencesSupport implements CaretListener, ActionListener { public int getDelay() { return timer.getDelay(); } - - + /** * Returns whether a border is painted around marked occurrences. * @@ -206,84 +185,81 @@ class MarkOccurrencesSupport implements CaretListener, ActionListener { public boolean getPaintBorder() { return p.getPaintBorder(); } - - + /** - * Installs this listener on a text area. If it is already installed on + * Installs this listener on a text area. If it is already installed on * another text area, it is uninstalled first. * - * @param textArea The text area to install on. + * @param textArea + * The text area to install on. */ public void install(RSyntaxTextArea textArea) { - if (this.textArea!=null) { + if (this.textArea != null) { uninstall(); } this.textArea = textArea; textArea.addCaretListener(this); - if (textArea.getMarkOccurrencesColor()!=null) { + if (textArea.getMarkOccurrencesColor() != null) { setColor(textArea.getMarkOccurrencesColor()); } } - - + /** * Sets the color to use when marking occurrences. * - * @param color The color to use. + * @param color + * The color to use. * @see #getColor() * @see #setPaintBorder(boolean) */ public void setColor(Color color) { p.setPaint(color); - if (textArea!=null) { + if (textArea != null) { clear(); caretUpdate(null); // Force a highlight repaint. } } - - + /** * Sets the delay between the last caret position change and when the - * text is scanned for matching identifiers. A delay is needed to prevent + * text is scanned for matching identifiers. A delay is needed to prevent * repeated scanning while the user is typing. * - * @param delay The new delay. + * @param delay + * The new delay. * @see #getDelay() */ public void setDelay(int delay) { timer.setInitialDelay(delay); } - - + /** * Toggles whether a border is painted around marked highlights. * - * @param paint Whether to paint a border. + * @param paint + * Whether to paint a border. * @see #getPaintBorder() * @see #setColor(Color) */ public void setPaintBorder(boolean paint) { - if (paint!=p.getPaintBorder()) { + if (paint != p.getPaintBorder()) { p.setPaintBorder(paint); - if (textArea!=null) { + if (textArea != null) { textArea.repaint(); } } } - - + /** - * Uninstalls this listener from the current text area. Does nothing if + * Uninstalls this listener from the current text area. Does nothing if * it not currently installed on any text area. * * @see #install(RSyntaxTextArea) */ public void uninstall() { - if (textArea!=null) { + if (textArea != null) { clear(); textArea.removeCaretListener(this); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/MatchedBracketPopup.java b/src/org/fife/ui/rsyntaxtextarea/MatchedBracketPopup.java index 3b8c4e5..921246f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/MatchedBracketPopup.java +++ b/src/org/fife/ui/rsyntaxtextarea/MatchedBracketPopup.java @@ -1,7 +1,6 @@ /* * 07/03/2016 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -33,7 +32,6 @@ import javax.swing.text.BadLocationException; import org.fife.ui.rsyntaxtextarea.focusabletip.TipUtil; - /** * A tool tip-like popup that shows the line of code containing the bracket * matched to that at the caret position, if it is scrolled out of the user's @@ -43,50 +41,38 @@ import org.fife.ui.rsyntaxtextarea.focusabletip.TipUtil; * @version 1.0 */ class MatchedBracketPopup extends JWindow { - + private RSyntaxTextArea textArea; - private transient Listener listener; - private static final int LEFT_EMPTY_BORDER = 5; - - - MatchedBracketPopup(Window parent, RSyntaxTextArea textArea, int - offsToRender) { - + + MatchedBracketPopup(Window parent, RSyntaxTextArea textArea, int offsToRender) { super(parent); this.textArea = textArea; JPanel cp = new JPanel(new BorderLayout()); - cp.setBorder(BorderFactory.createCompoundBorder( - TipUtil.getToolTipBorder(), + cp.setBorder(BorderFactory.createCompoundBorder(TipUtil.getToolTipBorder(), BorderFactory.createEmptyBorder(2, LEFT_EMPTY_BORDER, 5, 5))); cp.setBackground(TipUtil.getToolTipBackground()); setContentPane(cp); - cp.add(new JLabel(getText(offsToRender))); - installKeyBindings(); listener = new Listener(); setLocation(); - } - - + /** * Overridden to ensure this popup stays in a specific size range. */ @Override public Dimension getPreferredSize() { Dimension size = super.getPreferredSize(); - if (size!=null) { + if (size != null) { size.width = Math.min(size.width, 800); } return size; } - - + private String getText(int offsToRender) { - int line = 0; try { line = textArea.getLineOfOffset(offsToRender); @@ -94,9 +80,7 @@ class MatchedBracketPopup extends JWindow { ble.printStackTrace(); // Never happens return null; } - int lastLine = line + 1; - // Render prior line if the open brace line has no other text on it if (line > 0) { try { @@ -111,41 +95,33 @@ class MatchedBracketPopup extends JWindow { ble.printStackTrace(); } } - Font font = textArea.getFontForTokenType(TokenTypes.IDENTIFIER); StringBuilder sb = new StringBuilder(""); sb.append(""); while (line < lastLine) { Token t = textArea.getTokenListForLine(line); - while (t!=null && t.isPaintable()) { + while (t != null && t.isPaintable()) { t.appendHTMLRepresentation(sb, textArea, true, true); t = t.getNextToken(); } sb.append("
"); line++; } - return sb.toString(); - } - - + /** * Adds key bindings to this popup. */ private void installKeyBindings() { - - InputMap im = getRootPane().getInputMap( - JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + InputMap im = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ActionMap am = getRootPane().getActionMap(); - KeyStroke escapeKS = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); im.put(escapeKS, "onEscape"); am.put("onEscape", new EscapeAction()); } - - + /** * Positions this popup to be in the top right-hand corner of the parent * editor. @@ -156,83 +132,77 @@ class MatchedBracketPopup extends JWindow { topLeft.y = Math.max(topLeft.y - 24, 0); setLocation(topLeft.x - LEFT_EMPTY_BORDER, topLeft.y); } - - + /** * Action performed when Escape is pressed in this popup. */ private class EscapeAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { listener.uninstallAndHide(); } - } - - + /** * Listens for events in this popup. */ private class Listener extends WindowAdapter implements ComponentListener { - + Listener() { - addWindowFocusListener(this); - // If anything happens to the "parent" window, hide this popup - Window parent = (Window)getParent(); + Window parent = (Window) getParent(); parent.addWindowFocusListener(this); parent.addWindowListener(this); parent.addComponentListener(this); - } - + @Override public void componentResized(ComponentEvent e) { uninstallAndHide(); } - + @Override public void componentMoved(ComponentEvent e) { uninstallAndHide(); } - + @Override public void componentShown(ComponentEvent e) { uninstallAndHide(); } - + @Override public void componentHidden(ComponentEvent e) { uninstallAndHide(); } - + @Override public void windowActivated(WindowEvent e) { checkForParentWindowEvent(e); } - + @Override public void windowLostFocus(WindowEvent e) { uninstallAndHide(); } - + @Override public void windowIconified(WindowEvent e) { checkForParentWindowEvent(e); } - + private boolean checkForParentWindowEvent(WindowEvent e) { - if (e.getSource()==getParent()) { + if (e.getSource() == getParent()) { uninstallAndHide(); return true; } return false; } - + private void uninstallAndHide() { - Window parent = (Window)getParent(); + Window parent = (Window) getParent(); parent.removeWindowFocusListener(this); parent.removeWindowListener(this); parent.removeComponentListener(this); @@ -240,6 +210,5 @@ class MatchedBracketPopup extends JWindow { setVisible(false); dispose(); } - } -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/OccurrenceMarker.java b/src/org/fife/ui/rsyntaxtextarea/OccurrenceMarker.java index b37fe32..c292ce2 100644 --- a/src/org/fife/ui/rsyntaxtextarea/OccurrenceMarker.java +++ b/src/org/fife/ui/rsyntaxtextarea/OccurrenceMarker.java @@ -1,19 +1,16 @@ /* * 03/09/2013 - * * OccurrenceMarker - Marks occurrences of the current token. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import org.fife.ui.rtextarea.SmartHighlightPainter; - /** * An OccurrenceMarker is called when the caret stops moving after - * a short period. If the current {@link TokenMaker} returns an instance of + * a short period. If the current {@link TokenMaker} returns an instance of * this class, it is told to mark all occurrences of the identifier at the * caret position. * @@ -21,43 +18,44 @@ import org.fife.ui.rtextarea.SmartHighlightPainter; * @version 1.0 */ public interface OccurrenceMarker { - - + /** * Returns the token to mark occurrences, of, provided it matches the * criteria put forth by {@link #isValidType(RSyntaxTextArea, Token)}. * For most languages, this method should return the token at the caret * position. * - * @param textArea The text area. + * @param textArea + * The text area. * @return The token to (possibly) mark occurrences of, or * null if none. */ Token getTokenToMark(RSyntaxTextArea textArea); - - + /** * Returns whether the specified token is a type that we can do a - * "mark occurrences" of. Typically, this will delegate to + * "mark occurrences" of. Typically, this will delegate to * {@link RSyntaxTextArea#getMarkOccurrencesOfTokenType(int)}. * - * @param textArea The text area. - * @param t The token. + * @param textArea + * The text area. + * @param t + * The token. * @return Whether we should mark all occurrences of this token. */ boolean isValidType(RSyntaxTextArea textArea, Token t); - - + /** * Called when occurrences of a token should be marked. * - * @param doc The document. - * @param t The document whose relevant occurrences should be marked. - * @param h The highlighter to add the highlights to. - * @param p The painter for the highlights. + * @param doc + * The document. + * @param t + * The document whose relevant occurrences should be marked. + * @param h + * The highlighter to add the highlights to. + * @param p + * The painter for the highlights. */ - void markOccurrences(RSyntaxDocument doc, Token t, - RSyntaxTextAreaHighlighter h, SmartHighlightPainter p); - - -} \ No newline at end of file + void markOccurrences(RSyntaxDocument doc, Token t, RSyntaxTextAreaHighlighter h, SmartHighlightPainter p); +} diff --git a/src/org/fife/ui/rsyntaxtextarea/ParserManager.java b/src/org/fife/ui/rsyntaxtextarea/ParserManager.java index f9277d1..d447d54 100644 --- a/src/org/fife/ui/rsyntaxtextarea/ParserManager.java +++ b/src/org/fife/ui/rsyntaxtextarea/ParserManager.java @@ -1,10 +1,8 @@ /* * 09/26/2005 - * * ParserManager.java - Manages the parsing of an RSyntaxTextArea's document, * if necessary. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -41,17 +39,14 @@ import org.fife.ui.rsyntaxtextarea.parser.ToolTipInfo; import org.fife.ui.rtextarea.RDocument; import org.fife.ui.rtextarea.RTextAreaHighlighter.HighlightInfo; - - /** * Manages running a parser object for an RSyntaxTextArea. * * @author Robert Futrell * @version 0.9 */ -class ParserManager implements DocumentListener, ActionListener, - HyperlinkListener, PropertyChangeListener { - +class ParserManager implements DocumentListener, ActionListener, HyperlinkListener, PropertyChangeListener { + private RSyntaxTextArea textArea; private List parsers; private Timer timer; @@ -59,58 +54,53 @@ class ParserManager implements DocumentListener, ActionListener, private Parser parserForTip; private Position firstOffsetModded; private Position lastOffsetModded; - /** - * Mapping of notices to their highlights in the editor. Can't use a Map + * Mapping of notices to their highlights in the editor. Can't use a Map * since parsers could return two ParserNotices that compare - * equally via equals(). Real-world example: The Perl + * equally via equals(). Real-world example: The Perl * compiler will return 2+ identical error messages if the same error is * committed in a single line more than once. */ private List noticeHighlightPairs; - /** * Painter used to underline errors. */ - private SquiggleUnderlineHighlightPainter parserErrorHighlightPainter = - new SquiggleUnderlineHighlightPainter(Color.RED); - + private SquiggleUnderlineHighlightPainter parserErrorHighlightPainter = new SquiggleUnderlineHighlightPainter(Color.RED); /** * If this system property is set to true, debug messages * will be printed to stdout to help diagnose parsing issues. */ private static final String PROPERTY_DEBUG_PARSING = "rsta.debugParsing"; - /** * Whether to print debug messages while running parsers. */ private static final boolean DEBUG_PARSING; - /** * The default delay between the last key press and when the document * is parsed, in milliseconds. */ - private static final int DEFAULT_DELAY_MS = 1250; - - + private static final int DEFAULT_DELAY_MS = 1250; + /** * Constructor. * - * @param textArea The text area whose document the parser will be - * parsing. + * @param textArea + * The text area whose document the parser will be + * parsing. */ ParserManager(RSyntaxTextArea textArea) { this(DEFAULT_DELAY_MS, textArea); } - - + /** * Constructor. * - * @param delay The delay between the last key press and when the document - * is parsed. - * @param textArea The text area whose document the parser will be - * parsing. + * @param delay + * The delay between the last key press and when the document + * is parsed. + * @param textArea + * The text area whose document the parser will be + * parsing. */ ParserManager(int delay, RSyntaxTextArea textArea) { this.textArea = textArea; @@ -121,49 +111,41 @@ class ParserManager implements DocumentListener, ActionListener, timer.setRepeats(false); running = true; } - - + /** * Called when the timer fires (e.g. it's time to parse the document). * - * @param e The event. + * @param e + * The event. */ @Override public void actionPerformed(ActionEvent e) { - // Sanity check - should have >1 parser if event is fired. int parserCount = getParserCount(); - if (parserCount==0) { + if (parserCount == 0) { return; } - long begin = 0; if (DEBUG_PARSING) { begin = System.currentTimeMillis(); } - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); - + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); Element root = doc.getDefaultRootElement(); - int firstLine = firstOffsetModded==null ? 0 : - root.getElementIndex(firstOffsetModded.getOffset()); - int lastLine = lastOffsetModded==null ? root.getElementCount()-1 : - root.getElementIndex(lastOffsetModded.getOffset()); + int firstLine = firstOffsetModded == null ? 0 : root.getElementIndex(firstOffsetModded.getOffset()); + int lastLine = lastOffsetModded == null ? root.getElementCount() - 1 : root.getElementIndex(lastOffsetModded.getOffset()); firstOffsetModded = lastOffsetModded = null; if (DEBUG_PARSING) { System.out.println("[DEBUG]: Minimum lines to parse: " + firstLine + "-" + lastLine); } - String style = textArea.getSyntaxEditingStyle(); doc.readLock(); try { - for (int i=0; inull, nothing - * happens. + * @param parser + * The new parser. If this is null, nothing + * happens. * @see #getParser(int) * @see #removeParser(Parser) */ public void addParser(Parser parser) { - if (parser!=null && !parsers.contains(parser)) { + if (parser != null && !parsers.contains(parser)) { if (running) { timer.stop(); } parsers.add(parser); - if (parsers.size()==1) { + if (parsers.size() == 1) { // Okay to call more than once. ToolTipManager.sharedInstance().registerComponent(textArea); } @@ -203,40 +183,31 @@ class ParserManager implements DocumentListener, ActionListener, } } } - - + /** - * Adds highlights for a list of parser notices. Any current notices + * Adds highlights for a list of parser notices. Any current notices * from the same Parser, in the same parsed range, are removed. * - * @param res The result of a parsing. + * @param res + * The result of a parsing. * @see #clearParserNoticeHighlights() */ private void addParserNoticeHighlights(ParseResult res) { - // Parsers are supposed to return at least empty ParseResults, but // we'll be defensive here. - if (res==null) { + if (res == null) { return; } - if (DEBUG_PARSING) { - System.out.println("[DEBUG]: Adding parser notices from " + - res.getParser()); + System.out.println("[DEBUG]: Adding parser notices from " + res.getParser()); } - - if (noticeHighlightPairs==null) { + if (noticeHighlightPairs == null) { noticeHighlightPairs = new ArrayList(); } - removeParserNotices(res); - List notices = res.getNotices(); - if (notices.size()>0) { // Guaranteed non-null - - RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) - textArea.getHighlighter(); - + if (notices.size() > 0) { // Guaranteed non-null + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) textArea.getHighlighter(); for (ParserNotice notice : notices) { if (DEBUG_PARSING) { System.out.println("[DEBUG]: ... adding: " + notice); @@ -244,70 +215,60 @@ class ParserManager implements DocumentListener, ActionListener, try { HighlightInfo highlight = null; if (notice.getShowInEditor()) { - highlight = h.addParserHighlight(notice, - parserErrorHighlightPainter); + highlight = h.addParserHighlight(notice, parserErrorHighlightPainter); } noticeHighlightPairs.add(new NoticeHighlightPair(notice, highlight)); } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); } } - } - if (DEBUG_PARSING) { - System.out.println("[DEBUG]: Done adding parser notices from " + - res.getParser()); + System.out.println("[DEBUG]: Done adding parser notices from " + res.getParser()); } - } - - + /** * Called when the document is modified. * - * @param e The document event. + * @param e + * The document event. */ @Override - public void changedUpdate(DocumentEvent e) { - } - - + public void changedUpdate(DocumentEvent e) {} + private void clearParserNoticeHighlights() { - RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) - textArea.getHighlighter(); - if (h!=null) { + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) textArea.getHighlighter(); + if (h != null) { h.clearParserHighlights(); } - if (noticeHighlightPairs!=null) { + if (noticeHighlightPairs != null) { noticeHighlightPairs.clear(); } } - - + /** * Removes all parser notice highlights for a specific parser. * - * @param parser The parser whose highlights to remove. + * @param parser + * The parser whose highlights to remove. */ private void clearParserNoticeHighlights(Parser parser) { - RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) - textArea.getHighlighter(); - if (h!=null) { + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) textArea.getHighlighter(); + if (h != null) { h.clearParserHighlights(parser); } - if (noticeHighlightPairs!=null) { - Iterator i=noticeHighlightPairs.iterator(); + if (noticeHighlightPairs != null) { + Iterator i = noticeHighlightPairs.iterator(); while (i.hasNext()) { NoticeHighlightPair pair = i.next(); - if (pair.notice.getParser()==parser) { + if (pair.notice.getParser() == parser) { i.remove(); } } } } - - + /** * Removes all parsers and any highlights they have created. * @@ -319,32 +280,32 @@ class ParserManager implements DocumentListener, ActionListener, parsers.clear(); textArea.fireParserNoticesChange(); } - - + /** * Forces the given {@link Parser} to re-parse the content of this text - * area.

+ * area. + *

* * This method can be useful when a Parser can be configured - * as to what notices it returns. For example, if a Java language parser + * as to what notices it returns. For example, if a Java language parser * can be configured to set whether no serialVersionUID is a warning, * error, or ignored, this method can be called after changing the expected * notice type to have the document re-parsed. * - * @param parser The index of the Parser to re-run. + * @param parser + * The index of the Parser to re-run. * @see #getParser(int) */ public void forceReparsing(int parser) { Parser p = getParser(parser); - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); String style = textArea.getSyntaxEditingStyle(); doc.readLock(); try { if (p.isEnabled()) { ParseResult res = p.parse(doc, style); addParserNoticeHighlights(res); - } - else { + } else { clearParserNoticeHighlights(p); } textArea.fireParserNoticesChange(); @@ -352,8 +313,7 @@ class ParserManager implements DocumentListener, ActionListener, doc.readUnlock(); } } - - + /** * Returns the delay between the last "concurrent" edit and when the * document is re-parsed. @@ -364,12 +324,12 @@ class ParserManager implements DocumentListener, ActionListener, public int getDelay() { return timer.getDelay(); } - - + /** * Returns the specified parser. * - * @param index The index of the parser. + * @param index + * The index of the parser. * @return The parser. * @see #getParserCount() * @see #addParser(Parser) @@ -378,8 +338,7 @@ class ParserManager implements DocumentListener, ActionListener, public Parser getParser(int index) { return parsers.get(index); } - - + /** * Returns the number of registered parsers. * @@ -388,249 +347,230 @@ class ParserManager implements DocumentListener, ActionListener, public int getParserCount() { return parsers.size(); } - - + /** * Returns a list of the current parser notices for this text area. * This method (like most Swing methods) should only be called on the * EDT. * - * @return The list of notices. This will be an empty list if there are + * @return The list of notices. This will be an empty list if there are * none. */ public List getParserNotices() { List notices = new ArrayList(); - if (noticeHighlightPairs!=null) { + if (noticeHighlightPairs != null) { for (NoticeHighlightPair pair : noticeHighlightPairs) { notices.add(pair.notice); } } return notices; } - - + /** * Returns the tool tip to display for a mouse event at the given - * location. This method is overridden to give a registered parser a + * location. This method is overridden to give a registered parser a * chance to display a tool tip (such as an error description when the * mouse is over an error highlight). * - * @param e The mouse event. + * @param e + * The mouse event. * @return The tool tip to display, and possibly a hyperlink event handler. */ public ToolTipInfo getToolTipText(MouseEvent e) { - String tip = null; HyperlinkListener listener = null; parserForTip = null; Point p = e.getPoint(); - -// try { - int pos = textArea.viewToModel(p); - /* - Highlighter.Highlight[] highlights = textArea.getHighlighter(). - getHighlights(); - for (int i=0; i=pos) { - //return pnh.getMessage(); - return textArea.getText(start, end-start); - } - //} - } - */ - if (noticeHighlightPairs!=null) { - for (NoticeHighlightPair pair : noticeHighlightPairs) { - ParserNotice notice = pair.notice; - if (noticeContainsPosition(notice, pos) && - noticeContainsPointInView(notice, p)) { - tip = notice.getToolTipText(); - parserForTip = notice.getParser(); - if (parserForTip instanceof HyperlinkListener) { - listener = (HyperlinkListener)parserForTip; - } - break; + // try { + int pos = textArea.viewToModel(p); + /* + * Highlighter.Highlight[] highlights = textArea.getHighlighter(). + * getHighlights(); + * for (int i=0; i=pos) { + * //return pnh.getMessage(); + * return textArea.getText(start, end-start); + * } + * //} + * } + */ + if (noticeHighlightPairs != null) { + for (NoticeHighlightPair pair : noticeHighlightPairs) { + ParserNotice notice = pair.notice; + if (noticeContainsPosition(notice, pos) && noticeContainsPointInView(notice, p)) { + tip = notice.getToolTipText(); + parserForTip = notice.getParser(); + if (parserForTip instanceof HyperlinkListener) { + listener = (HyperlinkListener) parserForTip; } + break; } } -// } catch (BadLocationException ble) { -// ble.printStackTrace(); // Should never happen. -// } - - URL imageBase = parserForTip==null ? null : parserForTip.getImageBase(); + } + // } catch (BadLocationException ble) { + // ble.printStackTrace(); // Should never happen. + // } + URL imageBase = parserForTip == null ? null : parserForTip.getImageBase(); return new ToolTipInfo(tip, listener, imageBase); - } - - + /** * Called when the document is modified. * - * @param e The document event. + * @param e + * The document event. */ public void handleDocumentEvent(DocumentEvent e) { - if (running && parsers.size()>0) { + if (running && parsers.size() > 0) { timer.restart(); } } - - + /** * Called when the user clicks a hyperlink in a * {@link org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip}. * - * @param e The event. + * @param e + * The event. */ @Override public void hyperlinkUpdate(HyperlinkEvent e) { - if (parserForTip!=null && parserForTip.getHyperlinkListener()!=null) { + if (parserForTip != null && parserForTip.getHyperlinkListener() != null) { parserForTip.getHyperlinkListener().linkClicked(textArea, e); } } - - + /** * Called when the document is modified. * - * @param e The document event. + * @param e + * The document event. */ @Override public void insertUpdate(DocumentEvent e) { - - // Keep track of the first and last offset modified. Some parsers are + // Keep track of the first and last offset modified. Some parsers are // smart and will only re-parse this section of the file. try { int offs = e.getOffset(); - if (firstOffsetModded==null || offslastOffsetModded.getOffset()) { + if (lastOffsetModded == null || offs > lastOffsetModded.getOffset()) { lastOffsetModded = e.getDocument().createPosition(offs); } } catch (BadLocationException ble) { ble.printStackTrace(); // Shouldn't happen } - handleDocumentEvent(e); - } - - + /** * Returns whether a parser notice contains the specified offset. * - * @param notice The notice. - * @param offs The offset. + * @param notice + * The notice. + * @param offs + * The offset. * @return Whether the notice contains the offset. */ - private boolean noticeContainsPosition(ParserNotice notice, int offs){ + private boolean noticeContainsPosition(ParserNotice notice, int offs) { if (notice.getKnowsOffsetAndLength()) { return notice.containsPosition(offs); } Document doc = textArea.getDocument(); Element root = doc.getDefaultRootElement(); int line = notice.getLine(); - if (line<0) { // Defensive against possible bad user-defined notices. + if (line < 0) { // Defensive against possible bad user-defined notices. return false; } Element elem = root.getElement(line); - return elem != null && offs>=elem.getStartOffset() && offs= elem.getStartOffset() && offs < elem.getEndOffset(); } - - + /** * Since viewToModel() returns the closest model * position, and the position doesn't necessarily contain the * point passed in as an argument, this method checks whether the point is * indeed contained in the view rectangle for the specified offset. * - * @param notice The parser notice. - * @param p The point possibly contained in the view range of the - * parser notice. + * @param notice + * The parser notice. + * @param p + * The point possibly contained in the view range of the + * parser notice. * @return Whether the parser notice actually contains the specified point * in the view. */ - private boolean noticeContainsPointInView(ParserNotice notice, - Point p) { - + private boolean noticeContainsPointInView(ParserNotice notice, Point p) { try { - int start, end; if (notice.getKnowsOffsetAndLength()) { start = notice.getOffset(); end = start + notice.getLength() - 1; - } - else { + } else { Document doc = textArea.getDocument(); Element root = doc.getDefaultRootElement(); int line = notice.getLine(); // Defend against possible bad user-defined notices. - if (line<0) { + if (line < 0) { return false; } Element elem = root.getElement(line); start = elem.getStartOffset(); end = elem.getEndOffset() - 1; } - Rectangle r1 = textArea.modelToView(start); Rectangle r2 = textArea.modelToView(end); - if (r1.y!=r2.y) { + if (r1.y != r2.y) { // If the notice spans multiple lines, give them the benefit - // of the doubt. This is only "wrong" if the user is in empty + // of the doubt. This is only "wrong" if the user is in empty // space "to the right" of the error marker when it ends at the // end of a line anyway. return true; } - r1.y--; // Be a tiny bit lenient. r1.height += 2; // Ditto - return p.x>=r1.x && p.x<(r2.x+r2.width) && - p.y>=r1.y && p.y<(r1.y+r1.height); - + return p.x >= r1.x && p.x < (r2.x + r2.width) && p.y >= r1.y && p.y < (r1.y + r1.height); } catch (BadLocationException ble) { // Never occurs // Give them the benefit of the doubt, should 99% of the time be // true anyway return true; } - } - - + /** * Called when a property we're interested in changes. * - * @param e The property change event. + * @param e + * The property change event. */ @Override public void propertyChange(PropertyChangeEvent e) { - String name = e.getPropertyName(); - if ("document".equals(name)) { // The document switched out from under us - RDocument old = (RDocument)e.getOldValue(); + RDocument old = (RDocument) e.getOldValue(); if (old != null) { old.removeDocumentListener(this); } - RDocument newDoc = (RDocument)e.getNewValue(); + RDocument newDoc = (RDocument) e.getNewValue(); if (newDoc != null) { newDoc.addDocumentListener(this); } } - } - - + /** * Removes a parser. * - * @param parser The parser to remove. + * @param parser + * The parser to remove. * @return Whether the parser was found. * @see #addParser(Parser) * @see #getParser(int) @@ -643,91 +583,82 @@ class ParserManager implements DocumentListener, ActionListener, } return removed; } - - + /** * Removes all parser notices (and clears highlights in the editor) from * a particular parser. * - * @param parser The parser. + * @param parser + * The parser. */ private void removeParserNotices(Parser parser) { - if (noticeHighlightPairs!=null) { - RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) - textArea.getHighlighter(); - for (Iterator i=noticeHighlightPairs.iterator(); i.hasNext();) { + if (noticeHighlightPairs != null) { + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) textArea.getHighlighter(); + for (Iterator i = noticeHighlightPairs.iterator(); i.hasNext();) { NoticeHighlightPair pair = i.next(); - if (pair.notice.getParser()==parser && pair.highlight!=null) { + if (pair.notice.getParser() == parser && pair.highlight != null) { h.removeParserHighlight(pair.highlight); i.remove(); } } } } - - + /** * Removes any currently stored notices (and the corresponding highlights * from the editor) from the same Parser, and in the given line range, * as in the results. * - * @param res The results. + * @param res + * The results. */ private void removeParserNotices(ParseResult res) { - if (noticeHighlightPairs!=null) { - RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) - textArea.getHighlighter(); - for (Iterator i=noticeHighlightPairs.iterator(); i.hasNext();) { + if (noticeHighlightPairs != null) { + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) textArea.getHighlighter(); + for (Iterator i = noticeHighlightPairs.iterator(); i.hasNext();) { NoticeHighlightPair pair = i.next(); boolean removed = false; if (shouldRemoveNotice(pair.notice, res)) { - if (pair.highlight!=null) { + if (pair.highlight != null) { h.removeParserHighlight(pair.highlight); } i.remove(); removed = true; } if (DEBUG_PARSING) { - String text = removed ? "[DEBUG]: ... notice removed: " : - "[DEBUG]: ... notice not removed: "; + String text = removed ? "[DEBUG]: ... notice removed: " : "[DEBUG]: ... notice not removed: "; System.out.println(text + pair.notice); } } - } - } - - + /** * Called when the document is modified. * - * @param e The document event. + * @param e + * The document event. */ @Override public void removeUpdate(DocumentEvent e) { - - // Keep track of the first and last offset modified. Some parsers are - // smart and will only re-parse this section of the file. Note that + // Keep track of the first and last offset modified. Some parsers are + // smart and will only re-parse this section of the file. Note that // for removals, only the line at the removal start needs to be // re-parsed. try { int offs = e.getOffset(); - if (firstOffsetModded==null || offslastOffsetModded.getOffset()) { + if (lastOffsetModded == null || offs > lastOffsetModded.getOffset()) { lastOffsetModded = e.getDocument().createPosition(offs); } } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); } - handleDocumentEvent(e); - } - - + /** * Restarts parsing the document. * @@ -737,14 +668,14 @@ class ParserManager implements DocumentListener, ActionListener, timer.restart(); running = true; } - - + /** * Sets the delay between the last "concurrent" edit and when the document * is re-parsed. * - * @param millis The new delay, in milliseconds. This must be greater - * than 0. + * @param millis + * The new delay, in milliseconds. This must be greater + * than 0. * @see #getDelay() */ public void setDelay(int millis) { @@ -757,36 +688,31 @@ class ParserManager implements DocumentListener, ActionListener, timer.start(); } } - - + /** * Returns whether a parser notice should be removed, based on a parse * result. * - * @param notice The notice in question. - * @param res The result. + * @param notice + * The notice in question. + * @param res + * The result. * @return Whether the notice should be removed. */ - private boolean shouldRemoveNotice(ParserNotice notice, - ParseResult res) { - + private boolean shouldRemoveNotice(ParserNotice notice, ParseResult res) { if (DEBUG_PARSING) { - System.out.println("[DEBUG]: ... ... shouldRemoveNotice " + - notice + ": " + (notice.getParser()==res.getParser())); + System.out.println("[DEBUG]: ... ... shouldRemoveNotice " + notice + ": " + (notice.getParser() == res.getParser())); } - - // NOTE: We must currently remove all notices for the parser. Parser + // NOTE: We must currently remove all notices for the parser. Parser // implementors are required to parse the entire document each parsing // request, as RSTA is not yet sophisticated enough to determine the // minimum range of text to parse (and ParserNotices' locations aren't // updated when the Document is mutated, which would be a requirement // for this as well). // return same_parser && (in_reparsed_range || in_deleted_end_of_doc) - return notice.getParser()==res.getParser(); - + return notice.getParser() == res.getParser(); } - - + /** * Stops parsing the document. * @@ -796,24 +722,21 @@ class ParserManager implements DocumentListener, ActionListener, timer.stop(); running = false; } - - + /** * Mapping of a parser notice to its highlight in the editor. */ private static class NoticeHighlightPair { - + private ParserNotice notice; private HighlightInfo highlight; - + NoticeHighlightPair(ParserNotice notice, HighlightInfo highlight) { this.notice = notice; this.highlight = highlight; } - } - - + static { boolean debugParsing = false; try { @@ -824,6 +747,4 @@ class ParserManager implements DocumentListener, ActionListener, } DEBUG_PARSING = debugParsing; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/PopupWindowDecorator.java b/src/org/fife/ui/rsyntaxtextarea/PopupWindowDecorator.java index c1fe24f..1b647cb 100644 --- a/src/org/fife/ui/rsyntaxtextarea/PopupWindowDecorator.java +++ b/src/org/fife/ui/rsyntaxtextarea/PopupWindowDecorator.java @@ -1,20 +1,17 @@ /* * 01/11/2011 - * * PopupWindowDecorator.java - Hook allowing hosting applications to decorate * JWindows created by the AutoComplete library. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import javax.swing.JWindow; - /** * A hook allowing hosting applications to decorate JWindows created by the - * AutoComplete library. For example, you could use the + * AutoComplete library. For example, you could use the * JGoodies library to add drop shadows * to the windows. * @@ -22,25 +19,24 @@ import javax.swing.JWindow; * @version 1.0 */ public abstract class PopupWindowDecorator { - + /** * The singleton instance of this class. */ private static PopupWindowDecorator decorator; - - + /** * Callback called whenever an appropriate JWindow is created by the - * AutoComplete library. Implementations can decorate the window however + * AutoComplete library. Implementations can decorate the window however * they see fit. * - * @param window The newly-created window. + * @param window + * The newly-created window. */ public abstract void decorate(JWindow window); - - + /** - * Returns the singleton instance of this class. This should only be + * Returns the singleton instance of this class. This should only be * called on the EDT. * * @return The singleton instance of this class, or null @@ -50,19 +46,17 @@ public abstract class PopupWindowDecorator { public static PopupWindowDecorator get() { return decorator; } - - + /** - * Sets the singleton instance of this class. This should only be called + * Sets the singleton instance of this class. This should only be called * on the EDT. * - * @param decorator The new instance of this class. This may be - * null. + * @param decorator + * The new instance of this class. This may be + * null. * @see #get() */ public static void set(PopupWindowDecorator decorator) { PopupWindowDecorator.decorator = decorator; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSTAView.java b/src/org/fife/ui/rsyntaxtextarea/RSTAView.java index 9e81e85..f7b1055 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSTAView.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSTAView.java @@ -1,9 +1,7 @@ /* * 02/10/2009 - * * RSTAView.java - An RSyntaxTextArea view. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,7 +10,6 @@ import java.awt.Rectangle; import javax.swing.text.BadLocationException; - /** * Utility methods for RSyntaxTextArea's views. * @@ -20,43 +17,46 @@ import javax.swing.text.BadLocationException; * @version 1.0 */ interface RSTAView { - - + /** - * Returns the y-coordinate of the specified line.

+ * Returns the y-coordinate of the specified line. + *

* * This method is quicker than using traditional * modelToView(int) calls, as the entire bounding box isn't * computed. * - * @param alloc The area the text area can render into. - * @param line The line number. + * @param alloc + * The area the text area can render into. + * @param line + * The line number. * @return The y-coordinate of the top of the line, or -1 if * this text area doesn't yet have a positive size or the line is * hidden (i.e. from folding). - * @throws BadLocationException If line isn't a valid line - * number for this document. + * @throws BadLocationException + * If line isn't a valid line + * number for this document. */ int yForLine(Rectangle alloc, int line) throws BadLocationException; - - + /** - * Returns the y-coordinate of the line containing a specified offset.

+ * Returns the y-coordinate of the line containing a specified offset. + *

* * This method is quicker than using traditional * modelToView(int) calls, as the entire bounding box isn't * computed. * - * @param alloc The area the text area can render into. - * @param offs The offset info the document. + * @param alloc + * The area the text area can render into. + * @param offs + * The offset info the document. * @return The y-coordinate of the top of the offset, or -1 if * this text area doesn't yet have a positive size or the line is * hidden (i.e. from folding). - * @throws BadLocationException If offs isn't a valid offset - * into the document. + * @throws BadLocationException + * If offs isn't a valid offset + * into the document. */ - int yForLineContaining(Rectangle alloc, int offs) - throws BadLocationException; - - -} \ No newline at end of file + int yForLineContaining(Rectangle alloc, int offs) throws BadLocationException; +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxDocument.java b/src/org/fife/ui/rsyntaxtextarea/RSyntaxDocument.java index c318bf8..1025e35 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxDocument.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxDocument.java @@ -1,10 +1,8 @@ /* * 10/16/2004 - * * RSyntaxDocument.java - A document capable of syntax highlighting, used by * RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -51,45 +49,43 @@ import me.ByteEdit.main.JavaAssemblyTokenMaker; * @version 1.0 */ public class RSyntaxDocument extends RDocument implements Iterable, SyntaxConstants { - + /** - * Creates a {@link TokenMaker} appropriate for a given programming language. + * Creates a {@link TokenMaker} appropriate for a given programming + * language. */ private transient TokenMakerFactory tokenMakerFactory; - /** * Splits text into tokens for the current programming language. */ private transient TokenMaker tokenMaker; - /** * The current syntax style. Only cached to keep this class serializable. */ private String syntaxStyle; - /** - * Array of values representing the "last token type" on each line. This is used + * Array of values representing the "last token type" on each line. This is + * used * in cases such as multi-line comments: if the previous line ended with an * (unclosed) multi-line comment, we can use this knowledge and start the * current line's syntax highlighting in multi-line comment state. */ protected transient DynamicIntArray lastTokensOnLines; - private transient int lastLine = -1; private transient Token cachedTokenList; private transient int useCacheCount = 0; private transient int tokenRetrievalCount = 0; - private transient Segment s; - /** - * If this is set to true, debug information about how much token + * If this is set to true, debug information about how much + * token * caching is helping is printed to stdout. */ private static final boolean DEBUG_TOKEN_CACHING = false; - + /** - * Constructs a plain text document. A default root element is created, and the + * Constructs a plain text document. A default root element is created, and + * the * tab size set to 5. * * @param syntaxStyle @@ -98,13 +94,15 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta public RSyntaxDocument(String syntaxStyle) { this(null, syntaxStyle); } - + /** - * Constructs a plain text document. A default root element is created, and the + * Constructs a plain text document. A default root element is created, and + * the * tab size set to 5. * * @param tmf - * The TokenMakerFactory for this document. If this is + * The TokenMakerFactory for this document. If this + * is * null, a default factory is used. * @param syntaxStyle * The syntax highlighting scheme to use. @@ -117,13 +115,15 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta setTokenMakerFactory(tmf); setSyntaxStyle(syntaxStyle); } - + /** - * Alerts all listeners to this document of an insertion. This is overridden so + * Alerts all listeners to this document of an insertion. This is overridden + * so * we can update our syntax highlighting stuff. *

* The syntax highlighting stuff has to be here instead of in - * insertUpdate because insertUpdate is not called by + * insertUpdate because insertUpdate is not called + * by * the undo/redo actions, but this method is. * * @param e @@ -131,72 +131,59 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta */ @Override protected void fireInsertUpdate(DocumentEvent e) { - cachedTokenList = null; - /* * Now that the text is actually inserted into the content and element - * structure, we can update our token elements and "last tokens on lines" + * structure, we can update our token elements and + * "last tokens on lines" * structure. */ - Element lineMap = getDefaultRootElement(); DocumentEvent.ElementChange change = e.getChange(lineMap); Element[] added = change == null ? null : change.getChildrenAdded(); - int numLines = lineMap.getElementCount(); int line = lineMap.getElementIndex(e.getOffset()); int previousLine = line - 1; int previousTokenType = (previousLine > -1 ? lastTokensOnLines.get(previousLine) : Token.NULL); - // If entire lines were added... if (added != null && added.length > 0) { - Element[] removed = change.getChildrenRemoved(); int numRemoved = removed != null ? removed.length : 0; - int endBefore = line + added.length - numRemoved; - // System.err.println("... adding lines: " + line + " - " + (endBefore-1)); - // System.err.println("... ... added: " + added.length + ", removed:" + + // System.err.println("... adding lines: " + line + " - " + + // (endBefore-1)); + // System.err.println("... ... added: " + added.length + ", + // removed:" + // numRemoved); for (int i = line; i < endBefore; i++) { - setSharedSegment(i); // Loads line i's text into s. - int tokenType = tokenMaker.getLastTokenTypeOnLine(s, previousTokenType); lastTokensOnLines.add(i, tokenType); // System.err.println("--------- lastTokensOnLines.size() == " + // lastTokensOnLines.getSize()); - previousTokenType = tokenType; - } // End of for (int i=line; i0). - - // Otherwise, text was inserted on a single line... + // Otherwise, text was inserted on a single line... else { - // Update last tokens for lines below until they stop changing. updateLastTokensBelow(line, numLines, previousTokenType); - } // End of else. - - // Let all listeners know about the insertion. + // Let all listeners know about the insertion. super.fireInsertUpdate(e); - } - + /** - * This method is called AFTER the content has been inserted into the document + * This method is called AFTER the content has been inserted into the + * document * and the element structure has been updated. *

* The syntax-highlighting updates need to be done here (as opposed to an * override of postRemoveUpdate) as this method is called in - * response to undo/redo events, whereas postRemoveUpdate is not. + * response to undo/redo events, whereas postRemoveUpdate is + * not. *

* Now that the text is actually inserted into the content and element * structure, we can update our token elements and "last tokens on lines" @@ -208,77 +195,71 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta */ @Override protected void fireRemoveUpdate(DocumentEvent chng) { - cachedTokenList = null; Element lineMap = getDefaultRootElement(); int numLines = lineMap.getElementCount(); - DocumentEvent.ElementChange change = chng.getChange(lineMap); Element[] removed = change == null ? null : change.getChildrenRemoved(); - // If entire lines were removed... if (removed != null && removed.length > 0) { - int line = change.getIndex(); // First line entirely removed. int previousLine = line - 1; // Line before that. int previousTokenType = (previousLine > -1 ? lastTokensOnLines.get(previousLine) : Token.NULL); - Element[] added = change.getChildrenAdded(); int numAdded = added == null ? 0 : added.length; - // Remove the cached last-token values for the removed lines. int endBefore = line + removed.length - numAdded; - // System.err.println("... removing lines: " + line + " - " + (endBefore-1)); + // System.err.println("... removing lines: " + line + " - " + + // (endBefore-1)); // System.err.println("... added: " + numAdded + ", removed: " + // removed.length); - - lastTokensOnLines.removeRange(line, endBefore); // Removing values for lines [line-(endBefore-1)]. + lastTokensOnLines.removeRange(line, endBefore); // Removing values + // for lines + // [line-(endBefore-1)]. // System.err.println("--------- lastTokensOnLines.size() == " + // lastTokensOnLines.getSize()); - - // Update last tokens for lines below until they've stopped changing. + // Update last tokens for lines below until they've stopped + // changing. updateLastTokensBelow(line, numLines, previousTokenType); - } // End of if (removed!=null && removed.size()>0). - - // Otherwise, text was removed from just one line... + // Otherwise, text was removed from just one line... else { - int line = lineMap.getElementIndex(chng.getOffset()); if (line >= lastTokensOnLines.getSize()) { return; // If we're editing the last line in a document... } - int previousLine = line - 1; int previousTokenType = (previousLine > -1 ? lastTokensOnLines.get(previousLine) : Token.NULL); - // System.err.println("previousTokenType for line : " + previousLine + " is " + + // System.err.println("previousTokenType for line : " + previousLine + // + " is " + // previousTokenType); - // Update last tokens for lines below until they've stopped changing. + // Update last tokens for lines below until they've stopped + // changing. updateLastTokensBelow(line, numLines, previousTokenType); - } - // Let all of our listeners know about the removal. super.fireRemoveUpdate(chng); - } - + /** * Returns the closest {@link TokenTypes "standard" token type} for a given * "internal" token type (e.g. one whose value is < 0). * * @param type * The token type. - * @return The closest "standard" token type. If a mapping is not defined for + * @return The closest "standard" token type. If a mapping is not defined + * for * this language, then type is returned. */ public int getClosestStandardTokenTypeForInternalType(int type) { return tokenMaker.getClosestStandardTokenTypeForInternalType(type); } - + /** - * Returns whether closing markup tags should be automatically completed. This - * method only returns true if {@link #getLanguageIsMarkup()} also + * Returns whether closing markup tags should be automatically completed. + * This + * method only returns true if {@link #getLanguageIsMarkup()} + * also * returns true. * * @return Whether markup closing tags should be automatically completed. @@ -288,14 +269,15 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta // TODO: Remove terrible dependency on AbstractMarkupTokenMaker return getLanguageIsMarkup() && ((AbstractMarkupTokenMaker) tokenMaker).getCompleteCloseTags(); } - + /** * Returns whether the current programming language uses curly braces * ('{' and '}') to denote code blocks. * * @param languageIndex * The language index at the offset in question. Since some - * TokenMakers effectively have nested languages (such + * TokenMakers effectively have nested languages + * (such * as JavaScript in HTML), this parameter tells the * TokenMaker what sub-language to look at. * @return Whether curly braces denote code blocks. @@ -303,9 +285,10 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex) { return tokenMaker.getCurlyBracesDenoteCodeBlocks(languageIndex); } - + /** - * Returns whether the current language is a markup language, such as HTML, XML + * Returns whether the current language is a markup language, such as HTML, + * XML * or PHP. * * @return Whether the current language is a markup language. @@ -313,44 +296,50 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta public boolean getLanguageIsMarkup() { return tokenMaker.isMarkupLanguage(); } - + /** * Returns the token type of the last token on the given line. * * @param line * The line to inspect. - * @return The token type of the last token on the specified line. If the line + * @return The token type of the last token on the specified line. If the + * line * is invalid, an exception is thrown. */ public int getLastTokenTypeOnLine(int line) { return lastTokensOnLines.get(line); } - + /** - * Returns the text to place at the beginning and end of a line to "comment" it + * Returns the text to place at the beginning and end of a line to "comment" + * it * in this programming language. * * @return The start and end strings to add to a line to "comment" it out. A - * null value for either means there is no string to add - * for that part. A value of null for the array means this + * null value for either means there is no string to + * add + * for that part. A value of null for the array means + * this * language does not support commenting/uncommenting lines. */ public String[] getLineCommentStartAndEnd(int languageIndex) { return tokenMaker.getLineCommentStartAndEnd(languageIndex); } - + /** - * Returns whether tokens of the specified type should have "mark occurrences" + * Returns whether tokens of the specified type should have "mark + * occurrences" * enabled for the current programming language. * * @param type * The token type. - * @return Whether tokens of this type should have "mark occurrences" enabled. + * @return Whether tokens of this type should have "mark occurrences" + * enabled. */ boolean getMarkOccurrencesOfTokenType(int type) { return tokenMaker.getMarkOccurrencesOfTokenType(type); } - + /** * Returns the occurrence marker for the current language. * @@ -359,7 +348,7 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta OccurrenceMarker getOccurrenceMarker() { return tokenMaker.getOccurrenceMarker(); } - + /** * This method returns whether auto indentation should be done if Enter is * pressed at the end of the specified line. @@ -373,7 +362,7 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta t = t.getLastNonCommentNonWhitespaceToken(); return tokenMaker.getShouldIndentNextLineAfter(t); } - + /** * Returns the syntax style being used. * @@ -383,11 +372,12 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta public String getSyntaxStyle() { return syntaxStyle; } - + /** * Returns a token list for the specified segment of text representing the * specified line number. This method is basically a wrapper for - * tokenMaker.getTokenList that takes into account the last token + * tokenMaker.getTokenList that takes into account the last + * token * on the previous line to assure token accuracy. * * @param line @@ -395,7 +385,6 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta * @return A token list representing the specified line. */ public final Token getTokenListForLine(int line) { - tokenRetrievalCount++; if (line == lastLine && cachedTokenList != null) { if (DEBUG_TOKEN_CACHING) { @@ -405,11 +394,11 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta return cachedTokenList; } lastLine = line; - Element map = getDefaultRootElement(); Element elem = map.getElement(line); int startOffset = elem.getStartOffset(); - // int endOffset = (line==map.getElementCount()-1 ? elem.getEndOffset() - 1: + // int endOffset = (line==map.getElementCount()-1 ? elem.getEndOffset() + // - 1: // elem.getEndOffset() - 1); int endOffset = elem.getEndOffset() - 1; // Why always "-1"? try { @@ -419,13 +408,11 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta return null; } int initialTokenType = line == 0 ? Token.NULL : getLastTokenTypeOnLine(line - 1); - // return tokenMaker.getTokenList(s, initialTokenType, startOffset); cachedTokenList = tokenMaker.getTokenList(s, initialTokenType, startOffset); return cachedTokenList; - } - + boolean insertBreakSpecialHandling(ActionEvent e) { Action a = tokenMaker.getInsertBreakAction(); if (a != null) { @@ -434,10 +421,11 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta } return false; } - + /** * Returns whether a character could be part of an "identifier" token in a - * specific language. This is used to identify such things as the bounds of the + * specific language. This is used to identify such things as the bounds of + * the * "word" to select on double-clicking. * * @param languageIndex @@ -449,10 +437,12 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta public boolean isIdentifierChar(int languageIndex, char ch) { return tokenMaker.isIdentifierChar(languageIndex, ch); } - + /** - * Returns an iterator over the paintable tokens in this document. Results are - * undefined if this document is modified while the iterator is being iterated + * Returns an iterator over the paintable tokens in this document. Results + * are + * undefined if this document is modified while the iterator is being + * iterated * through, so this should only be used on the EDT. *

* @@ -465,7 +455,7 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta public Iterator iterator() { return new TokenIterator(this); } - + /** * Deserializes a document. * @@ -475,35 +465,31 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta * @throws IOException */ private void readObject(ObjectInputStream in) throws ClassNotFoundException, IOException { - in.defaultReadObject(); - // Install default TokenMakerFactory. To support custom TokenMakers, // both JVM's should install default TokenMakerFactories that support // the language they want to use beforehand. setTokenMakerFactory(null); - // Handle other transient stuff this.s = new Segment(); int lineCount = getDefaultRootElement().getElementCount(); lastTokensOnLines = new DynamicIntArray(lineCount); setSyntaxStyle(syntaxStyle); // Actually install (transient) TokenMaker - } - + /** - * Makes our private Segment s point to the text in our document - * referenced by the specified element. Note that line MUST be a + * Makes our private Segment s point to the text in our + * document + * referenced by the specified element. Note that line MUST be + * a * valid line number in the document. * * @param line * The line number you want to get. */ private void setSharedSegment(int line) { - Element map = getDefaultRootElement(); // int numLines = map.getElementCount(); - Element element = map.getElement(line); if (element == null) { throw new InternalError("Invalid line number: " + line); @@ -517,18 +503,19 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta } catch (BadLocationException ble) { throw new InternalError("Text range not in document: " + startOffset + "-" + endOffset); } - } - + /** - * Sets the syntax style being used for syntax highlighting in this document. + * Sets the syntax style being used for syntax highlighting in this + * document. * What styles are supported by a document is determined by its * {@link TokenMakerFactory}. By default, all RSyntaxDocuments * support all languages built into RSyntaxTextArea. * * @param styleKey * The new style to use, such as - * {@link SyntaxConstants#SYNTAX_STYLE_JAVA}. If this style is not + * {@link SyntaxConstants#SYNTAX_STYLE_JAVA}. If this style is + * not * known or supported by this document, then * {@link SyntaxConstants#SYNTAX_STYLE_NONE} is used. * @see #setSyntaxStyle(TokenMaker) @@ -543,9 +530,10 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta updateSyntaxHighlightingInformation(); this.syntaxStyle = styleKey; } - + /** - * Sets the syntax style being used for syntax highlighting in this document. + * Sets the syntax style being used for syntax highlighting in this + * document. * You should call this method if you've created a custom token maker for a * language not normally supported by RSyntaxTextArea. * @@ -558,22 +546,26 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta updateSyntaxHighlightingInformation(); this.syntaxStyle = "text/unknown"; // TODO: Make me public? } - + /** * Sets the token maker factory used by this document. * * @param tmf - * The TokenMakerFactory for this document. If this is + * The TokenMakerFactory for this document. If this + * is * null, a default factory is used. */ public void setTokenMakerFactory(TokenMakerFactory tmf) { tokenMakerFactory = tmf != null ? tmf : TokenMakerFactory.getDefaultInstance(); } - + /** - * Loops through the last-tokens-on-lines array from a specified point onward, - * updating last-token values until they stop changing. This should be called - * when lines are updated/inserted/removed, as doing so may cause lines below to + * Loops through the last-tokens-on-lines array from a specified point + * onward, + * updating last-token values until they stop changing. This should be + * called + * when lines are updated/inserted/removed, as doing so may cause lines + * below to * change color. * * @param line @@ -581,38 +573,38 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta * @param numLines * The number of lines in the document. * @param previousTokenType - * The last-token value of the line just before line. + * The last-token value of the line just before + * line. * @return The last line that needs repainting. */ private int updateLastTokensBelow(int line, int numLines, int previousTokenType) { - int firstLine = line; - // Loop through all lines past our starting point. Update even the last // line's info, even though there aren't any lines after it that depend // on it changing for them to be changed, as its state may be used // elsewhere in the library. int end = numLines; - // System.err.println("--- end==" + end + " (numLines==" + numLines + ")"); + // System.err.println("--- end==" + end + " (numLines==" + numLines + + // ")"); while (line < end) { - - setSharedSegment(line); // Sets s's text to that of line 'line' in the document. - + setSharedSegment(line); // Sets s's text to that of line 'line' in + // the document. int oldTokenType = lastTokensOnLines.get(line); int newTokenType = tokenMaker.getLastTokenTypeOnLine(s, previousTokenType); - // System.err.println("---------------- line " + line + "; oldTokenType==" + - // oldTokenType + ", newTokenType==" + newTokenType + ", s=='" + s + "'"); - + // System.err.println("---------------- line " + line + "; + // oldTokenType==" + + // oldTokenType + ", newTokenType==" + newTokenType + ", s=='" + s + + // "'"); // If this line's end-token value didn't change, stop here. Note // that we're saying this line needs repainting; this is because // the beginning of this line did indeed change color, but the // end didn't. if (oldTokenType == newTokenType) { - // System.err.println("... ... ... repainting lines " + firstLine + "-" + line); + // System.err.println("... ... ... repainting lines " + + // firstLine + "-" + line); fireChangedUpdate(new DefaultDocumentEvent(firstLine, line, DocumentEvent.EventType.CHANGE)); return line; } - // If the line's end-token value did change, update it and // keep going. // NOTE: "setUnsafe" is okay here as the bounds checking was @@ -620,24 +612,22 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta lastTokensOnLines.setUnsafe(line, newTokenType); previousTokenType = newTokenType; line++; - } // End of while (line firstLine) { - // System.err.println("... ... ... repainting lines " + firstLine + "-" + line); + // System.err.println("... ... ... repainting lines " + firstLine + + // "-" + line); fireChangedUpdate(new DefaultDocumentEvent(firstLine, line, DocumentEvent.EventType.CHANGE)); } - return line; - } - + /** * Updates internal state information; e.g. the "last tokens on lines" data. * After this, a changed update is fired to let listeners know that the @@ -647,7 +637,6 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta * This is called internally whenever the syntax style changes. */ private void updateSyntaxHighlightingInformation() { - // Reinitialize the "last token on each line" array. Note that since // the actual text in the document isn't changing, the number of lines // is the same. @@ -659,14 +648,10 @@ public class RSyntaxDocument extends RDocument implements Iterable, Synta lastTokenType = tokenMaker.getLastTokenTypeOnLine(s, lastTokenType); lastTokensOnLines.set(i, lastTokenType); } - // Clear our token cache to force re-painting lastLine = -1; cachedTokenList = null; - // Let everybody know that syntax styles have (probably) changed. fireChangedUpdate(new DefaultDocumentEvent(0, numLines - 1, DocumentEvent.EventType.CHANGE)); - } - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea.java b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea.java index 9495859..95847d9 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea.java @@ -1,10 +1,8 @@ /* * 01/27/2004 - * * RSyntaxTextArea.java - An extension of RTextArea that adds * the ability to syntax highlight certain programming languages. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -141,7 +139,7 @@ import org.fife.ui.rtextarea.RecordableTextAction; * @see TextEditorPane */ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { - + public static final String ANIMATE_BRACKET_MATCHING_PROPERTY = "RSTA.animateBracketMatching"; public static final String ANTIALIAS_PROPERTY = "RSTA.antiAlias"; public static final String AUTO_INDENT_PROPERTY = "RSTA.autoIndent"; @@ -165,191 +163,148 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public static final String TAB_LINES_PROPERTY = "RSTA.tabLines"; public static final String USE_SELECTED_TEXT_COLOR_PROPERTY = "RSTA.useSelectedTextColor"; public static final String VISIBLE_WHITESPACE_PROPERTY = "RSTA.visibleWhitespace"; - private static final Color DEFAULT_BRACKET_MATCH_BG_COLOR = new Color(234, 234, 255); private static final Color DEFAULT_BRACKET_MATCH_BORDER_COLOR = new Color(0, 0, 128); private static final Color DEFAULT_SELECTION_COLOR = new Color(200, 200, 255); - private static final String MSG = "org.fife.ui.rsyntaxtextarea.RSyntaxTextArea"; - private JMenu foldingMenu; private static RecordableTextAction toggleCurrentFoldAction; private static RecordableTextAction collapseAllCommentFoldsAction; private static RecordableTextAction collapseAllFoldsAction; private static RecordableTextAction expandAllFoldsAction; - /** The key for the syntax style to be highlighting. */ private String syntaxStyleKey; - /** The colors used for syntax highlighting. */ private SyntaxScheme syntaxScheme; - /** Handles code templates. */ private static CodeTemplateManager codeTemplateManager; - /** Whether or not templates are enabled. */ private static boolean templatesEnabled; - /** * The rectangle surrounding the "matched bracket" if bracket matching is * enabled. */ private Rectangle match; - /** * The rectangle surrounding the current offset if both bracket matching and * "match both brackets" are enabled. */ private Rectangle dotRect; - /** - * Used to store the location of the bracket at the caret position (either just + * Used to store the location of the bracket at the caret position (either + * just * before or just after it) and the location of its match. */ private Point bracketInfo; - /** * Colors used for the "matched bracket" if bracket matching is enabled. */ private Color matchedBracketBGColor; private Color matchedBracketBorderColor; - /** The location of the last matched bracket. */ private int lastBracketMatchPos; - /** Whether or not bracket matching is enabled. */ private boolean bracketMatchingEnabled; - /** Whether or not bracket matching is animated. */ private boolean animateBracketMatching; - /** Whether both brackets are highlighted when bracket matching. */ private boolean paintMatchedBracketPair; - private BracketMatchingTimer bracketRepaintTimer; - private MatchedBracketPopupTimer matchedBracketPopupTimer; - private boolean metricsNeverRefreshed; - /** * Whether or not auto-indent is on. */ private boolean autoIndentEnabled; - /** - * Whether curly braces should be closed on Enter key presses, (if the current + * Whether curly braces should be closed on Enter key presses, (if the + * current * language supports it). */ private boolean closeCurlyBraces; - /** * Whether closing markup tags should be automatically completed when - * "</" is typed (if the current language is a markup language). + * "</" is typed (if the current language is a markup + * language). */ private boolean closeMarkupTags; - /** * Whether or not lines with nothing but whitespace are "made empty". */ private boolean clearWhitespaceLines; - /** Whether we are displaying visible whitespace (spaces and tabs). */ private boolean whitespaceVisible; - /** Whether EOL markers should be visible at the end of each line. */ private boolean eolMarkersVisible; - /** Whether tab lines are enabled. */ private boolean paintTabLines; - /** The color to use when painting tab lines. */ private Color tabLineColor; - /** - * Whether hyperlinks are enabled (must be supported by the syntax scheme being + * Whether hyperlinks are enabled (must be supported by the syntax scheme + * being * used). */ private boolean hyperlinksEnabled; - /** The color to use when painting hyperlinks. */ private Color hyperlinkFG; - /** * Mask used to determine if the correct key is being held down to scan for * hyperlinks (ctrl, meta, etc.). */ private int linkScanningMask; - /** Whether secondary languages have their backgrounds colored. */ private boolean highlightSecondaryLanguages; - /** Whether the "selected text" color should be used with selected text. */ private boolean useSelectedTextColor; - /** Handles "mark occurrences" support. */ private MarkOccurrencesSupport markOccurrencesSupport; - /** The color used to render "marked occurrences". */ private Color markOccurrencesColor; - /** The delay before occurrences are marked in the editor. */ private int markOccurrencesDelay; - /** Whether a border should be painted around marked occurrences. */ private boolean paintMarkOccurrencesBorder; - /** Metrics of the text area's font. */ private FontMetrics defaultFontMetrics; - /** Manages running the parser. */ private ParserManager parserManager; - private String cachedTip; /** Used to work around an issue with Apple JVMs. */ private Point cachedTipLoc; - /** - * Whether the editor is currently scanning for hyperlinks on mouse movement. + * Whether the editor is currently scanning for hyperlinks on mouse + * movement. */ private boolean isScanningForLinks; - private int hoveredOverLinkOffset; - private LinkGenerator linkGenerator; private LinkGeneratorResult linkGeneratorResult; - private int rhsCorrection; - public FoldManager foldManager; - /** Whether "focusable" tool tips are used instead of standard ones. */ private boolean useFocusableTips; - /** The last focusable tip displayed. */ private FocusableTip focusableTip; - /** Cached desktop anti-aliasing hints, if anti-aliasing is enabled. */ private Map aaHints; - /** Renders tokens. */ private TokenPainter tokenPainter; - - /** Whether a popup showing matched bracket lines when they're off-screen. */ + /** + * Whether a popup showing matched bracket lines when they're off-screen. + */ private boolean showMatchedBracketPopup; - - private int lineHeight; // Height of a line of text; same for default, bold & italic. + private int lineHeight; // Height of a line of text; same for default, bold + // & italic. private int maxAscent; private boolean fractionalFontMetricsEnabled; - private Color[] secondaryLanguageBackgrounds; - + /** * Constructor. */ - public RSyntaxTextArea() { - } - + public RSyntaxTextArea() {} + /** * Constructor. * @@ -360,7 +315,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { super(doc); setSyntaxEditingStyle(doc.getSyntaxStyle()); } - + /** * Constructor. * @@ -370,7 +325,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public RSyntaxTextArea(String text) { super(text); } - + /** * Constructor. * @@ -384,7 +339,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public RSyntaxTextArea(int rows, int cols) { super(rows, cols); } - + /** * Constructor. * @@ -400,7 +355,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public RSyntaxTextArea(String text, int rows, int cols) { super(text, rows, cols); } - + /** * Constructor. * @@ -418,17 +373,18 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public RSyntaxTextArea(RSyntaxDocument doc, String text, int rows, int cols) { super(doc, text, rows, cols); } - + /** * Creates a new RSyntaxTextArea. * * @param textMode - * Either INSERT_MODE or OVERWRITE_MODE. + * Either INSERT_MODE or + * OVERWRITE_MODE. */ public RSyntaxTextArea(int textMode) { super(textMode); } - + /** * Adds an "active line range" listener to this text area. * @@ -439,7 +395,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public void addActiveLineRangeListener(ActiveLineRangeListener l) { listenerList.add(ActiveLineRangeListener.class, l); } - + /** * Adds a hyperlink listener to this text area. * @@ -450,15 +406,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public void addHyperlinkListener(HyperlinkListener l) { listenerList.add(HyperlinkListener.class, l); } - + /** * Updates the font metrics the first time we're displayed. */ @Override public void addNotify() { - super.addNotify(); - // Some LookAndFeels (e.g. WebLaF) for some reason have a 0x0 parent // window initially (perhaps something to do with them fading in?), // which will cause an exception from getGraphics(), so we must be @@ -470,17 +424,16 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { metricsNeverRefreshed = false; } } - // Re-start parsing if we were removed from one container and added // to another if (parserManager != null) { parserManager.restartParsing(); } - } - + /** - * Adds the parser to "validate" the source code in this text area. This can be + * Adds the parser to "validate" the source code in this text area. This can + * be * anything from a spell checker to a "compiler" that verifies source code. * * @param parser @@ -495,9 +448,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } parserManager.addParser(parser); } - + /** - * Appends a submenu with code folding options to this text component's popup + * Appends a submenu with code folding options to this text component's + * popup * menu. * * @param popup @@ -513,17 +467,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { foldingMenu.add(createPopupMenuItem(collapseAllFoldsAction)); foldingMenu.add(createPopupMenuItem(expandAllFoldsAction)); popup.add(foldingMenu); - } - + /** - * Recalculates the height of a line in this text area and the maximum ascent of + * Recalculates the height of a line in this text area and the maximum + * ascent of * all fonts displayed. */ private void calculateLineHeight() { - lineHeight = maxAscent = 0; - // Each token style. for (int i = 0; i < syntaxScheme.getStyleCount(); i++) { Style ss = syntaxScheme.getStyle(i); @@ -539,7 +491,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - // The text area's (default) font). Font temp = getFont(); FontMetrics fm = getFontMetrics(temp); @@ -551,9 +502,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { if (ascent > maxAscent) { maxAscent = ascent; } - } - + /** * Removes all parsers from this text area. * @@ -564,10 +514,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { parserManager.clearParsers(); } } - + /** * Clones a token list. This is necessary as tokens are reused in - * {@link RSyntaxDocument}, so we can't simply use the ones we are handed from + * {@link RSyntaxDocument}, so we can't simply use the ones we are handed + * from * it. * * @param t @@ -575,30 +526,27 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * @return The clone of the token list. */ private TokenImpl cloneTokenList(Token t) { - if (t == null) { return null; } - TokenImpl clone = new TokenImpl(t); TokenImpl cloneEnd = clone; - while ((t = t.getNextToken()) != null) { TokenImpl temp = new TokenImpl(t); cloneEnd.setNextToken(temp); cloneEnd = temp; } - return clone; - } - + /** - * Overridden to toggle the enabled state of various RSyntaxTextArea-specific + * Overridden to toggle the enabled state of various + * RSyntaxTextArea-specific * menu items. * * If you set the popup menu via {@link #setPopupMenu(JPopupMenu)}, you will - * want to override this method, especially if you removed any of the menu items + * want to override this method, especially if you removed any of the menu + * items * in the default popup menu. * * @param popupMenu @@ -608,28 +556,25 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { */ @Override protected void configurePopupMenu(JPopupMenu popupMenu) { - super.configurePopupMenu(popupMenu); - // They may have overridden createPopupMenu()... if (popupMenu != null && popupMenu.getComponentCount() > 0 && foldingMenu != null) { foldingMenu.setEnabled(foldManager.isCodeFoldingSupportedAndEnabled()); } } - + /** * Copies the currently selected text to the system clipboard, with any - * necessary style information (font, foreground color and background color). + * necessary style information (font, foreground color and background + * color). * Does nothing for null selections. */ public void copyAsRtf() { - int selStart = getSelectionStart(); int selEnd = getSelectionEnd(); if (selStart == selEnd) { return; } - // Make sure there is a system clipboard, and that we can write // to it. SecurityManager sm = System.getSecurityManager(); @@ -642,7 +587,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } Clipboard cb = getToolkit().getSystemClipboard(); - // Create the RTF selection. RtfGenerator gen = new RtfGenerator(); Token tokenList = getTokenListFor(selStart, selEnd); @@ -665,7 +609,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - // Set the system clipboard contents to the RTF selection. RtfTransferable contents = new RtfTransferable(gen.getRtf().getBytes()); // System.out.println("*** " + new String(gen.getRtf().getBytes())); @@ -675,9 +618,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { UIManager.getLookAndFeel().provideErrorFeedback(null); return; } - } - + /** * Returns the document to use for an RSyntaxTextArea. * @@ -687,7 +629,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { protected Document createDefaultModel() { return new RSyntaxDocument(SYNTAX_STYLE_NONE); } - + /** * Returns the caret event/mouse listener for RTextAreas. * @@ -697,7 +639,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { protected RTAMouseListener createMouseListener() { return new RSyntaxTextAreaMutableCaretEvent(this); } - + /** * Overridden to add menu items related to cold folding. * @@ -710,27 +652,24 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { appendFoldingMenu(popup); return popup; } - + /** - * See createPopupMenuActions() in RTextArea. TODO: Remove these horrible hacks - * and move localizing of actions into the editor kits, where it should be! The + * See createPopupMenuActions() in RTextArea. TODO: Remove these horrible + * hacks + * and move localizing of actions into the editor kits, where it should be! + * The * context menu should contain actions from the editor kits. */ private static void createRstaPopupMenuActions() { - ResourceBundle msg = ResourceBundle.getBundle(MSG); - toggleCurrentFoldAction = new RSyntaxTextAreaEditorKit.ToggleCurrentFoldAction(); toggleCurrentFoldAction.setProperties(msg, "Action.ToggleCurrentFold"); - collapseAllCommentFoldsAction = new RSyntaxTextAreaEditorKit.CollapseAllCommentFoldsAction(); collapseAllCommentFoldsAction.setProperties(msg, "Action.CollapseCommentFolds"); - collapseAllFoldsAction = new RSyntaxTextAreaEditorKit.CollapseAllFoldsAction(true); expandAllFoldsAction = new RSyntaxTextAreaEditorKit.ExpandAllFoldsAction(true); - } - + /** * Returns the a real UI to install on this text area. * @@ -740,13 +679,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { protected RTextAreaUI createRTextAreaUI() { return new RSyntaxTextAreaUI(this); } - + /** - * If the caret is on a bracket, this method finds the matching bracket, and if + * If the caret is on a bracket, this method finds the matching bracket, and + * if * it exists, highlights it. */ protected final void doBracketMatching() { - // We always need to repaint the "matched bracket" highlight if it // exists. if (match != null) { @@ -755,7 +694,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { repaint(dotRect); } } - // If a matching bracket is found, get its bounds and paint it! int lastCaretBracketPos = bracketInfo == null ? -1 : bracketInfo.x; bracketInfo = RSyntaxUtilities.getMatchingBracketPosition(this, bracketInfo); @@ -775,7 +713,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { if (dotRect != null) { repaint(dotRect); } - if (getShowMatchedBracketPopup()) { Container parent = getParent(); if (parent instanceof JViewport) { @@ -788,7 +725,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - } } catch (BadLocationException ble) { ble.printStackTrace(); // Shouldn't happen. @@ -800,9 +736,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { bracketRepaintTimer.stop(); } lastBracketMatchPos = bracketInfo.y; - } - + /** * Notifies all listeners that a caret change has occurred. * @@ -816,7 +751,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { doBracketMatching(); } } - + /** * Notifies all listeners that the active line range has changed. * @@ -840,9 +775,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + /** - * Notifies all listeners that have registered interest for notification on this + * Notifies all listeners that have registered interest for notification on + * this * event type. The listener list is processed last to first. * * @param e @@ -859,7 +795,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + /** * Notifies listeners that the marked occurrences for this text area have * changed. @@ -867,16 +803,18 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { void fireMarkedOccurrencesChanged() { firePropertyChange(RSyntaxTextArea.MARKED_OCCURRENCES_CHANGED_PROPERTY, null, null); } - + /** - * Fires a notification that the parser notices for this text area have changed. + * Fires a notification that the parser notices for this text area have + * changed. */ void fireParserNoticesChange() { firePropertyChange(PARSER_NOTICES_PROPERTY, null, null); } - + /** - * Called whenever a fold is collapsed or expanded. This causes the text editor + * Called whenever a fold is collapsed or expanded. This causes the text + * editor * to revalidate. This method is here because of poor design and should be * removed. * @@ -893,6 +831,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { // deleted (see GitHub issue #22: // https://github.com/bobbylight/RSyntaxTextArea/issues/22) SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { possiblyUpdateCurrentLineHighlightLocation(); @@ -904,15 +843,18 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { revalidate(); repaint(); } - + /** - * Forces the given {@link Parser} to re-parse the content of this text area. + * Forces the given {@link Parser} to re-parse the content of this text + * area. *

* - * This method can be useful when a Parser can be configured as to + * This method can be useful when a Parser can be configured as + * to * what notices it returns. For example, if a Java language parser can be * configured to set whether no serialVersionUID is a warning, error, or - * ignored, this method can be called after changing the expected notice type to + * ignored, this method can be called after changing the expected notice + * type to * have the document re-parsed. * * @param parser @@ -922,13 +864,14 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public void forceReparsing(int parser) { parserManager.forceReparsing(parser); } - + /** * Forces re-parsing with a specific parser. Note that if this parser is not * installed on this text area, nothing will happen. * * @param parser - * The parser that should re-parse this text area's contents. This + * The parser that should re-parse this text area's contents. + * This * should be installed on this text area. * @return Whether the parser was installed on this text area. * @see #forceReparsing(int) @@ -942,7 +885,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } return false; } - + /** * Returns whether bracket matching should be animated. * @@ -952,7 +895,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getAnimateBracketMatching() { return animateBracketMatching; } - + /** * Returns whether anti-aliasing is enabled in this editor. * @@ -963,14 +906,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getAntiAliasingEnabled() { return aaHints != null; } - + /** * Returns the background color for a token. * * @param token * The token. * @return The background color to use for that token. If this value is is - * null then this token has no special background color. + * null then this token has no special background + * color. * @see #getForegroundForToken(Token) */ public Color getBackgroundForToken(Token token) { @@ -989,10 +933,12 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { // paint a background if they get a null Color. return c; } - + /** - * Returns whether curly braces should be automatically closed when a newline is - * entered after an opening curly brace. Note that this property is only honored + * Returns whether curly braces should be automatically closed when a + * newline is + * entered after an opening curly brace. Note that this property is only + * honored * for languages that use curly braces to denote code blocks. * * @return Whether curly braces should be automatically closed. @@ -1001,10 +947,12 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getCloseCurlyBraces() { return closeCurlyBraces; } - + /** - * Returns whether closing markup tags should be automatically completed when - * "</" is typed. Note that this property is only honored for + * Returns whether closing markup tags should be automatically completed + * when + * "</" is typed. Note that this property is only honored + * for * markup languages, such as HTML, XML and PHP. * * @return Whether closing markup tags should be automatically completed. @@ -1013,7 +961,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getCloseMarkupTags() { return closeMarkupTags; } - + /** * Returns the code template manager for all instances of * RSyntaxTextArea. The manager is lazily created. @@ -1027,7 +975,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } return codeTemplateManager; } - + /** * Returns the default bracket-match background color. * @@ -1037,7 +985,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public static final Color getDefaultBracketMatchBGColor() { return DEFAULT_BRACKET_MATCH_BG_COLOR; } - + /** * Returns the default bracket-match border color. * @@ -1047,9 +995,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public static final Color getDefaultBracketMatchBorderColor() { return DEFAULT_BRACKET_MATCH_BORDER_COLOR; } - + /** - * Returns the default selection color for this text area. This color was chosen + * Returns the default selection color for this text area. This color was + * chosen * because it's light and RSyntaxTextArea does not change text * color between selected/unselected text for contrast like regular * JTextAreas do. @@ -1059,9 +1008,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public static Color getDefaultSelectionColor() { return DEFAULT_SELECTION_COLOR; } - + /** - * Returns the "default" syntax highlighting color scheme. The colors used are + * Returns the "default" syntax highlighting color scheme. The colors used + * are * somewhat standard among syntax highlighting text editors. * * @return The default syntax highlighting color scheme. @@ -1072,7 +1022,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public SyntaxScheme getDefaultSyntaxScheme() { return new SyntaxScheme(getFont()); } - + /** * Returns whether an EOL marker should be drawn at the end of each line. * @@ -1083,7 +1033,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getEOLMarkersVisible() { return eolMarkersVisible; } - + /** * Returns the fold manager for this text area. * @@ -1092,7 +1042,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public FoldManager getFoldManager() { return foldManager; } - + /** * Returns the font for tokens of the specified type. * @@ -1105,7 +1055,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { Font f = syntaxScheme.getStyle(type).font; return f != null ? f : getFont(); } - + /** * Returns the font metrics for tokens of the specified type. * @@ -1118,7 +1068,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { FontMetrics fm = syntaxScheme.getStyle(type).fontMetrics; return fm != null ? fm : defaultFontMetrics; } - + /** * Returns the foreground color to use when painting a token. * @@ -1129,15 +1079,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * @see #getBackgroundForToken(Token) */ public Color getForegroundForToken(Token t) { - if (getHyperlinksEnabled() && hoveredOverLinkOffset == t.getOffset() - && (t.isHyperlink() || linkGeneratorResult != null)) { + if (getHyperlinksEnabled() && hoveredOverLinkOffset == t.getOffset() && (t.isHyperlink() || linkGeneratorResult != null)) { return hyperlinkFG; } return getForegroundForTokenType(t.getType()); } - + /** - * Returns the foreground color to use when painting a token. This does not take + * Returns the foreground color to use when painting a token. This does not + * take * into account whether the token is a hyperlink. * * @param type @@ -1150,7 +1100,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { Color fg = syntaxScheme.getStyle(type).foreground; return fg != null ? fg : getForeground(); } - + /** * Returns whether fractional font metrics are enabled for this text area. * @@ -1161,13 +1111,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getFractionalFontMetricsEnabled() { return fractionalFontMetricsEnabled; } - + /** - * Returns a Graphics2D version of the specified graphics that has + * Returns a Graphics2D version of the specified graphics that + * has * been initialized with the proper rendering hints. * * @param g - * The graphics context for which to get a Graphics2D. + * The graphics context for which to get a + * Graphics2D. * @return The Graphics2D. */ private Graphics2D getGraphics2D(Graphics g) { @@ -1180,9 +1132,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } return g2d; } - + /** - * Returns whether "secondary" languages should have their backgrounds colored + * Returns whether "secondary" languages should have their backgrounds + * colored * differently to visually differentiate them. This feature imposes a fair * performance penalty. * @@ -1196,7 +1149,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getHighlightSecondaryLanguages() { return highlightSecondaryLanguages; } - + /** * Returns the color to use when painting hyperlinks. * @@ -1207,7 +1160,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public Color getHyperlinkForeground() { return hyperlinkFG; } - + /** * Returns whether hyperlinks are enabled for this text area. * @@ -1217,9 +1170,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getHyperlinksEnabled() { return hyperlinksEnabled; } - + /** - * Returns the last visible offset in this text area. This may not be the length + * Returns the last visible offset in this text area. This may not be the + * length * of the document if code folding is enabled. * * @return The last visible offset in this text area. @@ -1237,7 +1191,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } return getDocument().getLength(); } - + /** * Returns the height to use for a line of text in this text area. * @@ -1248,11 +1202,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { // System.err.println("... getLineHeight() returning " + lineHeight); return lineHeight; } - + public LinkGenerator getLinkGenerator() { return linkGenerator; } - + /** * Returns a list of "mark all" highlights in the text area. If there are no * such highlights, this will be an empty list. @@ -1262,7 +1216,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public List getMarkAllHighlightRanges() { return ((RSyntaxTextAreaHighlighter) getHighlighter()).getMarkAllHighlightRanges(); } - + /** * Returns a list of "marked occurrences" in the text area. If there are no * marked occurrences, this will be an empty list. @@ -1272,7 +1226,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public List getMarkedOccurrences() { return ((RSyntaxTextAreaHighlighter) getHighlighter()).getMarkedOccurrences(); } - + /** * Returns whether "Mark Occurrences" is enabled. * @@ -1282,7 +1236,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getMarkOccurrences() { return markOccurrencesSupport != null; } - + /** * Returns the color used for "mark occurrences" highlights. * @@ -1292,7 +1246,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public Color getMarkOccurrencesColor() { return markOccurrencesColor; } - + /** * Returns the delay between when the caret is moved and when "marked * occurrences" are highlighted. @@ -1303,24 +1257,27 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public int getMarkOccurrencesDelay() { return markOccurrencesDelay; } - + /** - * Returns whether tokens of the specified type should have "mark occurrences" + * Returns whether tokens of the specified type should have "mark + * occurrences" * enabled for the current programming language. * * @param type * The token type. - * @return Whether tokens of this type should have "mark occurrences" enabled. + * @return Whether tokens of this type should have "mark occurrences" + * enabled. */ boolean getMarkOccurrencesOfTokenType(int type) { RSyntaxDocument doc = (RSyntaxDocument) getDocument(); return doc.getMarkOccurrencesOfTokenType(type); } - + /** * Gets the color used as the background for a matched bracket. * - * @return The color used. If this is null, no special background + * @return The color used. If this is null, no special + * background * is painted behind a matched bracket. * @see #setMatchedBracketBGColor * @see #getMatchedBracketBorderColor @@ -1328,7 +1285,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public Color getMatchedBracketBGColor() { return matchedBracketBGColor; } - + /** * Gets the color used as the border for a matched bracket. * @@ -1339,11 +1296,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public Color getMatchedBracketBorderColor() { return matchedBracketBorderColor; } - + /** * Returns the caret's offset's rectangle, or null if there is - * currently no matched bracket, bracket matching is disabled, or "paint both - * matched brackets" is disabled. This should never be called by the programmer + * currently no matched bracket, bracket matching is disabled, or "paint + * both + * matched brackets" is disabled. This should never be called by the + * programmer * directly. * * @return The rectangle surrounding the matched bracket. @@ -1352,10 +1311,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { Rectangle getDotRectangle() { return dotRect; } - + /** * Returns the matched bracket's rectangle, or null if there is - * currently no matched bracket. This should never be called by the programmer + * currently no matched bracket. This should never be called by the + * programmer * directly. * * @return The rectangle surrounding the matched bracket. @@ -1364,7 +1324,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { Rectangle getMatchRectangle() { return match; } - + /** * Overridden to return the max ascent for any font used in the editor. * @@ -1374,13 +1334,14 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public int getMaxAscent() { return maxAscent; } - + /** * Returns whether the bracket at the caret position is painted as a "match" * when a matched bracket is found. Note that this property does nothing if * {@link #isBracketMatchingEnabled()} returns false. * - * @return Whether both brackets in a bracket pair are highlighted when bracket + * @return Whether both brackets in a bracket pair are highlighted when + * bracket * matching is enabled. * @see #setPaintMatchedBracketPair(boolean) * @see #isBracketMatchingEnabled() @@ -1389,7 +1350,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getPaintMatchedBracketPair() { return paintMatchedBracketPair; } - + /** * Returns whether tab lines are painted. * @@ -1400,7 +1361,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public boolean getPaintTabLines() { return paintTabLines; } - + /** * Returns whether to paint the backgrounds of tokens on the specified line * (assuming they are not obstructed by e.g. selection). @@ -1408,18 +1369,21 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * @param line * The line number. * @param y - * The y-offset of the line. This is used when line wrap is enabled, - * since each logical line can be rendered as several physical lines. + * The y-offset of the line. This is used when line wrap is + * enabled, + * since each logical line can be rendered as several physical + * lines. * @return Whether to paint the token backgrounds on this line. */ boolean getPaintTokenBackgrounds(int line, float y) { - // System.out.println(y + ", " + getCurrentCaretY() + "-" + (getCurrentCaretY() + // System.out.println(y + ", " + getCurrentCaretY() + "-" + + // (getCurrentCaretY() // + getLineHeight())); int iy = (int) y; int curCaretY = getCurrentCaretY(); return iy < curCaretY || iy >= curCaretY + getLineHeight() || !getHighlightCurrentLine(); } - + /** * Returns the specified parser. * @@ -1432,7 +1396,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public Parser getParser(int index) { return parserManager.getParser(index); } - + /** * Returns the number of parsers operating on this text area. * @@ -1442,7 +1406,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public int getParserCount() { return parserManager == null ? 0 : parserManager.getParserCount(); } - + /** * Returns the currently set parser delay. This is the delay that must occur * between edits for any registered {@link Parser}s to run. @@ -1453,12 +1417,14 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public int getParserDelay() { return parserManager.getDelay(); } - + /** - * Returns a list of the current parser notices for this text area. This method + * Returns a list of the current parser notices for this text area. This + * method * (like most Swing methods) should only be called on the EDT. * - * @return The list of notices. This will be an empty list if there are none. + * @return The list of notices. This will be an empty list if there are + * none. */ public List getParserNotices() { if (parserManager == null) { @@ -1466,7 +1432,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } return parserManager.getParserNotices(); } - + /** * Workaround for JTextComponents allowing the caret to be rendered entirely * off-screen if the entire "previous" character fit entirely. @@ -1477,11 +1443,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public int getRightHandSideCorrection() { return rhsCorrection; } - + /** - * If auto-indent is enabled, this method returns whether a new line after this + * If auto-indent is enabled, this method returns whether a new line after + * this * one should be indented (based on the standard indentation rules for the - * current programming language). For example, in Java, for a line containing: + * current programming language). For example, in Java, for a line + * containing: * *

 	 * for (int i=0; i<10; i++) {
@@ -1491,7 +1459,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	 *
 	 * @param line
 	 *            The line to check.
-	 * @return Whether a line inserted after this one should be auto-indented. If
+	 * @return Whether a line inserted after this one should be auto-indented.
+	 *         If
 	 *         auto-indentation is disabled, this will always return
 	 *         false.
 	 * @see #isAutoIndentEnabled()
@@ -1503,7 +1472,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		}
 		return false;
 	}
-
+	
 	/**
 	 * Returns whether a small popup window should display the text on the line
 	 * containing a matched bracket whenever a matched bracket is off- screen.
@@ -1514,7 +1483,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean getShowMatchedBracketPopup() {
 		return showMatchedBracketPopup;
 	}
-
+	
 	/**
 	 * Returns what type of syntax highlighting this editor is doing.
 	 *
@@ -1526,19 +1495,21 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public String getSyntaxEditingStyle() {
 		return syntaxStyleKey;
 	}
-
+	
 	/**
-	 * Returns all of the colors currently being used in syntax highlighting by this
+	 * Returns all of the colors currently being used in syntax highlighting by
+	 * this
 	 * text component.
 	 *
-	 * @return An instance of SyntaxScheme that represents the colors
+	 * @return An instance of SyntaxScheme that represents the
+	 *         colors
 	 *         currently being used for syntax highlighting.
 	 * @see #setSyntaxScheme(SyntaxScheme)
 	 */
 	public SyntaxScheme getSyntaxScheme() {
 		return syntaxScheme;
 	}
-
+	
 	/**
 	 * Returns the color used to paint tab lines.
 	 *
@@ -1550,7 +1521,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public Color getTabLineColor() {
 		return tabLineColor;
 	}
-
+	
 	/**
 	 * Returns whether a border is painted around marked occurrences.
 	 *
@@ -1562,13 +1533,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean getPaintMarkOccurrencesBorder() {
 		return paintMarkOccurrencesBorder;
 	}
-
+	
 	/**
 	 * Returns the background color for the specified secondary language.
 	 *
 	 * @param index
-	 *            The language index. Note that these are 1-based, not 0-based, and
-	 *            should be in the range 1-getSecondaryLanguageCount(),
+	 *            The language index. Note that these are 1-based, not 0-based,
+	 *            and
+	 *            should be in the range
+	 *            1-getSecondaryLanguageCount(),
 	 *            inclusive.
 	 * @return The color, or null if none.
 	 * @see #getSecondaryLanguageCount()
@@ -1578,7 +1551,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public Color getSecondaryLanguageBackground(int index) {
 		return secondaryLanguageBackgrounds[index - 1];
 	}
-
+	
 	/**
 	 * Returns the number of secondary language backgrounds.
 	 *
@@ -1590,7 +1563,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public int getSecondaryLanguageCount() {
 		return secondaryLanguageBackgrounds.length;
 	}
-
+	
 	/**
 	 * Returns whether or not templates are enabled for all instances of
 	 * RSyntaxTextArea.
@@ -1610,7 +1583,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public static synchronized boolean getTemplatesEnabled() {
 		return templatesEnabled;
 	}
-
+	
 	/**
 	 * Returns a token list for the given range in the document.
 	 *
@@ -1621,14 +1594,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	 * @return The first token in the token list.
 	 */
 	private Token getTokenListFor(int startOffs, int endOffs) {
-
 		TokenImpl tokenList = null;
 		TokenImpl lastToken = null;
-
 		Element map = getDocument().getDefaultRootElement();
 		int startLine = map.getElementIndex(startOffs);
 		int endLine = map.getElementIndex(endOffs);
-
 		for (int line = startLine; line <= endLine; line++) {
 			TokenImpl t = (TokenImpl) getTokenListForLine(line);
 			t = cloneTokenList(t);
@@ -1650,10 +1620,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 				lastToken = t;
 			}
 		}
-
 		// Trim the beginning and end of the token list so that it starts
 		// at startOffs and ends at endOffs.
-
 		// Be careful and check that startOffs is actually in the list.
 		// startOffs can be < the token list's start if the end "newline"
 		// character of a line is the first character selected (the token
@@ -1666,7 +1634,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 			}
 			tokenList.makeStartAt(startOffs);
 		}
-
 		TokenImpl temp = tokenList;
 		// Be careful to check temp for null here. It is possible that no
 		// token contains endOffs, if endOffs is at the end of a line.
@@ -1677,11 +1644,9 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 			temp.textCount = endOffs - temp.getOffset();
 			temp.setNextToken(null);
 		}
-
 		return tokenList;
-
 	}
-
+	
 	/**
 	 * Returns a list of tokens representing the given line.
 	 *
@@ -1692,7 +1657,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public Token getTokenListForLine(int line) {
 		return ((RSyntaxDocument) getDocument()).getTokenListForLine(line);
 	}
-
+	
 	/**
 	 * Returns the painter to use for rendering tokens.
 	 *
@@ -1701,18 +1666,20 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	TokenPainter getTokenPainter() {
 		return tokenPainter;
 	}
-
+	
 	/**
-	 * Returns the tool tip to display for a mouse event at the given location. This
-	 * method is overridden to give a registered parser a chance to display a tool
-	 * tip (such as an error description when the mouse is over an error highlight).
+	 * Returns the tool tip to display for a mouse event at the given location.
+	 * This
+	 * method is overridden to give a registered parser a chance to display a
+	 * tool
+	 * tip (such as an error description when the mouse is over an error
+	 * highlight).
 	 *
 	 * @param e
 	 *            The mouse event.
 	 */
 	@Override
 	public String getToolTipText(MouseEvent e) {
-
 		// Apple JVMS (Java 6 and prior) have their ToolTipManager events
 		// repeat for some reason, so this method gets called every 1 second
 		// or so. We short-circuit that since some ToolTipManagers may do
@@ -1724,11 +1691,9 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 			}
 			cachedTipLoc = newLoc;
 		}
-
 		return cachedTip = getToolTipTextImpl(e);
-
 	}
-
+	
 	/**
 	 * Does the dirty work of getting the tool tip text.
 	 *
@@ -1737,7 +1702,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	 * @return The tool tip text.
 	 */
 	protected String getToolTipTextImpl(MouseEvent e) {
-
 		// Check parsers for tool tips first.
 		String text = null;
 		URL imageBase = null;
@@ -1751,7 +1715,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		if (text == null) {
 			text = super.getToolTipText(e);
 		}
-
 		// Do we want to use "focusable" tips?
 		if (getUseFocusableTips()) {
 			if (text != null) {
@@ -1768,14 +1731,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 			}
 			return null;
 		}
-
 		return text; // Standard tool tips
-
 	}
-
+	
 	/**
 	 * Returns whether the specified token should be underlined. A token is
-	 * underlined if its syntax style includes underlining, or if it is a hyperlink
+	 * underlined if its syntax style includes underlining, or if it is a
+	 * hyperlink
 	 * and hyperlinks are enabled.
 	 *
 	 * @param t
@@ -1783,14 +1745,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	 * @return Whether the specified token should be underlined.
 	 */
 	public boolean getUnderlineForToken(Token t) {
-		return (getHyperlinksEnabled() && (t.isHyperlink()
-				|| (linkGeneratorResult != null && linkGeneratorResult.getSourceOffset() == t.getOffset())))
+		return (getHyperlinksEnabled()
+				&& (t.isHyperlink() || (linkGeneratorResult != null && linkGeneratorResult.getSourceOffset() == t.getOffset())))
 				|| syntaxScheme.getStyle(t.getType()).underline;
 	}
-
+	
 	/**
 	 * Returns whether "focusable" tool tips are used instead of standard ones.
-	 * Focusable tool tips are tool tips that the user can click on, resize, copy
+	 * Focusable tool tips are tool tips that the user can click on, resize,
+	 * copy
 	 * from, and click links in.
 	 *
 	 * @return Whether to use focusable tool tips.
@@ -1800,11 +1763,14 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean getUseFocusableTips() {
 		return useFocusableTips;
 	}
-
+	
 	/**
-	 * Returns whether selected text should use the "selected text color" property
-	 * set via {@link #setSelectedTextColor(Color)}. This is the typical behavior of
-	 * text components. By default, RSyntaxTextArea does not do this, so that token
+	 * Returns whether selected text should use the "selected text color"
+	 * property
+	 * set via {@link #setSelectedTextColor(Color)}. This is the typical
+	 * behavior of
+	 * text components. By default, RSyntaxTextArea does not do this, so that
+	 * token
 	 * styles are visible even in selected regions of text.
 	 *
 	 * @return Whether the "selected text" color is used when painting text in
@@ -1814,18 +1780,16 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean getUseSelectedTextColor() {
 		return useSelectedTextColor;
 	}
-
+	
 	/**
-	 * Called by constructors to initialize common properties of the text editor.
+	 * Called by constructors to initialize common properties of the text
+	 * editor.
 	 */
 	@Override
 	protected void init() {
-
 		super.init();
 		metricsNeverRefreshed = true;
-
 		tokenPainter = new DefaultTokenPainter();
-
 		// NOTE: Our actions are created here instead of in a static block
 		// so they are only created when the first RTextArea is instantiated,
 		// not before. There have been reports of users calling static getters
@@ -1835,7 +1799,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		if (toggleCurrentFoldAction == null) {
 			createRstaPopupMenuActions();
 		}
-
 		// Set some RSyntaxTextArea default values.
 		syntaxStyleKey = SYNTAX_STYLE_NONE;
 		setMatchedBracketBGColor(getDefaultBracketMatchBGColor());
@@ -1847,36 +1810,29 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		setTabLineColor(null);
 		setMarkOccurrencesColor(MarkOccurrencesSupport.DEFAULT_COLOR);
 		setMarkOccurrencesDelay(MarkOccurrencesSupport.DEFAULT_DELAY_MS);
-
 		foldManager = new DefaultFoldManager(this);
-
 		// Set auto-indent related stuff.
 		setAutoIndentEnabled(true);
 		setCloseCurlyBraces(true);
 		setCloseMarkupTags(true);
 		setClearWhitespaceLinesEnabled(true);
-
 		setHyperlinksEnabled(true);
 		setLinkScanningMask(InputEvent.CTRL_DOWN_MASK);
 		setHyperlinkForeground(Color.BLUE);
 		isScanningForLinks = false;
 		setUseFocusableTips(true);
-
 		// setAntiAliasingEnabled(true);
 		setDefaultAntiAliasingState();
 		restoreDefaultSyntaxScheme();
-
 		setHighlightSecondaryLanguages(true);
 		secondaryLanguageBackgrounds = new Color[3];
 		secondaryLanguageBackgrounds[0] = new Color(0xfff0cc);
 		secondaryLanguageBackgrounds[1] = new Color(0xdafeda);
 		secondaryLanguageBackgrounds[2] = new Color(0xffe0f0);
-
 		setRightHandSideCorrection(0);
 		setShowMatchedBracketPopup(true);
-
 	}
-
+	
 	/**
 	 * Returns whether or not auto-indent is enabled.
 	 *
@@ -1886,7 +1842,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean isAutoIndentEnabled() {
 		return autoIndentEnabled;
 	}
-
+	
 	/**
 	 * Returns whether or not bracket matching is enabled.
 	 *
@@ -1896,9 +1852,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public final boolean isBracketMatchingEnabled() {
 		return bracketMatchingEnabled;
 	}
-
+	
 	/**
-	 * Returns whether or not lines containing nothing but whitespace are made into
+	 * Returns whether or not lines containing nothing but whitespace are made
+	 * into
 	 * blank lines when Enter is pressed in them.
 	 *
 	 * @return Whether or not whitespace-only lines are cleared when the user
@@ -1908,7 +1865,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean isClearWhitespaceLinesEnabled() {
 		return clearWhitespaceLines;
 	}
-
+	
 	/**
 	 * Returns whether code folding is enabled. Note that only certain languages
 	 * support code folding; those that do not will ignore this property.
@@ -1919,7 +1876,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean isCodeFoldingEnabled() {
 		return foldManager.isCodeFoldingEnabled();
 	}
-
+	
 	/**
 	 * Returns whether whitespace (spaces and tabs) is visible.
 	 *
@@ -1930,7 +1887,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public boolean isWhitespaceVisible() {
 		return whitespaceVisible;
 	}
-
+	
 	/**
 	 * Returns the token at the specified position in the model.
 	 *
@@ -1951,14 +1908,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		}
 		return null;
 	}
-
+	
 	/**
 	 * The paintComponent method is overridden so we apply any
 	 * necessary rendering hints to the Graphics object.
 	 */
 	@Override
 	protected void paintComponent(Graphics g) {
-
 		// A call to refreshFontMetrics() used to be in addNotify(), but
 		// unfortunately we cannot always get the graphics context there. If
 		// the parent frame/dialog is LAF-decorated, there is a chance that the
@@ -1969,10 +1925,9 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 			refreshFontMetrics(getGraphics2D(getGraphics()));
 			metricsNeverRefreshed = false;
 		}
-
 		super.paintComponent(getGraphics2D(g));
 	}
-
+	
 	private void refreshFontMetrics(Graphics2D g2d) {
 		// It is assumed that any rendering hints are already applied to g2d.
 		defaultFontMetrics = g2d.getFontMetrics(getFont());
@@ -1984,7 +1939,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 			sv.calculateLongestLine();
 		}
 	}
-
+	
 	/**
 	 * {@inheritDoc}
 	 */
@@ -2000,7 +1955,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		// the start offset to be its prior valid (start > end).
 		((RSyntaxTextAreaHighlighter) getHighlighter()).clearMarkOccurrencesHighlights();
 	}
-
+	
 	/**
 	 * Removes an "active line range" listener from this text area.
 	 *
@@ -2011,7 +1966,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public void removeActiveLineRangeListener(ActiveLineRangeListener l) {
 		listenerList.remove(ActiveLineRangeListener.class, l);
 	}
-
+	
 	/**
 	 * Removes a hyperlink listener from this text area.
 	 *
@@ -2022,7 +1977,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public void removeHyperlinkListener(HyperlinkListener l) {
 		listenerList.remove(HyperlinkListener.class, l);
 	}
-
+	
 	/**
 	 * Overridden so we stop this text area's parsers, if any.
 	 */
@@ -2033,7 +1988,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		}
 		super.removeNotify();
 	}
-
+	
 	/**
 	 * Removes a parser from this text area.
 	 *
@@ -2051,7 +2006,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		}
 		return removed;
 	}
-
+	
 	/**
 	 * Sets the colors used for syntax highlighting to their defaults.
 	 *
@@ -2062,17 +2017,21 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 	public void restoreDefaultSyntaxScheme() {
 		setSyntaxScheme(getDefaultSyntaxScheme());
 	}
-
+	
 	/**
 	 * Attempts to save all currently-known templates to the current template
 	 * directory, as set by setTemplateDirectory. Templates will be
-	 * saved as XML files with names equal to their abbreviations; for example, a
+	 * saved as XML files with names equal to their abbreviations; for example,
+	 * a
 	 * template that expands on the word "forb" will be saved as
 	 * forb.xml.
 	 *
-	 * @return Whether or not the save was successful. The save will be unsuccessful
-	 *         if the template directory does not exist or if it has not been set
-	 *         (i.e., you have not yet called setTemplateDirectory).
+	 * @return Whether or not the save was successful. The save will be
+	 *         unsuccessful
+	 *         if the template directory does not exist or if it has not been
+	 *         set
+	 *         (i.e., you have not yet called
+	 *         setTemplateDirectory).
 	 * @see #getTemplatesEnabled
 	 * @see #setTemplateDirectory
 	 * @see #setTemplatesEnabled
@@ -2083,25 +2042,30 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants {
 		}
 		return getCodeTemplateManager().saveTemplates();
 	}
-
+	
 	/**
 	 * Sets the "active line range." Note that this RSyntaxTextArea
-	 * itself does nothing with this information, but if it is contained inside an
-	 * {@link org.fife.ui.rtextarea.RTextScrollPane}, the active line range may be
+	 * itself does nothing with this information, but if it is contained inside
+	 * an
+	 * {@link org.fife.ui.rtextarea.RTextScrollPane}, the active line range may
+	 * be
 	 * displayed in the icon area of the {@link org.fife.ui.rtextarea.Gutter}.
 	 * 

* * Note that basic users of RSyntaxTextArea will not call this * method directly; rather, it is usually called by instances of - * LanguageSupport in the RSTALangaugeSupport library. + * LanguageSupport in the RSTALangaugeSupport + * library. * See http://fifesoft.com for more * information about this library. * * @param min - * The "minimum" line in the active line range, or -1 if + * The "minimum" line in the active line range, or + * -1 if * the range is being cleared. * @param max - * The "maximum" line in the active line range, or -1 if + * The "maximum" line in the active line range, or + * -1 if * the range is being cleared. * @see #addActiveLineRangeListener(ActiveLineRangeListener) */ @@ -2111,7 +2075,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } fireActiveLineRangeEvent(min, max); } - + /** * Sets whether bracket matching should be animated. This fires a property * change event of type {@link #ANIMATE_BRACKET_MATCHING_PROPERTY}. @@ -2129,7 +2093,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(ANIMATE_BRACKET_MATCHING_PROPERTY, !animate, animate); } } - + /** * Sets whether anti-aliasing is enabled in this editor. This method fires a * property change event of type {@link #ANTIALIAS_PROPERTY}. @@ -2139,11 +2103,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * @see #getAntiAliasingEnabled() */ public void setAntiAliasingEnabled(boolean enabled) { - boolean currentlyEnabled = aaHints != null; - if (enabled != currentlyEnabled) { - if (enabled) { aaHints = RSyntaxUtilities.getDesktopAntiAliasHints(); // If the desktop query method comes up empty, use the standard @@ -2158,7 +2119,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } else { aaHints = null; } - // We must be connected to a screen resource for our graphics // to be non-null. if (isDisplayable()) { @@ -2166,11 +2126,9 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } firePropertyChange(ANTIALIAS_PROPERTY, !enabled, enabled); repaint(); - } - } - + /** * Sets whether or not auto-indent is enabled. This fires a property change * event of type {@link #AUTO_INDENT_PROPERTY}. @@ -2185,9 +2143,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(AUTO_INDENT_PROPERTY, !enabled, enabled); } } - + /** - * Sets whether bracket matching is enabled. This fires a property change event + * Sets whether bracket matching is enabled. This fires a property change + * event * of type {@link #BRACKET_MATCHING_PROPERTY}. * * @param enabled @@ -2201,7 +2160,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(BRACKET_MATCHING_PROPERTY, !enabled, enabled); } } - + /** * Sets whether or not lines containing nothing but whitespace are made into * blank lines when Enter is pressed in them. This method fires a property @@ -2218,10 +2177,12 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(CLEAR_WHITESPACE_LINES_PROPERTY, !enabled, enabled); } } - + /** - * Toggles whether curly braces should be automatically closed when a newline is - * entered after an opening curly brace. Note that this property is only honored + * Toggles whether curly braces should be automatically closed when a + * newline is + * entered after an opening curly brace. Note that this property is only + * honored * for languages that use curly braces to denote code blocks. *

* @@ -2238,10 +2199,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(CLOSE_CURLY_BRACES_PROPERTY, !close, close); } } - + /** * Sets whether closing markup tags should be automatically completed when - * "</" is typed. Note that this property is only honored for + * "</" is typed. Note that this property is only honored + * for * markup languages, such as HTML, XML and PHP. *

* @@ -2258,9 +2220,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(CLOSE_MARKUP_TAGS_PROPERTY, !close, close); } } - + /** - * Sets whether code folding is enabled. Note that only certain languages will + * Sets whether code folding is enabled. Note that only certain languages + * will * support code folding out of the box. Those languages which do not support * folding will ignore this property. *

@@ -2277,20 +2240,17 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(CODE_FOLDING_PROPERTY, !enabled, enabled); } } - + /** * Sets anti-aliasing to whatever the user's desktop value is. * * @see #getAntiAliasingEnabled() */ private void setDefaultAntiAliasingState() { - // Most accurate technique, but not available on all OSes. aaHints = RSyntaxUtilities.getDesktopAntiAliasHints(); if (aaHints == null) { - Map temp = new HashMap(); - // In Java 6+, you can figure out what text AA hint Swing uses for // JComponents... JLabel label = new JLabel(); @@ -2308,7 +2268,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } catch (Exception e) { // Swallow, either Java 1.5, or running in an applet } - // If not running Java 6+, default to AA enabled on Windows where // the software AA is pretty fast, and default (e.g. disabled) on // non-Windows. Note that OS X always uses AA no matter what @@ -2323,20 +2282,16 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } temp.put(RenderingHints.KEY_TEXT_ANTIALIASING, hint); - aaHints = temp; - } - // We must be connected to a screen resource for our graphics // to be non-null. if (isDisplayable()) { refreshFontMetrics(getGraphics2D(getGraphics())); } repaint(); - } - + /** * Sets the document used by this text area. This is overridden so that only * instances of {@link RSyntaxDocument} are accepted; for all others, an @@ -2350,8 +2305,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { @Override public void setDocument(Document document) { if (!(document instanceof RSyntaxDocument)) { - throw new IllegalArgumentException( - "Documents for " + "RSyntaxTextArea must be instances of " + "RSyntaxDocument!"); + throw new IllegalArgumentException("Documents for " + "RSyntaxTextArea must be instances of " + "RSyntaxDocument!"); } if (markOccurrencesSupport != null) { markOccurrencesSupport.clear(); @@ -2362,7 +2316,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { markOccurrencesSupport.doMarkOccurrences(); } } - + /** * Sets whether EOL markers are visible at the end of each line. This method * fires a property change of type {@link #EOL_VISIBLE_PROPERTY}. @@ -2379,10 +2333,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(EOL_VISIBLE_PROPERTY, !visible, visible); } } - + /** * Sets the font used by this text area. Note that if some token styles are - * using a different font, they will not be changed by calling this method. To + * using a different font, they will not be changed by calling this method. + * To * set different fonts on individual token types, use the text area's * SyntaxScheme. * @@ -2392,10 +2347,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { */ @Override public void setFont(Font font) { - Font old = super.getFont(); super.setFont(font); // Do this first. - // Usually programmers keep a single font for all token types, but // may use bold or italic for styling some. SyntaxScheme scheme = getSyntaxScheme(); @@ -2403,7 +2356,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { scheme.changeBaseFont(old, font); calculateLineHeight(); } - // We must be connected to a screen resource for our // graphics to be non-null. if (isDisplayable()) { @@ -2419,9 +2371,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { // So parent JScrollPane will have its scrollbars updated. revalidate(); } - } - + /** * Sets whether fractional font metrics are enabled. This method fires a * property change event of type {@link #FRACTIONAL_FONTMETRICS_PROPERTY}. @@ -2441,7 +2392,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(FRACTIONAL_FONTMETRICS_PROPERTY, !enabled, enabled); } } - + /** * Sets the highlighter used by this text area. * @@ -2453,21 +2404,18 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { */ @Override public void setHighlighter(Highlighter h) { - // Ugh, many RSTA methods assume a non-null highlighter. This is kind // of icky, but most applications never *don't* want a highlighter. // See #189 - BasicTextUI clears highlighter by setting it to null there if (h == null) { h = new RSyntaxTextAreaHighlighter(); } - if (!(h instanceof RSyntaxTextAreaHighlighter)) { - throw new IllegalArgumentException( - "RSyntaxTextArea requires " + "an RSyntaxTextAreaHighlighter for its Highlighter"); + throw new IllegalArgumentException("RSyntaxTextArea requires " + "an RSyntaxTextAreaHighlighter for its Highlighter"); } super.setHighlighter(h); } - + /** * Sets whether "secondary" languages should have their backgrounds colored * differently to visually differentiate them. This feature imposes a fair @@ -2485,7 +2433,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(HIGHLIGHT_SECONDARY_LANGUAGES_PROPERTY, !highlight, highlight); } } - + /** * Sets the color to use when painting hyperlinks. * @@ -2502,9 +2450,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } hyperlinkFG = fg; } - + /** - * Sets whether hyperlinks are enabled for this text area. This method fires a + * Sets whether hyperlinks are enabled for this text area. This method fires + * a * property change event of type {@link #HYPERLINKS_ENABLED_PROPERTY}. * * @param enabled @@ -2518,11 +2467,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(HYPERLINKS_ENABLED_PROPERTY, !enabled, enabled); } } - + public void setLinkGenerator(LinkGenerator generator) { this.linkGenerator = generator; } - + /** * Sets the mask for the key used to toggle whether we are scanning for * hyperlinks with mouse hovering. The default value is @@ -2533,22 +2482,22 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * {@link InputEvent#CTRL_DOWN_MASK}, * {@link InputEvent#ALT_DOWN_MASK}, * {@link InputEvent#SHIFT_DOWN_MASK} or - * {@link InputEvent#META_DOWN_MASK}. For invalid values, behavior is + * {@link InputEvent#META_DOWN_MASK}. For invalid values, + * behavior is * undefined. * @see InputEvent */ public void setLinkScanningMask(int mask) { - mask &= (InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK - | InputEvent.SHIFT_DOWN_MASK); + mask &= (InputEvent.CTRL_DOWN_MASK | InputEvent.META_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK); if (mask == 0) { - throw new IllegalArgumentException( - "mask argument should be " + "some combination of InputEvent.*_DOWN_MASK fields"); + throw new IllegalArgumentException("mask argument should be " + "some combination of InputEvent.*_DOWN_MASK fields"); } linkScanningMask = mask; } - + /** - * Toggles whether "mark occurrences" is enabled. This method fires a property + * Toggles whether "mark occurrences" is enabled. This method fires a + * property * change event of type {@link #MARK_OCCURRENCES_PROPERTY}. * * @param markOccurrences @@ -2571,7 +2520,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + /** * Sets the "mark occurrences" color. * @@ -2586,9 +2535,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { markOccurrencesSupport.setColor(color); } } - + /** - * Sets the delay between when the caret is moved and when "marked occurrences" + * Sets the delay between when the caret is moved and when "marked + * occurrences" * are highlighted. * * @param delay @@ -2607,12 +2557,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + /** * Sets the color used as the background for a matched bracket. * * @param color - * The color to use. If this is null, then no special + * The color to use. If this is null, then no + * special * background is painted behind a matched bracket. * @see #getMatchedBracketBGColor * @see #setMatchedBracketBorderColor @@ -2624,7 +2575,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { repaint(); } } - + /** * Sets the color used as the border for a matched bracket. * @@ -2639,7 +2590,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { repaint(); } } - + /** * Toggles whether a border should be painted around marked occurrences. * @@ -2655,9 +2606,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { markOccurrencesSupport.setPaintBorder(paintBorder); } } - + /** - * Sets whether the bracket at the caret position is painted as a "match" when a + * Sets whether the bracket at the caret position is painted as a "match" + * when a * matched bracket is found. Note that this property does nothing if * {@link #isBracketMatchingEnabled()} returns false. *

@@ -2666,7 +2618,8 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * {@link #PAINT_MATCHED_BRACKET_PAIR_PROPERTY}. * * @param paintPair - * Whether both brackets in a bracket pair should be highlighted when + * Whether both brackets in a bracket pair should be highlighted + * when * bracket matching is enabled. * @see #getPaintMatchedBracketPair() * @see #isBracketMatchingEnabled() @@ -2680,9 +2633,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(PAINT_MATCHED_BRACKET_PAIR_PROPERTY, !paintMatchedBracketPair, paintMatchedBracketPair); } } - + /** - * Toggles whether tab lines are painted. This method fires a property change + * Toggles whether tab lines are painted. This method fires a property + * change * event of type {@link #TAB_LINES_PROPERTY}. * * @param paint @@ -2697,13 +2651,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(TAB_LINES_PROPERTY, !paint, paint); } } - + /** - * Sets the parser delay. This is the delay that must occur between edits for + * Sets the parser delay. This is the delay that must occur between edits + * for * any registered {@link Parser}s to run. * * @param millis - * The new parser delay, in milliseconds. This must be greater than + * The new parser delay, in milliseconds. This must be greater + * than * zero. * @see #getParserDelay() */ @@ -2713,7 +2669,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } parserManager.setDelay(millis); } - + /** * Applications typically have no need to modify this value. *

@@ -2736,13 +2692,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { repaint(); } } - + /** * Sets the background color to use for a secondary language. * * @param index - * The language index. Note that these are 1-based, not 0-based, and - * should be in the range 1-getSecondaryLanguageCount(), + * The language index. Note that these are 1-based, not 0-based, + * and + * should be in the range + * 1-getSecondaryLanguageCount(), * inclusive. * @param color * The new color, or null for none. @@ -2759,7 +2717,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + /** * Sets whether a small popup window should display the text on the line * containing a matched bracket whenever a matched bracket is off- screen. @@ -2771,9 +2729,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { public void setShowMatchedBracketPopup(boolean show) { showMatchedBracketPopup = show; } - + /** - * Sets what type of syntax highlighting this editor is doing. This method fires + * Sets what type of syntax highlighting this editor is doing. This method + * fires * a property change of type {@link #SYNTAX_STYLE_PROPERTY}. * * @param styleKey @@ -2794,13 +2753,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(SYNTAX_STYLE_PROPERTY, oldStyle, styleKey); setActiveLineRange(-1, -1); } - } - + /** - * Sets all of the colors used in syntax highlighting to the colors specified. - * This uses a shallow copy of the color scheme so that multiple text areas can - * share the same color scheme and have their properties changed simultaneously. + * Sets all of the colors used in syntax highlighting to the colors + * specified. + * This uses a shallow copy of the color scheme so that multiple text areas + * can + * share the same color scheme and have their properties changed + * simultaneously. *

* * This method fires a property change event of type @@ -2811,50 +2772,44 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * @see #getSyntaxScheme() */ public void setSyntaxScheme(SyntaxScheme scheme) { - // NOTE: We don't check whether colorScheme is the same as the // current scheme because DecreaseFontSizeAction and // IncreaseFontSizeAction need it this way. // FIXME: Find a way around this. - SyntaxScheme old = this.syntaxScheme; this.syntaxScheme = scheme; - // Recalculate the line height. We do this here instead of in // refreshFontMetrics() as this method is called less often and we // don't need the rendering hints to get the font's height. calculateLineHeight(); - if (isDisplayable()) { refreshFontMetrics(getGraphics2D(getGraphics())); } - // Updates the margin line and "matched bracket" highlight updateMarginLineX(); lastBracketMatchPos = -1; doBracketMatching(); - // Force the current line highlight to be repainted, even though // the caret's location hasn't changed. forceCurrentLineHighlightRepaint(); - // So encompassing JScrollPane will have its scrollbars updated. revalidate(); - firePropertyChange(SYNTAX_SCHEME_PROPERTY, old, this.syntaxScheme); - } - + /** - * If templates are enabled, all currently-known templates are forgotten and all + * If templates are enabled, all currently-known templates are forgotten and + * all * templates are loaded from all files in the specified directory ending in * "*.xml". If templates aren't enabled, nothing happens. * * @param dir * The directory containing files ending in extension * .xml that contain templates to load. - * @return true if the load was successful; false if - * either templates aren't currently enabled or the load failed somehow + * @return true if the load was successful; false + * if + * either templates aren't currently enabled or the load failed + * somehow * (most likely, the directory doesn't exist). * @see #getTemplatesEnabled * @see #setTemplatesEnabled @@ -2873,13 +2828,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } return false; } - + /** * Enables or disables templates. *

* - * Templates are a set of "shorthand identifiers" that you can configure so that - * you only have to type a short identifier (such as "forb") to insert a larger + * Templates are a set of "shorthand identifiers" that you can configure so + * that + * you only have to type a short identifier (such as "forb") to insert a + * larger * amount of code into the document (such as: *

* @@ -2890,10 +2847,13 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { *

* * Templates are a shared resource among all instances of - * RSyntaxTextArea; that is, templates can only be enabled/disabled - * for all text areas globally, not individually, and all text areas have access + * RSyntaxTextArea; that is, templates can only be + * enabled/disabled + * for all text areas globally, not individually, and all text areas have + * access * of the same templates. This should not be an issue; rather, it should be - * beneficial as it promotes uniformity among all text areas in an application. + * beneficial as it promotes uniformity among all text areas in an + * application. *

* * For more flexible boilerplate code insertion, consider using the null, the default (gray) + * The color. If this value is null, the default + * (gray) * is used. * @see #getTabLineColor() * @see #setPaintTabLines(boolean) * @see #getPaintTabLines() */ public void setTabLineColor(Color c) { - if (c == null) { c = Color.gray; } - if (!c.equals(tabLineColor)) { Color old = tabLineColor; tabLineColor = c; @@ -2935,13 +2895,14 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } firePropertyChange(TAB_LINE_COLOR_PROPERTY, old, tabLineColor); } - } - + /** * Sets whether "focusable" tool tips are used instead of standard ones. - * Focusable tool tips are tool tips that the user can click on, resize, copy - * from, and clink links in. This method fires a property change event of type + * Focusable tool tips are tool tips that the user can click on, resize, + * copy + * from, and clink links in. This method fires a property change event of + * type * {@link #FOCUSABLE_TIPS_PROPERTY}. * * @param use @@ -2955,11 +2916,14 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(FOCUSABLE_TIPS_PROPERTY, !use, use); } } - + /** - * Sets whether selected text should use the "selected text color" property (set - * via {@link #setSelectedTextColor(Color)}). This is the typical behavior of - * text components. By default, RSyntaxTextArea does not do this, so that token + * Sets whether selected text should use the "selected text color" property + * (set + * via {@link #setSelectedTextColor(Color)}). This is the typical behavior + * of + * text components. By default, RSyntaxTextArea does not do this, so that + * token * styles are visible even in selected regions of text. This method fires a * property change event of type {@link #USE_SELECTED_TEXT_COLOR_PROPERTY}. * @@ -2974,9 +2938,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(USE_SELECTED_TEXT_COLOR_PROPERTY, !use, use); } } - + /** - * Sets whether whitespace is visible. This method fires a property change of + * Sets whether whitespace is visible. This method fires a property change + * of * type {@link #VISIBLE_WHITESPACE_PROPERTY}. * * @param visible @@ -2991,9 +2956,10 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { firePropertyChange(VISIBLE_WHITESPACE_PROPERTY, !visible, visible); } } - + /** - * Resets the editor state after the user clicks on a hyperlink or releases the + * Resets the editor state after the user clicks on a hyperlink or releases + * the * hyperlink modifier. */ private void stopScanningForLinks() { @@ -3008,7 +2974,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + /** * {@inheritDoc} */ @@ -3024,7 +2990,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { // the start offset to be its prior valid (start > end). ((RSyntaxTextAreaHighlighter) getHighlighter()).clearMarkOccurrencesHighlights(); } - + /** * Returns the token at the specified position in the view. * @@ -3034,43 +3000,43 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { * @see #modelToToken(int) */ /* - * TODO: This is a little inefficient. This should convert view coordinates to - * the underlying token (if any). The way things currently are, we're calling + * TODO: This is a little inefficient. This should convert view coordinates + * to + * the underlying token (if any). The way things currently are, we're + * calling * getTokenListForLine() twice (once in viewToModel() and once here). */ public Token viewToToken(Point p) { return modelToToken(viewToModel(p)); } - + /** - * Renders the text on the line containing the "matched bracket" after a delay. + * Renders the text on the line containing the "matched bracket" after a + * delay. */ private final class MatchedBracketPopupTimer extends Timer implements ActionListener, CaretListener { - + private MatchedBracketPopup popup; private int origDot; private int matchedBracketOffs; - + private MatchedBracketPopupTimer() { super(350, null); addActionListener(this); setRepeats(false); } - + @Override public void actionPerformed(ActionEvent e) { - if (popup != null) { popup.dispose(); } - Window window = SwingUtilities.getWindowAncestor(RSyntaxTextArea.this); popup = new MatchedBracketPopup(window, RSyntaxTextArea.this, matchedBracketOffs); popup.pack(); popup.setVisible(true); - } - + @Override public void caretUpdate(CaretEvent e) { int dot = e.getDot(); @@ -3082,7 +3048,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + /** * Restarts this timer, and stores a new offset to paint. * @@ -3094,28 +3060,27 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { this.matchedBracketOffs = matchedBracketOffs; this.restart(); } - + @Override public void start() { super.start(); addCaretListener(this); } - } - + /** * A timer that animates the "bracket matching" animation. */ private class BracketMatchingTimer extends Timer implements ActionListener { - + private int pulseCount; - + BracketMatchingTimer() { super(20, null); addActionListener(this); setCoalesce(false); } - + @Override public void actionPerformed(ActionEvent e) { if (isBracketMatchingEnabled()) { @@ -3131,14 +3096,14 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } } } - + private void init(Rectangle r) { r.x += 3; r.y += 3; r.width -= 6; r.height -= 6; // So animation can "grow" match } - + @Override public void start() { init(match); @@ -3148,7 +3113,7 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { pulseCount = 0; super.start(); } - + private void updateAndInvalidate(Rectangle r) { if (pulseCount < 5) { r.x--; @@ -3164,21 +3129,20 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { repaint(r.x - 2, r.y - 2, r.width + 5, r.height + 5); } } - } - + /** * Handles hyperlinks. */ private class RSyntaxTextAreaMutableCaretEvent extends RTextAreaMutableCaretEvent { - + private Insets insets; - + protected RSyntaxTextAreaMutableCaretEvent(RTextArea textArea) { super(textArea); insets = new Insets(0, 0, 0, 0); } - + private HyperlinkEvent createHyperlinkEvent() { HyperlinkEvent he = null; if (linkGeneratorResult != null) { @@ -3202,11 +3166,11 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { } return he; } - + private boolean equal(LinkGeneratorResult e1, LinkGeneratorResult e2) { return e1.getSourceOffset() == e2.getSourceOffset(); } - + @Override public void mouseClicked(MouseEvent e) { if (getHyperlinksEnabled() && isScanningForLinks && hoveredOverLinkOffset > -1) { @@ -3217,19 +3181,15 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { stopScanningForLinks(); } } - + @Override public void mouseMoved(MouseEvent e) { - super.mouseMoved(e); - if (!getHyperlinksEnabled()) { return; } - // If our link scanning mask is pressed... if ((e.getModifiersEx() & linkScanningMask) == linkScanningMask) { - // GitHub issue #25 - links identified at "edges" of editor // should not be activated if mouse is in margin insets. insets = getInsets(insets); @@ -3243,7 +3203,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { return; } } - isScanningForLinks = true; Token t = viewToToken(e.getPoint()); if (t != null) { @@ -3292,9 +3251,6 @@ public class RSyntaxTextArea extends RTextArea implements SyntaxConstants { stopScanningForLinks(); } } - } - } - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaDefaultInputMap.java b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaDefaultInputMap.java index 491a850..ead25fd 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaDefaultInputMap.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaDefaultInputMap.java @@ -1,10 +1,8 @@ /* * 10/27/2004 - * * RSyntaxTextAreaDefaultInputMap.java - The default input map for * RSyntaxTextAreas. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -16,13 +14,12 @@ import javax.swing.KeyStroke; import org.fife.ui.rtextarea.RTADefaultInputMap; - /** * The default input map for an RSyntaxTextArea. * Currently, the new key bindings include: *

* * @author Robert Futrell @@ -30,50 +27,51 @@ import org.fife.ui.rtextarea.RTADefaultInputMap; */ @SuppressWarnings({ "checkstyle:linelength" }) public class RSyntaxTextAreaDefaultInputMap extends RTADefaultInputMap { - + /** * Constructs the default input map for an RSyntaxTextArea. */ public RSyntaxTextAreaDefaultInputMap() { - int defaultMod = getDefaultModifier(); - //int ctrl = InputEvent.CTRL_MASK; + // int ctrl = InputEvent.CTRL_MASK; int shift = InputEvent.SHIFT_MASK; - //int alt = InputEvent.ALT_MASK; - int defaultShift = defaultMod|shift; - - put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, shift), RSyntaxTextAreaEditorKit.rstaDecreaseIndentAction); - put(KeyStroke.getKeyStroke('}'), RSyntaxTextAreaEditorKit.rstaCloseCurlyBraceAction); - - put(KeyStroke.getKeyStroke('/'), RSyntaxTextAreaEditorKit.rstaCloseMarkupTagAction); + // int alt = InputEvent.ALT_MASK; + int defaultShift = defaultMod | shift; + put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, shift), RSyntaxTextAreaEditorKit.rstaDecreaseIndentAction); + put(KeyStroke.getKeyStroke('}'), RSyntaxTextAreaEditorKit.rstaCloseCurlyBraceAction); + put(KeyStroke.getKeyStroke('/'), RSyntaxTextAreaEditorKit.rstaCloseMarkupTagAction); int os = RSyntaxUtilities.getOS(); - if (os==RSyntaxUtilities.OS_WINDOWS || os==RSyntaxUtilities.OS_MAC_OSX) { - // *nix causes trouble with CloseMarkupTagAction and ToggleCommentAction. - // It triggers both KEY_PRESSED ctrl+'/' and KEY_TYPED '/' events when the - // user presses ctrl+'/', but Windows and OS X do not. If we try to "move" - // the KEY_TYPED event for '/' to KEY_PRESSED, it'll work for Linux boxes - // with QWERTY keyboard layouts, but non-QUERTY users won't be able to type - // a '/' character at all then (!). Rather than try to hack together a - // solution by trying to detect the IM locale and do different things for + if (os == RSyntaxUtilities.OS_WINDOWS || os == RSyntaxUtilities.OS_MAC_OSX) { + // *nix causes trouble with CloseMarkupTagAction and + // ToggleCommentAction. + // It triggers both KEY_PRESSED ctrl+'/' and KEY_TYPED '/' events + // when the + // user presses ctrl+'/', but Windows and OS X do not. If we try to + // "move" + // the KEY_TYPED event for '/' to KEY_PRESSED, it'll work for Linux + // boxes + // with QWERTY keyboard layouts, but non-QUERTY users won't be able + // to type + // a '/' character at all then (!). Rather than try to hack together + // a + // solution by trying to detect the IM locale and do different + // things for // different OSes & keyboard layouts, we do the simplest thing and - // (unfortunately) don't have a ToggleCommentAction for *nix out-of-the-box. + // (unfortunately) don't have a ToggleCommentAction for *nix + // out-of-the-box. // Applications can add one easily enough if they want one. - put(KeyStroke.getKeyStroke(KeyEvent.VK_SLASH, defaultMod), RSyntaxTextAreaEditorKit.rstaToggleCommentAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_SLASH, defaultMod), RSyntaxTextAreaEditorKit.rstaToggleCommentAction); } - - put(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, defaultMod), RSyntaxTextAreaEditorKit.rstaGoToMatchingBracketAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, defaultMod), RSyntaxTextAreaEditorKit.rstaCollapseFoldAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, defaultMod), RSyntaxTextAreaEditorKit.rstaExpandFoldAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DIVIDE, defaultMod), RSyntaxTextAreaEditorKit.rstaCollapseAllFoldsAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_MULTIPLY, defaultMod), RSyntaxTextAreaEditorKit.rstaExpandAllFoldsAction); - - // NOTE: no modifiers => mapped to keyTyped. If we had "0" as a second + put(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, defaultMod), RSyntaxTextAreaEditorKit.rstaGoToMatchingBracketAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, defaultMod), RSyntaxTextAreaEditorKit.rstaCollapseFoldAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, defaultMod), RSyntaxTextAreaEditorKit.rstaExpandFoldAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DIVIDE, defaultMod), RSyntaxTextAreaEditorKit.rstaCollapseAllFoldsAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_MULTIPLY, defaultMod), RSyntaxTextAreaEditorKit.rstaExpandAllFoldsAction); + // NOTE: no modifiers => mapped to keyTyped. If we had "0" as a second // second parameter, we'd get the template action (keyPressed) AND the // default space action (keyTyped). - //put(KeyStroke.getKeyStroke(' '), RSyntaxTextAreaEditorKit.rstaPossiblyInsertTemplateAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, defaultShift), RSyntaxTextAreaEditorKit.rstaPossiblyInsertTemplateAction); - + // put(KeyStroke.getKeyStroke(' '), + // RSyntaxTextAreaEditorKit.rstaPossiblyInsertTemplateAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, defaultShift), RSyntaxTextAreaEditorKit.rstaPossiblyInsertTemplateAction); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaEditorKit.java b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaEditorKit.java index 233d92c..aae9908 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaEditorKit.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaEditorKit.java @@ -1,9 +1,7 @@ /* * 08/29/2004 - * * RSyntaxTextAreaEditorKit.java - The editor kit used by RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -37,30 +35,29 @@ import org.fife.ui.rtextarea.RTextArea; import org.fife.ui.rtextarea.RTextAreaEditorKit; import org.fife.ui.rtextarea.RecordableTextAction; - /** * An extension of RTextAreaEditorKit that adds functionality for - * programming-specific stuff. There are currently subclasses to handle: + * programming-specific stuff. There are currently subclasses to handle: * *
    - *
  • Toggling code folds.
  • - *
  • Aligning "closing" curly braces with their matches, if the current - * programming language uses curly braces to identify code blocks.
  • - *
  • Copying the current selection as RTF.
  • - *
  • Block indentation (increasing the indent of one or multiple lines)
  • - *
  • Block un-indentation (decreasing the indent of one or multiple lines) - *
  • - *
  • Inserting a "code template" when a configurable key (e.g. a space) is - * pressed
  • - *
  • Decreasing the point size of all fonts in the text area
  • - *
  • Increasing the point size of all fonts in the text area
  • - *
  • Moving the caret to the "matching bracket" of the one at the current - * caret position
  • - *
  • Toggling whether the currently selected lines are commented out.
  • - *
  • Better selection of "words" on mouse double-clicks for programming - * languages.
  • - *
  • Better keyboard navigation via Ctrl+arrow keys for programming - * languages.
  • + *
  • Toggling code folds.
  • + *
  • Aligning "closing" curly braces with their matches, if the current + * programming language uses curly braces to identify code blocks.
  • + *
  • Copying the current selection as RTF.
  • + *
  • Block indentation (increasing the indent of one or multiple lines)
  • + *
  • Block un-indentation (decreasing the indent of one or multiple lines) + *
  • + *
  • Inserting a "code template" when a configurable key (e.g. a space) is + * pressed
  • + *
  • Decreasing the point size of all fonts in the text area
  • + *
  • Increasing the point size of all fonts in the text area
  • + *
  • Moving the caret to the "matching bracket" of the one at the current + * caret position
  • + *
  • Toggling whether the currently selected lines are commented out.
  • + *
  • Better selection of "words" on mouse double-clicks for programming + * languages.
  • + *
  • Better keyboard navigation via Ctrl+arrow keys for programming + * languages.
  • *
* * @author Robert Futrell @@ -68,70 +65,45 @@ import org.fife.ui.rtextarea.RecordableTextAction; */ @SuppressWarnings({ "checkstyle:constantname" }) public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { - + private static final long serialVersionUID = 1L; - - public static final String rstaCloseCurlyBraceAction = "RSTA.CloseCurlyBraceAction"; - public static final String rstaCloseMarkupTagAction = "RSTA.CloseMarkupTagAction"; - public static final String rstaCollapseAllFoldsAction = "RSTA.CollapseAllFoldsAction"; + public static final String rstaCloseCurlyBraceAction = "RSTA.CloseCurlyBraceAction"; + public static final String rstaCloseMarkupTagAction = "RSTA.CloseMarkupTagAction"; + public static final String rstaCollapseAllFoldsAction = "RSTA.CollapseAllFoldsAction"; public static final String rstaCollapseAllCommentFoldsAction = "RSTA.CollapseAllCommentFoldsAction"; - public static final String rstaCollapseFoldAction = "RSTA.CollapseFoldAction"; - public static final String rstaCopyAsRtfAction = "RSTA.CopyAsRtfAction"; - public static final String rstaDecreaseIndentAction = "RSTA.DecreaseIndentAction"; - public static final String rstaExpandAllFoldsAction = "RSTA.ExpandAllFoldsAction"; - public static final String rstaExpandFoldAction = "RSTA.ExpandFoldAction"; - public static final String rstaGoToMatchingBracketAction = "RSTA.GoToMatchingBracketAction"; + public static final String rstaCollapseFoldAction = "RSTA.CollapseFoldAction"; + public static final String rstaCopyAsRtfAction = "RSTA.CopyAsRtfAction"; + public static final String rstaDecreaseIndentAction = "RSTA.DecreaseIndentAction"; + public static final String rstaExpandAllFoldsAction = "RSTA.ExpandAllFoldsAction"; + public static final String rstaExpandFoldAction = "RSTA.ExpandFoldAction"; + public static final String rstaGoToMatchingBracketAction = "RSTA.GoToMatchingBracketAction"; public static final String rstaPossiblyInsertTemplateAction = "RSTA.TemplateAction"; - public static final String rstaToggleCommentAction = "RSTA.ToggleCommentAction"; - public static final String rstaToggleCurrentFoldAction = "RSTA.ToggleCurrentFoldAction"; - - private static final String MSG = "org.fife.ui.rsyntaxtextarea.RSyntaxTextArea"; + public static final String rstaToggleCommentAction = "RSTA.ToggleCommentAction"; + public static final String rstaToggleCurrentFoldAction = "RSTA.ToggleCurrentFoldAction"; + private static final String MSG = "org.fife.ui.rsyntaxtextarea.RSyntaxTextArea"; private static final ResourceBundle msg = ResourceBundle.getBundle(MSG); - - /** * The actions that RSyntaxTextAreaEditorKit adds to those of * RTextAreaEditorKit. */ - private static final Action[] defaultActions = { - new CloseCurlyBraceAction(), - new CloseMarkupTagAction(), - new BeginWordAction(beginWordAction, false), - new BeginWordAction(selectionBeginWordAction, true), - new ChangeFoldStateAction(rstaCollapseFoldAction, true), - new ChangeFoldStateAction(rstaExpandFoldAction, false), - new CollapseAllFoldsAction(), - new CopyAsRtfAction(), - //new DecreaseFontSizeAction(), - new DecreaseIndentAction(), - new DeletePrevWordAction(), - new DumbCompleteWordAction(), - new EndAction(endAction, false), - new EndAction(selectionEndAction, true), - new EndWordAction(endWordAction, false), - new EndWordAction(endWordAction, true), - new ExpandAllFoldsAction(), - new GoToMatchingBracketAction(), - new InsertBreakAction(), - //new IncreaseFontSizeAction(), - new InsertTabAction(), - new NextWordAction(nextWordAction, false), - new NextWordAction(selectionNextWordAction, true), - new PossiblyInsertTemplateAction(), - new PreviousWordAction(previousWordAction, false), - new PreviousWordAction(selectionPreviousWordAction, true), - new SelectWordAction(), - new ToggleCommentAction(), - }; - - + private static final Action[] defaultActions = { new CloseCurlyBraceAction(), new CloseMarkupTagAction(), + new BeginWordAction(beginWordAction, false), new BeginWordAction(selectionBeginWordAction, true), + new ChangeFoldStateAction(rstaCollapseFoldAction, true), new ChangeFoldStateAction(rstaExpandFoldAction, false), + new CollapseAllFoldsAction(), new CopyAsRtfAction(), + // new DecreaseFontSizeAction(), + new DecreaseIndentAction(), new DeletePrevWordAction(), new DumbCompleteWordAction(), new EndAction(endAction, false), + new EndAction(selectionEndAction, true), new EndWordAction(endWordAction, false), new EndWordAction(endWordAction, true), + new ExpandAllFoldsAction(), new GoToMatchingBracketAction(), new InsertBreakAction(), + // new IncreaseFontSizeAction(), + new InsertTabAction(), new NextWordAction(nextWordAction, false), new NextWordAction(selectionNextWordAction, true), + new PossiblyInsertTemplateAction(), new PreviousWordAction(previousWordAction, false), + new PreviousWordAction(selectionPreviousWordAction, true), new SelectWordAction(), new ToggleCommentAction(), }; + /** * Constructor. */ - public RSyntaxTextAreaEditorKit() { - } - - + public RSyntaxTextAreaEditorKit() {} + /** * Returns the default document used by RSyntaxTextAreas. * @@ -141,20 +113,19 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { public Document createDefaultDocument() { return new RSyntaxDocument(SyntaxConstants.SYNTAX_STYLE_NONE); } - - + /** * Overridden to return a row header that is aware of folding. * - * @param textArea The text area. + * @param textArea + * The text area. * @return The icon row header. */ @Override public IconRowHeader createIconRowHeader(RTextArea textArea) { - return new FoldingAwareIconRowHeader((RSyntaxTextArea)textArea); + return new FoldingAwareIconRowHeader((RSyntaxTextArea) textArea); } - - + /** * Fetches the set of commands that can be used * on a text component that is using a model and @@ -164,445 +135,375 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { */ @Override public Action[] getActions() { - return TextAction.augmentList(super.getActions(), - RSyntaxTextAreaEditorKit.defaultActions); + return TextAction.augmentList(super.getActions(), RSyntaxTextAreaEditorKit.defaultActions); } - - + /** - * Returns localized text for an action. There's definitely a better place + * Returns localized text for an action. There's definitely a better place * for this functionality. * - * @param key The key into the action resource bundle. + * @param key + * The key into the action resource bundle. * @return The localized text. */ public static String getString(String key) { return msg.getString(key); } - - + /** - * Positions the caret at the beginning of the word. This class is here + * Positions the caret at the beginning of the word. This class is here * to better handle finding the "beginning of the word" for programming * languages. */ - protected static class BeginWordAction - extends RTextAreaEditorKit.BeginWordAction { - + protected static class BeginWordAction extends RTextAreaEditorKit.BeginWordAction { + private Segment seg; - + protected BeginWordAction(String name, boolean select) { super(name, select); seg = new Segment(); } - + @Override - protected int getWordStart(RTextArea textArea, int offs) - throws BadLocationException { - - if (offs==0) { + protected int getWordStart(RTextArea textArea, int offs) throws BadLocationException { + if (offs == 0) { return offs; } - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); int line = textArea.getLineOfOffset(offs); int start = textArea.getLineStartOffset(line); - if (offs==start) { + if (offs == start) { return start; } int end = textArea.getLineEndOffset(line); - if (line!=textArea.getLineCount()-1) { + if (line != textArea.getLineCount() - 1) { end--; } - doc.getText(start, end-start, seg); - + doc.getText(start, end - start, seg); // Determine the "type" of char at offs - lower case, upper case, - // whitespace or other. We take special care here as we're starting + // whitespace or other. We take special care here as we're starting // in the middle of the Segment to check whether we're already at // the "beginning" of a word. - int firstIndex = seg.getBeginIndex() + (offs-start) - 1; + int firstIndex = seg.getBeginIndex() + (offs - start) - 1; seg.setIndex(firstIndex); char ch = seg.current(); - char nextCh = offs==end ? 0 : seg.array[seg.getIndex() + 1]; - + char nextCh = offs == end ? 0 : seg.array[seg.getIndex() + 1]; // The "word" is a group of letters and/or digits int languageIndex = 0; // TODO if (doc.isIdentifierChar(languageIndex, ch)) { - if (offs!=end && !doc.isIdentifierChar(languageIndex, nextCh)) { + if (offs != end && !doc.isIdentifierChar(languageIndex, nextCh)) { return offs; } do { ch = seg.previous(); } while (doc.isIdentifierChar(languageIndex, ch) && ch != CharacterIterator.DONE); } - // The "word" is whitespace else if (Character.isWhitespace(ch)) { - if (offs!=end && !Character.isWhitespace(nextCh)) { + if (offs != end && !Character.isWhitespace(nextCh)) { return offs; } do { ch = seg.previous(); } while (Character.isWhitespace(ch)); } - // Otherwise, the "word" a single "something else" char (operator, // etc.). - - offs -= firstIndex - seg.getIndex() + 1;//seg.getEndIndex() - seg.getIndex(); - if (ch!=Segment.DONE && nextCh!='\n') { + offs -= firstIndex - seg.getIndex() + 1;// seg.getEndIndex() - + // seg.getIndex(); + if (ch != Segment.DONE && nextCh != '\n') { offs++; } - return offs; - } - } - - + /** * Expands or collapses the nearest fold. */ public static class ChangeFoldStateAction extends FoldRelatedAction { - + private boolean collapse; - + public ChangeFoldStateAction(String name, boolean collapse) { super(name); this.collapse = collapse; } - - public ChangeFoldStateAction(String name, Icon icon, - String desc, Integer mnemonic, KeyStroke accelerator) { + + public ChangeFoldStateAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { Fold fold = getClosestFold(rsta); - if (fold!=null) { + if (fold != null) { fold.setCollapsed(collapse); } RSyntaxUtilities.possiblyRepaintGutter(textArea); - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(rsta); } } - + @Override public final String getMacroID() { return getName(); } - } - - + /** * Action that (optionally) aligns a closing curly brace with the line * containing its matching opening curly brace. */ public static class CloseCurlyBraceAction extends RecordableTextAction { - + private static final long serialVersionUID = 1L; - private Point bracketInfo; private Segment seg; - + public CloseCurlyBraceAction() { super(rstaCloseCurlyBraceAction); seg = new Segment(); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; - RSyntaxDocument doc = (RSyntaxDocument)rsta.getDocument(); - + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; + RSyntaxDocument doc = (RSyntaxDocument) rsta.getDocument(); int languageIndex = 0; int dot = textArea.getCaretPosition(); - if (dot>0) { - Token t = RSyntaxUtilities.getTokenAtOffset(rsta, dot-1); - languageIndex = t==null ? 0 : t.getLanguageIndex(); + if (dot > 0) { + Token t = RSyntaxUtilities.getTokenAtOffset(rsta, dot - 1); + languageIndex = t == null ? 0 : t.getLanguageIndex(); } - boolean alignCurlyBraces = rsta.isAutoIndentEnabled() && - doc.getCurlyBracesDenoteCodeBlocks(languageIndex); - + boolean alignCurlyBraces = rsta.isAutoIndentEnabled() && doc.getCurlyBracesDenoteCodeBlocks(languageIndex); if (alignCurlyBraces) { textArea.beginAtomicEdit(); } - try { - textArea.replaceSelection("}"); - // If the user wants to align curly braces... if (alignCurlyBraces) { - Element root = doc.getDefaultRootElement(); dot = rsta.getCaretPosition() - 1; // Start before '}' int line = root.getElementIndex(dot); Element elem = root.getElement(line); int start = elem.getStartOffset(); - // Get the current line's text up to the '}' entered. try { - doc.getText(start, dot-start, seg); + doc.getText(start, dot - start, seg); } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); return; } - // Only attempt to align if there's only whitespace up to // the '}' entered. - for (int i=0; i-1) { + // whitespace for the '}' to match that of the '{' char's + // line. + bracketInfo = RSyntaxUtilities.getMatchingBracketPosition(rsta, bracketInfo); + if (bracketInfo.y > -1) { try { - String ws = RSyntaxUtilities.getLeadingWhitespace( - doc, bracketInfo.y); + String ws = RSyntaxUtilities.getLeadingWhitespace(doc, bracketInfo.y); rsta.replaceRange(ws, start, dot); } catch (BadLocationException ble) { ble.printStackTrace(); return; } } - } - } finally { if (alignCurlyBraces) { textArea.endAtomicEdit(); } } - } - + @Override public final String getMacroID() { return rstaCloseCurlyBraceAction; } - } - - + /** * (Optionally) completes a closing markup tag. */ public static class CloseMarkupTagAction extends RecordableTextAction { - + private static final long serialVersionUID = 1L; - + public CloseMarkupTagAction() { super(rstaCloseMarkupTagAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - if (!textArea.isEditable() || !textArea.isEnabled()) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; - RSyntaxDocument doc = (RSyntaxDocument)rsta.getDocument(); - + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; + RSyntaxDocument doc = (RSyntaxDocument) rsta.getDocument(); Caret c = rsta.getCaret(); - boolean selection = c.getDot()!=c.getMark(); + boolean selection = c.getDot() != c.getMark(); rsta.replaceSelection("/"); - // Don't automatically complete a tag if there was a selection int dot = c.getDot(); - - if (doc.getLanguageIsMarkup() && - doc.getCompleteMarkupCloseTags() && - !selection && rsta.getCloseMarkupTags() && dot>1) { - + if (doc.getLanguageIsMarkup() && doc.getCompleteMarkupCloseTags() && !selection && rsta.getCloseMarkupTags() && dot > 1) { try { - // Check actual char before token type, since it's quicker - char ch = doc.charAt(dot-2); - if (ch=='<' || ch=='[') { - - Token t = doc.getTokenListForLine( - rsta.getCaretLineNumber()); - t = RSyntaxUtilities.getTokenAtOffset(t, dot-1); - if (t!=null && t.getType()==Token.MARKUP_TAG_DELIMITER) { - //System.out.println("Huzzah - closing tag!"); + char ch = doc.charAt(dot - 2); + if (ch == '<' || ch == '[') { + Token t = doc.getTokenListForLine(rsta.getCaretLineNumber()); + t = RSyntaxUtilities.getTokenAtOffset(t, dot - 1); + if (t != null && t.getType() == Token.MARKUP_TAG_DELIMITER) { + // System.out.println("Huzzah - closing tag!"); String tagName = discoverTagName(doc, dot); - if (tagName!=null) { - rsta.replaceSelection(tagName + (char)(ch+2)); + if (tagName != null) { + rsta.replaceSelection(tagName + (char) (ch + 2)); } } - } - } catch (BadLocationException ble) { // Never happens UIManager.getLookAndFeel().provideErrorFeedback(rsta); ble.printStackTrace(); } - } - } - + /** - * Discovers the name of the tag being closed. Assumes standard + * Discovers the name of the tag being closed. Assumes standard * SGML-style markup tags. * - * @param doc The document to parse. - * @param dot The location of the caret. This should be right after - * the start of a closing tag token (e.g. "</" - * or "[" in the case of BBCode). + * @param doc + * The document to parse. + * @param dot + * The location of the caret. This should be right after + * the start of a closing tag token (e.g. + * "</" + * or "[" in the case of BBCode). * @return The name of the tag to close, or null if it * could not be determined. */ private String discoverTagName(RSyntaxDocument doc, int dot) { - Stack stack = new Stack(); - Element root = doc.getDefaultRootElement(); int curLine = root.getElementIndex(dot); - - for (int i=0; i<=curLine; i++) { - + for (int i = 0; i <= curLine; i++) { Token t = doc.getTokenListForLine(i); - while (t!=null && t.isPaintable()) { - - if (t.getType()==Token.MARKUP_TAG_DELIMITER) { + while (t != null && t.isPaintable()) { + if (t.getType() == Token.MARKUP_TAG_DELIMITER) { if (t.isSingleChar('<') || t.isSingleChar('[')) { t = t.getNextToken(); - while (t!=null && t.isPaintable()) { - if (t.getType()==Token.MARKUP_TAG_NAME || - // Being lenient here and also checking - // for attributes, in case they - // (incorrectly) have whitespace between - // the '<' char and the element name. - t.getType()==Token.MARKUP_TAG_ATTRIBUTE) { + while (t != null && t.isPaintable()) { + if (t.getType() == Token.MARKUP_TAG_NAME || + // Being lenient here and also checking + // for attributes, in case they + // (incorrectly) have whitespace between + // the '<' char and the element name. + t.getType() == Token.MARKUP_TAG_ATTRIBUTE) { stack.push(t.getLexeme()); break; } t = t.getNextToken(); } - } - else if (t.length()==2 && t.charAt(0)=='/' && - (t.charAt(1)=='>' || - t.charAt(1)==']')) { + } else if (t.length() == 2 && t.charAt(0) == '/' && (t.charAt(1) == '>' || t.charAt(1) == ']')) { if (!stack.isEmpty()) { // Always true for valid XML stack.pop(); } - } - else if (t.length()==2 && - (t.charAt(0)=='<' || t.charAt(0)=='[') && - t.charAt(1)=='/') { + } else if (t.length() == 2 && (t.charAt(0) == '<' || t.charAt(0) == '[') && t.charAt(1) == '/') { String tagName = null; if (!stack.isEmpty()) { // Always true for valid XML tagName = stack.pop(); } - if (t.getEndOffset()>=dot) { + if (t.getEndOffset() >= dot) { return tagName; } } } - - t = t==null ? null : t.getNextToken(); - + t = t == null ? null : t.getNextToken(); } - } - return null; // Should never happen - } - + @Override public String getMacroID() { return getName(); } - } - - + /** * Collapses all comment folds. */ - public static class CollapseAllCommentFoldsAction extends FoldRelatedAction{ - + public static class CollapseAllCommentFoldsAction extends FoldRelatedAction { + private static final long serialVersionUID = 1L; - + public CollapseAllCommentFoldsAction() { super(rstaCollapseAllCommentFoldsAction); setProperties(msg, "Action.CollapseCommentFolds"); } - - public CollapseAllCommentFoldsAction(String name, Icon icon, - String desc, Integer mnemonic, KeyStroke accelerator) { + + public CollapseAllCommentFoldsAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { FoldCollapser collapser = new FoldCollapser(); collapser.collapseFolds(rsta.getFoldManager()); RSyntaxUtilities.possiblyRepaintGutter(textArea); - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(rsta); } } - + @Override public final String getMacroID() { return rstaCollapseAllCommentFoldsAction; } - } - - + /** * Collapses all folds. */ public static class CollapseAllFoldsAction extends FoldRelatedAction { - + private static final long serialVersionUID = 1L; - + public CollapseAllFoldsAction() { this(false); } - + public CollapseAllFoldsAction(boolean localizedName) { super(rstaCollapseAllFoldsAction); if (localizedName) { setProperties(msg, "Action.CollapseAllFolds"); } } - - public CollapseAllFoldsAction(String name, Icon icon, - String desc, Integer mnemonic, KeyStroke accelerator) { + + public CollapseAllFoldsAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { FoldCollapser collapser = new FoldCollapser() { + @Override public boolean getShouldCollapse(Fold fold) { return true; @@ -610,94 +511,82 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { }; collapser.collapseFolds(rsta.getFoldManager()); RSyntaxUtilities.possiblyRepaintGutter(textArea); - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(rsta); } } - + @Override public final String getMacroID() { return rstaCollapseAllFoldsAction; } - } - - + /** * Action for copying text as RTF. */ public static class CopyAsRtfAction extends RecordableTextAction { - + private static final long serialVersionUID = 1L; - + public CopyAsRtfAction() { super(rstaCopyAsRtfAction); } - - public CopyAsRtfAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public CopyAsRtfAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - ((RSyntaxTextArea)textArea).copyAsRtf(); + ((RSyntaxTextArea) textArea).copyAsRtf(); textArea.requestFocusInWindow(); } - + @Override public final String getMacroID() { return getName(); } - } - - + /** * Action for decreasing the font size of all fonts in the text area. */ - public static class DecreaseFontSizeAction - extends RTextAreaEditorKit.DecreaseFontSizeAction { - + public static class DecreaseFontSizeAction extends RTextAreaEditorKit.DecreaseFontSizeAction { + private static final long serialVersionUID = 1L; - + public DecreaseFontSizeAction() { super(); } - - public DecreaseFontSizeAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public DecreaseFontSizeAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; SyntaxScheme scheme = rsta.getSyntaxScheme(); - // All we need to do is update all of the fonts in syntax // schemes, then call setSyntaxHighlightingColorScheme with the - // same scheme already being used. This relies on the fact that + // same scheme already being used. This relies on the fact that // that method does not check whether the new scheme is different // from the old scheme before updating. - boolean changed = false; int count = scheme.getStyleCount(); - for (int i=0; i=MINIMUM_SIZE) { + if (newSize >= MINIMUM_SIZE) { // Shrink by decreaseAmount. ss.font = font.deriveFont(newSize); changed = true; - } - else if (oldSize>MINIMUM_SIZE) { + } else if (oldSize > MINIMUM_SIZE) { // Can't shrink by full decreaseAmount, but // can shrink a little bit. ss.font = font.deriveFont(MINIMUM_SIZE); @@ -706,30 +595,27 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { } } } - // Do the text area's font also. Font font = rsta.getFont(); float oldSize = font.getSize2D(); float newSize = oldSize - decreaseAmount; - if (newSize>=MINIMUM_SIZE) { + if (newSize >= MINIMUM_SIZE) { // Shrink by decreaseAmount. rsta.setFont(font.deriveFont(newSize)); changed = true; - } - else if (oldSize>MINIMUM_SIZE) { + } else if (oldSize > MINIMUM_SIZE) { // Can't shrink by full decreaseAmount, but // can shrink a little bit. rsta.setFont(font.deriveFont(MINIMUM_SIZE)); changed = true; } - - // If we updated at least one font, update the screen. If + // If we updated at least one font, update the screen. If // all of the fonts were already the minimum size, beep. if (changed) { rsta.setSyntaxScheme(scheme); - // NOTE: This is a hack to get an encompassing + // NOTE: This is a hack to get an encompassing // RTextScrollPane to repaint its line numbers to account - // for a change in line height due to a font change. I'm + // for a change in line height due to a font change. I'm // not sure why we need to do this here but not when we // change the syntax highlighting color scheme via the // Options dialog... setSyntaxHighlightingColorScheme() @@ -742,43 +628,36 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { parent.repaint(); } } - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(rsta); } - } - } - - + /** * Action for when un-indenting lines (either the current line if there is * selection, or all selected lines if there is one). */ public static class DecreaseIndentAction extends RecordableTextAction { - + private static final long serialVersionUID = 1L; - private Segment s; - + public DecreaseIndentAction() { this(rstaDecreaseIndentAction); } - + public DecreaseIndentAction(String name) { super(name); s = new Segment(); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - if (!textArea.isEditable() || !textArea.isEnabled()) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - Document document = textArea.getDocument(); Element map = document.getDefaultRootElement(); Caret c = textArea.getCaret(); @@ -786,10 +665,9 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { int mark = c.getMark(); int line1 = map.getElementIndex(dot); int tabSize = textArea.getTabSize(); - // If there is a selection, indent all lines in the selection. // Otherwise, indent the line the caret is on. - if (dot!=mark) { + if (dot != mark) { // Note that we cheaply reuse variables here, so don't // take their names to mean what they are. int line2 = map.getElementIndex(mark); @@ -798,47 +676,43 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { Element elem; textArea.beginAtomicEdit(); try { - for (line1=dot; line1i) { + end = i + s.count; + if (end > i) { // If the first character is a tab, remove it. - if (s.array[i]=='\t') { + if (s.array[i] == '\t') { doc.remove(start, 1); } - // Otherwise, see if the first character is a space. If it + // Otherwise, see if the first character is a space. If it // is, remove all contiguous whitespaces at the beginning of // this line, up to the tab size. - else if (s.array[i]==' ') { + else if (s.array[i] == ' ') { i++; int toRemove = 1; - while (i previous word is on previous line + } else { // offs == start => previous word is on previous line if (line == 0) { return -1; } elem = root.getElement(--line); offs = elem.getEndOffset() - 1; } - int prevWordStart = getPreviousWordStartInLine(doc, elem, offs); while (prevWordStart == -1 && line > 0) { line--; elem = root.getElement(line); - prevWordStart = getPreviousWordStartInLine(doc, elem, - elem.getEndOffset()); + prevWordStart = getPreviousWordStartInLine(doc, elem, elem.getEndOffset()); } - return prevWordStart; - } - - private int getPreviousWordStartInLine(RSyntaxDocument doc, - Element elem, int offs) throws BadLocationException { - + + private int getPreviousWordStartInLine(RSyntaxDocument doc, Element elem, int offs) throws BadLocationException { int start = elem.getStartOffset(); int cur = offs; - // Skip any whitespace or non-word chars while (cur >= start) { char ch = doc.charAt(cur); @@ -1017,21 +864,16 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { // Empty line or nothing but whitespace/non-word chars return -1; } - return getWordStartImpl(doc, elem, cur); - } - + @Override - protected int getWordEnd(RTextArea textArea, int offs) - throws BadLocationException { - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + protected int getWordEnd(RTextArea textArea, int offs) throws BadLocationException { + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); Element root = doc.getDefaultRootElement(); int line = root.getElementIndex(offs); Element elem = root.getElement(line); int end = elem.getEndOffset() - 1; - int wordEnd = offs; while (wordEnd <= end) { if (!isIdentifierChar(doc.charAt(wordEnd))) { @@ -1039,26 +881,20 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { } wordEnd++; } - return wordEnd; - } - + @Override - protected int getWordStart(RTextArea textArea, int offs) - throws BadLocationException { - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + protected int getWordStart(RTextArea textArea, int offs) throws BadLocationException { + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); Element root = doc.getDefaultRootElement(); int line = root.getElementIndex(offs); Element elem = root.getElement(line); return getWordStartImpl(doc, elem, offs); } - - private static int getWordStartImpl(RSyntaxDocument doc, - Element elem, int offs) throws BadLocationException { - + + private static int getWordStartImpl(RSyntaxDocument doc, Element elem, int offs) throws BadLocationException { int start = elem.getStartOffset(); - int wordStart = offs; while (wordStart >= start) { char ch = doc.charAt(wordStart); @@ -1068,291 +904,253 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { } wordStart--; } - - return wordStart==offs ? offs : wordStart + 1; - + return wordStart == offs ? offs : wordStart + 1; } - + /** * Overridden to not suggest word completions if the text right before * the caret contains non-word characters, such as '/' or '%'. * - * @param prefix The prefix characters before the caret. + * @param prefix + * The prefix characters before the caret. * @return Whether the prefix could be part of a "word" in the context * of the text area's current content. */ @Override protected boolean isAcceptablePrefix(String prefix) { - return prefix.length() > 0 && - isIdentifierChar(prefix.charAt(prefix.length()-1)); + return prefix.length() > 0 && isIdentifierChar(prefix.charAt(prefix.length() - 1)); } - + /** * Returns whether the specified character should be considered part * of an identifier. * - * @param ch The character. + * @param ch + * The character. * @return Whether the character is part of an identifier. */ private static boolean isIdentifierChar(char ch) { - //return doc.isIdentifierChar(languageIndex, ch); + // return doc.isIdentifierChar(languageIndex, ch); return Character.isLetterOrDigit(ch) || ch == '_' || ch == '$'; } - } - - + /** - * Positions the caret at the end of the word. This class is here to + * Positions the caret at the end of the word. This class is here to * better handle finding the "end of the word" in programming languages. */ - protected static class EndWordAction - extends RTextAreaEditorKit.EndWordAction { - - private Segment seg; - + protected static class EndWordAction extends RTextAreaEditorKit.EndWordAction { + + private Segment seg; + protected EndWordAction(String name, boolean select) { super(name, select); seg = new Segment(); } - + @Override - protected int getWordEnd(RTextArea textArea, int offs) - throws BadLocationException { - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); - if (offs==doc.getLength()) { + protected int getWordEnd(RTextArea textArea, int offs) throws BadLocationException { + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); + if (offs == doc.getLength()) { return offs; } - int line = textArea.getLineOfOffset(offs); int end = textArea.getLineEndOffset(line); - if (line!=textArea.getLineCount()-1) { + if (line != textArea.getLineCount() - 1) { end--; // Hide newline } - if (offs==end) { + if (offs == end) { return end; } - doc.getText(offs, end-offs, seg); - + doc.getText(offs, end - offs, seg); // Determine the "type" of char at offs - letter/digit, // whitespace or other char ch = seg.first(); - // The "word" is a group of letters and/or digits int languageIndex = 0; // TODO if (doc.isIdentifierChar(languageIndex, ch)) { do { ch = seg.next(); - } while (doc.isIdentifierChar(languageIndex, ch) && - ch != CharacterIterator.DONE); + } while (doc.isIdentifierChar(languageIndex, ch) && ch != CharacterIterator.DONE); } - // The "word" is whitespace. else if (Character.isWhitespace(ch)) { - do { ch = seg.next(); } while (Character.isWhitespace(ch)); } - // Otherwise, the "word" is a single character of some other type // (operator, etc.). - offs += seg.getIndex() - seg.getBeginIndex(); return offs; - } - } - - + /** * Expands all folds. */ public static class ExpandAllFoldsAction extends FoldRelatedAction { - + private static final long serialVersionUID = 1L; - + public ExpandAllFoldsAction() { this(false); } - + public ExpandAllFoldsAction(boolean localizedName) { super(rstaExpandAllFoldsAction); if (localizedName) { setProperties(msg, "Action.ExpandAllFolds"); } } - - public ExpandAllFoldsAction(String name, Icon icon, - String desc, Integer mnemonic, KeyStroke accelerator) { + + public ExpandAllFoldsAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { FoldManager fm = rsta.getFoldManager(); - for (int i=0; i-1) { + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; + bracketInfo = RSyntaxUtilities.getMatchingBracketPosition(rsta, bracketInfo); + if (bracketInfo.y > -1) { // Go to the position AFTER the bracket so the previous // bracket (which we were just on) is highlighted. - rsta.setCaretPosition(bracketInfo.y+1); - } - else { + rsta.setCaretPosition(bracketInfo.y + 1); + } else { UIManager.getLookAndFeel().provideErrorFeedback(rsta); } } - + @Override public final String getMacroID() { return rstaGoToMatchingBracketAction; } - } - - + /** * Action for increasing the font size of all fonts in the text area. */ - public static class IncreaseFontSizeAction - extends RTextAreaEditorKit.IncreaseFontSizeAction { - + public static class IncreaseFontSizeAction extends RTextAreaEditorKit.IncreaseFontSizeAction { + private static final long serialVersionUID = 1L; - + public IncreaseFontSizeAction() { super(); } - - public IncreaseFontSizeAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public IncreaseFontSizeAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; SyntaxScheme scheme = rsta.getSyntaxScheme(); - // All we need to do is update all of the fonts in syntax // schemes, then call setSyntaxHighlightingColorScheme with the - // same scheme already being used. This relies on the fact that + // same scheme already being used. This relies on the fact that // that method does not check whether the new scheme is different // from the old scheme before updating. - boolean changed = false; int count = scheme.getStyleCount(); - for (int i=0; ipos that * is NOT a whitespace char, or -1 if only @@ -1449,81 +1234,72 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { * position in the string). */ private static int atEndOfLine(int pos, String s, int sLen) { - for (int i=pos; i0) { + if (doc.getCurlyBracesDenoteCodeBlocks(languageIndex) && getOpenBraceCount(doc, languageIndex) > 0) { StringBuilder sb = new StringBuilder(); - if (line==textArea.getLineCount()-1) { + if (line == textArea.getLineCount() - 1) { sb.append('\n'); } - if (leadingWS!=null) { + if (leadingWS != null) { sb.append(leadingWS); } sb.append("}\n"); @@ -1591,40 +1355,33 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { textArea.insert(sb.toString(), end); textArea.setCaretPosition(dot); // Caret may have moved } - } - } - } - } - - + /** - * Action for inserting tabs. This is extended to "block indent" a + * Action for inserting tabs. This is extended to "block indent" a * group of contiguous lines if they are selected. */ public static class InsertTabAction extends RecordableTextAction { - + private static final long serialVersionUID = 1L; - + public InsertTabAction() { super(insertTabAction); } - + public InsertTabAction(String name) { super(name); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - if (!textArea.isEditable() || !textArea.isEnabled()) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - Document document = textArea.getDocument(); Element map = document.getDefaultRootElement(); Caret c = textArea.getCaret(); @@ -1632,356 +1389,293 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { int mark = c.getMark(); int dotLine = map.getElementIndex(dot); int markLine = map.getElementIndex(mark); - // If there is a multi-line selection, indent all lines in // the selection. - if (dotLine!=markLine) { + if (dotLine != markLine) { int first = Math.min(dotLine, markLine); int last = Math.max(dotLine, markLine); - Element elem; int start; - + Element elem; + int start; // Since we're using Document.insertString(), we must mimic the // soft tab behavior provided by RTextArea.replaceSelection(). String replacement = "\t"; if (textArea.getTabsEmulated()) { StringBuilder sb = new StringBuilder(); int temp = textArea.getTabSize(); - for (int i=0; i0 && - // ((mod&ActionEvent.ALT_MASK)==(mod&ActionEvent.CTRL_MASK))) { - // char ch = str.charAt(0); - // if (ch>=0x20 && ch!=0x7F) - // textArea.replaceSelection(str); - //} + // String str = manager.getInsertTriggerString(); + // int mod = manager.getInsertTrigger().getModifiers(); + // if (str!=null && str.length()>0 && + // ((mod&ActionEvent.ALT_MASK)==(mod&ActionEvent.CTRL_MASK))) { + // char ch = str.charAt(0); + // if (ch>=0x20 && ch!=0x7F) + // textArea.replaceSelection(str); + // } textArea.replaceSelection(" "); } - + @Override public final String getMacroID() { return rstaPossiblyInsertTemplateAction; } - } - - + /** * Action to move the selection and/or caret. Constructor indicates - * direction to use. This class overrides the behavior defined in + * direction to use. This class overrides the behavior defined in * {@link RTextAreaEditorKit} to better skip "words" in source code. */ - public static class PreviousWordAction - extends RTextAreaEditorKit.PreviousWordAction { - + public static class PreviousWordAction extends RTextAreaEditorKit.PreviousWordAction { + private Segment seg; - + public PreviousWordAction(String nm, boolean select) { super(nm, select); seg = new Segment(); } - + /** * Overridden to do better with skipping "words" in code. */ @Override - protected int getPreviousWord(RTextArea textArea, int offs) - throws BadLocationException { - - if (offs==0) { + protected int getPreviousWord(RTextArea textArea, int offs) throws BadLocationException { + if (offs == 0) { return offs; } - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); Element root = doc.getDefaultRootElement(); int line = root.getElementIndex(offs); int start = root.getElement(line).getStartOffset(); - if (offs==start) {// If we're already at the start of the line... - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + if (offs == start) {// If we're already at the start of the line... + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { // End of next visible line FoldManager fm = rsta.getFoldManager(); - while (--line>=0 && fm.isLineHidden(line)); - if (line>=0) { // Found an earlier visible line + while (--line >= 0 && fm.isLineHidden(line)); + if (line >= 0) { // Found an earlier visible line offs = root.getElement(line).getEndOffset() - 1; } // No earlier visible line - we must be at offs==0... return offs; - } - else { - return start-1; // End of previous line. + } else { + return start - 1; // End of previous line. } } - doc.getText(start, offs-start, seg); - + doc.getText(start, offs - start, seg); // Determine the "type" of char at offs - lower case, upper case, // whitespace or other char ch = seg.last(); - // Skip any "leading" whitespace while (Character.isWhitespace(ch)) { ch = seg.previous(); } - // Skip the group of letters and/or digits int languageIndex = 0; if (doc.isIdentifierChar(languageIndex, ch)) { do { ch = seg.previous(); - } while (doc.isIdentifierChar(languageIndex, ch) && - ch != CharacterIterator.DONE); + } while (doc.isIdentifierChar(languageIndex, ch) && ch != CharacterIterator.DONE); } - // Skip groups of "anything else" (operators, etc.). else if (!Character.isWhitespace(ch)) { do { ch = seg.previous(); - } while (ch!=Segment.DONE && - !(doc.isIdentifierChar(languageIndex, ch) || - Character.isWhitespace(ch))); + } while (ch != Segment.DONE && !(doc.isIdentifierChar(languageIndex, ch) || Character.isWhitespace(ch))); } - offs -= seg.getEndIndex() - seg.getIndex(); - if (ch!=Segment.DONE) { + if (ch != Segment.DONE) { offs++; } - return offs; - } - } - - + /** - * Selects the word around the caret. This class is here to better + * Selects the word around the caret. This class is here to better * handle selecting "words" in programming languages. */ - public static class SelectWordAction - extends RTextAreaEditorKit.SelectWordAction { - + public static class SelectWordAction extends RTextAreaEditorKit.SelectWordAction { + @Override protected void createActions() { start = new BeginWordAction("pigdog", false); end = new EndWordAction("pigdog", true); } - } - - + /** * Action that toggles whether the currently selected lines are * commented. */ public static class ToggleCommentAction extends RecordableTextAction { - + public ToggleCommentAction() { super(rstaToggleCommentAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - if (!textArea.isEditable() || !textArea.isEnabled()) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); Element map = doc.getDefaultRootElement(); Caret c = textArea.getCaret(); int dot = c.getDot(); @@ -1989,30 +1683,26 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { int line1 = map.getElementIndex(dot); int line2 = map.getElementIndex(mark); int start = Math.min(line1, line2); - int end = Math.max(line1, line2); - + int end = Math.max(line1, line2); Token t = doc.getTokenListForLine(start); - int languageIndex = t!=null ? t.getLanguageIndex() : 0; + int languageIndex = t != null ? t.getLanguageIndex() : 0; String[] startEnd = doc.getLineCommentStartAndEnd(languageIndex); - - if (startEnd==null) { + if (startEnd == null) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - // Don't toggle comment on last line if there is no // text selected on it. - if (start!=end) { + if (start != end) { Element elem = map.getElement(end); - if (Math.max(dot, mark)==elem.getStartOffset()) { + if (Math.max(dot, mark) == elem.getStartOffset()) { end--; } } - textArea.beginAtomicEdit(); try { - boolean add = getDoAdd(doc,map, start,end, startEnd); - for (line1=start; line1<=end; line1++) { + boolean add = getDoAdd(doc, map, start, end, startEnd); + for (line1 = start; line1 <= end; line1++) { Element elem = map.getElement(line1); handleToggleComment(elem, doc, startEnd, add); } @@ -2022,92 +1712,78 @@ public class RSyntaxTextAreaEditorKit extends RTextAreaEditorKit { } finally { textArea.endAtomicEdit(); } - } - - private boolean getDoAdd(Document doc, Element map, int startLine, - int endLine, String[] startEnd) - throws BadLocationException { + + private boolean getDoAdd(Document doc, Element map, int startLine, int endLine, String[] startEnd) throws BadLocationException { boolean doAdd = false; - for (int i=startLine; i<=endLine; i++) { + for (int i = startLine; i <= endLine; i++) { Element elem = map.getElement(i); int start = elem.getStartOffset(); - String t = doc.getText(start, elem.getEndOffset()-start-1); - if (!t.startsWith(startEnd[0]) || - (startEnd[1]!=null && !t.endsWith(startEnd[1]))) { + String t = doc.getText(start, elem.getEndOffset() - start - 1); + if (!t.startsWith(startEnd[0]) || (startEnd[1] != null && !t.endsWith(startEnd[1]))) { doAdd = true; break; } } return doAdd; } - - private void handleToggleComment(Element elem, Document doc, - String[] startEnd, boolean add) throws BadLocationException { + + private void handleToggleComment(Element elem, Document doc, String[] startEnd, boolean add) throws BadLocationException { int start = elem.getStartOffset(); int end = elem.getEndOffset() - 1; if (add) { doc.insertString(start, startEnd[0], null); - if (startEnd[1]!=null) { - doc.insertString(end+startEnd[0].length(), startEnd[1], - null); + if (startEnd[1] != null) { + doc.insertString(end + startEnd[0].length(), startEnd[1], null); } - } - else { + } else { doc.remove(start, startEnd[0].length()); - if (startEnd[1]!=null) { + if (startEnd[1] != null) { int temp = startEnd[1].length(); - doc.remove(end-startEnd[0].length()-temp, temp); + doc.remove(end - startEnd[0].length() - temp, temp); } } } - + @Override public final String getMacroID() { return rstaToggleCommentAction; } - } - - + /** * Toggles the fold at the current caret position or line. */ public static class ToggleCurrentFoldAction extends FoldRelatedAction { - + private static final long serialVersionUID = 1L; - + public ToggleCurrentFoldAction() { super(rstaToggleCurrentFoldAction); setProperties(msg, "Action.ToggleCurrentFold"); } - - public ToggleCurrentFoldAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public ToggleCurrentFoldAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { Fold fold = getClosestFold(rsta); - if (fold!=null) { + if (fold != null) { fold.toggleCollapsedState(); } RSyntaxUtilities.possiblyRepaintGutter(textArea); - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(rsta); } } - + @Override public final String getMacroID() { return rstaToggleCurrentFoldAction; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaHighlighter.java b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaHighlighter.java index 1b3f948..cbb4797 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaHighlighter.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaHighlighter.java @@ -1,9 +1,7 @@ /* * 04/23/2009 - * * RSyntaxTextAreaHighlighter.java - Highlighter for RSyntaxTextAreas. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -27,11 +25,11 @@ import org.fife.ui.rsyntaxtextarea.parser.ParserNotice; import org.fife.ui.rtextarea.RTextAreaHighlighter; import org.fife.ui.rtextarea.SmartHighlightPainter; - /** - * The highlighter implementation used by {@link RSyntaxTextArea}s. It knows to + * The highlighter implementation used by {@link RSyntaxTextArea}s. It knows to * always paint "marked occurrences" highlights below selection highlights, - * and squiggle underline highlights above all other highlights.

+ * and squiggle underline highlights above all other highlights. + *

* * Most of this code is copied from javax.swing.text.DefaultHighlighter; * unfortunately, we cannot re-use much of it since it is package private. @@ -40,34 +38,31 @@ import org.fife.ui.rtextarea.SmartHighlightPainter; * @version 1.0 */ public class RSyntaxTextAreaHighlighter extends RTextAreaHighlighter { - + /** * Marked occurrences in the document (to be painted separately from * other highlights). */ private List markedOccurrences; - /** - * Highlights from document parsers. These should be painted "on top of" + * Highlights from document parsers. These should be painted "on top of" * all other highlights to ensure they are always above the selection. */ private List parserHighlights; - /** * The default color used for parser notices when none is specified. */ - private static final Color DEFAULT_PARSER_NOTICE_COLOR = Color.RED; - - + private static final Color DEFAULT_PARSER_NOTICE_COLOR = Color.RED; + /** * Constructor. */ public RSyntaxTextAreaHighlighter() { markedOccurrences = new ArrayList(); - parserHighlights = new ArrayList(0); // Often unused + parserHighlights = new ArrayList(0); // Often + // unused } - - + /** * Adds a special "marked occurrence" highlight. * @@ -78,8 +73,7 @@ public class RSyntaxTextAreaHighlighter extends RTextAreaHighlighter { * @throws BadLocationException * @see #clearMarkOccurrencesHighlights() */ - Object addMarkedOccurrenceHighlight(int start, int end, - SmartHighlightPainter p) throws BadLocationException { + Object addMarkedOccurrenceHighlight(int start, int end, SmartHighlightPainter p) throws BadLocationException { Document doc = textArea.getDocument(); TextUI mapper = textArea.getUI(); // Always layered highlights for marked occurrences. @@ -89,43 +83,38 @@ public class RSyntaxTextAreaHighlighter extends RTextAreaHighlighter { // HACK: Use "end-1" to prevent chars the user types at the "end" of // the highlight to be absorbed into the highlight (default Highlight // behavior). - i.setEndOffset(doc.createPosition(end-1)); + i.setEndOffset(doc.createPosition(end - 1)); markedOccurrences.add(i); mapper.damageRange(textArea, start, end); return i; } - - + /** * Adds a highlight from a parser. * - * @param notice The notice from a {@link Parser}. + * @param notice + * The notice from a {@link Parser}. * @return A tag with which to reference the highlight. * @throws BadLocationException * @see #clearParserHighlights() * @see #clearParserHighlights(Parser) */ - HighlightInfo addParserHighlight(ParserNotice notice, HighlightPainter p) - throws BadLocationException { - + HighlightInfo addParserHighlight(ParserNotice notice, HighlightPainter p) throws BadLocationException { Document doc = textArea.getDocument(); TextUI mapper = textArea.getUI(); - int start = notice.getOffset(); int end = 0; - if (start==-1) { // Could just define an invalid line number + if (start == -1) { // Could just define an invalid line number int line = notice.getLine(); Element root = doc.getDefaultRootElement(); - if (line>=0 && line= 0 && line < root.getElementCount()) { Element elem = root.getElement(line); start = elem.getStartOffset(); end = elem.getEndOffset(); } - } - else { + } else { end = start + notice.getLength(); } - // Always layered highlights for parser highlights. SyntaxLayeredHighlightInfoImpl i = new SyntaxLayeredHighlightInfoImpl(); i.setPainter(p); @@ -133,16 +122,13 @@ public class RSyntaxTextAreaHighlighter extends RTextAreaHighlighter { // HACK: Use "end-1" to prevent chars the user types at the "end" of // the highlight to be absorbed into the highlight (default Highlight // behavior). - i.setEndOffset(doc.createPosition(end-1)); - i.notice = notice;//i.color = notice.getColor(); - + i.setEndOffset(doc.createPosition(end - 1)); + i.notice = notice;// i.color = notice.getColor(); parserHighlights.add(i); mapper.damageRange(textArea, start, end); return i; - } - - + /** * Removes all "marked occurrences" highlights from the view. * @@ -156,47 +142,41 @@ public class RSyntaxTextAreaHighlighter extends RTextAreaHighlighter { } markedOccurrences.clear(); } - - + /** * Removes all parser highlights. * - * @see #addParserHighlight(ParserNotice, javax.swing.text.Highlighter.HighlightPainter) + * @see #addParserHighlight(ParserNotice, + * javax.swing.text.Highlighter.HighlightPainter) */ void clearParserHighlights() { // Don't remove via an iterator; since our List is an ArrayList, this // implies tons of System.arrayCopy()s - for (int i=0; i i = parserHighlights.iterator(); while (i.hasNext()) { - SyntaxLayeredHighlightInfoImpl info = i.next(); - - if (info.notice.getParser()==parser) { - if (info.width > 0 && info.height > 0) { - textArea.repaint(info.x, info.y, info.width, info.height); - } + if (info.notice.getParser() == parser) { + if (info.width > 0 && info.height > 0) { + textArea.repaint(info.x, info.y, info.width, info.height); + } i.remove(); } - } - } - - + /** * {@inheritDoc} */ @@ -206,13 +186,12 @@ public class RSyntaxTextAreaHighlighter extends RTextAreaHighlighter { markedOccurrences.clear(); parserHighlights.clear(); } - - + /** - * Returns a list of "marked occurrences" in the text area. If there are + * Returns a list of "marked occurrences" in the text area. If there are * no marked occurrences, this will be an empty list. * - * @return The list of marked occurrences, or an empty list if none. The + * @return The list of marked occurrences, or an empty list if none. The * contents of this list will be of type {@link DocumentRange}. */ public List getMarkedOccurrences() { @@ -231,61 +210,53 @@ public class RSyntaxTextAreaHighlighter extends RTextAreaHighlighter { } return list; } - - + @Override - public void paintLayeredHighlights(Graphics g, int lineStart, int lineEnd, - Shape viewBounds, JTextComponent editor, View view) { - paintListLayered(g, lineStart,lineEnd, viewBounds, editor, view, markedOccurrences); + public void paintLayeredHighlights(Graphics g, int lineStart, int lineEnd, Shape viewBounds, JTextComponent editor, View view) { + paintListLayered(g, lineStart, lineEnd, viewBounds, editor, view, markedOccurrences); super.paintLayeredHighlights(g, lineStart, lineEnd, viewBounds, editor, view); - paintListLayered(g, lineStart,lineEnd, viewBounds, editor, view, parserHighlights); + paintListLayered(g, lineStart, lineEnd, viewBounds, editor, view, parserHighlights); } - - + /** * Removes a parser highlight from this view. * - * @param tag The reference to the highlight. - * @see #addParserHighlight(ParserNotice, javax.swing.text.Highlighter.HighlightPainter) + * @param tag + * The reference to the highlight. + * @see #addParserHighlight(ParserNotice, + * javax.swing.text.Highlighter.HighlightPainter) */ void removeParserHighlight(HighlightInfo tag) { repaintListHighlight(tag); parserHighlights.remove(tag); } - - + /** * Highlight info implementation used for parser notices and marked * occurrences. */ - private static class SyntaxLayeredHighlightInfoImpl extends - LayeredHighlightInfoImpl { - - private ParserNotice notice;//Color color; // Used only by Parser highlights. - + private static class SyntaxLayeredHighlightInfoImpl extends LayeredHighlightInfoImpl { + + private ParserNotice notice;// Color color; // Used only by Parser + // highlights. + @Override public Color getColor() { - //return color; + // return color; Color color = null; - if (notice!=null) { + if (notice != null) { color = notice.getColor(); - if (color==null) { + if (color == null) { color = DEFAULT_PARSER_NOTICE_COLOR; } } return color; } - + @Override public String toString() { - return "[SyntaxLayeredHighlightInfoImpl: " + - "startOffs=" + getStartOffset() + - ", endOffs=" + getEndOffset() + - ", color=" + getColor() + - "]"; + return "[SyntaxLayeredHighlightInfoImpl: " + "startOffs=" + getStartOffset() + ", endOffs=" + getEndOffset() + ", color=" + + getColor() + "]"; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaUI.java b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaUI.java index 521721b..37f9213 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaUI.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextAreaUI.java @@ -1,9 +1,7 @@ /* * 02/24/2004 - * * RSyntaxTextAreaUI.java - UI for an RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -28,40 +26,37 @@ import javax.swing.text.View; import org.fife.ui.rtextarea.RTextArea; import org.fife.ui.rtextarea.RTextAreaUI; - /** - * UI used by RSyntaxTextArea. This allows us to implement + * UI used by RSyntaxTextArea. This allows us to implement * syntax highlighting. * * @author Robert Futrell * @version 0.1 */ public class RSyntaxTextAreaUI extends RTextAreaUI { - - private static final String SHARED_ACTION_MAP_NAME = "RSyntaxTextAreaUI.actionMap"; - private static final String SHARED_INPUT_MAP_NAME = "RSyntaxTextAreaUI.inputMap"; - private static final EditorKit DEFAULT_KIT = new RSyntaxTextAreaEditorKit(); - - + + private static final String SHARED_ACTION_MAP_NAME = "RSyntaxTextAreaUI.actionMap"; + private static final String SHARED_INPUT_MAP_NAME = "RSyntaxTextAreaUI.inputMap"; + private static final EditorKit DEFAULT_KIT = new RSyntaxTextAreaEditorKit(); + public static ComponentUI createUI(JComponent ta) { return new RSyntaxTextAreaUI(ta); } - - + /** * Constructor. */ public RSyntaxTextAreaUI(JComponent rSyntaxTextArea) { super(rSyntaxTextArea); } - - - /** - * Creates the view for an element. - * - * @param elem The element. - * @return The view. - */ + + /** + * Creates the view for an element. + * + * @param elem + * The element. + * @return The view. + */ @Override public View create(Element elem) { RTextArea c = getRTextArea(); @@ -70,16 +65,14 @@ public class RSyntaxTextAreaUI extends RTextAreaUI { View v; if (area.getLineWrap()) { v = new WrappedSyntaxView(elem); - } - else { + } else { v = new SyntaxView(elem); } return v; } return null; } - - + /** * Creates the highlighter to use for syntax text areas. * @@ -89,10 +82,9 @@ public class RSyntaxTextAreaUI extends RTextAreaUI { protected Highlighter createHighlighter() { return new RSyntaxTextAreaHighlighter(); } - - + /** - * Returns the name to use to cache/fetch the shared action map. This + * Returns the name to use to cache/fetch the shared action map. This * should be overridden by subclasses if the subclass has its own custom * editor kit to install, so its actions get picked up. * @@ -102,12 +94,12 @@ public class RSyntaxTextAreaUI extends RTextAreaUI { protected String getActionMapName() { return SHARED_ACTION_MAP_NAME; } - - + /** * Fetches the EditorKit for the UI. * - * @param tc The text component for which this UI is installed. + * @param tc + * The text component for which this UI is installed. * @return The editor capabilities. * @see javax.swing.plaf.TextUI#getEditorKit */ @@ -115,10 +107,10 @@ public class RSyntaxTextAreaUI extends RTextAreaUI { public EditorKit getEditorKit(JTextComponent tc) { return DEFAULT_KIT; } - - + /** - * Get the InputMap to use for the UI.

+ * Get the InputMap to use for the UI. + *

* * This method is not named getInputMap() because there is * a package-private method in BasicTextAreaUI with that name. @@ -129,110 +121,101 @@ public class RSyntaxTextAreaUI extends RTextAreaUI { @Override protected InputMap getRTextAreaInputMap() { InputMap map = new InputMapUIResource(); - InputMap shared = (InputMap)UIManager.get(SHARED_INPUT_MAP_NAME); - if (shared==null) { + InputMap shared = (InputMap) UIManager.get(SHARED_INPUT_MAP_NAME); + if (shared == null) { shared = new RSyntaxTextAreaDefaultInputMap(); UIManager.put(SHARED_INPUT_MAP_NAME, shared); } - //KeyStroke[] keys = shared.allKeys(); - //for (int i=0; i " + shared.get(keys[i])); + // KeyStroke[] keys = shared.allKeys(); + // for (int i=0; i " + shared.get(keys[i])); map.setParent(shared); return map; } - - + @Override protected void paintEditorAugmentations(Graphics g) { super.paintEditorAugmentations(g); paintMatchedBracket(g); } - - + /** * Paints the "matched bracket", if any. * - * @param g The graphics context. + * @param g + * The graphics context. */ protected void paintMatchedBracket(Graphics g) { - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isBracketMatchingEnabled()) { Rectangle match = rsta.getMatchRectangle(); - if (match!=null) { + if (match != null) { paintMatchedBracketImpl(g, rsta, match); } if (rsta.getPaintMatchedBracketPair()) { Rectangle dotRect = rsta.getDotRectangle(); - if (dotRect!=null) { // should always be true + if (dotRect != null) { // should always be true paintMatchedBracketImpl(g, rsta, dotRect); } } } } - - - protected void paintMatchedBracketImpl(Graphics g, RSyntaxTextArea rsta, - Rectangle r) { + + protected void paintMatchedBracketImpl(Graphics g, RSyntaxTextArea rsta, Rectangle r) { // We must add "-1" to the height because otherwise we'll paint below // the region that gets invalidated. if (rsta.getAnimateBracketMatching()) { Color bg = rsta.getMatchedBracketBGColor(); final int arcWH = 5; - if (bg!=null) { + if (bg != null) { g.setColor(bg); - g.fillRoundRect(r.x,r.y, r.width,r.height-1, arcWH, arcWH); + g.fillRoundRect(r.x, r.y, r.width, r.height - 1, arcWH, arcWH); } g.setColor(rsta.getMatchedBracketBorderColor()); - g.drawRoundRect(r.x,r.y, r.width,r.height-1, arcWH, arcWH); - } - else { + g.drawRoundRect(r.x, r.y, r.width, r.height - 1, arcWH, arcWH); + } else { Color bg = rsta.getMatchedBracketBGColor(); - if (bg!=null) { + if (bg != null) { g.setColor(bg); - g.fillRect(r.x,r.y, r.width,r.height-1); + g.fillRect(r.x, r.y, r.width, r.height - 1); } g.setColor(rsta.getMatchedBracketBorderColor()); - g.drawRect(r.x,r.y, r.width,r.height-1); + g.drawRect(r.x, r.y, r.width, r.height - 1); } } - - + /** * Gets called whenever a bound property is changed on this UI's * RSyntaxTextArea. * - * @param e The property change event. + * @param e + * The property change event. */ @Override protected void propertyChange(PropertyChangeEvent e) { - String name = e.getPropertyName(); - // If they change the syntax scheme, we must do this so that // WrappedSyntaxView(_TEST) updates its child views properly. if (name.equals(RSyntaxTextArea.SYNTAX_SCHEME_PROPERTY)) { modelChanged(); } - // Everything else is general to all RTextAreas. else { super.propertyChange(e); } - } - - + /** - * Updates the view. This should be called when the underlying + * Updates the view. This should be called when the underlying * RSyntaxTextArea changes its syntax editing style. */ public void refreshSyntaxHighlighting() { modelChanged(); } - - + /** - * Returns the y-coordinate of the specified line.

+ * Returns the y-coordinate of the specified line. + *

* * This method is quicker than using traditional * modelToView(int) calls, as the entire bounding box isn't @@ -241,16 +224,16 @@ public class RSyntaxTextAreaUI extends RTextAreaUI { @Override public int yForLine(int line) throws BadLocationException { Rectangle alloc = getVisibleEditorRect(); - if (alloc!=null) { - RSTAView view = (RSTAView)getRootView(textArea).getView(0); + if (alloc != null) { + RSTAView view = (RSTAView) getRootView(textArea).getView(0); return view.yForLine(alloc, line); } return -1; } - - + /** - * Returns the y-coordinate of the line containing a specified offset.

+ * Returns the y-coordinate of the line containing a specified offset. + *

* * This is faster than calling modelToView(offs).y, so it is * preferred if you do not need the actual bounding box. @@ -258,12 +241,10 @@ public class RSyntaxTextAreaUI extends RTextAreaUI { @Override public int yForLineContaining(int offs) throws BadLocationException { Rectangle alloc = getVisibleEditorRect(); - if (alloc!=null) { - RSTAView view = (RSTAView)getRootView(textArea).getView(0); + if (alloc != null) { + RSTAView view = (RSTAView) getRootView(textArea).getView(0); return view.yForLineContaining(alloc, offs); } return -1; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea_de.properties b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea_de.properties index 06b1fe7..fecac8c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea_de.properties +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxTextArea_de.properties @@ -3,7 +3,7 @@ ContextMenu.Folding=Klappung Action.ToggleCurrentFold.Name=Aktuellen Block umschalten Action.ToggleCurrentFold.Mnemonic=F Action.ToggleCurrentFold.Desc=Schaltet den Block an der Position der Schreibmarke um. -Action.CollapseAllFolds.Name=Action.CollapseAllFolds.Name=Alle Bl\u00f6cke zuklappen +Action.CollapseAllFolds.Name=Alle Bl\u00f6cke zuklappen Action.CollapseAllFolds.Mnemonic=O Action.CollapseAllFolds.Desc=Klappt alle Bl\u00f6cke zu. Action.CollapseCommentFolds.Name=Alle Kommentarbl\u00f6cke zuklappen diff --git a/src/org/fife/ui/rsyntaxtextarea/RSyntaxUtilities.java b/src/org/fife/ui/rsyntaxtextarea/RSyntaxUtilities.java index 0e0e633..36a024e 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RSyntaxUtilities.java +++ b/src/org/fife/ui/rsyntaxtextarea/RSyntaxUtilities.java @@ -1,10 +1,8 @@ /* * 08/06/2004 - * * RSyntaxUtilities.java - Utility methods used by RSyntaxTextArea and its * views. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -40,7 +38,6 @@ import org.fife.ui.rtextarea.Gutter; import org.fife.ui.rtextarea.RTextArea; import org.fife.ui.rtextarea.RTextScrollPane; - /** * Utility methods used by RSyntaxTextArea and its associated * classes. @@ -49,95 +46,82 @@ import org.fife.ui.rtextarea.RTextScrollPane; * @version 0.2 */ public final class RSyntaxUtilities implements SwingConstants { - + /** * Integer constant representing a Windows-variant OS. */ - public static final int OS_WINDOWS = 1; - + public static final int OS_WINDOWS = 1; /** * Integer constant representing Mac OS X. */ - public static final int OS_MAC_OSX = 2; - + public static final int OS_MAC_OSX = 2; /** * Integer constant representing Linux. */ - public static final int OS_LINUX = 4; - + public static final int OS_LINUX = 4; /** - * Integer constant representing an "unknown" OS. 99.99% of the + * Integer constant representing an "unknown" OS. 99.99% of the * time, this means some UNIX variant (AIX, SunOS, etc.). */ - public static final int OS_OTHER = 8; - + public static final int OS_OTHER = 8; /** * Used for the color of hyperlinks when a LookAndFeel uses light text * against a dark background. */ private static final Color LIGHT_HYPERLINK_FG = new Color(0xd8ffff); - private static final int OS = getOSImpl(); - - //private static final int DIGIT_MASK = 1; - private static final int LETTER_MASK = 2; - //private static final int WHITESPACE_MASK = 4; - //private static final int UPPER_CASE_MASK = 8; - private static final int HEX_CHARACTER_MASK = 16; - private static final int LETTER_OR_DIGIT_MASK = 32; - private static final int BRACKET_MASK = 64; - private static final int JAVA_OPERATOR_MASK = 128; - + // private static final int DIGIT_MASK = 1; + private static final int LETTER_MASK = 2; + // private static final int WHITESPACE_MASK = 4; + // private static final int UPPER_CASE_MASK = 8; + private static final int HEX_CHARACTER_MASK = 16; + private static final int LETTER_OR_DIGIT_MASK = 32; + private static final int BRACKET_MASK = 64; + private static final int JAVA_OPERATOR_MASK = 128; /** * A lookup table used to quickly decide if a 16-bit Java char is a * US-ASCII letter (A-Z or a-z), a digit, a whitespace char (either space - * (0x0020) or tab (0x0009)), etc. This method should be faster + * (0x0020) or tab (0x0009)), etc. This method should be faster * than Character.isLetter, Character.isDigit, * and Character.isWhitespace because we know we are dealing * with ASCII chars and so don't have to worry about code planes, etc. */ - private static final int[] DATA_TABLE = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, // 0-15 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16-31 - 4, 128, 0, 0, 0, 128, 128, 0, 64, 64, 128, 128, 0, 128, 0, 128, // 32-47 - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 128, 0, 128, 128, 128, 128, // 48-63 - 0, 58, 58, 58, 58, 58, 58, 42, 42, 42, 42, 42, 42, 42, 42, 42, // 64-79 - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 64, 0, 64, 128, 0, // 80-95 - 0, 50, 50, 50, 50, 50, 50, 34, 34, 34, 34, 34, 34, 34, 34, 34, // 96-111 - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 64, 128, 64, 128, 0, // 112-127 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 128-143 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 144- - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 160- - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 176- - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 192- - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 208- - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 224- - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // 240-255. + private static final int[] DATA_TABLE = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, // 0-15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16-31 + 4, 128, 0, 0, 0, 128, 128, 0, 64, 64, 128, 128, 0, 128, 0, 128, // 32-47 + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 128, 0, 128, 128, 128, 128, // 48-63 + 0, 58, 58, 58, 58, 58, 58, 42, 42, 42, 42, 42, 42, 42, 42, 42, // 64-79 + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 64, 0, 64, 128, 0, // 80-95 + 0, 50, 50, 50, 50, 50, 50, 34, 34, 34, 34, 34, 34, 34, 34, 34, // 96-111 + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 64, 128, 64, 128, 0, // 112-127 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 128-143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 144- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 160- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 176- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 192- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 208- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 224- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // 240-255. }; - /** * Used in bracket matching methods. */ private static Segment charSegment = new Segment(); - /** * Used in token list manipulation methods. */ private static final TokenImpl TEMP_TOKEN = new TokenImpl(); - /** * Used internally. */ private static final char[] JS_KEYWORD_RETURN = { 'r', 'e', 't', 'u', 'r', 'n' }; private static final char[] JS_AND = { '&', '&' }; - private static final char[] JS_OR = { '|', '|' }; - + private static final char[] JS_OR = { '|', '|' }; /** * Used internally. */ private static final String BRACKETS = "{([})]"; - - + /** * An unused constructor to prevent instantiation, and keep static analysis * tools happy. @@ -145,43 +129,40 @@ public final class RSyntaxUtilities implements SwingConstants { private RSyntaxUtilities() { // NOSONAR // Private constructor to prevent instantiation. } - - + /** * Returns a string with characters that are special to HTML (such as * <, > and &) replaced * by their HTML escape sequences. * - * @param s The input string. - * @param newlineReplacement What to replace newline characters with. - * If this is null, they are simply removed. - * @param inPreBlock Whether this HTML will be in within pre - * tags. If this is true, spaces will be kept as-is; - * otherwise, they will be converted to " ". + * @param s + * The input string. + * @param newlineReplacement + * What to replace newline characters with. + * If this is null, they are simply removed. + * @param inPreBlock + * Whether this HTML will be in within pre + * tags. If this is true, spaces will be kept as-is; + * otherwise, they will be converted to " ". * @return The escaped version of s. */ - public static String escapeForHtml(String s, - String newlineReplacement, boolean inPreBlock) { - - if (s==null) { + public static String escapeForHtml(String s, String newlineReplacement, boolean inPreBlock) { + if (s == null) { return null; } - if (newlineReplacement==null) { + if (newlineReplacement == null) { newlineReplacement = ""; } final String tabString = " "; boolean lastWasSpace = false; - StringBuilder sb = new StringBuilder(); - - for (int i=0; inull if they cannot be * determined. */ - public static Map getDesktopAntiAliasHints() { - return (Map)Toolkit.getDefaultToolkit(). - getDesktopProperty("awt.font.desktophints"); + public static Map getDesktopAntiAliasHints() { + return (Map) Toolkit.getDefaultToolkit().getDesktopProperty("awt.font.desktophints"); } - - + /** * Returns the color to use for the line underneath a folded region line. * - * @param textArea The text area. + * @param textArea + * The text area. * @return The color to use. */ public static Color getFoldedLineBottomColor(RSyntaxTextArea textArea) { Color color = Color.gray; Gutter gutter = RSyntaxUtilities.getGutter(textArea); - if (gutter!=null) { + if (gutter != null) { color = gutter.getFoldIndicatorForeground(); } return color; } - - + /** * Returns the gutter component of the scroll pane containing a text * area, if any. * - * @param textArea The text area. + * @param textArea + * The text area. * @return The gutter, or null if the text area is not in * an {@link RTextScrollPane}. * @see RTextScrollPane#getGutter() @@ -274,16 +251,15 @@ public final class RSyntaxUtilities implements SwingConstants { if (parent instanceof JViewport) { parent = parent.getParent(); if (parent instanceof RTextScrollPane) { - RTextScrollPane sp = (RTextScrollPane)parent; + RTextScrollPane sp = (RTextScrollPane) parent; gutter = sp.getGutter(); // Should always be non-null } } return gutter; } - - + /** - * Returns the color to use for hyperlink-style components. This method + * Returns the color to use for hyperlink-style components. This method * will return Color.blue unless it appears that the current * LookAndFeel uses light text on a dark background, in which case a * brighter alternative is returned. @@ -292,111 +268,110 @@ public final class RSyntaxUtilities implements SwingConstants { * @see #isLightForeground(Color) */ public static Color getHyperlinkForeground() { - // This property is defined by all standard LaFs, even Nimbus (!), // but you never know what crazy LaFs there are... Color fg = UIManager.getColor("Label.foreground"); - if (fg==null) { + if (fg == null) { fg = new JLabel().getForeground(); } - return isLightForeground(fg) ? LIGHT_HYPERLINK_FG : Color.blue; - } - - + /** * Returns the leading whitespace of a string. * - * @param text The String to check. + * @param text + * The String to check. * @return The leading whitespace. * @see #getLeadingWhitespace(Document, int) */ public static String getLeadingWhitespace(String text) { int count = 0; int len = text.length(); - while (countoffs is not a valid offset - * in the document. + * @throws BadLocationException + * If offs is not a valid offset + * in the document. * @see #getLeadingWhitespace(String) */ - public static String getLeadingWhitespace(Document doc, int offs) - throws BadLocationException { + public static String getLeadingWhitespace(Document doc, int offs) throws BadLocationException { Element root = doc.getDefaultRootElement(); int line = root.getElementIndex(offs); Element elem = root.getElement(line); int startOffs = elem.getStartOffset(); int endOffs = elem.getEndOffset() - 1; - String text = doc.getText(startOffs, endOffs-startOffs); + String text = doc.getText(startOffs, endOffs - startOffs); return getLeadingWhitespace(text); } - - + private static Element getLineElem(Document d, int offs) { Element map = d.getDefaultRootElement(); int index = map.getElementIndex(offs); Element elem = map.getElement(index); - if ((offs>=elem.getStartOffset()) && (offs= elem.getStartOffset()) && (offs < elem.getEndOffset())) { return elem; } return null; } - - + /** * Returns the bounding box (in the current view) of a specified position - * in the model. This method is designed for line-wrapped views to use, + * in the model. This method is designed for line-wrapped views to use, * as it allows you to specify a "starting position" in the line, from - * which the x-value is assumed to be zero. The idea is that you specify + * which the x-value is assumed to be zero. The idea is that you specify * the first character in a physical line as p0, as this is * the character where the x-pixel value is 0. * - * @param textArea The text area containing the text. - * @param s A segment in which to load the line. This is passed in so we - * don't have to reallocate a new Segment for each - * call. - * @param p0 The starting position in the physical line in the document. - * @param p1 The position for which to get the bounding box in the view. - * @param e How to expand tabs. - * @param rect The rectangle whose x- and width-values are changed to - * represent the bounding box of p1. This is reused - * to keep from needlessly reallocating Rectangles. - * @param x0 The x-coordinate (pixel) marking the left-hand border of the - * text. This is useful if the text area has a border, for example. + * @param textArea + * The text area containing the text. + * @param s + * A segment in which to load the line. This is passed in so we + * don't have to reallocate a new Segment for each + * call. + * @param p0 + * The starting position in the physical line in the document. + * @param p1 + * The position for which to get the bounding box in the view. + * @param e + * How to expand tabs. + * @param rect + * The rectangle whose x- and width-values are changed to + * represent the bounding box of p1. This is reused + * to keep from needlessly reallocating Rectangles. + * @param x0 + * The x-coordinate (pixel) marking the left-hand border of the + * text. This is useful if the text area has a border, for + * example. * @return The bounding box in the view of the character p1. - * @throws BadLocationException If p0 or p1 is - * not a valid location in the specified text area's document. - * @throws IllegalArgumentException If p0 and p1 - * are not on the same line. + * @throws BadLocationException + * If p0 or p1 is + * not a valid location in the specified text area's document. + * @throws IllegalArgumentException + * If p0 and p1 + * are not on the same line. */ - public static Rectangle getLineWidthUpTo(RSyntaxTextArea textArea, - Segment s, int p0, int p1, - TabExpander e, Rectangle rect, - int x0) - throws BadLocationException { - - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); - + public static Rectangle getLineWidthUpTo(RSyntaxTextArea textArea, Segment s, int p0, int p1, TabExpander e, Rectangle rect, int x0) + throws BadLocationException { + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); // Ensure p0 and p1 are valid document positions. - if (p0<0) { + if (p0 < 0) { throw new BadLocationException("Invalid document position", p0); - } - else if (p1>doc.getLength()) { + } else if (p1 > doc.getLength()) { throw new BadLocationException("Invalid document position", p1); } - // Ensure p0 and p1 are in the same line, and get the start/end // offsets for that line. Element map = doc.getDefaultRootElement(); @@ -404,78 +379,65 @@ public final class RSyntaxUtilities implements SwingConstants { // We do ">1" because p1 might be the first position on the next line // or the last position on the previous one. // if (lineNum!=map.getElementIndex(p1)) - if (Math.abs(lineNum-map.getElementIndex(p1))>1) { - throw new IllegalArgumentException("p0 and p1 are not on the " + - "same line (" + p0 + ", " + p1 + ")."); + if (Math.abs(lineNum - map.getElementIndex(p1)) > 1) { + throw new IllegalArgumentException("p0 and p1 are not on the " + "same line (" + p0 + ", " + p1 + ")."); } - // Get the token list. Token t = doc.getTokenListForLine(lineNum); - // Modify the token list 't' to begin at p0 (but still have correct // token types, etc.), and get the x-location (in pixels) of the // beginning of this new token list. - TokenSubList subList = TokenUtils.getSubTokenList(t, p0, e, textArea, - 0, TEMP_TOKEN); + TokenSubList subList = TokenUtils.getSubTokenList(t, p0, e, textArea, 0, TEMP_TOKEN); t = subList.tokenList; - rect = t.listOffsetToView(textArea, e, p1, x0, rect); return rect; - } - - + /** * Returns the location of the bracket paired with the one at the current * caret position. * - * @param textArea The text area. - * @param input A point to use as the return value. If this is - * null, a new object is created and returned. - * @return A point representing the matched bracket info. The "x" field + * @param textArea + * The text area. + * @param input + * A point to use as the return value. If this is + * null, a new object is created and returned. + * @return A point representing the matched bracket info. The "x" field * is the offset of the bracket at the caret position (either just * before or just after the caret), and the "y" field is the offset - * of the matched bracket. Both "x" and "y" will be + * of the matched bracket. Both "x" and "y" will be * -1 if there isn't a matching bracket (or the caret * isn't on a bracket). */ - public static Point getMatchingBracketPosition(RSyntaxTextArea textArea, - Point input) { - - if (input==null) { + public static Point getMatchingBracketPosition(RSyntaxTextArea textArea, Point input) { + if (input == null) { input = new Point(); } input.setLocation(-1, -1); - try { - // Actually position just BEFORE caret. int caretPosition = textArea.getCaretPosition() - 1; - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); char bracket = 0; - // If the caret was at offset 0, we can't check "to its left." - if (caretPosition>=0) { - bracket = doc.charAt(caretPosition); + if (caretPosition >= 0) { + bracket = doc.charAt(caretPosition); } - // Try to match a bracket "to the right" of the caret if one // was not found on the left. int index = BRACKETS.indexOf(bracket); - if (index==-1 && caretPosition

* - * NOTE: You should only call this method if the passed-in + * NOTE: You should only call this method if the passed-in * javax.swing.text.View is an instance of * {@link TokenOrientedView} and javax.swing.text.TabExpander; * otherwise, a ClassCastException could be thrown. * - * @param pos the position to convert >= 0 - * @param a the allocated region in which to render - * @param direction the direction from the current position that can - * be thought of as the arrow keys typically found on a keyboard. - * This will be one of the following values: - *

    - *
  • SwingConstants.WEST - *
  • SwingConstants.EAST - *
  • SwingConstants.NORTH - *
  • SwingConstants.SOUTH - *
+ * @param pos + * the position to convert >= 0 + * @param a + * the allocated region in which to render + * @param direction + * the direction from the current position that can + * be thought of as the arrow keys typically found on a keyboard. + * This will be one of the following values: + *
    + *
  • SwingConstants.WEST + *
  • SwingConstants.EAST + *
  • SwingConstants.NORTH + *
  • SwingConstants.SOUTH + *
* @return the location within the model that best represents the next - * location visual position + * location visual position * @exception BadLocationException - * @exception IllegalArgumentException if direction - * doesn't have one of the legal values above + * @exception IllegalArgumentException + * if direction + * doesn't have one of the legal values above */ - public static int getNextVisualPositionFrom(int pos, Position.Bias b, - Shape a, int direction, - Position.Bias[] biasRet, View view) - throws BadLocationException { - - RSyntaxTextArea target = (RSyntaxTextArea)view.getContainer(); + public static int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet, View view) + throws BadLocationException { + RSyntaxTextArea target = (RSyntaxTextArea) view.getContainer(); biasRet[0] = Position.Bias.Forward; - // Do we want the "next position" above, below, to the left or right? switch (direction) { - case NORTH: case SOUTH: if (pos == -1) { - pos = (direction == NORTH) ? - Math.max(0, view.getEndOffset() - 1) : - view.getStartOffset(); + pos = (direction == NORTH) ? Math.max(0, view.getEndOffset() - 1) : view.getStartOffset(); break; } Caret c = (target != null) ? target.getCaret() : null; @@ -731,83 +653,73 @@ public final class RSyntaxUtilities implements SwingConstants { Point mcp; if (c != null) { mcp = c.getMagicCaretPosition(); - } - else { + } else { mcp = null; } int x; if (mcp == null) { Rectangle loc = target.modelToView(pos); x = (loc == null) ? 0 : loc.x; - } - else { + } else { x = mcp.x; } if (direction == NORTH) { - pos = getPositionAbove(target,pos,x,(TabExpander)view); - } - else { - pos = getPositionBelow(target,pos,x,(TabExpander)view); + pos = getPositionAbove(target, pos, x, (TabExpander) view); + } else { + pos = getPositionBelow(target, pos, x, (TabExpander) view); } break; - case WEST: int endOffs = view.getEndOffset(); - if(pos == -1) { + if (pos == -1) { pos = Math.max(0, endOffs - 1); - } - else { + } else { pos = Math.max(0, pos - 1); if (target.isCodeFoldingEnabled()) { - int last = pos==endOffs-1 ? target.getLineCount()-1 : - target.getLineOfOffset(pos+1); + int last = pos == endOffs - 1 ? target.getLineCount() - 1 : target.getLineOfOffset(pos + 1); int current = target.getLineOfOffset(pos); - if (last!=current) { // If moving up a line... + if (last != current) { // If moving up a line... FoldManager fm = target.getFoldManager(); if (fm.isLineHidden(current)) { - while (--current>0 && fm.isLineHidden(current)); + while (--current > 0 && fm.isLineHidden(current)); pos = target.getLineEndOffset(current) - 1; } } } } break; - case EAST: - if(pos == -1) { + if (pos == -1) { pos = view.getStartOffset(); - } - else { + } else { pos = Math.min(pos + 1, view.getDocument().getLength()); if (target.isCodeFoldingEnabled()) { - int last = pos==0 ? 0 : target.getLineOfOffset(pos-1); + int last = pos == 0 ? 0 : target.getLineOfOffset(pos - 1); int current = target.getLineOfOffset(pos); - if (last!=current) { // If moving down a line... + if (last != current) { // If moving down a line... FoldManager fm = target.getFoldManager(); if (fm.isLineHidden(current)) { int lineCount = target.getLineCount(); - while (++current -1) { os = OS_WINDOWS; - } - else if (osName.indexOf("mac os x") > -1) { + } else if (osName.indexOf("mac os x") > -1) { os = OS_MAC_OSX; - } - else if (osName.indexOf("linux") > -1) { + } else if (osName.indexOf("linux") > -1) { os = OS_LINUX; - } - else { + } else { os = OS_OTHER; } } return os; } - - + /** * Returns the flags necessary to create a {@link Pattern}. * - * @param matchCase Whether the pattern should be case sensitive. - * @param others Any other flags. This may be 0. + * @param matchCase + * Whether the pattern should be case sensitive. + * @param others + * Any other flags. This may be 0. * @return The flags. */ public static int getPatternFlags(boolean matchCase, int others) { if (!matchCase) { - others |= Pattern.CASE_INSENSITIVE|Pattern.UNICODE_CASE; + others |= Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE; } return others; } - - + /** * Determines the position in the model that is closest to the given - * view location in the row above. The component given must have a - * size to compute the result. If the component doesn't have a size + * view location in the row above. The component given must have a + * size to compute the result. If the component doesn't have a size * a value of -1 will be returned. * - * @param c the editor - * @param offs the offset in the document >= 0 - * @param x the X coordinate >= 0 + * @param c + * the editor + * @param offs + * the offset in the document >= 0 + * @param x + * the X coordinate >= 0 * @return the position >= 0 if the request can be computed, otherwise - * a value of -1 will be returned. - * @exception BadLocationException if the offset is out of range + * a value of -1 will be returned. + * @exception BadLocationException + * if the offset is out of range */ - public static int getPositionAbove(RSyntaxTextArea c, int offs, - float x, TabExpander e) throws BadLocationException { - - TokenOrientedView tov = (TokenOrientedView)e; + public static int getPositionAbove(RSyntaxTextArea c, int offs, float x, TabExpander e) throws BadLocationException { + TokenOrientedView tov = (TokenOrientedView) e; Token token = tov.getTokenListForPhysicalLineAbove(offs); - if (token==null) { + if (token == null) { return -1; - } - else if (token.getType()==Token.NULL) { - int line = c.getLineOfOffset(offs); // Sure to be >0 ?? - return c.getLineStartOffset(line-1); - } - - else { + } else if (token.getType() == Token.NULL) { + int line = c.getLineOfOffset(offs); // Sure to be >0 ?? + return c.getLineStartOffset(line - 1); + } else { return token.getListOffset(c, e, c.getMargin().left, x); } - } - - + /** * Determines the position in the model that is closest to the given - * view location in the row below. The component given must have a - * size to compute the result. If the component doesn't have a size + * view location in the row below. The component given must have a + * size to compute the result. If the component doesn't have a size * a value of -1 will be returned. * - * @param c the editor - * @param offs the offset in the document >= 0 - * @param x the X coordinate >= 0 + * @param c + * the editor + * @param offs + * the offset in the document >= 0 + * @param x + * the X coordinate >= 0 * @return the position >= 0 if the request can be computed, otherwise - * a value of -1 will be returned. - * @exception BadLocationException if the offset is out of range + * a value of -1 will be returned. + * @exception BadLocationException + * if the offset is out of range */ - public static int getPositionBelow(RSyntaxTextArea c, int offs, - float x, TabExpander e) throws BadLocationException { - - TokenOrientedView tov = (TokenOrientedView)e; + public static int getPositionBelow(RSyntaxTextArea c, int offs, float x, TabExpander e) throws BadLocationException { + TokenOrientedView tov = (TokenOrientedView) e; Token token = tov.getTokenListForPhysicalLineBelow(offs); - if (token==null) { + if (token == null) { return -1; - } - else if (token.getType()==Token.NULL) { - int line = c.getLineOfOffset(offs); // Sure to be > c.getLineCount()-1 ?? -// return c.getLineStartOffset(line+1); -FoldManager fm = c.getFoldManager(); -line = fm.getVisibleLineBelow(line); -return c.getLineStartOffset(line); - } - - else { + } else if (token.getType() == Token.NULL) { + int line = c.getLineOfOffset(offs); // Sure to be > + // c.getLineCount()-1 ?? + // return c.getLineStartOffset(line+1); + FoldManager fm = c.getFoldManager(); + line = fm.getVisibleLineBelow(line); + return c.getLineStartOffset(line); + } else { return token.getListOffset(c, e, c.getMargin().left, x); } - } - - + /** * Returns the last non-whitespace, non-comment token, starting with the * specified line. * - * @param doc The document. - * @param line The line at which to start looking. + * @param doc + * The document. + * @param line + * The line at which to start looking. * @return The last non-whitespace, non-comment token, or null * if there isn't one. * @see #getNextImportantToken(Token, RSyntaxTextArea, int) * @see #getPreviousImportantTokenFromOffs(RSyntaxDocument, int) */ - public static Token getPreviousImportantToken(RSyntaxDocument doc, - int line) { - if (line<0) { + public static Token getPreviousImportantToken(RSyntaxDocument doc, int line) { + if (line < 0) { return null; } Token t = doc.getTokenListForLine(line); - if (t!=null) { + if (t != null) { t = t.getLastNonCommentNonWhitespaceToken(); - if (t!=null) { + if (t != null) { return t; } } - return getPreviousImportantToken(doc, line-1); + return getPreviousImportantToken(doc, line - 1); } - - + /** * Returns the last non-whitespace, non-comment token, before the * specified offset. * - * @param doc The document. - * @param offs The ending offset for the search. + * @param doc + * The document. + * @param offs + * The ending offset for the search. * @return The last non-whitespace, non-comment token, or null * if there isn't one. * @see #getPreviousImportantToken(RSyntaxDocument, int) * @see #getNextImportantToken(Token, RSyntaxTextArea, int) */ - public static Token getPreviousImportantTokenFromOffs( - RSyntaxDocument doc, int offs) { - + public static Token getPreviousImportantTokenFromOffs(RSyntaxDocument doc, int offs) { Element root = doc.getDefaultRootElement(); int line = root.getElementIndex(offs); Token t = doc.getTokenListForLine(line); - // Check line containing offs Token target = null; - while (t!=null && t.isPaintable() && !t.containsPosition(offs)) { + while (t != null && t.isPaintable() && !t.containsPosition(offs)) { if (!t.isCommentOrWhitespace()) { target = t; } t = t.getNextToken(); } - // Check previous line(s) - if (target==null) { - target = RSyntaxUtilities.getPreviousImportantToken(doc, line-1); + if (target == null) { + target = RSyntaxUtilities.getPreviousImportantToken(doc, line - 1); } - return target; - } - - + /** * Returns the token at the specified offset. * - * @param textArea The text area. - * @param offset The offset of the token. + * @param textArea + * The text area. + * @param offset + * The offset of the token. * @return The token, or null if the offset is not valid. * @see #getTokenAtOffset(RSyntaxDocument, int) * @see #getTokenAtOffset(Token, int) */ - public static Token getTokenAtOffset(RSyntaxTextArea textArea, - int offset) { - RSyntaxDocument doc = (RSyntaxDocument)textArea.getDocument(); + public static Token getTokenAtOffset(RSyntaxTextArea textArea, int offset) { + RSyntaxDocument doc = (RSyntaxDocument) textArea.getDocument(); return RSyntaxUtilities.getTokenAtOffset(doc, offset); } - - + /** * Returns the token at the specified offset. * - * @param doc The document. - * @param offset The offset of the token. + * @param doc + * The document. + * @param offset + * The offset of the token. * @return The token, or null if the offset is not valid. * @see #getTokenAtOffset(RSyntaxTextArea, int) * @see #getTokenAtOffset(Token, int) */ - public static Token getTokenAtOffset(RSyntaxDocument doc, - int offset) { + public static Token getTokenAtOffset(RSyntaxDocument doc, int offset) { Element root = doc.getDefaultRootElement(); int lineIndex = root.getElementIndex(offset); Token t = doc.getTokenListForLine(lineIndex); return RSyntaxUtilities.getTokenAtOffset(t, offset); } - - + /** * Returns the token at the specified index, or null if * the given offset isn't in this token list's range.
* Note that this method does NOT check to see if tokenList * is null; callers should check for themselves. * - * @param tokenList The list of tokens in which to search. - * @param offset The offset at which to get the token. + * @param tokenList + * The list of tokens in which to search. + * @param offset + * The offset at which to get the token. * @return The token at offset, or null if * none of the tokens are at that offset. * @see #getTokenAtOffset(RSyntaxTextArea, int) * @see #getTokenAtOffset(RSyntaxDocument, int) */ public static Token getTokenAtOffset(Token tokenList, int offset) { - for (Token t=tokenList; t!=null && t.isPaintable(); t=t.getNextToken()){ + for (Token t = tokenList; t != null && t.isPaintable(); t = t.getNextToken()) { if (t.containsPosition(offset)) { return t; } } return null; } - - + /** * Returns the end of the word at the given offset. * - * @param textArea The text area. - * @param offs The offset into the text area's content. + * @param textArea + * The text area. + * @param offs + * The offset into the text area's content. * @return The end offset of the word. - * @throws BadLocationException If offs is invalid. + * @throws BadLocationException + * If offs is invalid. * @see #getWordStart(RSyntaxTextArea, int) */ - public static int getWordEnd(RSyntaxTextArea textArea, int offs) - throws BadLocationException { - + public static int getWordEnd(RSyntaxTextArea textArea, int offs) throws BadLocationException { Document doc = textArea.getDocument(); int endOffs = textArea.getLineEndOffsetOfCurrentLine(); int lineEnd = Math.min(endOffs, doc.getLength()); if (offs == lineEnd) { // End of the line. return offs; } - - String s = doc.getText(offs, lineEnd-offs-1); - if (s!=null && s.length()>0) { // Should always be true + String s = doc.getText(offs, lineEnd - offs - 1); + if (s != null && s.length() > 0) { // Should always be true int i = 0; int count = s.length(); char ch = s.charAt(i); if (Character.isWhitespace(ch)) { - while (ioffs is invalid. + * @throws BadLocationException + * If offs is invalid. * @see #getWordEnd(RSyntaxTextArea, int) */ - public static int getWordStart(RSyntaxTextArea textArea, int offs) - throws BadLocationException { - + public static int getWordStart(RSyntaxTextArea textArea, int offs) throws BadLocationException { Document doc = textArea.getDocument(); Element line = getLineElem(doc, offs); if (line == null) { throw new BadLocationException("No word at " + offs, offs); } - int lineStart = line.getStartOffset(); - if (offs==lineStart) { // Start of the line. + if (offs == lineStart) { // Start of the line. return offs; } - - int endOffs = Math.min(offs+1, doc.getLength()); - String s = doc.getText(lineStart, endOffs-lineStart); - if(s != null && s.length() > 0) { + int endOffs = Math.min(offs + 1, doc.getLength()); + String s = doc.getText(lineStart, endOffs - lineStart); + if (s != null && s.length() > 0) { int i = s.length() - 1; char ch = s.charAt(i); if (Character.isWhitespace(ch)) { - while (i>0 && Character.isWhitespace(s.charAt(i-1))) { + while (i > 0 && Character.isWhitespace(s.charAt(i - 1))) { + i--; + } + offs = lineStart + i; + } else if (Character.isLetterOrDigit(ch)) { + while (i > 0 && Character.isLetterOrDigit(s.charAt(i - 1))) { i--; } offs = lineStart + i; } - else if (Character.isLetterOrDigit(ch)) { - while (i>0 && Character.isLetterOrDigit(s.charAt(i-1))) { - i--; - } - offs = lineStart + i; - } - } - return offs; - } - - + /** * Determines the width of the given token list taking tabs - * into consideration. This is implemented in a 1.1 style coordinate - * system where ints are used and 72dpi is assumed.

+ * into consideration. This is implemented in a 1.1 style coordinate + * system where ints are used and 72dpi is assumed. + *

* * This method also assumes that the passed-in token list begins at * x-pixel 0 in the view (for tab purposes). * - * @param tokenList The tokenList list representing the text. - * @param textArea The text area in which this token list resides. - * @param e The tab expander. This value cannot be null. + * @param tokenList + * The tokenList list representing the text. + * @param textArea + * The text area in which this token list resides. + * @param e + * The tab expander. This value cannot be null. * @return The width of the token list, in pixels. */ - public static float getTokenListWidth(Token tokenList, - RSyntaxTextArea textArea, - TabExpander e) { + public static float getTokenListWidth(Token tokenList, RSyntaxTextArea textArea, TabExpander e) { return getTokenListWidth(tokenList, textArea, e, 0); } - - + /** * Determines the width of the given token list taking tabs - * into consideration. This is implemented in a 1.1 style coordinate - * system where ints are used and 72dpi is assumed.

+ * into consideration. This is implemented in a 1.1 style coordinate + * system where ints are used and 72dpi is assumed. + *

* - * @param tokenList The token list list representing the text. - * @param textArea The text area in which this token list resides. - * @param e The tab expander. This value cannot be null. - * @param x0 The x-pixel coordinate of the start of the token list. + * @param tokenList + * The token list list representing the text. + * @param textArea + * The text area in which this token list resides. + * @param e + * The tab expander. This value cannot be null. + * @param x0 + * The x-pixel coordinate of the start of the token list. * @return The width of the token list, in pixels. * @see #getTokenListWidthUpTo */ - public static float getTokenListWidth(final Token tokenList, - RSyntaxTextArea textArea, - TabExpander e, float x0) { + public static float getTokenListWidth(final Token tokenList, RSyntaxTextArea textArea, TabExpander e, float x0) { float width = x0; - for (Token t=tokenList; t!=null&&t.isPaintable(); t=t.getNextToken()) { + for (Token t = tokenList; t != null && t.isPaintable(); t = t.getNextToken()) { width += t.getWidth(textArea, e, width); } return width - x0; } - - + /** * Determines the width of the given token list taking tabs into * consideration and only up to the given index in the document * (exclusive). * - * @param tokenList The token list representing the text. - * @param textArea The text area in which this token list resides. - * @param e The tab expander. This value cannot be null. - * @param x0 The x-pixel coordinate of the start of the token list. - * @param upTo The document position at which you want to stop, - * exclusive. If this position is before the starting position - * of the token list, a width of 0 will be - * returned; similarly, if this position comes after the entire - * token list, the width of the entire token list is returned. + * @param tokenList + * The token list representing the text. + * @param textArea + * The text area in which this token list resides. + * @param e + * The tab expander. This value cannot be null. + * @param x0 + * The x-pixel coordinate of the start of the token list. + * @param upTo + * The document position at which you want to stop, + * exclusive. If this position is before the starting position + * of the token list, a width of 0 will be + * returned; similarly, if this position comes after the entire + * token list, the width of the entire token list is returned. * @return The width of the token list, in pixels, up to, but not * including, the character at position upTo. * @see #getTokenListWidth */ - public static float getTokenListWidthUpTo(final Token tokenList, - RSyntaxTextArea textArea, TabExpander e, - float x0, int upTo) { + public static float getTokenListWidthUpTo(final Token tokenList, RSyntaxTextArea textArea, TabExpander e, float x0, int upTo) { float width = 0; - for (Token t=tokenList; t!=null&&t.isPaintable(); t=t.getNextToken()) { + for (Token t = tokenList; t != null && t.isPaintable(); t = t.getNextToken()) { if (t.containsPosition(upTo)) { - return width + t.getWidthUpTo(upTo-t.getOffset(), textArea, e, - x0+width); + return width + t.getWidthUpTo(upTo - t.getOffset(), textArea, e, x0 + width); } - width += t.getWidth(textArea, e, x0+width); + width += t.getWidth(textArea, e, x0 + width); } return width; } - - + /** * Returns whether or not this character is a "bracket" to be matched by * such programming languages as C, C++, and Java. * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether or not the character is a "bracket" - one of '(', ')', * '[', ']', '{', and '}'. */ public static boolean isBracket(char ch) { // We need the first condition as it might be that ch>255, and thus - // not in our table. '}' is the highest-valued char in the bracket + // not in our table. '}' is the highest-valued char in the bracket // set. - return ch<='}' && (DATA_TABLE[ch]&BRACKET_MASK)>0; + return ch <= '}' && (DATA_TABLE[ch] & BRACKET_MASK) > 0; } - - + /** * Returns whether or not a character is a digit (0-9). * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether or not the character is a digit. */ public static boolean isDigit(char ch) { // We do it this way as we'd need to do two conditions anyway (first // to check that ch<255 so it can index into our table, then whether // that table position has the digit mask). - return ch>='0' && ch<='9'; + return ch >= '0' && ch <= '9'; } - - + /** - * Returns whether or not this character is a hex character. This method + * Returns whether or not this character is a hex character. This method * accepts both upper- and lower-case letters a-f. * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether or not the character is a hex character 0-9, a-f, or * A-F. */ public static boolean isHexCharacter(char ch) { // We need the first condition as it could be that ch>255 (and thus - // not a valid index into our table). 'f' is the highest-valued + // not a valid index into our table). 'f' is the highest-valued // char that is a valid hex character. - return (ch<='f') && (DATA_TABLE[ch]&HEX_CHARACTER_MASK)>0; + return (ch <= 'f') && (DATA_TABLE[ch] & HEX_CHARACTER_MASK) > 0; } - - + /** - * Returns whether a character is a Java operator. Note that C and C++ + * Returns whether a character is a Java operator. Note that C and C++ * operators are the same as Java operators. * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether or not the character is a Java operator. */ public static boolean isJavaOperator(char ch) { // We need the first condition as it could be that ch>255 (and thus - // not a valid index into our table). '~' is the highest-valued + // not a valid index into our table). '~' is the highest-valued // char that is a valid Java operator. - return (ch<='~') && (DATA_TABLE[ch]&JAVA_OPERATOR_MASK)>0; + return (ch <= '~') && (DATA_TABLE[ch] & JAVA_OPERATOR_MASK) > 0; } - - + /** * Returns whether a character is a US-ASCII letter (A-Z or a-z). * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether or not the character is a US-ASCII letter. */ public static boolean isLetter(char ch) { // We need the first condition as it could be that ch>255 (and thus // not a valid index into our table). - return (ch<='z') && (DATA_TABLE[ch]&LETTER_MASK)>0; + return (ch <= 'z') && (DATA_TABLE[ch] & LETTER_MASK) > 0; } - - + /** * Returns whether or not a character is a US-ASCII letter or a digit. * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether or not the character is a US-ASCII letter or a digit. */ public static boolean isLetterOrDigit(char ch) { // We need the first condition as it could be that ch>255 (and thus // not a valid index into our table). - return (ch<='z') && (DATA_TABLE[ch]&LETTER_OR_DIGIT_MASK)>0; + return (ch <= 'z') && (DATA_TABLE[ch] & LETTER_OR_DIGIT_MASK) > 0; } - - + /** * Returns whether the specified color is "light" to use as a foreground. * Colors that return true indicate that the current Look and * Feel probably uses light text colors on a dark background. * - * @param fg The foreground color. + * @param fg + * The foreground color. * @return Whether it is a "light" foreground color. * @see #getHyperlinkForeground() */ public static boolean isLightForeground(Color fg) { - return fg.getRed()>0xa0 && fg.getGreen()>0xa0 && fg.getBlue()>0xa0; + return fg.getRed() > 0xa0 && fg.getGreen() > 0xa0 && fg.getBlue() > 0xa0; } - - + /** * Returns whether the specified token is a single non-word char (e.g. not - * in [A-Za-z]. This is a HACK to work around the fact that + * in [A-Za-z]. This is a HACK to work around the fact that * many standard token makers return things like semicolons and periods as * {@link Token#IDENTIFIER}s just to make the syntax highlighting coloring * look a little better. * - * @param t The token to check. This cannot be null. + * @param t + * The token to check. This cannot be null. * @return Whether the token is a single non-word char. */ public static boolean isNonWordChar(Token t) { - return t.length()==1 && !RSyntaxUtilities.isLetter(t.charAt(0)); + return t.length() == 1 && !RSyntaxUtilities.isLetter(t.charAt(0)); } - - + /** * Returns whether or not a character is a whitespace character (either - * a space ' ' or tab '\t'). This checks for the Unicode character values + * a space ' ' or tab '\t'). This checks for the Unicode character values * 0x0020 and 0x0009. * - * @param ch The character to check. + * @param ch + * The character to check. * @return Whether or not the character is a whitespace character. */ public static boolean isWhitespace(char ch) { // We do it this way as we'd need to do two conditions anyway (first // to check that ch<255 so it can index into our table, then whether // that table position has the whitespace mask). - return ch==' ' || ch=='\t'; + return ch == ' ' || ch == '\t'; } - - + /** * Repaints the gutter in a text area's scroll pane, if necessary. * - * @param textArea The text area. + * @param textArea + * The text area. */ public static void possiblyRepaintGutter(RTextArea textArea) { Gutter gutter = RSyntaxUtilities.getGutter(textArea); - if (gutter!=null) { + if (gutter != null) { gutter.repaint(); } } - - + /** * Returns whether a regular expression token can follow the specified * token in JavaScript. * - * @param t The token to check, which may be null. + * @param t + * The token to check, which may be null. * @return Whether a regular expression token may follow this one in * JavaScript. */ public static boolean regexCanFollowInJavaScript(Token t) { char ch; // We basically try to mimic Eclipse's JS editor's behavior here. - return t==null || - //t.isOperator() || - (t.length()==1 && ( - (ch=t.charAt(0))=='=' || - ch=='(' || - ch==',' || - ch=='?' || - ch==':' || - ch=='[' || - ch=='!' || - ch=='&' - )) || + return t == null || + // t.isOperator() || + (t.length() == 1 && ((ch = t.charAt(0)) == '=' || ch == '(' || ch == ',' || ch == '?' || ch == ':' || ch == '[' || ch == '!' + || ch == '&')) + || /* Operators "==", "===", "!=", "!==", "&&", "||" */ - (t.getType()==Token.OPERATOR && - (t.charAt(t.length()-1)=='=' || - t.is(JS_AND) || t.is(JS_OR))) || - t.is(Token.RESERVED_WORD_2, JS_KEYWORD_RETURN); + (t.getType() == Token.OPERATOR && (t.charAt(t.length() - 1) == '=' || t.is(JS_AND) || t.is(JS_OR))) + || t.is(Token.RESERVED_WORD_2, JS_KEYWORD_RETURN); } - - + /** - * Selects a range of text in a text component. If the new selection is + * Selects a range of text in a text component. If the new selection is * outside of the previous viewable rectangle, then the view is centered * around the new selection. * - * @param textArea The text component whose selection is to be centered. - * @param range The range to select. + * @param textArea + * The text component whose selection is to be centered. + * @param range + * The range to select. */ - public static void selectAndPossiblyCenter(JTextArea textArea, - DocumentRange range, boolean select) { - + public static void selectAndPossiblyCenter(JTextArea textArea, DocumentRange range, boolean select) { int start = range.getStartOffset(); int end = range.getEndOffset(); - boolean foldsExpanded = false; if (textArea instanceof RSyntaxTextArea) { - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; FoldManager fm = rsta.getFoldManager(); if (fm.isCodeFoldingSupportedAndEnabled()) { foldsExpanded = fm.ensureOffsetNotInClosedFold(start); foldsExpanded |= fm.ensureOffsetNotInClosedFold(end); } } - if (select) { textArea.setSelectionStart(start); textArea.setSelectionEnd(end); } - Rectangle r = null; try { r = textArea.modelToView(start); - if (r==null) { // Not yet visible; i.e. JUnit tests + if (r == null) { // Not yet visible; i.e. JUnit tests return; } - if (end!=start) { + if (end != start) { r = r.union(textArea.modelToView(end)); } } catch (BadLocationException ble) { // Never happens @@ -1438,9 +1319,7 @@ return c.getLineStartOffset(line); } return; } - Rectangle visible = textArea.getVisibleRect(); - // If the new selection is already in the view, don't scroll, // as that is visually jarring. if (!foldsExpanded && visible.contains(r)) { @@ -1450,45 +1329,37 @@ return c.getLineStartOffset(line); } return; } - visible.x = r.x - (visible.width - r.width) / 2; visible.y = r.y - (visible.height - r.height) / 2; - Rectangle bounds = textArea.getBounds(); Insets i = textArea.getInsets(); bounds.x = i.left; bounds.y = i.top; bounds.width -= i.left + i.right; bounds.height -= i.top + i.bottom; - if (visible.x < bounds.x) { visible.x = bounds.x; } - if (visible.x + visible.width > bounds.x + bounds.width) { visible.x = bounds.x + bounds.width - visible.width; } - if (visible.y < bounds.y) { visible.y = bounds.y; } - if (visible.y + visible.height > bounds.y + bounds.height) { visible.y = bounds.y + bounds.height - visible.height; } - textArea.scrollRectToVisible(visible); - } - - + /** * If the character is an upper-case US-ASCII letter, it returns the * lower-case version of that letter; otherwise, it just returns the * character. * - * @param ch The character to lower-case (if it is a US-ASCII upper-case - * character). + * @param ch + * The character to lower-case (if it is a US-ASCII upper-case + * character). * @return The lower-case version of the character. */ public static char toLowerCase(char ch) { @@ -1498,29 +1369,28 @@ return c.getLineStartOffset(line); // We do it this way as we'd need to do two conditions anyway (first // to check that ch<255 so it can index into our table, then whether // that table position has the upper-case mask). - if (ch>='A' && ch<='Z') { - return (char)(ch | 0x20); + if (ch >= 'A' && ch <= 'Z') { + return (char) (ch | 0x20); } return ch; } - - + /** * Creates a regular expression pattern that matches a "wildcard" pattern. * - * @param wildcard The wildcard pattern. - * @param matchCase Whether the pattern should be case sensitive. - * @param escapeStartChar Whether to escape a starting '^' - * character. + * @param wildcard + * The wildcard pattern. + * @param matchCase + * Whether the pattern should be case sensitive. + * @param escapeStartChar + * Whether to escape a starting '^' + * character. * @return The pattern. */ - public static Pattern wildcardToPattern(String wildcard, boolean matchCase, - boolean escapeStartChar) { - + public static Pattern wildcardToPattern(String wildcard, boolean matchCase, boolean escapeStartChar) { int flags = RSyntaxUtilities.getPatternFlags(matchCase, 0); - StringBuilder sb = new StringBuilder(); - for (int i=0; i0 || escapeStartChar) { + if (i > 0 || escapeStartChar) { sb.append('\\'); } sb.append('^'); break; case '\\': - case '.': case '|': - case '+': case '-': + case '.': + case '|': + case '+': + case '-': case '$': - case '[': case ']': - case '{': case '}': - case '(': case ')': + case '[': + case ']': + case '{': + case '}': + case '(': + case ')': sb.append('\\').append(ch); break; default: @@ -1549,7 +1424,6 @@ return c.getLineStartOffset(line); break; } } - Pattern p = null; try { p = Pattern.compile(sb.toString(), flags); @@ -1557,10 +1431,6 @@ return c.getLineStartOffset(line); pse.printStackTrace(); p = Pattern.compile(".+"); } - return p; - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RTfToText.java b/src/org/fife/ui/rsyntaxtextarea/RTfToText.java index 67e6a4a..ecb5c28 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RTfToText.java +++ b/src/org/fife/ui/rsyntaxtextarea/RTfToText.java @@ -1,9 +1,7 @@ /* * 07/28/2008 - * * RtfToText.java - Returns the plain text version of RTF documents. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -18,9 +16,9 @@ import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; - /** - * Gets the plain text version of RTF documents.

+ * Gets the plain text version of RTF documents. + *

* * This is used by RtfTransferable to return the plain text * version of the transferable when the receiver does not support RTF. @@ -29,18 +27,18 @@ import java.io.StringReader; * @version 1.0 */ final class RtfToText { - + private Reader r; private StringBuilder sb; private StringBuilder controlWord; private int blockCount; private boolean inControlWord; - - + /** * Private constructor. * - * @param r The reader to read RTF text from. + * @param r + * The reader to read RTF text from. */ private RtfToText(Reader r) { this.r = r; @@ -49,79 +47,71 @@ final class RtfToText { blockCount = 0; inControlWord = false; } - - + /** * Converts the RTF text read from this converter's Reader - * into plain text. It is the caller's responsibility to close the + * into plain text. It is the caller's responsibility to close the * reader after this method is called. * * @return The plain text. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ private String convert() throws IOException { - // Skip over first curly brace as the whole file is in '{' and '}' int i = r.read(); - if (i!='{') { + if (i != '{') { throw new IOException("Invalid RTF file"); } - - while ((i=r.read())!=-1) { - - char ch = (char)i; + while ((i = r.read()) != -1) { + char ch = (char) i; switch (ch) { case '{': - if (inControlWord && controlWord.length()==0) { // "\{" + if (inControlWord && controlWord.length() == 0) { // "\{" sb.append('{'); controlWord.setLength(0); inControlWord = false; - } - else { + } else { blockCount++; } break; case '}': - if (inControlWord && controlWord.length()==0) { // "\}" + if (inControlWord && controlWord.length() == 0) { // "\}" sb.append('}'); controlWord.setLength(0); inControlWord = false; - } - else { + } else { blockCount--; } break; case '\\': - if (blockCount==0) { + if (blockCount == 0) { if (inControlWord) { - if (controlWord.length()==0) { // "\\" + if (controlWord.length() == 0) { // "\\" sb.append('\\'); controlWord.setLength(0); inControlWord = false; - } - else { + } else { endControlWord(); inControlWord = true; } - } - else { + } else { inControlWord = true; } } break; case ' ': - if (blockCount==0) { + if (blockCount == 0) { if (inControlWord) { endControlWord(); - } - else { + } else { sb.append(' '); } } break; case '\r': case '\n': - if (blockCount==0) { + if (blockCount == 0) { if (inControlWord) { endControlWord(); } @@ -129,26 +119,21 @@ final class RtfToText { } break; default: - if (blockCount==0) { + if (blockCount == 0) { if (inControlWord) { controlWord.append(ch); - } - else { + } else { sb.append(ch); } } break; } - } - return sb.toString(); - } - - + /** - * Ends a control word. Checks whether it is a common one that affects + * Ends a control word. Checks whether it is a common one that affects * the plain text output (such as "par" or "tab") * and updates the text buffer accordingly. */ @@ -156,82 +141,84 @@ final class RtfToText { String word = controlWord.toString(); if ("par".equals(word)) { sb.append('\n'); - } - else if ("tab".equals(word)) { + } else if ("tab".equals(word)) { sb.append('\t'); } controlWord.setLength(0); inControlWord = false; } - - + /** * Converts the contents of the specified byte array representing * an RTF document into plain text. * - * @param rtf The byte array representing an RTF document. + * @param rtf + * The byte array representing an RTF document. * @return The contents of the RTF document, in plain text. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ public static String getPlainText(byte[] rtf) throws IOException { return getPlainText(new ByteArrayInputStream(rtf)); } - - + /** * Converts the contents of the specified RTF file to plain text. * - * @param file The RTF file to convert. + * @param file + * The RTF file to convert. * @return The contents of the file, in plain text. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ public static String getPlainText(File file) throws IOException { return getPlainText(new BufferedReader(new FileReader(file))); } - - + /** * Converts the contents of the specified input stream to plain text. * The input stream will be closed when this method returns. * - * @param in The input stream to convert. This will be closed when this - * method returns. + * @param in + * The input stream to convert. This will be closed when this + * method returns. * @return The contents of the stream, in plain text. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ public static String getPlainText(InputStream in) throws IOException { return getPlainText(new InputStreamReader(in, "US-ASCII")); } - - + /** * Converts the contents of the specified Reader to plain text. * - * @param r The Reader. This will be closed when this method - * returns. + * @param r + * The Reader. This will be closed when this method + * returns. * @return The contents of the Reader, in plain text. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ private static String getPlainText(Reader r) throws IOException { try { - RtfToText converter = new RtfToText(r); + RtfToText converter = new RtfToText(r); return converter.convert(); } finally { r.close(); } } - - + /** * Converts the contents of the specified String to plain text. * - * @param rtf A string whose contents represent an RTF document. + * @param rtf + * A string whose contents represent an RTF document. * @return The contents of the String, in plain text. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ public static String getPlainText(String rtf) throws IOException { return getPlainText(new StringReader(rtf)); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RtfGenerator.java b/src/org/fife/ui/rsyntaxtextarea/RtfGenerator.java index f9503d5..6e40e99 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RtfGenerator.java +++ b/src/org/fife/ui/rsyntaxtextarea/RtfGenerator.java @@ -1,9 +1,7 @@ /* * 07/28/2008 - * * RtfGenerator.java - Generates RTF via a simple Java API. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -16,33 +14,33 @@ import java.util.List; import org.fife.ui.rtextarea.RTextArea; - /** - * Generates RTF text via a simple Java API.

+ * Generates RTF text via a simple Java API. + *

* * The following RTF features are supported: *

    - *
  • Fonts - *
  • Font sizes - *
  • Foreground and background colors - *
  • Bold, italic, and underline + *
  • Fonts + *
  • Font sizes + *
  • Foreground and background colors + *
  • Bold, italic, and underline *
* * The RTF generated isn't really "optimized," but it will do, especially for - * small amounts of text, such as what's common when copy-and-pasting. It + * small amounts of text, such as what's common when copy-and-pasting. It * tries to be sufficient for the use case of copying syntax highlighted * code: *
    - *
  • It assumes that tokens changing foreground color often is fairly - * common. - *
  • It assumes that background highlighting is fairly uncommon. + *
  • It assumes that tokens changing foreground color often is fairly + * common. + *
  • It assumes that background highlighting is fairly uncommon. *
* * @author Robert Futrell * @version 1.0 */ public class RtfGenerator { - + private List fontList; private List colorList; private StringBuilder document; @@ -52,22 +50,19 @@ public class RtfGenerator { private boolean lastBold; private boolean lastItalic; private int lastFontSize; - /** * Java2D assumes a 72 dpi screen resolution, but on Windows the screen * resolution is either 96 dpi or 120 dpi, depending on your font display - * settings. This is an attempt to make the RTF generated match the + * settings. This is an attempt to make the RTF generated match the * size of what's displayed in the RSyntaxTextArea. */ private int screenRes; - /** - * The default font size for RTF. This is point size, in half + * The default font size for RTF. This is point size, in half * points. */ - private static final int DEFAULT_FONT_SIZE = 12;//24; - - + private static final int DEFAULT_FONT_SIZE = 12;// 24; + /** * Constructor. */ @@ -77,8 +72,7 @@ public class RtfGenerator { document = new StringBuilder(); reset(); } - - + /** * Adds a newline to the RTF document. * @@ -89,110 +83,118 @@ public class RtfGenerator { document.append('\n'); // Just for ease of reading RTF. lastWasControlWord = false; } - - + /** * Appends styled text to the RTF document being generated. * - * @param text The text to append. - * @param f The font of the text. If this is null, the - * default font is used. - * @param fg The foreground of the text. If this is null, - * the default foreground color is used. - * @param bg The background color of the text. If this is - * null, the default background color is used. + * @param text + * The text to append. + * @param f + * The font of the text. If this is null, the + * default font is used. + * @param fg + * The foreground of the text. If this is null, + * the default foreground color is used. + * @param bg + * The background color of the text. If this is + * null, the default background color is used. * @see #appendNewline() */ public void appendToDoc(String text, Font f, Color fg, Color bg) { appendToDoc(text, f, fg, bg, false); } - - + /** * Appends styled text to the RTF document being generated. * - * @param text The text to append. - * @param f The font of the text. If this is null, the - * default font is used. - * @param bg The background color of the text. If this is - * null, the default background color is used. - * @param underline Whether the text should be underlined. + * @param text + * The text to append. + * @param f + * The font of the text. If this is null, the + * default font is used. + * @param bg + * The background color of the text. If this is + * null, the default background color is used. + * @param underline + * Whether the text should be underlined. * @see #appendNewline() */ - public void appendToDocNoFG(String text, Font f, Color bg, - boolean underline) { + public void appendToDocNoFG(String text, Font f, Color bg, boolean underline) { appendToDoc(text, f, null, bg, underline, false); } - - + /** * Appends styled text to the RTF document being generated. * - * @param text The text to append. - * @param f The font of the text. If this is null, the - * default font is used. - * @param fg The foreground of the text. If this is null, - * the default foreground color is used. - * @param bg The background color of the text. If this is - * null, the default background color is used. - * @param underline Whether the text should be underlined. + * @param text + * The text to append. + * @param f + * The font of the text. If this is null, the + * default font is used. + * @param fg + * The foreground of the text. If this is null, + * the default foreground color is used. + * @param bg + * The background color of the text. If this is + * null, the default background color is used. + * @param underline + * Whether the text should be underlined. * @see #appendNewline() */ - public void appendToDoc(String text, Font f, Color fg, Color bg, - boolean underline) { + public void appendToDoc(String text, Font f, Color fg, Color bg, boolean underline) { appendToDoc(text, f, fg, bg, underline, true); } - - + /** * Appends styled text to the RTF document being generated. * - * @param text The text to append. - * @param f The font of the text. If this is null, the - * default font is used. - * @param fg The foreground of the text. If this is null, - * the default foreground color is used. - * @param bg The background color of the text. If this is - * null, the default background color is used. - * @param underline Whether the text should be underlined. - * @param setFG Whether the foreground specified by fg should - * be honored (if it is non-null). + * @param text + * The text to append. + * @param f + * The font of the text. If this is null, the + * default font is used. + * @param fg + * The foreground of the text. If this is null, + * the default foreground color is used. + * @param bg + * The background color of the text. If this is + * null, the default background color is used. + * @param underline + * Whether the text should be underlined. + * @param setFG + * Whether the foreground specified by fg should + * be honored (if it is non-null). * @see #appendNewline() */ - public void appendToDoc(String text, Font f, Color fg, Color bg, - boolean underline, boolean setFG) { - - if (text!=null) { - + public void appendToDoc(String text, Font f, Color fg, Color bg, boolean underline, boolean setFG) { + if (text != null) { // Set font to use, if different from last addition. - int fontIndex = f==null ? 0 : (getFontIndex(fontList, f)+1); - if (fontIndex!=lastFontIndex) { + int fontIndex = f == null ? 0 : (getFontIndex(fontList, f) + 1); + if (fontIndex != lastFontIndex) { document.append("\\f").append(fontIndex); lastFontIndex = fontIndex; lastWasControlWord = true; } - // Set styles to use. - if (f!=null) { - int fontSize = fixFontSize(f.getSize2D()*2); // Half points! - if (fontSize!=lastFontSize) { + if (f != null) { + int fontSize = fixFontSize(f.getSize2D() * 2); // Half points! + if (fontSize != lastFontSize) { document.append("\\fs").append(fontSize); lastFontSize = fontSize; lastWasControlWord = true; } - if (f.isBold()!=lastBold) { + if (f.isBold() != lastBold) { document.append(lastBold ? "\\b0" : "\\b"); lastBold = !lastBold; lastWasControlWord = true; } - if (f.isItalic()!=lastItalic) { + if (f.isItalic() != lastItalic) { document.append(lastItalic ? "\\i0" : "\\i"); lastItalic = !lastItalic; lastWasControlWord = true; } - } - else { // No font specified - assume neither bold nor italic. - if (lastFontSize!=DEFAULT_FONT_SIZE) { + } else { // No font specified - assume neither bold nor italic. + if (lastFontSize != DEFAULT_FONT_SIZE) { document.append("\\fs").append(DEFAULT_FONT_SIZE); lastFontSize = DEFAULT_FONT_SIZE; lastWasControlWord = true; @@ -212,35 +214,31 @@ public class RtfGenerator { document.append("\\ul"); lastWasControlWord = true; } - // Set the foreground color. if (setFG) { int fgIndex = 0; - if (fg!=null) { // null => fg color index 0 - fgIndex = getColorIndex(colorList, fg)+1; + if (fg != null) { // null => fg color index 0 + fgIndex = getColorIndex(colorList, fg) + 1; } - if (fgIndex!=lastFGIndex) { + if (fgIndex != lastFGIndex) { document.append("\\cf").append(fgIndex); lastFGIndex = fgIndex; lastWasControlWord = true; } } - // Set the background color. - if (bg!=null) { + if (bg != null) { int pos = getColorIndex(colorList, bg); - document.append("\\highlight").append(pos+1); + document.append("\\highlight").append(pos + 1); lastWasControlWord = true; } - if (lastWasControlWord) { document.append(' '); // Delimiter lastWasControlWord = false; } escapeAndAdd(document, text); - // Reset everything that was set for this text fragment. - if (bg!=null) { + if (bg != null) { document.append("\\highlight0"); lastWasControlWord = true; } @@ -248,28 +246,27 @@ public class RtfGenerator { document.append("\\ul0"); lastWasControlWord = true; } - } - } - - + /** * Appends some text to a buffer, with special care taken for special * characters as defined by the RTF spec. * *
    - *
  • All tab characters are replaced with the string - * "\tab" - *
  • '\', '{' and '}' are changed to "\\", "\{" and "\}" + *
  • All tab characters are replaced with the string + * "\tab" + *
  • '\', '{' and '}' are changed to "\\", "\{" and "\}" *
* - * @param text The text to append (with tab chars substituted). - * @param sb The buffer to append to. + * @param text + * The text to append (with tab chars substituted). + * @param sb + * The buffer to append to. */ private void escapeAndAdd(StringBuilder sb, String text) { int count = text.length(); - for (int i=0; i + * Returns a font point size, adjusted for the current screen resolution. + *

* - * Java2D assumes 72 dpi. On systems with larger dpi (Windows, GTK, etc.), + * Java2D assumes 72 dpi. On systems with larger dpi (Windows, GTK, etc.), * font rendering will appear too small if we simply return a Java "Font" - * object's getSize() value. We need to adjust it for the screen + * object's getSize() value. We need to adjust it for the screen * resolution. * - * @param pointSize A Java Font's point size, as returned from - * getSize2D(). + * @param pointSize + * A Java Font's point size, as returned from + * getSize2D(). * @return The font point size, adjusted for the current screen resolution. * This will allow other applications to render fonts the same * size as they appear in the Java application. */ private int fixFontSize(float pointSize) { - if (screenRes!=72) { // Java2D assumes 72 dpi - pointSize = Math.round(pointSize*72f/screenRes); + if (screenRes != 72) { // Java2D assumes 72 dpi + pointSize = Math.round(pointSize * 72f / screenRes); } - return (int)pointSize; + return (int) pointSize; } - - + /** - * Returns the index of the specified item in a list. If the item + * Returns the index of the specified item in a list. If the item * is not in the list, it is added, and its new index is returned. * - * @param list The list (possibly) containing the item. - * @param item The item to get the index of. + * @param list + * The list (possibly) containing the item. + * @param item + * The item to get the index of. * @return The index of the item. */ private static int getColorIndex(List list, Color item) { int pos = list.indexOf(item); - if (pos==-1) { + if (pos == -1) { list.add(item); - pos = list.size()-1; + pos = list.size() - 1; } return pos; } - - + private String getColorTableRtf() { - // Example: // "{\\colortbl ;\\red255\\green0\\blue0;\\red0\\green0\\blue255; }" - StringBuilder sb = new StringBuilder(); - sb.append("{\\colortbl ;"); for (Color c : colorList) { sb.append("\\red").append(c.getRed()); @@ -356,66 +351,58 @@ public class RtfGenerator { sb.append(';'); } sb.append("}"); - return sb.toString(); - } - - + /** - * Returns the index of the specified font in a list of fonts. This + * Returns the index of the specified font in a list of fonts. This * method only checks for a font by its family name; its attributes such - * as bold and italic are ignored.

+ * as bold and italic are ignored. + *

* * If the font is not in the list, it is added, and its new index is * returned. * - * @param list The list (possibly) containing the font. - * @param font The font to get the index of. + * @param list + * The list (possibly) containing the font. + * @param font + * The font to get the index of. * @return The index of the font. */ private static int getFontIndex(List list, Font font) { String fontName = font.getFamily(); - for (int i=0; iString. */ public String getRtf() { - StringBuilder sb = new StringBuilder(); sb.append("{"); - // Header sb.append("\\rtf1\\ansi\\ansicpg1252"); sb.append("\\deff0"); // First font in font table is the default sb.append("\\deflang1033"); - sb.append("\\viewkind4"); // "Normal" view + sb.append("\\viewkind4"); // "Normal" view sb.append("\\uc\\pard\\f0"); - sb.append("\\fs20"); // Font size in half-points (default 24) + sb.append("\\fs20"); // Font size in half-points (default 24) sb.append(getFontTableRtf()).append('\n'); sb.append(getColorTableRtf()).append('\n'); - // Content sb.append(document); - sb.append("}"); - - //System.err.println("*** " + sb.length()); + // System.err.println("*** " + sb.length()); return sb.toString(); - } - - + /** - * Resets this generator. All document information and content is + * Resets this generator. All document information and content is * cleared. */ public void reset() { @@ -478,6 +457,4 @@ public class RtfGenerator { lastFontSize = DEFAULT_FONT_SIZE; screenRes = Toolkit.getDefaultToolkit().getScreenResolution(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/RtfTransferable.java b/src/org/fife/ui/rsyntaxtextarea/RtfTransferable.java index e4efda5..25823ea 100644 --- a/src/org/fife/ui/rsyntaxtextarea/RtfTransferable.java +++ b/src/org/fife/ui/rsyntaxtextarea/RtfTransferable.java @@ -1,9 +1,7 @@ /* * 07/28/2008 - * * RtfTransferable.java - Used during drag-and-drop to represent RTF text. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -15,10 +13,9 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.StringReader; - /** * Object used during copy/paste and DnD operations to represent RTF text. - * It can return the text being moved as either RTF or plain text. This + * It can return the text being moved as either RTF or plain text. This * class is basically the same as * java.awt.datatransfer.StringSelection, except that it can also * return the text as RTF. @@ -27,70 +24,56 @@ import java.io.StringReader; * @version 1.0 */ class RtfTransferable implements Transferable { - + /** * The RTF data, in bytes (the RTF is 7-bit ascii). */ private byte[] data; - - /** * The "flavors" the text can be returned as. */ - private static final DataFlavor[] FLAVORS = { - new DataFlavor("text/rtf", "RTF"), - DataFlavor.stringFlavor, - DataFlavor.plainTextFlavor // deprecated + private static final DataFlavor[] FLAVORS = { new DataFlavor("text/rtf", "RTF"), DataFlavor.stringFlavor, DataFlavor.plainTextFlavor // deprecated }; - - + /** * Constructor. * - * @param data The RTF data. + * @param data + * The RTF data. */ RtfTransferable(byte[] data) { this.data = data; } - - + @Override - public Object getTransferData(DataFlavor flavor) - throws UnsupportedFlavorException, IOException { + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (flavor.equals(FLAVORS[0])) { // RTF - return new ByteArrayInputStream(data==null ? new byte[0] : data); - } - else if (flavor.equals(FLAVORS[1])) { // stringFlavor - return data==null ? "" : RtfToText.getPlainText(data); - } - else if (flavor.equals(FLAVORS[2])) { // plainTextFlavor (deprecated) + return new ByteArrayInputStream(data == null ? new byte[0] : data); + } else if (flavor.equals(FLAVORS[1])) { // stringFlavor + return data == null ? "" : RtfToText.getPlainText(data); + } else if (flavor.equals(FLAVORS[2])) { // plainTextFlavor (deprecated) String text = ""; // Valid if data==null - if (data!=null) { + if (data != null) { text = RtfToText.getPlainText(data); } return new StringReader(text); - } - else { + } else { throw new UnsupportedFlavorException(flavor); } } - - + @Override public DataFlavor[] getTransferDataFlavors() { return FLAVORS.clone(); } - - + @Override public boolean isDataFlavorSupported(DataFlavor flavor) { - for (int i=0; i + * errors, warnings, etc. + *

* * This class must be used as a LayerPainter. * * @author Robert Futrell * @version 1.0 */ -public class SquiggleUnderlineHighlightPainter - extends ChangeableHighlightPainter { - - private static final int AMT = 2; - +public class SquiggleUnderlineHighlightPainter extends ChangeableHighlightPainter { + + private static final int AMT = 2; + /** * Constructor. * - * @param color The color of the squiggle. This cannot be - * null. + * @param color + * The color of the squiggle. This cannot be + * null. */ public SquiggleUnderlineHighlightPainter(Color color) { super(color); setPaint(color); } - - + /** * Paints a portion of a highlight. * - * @param g the graphics context - * @param offs0 the starting model offset >= 0 - * @param offs1 the ending model offset >= offs1 - * @param bounds the bounding box of the view, which is not - * necessarily the region to paint. - * @param c the editor - * @param view View painting for + * @param g + * the graphics context + * @param offs0 + * the starting model offset >= 0 + * @param offs1 + * the ending model offset >= offs1 + * @param bounds + * the bounding box of the view, which is not + * necessarily the region to paint. + * @param c + * the editor + * @param view + * View painting for * @return region drawing occurred in */ @Override - public Shape paintLayer(Graphics g, int offs0, int offs1, - Shape bounds, JTextComponent c, View view) { - - g.setColor((Color)getPaint()); - + public Shape paintLayer(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c, View view) { + g.setColor((Color) getPaint()); if (offs0 == view.getStartOffset() && offs1 == view.getEndOffset()) { // Contained in view, can just use bounds. Rectangle alloc; if (bounds instanceof Rectangle) { - alloc = (Rectangle)bounds; - } - else { + alloc = (Rectangle) bounds; + } else { alloc = bounds.getBounds(); } paintSquiggle(g, alloc); return alloc; } - // Otherwise, should only render part of View. try { // --- determine locations --- - Shape shape = view.modelToView(offs0, Position.Bias.Forward, - offs1,Position.Bias.Backward, - bounds); - Rectangle r = (shape instanceof Rectangle) ? - (Rectangle)shape : shape.getBounds(); + Shape shape = view.modelToView(offs0, Position.Bias.Forward, offs1, Position.Bias.Backward, bounds); + Rectangle r = (shape instanceof Rectangle) ? (Rectangle) shape : shape.getBounds(); paintSquiggle(g, r); return r; } catch (BadLocationException e) { e.printStackTrace(); // can't render } - // Only if exception return null; - } - - + /** * Paints a squiggle underneath text in the specified rectangle. * - * @param g The graphics context with which to paint. - * @param r The rectangle containing the text. + * @param g + * The graphics context with which to paint. + * @param r + * The rectangle containing the text. */ protected void paintSquiggle(Graphics g, Rectangle r) { int x = r.x; int y = r.y + r.height - AMT; int delta = -AMT; - while (xRSyntaxTextArea has a corresponding Style; this * Style tells us the following things: * *

    - *
  • What foreground color to use for tokens of this type.
  • - *
  • What background color to use.
  • - *
  • The font to use.
  • - *
  • Whether the token should be underlined.
  • + *
  • What foreground color to use for tokens of this type.
  • + *
  • What background color to use.
  • + *
  • The font to use.
  • + *
  • Whether the token should be underlined.
  • *
* * @author Robert Futrell @@ -33,19 +30,16 @@ import javax.swing.JPanel; */ @SuppressWarnings({ "checkstyle:visibilitymodifier" }) public class Style implements Cloneable { - - public static final Color DEFAULT_FOREGROUND = Color.BLACK; - public static final Color DEFAULT_BACKGROUND = null; - public static final Font DEFAULT_FONT = null; - + + public static final Color DEFAULT_FOREGROUND = Color.BLACK; + public static final Color DEFAULT_BACKGROUND = null; + public static final Font DEFAULT_FONT = null; public Color foreground; public Color background; public boolean underline; public Font font; - public FontMetrics fontMetrics; - - + /** * Creates a new style defaulting to black foreground, no * background, and no styling. @@ -53,68 +47,74 @@ public class Style implements Cloneable { public Style() { this(DEFAULT_FOREGROUND); } - - + /** * Creates a new style with the specified foreground and no styling. * - * @param fg The foreground color to use. + * @param fg + * The foreground color to use. */ public Style(Color fg) { this(fg, DEFAULT_BACKGROUND); } - - + /** * Creates a new style with the specified colors and no styling. * - * @param fg The foreground color to use. - * @param bg The background color to use. + * @param fg + * The foreground color to use. + * @param bg + * The background color to use. */ public Style(Color fg, Color bg) { this(fg, bg, DEFAULT_FONT); } - - + /** * Creates a new style. * - * @param fg The foreground color to use. - * @param bg The background color to use. - * @param font The font for this syntax scheme. + * @param fg + * The foreground color to use. + * @param bg + * The background color to use. + * @param font + * The font for this syntax scheme. */ public Style(Color fg, Color bg, Font font) { this(fg, bg, font, false); } - - + /** * Creates a new style. * - * @param fg The foreground color to use. - * @param bg The background color to use. - * @param font The font for this syntax scheme. - * @param underline Whether or not to underline tokens with this style. + * @param fg + * The foreground color to use. + * @param bg + * The background color to use. + * @param font + * The font for this syntax scheme. + * @param underline + * Whether or not to underline tokens with this style. */ public Style(Color fg, Color bg, Font font, boolean underline) { foreground = fg; background = bg; this.font = font; this.underline = underline; - this.fontMetrics = font==null ? null : - new JPanel().getFontMetrics(font); // Default, no rendering hints! + this.fontMetrics = font == null ? null : new JPanel().getFontMetrics(font); // Default, + // no + // rendering + // hints! } - - + /** * Returns whether or not two (possibly null) objects are * equal. */ private boolean areEqual(Object o1, Object o2) { - return (o1==null && o2==null) || (o1!=null && o1.equals(o2)); + return (o1 == null && o2 == null) || (o1 != null && o1.equals(o2)); } - - + /** * Returns a deep copy of this object. * @@ -124,7 +124,7 @@ public class Style implements Cloneable { public Object clone() { Style clone = null; try { - clone = (Style)super.clone(); + clone = (Style) super.clone(); } catch (CloneNotSupportedException cnse) { // Never happens cnse.printStackTrace(); return null; @@ -136,34 +136,31 @@ public class Style implements Cloneable { clone.fontMetrics = fontMetrics; return clone; } - - + /** * Returns whether or not two syntax schemes are equal. * - * @param o2 The object with which to compare this syntax scheme. + * @param o2 + * The object with which to compare this syntax scheme. * @return Whether or not these two syntax schemes represent the same * scheme. */ @Override public boolean equals(Object o2) { if (o2 instanceof Style) { - Style ss2 = (Style)o2; - if (this.underline==ss2.underline && - areEqual(foreground, ss2.foreground) && - areEqual(background, ss2.background) && - areEqual(font, ss2.font) && - areEqual(fontMetrics, ss2.fontMetrics)) { + Style ss2 = (Style) o2; + if (this.underline == ss2.underline && areEqual(foreground, ss2.foreground) && areEqual(background, ss2.background) + && areEqual(font, ss2.font) && areEqual(fontMetrics, ss2.fontMetrics)) { return true; } } return false; } - - + /** * Computes the hash code to use when adding this syntax scheme to - * hash tables.

+ * hash tables. + *

* * This method is implemented, since {@link #equals(Object)} is implemented, * to keep FindBugs happy. @@ -173,16 +170,15 @@ public class Style implements Cloneable { @Override public int hashCode() { int hashCode = underline ? 1 : 0; - if (foreground!=null) { + if (foreground != null) { hashCode ^= foreground.hashCode(); } - if (background!=null) { + if (background != null) { hashCode ^= background.hashCode(); } return hashCode; } - - + /** * Returns a string representation of this style. * @@ -190,10 +186,6 @@ public class Style implements Cloneable { */ @Override public String toString() { - return "[Style: foreground: " + foreground + - ", background: " + background + ", underline: " + - underline + ", font: " + font + "]"; + return "[Style: foreground: " + foreground + ", background: " + background + ", underline: " + underline + ", font: " + font + "]"; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/SyntaxConstants.java b/src/org/fife/ui/rsyntaxtextarea/SyntaxConstants.java index 454a3a2..50aa9c9 100644 --- a/src/org/fife/ui/rsyntaxtextarea/SyntaxConstants.java +++ b/src/org/fife/ui/rsyntaxtextarea/SyntaxConstants.java @@ -1,25 +1,23 @@ /* * 03/08/2004 - * * SyntaxConstants.java - Constants used by RSyntaxTextArea and friends. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; - /** * Constants that define the different programming languages understood by - * RSyntaxTextArea. These constants are the values you can pass + * RSyntaxTextArea. These constants are the values you can pass * to {@link RSyntaxTextArea#setSyntaxEditingStyle(String)} to get syntax - * highlighting.

+ * highlighting. + *

* * By default, all RSyntaxTextAreas can render all of these * languages, but this can be changed (the list can be augmented or completely - * overwritten) on a per-text area basis. What languages can be rendered is + * overwritten) on a per-text area basis. What languages can be rendered is * actually managed by the {@link TokenMakerFactory} installed on the text - * area's {@link RSyntaxDocument}. By default, all + * area's {@link RSyntaxDocument}. By default, all * RSyntaxDocumenets have a factory installed capable of handling * all of these languages. * @@ -27,294 +25,198 @@ package org.fife.ui.rsyntaxtextarea; * @version 1.0 */ public interface SyntaxConstants { - + /** * Style meaning don't syntax highlight anything. */ - String SYNTAX_STYLE_NONE = "text/plain"; - - + String SYNTAX_STYLE_NONE = "text/plain"; /** * Style for highlighting ActionScript. */ - String SYNTAX_STYLE_ACTIONSCRIPT = "text/actionscript"; - - + String SYNTAX_STYLE_ACTIONSCRIPT = "text/actionscript"; /** * Style for highlighting x86 assembler. */ - String SYNTAX_STYLE_ASSEMBLER_X86 = "text/asm"; - - + String SYNTAX_STYLE_ASSEMBLER_X86 = "text/asm"; /** * Style for highlighting BBCode. */ - String SYNTAX_STYLE_BBCODE = "text/bbcode"; - - + String SYNTAX_STYLE_BBCODE = "text/bbcode"; /** * Style for highlighting C. */ - String SYNTAX_STYLE_C = "text/c"; - - + String SYNTAX_STYLE_C = "text/c"; /** * Style for highlighting Clojure. */ - String SYNTAX_STYLE_CLOJURE = "text/clojure"; - - + String SYNTAX_STYLE_CLOJURE = "text/clojure"; /** * Style for highlighting C++. */ - String SYNTAX_STYLE_CPLUSPLUS = "text/cpp"; - - + String SYNTAX_STYLE_CPLUSPLUS = "text/cpp"; /** * Style for highlighting C#. */ - String SYNTAX_STYLE_CSHARP = "text/cs"; - - + String SYNTAX_STYLE_CSHARP = "text/cs"; /** * Style for highlighting CSS. */ - String SYNTAX_STYLE_CSS = "text/css"; - - + String SYNTAX_STYLE_CSS = "text/css"; /** * Syntax style for highlighting D. */ - String SYNTAX_STYLE_D = "text/d"; - - + String SYNTAX_STYLE_D = "text/d"; /** * Syntax style for highlighting Dockerfiles. */ - String SYNTAX_STYLE_DOCKERFILE = "text/dockerfile"; - - + String SYNTAX_STYLE_DOCKERFILE = "text/dockerfile"; /** * Style for highlighting Dart. */ - String SYNTAX_STYLE_DART = "text/dart"; - - + String SYNTAX_STYLE_DART = "text/dart"; /** * Style for highlighting Delphi/Pascal. */ - String SYNTAX_STYLE_DELPHI = "text/delphi"; - - + String SYNTAX_STYLE_DELPHI = "text/delphi"; /** * Style for highlighting DTD files. */ - String SYNTAX_STYLE_DTD = "text/dtd"; - - + String SYNTAX_STYLE_DTD = "text/dtd"; /** * Style for highlighting Fortran. */ - String SYNTAX_STYLE_FORTRAN = "text/fortran"; - - + String SYNTAX_STYLE_FORTRAN = "text/fortran"; /** * Style for highlighting Groovy. */ - String SYNTAX_STYLE_GROOVY = "text/groovy"; - - + String SYNTAX_STYLE_GROOVY = "text/groovy"; /** * Style for highlighting hosts files. */ - String SYNTAX_STYLE_HOSTS = "text/hosts"; - - + String SYNTAX_STYLE_HOSTS = "text/hosts"; /** * Style for highlighting .htaccess files. */ - String SYNTAX_STYLE_HTACCESS = "text/htaccess"; - - + String SYNTAX_STYLE_HTACCESS = "text/htaccess"; /** * Style for highlighting HTML. */ - String SYNTAX_STYLE_HTML = "text/html"; - - + String SYNTAX_STYLE_HTML = "text/html"; /** * Style for highlighting INI files. */ - String SYNTAX_STYLE_INI = "text/ini"; - - + String SYNTAX_STYLE_INI = "text/ini"; /** * Style for highlighting Java. */ - String SYNTAX_STYLE_JAVA = "text/java"; - - + String SYNTAX_STYLE_JAVA = "text/java"; /** * Style for highlighting Java. */ - String SYNTAX_STYLE_JAVA_DISASSEMBLE = "text/javaassembly"; - - + String SYNTAX_STYLE_JAVA_DISASSEMBLE = "text/javaassembly"; /** * Style for highlighting JavaScript. */ - String SYNTAX_STYLE_JAVASCRIPT = "text/javascript"; - - + String SYNTAX_STYLE_JAVASCRIPT = "text/javascript"; /** * Style for highlighting JSON. */ - String SYNTAX_STYLE_JSON = "text/json"; - - + String SYNTAX_STYLE_JSON = "text/json"; /** * Style for highlighting .jshintrc files (JSON with comments, so can be * used for other times when you want this behavior). */ - String SYNTAX_STYLE_JSON_WITH_COMMENTS = "text/jshintrc"; - - + String SYNTAX_STYLE_JSON_WITH_COMMENTS = "text/jshintrc"; /** * Style for highlighting JSP. */ - String SYNTAX_STYLE_JSP = "text/jsp"; - - + String SYNTAX_STYLE_JSP = "text/jsp"; /** * Style for highlighting LaTeX. */ - String SYNTAX_STYLE_LATEX = "text/latex"; - - + String SYNTAX_STYLE_LATEX = "text/latex"; /** * Style for highlighting Less. */ - String SYNTAX_STYLE_LESS = "text/less"; - - + String SYNTAX_STYLE_LESS = "text/less"; /** * Style for highlighting Lisp. */ - String SYNTAX_STYLE_LISP = "text/lisp"; - - + String SYNTAX_STYLE_LISP = "text/lisp"; /** * Style for highlighting Lua. */ - String SYNTAX_STYLE_LUA = "text/lua"; - - + String SYNTAX_STYLE_LUA = "text/lua"; /** * Style for highlighting makefiles. */ - String SYNTAX_STYLE_MAKEFILE = "text/makefile"; - - + String SYNTAX_STYLE_MAKEFILE = "text/makefile"; /** * Style for highlighting MXML. */ - String SYNTAX_STYLE_MXML = "text/mxml"; - - + String SYNTAX_STYLE_MXML = "text/mxml"; /** * Style for highlighting NSIS install scripts. */ - String SYNTAX_STYLE_NSIS = "text/nsis"; - - + String SYNTAX_STYLE_NSIS = "text/nsis"; /** * Style for highlighting Perl. */ - String SYNTAX_STYLE_PERL = "text/perl"; - - + String SYNTAX_STYLE_PERL = "text/perl"; /** * Style for highlighting PHP. */ - String SYNTAX_STYLE_PHP = "text/php"; - - + String SYNTAX_STYLE_PHP = "text/php"; /** * Style for highlighting properties files. */ - String SYNTAX_STYLE_PROPERTIES_FILE = "text/properties"; - - + String SYNTAX_STYLE_PROPERTIES_FILE = "text/properties"; /** * Style for highlighting Python. */ - String SYNTAX_STYLE_PYTHON = "text/python"; - - + String SYNTAX_STYLE_PYTHON = "text/python"; /** * Style for highlighting Ruby. */ - String SYNTAX_STYLE_RUBY = "text/ruby"; - - + String SYNTAX_STYLE_RUBY = "text/ruby"; /** * Style for highlighting SAS keywords. */ - String SYNTAX_STYLE_SAS = "text/sas"; - - + String SYNTAX_STYLE_SAS = "text/sas"; /** * Style for highlighting Scala. */ - String SYNTAX_STYLE_SCALA = "text/scala"; - - + String SYNTAX_STYLE_SCALA = "text/scala"; /** * Style for highlighting SQL. */ - String SYNTAX_STYLE_SQL = "text/sql"; - - + String SYNTAX_STYLE_SQL = "text/sql"; /** * Style for highlighting Tcl. */ - String SYNTAX_STYLE_TCL = "text/tcl"; - - + String SYNTAX_STYLE_TCL = "text/tcl"; /** * Style for highlighting TypeScript. */ - String SYNTAX_STYLE_TYPESCRIPT = "text/typescript"; - - + String SYNTAX_STYLE_TYPESCRIPT = "text/typescript"; /** * Style for highlighting UNIX shell keywords. */ - String SYNTAX_STYLE_UNIX_SHELL = "text/unix"; - - + String SYNTAX_STYLE_UNIX_SHELL = "text/unix"; /** * Style for highlighting Visual Basic. */ - String SYNTAX_STYLE_VISUAL_BASIC = "text/vb"; - - + String SYNTAX_STYLE_VISUAL_BASIC = "text/vb"; /** * Style for highlighting Windows batch files. */ - String SYNTAX_STYLE_WINDOWS_BATCH = "text/bat"; - - + String SYNTAX_STYLE_WINDOWS_BATCH = "text/bat"; /** * Style for highlighting XML. */ - String SYNTAX_STYLE_XML = "text/xml"; - - + String SYNTAX_STYLE_XML = "text/xml"; /** * Syntax style for highlighting YAML. */ - String SYNTAX_STYLE_YAML = "text/yaml"; - - -} \ No newline at end of file + String SYNTAX_STYLE_YAML = "text/yaml"; +} diff --git a/src/org/fife/ui/rsyntaxtextarea/SyntaxScheme.java b/src/org/fife/ui/rsyntaxtextarea/SyntaxScheme.java index 478ad46..ae1070f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/SyntaxScheme.java +++ b/src/org/fife/ui/rsyntaxtextarea/SyntaxScheme.java @@ -1,10 +1,8 @@ /* * 02/26/2004 - * * SyntaxScheme.java - The set of colors and tokens used by an RSyntaxTextArea * to color tokens. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -25,10 +23,10 @@ import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.helpers.XMLReaderFactory; - /** * The set of colors and styles used by an RSyntaxTextArea to - * color tokens.

+ * color tokens. + *

* You can use this class to programmatically set the fonts and colors used in * an RSyntaxTextArea, but for more powerful, externalized control, consider * using {@link Theme}s instead. @@ -39,19 +37,18 @@ import org.xml.sax.helpers.XMLReaderFactory; */ @SuppressWarnings({ "checkstyle:magicnumber" }) public class SyntaxScheme implements Cloneable, TokenTypes { - + private Style[] styles; - - private static final String VERSION = "*ver1"; - - + private static final String VERSION = "*ver1"; + /** * Creates a color scheme that either has all color values set to * a default value or set to null. * - * @param useDefaults If true, all color values will - * be set to default colors; if false, all colors - * will be initially null. + * @param useDefaults + * If true, all color values will + * be set to default colors; if false, all colors + * will be initially null. */ public SyntaxScheme(boolean useDefaults) { styles = new Style[DEFAULT_NUM_TOKEN_TYPES]; @@ -59,62 +56,64 @@ public class SyntaxScheme implements Cloneable, TokenTypes { restoreDefaults(null); } } - - + /** * Creates a default color scheme. * - * @param baseFont The base font to use. Keywords will be a bold version - * of this font, and comments will be an italicized version of this - * font. + * @param baseFont + * The base font to use. Keywords will be a bold version + * of this font, and comments will be an italicized version of + * this + * font. */ public SyntaxScheme(Font baseFont) { this(baseFont, true); } - - + /** * Creates a default color scheme. * - * @param baseFont The base font to use. Keywords will be a bold version - * of this font, and comments will be an italicized version of this - * font. - * @param fontStyles Whether bold and italic should be used in the scheme - * (vs. all tokens using a plain font). + * @param baseFont + * The base font to use. Keywords will be a bold version + * of this font, and comments will be an italicized version of + * this + * font. + * @param fontStyles + * Whether bold and italic should be used in the scheme + * (vs. all tokens using a plain font). */ public SyntaxScheme(Font baseFont, boolean fontStyles) { styles = new Style[DEFAULT_NUM_TOKEN_TYPES]; restoreDefaults(baseFont, fontStyles); } - - + /** - * Changes the "base font" for this syntax scheme. This is called by + * Changes the "base font" for this syntax scheme. This is called by * RSyntaxTextArea when its font changes via - * setFont(). This looks for tokens that use a derivative of + * setFont(). This looks for tokens that use a derivative of * the text area's old font (but bolded and/or italicized) and make them - * use the new font with those stylings instead. This is desirable because + * use the new font with those stylings instead. This is desirable because * most programmers prefer a single font to be used in their text editor, * but might want bold (say for keywords) or italics. * - * @param old The old font of the text area. - * @param font The new font of the text area. + * @param old + * The old font of the text area. + * @param font + * The new font of the text area. */ void changeBaseFont(Font old, Font font) { - for (int i=0; itrue if this color scheme and * otherScheme are the same scheme; * false otherwise. */ @Override public boolean equals(Object otherScheme) { - // No need for null check; instanceof takes care of this for us, // i.e. "if (!(null instanceof Foo))" evaluates to "true". if (!(otherScheme instanceof SyntaxScheme)) { return false; } - - Style[] otherSchemes = ((SyntaxScheme)otherScheme).styles; - + Style[] otherSchemes = ((SyntaxScheme) otherScheme).styles; int length = styles.length; - for (int i=0; i"$rrggbb". * - * @param c The color. + * @param c + * The color. * @return The string representation of the color. */ private static String getHexString(Color c) { - return "$" + Integer.toHexString((c.getRGB() & 0xffffff)+0x1000000). - substring(1); + return "$" + Integer.toHexString((c.getRGB() & 0xffffff) + 0x1000000).substring(1); } - - + /** * Returns the specified style. * - * @param index The index of the style. + * @param index + * The index of the style. * @return The style. * @see #setStyle(int, Style) * @see #getStyleCount() @@ -199,8 +192,7 @@ public class SyntaxScheme implements Cloneable, TokenTypes { public Style getStyle(int index) { return styles[index]; } - - + /** * Returns the number of styles. * @@ -210,8 +202,7 @@ public class SyntaxScheme implements Cloneable, TokenTypes { public int getStyleCount() { return styles.length; } - - + /** * Used by third party implementors e.g. SquirreL SQL. Most applications do * not need to call this method. @@ -226,8 +217,7 @@ public class SyntaxScheme implements Cloneable, TokenTypes { public Style[] getStyles() { return styles; } - - + /** * This is implemented to be consistent with {@link #equals(Object)}. * This is a requirement to keep FindBugs happy. @@ -236,207 +226,190 @@ public class SyntaxScheme implements Cloneable, TokenTypes { */ @Override public int hashCode() { - // Keep me fast. Iterating over *all* syntax schemes contained is + // Keep me fast. Iterating over *all* syntax schemes contained is // probably much slower than a "bad" hash code here. int hashCode = 0; int count = styles.length; - for (int i=0; i + * Loads a syntax scheme from an input stream. + *

* * Consider using the {@link Theme} class for saving and loading RSTA * styles rather than using this API. * - * @param baseFont The font to use as the "base" for the syntax scheme. - * If this is null, a default monospaced font is used. - * @param in The stream to load from. It is up to the caller to close this - * stream when they are done. + * @param baseFont + * The font to use as the "base" for the syntax scheme. + * If this is null, a default monospaced font is + * used. + * @param in + * The stream to load from. It is up to the caller to close this + * stream when they are done. * @return The syntax scheme. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. */ - public static SyntaxScheme load(Font baseFont, InputStream in) - throws IOException { - if (baseFont==null) { + public static SyntaxScheme load(Font baseFont, InputStream in) throws IOException { + if (baseFont == null) { baseFont = RSyntaxTextArea.getDefaultFont(); } return SyntaxSchemeLoader.load(baseFont, in); } - - + /** * Loads a syntax highlighting color scheme from a string created from - * toCommaSeparatedString. This method is useful for saving - * and restoring color schemes.

+ * toCommaSeparatedString. This method is useful for saving + * and restoring color schemes. + *

* * Consider using the {@link Theme} class for saving and loading RSTA * styles rather than using this API. * - * @param string A string generated from {@link #toCommaSeparatedString()}. + * @param string + * A string generated from {@link #toCommaSeparatedString()}. * @return A color scheme. * @see #toCommaSeparatedString() */ public static SyntaxScheme loadFromString(String string) { return loadFromString(string, DEFAULT_NUM_TOKEN_TYPES); } - - + /** * Loads a syntax highlighting color scheme from a string created from - * toCommaSeparatedString. This method is useful for saving - * and restoring color schemes.

+ * toCommaSeparatedString. This method is useful for saving + * and restoring color schemes. + *

* * Consider using the {@link Theme} class for saving and loading RSTA * styles rather than using this API. * - * @param string A string generated from {@link #toCommaSeparatedString()}. - * @param tokenTypeCount The number of token types saved in this string. - * This should be the number of token types saved by your custom - * SyntaxScheme subclass, - * or {@link TokenTypes#DEFAULT_NUM_TOKEN_TYPES} if you used the - * standard implementation (which most people will). + * @param string + * A string generated from {@link #toCommaSeparatedString()}. + * @param tokenTypeCount + * The number of token types saved in this string. + * This should be the number of token types saved by your custom + * SyntaxScheme subclass, + * or {@link TokenTypes#DEFAULT_NUM_TOKEN_TYPES} if you used the + * standard implementation (which most people will). * @return A color scheme. * @see #loadFromString(String) * @see #toCommaSeparatedString() */ - public static SyntaxScheme loadFromString(String string, - int tokenTypeCount) { - + public static SyntaxScheme loadFromString(String string, int tokenTypeCount) { SyntaxScheme scheme = new SyntaxScheme(true); - try { - - if (string!=null) { - + if (string != null) { String[] tokens = string.split(",", -1); - // Check the version string, use defaults if incompatible - if (tokens.length==0 || !VERSION.equals(tokens[0])) { + if (tokens.length == 0 || !VERSION.equals(tokens[0])) { return scheme; // Still set to defaults } - - int tokenCount = tokenTypeCount*7 + 1; // Version string - if (tokens.length!=tokenCount) { - throw new Exception( - "Not enough tokens in packed color scheme: expected " + - tokenCount + ", found " + tokens.length); + int tokenCount = tokenTypeCount * 7 + 1; // Version string + if (tokens.length != tokenCount) { + throw new Exception("Not enough tokens in packed color scheme: expected " + tokenCount + ", found " + tokens.length); } - // Use StyleContext to create fonts to get composite fonts for // Asian glyphs. StyleContext sc = StyleContext.getDefaultStyleContext(); - - // Loop through each token style. Format: + // Loop through each token style. Format: // "index,(fg|-),(bg|-),(t|f),((font,style,size)|(-,,))" - for (int i=0; i keep fg as null fg = stringToColor(temp); } - Color bg = null; temp = tokens[pos+2]; + Color bg = null; + temp = tokens[pos + 2]; if (!"-".equals(temp)) { // "-" => keep bg as null bg = stringToColor(temp); } - // Check for "true" or "false" since we don't want to // accidentally suck in an int representing the next // packed color, and any string != "true" means false. - temp = tokens[pos+3]; + temp = tokens[pos + 3]; if (!"t".equals(temp) && !"f".equals(temp)) { throw new Exception("Expected 't' or 'f', found " + temp); } boolean underline = "t".equals(temp); - Font font = null; - String family = tokens[pos+4]; + String family = tokens[pos + 4]; if (!"-".equals(family)) { - font = sc.getFont(family, - Integer.parseInt(tokens[pos+5]), // style - Integer.parseInt(tokens[pos+6])); // size + font = sc.getFont(family, Integer.parseInt(tokens[pos + 5]), // style + Integer.parseInt(tokens[pos + 6])); // size } scheme.styles[i] = new Style(fg, bg, font, underline); - } - } - } catch (Exception e) { e.printStackTrace(); } - return scheme; - } - - + void refreshFontMetrics(Graphics2D g2d) { // It is assumed that any rendering hints are already applied to g2d. - for (int i=0; inull, then a default monospaced font is - * used. + * @param baseFont + * The base font to use when creating this scheme. If + * this is null, then a default monospaced font is + * used. */ public void restoreDefaults(Font baseFont) { restoreDefaults(baseFont, true); } - - + /** * Restores all colors and fonts to their default values. * - * @param baseFont The base font to use when creating this scheme. If - * this is null, then a default monospaced font is - * used. - * @param fontStyles Whether bold and italic should be used in the scheme - * (vs. all tokens using a plain font). + * @param baseFont + * The base font to use when creating this scheme. If + * this is null, then a default monospaced font is + * used. + * @param fontStyles + * Whether bold and italic should be used in the scheme + * (vs. all tokens using a plain font). */ public void restoreDefaults(Font baseFont, boolean fontStyles) { - // Colors used by tokens. - Color comment = new Color(0,128,0); - Color docComment = new Color(164,0,0); - Color markupComment = new Color(0, 96, 0); - Color keyword = Color.BLUE; - Color dataType = new Color(0,128,128); - Color function = new Color(173,128,0); - Color preprocessor = new Color(128,128,128); - Color operator = new Color(128, 64, 64); - Color regex = new Color(0,128,164); - Color variable = new Color(255,153,0); - Color literalNumber = new Color(100,0,200); - Color literalString = new Color(220,0,156); - Color error = new Color(148,148,0); - + Color comment = new Color(0, 128, 0); + Color docComment = new Color(164, 0, 0); + Color markupComment = new Color(0, 96, 0); + Color keyword = Color.BLUE; + Color dataType = new Color(0, 128, 128); + Color function = new Color(173, 128, 0); + Color preprocessor = new Color(128, 128, 128); + Color operator = new Color(128, 64, 64); + Color regex = new Color(0, 128, 164); + Color variable = new Color(255, 153, 0); + Color literalNumber = new Color(100, 0, 200); + Color literalString = new Color(220, 0, 156); + Color error = new Color(148, 148, 0); // (Possible) special font styles for keywords and comments. - if (baseFont==null) { + if (baseFont == null) { baseFont = RSyntaxTextArea.getDefaultFont(); } Font commentFont = baseFont; @@ -445,194 +418,175 @@ public class SyntaxScheme implements Cloneable, TokenTypes { // WORKAROUND for Sun JRE bug 6282887 (Asian font bug in 1.4/1.5) // That bug seems to be hidden now, see 6289072 instead. StyleContext sc = StyleContext.getDefaultStyleContext(); - Font boldFont = sc.getFont(baseFont.getFamily(), Font.BOLD, - baseFont.getSize()); - Font italicFont = sc.getFont(baseFont.getFamily(), Font.ITALIC, - baseFont.getSize()); - commentFont = italicFont;//baseFont.deriveFont(Font.ITALIC); - keywordFont = boldFont;//baseFont.deriveFont(Font.BOLD); + Font boldFont = sc.getFont(baseFont.getFamily(), Font.BOLD, baseFont.getSize()); + Font italicFont = sc.getFont(baseFont.getFamily(), Font.ITALIC, baseFont.getSize()); + commentFont = italicFont;// baseFont.deriveFont(Font.ITALIC); + keywordFont = boldFont;// baseFont.deriveFont(Font.BOLD); } - - styles[COMMENT_EOL] = new Style(comment, null, commentFont); - styles[COMMENT_MULTILINE] = new Style(comment, null, commentFont); - styles[COMMENT_DOCUMENTATION] = new Style(docComment, null, commentFont); - styles[COMMENT_KEYWORD] = new Style(new Color(255,152,0), null, commentFont); - styles[COMMENT_MARKUP] = new Style(Color.gray, null, commentFont); - styles[RESERVED_WORD] = new Style(keyword, null, keywordFont); - styles[RESERVED_WORD_2] = new Style(keyword, null, keywordFont); - styles[FUNCTION] = new Style(function); - styles[LITERAL_BOOLEAN] = new Style(literalNumber); - styles[LITERAL_NUMBER_DECIMAL_INT] = new Style(literalNumber); - styles[LITERAL_NUMBER_FLOAT] = new Style(literalNumber); - styles[LITERAL_NUMBER_HEXADECIMAL] = new Style(literalNumber); - styles[LITERAL_STRING_DOUBLE_QUOTE] = new Style(literalString); - styles[LITERAL_CHAR] = new Style(literalString); - styles[LITERAL_BACKQUOTE] = new Style(literalString); - styles[DATA_TYPE] = new Style(dataType, null, keywordFont); - styles[VARIABLE] = new Style(variable); - styles[REGEX] = new Style(regex); - styles[ANNOTATION] = new Style(Color.gray); - styles[IDENTIFIER] = new Style(null); - styles[WHITESPACE] = new Style(Color.gray); - styles[SEPARATOR] = new Style(Color.RED); - styles[OPERATOR] = new Style(operator); - styles[PREPROCESSOR] = new Style(preprocessor); - styles[MARKUP_TAG_DELIMITER] = new Style(Color.RED); - styles[MARKUP_TAG_NAME] = new Style(Color.BLUE); - styles[MARKUP_TAG_ATTRIBUTE] = new Style(new Color(63,127,127)); - styles[MARKUP_TAG_ATTRIBUTE_VALUE]= new Style(literalString); - styles[MARKUP_COMMENT] = new Style(markupComment, null, commentFont); - styles[MARKUP_DTD] = new Style(function); + styles[COMMENT_EOL] = new Style(comment, null, commentFont); + styles[COMMENT_MULTILINE] = new Style(comment, null, commentFont); + styles[COMMENT_DOCUMENTATION] = new Style(docComment, null, commentFont); + styles[COMMENT_KEYWORD] = new Style(new Color(255, 152, 0), null, commentFont); + styles[COMMENT_MARKUP] = new Style(Color.gray, null, commentFont); + styles[RESERVED_WORD] = new Style(keyword, null, keywordFont); + styles[RESERVED_WORD_2] = new Style(keyword, null, keywordFont); + styles[FUNCTION] = new Style(function); + styles[LITERAL_BOOLEAN] = new Style(literalNumber); + styles[LITERAL_NUMBER_DECIMAL_INT] = new Style(literalNumber); + styles[LITERAL_NUMBER_FLOAT] = new Style(literalNumber); + styles[LITERAL_NUMBER_HEXADECIMAL] = new Style(literalNumber); + styles[LITERAL_STRING_DOUBLE_QUOTE] = new Style(literalString); + styles[LITERAL_CHAR] = new Style(literalString); + styles[LITERAL_BACKQUOTE] = new Style(literalString); + styles[DATA_TYPE] = new Style(dataType, null, keywordFont); + styles[VARIABLE] = new Style(variable); + styles[REGEX] = new Style(regex); + styles[ANNOTATION] = new Style(Color.gray); + styles[IDENTIFIER] = new Style(null); + styles[WHITESPACE] = new Style(Color.gray); + styles[SEPARATOR] = new Style(Color.RED); + styles[OPERATOR] = new Style(operator); + styles[PREPROCESSOR] = new Style(preprocessor); + styles[MARKUP_TAG_DELIMITER] = new Style(Color.RED); + styles[MARKUP_TAG_NAME] = new Style(Color.BLUE); + styles[MARKUP_TAG_ATTRIBUTE] = new Style(new Color(63, 127, 127)); + styles[MARKUP_TAG_ATTRIBUTE_VALUE] = new Style(literalString); + styles[MARKUP_COMMENT] = new Style(markupComment, null, commentFont); + styles[MARKUP_DTD] = new Style(function); styles[MARKUP_PROCESSING_INSTRUCTION] = new Style(preprocessor); - styles[MARKUP_CDATA] = new Style(new Color(0xcc6600)); - styles[MARKUP_CDATA_DELIMITER] = new Style(new Color(0x008080)); - styles[MARKUP_ENTITY_REFERENCE] = new Style(dataType); - styles[ERROR_IDENTIFIER] = new Style(error); - styles[ERROR_NUMBER_FORMAT] = new Style(error); - styles[ERROR_STRING_DOUBLE] = new Style(error); - styles[ERROR_CHAR] = new Style(error); - + styles[MARKUP_CDATA] = new Style(new Color(0xcc6600)); + styles[MARKUP_CDATA_DELIMITER] = new Style(new Color(0x008080)); + styles[MARKUP_ENTITY_REFERENCE] = new Style(dataType); + styles[ERROR_IDENTIFIER] = new Style(error); + styles[ERROR_NUMBER_FORMAT] = new Style(error); + styles[ERROR_STRING_DOUBLE] = new Style(error); + styles[ERROR_CHAR] = new Style(error); // Issue #34: If an application modifies TokenTypes to add new built-in // token types, we'll get NPEs if not all styles are initialized. - for (int i=0; i$', it is assumed to be in hex, otherwise it is - * assumed to be decimal. So, for example, both of these: + * assumed to be decimal. So, for example, both of these: + * *

 	 * "$00ff00"
 	 * "65280"
 	 * 
+ * * will return new Color(0, 255, 0). * - * @param s The string to evaluate. + * @param s + * The string to evaluate. * @return The color. */ private static Color stringToColor(String s) { // Check for decimal as well as hex, for backward // compatibility (fix from GwynEvans on forums) char ch = s.charAt(0); - return new Color((ch=='$' || ch=='#') ? - Integer.parseInt(s.substring(1),16) : - Integer.parseInt(s)); + return new Color((ch == '$' || ch == '#') ? Integer.parseInt(s.substring(1), 16) : Integer.parseInt(s)); } - - + /** * Returns this syntax highlighting scheme as a comma-separated list of * values as follows: *
    - *
  • If a color is non-null, it is added as a 24-bit integer - * of the form ((r<*lt;16) | (g<*lt;8) | (b)); if - * it is null, it is added as "-,". - *
  • The font and style (bold/italic) is added as an integer like so: - * "family, style, size". - *
  • The entire syntax highlighting scheme is thus one long string of - * color schemes of the format "i,[fg],[bg],uline,[style], - * where: - *
      - *
    • i is the index of the syntax scheme. - *
    • fg and bg are the foreground and background - * colors for the scheme, and may be null (represented by - * -). - *
    • uline is whether or not the font should be - * underlined, and is either t or f. - *
    • style is the family,style,size - * triplet described above. - *
    + *
  • If a color is non-null, it is added as a 24-bit integer + * of the form ((r<*lt;16) | (g<*lt;8) | (b)); if + * it is null, it is added as "-,". + *
  • The font and style (bold/italic) is added as an integer like so: + * "family, style, size". + *
  • The entire syntax highlighting scheme is thus one long string of + * color schemes of the format "i,[fg],[bg],uline,[style], + * where: + *
      + *
    • i is the index of the syntax scheme. + *
    • fg and bg are the foreground and background + * colors for the scheme, and may be null (represented by + * -). + *
    • uline is whether or not the font should be + * underlined, and is either t or f. + *
    • style is the family,style,size + * triplet described above. + *
    *
* * @return A string representing the rgb values of the colors. * @see #loadFromString(String) */ public String toCommaSeparatedString() { - StringBuilder sb = new StringBuilder(VERSION); sb.append(','); - - for (int i=0; iSyntaxScheme from an XML file. */ private static class SyntaxSchemeLoader extends DefaultHandler { - + private Font baseFont; private SyntaxScheme scheme; - + SyntaxSchemeLoader(Font baseFont) { scheme = new SyntaxScheme(baseFont); } - - public static SyntaxScheme load(Font baseFont, InputStream in) - throws IOException { + + public static SyntaxScheme load(Font baseFont, InputStream in) throws IOException { SyntaxSchemeLoader parser = null; try { XMLReader reader = XMLReaderFactory.createXMLReader(); @@ -647,13 +601,10 @@ public class SyntaxScheme implements Cloneable, TokenTypes { } return parser.scheme; } - + @Override - public void startElement(String uri, String localName, String qName, - Attributes attrs) { - + public void startElement(String uri, String localName, String qName, Attributes attrs) { if ("style".equals(qName)) { - String type = attrs.getValue("token"); Field field = null; try { @@ -664,9 +615,7 @@ public class SyntaxScheme implements Cloneable, TokenTypes { System.err.println("Invalid token type: " + type); return; } - - if (field.getType()==int.class) { - + if (field.getType() == int.class) { int index = 0; try { index = field.getInt(scheme); @@ -677,29 +626,26 @@ public class SyntaxScheme implements Cloneable, TokenTypes { e.printStackTrace(); return; } - String fgStr = attrs.getValue("fg"); - if (fgStr!=null) { + if (fgStr != null) { Color fg = stringToColor(fgStr); scheme.styles[index].foreground = fg; } - String bgStr = attrs.getValue("bg"); - if (bgStr!=null) { + if (bgStr != null) { Color bg = stringToColor(bgStr); scheme.styles[index].background = bg; } - boolean styleSpecified = false; boolean bold = false; boolean italic = false; String boldStr = attrs.getValue("bold"); - if (boldStr!=null) { + if (boldStr != null) { bold = Boolean.parseBoolean(boldStr); styleSpecified = true; } String italicStr = attrs.getValue("italic"); - if (italicStr!=null) { + if (italicStr != null) { italic = Boolean.parseBoolean(italicStr); styleSpecified = true; } @@ -713,20 +659,13 @@ public class SyntaxScheme implements Cloneable, TokenTypes { } scheme.styles[index].font = baseFont.deriveFont(style); } - String ulineStr = attrs.getValue("underline"); - if (ulineStr!=null) { - boolean uline= Boolean.parseBoolean(ulineStr); + if (ulineStr != null) { + boolean uline = Boolean.parseBoolean(ulineStr); scheme.styles[index].underline = uline; } - } - } - } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/SyntaxView.java b/src/org/fife/ui/rsyntaxtextarea/SyntaxView.java index 8d808ef..ea8b25e 100644 --- a/src/org/fife/ui/rsyntaxtextarea/SyntaxView.java +++ b/src/org/fife/ui/rsyntaxtextarea/SyntaxView.java @@ -1,31 +1,44 @@ /* * 02/24/2004 - * * SyntaxView.java - The View object used by RSyntaxTextArea when word wrap is * disabled. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; -import java.awt.*; -import javax.swing.event.*; -import javax.swing.text.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.awt.Shape; + +import javax.swing.event.DocumentEvent; +import javax.swing.text.BadLocationException; +import javax.swing.text.Element; +import javax.swing.text.PlainDocument; +import javax.swing.text.Position; +import javax.swing.text.TabExpander; +import javax.swing.text.View; +import javax.swing.text.ViewFactory; import org.fife.ui.rsyntaxtextarea.folding.Fold; import org.fife.ui.rsyntaxtextarea.folding.FoldManager; - /** * The javax.swing.text.View object used by {@link RSyntaxTextArea} - * when word wrap is disabled. It implements syntax highlighting for + * when word wrap is disabled. It implements syntax highlighting for * programming languages using the colors and font styles specified by the - * RSyntaxTextArea.

+ * RSyntaxTextArea. + *

* * You don't really have to do anything to use this class, as * {@link RSyntaxTextAreaUI} automatically sets the text area's view to be - * an instance of this class if word wrap is disabled.

+ * an instance of this class if word wrap is disabled. + *

* * The tokens that specify how to paint the syntax-highlighted text are gleaned * from the text area's {@link RSyntaxDocument}. @@ -33,36 +46,30 @@ import org.fife.ui.rsyntaxtextarea.folding.FoldManager; * @author Robert Futrell * @version 0.3 */ -public class SyntaxView extends View implements TabExpander, - TokenOrientedView, RSTAView { - +public class SyntaxView extends View implements TabExpander, TokenOrientedView, RSTAView { + /** - * The default font used by the text area. If this changes we need to + * The default font used by the text area. If this changes we need to * recalculate the longest line. */ private Font font; - /** * Font metrics for the current font. */ private FontMetrics metrics; - /** - * The current longest line. This is used to calculate the preferred width - * of the view. Since the calculation is potentially expensive, we try to + * The current longest line. This is used to calculate the preferred width + * of the view. Since the calculation is potentially expensive, we try to * avoid it by stashing which line is currently the longest. */ private Element longLine; private float longLineWidth; - private int tabSize; private int tabBase; - /** * Cached for each paint() call so each drawLine() call has access to it. */ private RSyntaxTextArea host; - /** * Cached values to speed up the painting a tad. */ @@ -70,31 +77,29 @@ public class SyntaxView extends View implements TabExpander, private int ascent; private int clipStart; private int clipEnd; - /** * Temporary token used when we need to "modify" tokens for rendering - * purposes. Since tokens returned from RSyntaxDocuments are treated as + * purposes. Since tokens returned from RSyntaxDocuments are treated as * immutable, we use this temporary token to do that work. */ private TokenImpl tempToken; - - + /** * Constructs a new SyntaxView wrapped around an element. * - * @param elem The element representing the text to display. + * @param elem + * The element representing the text to display. */ public SyntaxView(Element elem) { super(elem); tempToken = new TokenImpl(); } - - + /** * Iterate over the lines represented by the child elements * of the element this view represents, looking for the line - * that is the longest. The longLine variable is updated to - * represent the longest line contained. The font variable + * that is the longest. The longLine variable is updated to + * represent the longest line contained. The font variable * is updated to indicate the font used to calculate the * longest line. */ @@ -105,7 +110,7 @@ public class SyntaxView extends View implements TabExpander, tabSize = getTabSize() * metrics.charWidth(' '); Element lines = getElement(); int n = lines.getElementCount(); - for (int i=0; i longLineWidth) { @@ -114,74 +119,76 @@ public class SyntaxView extends View implements TabExpander, } } } - - + /** * Gives notification from the document that attributes were changed * in a location that this view is responsible for. * - * @param changes the change information from the associated document - * @param a the current allocation of the view - * @param f the factory to use to rebuild if the view has children + * @param changes + * the change information from the associated document + * @param a + * the current allocation of the view + * @param f + * the factory to use to rebuild if the view has children * @see View#changedUpdate */ @Override public void changedUpdate(DocumentEvent changes, Shape a, ViewFactory f) { updateDamage(changes, a, f); } - - + /** * Repaint the given line range. * - * @param line0 The starting line number to repaint. This must - * be a valid line number in the model. - * @param line1 The ending line number to repaint. This must - * be a valid line number in the model. - * @param a The region allocated for the view to render into. - * @param host The component hosting the view (used to call repaint). + * @param line0 + * The starting line number to repaint. This must + * be a valid line number in the model. + * @param line1 + * The ending line number to repaint. This must + * be a valid line number in the model. + * @param a + * The region allocated for the view to render into. + * @param host + * The component hosting the view (used to call repaint). */ - protected void damageLineRange(int line0, int line1, Shape a, - Component host) { + protected void damageLineRange(int line0, int line1, Shape a, Component host) { if (a != null) { Rectangle area0 = lineToRect(a, line0); Rectangle area1 = lineToRect(a, line1); if ((area0 != null) && (area1 != null)) { Rectangle dmg = area0.union(area1); // damage. host.repaint(dmg.x, dmg.y, dmg.width, dmg.height); - } - else { + } else { host.repaint(); } } } - - + /** * Draws the passed-in text using syntax highlighting for the current - * language. It is assumed that the entire line is either not in a + * language. It is assumed that the entire line is either not in a * selected region, or painting with a selection-foreground color is turned * off. * - * @param painter The painter to render the tokens. - * @param token The list of tokens to draw. - * @param g The graphics context in which to draw. - * @param x The x-coordinate at which to draw. - * @param y The y-coordinate at which to draw. + * @param painter + * The painter to render the tokens. + * @param token + * The list of tokens to draw. + * @param g + * The graphics context in which to draw. + * @param x + * The x-coordinate at which to draw. + * @param y + * The y-coordinate at which to draw. * @return The x-coordinate representing the end of the painted text. */ - private float drawLine(TokenPainter painter, Token token, Graphics2D g, - float x, float y, int line) { - - float nextX = x; // The x-value at the end of our text. + private float drawLine(TokenPainter painter, Token token, Graphics2D g, float x, float y, int line) { + float nextX = x; // The x-value at the end of our text. boolean paintBG = host.getPaintTokenBackgrounds(line, y); - - while (token!=null && token.isPaintable() && nextXtoken.getOffset()) { + if (selStart > token.getOffset()) { tempToken.copyFrom(token); tempToken.textCount = selStart - tempToken.getOffset(); - nextX = painter.paint(tempToken,g,nextX,y,host, this, clipStart); + nextX = painter.paint(tempToken, g, nextX, y, host, this, clipStart); tempToken.textCount = token.length(); tempToken.makeStartAt(selStart); // Clone required since token and tempToken must be // different tokens for else statement below token = new TokenImpl(tempToken); } - int tokenLen = token.length(); - int selCount = Math.min(tokenLen, selEnd-token.getOffset()); - if (selCount==tokenLen) { - nextX = painter.paintSelected(token, g, nextX,y, host, - this, clipStart, useSTC); - } - else { + int selCount = Math.min(tokenLen, selEnd - token.getOffset()); + if (selCount == tokenLen) { + nextX = painter.paintSelected(token, g, nextX, y, host, this, clipStart, useSTC); + } else { tempToken.copyFrom(token); tempToken.textCount = selCount; - nextX = painter.paintSelected(tempToken, g, nextX,y, host, - this, clipStart, useSTC); + nextX = painter.paintSelected(tempToken, g, nextX, y, host, this, clipStart, useSTC); tempToken.textCount = token.length(); tempToken.makeStartAt(token.getOffset() + selCount); token = tempToken; - nextX = painter.paint(token, g, nextX,y, host, this, - clipStart); + nextX = painter.paint(token, g, nextX, y, host, this, clipStart); } - } - // Selection ends in this token else if (token.containsPosition(selEnd)) { tempToken.copyFrom(token); tempToken.textCount = selEnd - tempToken.getOffset(); - nextX = painter.paintSelected(tempToken, g, nextX,y, host, this, - clipStart, useSTC); + nextX = painter.paintSelected(tempToken, g, nextX, y, host, this, clipStart, useSTC); tempToken.textCount = token.length(); tempToken.makeStartAt(selEnd); token = tempToken; - nextX = painter.paint(token, g, nextX,y, host, this, clipStart); + nextX = painter.paint(token, g, nextX, y, host, this, clipStart); } - // This token is entirely selected - else if (token.getOffset()>=selStart && - token.getEndOffset()<=selEnd) { - nextX = painter.paintSelected(token, g, nextX,y, host, this, - clipStart, useSTC); + else if (token.getOffset() >= selStart && token.getEndOffset() <= selEnd) { + nextX = painter.paintSelected(token, g, nextX, y, host, this, clipStart, useSTC); } - // This token is entirely unselected else { - nextX = painter.paint(token, g, nextX,y, host, this, clipStart); + nextX = painter.paint(token, g, nextX, y, host, this, clipStart); } - token = token.getNextToken(); - } - // NOTE: We should re-use code from Token (paintBackground()) here, // but don't because I'm just too lazy. if (host.getEOLMarkersVisible()) { @@ -287,65 +278,63 @@ public class SyntaxView extends View implements TabExpander, g.setFont(host.getFontForTokenType(Token.WHITESPACE)); g.drawString("\u00B6", nextX, y); } - // Return the x-coordinate at the end of the painted text. return nextX; - } - - + /** * Calculates the width of the line represented by the given element. * - * @param line The line for which to get the length. - * @param lineNumber The line number of the specified line in the document. + * @param line + * The line for which to get the length. + * @param lineNumber + * The line number of the specified line in the document. * @return The width of the line. */ private float getLineWidth(int lineNumber) { - Token tokenList = ((RSyntaxDocument)getDocument()). - getTokenListForLine(lineNumber); - return RSyntaxUtilities.getTokenListWidth(tokenList, - (RSyntaxTextArea)getContainer(), - this); + Token tokenList = ((RSyntaxDocument) getDocument()).getTokenListForLine(lineNumber); + return RSyntaxUtilities.getTokenListWidth(tokenList, (RSyntaxTextArea) getContainer(), this); } - - + /** * Provides a way to determine the next visually represented model - * location that one might place a caret. Some views may not be visible, + * location that one might place a caret. Some views may not be visible, * they might not be in the same order found in the model, or they just * might not allow access to some of the locations in the model. * - * @param pos the position to convert >= 0 - * @param a the allocated region to render into - * @param direction the direction from the current position that can - * be thought of as the arrow keys typically found on a keyboard. - * This may be SwingConstants.WEST, SwingConstants.EAST, - * SwingConstants.NORTH, or SwingConstants.SOUTH. + * @param pos + * the position to convert >= 0 + * @param a + * the allocated region to render into + * @param direction + * the direction from the current position that can + * be thought of as the arrow keys typically found on a keyboard. + * This may be SwingConstants.WEST, SwingConstants.EAST, + * SwingConstants.NORTH, or SwingConstants.SOUTH. * @return the location within the model that best represents the next - * location visual position. + * location visual position. * @exception BadLocationException - * @exception IllegalArgumentException for an invalid direction + * @exception IllegalArgumentException + * for an invalid direction */ @Override - public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, - int direction, Position.Bias[] biasRet) - throws BadLocationException { - return RSyntaxUtilities.getNextVisualPositionFrom(pos, b, a, - direction, biasRet, this); + public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) + throws BadLocationException { + return RSyntaxUtilities.getNextVisualPositionFrom(pos, b, a, direction, biasRet, this); } - - + /** * Determines the preferred span for this view along an * axis. * - * @param axis may be either View.X_AXIS or View.Y_AXIS - * @return the span the view would like to be rendered into >= 0. - * Typically the view is told to render into the span - * that is returned, although there is no guarantee. - * The parent may choose to resize or break the view. - * @exception IllegalArgumentException for an invalid axis + * @param axis + * may be either View.X_AXIS or View.Y_AXIS + * @return the span the view would like to be rendered into >= 0. + * Typically the view is told to render into the span + * that is returned, although there is no guarantee. + * The parent may choose to resize or break the view. + * @exception IllegalArgumentException + * for an invalid axis */ @Override public float getPreferredSpan(int axis) { @@ -359,21 +348,20 @@ public class SyntaxView extends View implements TabExpander, return span; case View.Y_AXIS: // We update lineHeight here as when this method is first - // called, lineHeight isn't initialized. If we don't do it + // called, lineHeight isn't initialized. If we don't do it // here, we get no vertical scrollbar (as lineHeight==0). - lineHeight = host!=null ? host.getLineHeight() : lineHeight; -// return getElement().getElementCount() * lineHeight; - int visibleLineCount = getElement().getElementCount(); - if (host.isCodeFoldingEnabled()) { - visibleLineCount -= host.getFoldManager().getHiddenLineCount(); - } - return visibleLineCount * (float) lineHeight; + lineHeight = host != null ? host.getLineHeight() : lineHeight; + // return getElement().getElementCount() * lineHeight; + int visibleLineCount = getElement().getElementCount(); + if (host.isCodeFoldingEnabled()) { + visibleLineCount -= host.getFoldManager().getHiddenLineCount(); + } + return visibleLineCount * (float) lineHeight; default: throw new IllegalArgumentException("Invalid axis: " + axis); } } - - + /** * Workaround for JTextComponents allowing the caret to be rendered * entirely off-screen if the entire "previous" character fit entirely. @@ -382,223 +370,220 @@ public class SyntaxView extends View implements TabExpander, */ private int getRhsCorrection() { int rhsCorrection = 10; - if (host!=null) { + if (host != null) { rhsCorrection = host.getRightHandSideCorrection(); } return rhsCorrection; } - - + /** * Returns the tab size set for the document, defaulting to 5. * * @return The tab size. */ private int getTabSize() { - Integer i = (Integer)getDocument().getProperty( - PlainDocument.tabSizeAttribute); + Integer i = (Integer) getDocument().getProperty(PlainDocument.tabSizeAttribute); int size = (i != null) ? i.intValue() : 5; return size; } - - + /** * Returns a token list for the physical line above the physical - * line containing the specified offset into the document. Note that for + * line containing the specified offset into the document. Note that for * this plain (non-wrapped) view, this is simply the token list for the * logical line above the line containing offset, since lines * are not wrapped. * - * @param offset The offset in question. + * @param offset + * The offset in question. * @return A token list for the physical (and in this view, logical) line - * before this one. If offset is in the first line in + * before this one. If offset is in the first line in * the document, null is returned. */ @Override public Token getTokenListForPhysicalLineAbove(int offset) { - RSyntaxDocument document = (RSyntaxDocument)getDocument(); + RSyntaxDocument document = (RSyntaxDocument) getDocument(); Element map = document.getDefaultRootElement(); -int line = map.getElementIndex(offset); -FoldManager fm = host.getFoldManager(); -if (fm==null) { - line--; - if (line>=0) { - return document.getTokenListForLine(line); - } -} -else { - line = fm.getVisibleLineAbove(line); - if (line>=0) { - return document.getTokenListForLine(line); - } -} -// int line = map.getElementIndex(offset) - 1; -// if (line>=0) -// return document.getTokenListForLine(line); + int line = map.getElementIndex(offset); + FoldManager fm = host.getFoldManager(); + if (fm == null) { + line--; + if (line >= 0) { + return document.getTokenListForLine(line); + } + } else { + line = fm.getVisibleLineAbove(line); + if (line >= 0) { + return document.getTokenListForLine(line); + } + } + // int line = map.getElementIndex(offset) - 1; + // if (line>=0) + // return document.getTokenListForLine(line); return null; } - - + /** * Returns a token list for the physical line below the physical - * line containing the specified offset into the document. Note that for + * line containing the specified offset into the document. Note that for * this plain (non-wrapped) view, this is simply the token list for the * logical line below the line containing offset, since lines * are not wrapped. * - * @param offset The offset in question. + * @param offset + * The offset in question. * @return A token list for the physical (and in this view, logical) line - * after this one. If offset is in the last physical + * after this one. If offset is in the last physical * line in the document, null is returned. */ @Override public Token getTokenListForPhysicalLineBelow(int offset) { - RSyntaxDocument document = (RSyntaxDocument)getDocument(); + RSyntaxDocument document = (RSyntaxDocument) getDocument(); Element map = document.getDefaultRootElement(); int lineCount = map.getElementCount(); -int line = map.getElementIndex(offset); -if (!host.isCodeFoldingEnabled()) { - if (line=0 && line= 0 && line < lineCount) { + return document.getTokenListForLine(line); + } + } + // int line = map.getElementIndex(offset); + // int lineCount = map.getElementCount(); + // if (line + * created as a union of the first and last character positions. + *

* * This is implemented to subtract the width of the second character, as * this view's modelToView actually returns the width of the * character instead of "1" or "0" like the View implementations in - * javax.swing.text. Thus, if we don't override this method, + * javax.swing.text. Thus, if we don't override this method, * the View implementation will return one character's width * too much for its consumers (implementations of * javax.swing.text.Highlighter). * - * @param p0 the position of the first character (>=0) - * @param b0 The bias of the first character position, toward the previous - * character or the next character represented by the offset, in - * case the position is a boundary of two views; b0 - * will have one of these values: - *

    - *
  • Position.Bias.Forward - *
  • Position.Bias.Backward - *
- * @param p1 the position of the last character (>=0) - * @param b1 the bias for the second character position, defined - * one of the legal values shown above - * @param a the area of the view, which encompasses the requested region + * @param p0 + * the position of the first character (>=0) + * @param b0 + * The bias of the first character position, toward the previous + * character or the next character represented by the offset, in + * case the position is a boundary of two views; b0 + * will have one of these values: + *
    + *
  • Position.Bias.Forward + *
  • Position.Bias.Backward + *
+ * @param p1 + * the position of the last character (>=0) + * @param b1 + * the bias for the second character position, defined + * one of the legal values shown above + * @param a + * the area of the view, which encompasses the requested region * @return the bounding box which is a union of the region specified - * by the first and last character positions - * @exception BadLocationException if the given position does - * not represent a valid location in the associated document - * @exception IllegalArgumentException if b0 or - * b1 are not one of the - * legal Position.Bias values listed above + * by the first and last character positions + * @exception BadLocationException + * if the given position does + * not represent a valid location in the associated document + * @exception IllegalArgumentException + * if b0 or + * b1 are not one of the + * legal Position.Bias values listed above * @see View#viewToModel */ @Override - public Shape modelToView(int p0, Position.Bias b0, - int p1, Position.Bias b1, - Shape a) throws BadLocationException { - + public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException { Shape s0 = modelToView(p0, a, b0); Shape s1; - if (p1 ==getEndOffset()) { + if (p1 == getEndOffset()) { try { s1 = modelToView(p1, a, b1); } catch (BadLocationException ble) { @@ -606,50 +591,44 @@ else { } if (s1 == null) { // Assume extends left to right. - Rectangle alloc = (a instanceof Rectangle) ? (Rectangle)a : - a.getBounds(); - s1 = new Rectangle(alloc.x + alloc.width - 1, alloc.y, - 1, alloc.height); + Rectangle alloc = (a instanceof Rectangle) ? (Rectangle) a : a.getBounds(); + s1 = new Rectangle(alloc.x + alloc.width - 1, alloc.y, 1, alloc.height); } - } - else { + } else { s1 = modelToView(p1, a, b1); } - Rectangle r0 = s0 instanceof Rectangle ? (Rectangle)s0 : s0.getBounds(); - Rectangle r1 = s1 instanceof Rectangle ? (Rectangle)s1 : s1.getBounds(); + Rectangle r0 = s0 instanceof Rectangle ? (Rectangle) s0 : s0.getBounds(); + Rectangle r1 = s1 instanceof Rectangle ? (Rectangle) s1 : s1.getBounds(); if (r0.y != r1.y) { // If it spans lines, force it to be the width of the view. - Rectangle alloc = (a instanceof Rectangle) ? (Rectangle)a : - a.getBounds(); + Rectangle alloc = (a instanceof Rectangle) ? (Rectangle) a : a.getBounds(); r0.x = alloc.x; r0.width = alloc.width; } - r0.add(r1); // The next line is the only difference between this method and - // View's implementation. We're subtracting the width of the second - // character. This is because this method is used by Highlighter + // View's implementation. We're subtracting the width of the second + // character. This is because this method is used by Highlighter // implementations to get the area to "highlight", and if we don't do // this, one character too many is highlighted thanks to our // modelToView() implementation returning the actual width of the // character requested! - if (p1>p0) { + if (p1 > p0) { r0.width -= r1.width; } - return r0; - } - - + /** * Returns the next tab stop position after a given reference position. * This implementation does not support things like centering so it * ignores the tabOffset argument. * - * @param x the current position >= 0 - * @param tabOffset the position within the text stream - * that the tab occurred at >= 0. + * @param x + * the current position >= 0 + * @param tabOffset + * the position within the text stream + * that the tab occurred at >= 0. * @return the tab stop, measured in points >= 0 */ @Override @@ -657,40 +636,35 @@ else { if (tabSize == 0) { return x; } - int ntabs = (((int)x) - tabBase) / tabSize; + int ntabs = (((int) x) - tabBase) / tabSize; return tabBase + ((ntabs + 1f) * tabSize); } - - + /** - * Actually paints the text area. Only lines that have been damaged are + * Actually paints the text area. Only lines that have been damaged are * repainted. * - * @param g The graphics context with which to paint. - * @param a The allocated region in which to render. + * @param g + * The graphics context with which to paint. + * @param a + * The allocated region in which to render. */ @Override public void paint(Graphics g, Shape a) { - - RSyntaxDocument document = (RSyntaxDocument)getDocument(); - + RSyntaxDocument document = (RSyntaxDocument) getDocument(); Rectangle alloc = a.getBounds(); - tabBase = alloc.x; - host = (RSyntaxTextArea)getContainer(); - + host = (RSyntaxTextArea) getContainer(); Rectangle clip = g.getClipBounds(); - // An attempt to speed things up for files with long lines. Note that + // An attempt to speed things up for files with long lines. Note that // this will actually slow things down a bit for the common case of // regular-length lines, but it doesn't make a perceivable difference. clipStart = clip.x; clipEnd = clipStart + clip.width; - lineHeight = host.getLineHeight(); - ascent = host.getMaxAscent();//metrics.getAscent(); + ascent = host.getMaxAscent();// metrics.getAscent(); int heightAbove = clip.y - alloc.y; int linesAbove = Math.max(0, heightAbove / lineHeight); - FoldManager fm = host.getFoldManager(); linesAbove += fm.getHiddenLineCountAbove(linesAbove, true); Rectangle lineArea = lineToRect(a, linesAbove); @@ -698,58 +672,45 @@ else { int x = lineArea.x; Element map = getElement(); int lineCount = map.getElementCount(); - // Whether token styles should always be painted, even in selections int selStart = host.getSelectionStart(); int selEnd = host.getSelectionEnd(); - - RSyntaxTextAreaHighlighter h = - (RSyntaxTextAreaHighlighter)host.getHighlighter(); - - Graphics2D g2d = (Graphics2D)g; + RSyntaxTextAreaHighlighter h = (RSyntaxTextAreaHighlighter) host.getHighlighter(); + Graphics2D g2d = (Graphics2D) g; Token token; - //System.err.println("Painting lines: " + linesAbove + " to " + (endLine-1)); - + // System.err.println("Painting lines: " + linesAbove + " to " + + // (endLine-1)); TokenPainter painter = host.getTokenPainter(); int line = linesAbove; - //int count = 0; - while (y=selEnd || - endOffset= selEnd || endOffset < selStart) { + drawLine(painter, token, g2d, x, y, line); + } else { + // System.out.println("Drawing line with selection: " + line); + drawLineWithSelection(painter, token, g2d, x, y, selStart, selEnd); } - else { - //System.out.println("Drawing line with selection: " + line); - drawLineWithSelection(painter,token,g2d, x,y, selStart, selEnd); - } - - if (fold!=null && fold.isCollapsed()) { - + if (fold != null && fold.isCollapsed()) { // Visible indicator of collapsed lines Color c = RSyntaxUtilities.getFoldedLineBottomColor(host); - if (c!=null) { + if (c != null) { g.setColor(c); - g.drawLine(x,y+lineHeight-ascent-1, - host.getWidth(),y+lineHeight-ascent-1); + g.drawLine(x, y + lineHeight - ascent - 1, host.getWidth(), y + lineHeight - ascent - 1); } - // Skip to next line to paint, taking extra care for lines with // block ends and begins together, e.g. "} else {" do { int hiddenLineCount = fold.getLineCount(); - if (hiddenLineCount==0) { + if (hiddenLineCount == 0) { // Fold parser identified a zero-line fold region. // This is really a bug, but we'll be graceful here // and avoid an infinite loop. @@ -757,27 +718,23 @@ else { } line += hiddenLineCount; fold = fm.getFoldForLine(line); - } while (fold!=null && fold.isCollapsed()); - + } while (fold != null && fold.isCollapsed()); } - y += lineHeight; line++; - //count++; - + // count++; } - - //System.out.println("SyntaxView: lines painted=" + count); - + // System.out.println("SyntaxView: lines painted=" + count); } - - + /** * If the passed-in line is longer than the current longest line, then * the longest line is updated. * - * @param line The line to test against the current longest. - * @param lineNumber The line number of the passed-in line. + * @param line + * The line to test against the current longest. + * @param lineNumber + * The line number of the passed-in line. * @return true iff the current longest line was updated. */ private boolean possiblyUpdateLongLine(Element line, int lineNumber) { @@ -789,35 +746,35 @@ else { } return false; } - - + /** * Gives notification that something was removed from the document * in a location that this view is responsible for. * - * @param changes the change information from the associated document - * @param a the current allocation of the view - * @param f the factory to use to rebuild if the view has children + * @param changes + * the change information from the associated document + * @param a + * the current allocation of the view + * @param f + * the factory to use to rebuild if the view has children */ @Override public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f) { updateDamage(changes, a, f); } - - + @Override public void setSize(float width, float height) { super.setSize(width, height); updateMetrics(); } - - + /** * Repaint the region of change covered by the given document - * event. Damages the line that begins the range to cover + * event. Damages the line that begins the range to cover * the case when the insert/remove is only on one line. * If lines are added or removed, damages the whole - * view. The longest line is checked to see if it has + * view. The longest line is checked to see if it has * changed. */ protected void updateDamage(DocumentEvent changes, Shape a, ViewFactory f) { @@ -827,13 +784,12 @@ else { DocumentEvent.ElementChange ec = changes.getChange(elem); Element[] added = (ec != null) ? ec.getChildrenAdded() : null; Element[] removed = (ec != null) ? ec.getChildrenRemoved() : null; - if (((added != null) && (added.length > 0)) || - ((removed != null) && (removed.length > 0))) { + if (((added != null) && (added.length > 0)) || ((removed != null) && (removed.length > 0))) { // lines were added or removed... if (added != null) { int addedAt = ec.getIndex(); // FIXME: Is this correct????? for (int i = 0; i < added.length; i++) { - possiblyUpdateLongLine(added[i], addedAt+i); + possiblyUpdateLongLine(added[i], addedAt + i); } } if (removed != null) { @@ -848,17 +804,15 @@ else { preferenceChanged(null, true, true); host.repaint(); } - // This occurs when syntax highlighting only changes on lines // (i.e. beginning a multiline comment). - else if (changes.getType()==DocumentEvent.EventType.CHANGE) { - //System.err.println("Updating the damage due to a CHANGE event..."); + else if (changes.getType() == DocumentEvent.EventType.CHANGE) { + // System.err.println("Updating the damage due to a CHANGE + // event..."); int startLine = changes.getOffset(); int endLine = changes.getLength(); - damageLineRange(startLine,endLine, a, host); - } - - else { + damageLineRange(startLine, endLine, a, host); + } else { Element map = getElement(); int line = map.getElementIndex(changes.getOffset()); damageLineRange(line, line, a, host); @@ -871,15 +825,13 @@ else { // because it has gotten longer. longLineWidth = getLineWidth(line); preferenceChanged(null, true, false); - } - else { + } else { // If long line gets updated, update the status bars too. if (possiblyUpdateLongLine(e, line)) { preferenceChanged(null, true, false); } } - } - else if (changes.getType() == DocumentEvent.EventType.REMOVE) { + } else if (changes.getType() == DocumentEvent.EventType.REMOVE) { if (map.getElement(line) == longLine) { // removed from longest line... recalc longLineWidth = -1; // Must do this! @@ -889,13 +841,12 @@ else { } } } - - + /** * Checks to see if the font metrics and longest line are up-to-date. */ private void updateMetrics() { - host = (RSyntaxTextArea)getContainer(); + host = (RSyntaxTextArea) getContainer(); Font f = host.getFont(); if (font != f) { // The font changed, we need to recalculate the longest line! @@ -903,96 +854,83 @@ else { calculateLongestLine(); } } - - + /** * Provides a mapping from the view coordinate space to the logical * coordinate space of the model. * - * @param fx the X coordinate >= 0 - * @param fy the Y coordinate >= 0 - * @param a the allocated region to render into + * @param fx + * the X coordinate >= 0 + * @param fy + * the Y coordinate >= 0 + * @param a + * the allocated region to render into * @return the location within the model that best represents the - * given point in the view >= 0 + * given point in the view >= 0 */ @Override public int viewToModel(float fx, float fy, Shape a, Position.Bias[] bias) { - bias[0] = Position.Bias.Forward; - Rectangle alloc = a.getBounds(); - RSyntaxDocument doc = (RSyntaxDocument)getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) getDocument(); int x = (int) fx; int y = (int) fy; - // If they're asking about a view position above the area covered by // this view, then the position is assumed to be the starting position // of this view. if (y < alloc.y) { return getStartOffset(); } - // If they're asking about a position below this view, the position // is assumed to be the ending position of this view. else if (y > alloc.y + alloc.height) { return host.getLastVisibleOffset(); } - // They're asking about a position within the coverage of this view - // vertically. So, we figure out which line the point corresponds to. + // vertically. So, we figure out which line the point corresponds to. // If the line is greater than the number of lines contained, then // simply use the last line as it represents the last possible place // we can position to. else { - Element map = doc.getDefaultRootElement(); - int lineIndex = Math.abs((y - alloc.y) / lineHeight);//metrics.getHeight() ); -FoldManager fm = host.getFoldManager(); -//System.out.print("--- " + lineIndex); -lineIndex += fm.getHiddenLineCountAbove(lineIndex, true); -//System.out.println(" => " + lineIndex); + int lineIndex = Math.abs((y - alloc.y) / lineHeight);// metrics.getHeight() + // ); + FoldManager fm = host.getFoldManager(); + // System.out.print("--- " + lineIndex); + lineIndex += fm.getHiddenLineCountAbove(lineIndex, true); + // System.out.println(" => " + lineIndex); if (lineIndex >= map.getElementCount()) { return host.getLastVisibleOffset(); } - Element line = map.getElement(lineIndex); - // If the point is to the left of the line... if (x < alloc.x) { return line.getStartOffset(); - } - else if (x > alloc.x + alloc.width) { + } else if (x > alloc.x + alloc.width) { return line.getEndOffset() - 1; - } - else { + } else { // Determine the offset into the text int p0 = line.getStartOffset(); Token tokenList = doc.getTokenListForLine(lineIndex); tabBase = alloc.x; - int offs = tokenList.getListOffset( - (RSyntaxTextArea)getContainer(), - this, tabBase, x); - return offs!=-1 ? offs : p0; + int offs = tokenList.getListOffset((RSyntaxTextArea) getContainer(), this, tabBase, x); + return offs != -1 ? offs : p0; } - } // End of else. - } - - + /** * {@inheritDoc} */ @Override public int yForLine(Rectangle alloc, int line) throws BadLocationException { - - //Rectangle lineArea = lineToRect(alloc, lineIndex); + // Rectangle lineArea = lineToRect(alloc, lineIndex); updateMetrics(); if (metrics != null) { - // NOTE: lineHeight is not initially set here, leading to the + // NOTE: lineHeight is not initially set here, leading to the // current line not being highlighted when a document is first - // opened. So, we set it here just in case. - lineHeight = host!=null ? host.getLineHeight() : lineHeight; + // opened. So, we set it here just in case. + lineHeight = host != null ? host.getLineHeight() : lineHeight; if (host != null) { FoldManager fm = host.getFoldManager(); if (!fm.isLineHidden(line)) { @@ -1001,22 +939,16 @@ lineIndex += fm.getHiddenLineCountAbove(lineIndex, true); } } } - return -1; - } - - + /** * {@inheritDoc} */ @Override - public int yForLineContaining(Rectangle alloc, int offs) - throws BadLocationException { + public int yForLineContaining(Rectangle alloc, int offs) throws BadLocationException { Element map = getElement(); int line = map.getElementIndex(offs); return yForLine(alloc, line); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TextEditorPane.java b/src/org/fife/ui/rsyntaxtextarea/TextEditorPane.java index 3b3f802..f4ed06f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TextEditorPane.java +++ b/src/org/fife/ui/rsyntaxtextarea/TextEditorPane.java @@ -1,10 +1,8 @@ /* * 11/25/2008 - * * TextEditorPane.java - A syntax highlighting text area that has knowledge of * the file it is editing on disk. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -34,33 +32,33 @@ import org.fife.ui.rtextarea.RTextAreaEditorKit; * that adds information about the file being edited, such as: * *
    - *
  • Its name and location. - *
  • Is it dirty? - *
  • Is it read-only? - *
  • The last time it was loaded or saved to disk (local files only). - *
  • The file's encoding on disk. - *
  • Easy access to the line separator. + *
  • Its name and location. + *
  • Is it dirty? + *
  • Is it read-only? + *
  • The last time it was loaded or saved to disk (local files only). + *
  • The file's encoding on disk. + *
  • Easy access to the line separator. *
* - * Loading and saving is also built into the editor.

+ * Loading and saving is also built into the editor. + *

* * When saving UTF-8 files, whether or not a BOM is written is controlled by * the {@link UnicodeWriter} class. * Use {@link UnicodeWriter#setWriteUtf8BOM(boolean)} to toggle writing BOMs - * for UTF-8 files.

+ * for UTF-8 files. + *

* - * Both local and remote files (e.g. ftp) are supported. See the + * Both local and remote files (e.g. ftp) are supported. See the * {@link FileLocation} class for more information. * * @author Robert Futrell * @version 1.0 * @see FileLocation */ -public class TextEditorPane extends RSyntaxTextArea implements - DocumentListener { - +public class TextEditorPane extends RSyntaxTextArea implements DocumentListener { + private static final long serialVersionUID = 1L; - /** * Property change event fired when the file path this text area references * is updated. @@ -68,94 +66,84 @@ public class TextEditorPane extends RSyntaxTextArea implements * @see #load(FileLocation, String) * @see #saveAs(FileLocation) */ - public static final String FULL_PATH_PROPERTY = "TextEditorPane.fileFullPath"; - + public static final String FULL_PATH_PROPERTY = "TextEditorPane.fileFullPath"; /** * Property change event fired when the text area's dirty flag changes. * * @see #setDirty(boolean) */ - public static final String DIRTY_PROPERTY = "TextEditorPane.dirty"; - + public static final String DIRTY_PROPERTY = "TextEditorPane.dirty"; /** * Property change event fired when the text area should be treated as * read-only, and previously it should not, or vice-versa. * * @see #setReadOnly(boolean) */ - public static final String READ_ONLY_PROPERTY = "TextEditorPane.readOnly"; - + public static final String READ_ONLY_PROPERTY = "TextEditorPane.readOnly"; /** * Property change event fired when the text area's encoding changes. * * @see #setEncoding(String) */ public static final String ENCODING_PROPERTY = "TextEditorPane.encoding"; - /** * The location of the file being edited. */ private FileLocation loc; - /** * The charset to use when reading or writing this file. */ private String charSet; - /** * Whether the file should be treated as read-only. */ private boolean readOnly; - /** * Whether the file is dirty. */ private boolean dirty; - /** * The last time this file was modified on disk, for local files. * For remote files, this value should always be * {@link #LAST_MODIFIED_UNKNOWN}. */ private long lastSaveOrLoadTime; - /** * The value returned by {@link #getLastSaveOrLoadTime()} for remote files. */ - public static final long LAST_MODIFIED_UNKNOWN = 0; - + public static final long LAST_MODIFIED_UNKNOWN = 0; /** * The default name given to files if none is specified in a constructor. */ private static final String DEFAULT_FILE_NAME = "Untitled.txt"; - - + /** - * Constructor. The file will be given a default name. + * Constructor. The file will be given a default name. */ public TextEditorPane() { this(INSERT_MODE); } - - + /** - * Constructor. The file will be given a default name. + * Constructor. The file will be given a default name. * - * @param textMode Either INSERT_MODE or - * OVERWRITE_MODE. + * @param textMode + * Either INSERT_MODE or + * OVERWRITE_MODE. */ public TextEditorPane(int textMode) { this(textMode, false); } - - + /** - * Creates a new TextEditorPane. The file will be given + * Creates a new TextEditorPane. The file will be given * a default name. * - * @param textMode Either INSERT_MODE or - * OVERWRITE_MODE. - * @param wordWrapEnabled Whether or not to use word wrap in this pane. + * @param textMode + * Either INSERT_MODE or + * OVERWRITE_MODE. + * @param wordWrapEnabled + * Whether or not to use word wrap in this pane. */ public TextEditorPane(int textMode, boolean wordWrapEnabled) { super(textMode); @@ -166,88 +154,92 @@ public class TextEditorPane extends RSyntaxTextArea implements ioe.printStackTrace(); } } - - + /** * Creates a new TextEditorPane. * - * @param textMode Either INSERT_MODE or - * OVERWRITE_MODE. - * @param wordWrapEnabled Whether or not to use word wrap in this pane. - * @param loc The location of the text file being edited. If this value - * is null, a file named "Untitled.txt" in the current - * directory is used. - * @throws IOException If an IO error occurs reading the file at - * loc. This of course won't happen if - * loc is null. + * @param textMode + * Either INSERT_MODE or + * OVERWRITE_MODE. + * @param wordWrapEnabled + * Whether or not to use word wrap in this pane. + * @param loc + * The location of the text file being edited. If this value + * is null, a file named "Untitled.txt" in the + * current + * directory is used. + * @throws IOException + * If an IO error occurs reading the file at + * loc. This of course won't happen if + * loc is null. */ - public TextEditorPane(int textMode, boolean wordWrapEnabled, - FileLocation loc) throws IOException { + public TextEditorPane(int textMode, boolean wordWrapEnabled, FileLocation loc) throws IOException { this(textMode, wordWrapEnabled, loc, null); } - - + /** * Creates a new TextEditorPane. * - * @param textMode Either INSERT_MODE or - * OVERWRITE_MODE. - * @param wordWrapEnabled Whether or not to use word wrap in this pane. - * @param loc The location of the text file being edited. If this value - * is null, a file named "Untitled.txt" in the current - * directory is used. This file is displayed as empty even if it - * actually exists. - * @param defaultEnc The default encoding to use when opening the file, - * if the file is not Unicode. If this value is null, - * a system default value is used. - * @throws IOException If an IO error occurs reading the file at - * loc. This of course won't happen if - * loc is null. + * @param textMode + * Either INSERT_MODE or + * OVERWRITE_MODE. + * @param wordWrapEnabled + * Whether or not to use word wrap in this pane. + * @param loc + * The location of the text file being edited. If this value + * is null, a file named "Untitled.txt" in the + * current + * directory is used. This file is displayed as empty even if it + * actually exists. + * @param defaultEnc + * The default encoding to use when opening the file, + * if the file is not Unicode. If this value is + * null, + * a system default value is used. + * @throws IOException + * If an IO error occurs reading the file at + * loc. This of course won't happen if + * loc is null. */ - public TextEditorPane(int textMode, boolean wordWrapEnabled, - FileLocation loc, String defaultEnc) throws IOException { + public TextEditorPane(int textMode, boolean wordWrapEnabled, FileLocation loc, String defaultEnc) throws IOException { super(textMode); setLineWrap(wordWrapEnabled); init(loc, defaultEnc); } - - + /** * Callback for when styles in the current document change. * This method is never called. * - * @param e The document event. + * @param e + * The document event. */ @Override - public void changedUpdate(DocumentEvent e) { - } - - - + public void changedUpdate(DocumentEvent e) {} + /** * Returns the default encoding for this operating system. * * @return The default encoding. */ private static String getDefaultEncoding() { - // NOTE: The "file.encoding" system property is not guaranteed to be + // NOTE: The "file.encoding" system property is not guaranteed to be // set by the spec, so we cannot rely on it. String encoding = Charset.defaultCharset().name(); - if (encoding==null) { + if (encoding == null) { try { File f = File.createTempFile("rsta", null); FileWriter w = new FileWriter(f); encoding = w.getEncoding(); w.close(); - f.deleteOnExit();//delete(); Keep FindBugs happy + f.deleteOnExit();// delete(); Keep FindBugs happy } catch (IOException ioe) { encoding = "US-ASCII"; } } return encoding; } - - + /** * Returns the encoding to use when reading or writing this file. * @@ -257,33 +249,31 @@ public class TextEditorPane extends RSyntaxTextArea implements public String getEncoding() { return charSet; } - - + /** * Returns the full path to this document. * * @return The full path to the document. */ public String getFileFullPath() { - return loc==null ? null : loc.getFileFullPath(); + return loc == null ? null : loc.getFileFullPath(); } - - + /** * Returns the file name of this document. * * @return The file name. */ public String getFileName() { - return loc==null ? null : loc.getFileName(); + return loc == null ? null : loc.getFileName(); } - - + /** * Returns the timestamp for when this file was last loaded or saved - * by this editor pane. If the file has been modified on disk by + * by this editor pane. If the file has been modified on disk by * another process after it was loaded into this editor pane, this method - * will not return the actual file's last modified time.

+ * will not return the actual file's last modified time. + *

* * For remote files, this method will always return * {@link #LAST_MODIFIED_UNKNOWN}. @@ -296,77 +286,73 @@ public class TextEditorPane extends RSyntaxTextArea implements public long getLastSaveOrLoadTime() { return lastSaveOrLoadTime; } - - + /** * Returns the line separator used when writing this file (e.g. - * "\n", "\r\n", or "\r").

+ * "\n", "\r\n", or "\r"). + *

* * Note that this value is an Object and not a * String as that is the way the {@link Document} interface - * defines its property values. If you always use + * defines its property values. If you always use * {@link #setLineSeparator(String)} to modify this value, then the value * returned from this method will always be a String. * - * @return The line separator. If this value is null, then + * @return The line separator. If this value is null, then * the system default line separator is used (usually the value * of System.getProperty("line.separator")). * @see #setLineSeparator(String) * @see #setLineSeparator(String, boolean) */ public Object getLineSeparator() { - return getDocument().getProperty( - RTextAreaEditorKit.EndOfLineStringProperty); + return getDocument().getProperty(RTextAreaEditorKit.EndOfLineStringProperty); } - - + /** * Initializes this editor with the specified file location. * - * @param loc The file location. If this is null, a default - * location is used and an empty file is displayed. - * @param defaultEnc The default encoding to use when opening the file, - * if the file is not Unicode. If this value is null, - * a system default value is used. - * @throws IOException If an IO error occurs reading from loc. - * If loc is null, this cannot happen. + * @param loc + * The file location. If this is null, a default + * location is used and an empty file is displayed. + * @param defaultEnc + * The default encoding to use when opening the file, + * if the file is not Unicode. If this value is + * null, + * a system default value is used. + * @throws IOException + * If an IO error occurs reading from loc. + * If loc is null, this cannot happen. */ private void init(FileLocation loc, String defaultEnc) throws IOException { - - if (loc==null) { + if (loc == null) { // Don't call load() just in case Untitled.txt actually exists, // just to ensure there is no chance of an IOException being thrown // in the default case. this.loc = FileLocation.create(DEFAULT_FILE_NAME); - charSet = defaultEnc==null ? getDefaultEncoding() : defaultEnc; + charSet = defaultEnc == null ? getDefaultEncoding() : defaultEnc; // Ensure that line separator always has a value, even if the file - // does not exist (or is the "default" file). This makes life + // does not exist (or is the "default" file). This makes life // easier for host applications that want to display this value. setLineSeparator(System.getProperty("line.separator")); - } - else { + } else { load(loc, defaultEnc); // Sets this.loc } - if (this.loc.isLocalAndExists()) { File file = new File(this.loc.getFileFullPath()); lastSaveOrLoadTime = file.lastModified(); setReadOnly(!file.canWrite()); - } - else { + } else { lastSaveOrLoadTime = LAST_MODIFIED_UNKNOWN; setReadOnly(false); } - setDirty(false); - } - - + /** * Callback for when text is inserted into the document. * - * @param e Information on the insertion. + * @param e + * Information on the insertion. */ @Override public void insertUpdate(DocumentEvent e) { @@ -374,8 +360,7 @@ public class TextEditorPane extends RSyntaxTextArea implements setDirty(true); } } - - + /** * Returns whether or not the text in this editor has unsaved changes. * @@ -385,8 +370,7 @@ public class TextEditorPane extends RSyntaxTextArea implements public boolean isDirty() { return dirty; } - - + /** * Returns whether this file is a local file. * @@ -395,8 +379,7 @@ public class TextEditorPane extends RSyntaxTextArea implements public boolean isLocal() { return loc.isLocal(); } - - + /** * Returns whether this is a local file that already exists. * @@ -405,12 +388,12 @@ public class TextEditorPane extends RSyntaxTextArea implements public boolean isLocalAndExists() { return loc.isLocalAndExists(); } - - + /** * Returns whether the text file has been modified outside of this editor - * since the last load or save operation. Note that if this is a remote - * file, this method will always return false.

+ * since the last load or save operation. Note that if this is a remote + * file, this method will always return false. + *

* * This method may be used by applications to implement a reloading * feature, where the user is prompted to reload a file if it has been @@ -421,10 +404,9 @@ public class TextEditorPane extends RSyntaxTextArea implements * @see #getLastSaveOrLoadTime() */ public boolean isModifiedOutsideEditor() { - return loc.getActualLastModified()>getLastSaveOrLoadTime(); + return loc.getActualLastModified() > getLastSaveOrLoadTime(); } - - + /** * Returns whether or not the text area should be treated as read-only. * @@ -434,39 +416,39 @@ public class TextEditorPane extends RSyntaxTextArea implements public boolean isReadOnly() { return readOnly; } - - + /** - * Loads the specified file in this editor. This method fires a property + * Loads the specified file in this editor. This method fires a property * change event of type {@link #FULL_PATH_PROPERTY}. * - * @param loc The location of the file to load. This cannot be - * null. - * @param defaultEnc The encoding to use when loading/saving the file. - * This encoding will only be used if the file is not Unicode. - * If this value is null, the system default encoding - * is used. - * @throws IOException If an IO error occurs. + * @param loc + * The location of the file to load. This cannot be + * null. + * @param defaultEnc + * The encoding to use when loading/saving the file. + * This encoding will only be used if the file is not Unicode. + * If this value is null, the system default + * encoding + * is used. + * @throws IOException + * If an IO error occurs. * @see #save() * @see #saveAs(FileLocation) */ public void load(FileLocation loc, String defaultEnc) throws IOException { - // For new local files, just go with it. if (loc.isLocal() && !loc.isLocalAndExists()) { - this.charSet = defaultEnc!=null ? defaultEnc : getDefaultEncoding(); + this.charSet = defaultEnc != null ? defaultEnc : getDefaultEncoding(); this.loc = loc; setText(null); discardAllEdits(); setDirty(false); return; } - - // Old local files and remote files, load 'em up. UnicodeReader will + // Old local files and remote files, load 'em up. UnicodeReader will // check for BOMs and handle them correctly in all cases, then pass // rest of stream down to InputStreamReader. UnicodeReader ur = new UnicodeReader(loc.getInputStream(), defaultEnc); - // Remove listener so dirty flag doesn't get set when loading a file. Document doc = getDocument(); doc.removeDocumentListener(this); @@ -477,7 +459,6 @@ public class TextEditorPane extends RSyntaxTextArea implements doc.addDocumentListener(this); r.close(); } - // No IOException thrown, so we can finally change the location. charSet = ur.getEncoding(); String old = getFileFullPath(); @@ -486,25 +467,26 @@ public class TextEditorPane extends RSyntaxTextArea implements setCaretPosition(0); discardAllEdits(); firePropertyChange(FULL_PATH_PROPERTY, old, getFileFullPath()); - } - - + /** - * Reloads this file from disk. The file must exist for this operation - * to not throw an exception.

+ * Reloads this file from disk. The file must exist for this operation + * to not throw an exception. + *

* * The file's "dirty" state will be set to false after this - * operation. If this is a local file, its "last modified" time is - * updated to reflect that of the actual file.

+ * operation. If this is a local file, its "last modified" time is + * updated to reflect that of the actual file. + *

* * Note that if the file has been modified on disk, and is now a Unicode * encoding when before it wasn't (or if it is a different Unicode now), * this will cause this {@link TextEditorPane}'s encoding to change. * Otherwise, the file's encoding will stay the same. * - * @throws IOException If the file does not exist, or if an IO error - * occurs reading the file. + * @throws IOException + * If the file does not exist, or if an IO error + * occurs reading the file. * @see #isLocalAndExists() */ public void reload() throws IOException { @@ -522,12 +504,12 @@ public class TextEditorPane extends RSyntaxTextArea implements syncLastSaveOrLoadTimeToActualFile(); discardAllEdits(); // Prevent user from being able to undo the reload } - - + /** * Called whenever text is removed from this editor. * - * @param e The document event. + * @param e + * The document event. */ @Override public void removeUpdate(DocumentEvent e) { @@ -535,15 +517,16 @@ public class TextEditorPane extends RSyntaxTextArea implements setDirty(true); } } - - + /** - * Saves the file in its current encoding.

+ * Saves the file in its current encoding. + *

* * The text area's "dirty" state is set to false, and if * this is a local file, its "last modified" time is updated. * - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. * @see #saveAs(FileLocation) * @see #load(FileLocation, String) */ @@ -552,14 +535,15 @@ public class TextEditorPane extends RSyntaxTextArea implements setDirty(false); syncLastSaveOrLoadTimeToActualFile(); } - - + /** - * Saves this file in a new local location. This method fires a property + * Saves this file in a new local location. This method fires a property * change event of type {@link #FULL_PATH_PROPERTY}. * - * @param loc The location to save to. - * @throws IOException If an IO error occurs. + * @param loc + * The location to save to. + * @throws IOException + * If an IO error occurs. * @see #save() * @see #load(FileLocation, String) */ @@ -572,93 +556,94 @@ public class TextEditorPane extends RSyntaxTextArea implements lastSaveOrLoadTime = loc.getActualLastModified(); firePropertyChange(FULL_PATH_PROPERTY, old, getFileFullPath()); } - - + /** * Saves the text in this editor to the specified location. * - * @param loc The location to save to. - * @throws IOException If an IO error occurs. + * @param loc + * The location to save to. + * @throws IOException + * If an IO error occurs. */ private void saveImpl(FileLocation loc) throws IOException { OutputStream out = loc.getOutputStream(); - BufferedWriter w = new BufferedWriter( - new UnicodeWriter(out, getEncoding())); + BufferedWriter w = new BufferedWriter(new UnicodeWriter(out, getEncoding())); try { write(w); } finally { w.close(); } } - - + /** * Sets whether or not this text in this editor has unsaved changes. - * This fires a property change event of type {@link #DIRTY_PROPERTY}.

+ * This fires a property change event of type {@link #DIRTY_PROPERTY}. + *

* * Applications will usually have no need to call this method directly; the * only time you might have a need to call this method directly is if you * have to initialize an instance of TextEditorPane with content that does * not come from a file. TextEditorPane automatically sets its * own dirty flag when its content is edited, when its encoding is changed, - * or when its line ending property is changed. It is cleared whenever + * or when its line ending property is changed. It is cleared whenever * load(), reload(), save(), or * saveAs() are called. * - * @param dirty Whether or not the text has been modified. + * @param dirty + * Whether or not the text has been modified. * @see #isDirty() */ public void setDirty(boolean dirty) { - if (this.dirty!=dirty) { + if (this.dirty != dirty) { this.dirty = dirty; firePropertyChange(DIRTY_PROPERTY, !dirty, dirty); } } - - + /** * Sets the document for this editor. * - * @param doc The new document. + * @param doc + * The new document. */ @Override public void setDocument(Document doc) { Document old = getDocument(); - if (old!=null) { + if (old != null) { old.removeDocumentListener(this); } super.setDocument(doc); doc.addDocumentListener(this); } - - + /** - * Sets the encoding to use when reading or writing this file. This + * Sets the encoding to use when reading or writing this file. This * method sets the editor's dirty flag when the encoding is changed, and * fires a property change event of type {@link #ENCODING_PROPERTY}. * - * @param encoding The new encoding. - * @throws UnsupportedCharsetException If the encoding is not supported. - * @throws NullPointerException If encoding is - * null. + * @param encoding + * The new encoding. + * @throws UnsupportedCharsetException + * If the encoding is not supported. + * @throws NullPointerException + * If encoding is + * null. * @see #getEncoding() */ public void setEncoding(String encoding) { - if (encoding==null) { + if (encoding == null) { throw new NullPointerException("encoding cannot be null"); - } - else if (!Charset.isSupported(encoding)) { + } else if (!Charset.isSupported(encoding)) { throw new UnsupportedCharsetException(encoding); } - if (charSet==null || !charSet.equals(encoding)) { + if (charSet == null || !charSet.equals(encoding)) { String oldEncoding = charSet; charSet = encoding; firePropertyChange(ENCODING_PROPERTY, oldEncoding, charSet); setDirty(true); } } - - + /** * Sets the line separator sequence to use when this file is saved (e.g. * "\n", "\r\n" or "\r"). @@ -667,18 +652,21 @@ public class TextEditorPane extends RSyntaxTextArea implements * getDocument().putProperty() because it sets the editor's * dirty flag when the line separator is changed. * - * @param separator The new line separator. - * @throws NullPointerException If separator is - * null. - * @throws IllegalArgumentException If separator is not one - * of "\n", "\r\n" or "\r". + * @param separator + * The new line separator. + * @throws NullPointerException + * If separator is + * null. + * @throws IllegalArgumentException + * If separator is not one + * of "\n", "\r\n" or + * "\r". * @see #getLineSeparator() */ public void setLineSeparator(String separator) { setLineSeparator(separator, true); } - - + /** * Sets the line separator sequence to use when this file is saved (e.g. * "\n", "\r\n" or "\r"). @@ -687,55 +675,57 @@ public class TextEditorPane extends RSyntaxTextArea implements * getDocument().putProperty() because can set the editor's * dirty flag when the line separator is changed. * - * @param separator The new line separator. - * @param setDirty Whether the dirty flag should be set if the line - * separator is changed. - * @throws NullPointerException If separator is - * null. - * @throws IllegalArgumentException If separator is not one - * of "\n", "\r\n" or "\r". + * @param separator + * The new line separator. + * @param setDirty + * Whether the dirty flag should be set if the line + * separator is changed. + * @throws NullPointerException + * If separator is + * null. + * @throws IllegalArgumentException + * If separator is not one + * of "\n", "\r\n" or + * "\r". * @see #getLineSeparator() */ public void setLineSeparator(String separator, boolean setDirty) { - if (separator==null) { + if (separator == null) { throw new NullPointerException("terminator cannot be null"); } - if (!"\r\n".equals(separator) && !"\n".equals(separator) && - !"\r".equals(separator)) { + if (!"\r\n".equals(separator) && !"\n".equals(separator) && !"\r".equals(separator)) { throw new IllegalArgumentException("Invalid line terminator"); } Document doc = getDocument(); - Object old = doc.getProperty( - RTextAreaEditorKit.EndOfLineStringProperty); + Object old = doc.getProperty(RTextAreaEditorKit.EndOfLineStringProperty); if (!separator.equals(old)) { - doc.putProperty(RTextAreaEditorKit.EndOfLineStringProperty, - separator); + doc.putProperty(RTextAreaEditorKit.EndOfLineStringProperty, separator); if (setDirty) { setDirty(true); } } } - - + /** * Sets whether or not this text area should be treated as read-only. * This fires a property change event of type {@link #READ_ONLY_PROPERTY}. * - * @param readOnly Whether or not the document is read-only. + * @param readOnly + * Whether or not the document is read-only. * @see #isReadOnly() */ public void setReadOnly(boolean readOnly) { - if (this.readOnly!=readOnly) { + if (this.readOnly != readOnly) { this.readOnly = readOnly; firePropertyChange(READ_ONLY_PROPERTY, !readOnly, readOnly); } } - - + /** * Syncs this text area's "last saved or loaded" time to that of the file - * being edited, if that file is local and exists. If the file is - * remote or is local but does not yet exist, nothing happens.

+ * being edited, if that file is local and exists. If the file is + * remote or is local but does not yet exist, nothing happens. + *

* * You normally do not have to call this method, as the "last saved or * loaded" time for {@link TextEditorPane}s is kept up-to-date internally @@ -749,8 +739,7 @@ public class TextEditorPane extends RSyntaxTextArea implements lastSaveOrLoadTime = loc.getActualLastModified(); } } - - + public static void main(String[] args) throws Exception { try { TextEditorPane textArea = new TextEditorPane(); @@ -769,4 +758,4 @@ public class TextEditorPane extends RSyntaxTextArea implements e.printStackTrace(); } } -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/Theme.java b/src/org/fife/ui/rsyntaxtextarea/Theme.java index dce51f1..7f2f720 100644 --- a/src/org/fife/ui/rsyntaxtextarea/Theme.java +++ b/src/org/fife/ui/rsyntaxtextarea/Theme.java @@ -1,9 +1,7 @@ /* * 10/30/2011 - * * Theme.java - A color theme for RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -45,22 +43,24 @@ import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; - /** * A theme is a set of fonts and colors to use to style RSyntaxTextArea and - * RTextScrollPane. Themes are defined in XML files that are validated against - * org/fife/ui/rsyntaxtextarea/themes/theme.dtd. This provides + * RTextScrollPane. Themes are defined in XML files that are validated against + * org/fife/ui/rsyntaxtextarea/themes/theme.dtd. This provides * applications and other consumers with an easy way to style RSyntaxTextArea - * without having to use the API.

+ * without having to use the API. + *

* * Sample themes are included in the source tree in the * org.fife.ui.rsyntaxtextarea.themes package, and can be loaded - * via getClass().getResourceAsStream(...).

+ * via getClass().getResourceAsStream(...). + *

* * All fields are public to facilitate programmatic manipulation, but typically * you won't need to reference any fields directly, rather using the * load(), save(), and apply() methods - * for various tasks.

+ * for various tasks. + *

* * Note that to save a Theme via {@link #save(OutputStream)}, * you must currently create a Theme from a text area wrapped in @@ -72,7 +72,7 @@ import org.xml.sax.helpers.DefaultHandler; */ @SuppressWarnings({ "checkstyle:visibilitymodifier" }) public class Theme { - + public Font baseFont; public Color bgColor; public Color caretColor; @@ -92,9 +92,7 @@ public class Theme { public boolean matchedBracketAnimate; public Color hyperlinkFG; public Color[] secondaryLanguages; - public SyntaxScheme scheme; - public Color gutterBackgroundColor; public Color gutterBorderColor; public Color activeLineRangeColor; @@ -105,31 +103,30 @@ public class Theme { public Color foldIndicatorFG; public Color foldBG; public Color armedFoldBG; - - + /** * Private constructor, used when loading from a stream. * - * @param baseFont The default font to use for any "base font" properties - * not specified in the theme XML. If this is null, - * a default monospaced font will be used. + * @param baseFont + * The default font to use for any "base font" properties + * not specified in the theme XML. If this is null, + * a default monospaced font will be used. */ private Theme(Font baseFont) { // Optional fields that require a default value. - this.baseFont = baseFont!=null ? baseFont : RTextArea.getDefaultFont(); + this.baseFont = baseFont != null ? baseFont : RTextArea.getDefaultFont(); secondaryLanguages = new Color[3]; activeLineRangeColor = Gutter.DEFAULT_ACTIVE_LINE_RANGE_COLOR; } - - + /** - * Creates a theme from an RSyntaxTextArea. It should be contained in + * Creates a theme from an RSyntaxTextArea. It should be contained in * an RTextScrollPane to get all gutter color information. * - * @param textArea The text area. + * @param textArea + * The text area. */ public Theme(RSyntaxTextArea textArea) { - baseFont = textArea.getFont(); bgColor = textArea.getBackground(); caretColor = textArea.getCaretColor(); @@ -148,17 +145,14 @@ public class Theme { matchedBracketHighlightBoth = textArea.getPaintMatchedBracketPair(); matchedBracketAnimate = textArea.getAnimateBracketMatching(); hyperlinkFG = textArea.getHyperlinkForeground(); - int count = textArea.getSecondaryLanguageCount(); secondaryLanguages = new Color[count]; - for (int i=0; i0 ? lineNumberFontSize : - baseFont.getSize(); + String fontName = lineNumberFont != null ? lineNumberFont : baseFont.getFamily(); + int fontSize = lineNumberFontSize > 0 ? lineNumberFontSize : baseFont.getSize(); Font font = getFont(fontName, Font.PLAIN, fontSize); gutter.setLineNumberFont(font); gutter.setFoldIndicatorForeground(foldIndicatorFG); gutter.setFoldBackground(foldBG); gutter.setArmedFoldBackground(armedFoldBG); } - } - - + private static String colorToString(Color c) { int color = c.getRGB() & 0xffffff; - StringBuilder stringBuilder = new StringBuilder(Integer.toHexString(color)); - while (stringBuilder.length()<6) { - stringBuilder.insert(0, "0"); + StringBuilder stringBuilder = new StringBuilder(Integer.toHexString(color)); + while (stringBuilder.length() < 6) { + stringBuilder.insert(0, "0"); } return stringBuilder.toString(); } - - + /** * Returns the default selection background color to use if "default" is * specified in a theme. @@ -247,20 +231,19 @@ public class Theme { */ private static Color getDefaultBG() { Color c = UIManager.getColor("nimbusLightBackground"); - if (c==null) { + if (c == null) { // Don't search for "text", as Nimbus defines that as the text // component "text" color, but Basic LAFs use it for text - // component backgrounds! Nimbus also defines TextArea.background + // component backgrounds! Nimbus also defines TextArea.background // as too dark, not what it actually uses for text area backgrounds c = UIManager.getColor("TextArea.background"); - if (c==null) { + if (c == null) { c = new ColorUIResource(SystemColor.text); } } return c; } - - + /** * Returns the default selection background color to use if "default" is * specified in a theme. @@ -270,19 +253,18 @@ public class Theme { */ private static Color getDefaultSelectionBG() { Color c = UIManager.getColor("TextArea.selectionBackground"); - if (c==null) { + if (c == null) { c = UIManager.getColor("textHighlight"); - if (c==null) { + if (c == null) { c = UIManager.getColor("nimbusSelectionBackground"); - if (c==null) { + if (c == null) { c = new ColorUIResource(SystemColor.textHighlight); } } } return c; } - - + /** * Returns the default "selected text" color to use if "default" is * specified in a theme. @@ -292,25 +274,27 @@ public class Theme { */ private static Color getDefaultSelectionFG() { Color c = UIManager.getColor("TextArea.selectionForeground"); - if (c==null) { + if (c == null) { c = UIManager.getColor("textHighlightText"); - if (c==null) { + if (c == null) { c = UIManager.getColor("nimbusSelectedText"); - if (c==null) { + if (c == null) { c = new ColorUIResource(SystemColor.textHighlightText); } } } return c; } - - + /** * Returns the specified font. * - * @param family The font family. - * @param style The style of font. - * @param size The size of the font. + * @param family + * The font family. + * @param style + * The style of font. + * @param size + * The size of the font. * @return The font. */ private static Font getFont(String family, int style, int size) { @@ -318,187 +302,163 @@ public class Theme { StyleContext sc = StyleContext.getDefaultStyleContext(); return sc.getFont(family, style, size); } - - + /** * Loads a theme. * - * @param in The input stream to read from. This will be closed when this - * method returns. + * @param in + * The input stream to read from. This will be closed when this + * method returns. * @return The theme. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. * @see #save(OutputStream) */ public static Theme load(InputStream in) throws IOException { return load(in, null); } - - + /** * Loads a theme. * - * @param in The input stream to read from. This will be closed when this - * method returns. - * @param baseFont The default font to use for any "base font" properties - * not specified in the theme XML. If this is null, - * a default monospaced font will be used. + * @param in + * The input stream to read from. This will be closed when this + * method returns. + * @param baseFont + * The default font to use for any "base font" properties + * not specified in the theme XML. If this is null, + * a default monospaced font will be used. * @return The theme. - * @throws IOException If an IO error occurs. + * @throws IOException + * If an IO error occurs. * @see #save(OutputStream) */ public static Theme load(InputStream in, Font baseFont) throws IOException { - Theme theme = new Theme(baseFont); - BufferedInputStream bin = new BufferedInputStream(in); try { XmlHandler.load(theme, bin); } finally { bin.close(); } - return theme; - } - - + /** * Saves this theme to an output stream. * - * @param out The output stream to write to. - * @throws IOException If an IO error occurs. + * @param out + * The output stream to write to. + * @throws IOException + * If an IO error occurs. * @see #load(InputStream) */ public void save(OutputStream out) throws IOException { - BufferedOutputStream bout = new BufferedOutputStream(out); try { - - DocumentBuilder db = DocumentBuilderFactory.newInstance(). - newDocumentBuilder(); + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); DOMImplementation impl = db.getDOMImplementation(); - Document doc = impl.createDocument(null, "RSyntaxTheme", null); Element root = doc.getDocumentElement(); root.setAttribute("version", "1.0"); - Element elem = doc.createElement("baseFont"); - if (!baseFont.getFamily().equals( - RSyntaxTextArea.getDefaultFont().getFamily())) { + if (!baseFont.getFamily().equals(RSyntaxTextArea.getDefaultFont().getFamily())) { elem.setAttribute("family", baseFont.getFamily()); } elem.setAttribute("size", Integer.toString(baseFont.getSize())); root.appendChild(elem); - elem = doc.createElement("background"); elem.setAttribute("color", colorToString(bgColor)); root.appendChild(elem); - elem = doc.createElement("caret"); elem.setAttribute("color", colorToString(caretColor)); root.appendChild(elem); - elem = doc.createElement("selection"); elem.setAttribute("useFG", Boolean.toString(useSelctionFG)); elem.setAttribute("fg", colorToString(selectionFG)); elem.setAttribute("bg", colorToString(selectionBG)); elem.setAttribute("roundedEdges", Boolean.toString(selectionRoundedEdges)); root.appendChild(elem); - elem = doc.createElement("currentLineHighlight"); elem.setAttribute("color", colorToString(currentLineHighlight)); elem.setAttribute("fade", Boolean.toString(fadeCurrentLineHighlight)); root.appendChild(elem); - elem = doc.createElement("marginLine"); elem.setAttribute("fg", colorToString(marginLineColor)); root.appendChild(elem); - elem = doc.createElement("markAllHighlight"); elem.setAttribute("color", colorToString(markAllHighlightColor)); root.appendChild(elem); - elem = doc.createElement("markOccurrencesHighlight"); elem.setAttribute("color", colorToString(markOccurrencesColor)); elem.setAttribute("border", Boolean.toString(markOccurrencesBorder)); root.appendChild(elem); - elem = doc.createElement("matchedBracket"); elem.setAttribute("fg", colorToString(matchedBracketFG)); elem.setAttribute("bg", colorToString(matchedBracketBG)); elem.setAttribute("highlightBoth", Boolean.toString(matchedBracketHighlightBoth)); elem.setAttribute("animate", Boolean.toString(matchedBracketAnimate)); root.appendChild(elem); - elem = doc.createElement("hyperlinks"); elem.setAttribute("fg", colorToString(hyperlinkFG)); root.appendChild(elem); - elem = doc.createElement("secondaryLanguages"); - for (int i=0; i0) { - elem.setAttribute("fontSize", - Integer.toString(lineNumberFontSize)); + if (lineNumberFontSize > 0) { + elem.setAttribute("fontSize", Integer.toString(lineNumberFontSize)); } root.appendChild(elem); - elem = doc.createElement("foldIndicator"); elem.setAttribute("fg", colorToString(foldIndicatorFG)); elem.setAttribute("iconBg", colorToString(foldBG)); elem.setAttribute("iconArmedBg", colorToString(armedFoldBG)); root.appendChild(elem); - elem = doc.createElement("iconRowHeader"); elem.setAttribute("activeLineRange", colorToString(activeLineRangeColor)); elem.setAttribute("inheritsGutterBG", Boolean.toString(iconRowHeaderInheritsGutterBG)); root.appendChild(elem); - elem = doc.createElement("tokenStyles"); Field[] fields = TokenTypes.class.getFields(); - for (int i=0; i * "$00ff00" * "00ff00" *

+ * * will return new Color(0, 255, 0). * - * @param s The string to evaluate. + * @param s + * The string to evaluate. * @return The color. */ private static Color stringToColor(String s) { return stringToColor(s, null); } - - + /** - * Returns the color represented by a string. The input is expected to - * be a 6-digit hex string, optionally prefixed by a '$'. For example, + * Returns the color represented by a string. The input is expected to + * be a 6-digit hex string, optionally prefixed by a '$'. For example, * either of the following: + * *
 	 * "$00ff00"
 	 * "00ff00"
 	 * 
+ * * will return new Color(0, 255, 0). * - * @param s The string to evaluate. - * @param defaultVal The color to use if s is - * "default". + * @param s + * The string to evaluate. + * @param defaultVal + * The color to use if s is + * "default". * @return The color. */ private static Color stringToColor(String s, Color defaultVal) { - if (s==null || "default".equalsIgnoreCase(s)) { + if (s == null || "default".equalsIgnoreCase(s)) { return defaultVal; } - if (s.length()==6 || s.length()==7) { - if (s.charAt(0)=='$') { + if (s.length() == 6 || s.length() == 7) { + if (s.charAt(0) == '$') { s = s.substring(1); } return new Color(Integer.parseInt(s, 16)); } return null; } - - + /** * Loads a SyntaxScheme from an XML file. */ private static class XmlHandler extends DefaultHandler { - + private Theme theme; - + @Override public void error(SAXParseException e) throws SAXException { throw e; } - + @Override public void fatalError(SAXParseException e) throws SAXException { throw e; } - - public static void load(Theme theme, InputStream in) throws IOException { + + public static void load(Theme theme, InputStream in) throws IOException { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setValidating(true); try { @@ -620,13 +580,12 @@ public class Theme { InputSource is = new InputSource(in); is.setEncoding("UTF-8"); reader.parse(is); - } catch (/*SAX|ParserConfiguration*/Exception se) { + } catch (/* SAX|ParserConfiguration */Exception se) { throw new IOException(se.toString()); } } - - private static int parseInt(Attributes attrs, String attr, - int def) { + + private static int parseInt(Attributes attrs, String attr, int def) { int value = def; String temp = attrs.getValue(attr); if (temp != null) { @@ -638,117 +597,86 @@ public class Theme { } return value; } - + @Override - public InputSource resolveEntity(String publicID, - String systemID) throws SAXException { - return new InputSource(getClass(). - getResourceAsStream("themes/theme.dtd")); + public InputSource resolveEntity(String publicID, String systemID) throws SAXException { + return new InputSource(getClass().getResourceAsStream("themes/theme.dtd")); } - + @Override - public void startElement(String uri, String localName, String qName, - Attributes attrs) { - + public void startElement(String uri, String localName, String qName, Attributes attrs) { if ("background".equals(qName)) { - String color = attrs.getValue("color"); - if (color!=null) { + if (color != null) { theme.bgColor = stringToColor(color, getDefaultBG()); theme.gutterBackgroundColor = theme.bgColor; - } - else { + } else { String img = attrs.getValue("image"); - if (img!=null) { + if (img != null) { throw new IllegalArgumentException("Not yet implemented"); } } } - // The base font to use in the editor. else if ("baseFont".equals(qName)) { int size = theme.baseFont.getSize(); String sizeStr = attrs.getValue("size"); - if (sizeStr!=null) { + if (sizeStr != null) { size = Integer.parseInt(sizeStr); } String family = attrs.getValue("family"); - if (family!=null) { + if (family != null) { theme.baseFont = getFont(family, Font.PLAIN, size); - } - else if (sizeStr!=null) { + } else if (sizeStr != null) { // No family specified, keep original family - theme.baseFont = theme.baseFont.deriveFont(size*1f); + theme.baseFont = theme.baseFont.deriveFont(size * 1f); } - } - - else if ("caret".equals(qName)) { + } else if ("caret".equals(qName)) { String color = attrs.getValue("color"); theme.caretColor = stringToColor(color); - } - - else if ("currentLineHighlight".equals(qName)) { + } else if ("currentLineHighlight".equals(qName)) { String color = attrs.getValue("color"); theme.currentLineHighlight = stringToColor(color); String fadeStr = attrs.getValue("fade"); boolean fade = Boolean.parseBoolean(fadeStr); theme.fadeCurrentLineHighlight = fade; - } - - else if ("foldIndicator".equals(qName)) { + } else if ("foldIndicator".equals(qName)) { String color = attrs.getValue("fg"); theme.foldIndicatorFG = stringToColor(color); color = attrs.getValue("iconBg"); theme.foldBG = stringToColor(color); color = attrs.getValue("iconArmedBg"); theme.armedFoldBG = stringToColor(color); - } - - else if ("gutterBackground".equals(qName)) { + } else if ("gutterBackground".equals(qName)) { String color = attrs.getValue("color"); - if (color!=null) { + if (color != null) { theme.gutterBackgroundColor = stringToColor(color); } - } - - else if ("gutterBorder".equals(qName)) { + } else if ("gutterBorder".equals(qName)) { String color = attrs.getValue("color"); theme.gutterBorderColor = stringToColor(color); - } - - else if ("iconRowHeader".equals(qName)) { + } else if ("iconRowHeader".equals(qName)) { String color = attrs.getValue("activeLineRange"); theme.activeLineRangeColor = stringToColor(color); String inheritBGStr = attrs.getValue("inheritsGutterBG"); - theme.iconRowHeaderInheritsGutterBG = - inheritBGStr==null ? false : Boolean.valueOf(inheritBGStr); - } - - else if ("lineNumbers".equals(qName)) { + theme.iconRowHeaderInheritsGutterBG = inheritBGStr == null ? false : Boolean.valueOf(inheritBGStr); + } else if ("lineNumbers".equals(qName)) { String color = attrs.getValue("fg"); theme.lineNumberColor = stringToColor(color); theme.lineNumberFont = attrs.getValue("fontFamily"); theme.lineNumberFontSize = parseInt(attrs, "fontSize", -1); - } - - else if ("marginLine".equals(qName)) { + } else if ("marginLine".equals(qName)) { String color = attrs.getValue("fg"); theme.marginLineColor = stringToColor(color); - } - - else if ("markAllHighlight".equals(qName)) { + } else if ("markAllHighlight".equals(qName)) { String color = attrs.getValue("color"); theme.markAllHighlightColor = stringToColor(color); - } - - else if ("markOccurrencesHighlight".equals(qName)) { + } else if ("markOccurrencesHighlight".equals(qName)) { String color = attrs.getValue("color"); theme.markOccurrencesColor = stringToColor(color); String border = attrs.getValue("border"); theme.markOccurrencesBorder = Boolean.parseBoolean(border); - } - - else if ("matchedBracket".equals(qName)) { + } else if ("matchedBracket".equals(qName)) { String fg = attrs.getValue("fg"); theme.matchedBracketFG = stringToColor(fg); String bg = attrs.getValue("bg"); @@ -757,44 +685,33 @@ public class Theme { theme.matchedBracketHighlightBoth = Boolean.parseBoolean(highlightBoth); String animate = attrs.getValue("animate"); theme.matchedBracketAnimate = Boolean.parseBoolean(animate); - } - - else if ("hyperlinks".equals(qName)) { + } else if ("hyperlinks".equals(qName)) { String fg = attrs.getValue("fg"); theme.hyperlinkFG = stringToColor(fg); - } - - else if ("language".equals(qName)) { + } else if ("language".equals(qName)) { String indexStr = attrs.getValue("index"); int index = Integer.parseInt(indexStr) - 1; - if (theme.secondaryLanguages.length>index) { // Sanity + if (theme.secondaryLanguages.length > index) { // Sanity Color bg = stringToColor(attrs.getValue("bg")); theme.secondaryLanguages[index] = bg; } - } - - else if ("selection".equals(qName)) { + } else if ("selection".equals(qName)) { String useStr = attrs.getValue("useFG"); theme.useSelctionFG = Boolean.parseBoolean(useStr); String color = attrs.getValue("fg"); - theme.selectionFG = stringToColor(color, - getDefaultSelectionFG()); - //System.out.println(theme.selectionFG); + theme.selectionFG = stringToColor(color, getDefaultSelectionFG()); + // System.out.println(theme.selectionFG); color = attrs.getValue("bg"); - theme.selectionBG = stringToColor(color, - getDefaultSelectionBG()); + theme.selectionBG = stringToColor(color, getDefaultSelectionBG()); String roundedStr = attrs.getValue("roundedEdges"); theme.selectionRoundedEdges = Boolean.parseBoolean(roundedStr); } - // Start of the syntax scheme definition else if ("tokenStyles".equals(qName)) { theme.scheme = new SyntaxScheme(theme.baseFont, false); } - // A style in the syntax scheme else if ("style".equals(qName)) { - String type = attrs.getValue("token"); Field field = null; try { @@ -805,9 +722,7 @@ public class Theme { System.err.println("Invalid token type: " + type); return; } - - if (field.getType()==int.class) { - + if (field.getType() == int.class) { int index = 0; try { index = field.getInt(theme.scheme); @@ -818,23 +733,19 @@ public class Theme { e.printStackTrace(); return; } - String fgStr = attrs.getValue("fg"); Color fg = stringToColor(fgStr); theme.scheme.getStyle(index).foreground = fg; - String bgStr = attrs.getValue("bg"); Color bg = stringToColor(bgStr); theme.scheme.getStyle(index).background = bg; - Font font = theme.baseFont; String familyName = attrs.getValue("fontFamily"); - if (familyName!=null) { - font = getFont(familyName, font.getStyle(), - font.getSize()); + if (familyName != null) { + font = getFont(familyName, font.getStyle(), font.getSize()); } String sizeStr = attrs.getValue("fontSize"); - if (sizeStr!=null) { + if (sizeStr != null) { try { float size = Float.parseFloat(sizeStr); size = Math.max(size, 1f); @@ -844,17 +755,16 @@ public class Theme { } } theme.scheme.getStyle(index).font = font; - boolean styleSpecified = false; boolean bold = false; boolean italic = false; String boldStr = attrs.getValue("bold"); - if (boldStr!=null) { + if (boldStr != null) { bold = Boolean.parseBoolean(boldStr); styleSpecified = true; } String italicStr = attrs.getValue("italic"); - if (italicStr!=null) { + if (italicStr != null) { italic = Boolean.parseBoolean(italicStr); styleSpecified = true; } @@ -867,28 +777,20 @@ public class Theme { style |= Font.ITALIC; } Font orig = theme.scheme.getStyle(index).font; - theme.scheme.getStyle(index).font = - orig.deriveFont(style); + theme.scheme.getStyle(index).font = orig.deriveFont(style); } - String ulineStr = attrs.getValue("underline"); - if (ulineStr!=null) { - boolean uline= Boolean.parseBoolean(ulineStr); + if (ulineStr != null) { + boolean uline = Boolean.parseBoolean(ulineStr); theme.scheme.getStyle(index).underline = uline; } - } - } - } - + @Override public void warning(SAXParseException e) throws SAXException { throw e; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/Token.java b/src/org/fife/ui/rsyntaxtextarea/Token.java index b337767..40a82dc 100644 --- a/src/org/fife/ui/rsyntaxtextarea/Token.java +++ b/src/org/fife/ui/rsyntaxtextarea/Token.java @@ -1,9 +1,7 @@ /* * 02/21/2004 - * * Token.java - A token used in syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,22 +10,27 @@ import java.awt.Rectangle; import javax.swing.text.TabExpander; - /** * A generic token that functions as a node in a linked list of syntax - * highlighted tokens for some language.

+ * highlighted tokens for some language. + *

* * A Token is a piece of text representing some logical token in - * source code for a programming language. For example, the line of C code:

+ * source code for a programming language. For example, the line of C code: + *

+ * *

+ * 
  * int i = 0;
  * 
+ * * would be broken into 8 Tokens: the first representing * int, the second whitespace, the third i, the fourth - * whitespace, the fifth =, etc.

+ * whitespace, the fifth =, etc. + *

* * Note: The tokens returned by {@link RSyntaxDocument}s are pooled and - * should always be treated as immutable. Modifying tokens you did not create + * should always be treated as immutable. Modifying tokens you did not create * yourself can and will result in rendering issues and/or runtime exceptions. * You have been warned! * @@ -35,95 +38,97 @@ import javax.swing.text.TabExpander; * @version 0.3 */ public interface Token extends TokenTypes { - + /** * Appends HTML code for painting this token, using the given text area's * color scheme. * - * @param sb The buffer to append to. - * @param textArea The text area whose color scheme to use. - * @param fontFamily Whether to include the font family in the HTML for - * this token. You can pass false for this parameter - * if, for example, you are making all your HTML be monospaced, - * and don't want any crazy fonts being used in the editor to be - * reflected in your HTML. + * @param sb + * The buffer to append to. + * @param textArea + * The text area whose color scheme to use. + * @param fontFamily + * Whether to include the font family in the HTML for + * this token. You can pass false for this parameter + * if, for example, you are making all your HTML be monospaced, + * and don't want any crazy fonts being used in the editor to be + * reflected in your HTML. * @return The buffer appended to. * @see #getHTMLRepresentation(RSyntaxTextArea) */ - StringBuilder appendHTMLRepresentation(StringBuilder sb, - RSyntaxTextArea textArea, - boolean fontFamily); - - + StringBuilder appendHTMLRepresentation(StringBuilder sb, RSyntaxTextArea textArea, boolean fontFamily); + /** * Appends HTML code for painting this token, using the given text area's * color scheme. * - * @param sb The buffer to append to. - * @param textArea The text area whose color scheme to use. - * @param fontFamily Whether to include the font family in the HTML for - * this token. You can pass false for this parameter - * if, for example, you are making all your HTML be monospaced, - * and don't want any crazy fonts being used in the editor to be - * reflected in your HTML. - * @param tabsToSpaces Whether to convert tabs into spaces. + * @param sb + * The buffer to append to. + * @param textArea + * The text area whose color scheme to use. + * @param fontFamily + * Whether to include the font family in the HTML for + * this token. You can pass false for this parameter + * if, for example, you are making all your HTML be monospaced, + * and don't want any crazy fonts being used in the editor to be + * reflected in your HTML. + * @param tabsToSpaces + * Whether to convert tabs into spaces. * @return The buffer appended to. * @see #getHTMLRepresentation(RSyntaxTextArea) */ - StringBuilder appendHTMLRepresentation(StringBuilder sb, - RSyntaxTextArea textArea, boolean fontFamily, - boolean tabsToSpaces); - - + StringBuilder appendHTMLRepresentation(StringBuilder sb, RSyntaxTextArea textArea, boolean fontFamily, boolean tabsToSpaces); + /** * Returns the character at the specified offset in the token. * - * @param index The index. This should be in the range - * 0-({@link #length()}-1). + * @param index + * The index. This should be in the range + * 0-({@link #length()}-1). * @return The character. * @see #length() */ char charAt(int index); - - + /** * Returns whether the token straddles the specified position in the * document. * - * @param pos The position in the document to check. + * @param pos + * The position in the document to check. * @return Whether the specified position is straddled by this token. */ boolean containsPosition(int pos); - - + /** * Returns the position in the token's internal char array corresponding - * to the specified document position.

+ * to the specified document position. + *

* Note that this method does NOT do any bounds checking; you can pass in * a document position that does not correspond to a position in this * token, and you will not receive an Exception or any other notification; * it is up to the caller to ensure valid input. * - * @param pos A position in the document that is represented by this token. + * @param pos + * A position in the document that is represented by this token. * @return The corresponding token position >= textOffset * and < textOffset+textCount. * @see #tokenToDocument */ int documentToToken(int pos); - - + /** * Returns whether this token's lexeme ends with the specified characters. * - * @param ch The characters. + * @param ch + * The characters. * @return Whether this token's lexeme ends with the specified characters. * @see #startsWith(char[]) */ boolean endsWith(char[] ch); - - + /** - * Returns the end offset of this token in the document (exclusive). In + * Returns the end offset of this token in the document (exclusive). In * other words, the token ranges from * [getOffset(), getEndOffset()). * @@ -131,30 +136,28 @@ public interface Token extends TokenTypes { * @see #getOffset() */ int getEndOffset(); - - + /** * Returns a String containing HTML code for painting this * token, using the given text area's color scheme. * - * @param textArea The text area whose color scheme to use. + * @param textArea + * The text area whose color scheme to use. * @return The HTML representation of the token. * @see #appendHTMLRepresentation(StringBuilder, RSyntaxTextArea, boolean) */ String getHTMLRepresentation(RSyntaxTextArea textArea); - - + /** * Returns the language index of this token. * - * @return The language index. A value of 0 denotes the - * "main" language, any positive value denotes a specific secondary - * language. + * @return The language index. A value of 0 denotes the + * "main" language, any positive value denotes a specific secondary + * language. * @see #setLanguageIndex(int) */ int getLanguageIndex(); - - + /** * Returns the last token in this list that is not whitespace or a * comment. @@ -163,8 +166,7 @@ public interface Token extends TokenTypes { * if there isn't one. */ Token getLastNonCommentNonWhitespaceToken(); - - + /** * Returns the last paintable token in this token list, or null * if there is no paintable token. @@ -172,10 +174,10 @@ public interface Token extends TokenTypes { * @return The last paintable token in this token list. */ Token getLastPaintableToken(); - - + /** - * Returns the text of this token, as a string.

+ * Returns the text of this token, as a string. + *

* * Note that this method isn't used much by the * ryntaxtextarea package internally, as it tries to limit @@ -184,45 +186,47 @@ public interface Token extends TokenTypes { * @return The text of this token. */ String getLexeme(); - - + /** * Determines the offset into this token list (i.e., into the * document) that covers pixel location x if the token list - * starts at pixel location x0

. + * starts at pixel location x0 + *

+ * . * This method will return the document position "closest" to the * x-coordinate (i.e., if they click on the "right-half" of the * w in awe, the caret will be placed in * between the w and e; similarly, clicking on * the left-half places the caret between the a and - * w). This makes it useful for methods such as + * w). This makes it useful for methods such as * viewToModel found in javax.swing.text.View * subclasses. * - * @param textArea The text area from which the token list was derived. - * @param e How to expand tabs. - * @param x0 The pixel x-location that is the beginning of - * tokenList. - * @param x The pixel-position for which you want to get the corresponding - * offset. + * @param textArea + * The text area from which the token list was derived. + * @param e + * How to expand tabs. + * @param x0 + * The pixel x-location that is the beginning of + * tokenList. + * @param x + * The pixel-position for which you want to get the corresponding + * offset. * @return The position (in the document, NOT into the token list!) that - * covers the pixel location. If tokenList is + * covers the pixel location. If tokenList is * null or has type Token.NULL, then * -1 is returned; the caller should recognize this and * return the actual end position of the (empty) line. */ - int getListOffset(RSyntaxTextArea textArea, TabExpander e, - float x0, float x); - - + int getListOffset(RSyntaxTextArea textArea, TabExpander e, float x0, float x); + /** * Returns the token after this one in the linked list. * * @return The next token. */ Token getNextToken(); - - + /** * Returns the offset into the document at which this token resides. * @@ -230,8 +234,7 @@ public interface Token extends TokenTypes { * @see #getEndOffset() */ int getOffset(); - - + /** * Returns the position in the document that represents the last character * in the token that will fit into endBeforeX-startX pixels. @@ -239,31 +242,33 @@ public interface Token extends TokenTypes { * have the token "while" and startX is 0 and * endBeforeX is 30, this method will return the * document position of the "i" in "while", because the "i" ends at pixel - * 24, while the "l" ends at 32. If not even the + * 24, while the "l" ends at 32. If not even the * first character fits in endBeforeX-startX, the first * character's position is still returned so calling methods don't go into * infinite loops. * - * @param textArea The text area in which this token is being painted. - * @param e How to expand tabs. - * @param startX The x-coordinate at which the token will be painted. This - * is needed because of tabs. - * @param endBeforeX The x-coordinate for which you want to find the last - * character of t which comes before it. + * @param textArea + * The text area in which this token is being painted. + * @param e + * How to expand tabs. + * @param startX + * The x-coordinate at which the token will be painted. This + * is needed because of tabs. + * @param endBeforeX + * The x-coordinate for which you want to find the last + * character of t which comes before it. * @return The last document position that will fit in the specified amount * of pixels. */ /* * @see #getTokenListOffsetBeforeX - * FIXME: This method does not compute correctly! It needs to be abstract + * FIXME: This method does not compute correctly! It needs to be abstract * and implemented by subclasses. */ - int getOffsetBeforeX(RSyntaxTextArea textArea, TabExpander e, - float startX, float endBeforeX); - - + int getOffsetBeforeX(RSyntaxTextArea textArea, TabExpander e, float startX, float endBeforeX); + /** - * Returns the character array backing the lexeme of this token. This + * Returns the character array backing the lexeme of this token. This * value should be treated as read-only. * * @return A character array containing the lexeme of this token. @@ -271,8 +276,7 @@ public interface Token extends TokenTypes { * @see #length() */ char[] getTextArray(); - - + /** * Returns the offset into the character array of the lexeme in * {@link #getTextArray()}. @@ -281,8 +285,7 @@ public interface Token extends TokenTypes { * @see #getTextArray() */ int getTextOffset(); - - + /** * Returns the type of this token. * @@ -291,43 +294,47 @@ public interface Token extends TokenTypes { * @see #setType(int) */ int getType(); - - + /** * Returns the width of this token given the specified parameters. * - * @param textArea The text area in which the token is being painted. - * @param e Describes how to expand tabs. This parameter cannot be - * null. - * @param x0 The pixel-location at which the token begins. This is needed - * because of tabs. + * @param textArea + * The text area in which the token is being painted. + * @param e + * Describes how to expand tabs. This parameter cannot be + * null. + * @param x0 + * The pixel-location at which the token begins. This is needed + * because of tabs. * @return The width of the token, in pixels. * @see #getWidthUpTo */ float getWidth(RSyntaxTextArea textArea, TabExpander e, float x0); - - + /** * Returns the width of a specified number of characters in this token. * For example, for the token "while", specifying a value of 3 * here returns the width of the "whi" portion of the token. * - * @param numChars The number of characters for which to get the width. - * @param textArea The text area in which the token is being painted. - * @param e How to expand tabs. This value cannot be null. - * @param x0 The pixel-location at which this token begins. This is needed - * because of tabs. + * @param numChars + * The number of characters for which to get the width. + * @param textArea + * The text area in which the token is being painted. + * @param e + * How to expand tabs. This value cannot be null. + * @param x0 + * The pixel-location at which this token begins. This is needed + * because of tabs. * @return The width of the specified number of characters in this token. * @see #getWidth */ - float getWidthUpTo(int numChars, RSyntaxTextArea textArea, - TabExpander e, float x0); - - + float getWidthUpTo(int numChars, RSyntaxTextArea textArea, TabExpander e, float x0); + /** * Returns whether this token's lexeme matches a specific character array. * - * @param lexeme The lexeme to check for. + * @param lexeme + * The lexeme to check for. * @return Whether this token has that lexeme. * @see #is(int, char[]) * @see #is(int, String) @@ -335,17 +342,19 @@ public interface Token extends TokenTypes { * @see #startsWith(char[]) */ boolean is(char[] lexeme); - - + /** * Returns whether this token is of the specified type, with the specified - * lexeme.

+ * lexeme. + *

* This method is preferred over the other overload in performance-critical * code where this operation may be called frequently, since it does not * involve any String allocations. * - * @param type The type to check for. - * @param lexeme The lexeme to check for. + * @param type + * The type to check for. + * @param lexeme + * The lexeme to check for. * @return Whether this token has that type and lexeme. * @see #is(int, String) * @see #is(char[]) @@ -353,25 +362,26 @@ public interface Token extends TokenTypes { * @see #startsWith(char[]) */ boolean is(int type, char[] lexeme); - - + /** * Returns whether this token is of the specified type, with the specified - * lexeme.

+ * lexeme. + *

* The other overload of this method is preferred over this one in * performance-critical code, as this one involves a String allocation * while the other does not. * - * @param type The type to check for. - * @param lexeme The lexeme to check for. + * @param type + * The type to check for. + * @param lexeme + * The lexeme to check for. * @return Whether this token has that type and lexeme. * @see #is(int, char[]) * @see #isSingleChar(int, char) * @see #startsWith(char[]) */ boolean is(int type, String lexeme); - - + /** * Returns whether this token is a comment. * @@ -380,8 +390,7 @@ public interface Token extends TokenTypes { * @see #isCommentOrWhitespace() */ boolean isComment(); - - + /** * Returns whether this token is a comment or whitespace. * @@ -390,8 +399,7 @@ public interface Token extends TokenTypes { * @see #isWhitespace() */ boolean isCommentOrWhitespace(); - - + /** * Returns whether this token is a hyperlink. * @@ -399,16 +407,14 @@ public interface Token extends TokenTypes { * @see #setHyperlink(boolean) */ boolean isHyperlink(); - - + /** * Returns whether this token is an identifier. * * @return Whether this token is an identifier. */ boolean isIdentifier(); - - + /** * Returns whether this token is a {@link #SEPARATOR} representing a single * left curly brace. @@ -417,8 +423,7 @@ public interface Token extends TokenTypes { * @see #isRightCurly() */ boolean isLeftCurly(); - - + /** * Returns whether this token is a {@link #SEPARATOR} representing a single * right curly brace. @@ -427,42 +432,41 @@ public interface Token extends TokenTypes { * @see #isLeftCurly() */ boolean isRightCurly(); - - + /** * Returns whether or not this token is "paintable;" i.e., whether or not * the type of this token is one such that it has an associated syntax - * style. What this boils down to is whether the token type is greater + * style. What this boils down to is whether the token type is greater * than Token.NULL. * * @return Whether or not this token is paintable. */ boolean isPaintable(); - - + /** * Returns whether this token is the specified single character. * - * @param ch The character to check for. + * @param ch + * The character to check for. * @return Whether this token's lexeme is the single character specified. * @see #isSingleChar(int, char) */ boolean isSingleChar(char ch); - - + /** * Returns whether this token is the specified single character, and of a * specific type. * - * @param type The token type. - * @param ch The character to check for. + * @param type + * The token type. + * @param ch + * The character to check for. * @return Whether this token is of the specified type, and with a lexeme * Equaling the single character specified. * @see #isSingleChar(char) */ boolean isSingleChar(int type, char ch); - - + /** * Returns whether or not this token is whitespace. * @@ -471,8 +475,7 @@ public interface Token extends TokenTypes { * @see #isCommentOrWhitespace() */ boolean isWhitespace(); - - + /** * Returns the length of this token. * @@ -480,88 +483,90 @@ public interface Token extends TokenTypes { * @see #getOffset() */ int length(); - - + /** - * Returns the bounding box for the specified document location. The + * Returns the bounding box for the specified document location. The * location must be in the specified token list; if it isn't, * null is returned. * - * @param textArea The text area from which the token list was derived. - * @param e How to expand tabs. - * @param pos The position in the document for which to get the bounding - * box in the view. - * @param x0 The pixel x-location that is the beginning of - * tokenList. - * @param rect The rectangle in which we'll be returning the results. This - * object is reused to keep from frequent memory allocations. + * @param textArea + * The text area from which the token list was derived. + * @param e + * How to expand tabs. + * @param pos + * The position in the document for which to get the bounding + * box in the view. + * @param x0 + * The pixel x-location that is the beginning of + * tokenList. + * @param rect + * The rectangle in which we'll be returning the results. This + * object is reused to keep from frequent memory allocations. * @return The bounding box for the specified position in the model. */ - Rectangle listOffsetToView(RSyntaxTextArea textArea, TabExpander e, - int pos, int x0, Rectangle rect); - - + Rectangle listOffsetToView(RSyntaxTextArea textArea, TabExpander e, int pos, int x0, Rectangle rect); + /** * Sets whether this token is a hyperlink. * - * @param hyperlink Whether this token is a hyperlink. + * @param hyperlink + * Whether this token is a hyperlink. * @see #isHyperlink() */ void setHyperlink(boolean hyperlink); - - + /** - * Sets the language index for this token. If this value is positive, it + * Sets the language index for this token. If this value is positive, it * denotes a specific "secondary" language this token represents (such as - * JavaScript code or CSS embedded in an HTML file). If this value is + * JavaScript code or CSS embedded in an HTML file). If this value is * 0, this token is in the "main" language being edited. * Negative values are invalid and treated as 0. * - * @param languageIndex The new language index. A value of - * 0 denotes the "main" language, any positive value - * denotes a specific secondary language. Negative values will - * be treated as 0. + * @param languageIndex + * The new language index. A value of + * 0 denotes the "main" language, any positive value + * denotes a specific secondary language. Negative values will + * be treated as 0. * @see #getLanguageIndex() */ void setLanguageIndex(int languageIndex); - - + /** * Sets the type of this token. * - * @param type The new token type. + * @param type + * The new token type. * @see TokenTypes * @see #getType() */ void setType(int type); - - + /** * Returns whether this token starts with the specified characters. * - * @param chars The characters. + * @param chars + * The characters. * @return Whether this token starts with those characters. * @see #endsWith(char[]) * @see #is(int, char[]) */ boolean startsWith(char[] chars); - - + /** * Returns the position in the document corresponding to the specified * position in this token's internal char array (textOffset - - * textOffset+textCount-1).

+ * textOffset+textCount-1). + *

* Note that this method does NOT do any bounds checking; you can pass in * an invalid token position, and you will not receive an Exception or any - * other indication that the returned document position is invalid. It is + * other indication that the returned document position is invalid. It is * up to the user to ensure valid input. * - * @param pos A position in the token's internal char array - * (textOffset - textOffset+textCount). + * @param pos + * A position in the token's internal char array + * (textOffset - textOffset+textCount). * @return The corresponding position in the document. * @see #documentToToken(int) */ int tokenToDocument(int pos); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenFactory.java b/src/org/fife/ui/rsyntaxtextarea/TokenFactory.java index 3da0673..69f94bf 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenFactory.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenFactory.java @@ -1,16 +1,13 @@ /* * 10/28/2004 - * * TokenFactory.java - Interface for a class that generates tokens of some type. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import javax.swing.text.Segment; - /** * Interface for a class that generates tokens somehow. * @@ -18,50 +15,52 @@ import javax.swing.text.Segment; * @version 0.1 */ interface TokenFactory { - - + /** * Returns a null token. * * @return A null token. */ TokenImpl createToken(); - - + /** * Returns a token. * - * @param line The segment from which to get the token's text. - * @param beg The starting offset of the token's text in the segment. - * @param end The ending offset of the token's text in the segment. - * @param startOffset The offset in the document of the token. - * @param type The type of token. + * @param line + * The segment from which to get the token's text. + * @param beg + * The starting offset of the token's text in the segment. + * @param end + * The ending offset of the token's text in the segment. + * @param startOffset + * The offset in the document of the token. + * @param type + * The type of token. * @return The token. */ - TokenImpl createToken(final Segment line, final int beg, - final int end, final int startOffset, final int type); - - + TokenImpl createToken(final Segment line, final int beg, final int end, final int startOffset, final int type); + /** * Returns a token. * - * @param line The char array from which to get the token's text. - * @param beg The starting offset of the token's text in the char array. - * @param end The ending offset of the token's text in the char array. - * @param startOffset The offset in the document of the token. - * @param type The type of token. + * @param line + * The char array from which to get the token's text. + * @param beg + * The starting offset of the token's text in the char array. + * @param end + * The ending offset of the token's text in the char array. + * @param startOffset + * The offset in the document of the token. + * @param type + * The type of token. * @return The token. */ - TokenImpl createToken(final char[] line, final int beg, - final int end, final int startOffset, final int type); - - + TokenImpl createToken(final char[] line, final int beg, final int end, final int startOffset, final int type); + /** - * Resets the state of this token maker. This method should be called + * Resets the state of this token maker. This method should be called * by the TokenMaker every time a token list is generated for * a new line so the tokens can be reused. */ void resetAllTokens(); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenImpl.java b/src/org/fife/ui/rsyntaxtextarea/TokenImpl.java index 22eaa66..0833da4 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenImpl.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenImpl.java @@ -1,9 +1,7 @@ /* * 02/21/2004 - * * Token.java - A token used in syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -17,13 +15,13 @@ import javax.swing.text.Segment; import javax.swing.text.TabExpander; import javax.swing.text.Utilities; - /** - * The default implementation of {@link Token}.

+ * The default implementation of {@link Token}. + *

* * Note: The instances of Token returned by * {@link RSyntaxDocument}s are pooled and should always be treated as - * immutable. They should not be cast to TokenImpl and modified. + * immutable. They should not be cast to TokenImpl and modified. * Modifying tokens you did not create yourself can and will result in * rendering issues and/or runtime exceptions. You have been warned! * @@ -32,44 +30,38 @@ import javax.swing.text.Utilities; */ @SuppressWarnings({ "checkstyle:visibilitymodifier" }) public class TokenImpl implements Token { - + /** - * The text this token represents. This is implemented as a segment so we + * The text this token represents. This is implemented as a segment so we * can point directly to the text in the document without having to make a * copy of it. */ public char[] text; public int textOffset; public int textCount; - /** * The offset into the document at which this token resides. */ private int offset; - /** * The type of token this is; for example, {@link #FUNCTION}. */ private int type; - /** * Whether this token is a hyperlink. */ private boolean hyperlink; - /** * The next token in this linked list. */ private Token nextToken; - /** * The language this token is in, >= 0. */ private int languageIndex; - - + /** - * Creates a "null" token. The token itself is not null; rather, it + * Creates a "null" token. The token itself is not null; rather, it * signifies that it is the last token in a linked list of tokens and * that it is not part of a "multi-line token." */ @@ -82,72 +74,72 @@ public class TokenImpl implements Token { hyperlink = false; nextToken = null; } - - + /** * Constructor. * - * @param line The segment from which to get the token. - * @param beg The first character's position in line. - * @param end The last character's position in line. - * @param startOffset The offset into the document at which this - * token begins. - * @param type A token type listed as "generic" above. - * @param languageIndex The language index for this token. + * @param line + * The segment from which to get the token. + * @param beg + * The first character's position in line. + * @param end + * The last character's position in line. + * @param startOffset + * The offset into the document at which this + * token begins. + * @param type + * A token type listed as "generic" above. + * @param languageIndex + * The language index for this token. */ - public TokenImpl(Segment line, int beg, int end, int startOffset, int type, - int languageIndex) { - this(line.array, beg,end, startOffset, type, languageIndex); + public TokenImpl(Segment line, int beg, int end, int startOffset, int type, int languageIndex) { + this(line.array, beg, end, startOffset, type, languageIndex); } - - + /** * Constructor. * - * @param line The segment from which to get the token. - * @param beg The first character's position in line. - * @param end The last character's position in line. - * @param startOffset The offset into the document at which this - * token begins. - * @param type A token type listed as "generic" above. - * @param languageIndex The language index for this token. + * @param line + * The segment from which to get the token. + * @param beg + * The first character's position in line. + * @param end + * The last character's position in line. + * @param startOffset + * The offset into the document at which this + * token begins. + * @param type + * A token type listed as "generic" above. + * @param languageIndex + * The language index for this token. */ - public TokenImpl(char[] line, int beg, int end, int startOffset, int type, - int languageIndex) { + public TokenImpl(char[] line, int beg, int end, int startOffset, int type, int languageIndex) { this(); - set(line, beg,end, startOffset, type); + set(line, beg, end, startOffset, type); setLanguageIndex(languageIndex); } - - + /** * Creates this token as a copy of the passed-in token. * - * @param t2 The token from which to make a copy. + * @param t2 + * The token from which to make a copy. */ public TokenImpl(Token t2) { this(); copyFrom(t2); } - - + @Override - public StringBuilder appendHTMLRepresentation(StringBuilder sb, - RSyntaxTextArea textArea, - boolean fontFamily) { + public StringBuilder appendHTMLRepresentation(StringBuilder sb, RSyntaxTextArea textArea, boolean fontFamily) { return appendHTMLRepresentation(sb, textArea, fontFamily, false); } - - + @Override - public StringBuilder appendHTMLRepresentation(StringBuilder sb, - RSyntaxTextArea textArea, boolean fontFamily, - boolean tabsToSpaces) { - + public StringBuilder appendHTMLRepresentation(StringBuilder sb, RSyntaxTextArea textArea, boolean fontFamily, boolean tabsToSpaces) { SyntaxScheme colorScheme = textArea.getSyntaxScheme(); Style scheme = colorScheme.getStyle(getType()); - Font font = textArea.getFontForTokenType(getType());//scheme.font; - + Font font = textArea.getFontForTokenType(getType());// scheme.font; if (font.isBold()) { sb.append(""); } @@ -157,7 +149,6 @@ public class TokenImpl implements Token { if (scheme.underline || isHyperlink()) { sb.append(""); } - boolean needsFontTag = fontFamily || !isWhitespace(); if (needsFontTag) { sb.append("'); } - // NOTE: Don't use getLexeme().trim() because whitespace tokens will // be turned into NOTHING. appendHtmlLexeme(textArea, sb, tabsToSpaces); - if (needsFontTag) { sb.append(""); } @@ -187,85 +175,82 @@ public class TokenImpl implements Token { if (font.isBold()) { sb.append(""); } - return sb; - } - - + /** * Appends an HTML version of the lexeme of this token (i.e. no style * HTML, but replacing chars such as \t, < * and > with their escapes). * - * @param textArea The text area. - * @param sb The buffer to append to. - * @param tabsToSpaces Whether to convert tabs into spaces. + * @param textArea + * The text area. + * @param sb + * The buffer to append to. + * @param tabsToSpaces + * Whether to convert tabs into spaces. * @return The same buffer. */ - private StringBuilder appendHtmlLexeme(RSyntaxTextArea textArea, - StringBuilder sb, boolean tabsToSpaces) { - + private StringBuilder appendHtmlLexeme(RSyntaxTextArea textArea, StringBuilder sb, boolean tabsToSpaces) { boolean lastWasSpace = false; int i = textOffset; int lastI = i; String tabStr = null; - - while (i': - sb.append(text, lastI, i-lastI); - lastI = i+1; + sb.append(text, lastI, i - lastI); + lastI = i + 1; sb.append(">"); lastWasSpace = false; break; case '\'': - sb.append(text, lastI, i-lastI); - lastI = i+1; + sb.append(text, lastI, i - lastI); + lastI = i + 1; sb.append("'"); lastWasSpace = false; break; case '"': - sb.append(text, lastI, i-lastI); - lastI = i+1; + sb.append(text, lastI, i - lastI); + lastI = i + 1; sb.append("""); lastWasSpace = false; break; case '/': // OWASP-recommended to escape even though unnecessary - sb.append(text, lastI, i-lastI); - lastI = i+1; + sb.append(text, lastI, i - lastI); + lastI = i + 1; sb.append("/"); lastWasSpace = false; break; @@ -275,30 +260,28 @@ public class TokenImpl implements Token { } i++; } - if (lastI=getOffset() && pos= getOffset() && pos < getOffset() + textCount; } - - + /** * Makes one token point to the same text segment, and have the same value * as another token. * - * @param t2 The token from which to copy. + * @param t2 + * The token from which to copy. */ public void copyFrom(Token t2) { text = t2.getTextArray(); @@ -310,104 +293,88 @@ public class TokenImpl implements Token { languageIndex = t2.getLanguageIndex(); nextToken = t2.getNextToken(); } - - + @Override public int documentToToken(int pos) { - return pos + (textOffset-getOffset()); + return pos + (textOffset - getOffset()); } - - + @Override public boolean endsWith(char[] ch) { - if (ch==null || ch.length>textCount) { + if (ch == null || ch.length > textCount) { return false; } final int start = textOffset + textCount - ch.length; - for (int i=0; iString of the form "#xxxxxx" good for use * in HTML, representing the given color. * - * @param color The color to get a string for. - * @return The HTML form of the color. If color is + * @param color + * The color to get a string for. + * @return The HTML form of the color. If color is * null, #000000 is returned. */ private static String getHTMLFormatForColor(Color color) { - if (color==null) { + if (color == null) { return "black"; } String hexRed = Integer.toHexString(color.getRed()); - if (hexRed.length()==1) { + if (hexRed.length() == 1) { hexRed = "0" + hexRed; } String hexGreen = Integer.toHexString(color.getGreen()); - if (hexGreen.length()==1) { + if (hexGreen.length() == 1) { hexGreen = "0" + hexGreen; } String hexBlue = Integer.toHexString(color.getBlue()); - if (hexBlue.length()==1) { + if (hexBlue.length() == 1) { hexBlue = "0" + hexBlue; } return "#" + hexRed + hexGreen + hexBlue; } - - + @Override public String getHTMLRepresentation(RSyntaxTextArea textArea) { StringBuilder buf = new StringBuilder(); appendHTMLRepresentation(buf, textArea, true); return buf.toString(); } - - + @Override public int getLanguageIndex() { return languageIndex; } - - + @Override public Token getLastNonCommentNonWhitespaceToken() { - Token last = null; - - for (Token t=this; t!=null && t.isPaintable(); t=t.getNextToken()) { + for (Token t = this; t != null && t.isPaintable(); t = t.getNextToken()) { switch (t.getType()) { case COMMENT_DOCUMENTATION: case COMMENT_EOL: @@ -421,63 +388,51 @@ public class TokenImpl implements Token { break; } } - return last; - } - - + @Override public Token getLastPaintableToken() { Token t = this; while (t.isPaintable()) { Token next = t.getNextToken(); - if (next==null || !next.isPaintable()) { + if (next == null || !next.isPaintable()) { return t; } t = next; } return null; } - - + @Override public String getLexeme() { - return text==null ? null : new String(text, textOffset, textCount); + return text == null ? null : new String(text, textOffset, textCount); } - - + @Override - public int getListOffset(RSyntaxTextArea textArea, TabExpander e, - float x0, float x) { - + public int getListOffset(RSyntaxTextArea textArea, TabExpander e, float x0, float x) { // If the coordinate in question is before this line's start, quit. if (x0 >= x) { return getOffset(); } - float currX = x0; // x-coordinate of current char. float nextX = x0; // x-coordinate of next char. float stableX = x0; // Cached ending x-coord. of last tab or token. TokenImpl token = this; int last = getOffset(); FontMetrics fm = null; - while (token != null && token.isPaintable()) { - fm = textArea.getFontMetricsForTokenType(token.getType()); char[] text = token.text; int start = token.textOffset; int end = start + token.textCount; - for (int i = start; i < end; i++) { currX = nextX; if (text[i] == '\t') { nextX = e.nextTabStop(nextX, 0); stableX = nextX; // Cache ending x-coord. of tab. start = i + 1; // Do charsWidth() from next char. - } - else { + } else { nextX = stableX + fm.charsWidth(text, start, i - start + 1); } if (x >= currX && x < nextX) { @@ -487,90 +442,71 @@ public class TokenImpl implements Token { return last + i + 1 - token.textOffset; } } - stableX = nextX; // Cache ending x-coordinate of token. last += token.textCount; - token = (TokenImpl)token.getNextToken(); - + token = (TokenImpl) token.getNextToken(); } - // If we didn't find anything, return the end position of the text. return last; - } - - + @Override public Token getNextToken() { return nextToken; } - - + @Override public int getOffset() { return offset; } - - + @Override - public int getOffsetBeforeX(RSyntaxTextArea textArea, TabExpander e, - float startX, float endBeforeX) { - + public int getOffsetBeforeX(RSyntaxTextArea textArea, TabExpander e, float startX, float endBeforeX) { FontMetrics fm = textArea.getFontMetricsForTokenType(getType()); int i = textOffset; int stop = i + textCount; float x = startX; - - while (iendBeforeX) { + if (x > endBeforeX) { // If not even the first character fits into the space, go // ahead and say the first char does fit so we don't go into // an infinite loop. - int intoToken = Math.max(i-textOffset, 1); + int intoToken = Math.max(i - textOffset, 1); return getOffset() + intoToken; } i++; } - // If we got here, the whole token fit in (endBeforeX-startX) pixels. return getOffset() + textCount - 1; - } - - + @Override public char[] getTextArray() { return text; } - - + @Override public int getTextOffset() { return textOffset; } - - + @Override public int getType() { return type; } - - + @Override public float getWidth(RSyntaxTextArea textArea, TabExpander e, float x0) { return getWidthUpTo(textCount, textArea, e, x0); } - - + @Override - public float getWidthUpTo(int numChars, RSyntaxTextArea textArea, - TabExpander e, float x0) { + public float getWidthUpTo(int numChars, RSyntaxTextArea textArea, TabExpander e, float x0) { float width = x0; FontMetrics fm = textArea.getFontMetricsForTokenType(getType()); if (fm != null) { @@ -599,19 +535,17 @@ public class TokenImpl implements Token { } return width - x0; } - - + @Override public int hashCode() { - return offset + (getLexeme()==null ? 0 : getLexeme().hashCode()); + return offset + (getLexeme() == null ? 0 : getLexeme().hashCode()); } - - + @Override public boolean is(char[] lexeme) { - if (textCount==lexeme.length) { - for (int i=0; i=Token.COMMENT_EOL && getType()<=Token.COMMENT_MARKUP; + return getType() >= Token.COMMENT_EOL && getType() <= Token.COMMENT_MARKUP; } - - + @Override public boolean isCommentOrWhitespace() { return isComment() || isWhitespace(); } - - + @Override public boolean isHyperlink() { return hyperlink; } - - + @Override public boolean isIdentifier() { - return getType()==IDENTIFIER; + return getType() == IDENTIFIER; } - - + @Override public boolean isLeftCurly() { - return getType()==SEPARATOR && isSingleChar('{'); + return getType() == SEPARATOR && isSingleChar('{'); } - - + @Override public boolean isRightCurly() { - return getType()==SEPARATOR && isSingleChar('}'); + return getType() == SEPARATOR && isSingleChar('}'); } - - + @Override public boolean isPaintable() { - return getType()>Token.NULL; + return getType() > Token.NULL; } - - + @Override public boolean isSingleChar(char ch) { - return textCount==1 && text[textOffset]==ch; + return textCount == 1 && text[textOffset] == ch; } - - + @Override public boolean isSingleChar(int type, char ch) { - return this.getType()==type && isSingleChar(ch); + return this.getType() == type && isSingleChar(ch); } - - + @Override public boolean isWhitespace() { - return getType()==WHITESPACE; + return getType() == WHITESPACE; } - - + @Override public int length() { return textCount; } - - + @Override - public Rectangle listOffsetToView(RSyntaxTextArea textArea, TabExpander e, - int pos, int x0, Rectangle rect) { - + public Rectangle listOffsetToView(RSyntaxTextArea textArea, TabExpander e, int pos, int x0, Rectangle rect) { int stableX = x0; // Cached ending x-coord. of last tab or token. TokenImpl token = this; FontMetrics fm = null; Segment s = new Segment(); - while (token != null && token.isPaintable()) { - fm = textArea.getFontMetricsForTokenType(token.getType()); if (fm == null) { return rect; // Don't return null as things'll error. @@ -726,48 +641,35 @@ public class TokenImpl implements Token { char[] text = token.text; int start = token.textOffset; int end = start + token.textCount; - // If this token contains the position for which to get the // bounding box... if (token.containsPosition(pos)) { - s.array = token.text; s.offset = token.textOffset; s.count = pos - token.getOffset(); - // Must use this (actually fm.charWidth()), and not // fm.charsWidth() for returned value to match up with where // text is actually painted on OS X! - int w = Utilities.getTabbedTextWidth(s, fm, stableX, e, - token.getOffset()); + int w = Utilities.getTabbedTextWidth(s, fm, stableX, e, token.getOffset()); rect.x = stableX + w; end = token.documentToToken(pos); - if (text[end] == '\t') { rect.width = fm.charWidth(' '); - } - else { + } else { rect.width = fm.charWidth(text[end]); } - return rect; - } - // If this token does not contain the position for which to get // the bounding box... else { s.array = token.text; s.offset = token.textOffset; s.count = token.textCount; - stableX += Utilities.getTabbedTextWidth(s, fm, stableX, e, - token.getOffset()); + stableX += Utilities.getTabbedTextWidth(s, fm, stableX, e, token.getOffset()); } - - token = (TokenImpl)token.getNextToken(); - + token = (TokenImpl) token.getNextToken(); } - // If we didn't find anything, we're at the end of the line. Return // a width of 1 (so selection highlights don't extend way past line's // text). A ConfigurableCaret will know to paint itself with a larger @@ -775,73 +677,77 @@ public class TokenImpl implements Token { rect.x = stableX; rect.width = 1; return rect; - } - - + /** - * Makes this token start at the specified offset into the document.

+ * Makes this token start at the specified offset into the document. + *

* * Note: You should not modify Token instances you * did not create yourself (e.g., came from an - * RSyntaxDocument). If you do, rendering issues and/or - * runtime exceptions will likely occur. You have been warned! + * RSyntaxDocument). If you do, rendering issues and/or + * runtime exceptions will likely occur. You have been warned! * - * @param pos The offset into the document this token should start at. - * Note that this token must already contain this position; if - * it doesn't, an exception is thrown. - * @throws IllegalArgumentException If pos is not already contained by - * this token. + * @param pos + * The offset into the document this token should start at. + * Note that this token must already contain this position; if + * it doesn't, an exception is thrown. + * @throws IllegalArgumentException + * If pos is not already contained by + * this token. * @see #moveOffset(int) */ public void makeStartAt(int pos) { - if (pos=(getOffset()+textCount)) { - throw new IllegalArgumentException("pos " + pos + - " is not in range " + getOffset() + "-" + (getOffset()+textCount-1)); + if (pos < getOffset() || pos >= (getOffset() + textCount)) { + throw new IllegalArgumentException("pos " + pos + " is not in range " + getOffset() + "-" + (getOffset() + textCount - 1)); } int shift = pos - getOffset(); setOffset(pos); textOffset += shift; textCount -= shift; } - - + /** - * Moves the starting offset of this token.

+ * Moves the starting offset of this token. + *

* * Note: You should not modify Token instances you * did not create yourself (e.g., came from an - * RSyntaxDocument). If you do, rendering issues and/or - * runtime exceptions will likely occur. You have been warned! + * RSyntaxDocument). If you do, rendering issues and/or + * runtime exceptions will likely occur. You have been warned! * - * @param amt The amount to move the starting offset. This should be - * between 0 and textCount, inclusive. - * @throws IllegalArgumentException If amt is an invalid value. + * @param amt + * The amount to move the starting offset. This should be + * between 0 and textCount, inclusive. + * @throws IllegalArgumentException + * If amt is an invalid value. * @see #makeStartAt(int) */ public void moveOffset(int amt) { - if (amt<0 || amt>textCount) { - throw new IllegalArgumentException("amt " + amt + - " is not in range 0-" + textCount); + if (amt < 0 || amt > textCount) { + throw new IllegalArgumentException("amt " + amt + " is not in range 0-" + textCount); } setOffset(getOffset() + amt); textOffset += amt; textCount -= amt; } - - + /** * Sets the value of this token to a particular segment of a document. * The "next token" value is cleared. * - * @param line The segment from which to get the token. - * @param beg The first character's position in line. - * @param end The last character's position in line. - * @param offset The offset into the document at which this token begins. - * @param type A token type listed as "generic" above. + * @param line + * The segment from which to get the token. + * @param beg + * The first character's position in line. + * @param end + * The last character's position in line. + * @param offset + * The offset into the document at which this token begins. + * @param type + * A token type listed as "generic" above. */ - public void set(final char[] line, final int beg, final int end, - final int offset, final int type) { + public void set(final char[] line, final int beg, final int end, final int offset, final int type) { this.text = line; this.textOffset = beg; this.textCount = end - beg + 1; @@ -849,62 +755,61 @@ public class TokenImpl implements Token { this.setOffset(offset); nextToken = null; } - - + /** * Sets whether this token is a hyperlink. * - * @param hyperlink Whether this token is a hyperlink. + * @param hyperlink + * Whether this token is a hyperlink. * @see #isHyperlink() */ @Override public void setHyperlink(boolean hyperlink) { this.hyperlink = hyperlink; } - - + /** - * Sets the language index for this token. If this value is positive, it + * Sets the language index for this token. If this value is positive, it * denotes a specific "secondary" language this token represents (such as - * JavaScript code or CSS embedded in an HTML file). If this value is + * JavaScript code or CSS embedded in an HTML file). If this value is * 0, this token is in the "main" language being edited. * Negative values are invalid and treated as 0. * - * @param languageIndex The new language index. A value of - * 0 denotes the "main" language, any positive value - * denotes a specific secondary language. Negative values will - * be treated as 0. + * @param languageIndex + * The new language index. A value of + * 0 denotes the "main" language, any positive value + * denotes a specific secondary language. Negative values will + * be treated as 0. * @see #getLanguageIndex() */ @Override public void setLanguageIndex(int languageIndex) { this.languageIndex = languageIndex; } - - + /** * Sets the "next token" pointer of this token to point to the specified * token. * - * @param nextToken The new next token. + * @param nextToken + * The new next token. * @see #getNextToken() */ public void setNextToken(Token nextToken) { this.nextToken = nextToken; } - - + /** * Sets the offset into the document at which this token resides. * - * @param offset The new offset into the document. + * @param offset + * The new offset into the document. * @see #getOffset() */ public void setOffset(int offset) { this.offset = offset; } - - + /** * {@inheritDoc} */ @@ -912,16 +817,15 @@ public class TokenImpl implements Token { public void setType(int type) { this.type = type; } - - + /** * {@inheritDoc} */ @Override public boolean startsWith(char[] chars) { - if (chars.length<=textCount){ - for (int i=0; iString, which is useful for * debugging. @@ -948,15 +850,9 @@ public class TokenImpl implements Token { */ @Override public String toString() { - return "[Token: " + - (getType()==Token.NULL ? "" : - "text: '" + - (text==null ? "" : getLexeme() + "'; " + - "offset: " + getOffset() + "; type: " + getType() + "; " + - "isPaintable: " + isPaintable() + - "; nextToken==null: " + (nextToken==null))) + - "]"; + return "[Token: " + (getType() == Token.NULL ? "" + : "text: '" + (text == null ? "" : getLexeme() + "'; " + "offset: " + getOffset() + "; type: " + getType() + "; " + + "isPaintable: " + isPaintable() + "; nextToken==null: " + (nextToken == null))) + + "]"; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenIterator.java b/src/org/fife/ui/rsyntaxtextarea/TokenIterator.java index 8404374..11d3021 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenIterator.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenIterator.java @@ -1,16 +1,13 @@ /* * 08/28/2013 - * * TokenIterator.java - An iterator over the Tokens in an RSyntaxDocument. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import java.util.Iterator; - /** * Allows you to iterate through all paintable tokens in an * RSyntaxDocument. @@ -19,33 +16,31 @@ import java.util.Iterator; * @version 1.0 */ class TokenIterator implements Iterator { - + private RSyntaxDocument doc; private int curLine; private Token token; - - + /** * Constructor. * - * @param doc The document whose tokens we should iterate over. + * @param doc + * The document whose tokens we should iterate over. */ TokenIterator(RSyntaxDocument doc) { this.doc = doc; loadTokenListForCurLine(); int lineCount = getLineCount(); - while ((token==null || !token.isPaintable()) && curLine { */ @Override public boolean hasNext() { - return token!=null; + return token != null; } - - + private void loadTokenListForCurLine() { token = doc.getTokenListForLine(curLine); - if (token!=null && !token.isPaintable()) { + if (token != null && !token.isPaintable()) { // Common end of document scenario token = null; } } - - + /** * Returns the next paintable token in the document. * @@ -75,27 +68,22 @@ class TokenIterator implements Iterator { */ @Override public Token next() { - Token t = token; boolean tIsCloned = false; int lineCount = getLineCount(); - // Get the next token, going to the next line if necessary. - if (token!=null && token.isPaintable()) { + if (token != null && token.isPaintable()) { token = token.getNextToken(); - } - else if (curLine { curLine++; loadTokenListForCurLine(); } - if (token!=null && !token.isPaintable() && curLine==lineCount-1) { + if (token != null && !token.isPaintable() && curLine == lineCount - 1) { token = null; } - return t; - } - - + /** * Always throws {@link UnsupportedOperationException}, as * Token removal is not supported. * - * @throws UnsupportedOperationException always. + * @throws UnsupportedOperationException + * always. */ @Override public void remove() { throw new UnsupportedOperationException(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/TokenMaker.java index b9bd85e..d2c3f47 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenMaker.java @@ -1,10 +1,8 @@ /* * 02/24/2004 - * * TokenMaker.java - An object that can take a chunk of text and return a * linked list of Tokens representing it. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,7 +10,6 @@ package org.fife.ui.rsyntaxtextarea; import javax.swing.Action; import javax.swing.text.Segment; - /** * An implementation of TokenMaker is a class that turns text into * a linked list of Tokens for syntax highlighting @@ -25,90 +22,94 @@ import javax.swing.text.Segment; * @version 0.2 */ public interface TokenMaker { - - + /** * Adds a null token to the end of the current linked list of tokens. * This should be put at the end of the linked list whenever the last * token on the current line is NOT a multi-line token. */ public void addNullToken(); - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array from which to get the text. - * @param start Start offset in segment of token. - * @param end End offset in segment of token. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array from which to get the text. + * @param start + * Start offset in segment of token. + * @param end + * End offset in segment of token. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset); - - + public void addToken(char[] array, int start, int end, int tokenType, int startOffset); + /** * Returns the closest {@link TokenTypes "standard" token type} for a given * "internal" token type (e.g. one whose value is < 0). * - * @param type The token type. - * @return The closest "standard" token type. If a mapping is not defined + * @param type + * The token type. + * @return The closest "standard" token type. If a mapping is not defined * for this language, then type is returned. */ public int getClosestStandardTokenTypeForInternalType(int type); - - + /** * Returns whether this programming language uses curly braces * ('{' and '}') to denote code blocks. * - * @param languageIndex The language index at the offset in question. - * Since some TokenMakers effectively have nested - * languages (such as JavaScript in HTML), this parameter tells the - * TokenMaker what sub-language to look at. + * @param languageIndex + * The language index at the offset in question. + * Since some TokenMakers effectively have nested + * languages (such as JavaScript in HTML), this parameter tells + * the + * TokenMaker what sub-language to look at. * @return Whether curly braces denote code blocks. */ public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex); - - + /** * Returns the last token on this line's type if the token is "unfinished", - * or {@link Token#NULL} if it was finished. For example, if C-style + * or {@link Token#NULL} if it was finished. For example, if C-style * syntax highlighting is being implemented, and text * contained a line of code that contained the beginning of a comment but * no end-comment marker ("*\/"), then this method would return - * {@link Token#COMMENT_MULTILINE} for that line. This is useful + * {@link Token#COMMENT_MULTILINE} for that line. This is useful * for doing syntax highlighting. * - * @param text The line of tokens to examine. - * @param initialTokenType The token type to start with (i.e., the value - * of getLastTokenTypeOnLine for the line before - * text). + * @param text + * The line of tokens to examine. + * @param initialTokenType + * The token type to start with (i.e., the value + * of getLastTokenTypeOnLine for the line before + * text). * @return The last token on this line's type, or {@link Token#NULL} * if the line was completed. */ public int getLastTokenTypeOnLine(Segment text, int initialTokenType); - - + /** * Returns the text to place at the beginning and end of a * line to "comment" it in this programming language. * - * @param languageIndex The language index at the offset in question. - * Since some TokenMakers effectively have nested - * languages (such as JavaScript in HTML), this parameter tells the - * TokenMaker what sub-language to look at. + * @param languageIndex + * The language index at the offset in question. + * Since some TokenMakers effectively have nested + * languages (such as JavaScript in HTML), this parameter tells + * the + * TokenMaker what sub-language to look at. * @return The start and end strings to add to a line to "comment" - * it out. A null value for either means there - * is no string to add for that part. A value of + * it out. A null value for either means there + * is no string to add for that part. A value of * null for the array means this language * does not support commenting/uncommenting lines. */ public String[] getLineCommentStartAndEnd(int languageIndex); - - + /** * Returns an action to handle "insert break" key presses (i.e. Enter). * @@ -116,22 +117,21 @@ public interface TokenMaker { * be used. */ public Action getInsertBreakAction(); - - + /** * Returns whether tokens of the specified type should have "mark * occurrences" enabled for the current programming language. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ public boolean getMarkOccurrencesOfTokenType(int type); - - + /** * Returns the object in charge of marking all occurrences of the token - * at the current caret position, if it is a relevant token. If + * at the current caret position, if it is a relevant token. If * null is returned, a default OccurrenceMarker * is used. * @@ -139,52 +139,51 @@ public interface TokenMaker { * for none. */ public OccurrenceMarker getOccurrenceMarker(); - - + /** * If a line ends in the specified token, this method returns whether * a new line inserted after that line should be indented. * - * @param token The token the previous line ends with. + * @param token + * The token the previous line ends with. * @return Whether the next line should be indented. */ public boolean getShouldIndentNextLineAfter(Token token); - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ - public Token getTokenList(Segment text, int initialTokenType, - int startOffset); - - + public Token getTokenList(Segment text, int initialTokenType, int startOffset); + /** * Returns whether a character could be part of an "identifier" token - * in a specific language. This is used to identify such things as the + * in a specific language. This is used to identify such things as the * bounds of the "word" to select on double-clicking. * - * @param languageIndex The language index the character was found in. - * @param ch The character. + * @param languageIndex + * The language index the character was found in. + * @param ch + * The character. * @return Whether the character could be part of an "identifier" token. */ public boolean isIdentifierChar(int languageIndex, char ch); - - + /** * Returns whether this language is a markup language. * * @return Whether this language is markup. */ public boolean isMarkupLanguage(); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenMakerBase.java b/src/org/fife/ui/rsyntaxtextarea/TokenMakerBase.java index bcbcafc..34a10fd 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenMakerBase.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenMakerBase.java @@ -1,9 +1,7 @@ /* * 08/26/2004 - * * TokenMakerBase.java - A base class for token makers. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -11,7 +9,6 @@ package org.fife.ui.rsyntaxtextarea; import javax.swing.Action; import javax.swing.text.Segment; - /** * Base class for token makers. * @@ -19,44 +16,38 @@ import javax.swing.text.Segment; * @version 1.0 */ public abstract class TokenMakerBase implements TokenMaker { - + /** * The first token in the returned linked list. */ protected TokenImpl firstToken; - /** * Used in the creation of the linked list. */ protected TokenImpl currentToken; - /** * Used in the creation of the linked list. */ protected TokenImpl previousToken; - /** * The factory that gives us our tokens to use. */ private TokenFactory tokenFactory; - /** * Highlights occurrences of the current token in the editor, if it is * relevant. */ private OccurrenceMarker occurrenceMarker; - /** - * "0" implies this is the "main" language being highlighted. Positive + * "0" implies this is the "main" language being highlighted. Positive * values imply various "secondary" or "embedded" languages, such as CSS - * or JavaScript in HTML. While this value is non-zero, tokens will be + * or JavaScript in HTML. While this value is non-zero, tokens will be * generated with this language index so they can (possibly) be painted * differently, so "embedded" languages can be rendered with a special * background. */ private int languageIndex; - - + /** * Constructor. */ @@ -64,18 +55,16 @@ public abstract class TokenMakerBase implements TokenMaker { firstToken = currentToken = previousToken = null; tokenFactory = new DefaultTokenFactory(); } - - + /** * {@inheritDoc} */ @Override public void addNullToken() { - if (firstToken==null) { + if (firstToken == null) { firstToken = tokenFactory.createToken(); currentToken = firstToken; - } - else { + } else { TokenImpl next = tokenFactory.createToken(); currentToken.setNextToken(next); previousToken = currentToken; @@ -83,69 +72,67 @@ public abstract class TokenMakerBase implements TokenMaker { } currentToken.setLanguageIndex(languageIndex); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param segment Segment to get text from. - * @param start Start offset in segment of token. - * @param end End offset in segment of token. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param segment + * Segment to get text from. + * @param start + * Start offset in segment of token. + * @param end + * End offset in segment of token. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ - public void addToken(Segment segment, int start, int end, int tokenType, - int startOffset) { - addToken(segment.array, start,end, tokenType, startOffset); + public void addToken(Segment segment, int start, int end, int tokenType, int startOffset) { + addToken(segment.array, start, end, tokenType, startOffset); } - - + /** * {@inheritDoc} */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset) { + public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { addToken(array, start, end, tokenType, startOffset, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - - if (firstToken==null) { - firstToken = tokenFactory.createToken(array, start, end, - startOffset, tokenType); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + if (firstToken == null) { + firstToken = tokenFactory.createToken(array, start, end, startOffset, tokenType); currentToken = firstToken; // previous token is still null. - } - else { - TokenImpl next = tokenFactory.createToken(array, start,end, - startOffset, tokenType); + } else { + TokenImpl next = tokenFactory.createToken(array, start, end, startOffset, tokenType); currentToken.setNextToken(next); previousToken = currentToken; currentToken = next; } - currentToken.setLanguageIndex(languageIndex); currentToken.setHyperlink(hyperlink); - } - - + /** - * Returns the occurrence marker to use for this token maker. Subclasses + * Returns the occurrence marker to use for this token maker. Subclasses * can override to use different implementations. * * @return The occurrence marker to use. @@ -153,25 +140,25 @@ public abstract class TokenMakerBase implements TokenMaker { protected OccurrenceMarker createOccurrenceMarker() { return new DefaultOccurrenceMarker(); } - - + /** * Returns the closest {@link TokenTypes "standard" token type} for a given - * "internal" token type (e.g. one whose value is < 0).

+ * "internal" token type (e.g. one whose value is < 0). + *

* * The default implementation returns type always, which * denotes that a mapping from internal token types to standard token types * is not defined; subclasses can override. * - * @param type The token type. + * @param type + * The token type. * @return The closest "standard" token type. */ @Override public int getClosestStandardTokenTypeForInternalType(int type) { return type; } - - + /** * Returns whether this programming language uses curly braces * ('{' and '}') to denote code blocks. @@ -179,21 +166,22 @@ public abstract class TokenMakerBase implements TokenMaker { * The default implementation returns false; subclasses can * override this method if necessary. * - * @param languageIndex The language index at the offset in question. - * Since some TokenMakers effectively have nested - * languages (such as JavaScript in HTML), this parameter tells the - * TokenMaker what sub-language to look at. + * @param languageIndex + * The language index at the offset in question. + * Since some TokenMakers effectively have nested + * languages (such as JavaScript in HTML), this parameter tells + * the + * TokenMaker what sub-language to look at. * @return Whether curly braces denote code blocks. */ @Override public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex) { return false; } - - + /** * Returns an action to handle "insert break" key presses (i.e. Enter). - * The default implementation returns null. Subclasses + * The default implementation returns null. Subclasses * can override. * * @return The default implementation always returns null. @@ -202,8 +190,7 @@ public abstract class TokenMakerBase implements TokenMaker { public Action getInsertBreakAction() { return null; } - - + /** * Returns the current language index. * @@ -213,26 +200,20 @@ public abstract class TokenMakerBase implements TokenMaker { protected int getLanguageIndex() { return languageIndex; } - - + /** * {@inheritDoc} */ @Override public int getLastTokenTypeOnLine(Segment text, int initialTokenType) { - // Last parameter doesn't matter if we're not painting. Token t = getTokenList(text, initialTokenType, 0); - - while (t.getNextToken()!=null) { + while (t.getNextToken() != null) { t = t.getNextToken(); } - return t.getType(); - } - - + /** * {@inheritDoc} */ @@ -240,61 +221,58 @@ public abstract class TokenMakerBase implements TokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return null; } - - + /** * Returns whether tokens of the specified type should have "mark - * occurrences" enabled for the current programming language. The default + * occurrences" enabled for the current programming language. The default * implementation returns true if type is {@link Token#IDENTIFIER}. * Subclasses can override this method to support other token types, such * as {@link Token#VARIABLE}. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER; + return type == Token.IDENTIFIER; } - - + /** * {@inheritDoc} */ @Override public OccurrenceMarker getOccurrenceMarker() { - if (occurrenceMarker==null) { + if (occurrenceMarker == null) { occurrenceMarker = createOccurrenceMarker(); } return occurrenceMarker; } - - + /** - * The default implementation returns false always. Languages + * The default implementation returns false always. Languages * that wish to better support auto-indentation can override this method. * - * @param token The token the previous line ends with. + * @param token + * The token the previous line ends with. * @return Whether the next line should be indented. */ @Override public boolean getShouldIndentNextLineAfter(Token token) { return false; } - - + /** * Returns whether a character could be part of an "identifier" token - * in a specific language. The default implementation returns + * in a specific language. The default implementation returns * true for letters, numbers, and certain symbols. */ @Override public boolean isIdentifierChar(int languageIndex, char ch) { - return Character.isLetterOrDigit(ch) || ch=='_' || ch=='$'; + return Character.isLetterOrDigit(ch) || ch == '_' || ch == '$'; } - - + /** * The default implementation returns false always. * Subclasses that are highlighting a markup language should override this @@ -306,10 +284,9 @@ public abstract class TokenMakerBase implements TokenMaker { public boolean isMarkupLanguage() { return false; } - - + /** - * Deletes the linked list of tokens so we can begin anew. This should + * Deletes the linked list of tokens so we can begin anew. This should * never have to be called by the programmer, as it is automatically * called whenever the user calls * {@link #getLastTokenTypeOnLine(Segment, int)} or @@ -319,22 +296,20 @@ public abstract class TokenMakerBase implements TokenMaker { firstToken = currentToken = previousToken = null; tokenFactory.resetAllTokens(); } - - + /** - * Sets the language index to assign to tokens moving forward. This + * Sets the language index to assign to tokens moving forward. This * property is used to designate tokens as being in "secondary" languages * (such as CSS or JavaScript in HTML). * - * @param languageIndex The new language index. A value of - * 0 denotes the "main" language, any positive value - * denotes a specific secondary language. Negative values will - * be treated as 0. + * @param languageIndex + * The new language index. A value of + * 0 denotes the "main" language, any positive value + * denotes a specific secondary language. Negative values will + * be treated as 0. * @see #getLanguageIndex() */ protected void setLanguageIndex(int languageIndex) { this.languageIndex = Math.max(0, languageIndex); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenMakerFactory.java b/src/org/fife/ui/rsyntaxtextarea/TokenMakerFactory.java index 3f9baee..a46632c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenMakerFactory.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenMakerFactory.java @@ -1,9 +1,7 @@ /* * 12/12/2008 - * * TokenMakerFactory.java - A factory for TokenMakers. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -20,18 +18,18 @@ import org.fife.ui.rsyntaxtextarea.modes.PlainTextTokenMaker; * @version 1.0 */ public abstract class TokenMakerFactory { - + /** - * If this system property is set, a custom TokenMakerFactory of + * If this system property is set, a custom TokenMakerFactory + * of * the specified class will be used as the default token maker factory. */ public static final String PROPERTY_DEFAULT_TOKEN_MAKER_FACTORY = "TokenMakerFactory"; - /** * The singleton default TokenMakerFactory instance. */ private static TokenMakerFactory DEFAULT_INSTANCE; - + /** * Returns the default TokenMakerFactory instance. This is the * factory used by all {@link RSyntaxDocument}s by default. @@ -61,7 +59,7 @@ public abstract class TokenMakerFactory { } return DEFAULT_INSTANCE; } - + /** * Returns a {@link TokenMaker} for the specified key. * @@ -77,26 +75,28 @@ public abstract class TokenMakerFactory { } return tm; } - + /** * Returns a {@link TokenMaker} for the specified key. * * @param key * The key. - * @return The corresponding TokenMaker, or null if + * @return The corresponding TokenMaker, or null + * if * none matches the specified key. */ protected abstract TokenMaker getTokenMakerImpl(String key); - + /** * Returns the set of keys that this factory maps to token makers. * * @return The set of keys. */ public abstract Set keySet(); - + /** - * Sets the default TokenMakerFactory instance. This is the factory + * Sets the default TokenMakerFactory instance. This is the + * factory * used by all future {@link RSyntaxDocument}s by default. * RSyntaxDocuments that have already been created are not * affected. @@ -113,5 +113,4 @@ public abstract class TokenMakerFactory { } DEFAULT_INSTANCE = tmf; } - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenMap.java b/src/org/fife/ui/rsyntaxtextarea/TokenMap.java index f2e436b..858d30f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenMap.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenMap.java @@ -1,27 +1,25 @@ /* * 08/26/2004 - * * TokenMap.java - Similar to a Map in Java, only designed specifically for * org.fife.ui.rsyntaxtextarea.Tokens. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; import javax.swing.text.Segment; - /** * A hash table for reserved words, etc. defined by a {@link TokenMaker}. * This class is designed for the quick lookup of tokens, as it can compare - * Segments without the need to allocate a new string.

+ * Segments without the need to allocate a new string. + *

* * The org.fife.ui.rsyntaxtextarea package uses this class to help - * identify reserved words in programming languages. An instance of + * identify reserved words in programming languages. An instance of * {@link TokenMaker} will create and initialize an instance of this class * containing all reserved words, data types, and all other words that need to - * be syntax-highlighted for that particular language. When the token maker + * be syntax-highlighted for that particular language. When the token maker * parses a line and identifies an individual token, it is looked up in the * TokenMap to see if it should be syntax-highlighted. * @@ -29,124 +27,123 @@ import javax.swing.text.Segment; * @version 0.6 */ public class TokenMap { - + private int size; private TokenMapToken[] tokenMap; private boolean ignoreCase; - private static final int DEFAULT_TOKEN_MAP_SIZE = 52; - - + /** * Constructs a new token map that is case-sensitive. */ public TokenMap() { this(DEFAULT_TOKEN_MAP_SIZE); } - - + /** * Constructs a new token map that is case-sensitive. * - * @param size The size of the token map. + * @param size + * The size of the token map. */ public TokenMap(int size) { this(size, false); } - - + /** * Constructs a new token map. * - * @param ignoreCase Whether or not this token map should ignore case - * when comparing tokens. + * @param ignoreCase + * Whether or not this token map should ignore case + * when comparing tokens. */ public TokenMap(boolean ignoreCase) { this(DEFAULT_TOKEN_MAP_SIZE, ignoreCase); } - - + /** * Constructs a new token map. * - * @param size The size of the token map. - * @param ignoreCase Whether or not this token map should ignore case - * when comparing tokens. + * @param size + * The size of the token map. + * @param ignoreCase + * Whether or not this token map should ignore case + * when comparing tokens. */ public TokenMap(int size, boolean ignoreCase) { this.size = size; tokenMap = new TokenMapToken[size]; this.ignoreCase = ignoreCase; } - - + /** * Adds a token to a specified bucket in the token map. * - * @param bucket The bucket in which to add the token. - * @param token The token to add. + * @param bucket + * The bucket in which to add the token. + * @param token + * The token to add. */ private void addTokenToBucket(int bucket, TokenMapToken token) { TokenMapToken old = tokenMap[bucket]; token.nextToken = old; tokenMap[bucket] = token; } - - + /** * Returns the token type associated with the given text, if the given - * text is in this token map. If it isn't, -1 is returned. + * text is in this token map. If it isn't, -1 is returned. * - * @param text The segment from which to get the text to compare. - * @param start The starting index in the segment of the text. - * @param end The ending index in the segment of the text. + * @param text + * The segment from which to get the text to compare. + * @param start + * The starting index in the segment of the text. + * @param end + * The ending index in the segment of the text. * @return The token type associated with the given text, or * -1 if this token was not specified in this map. */ public int get(Segment text, int start, int end) { return get(text.array, start, end); } - - + /** * Returns the token type associated with the given text, if the given - * text is in this token map. If it isn't, -1 is returned. + * text is in this token map. If it isn't, -1 is returned. * - * @param array1 An array of characters containing the text. - * @param start The starting index in the array of the text. - * @param end The ending index in the array of the text. + * @param array1 + * An array of characters containing the text. + * @param start + * The starting index in the array of the text. + * @param end + * The ending index in the array of the text. * @return The token type associated with the given text, or * -1 if this token was not specified in this map. */ public int get(char[] array1, int start, int end) { - int length1 = end - start + 1; - int hash = getHashCode(array1, start, length1); TokenMapToken token = tokenMap[hash]; - char[] array2; int offset2; int offset1; int length; - - /* We check whether or not to ignore case before doing any looping to - * minimize the number of extraneous comparisons we do. This makes + /* + * We check whether or not to ignore case before doing any looping to + * minimize the number of extraneous comparisons we do. This makes * for slightly redundant code, but it'll be a little more efficient. */ - // If matches are case-sensitive (C, C++, Java, etc.)... if (!ignoreCase) { - - mainLoop: - while (token!=null) { - if (token.length==length1) { - array2 = token.text; + mainLoop: + while (token != null) { + if (token.length == length1) { + array2 = token.text; offset2 = token.offset; offset1 = start; - length = length1; + length = length1; while (length-- > 0) { - if (array1[offset1++]!=array2[offset2++]) { + if (array1[offset1++] != array2[offset2++]) { token = token.nextToken; continue mainLoop; } @@ -155,24 +152,20 @@ public class TokenMap { } token = token.nextToken; } - } - // If matches are NOT case-sensitive (HTML)... // Note that all tokens saved in this map were converted to // lower-case already. else { - - mainLoop2: - while (token!=null) { - if (token.length==length1) { - array2 = token.text; + mainLoop2: + while (token != null) { + if (token.length == length1) { + array2 = token.text; offset2 = token.offset; offset1 = start; - length = length1; + length = length1; while (length-- > 0) { - if (RSyntaxUtilities.toLowerCase( - array1[offset1++]) != array2[offset2++]) { + if (RSyntaxUtilities.toLowerCase(array1[offset1++]) != array2[offset2++]) { token = token.nextToken; continue mainLoop2; } @@ -181,29 +174,26 @@ public class TokenMap { } token = token.nextToken; } - } - // Didn't match any of the tokens in the bucket. return -1; - } - - + /** * Returns the hash code for a given string. * - * @param text The text to hash. - * @param offset The offset into the text at which to start hashing. - * @param length The last character in the text to hash. + * @param text + * The text to hash. + * @param offset + * The offset into the text at which to start hashing. + * @param length + * The last character in the text to hash. * @return The hash code. */ private int getHashCode(char[] text, int offset, int length) { - return (RSyntaxUtilities.toLowerCase(text[offset]) + - RSyntaxUtilities.toLowerCase(text[offset+length-1])) % size; + return (RSyntaxUtilities.toLowerCase(text[offset]) + RSyntaxUtilities.toLowerCase(text[offset + length - 1])) % size; } - - + /** * Returns whether this token map ignores case when checking for tokens. * This property is set in the constructor and cannot be changed, as this @@ -214,66 +204,63 @@ public class TokenMap { protected boolean isIgnoringCase() { return ignoreCase; } - - + /** * Adds a string to this token map. * - * @param string The string to add. - * @param tokenType The type of token the string is. + * @param string + * The string to add. + * @param tokenType + * The type of token the string is. */ public void put(final String string, final int tokenType) { if (isIgnoringCase()) { put(string.toLowerCase().toCharArray(), tokenType); - } - else { + } else { put(string.toCharArray(), tokenType); } } - - + /** - * Adds a string to this token map. The char array passed-in will be used + * Adds a string to this token map. The char array passed-in will be used * as the actual data for the token, so it may well be modified (such as - * lower-casing it if ignoreCase is true). This + * lower-casing it if ignoreCase is true). This * shouldn't be an issue though as this method is only called from the * public put method, which allocates a new char array. * - * @param string The string to add. - * @param tokenType The type of token the string is. + * @param string + * The string to add. + * @param tokenType + * The type of token the string is. */ private void put(char[] string, int tokenType) { int hashCode = getHashCode(string, 0, string.length); addTokenToBucket(hashCode, new TokenMapToken(string, tokenType)); } - - + /** - * The "token" used by a token map. Note that this isn't the same thing + * The "token" used by a token map. Note that this isn't the same thing * as the {@link Token} class, but it's basically a 1-1 correspondence * for reserved words, etc. */ private static final class TokenMapToken { - + private char[] text; private int offset; private int length; private int tokenType; private TokenMapToken nextToken; - + private TokenMapToken(char[] text, int tokenType) { this.text = text; this.offset = 0; this.length = text.length; this.tokenType = tokenType; } - + @Override public String toString() { - return "[TokenMapToken: " + new String(text,offset,length) + "]"; + return "[TokenMapToken: " + new String(text, offset, length) + "]"; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenOrientedView.java b/src/org/fife/ui/rsyntaxtextarea/TokenOrientedView.java index 887c869..cdd7444 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenOrientedView.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenOrientedView.java @@ -1,19 +1,17 @@ /* * 08/06/2004 - * * TokenOrientedView.java - An interface for the syntax-highlighting token- * oriented views for token-oriented methods. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; - /** * An interface for the syntax-highlighting token oriented views for - * token-oriented methods. This way callers won't need to know what specific - * class a view is an instance of to access its tokens.

+ * token-oriented methods. This way callers won't need to know what specific + * class a view is an instance of to access its tokens. + *

* * Currently, this interface is only useful for obtaining token lists for * "physical lines" (i.e., a word-wrapped view's logical lines may be @@ -24,38 +22,36 @@ package org.fife.ui.rsyntaxtextarea; * @version 0.1 */ public interface TokenOrientedView { - - + /** * Returns a token list for the physical line above the physical - * line containing the specified offset into the document. Note that for + * line containing the specified offset into the document. Note that for * a plain (non-wrapped) view, this is simply the token list for the * logical line above the line containing offset, since lines - * are not wrapped. For a wrapped view, this may or may not be tokens from + * are not wrapped. For a wrapped view, this may or may not be tokens from * the same line. * - * @param offset The offset in question. + * @param offset + * The offset in question. * @return A token list for the physical (and in this view, logical) line - * before this one. If no physical line is above the one + * before this one. If no physical line is above the one * containing offset, null is returned. */ Token getTokenListForPhysicalLineAbove(int offset); - - + /** * Returns a token list for the physical line below the physical - * line containing the specified offset into the document. Note that for + * line containing the specified offset into the document. Note that for * a plain (non-wrapped) view, this is simply the token list for the * logical line below the line containing offset, since lines - * are not wrapped. For a wrapped view, this may or may not be tokens from + * are not wrapped. For a wrapped view, this may or may not be tokens from * the same line. * - * @param offset The offset in question. + * @param offset + * The offset in question. * @return A token list for the physical (and in this view, logical) line - * after this one. If no physical line is after the one + * after this one. If no physical line is after the one * containing offset, null is returned. */ Token getTokenListForPhysicalLineBelow(int offset); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenPainter.java b/src/org/fife/ui/rsyntaxtextarea/TokenPainter.java index 9318019..dc6721c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenPainter.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenPainter.java @@ -1,9 +1,7 @@ /* * 03/16/2013 - * * TokenPainter - Renders tokens in an instance of RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,9 +10,8 @@ import java.awt.Graphics2D; import javax.swing.text.TabExpander; - /** - * Renders tokens in an instance of {@link RSyntaxTextArea}. One instance + * Renders tokens in an instance of {@link RSyntaxTextArea}. One instance * may render tokens "regularly," another may render visible whitespace, for * example. * @@ -22,99 +19,121 @@ import javax.swing.text.TabExpander; * @version 1.0 */ interface TokenPainter { - - + /** * Paints this token. * - * @param token The token to render. - * @param g The graphics context in which to paint. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. - * @param host The text area this token is in. - * @param e How to expand tabs. + * @param token + * The token to render. + * @param g + * The graphics context in which to paint. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. + * @param host + * The text area this token is in. + * @param e + * How to expand tabs. * @return The x-coordinate representing the end of the painted text. */ - float paint(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e); - - + float paint(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e); + /** * Paints this token. * - * @param token The token to render. - * @param g The graphics context in which to paint. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. - * @param host The text area this token is in. - * @param e How to expand tabs. - * @param clipStart The left boundary of the clip rectangle in which we're - * painting. This optimizes painting by allowing us to not paint - * paint when this token is "to the left" of the clip rectangle. + * @param token + * The token to render. + * @param g + * The graphics context in which to paint. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. + * @param host + * The text area this token is in. + * @param e + * How to expand tabs. + * @param clipStart + * The left boundary of the clip rectangle in which we're + * painting. This optimizes painting by allowing us to not paint + * paint when this token is "to the left" of the clip rectangle. * @return The x-coordinate representing the end of the painted text. */ - float paint(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart); - - + float paint(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart); + /** * Paints this token. * - * @param token The token to render. - * @param g The graphics context in which to paint. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. - * @param host The text area this token is in. - * @param e How to expand tabs. - * @param clipStart The left boundary of the clip rectangle in which we're - * painting. This optimizes painting by allowing us to not paint - * paint when this token is "to the left" of the clip rectangle. - * @param paintBG Whether to paint the background. + * @param token + * The token to render. + * @param g + * The graphics context in which to paint. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. + * @param host + * The text area this token is in. + * @param e + * How to expand tabs. + * @param clipStart + * The left boundary of the clip rectangle in which we're + * painting. This optimizes painting by allowing us to not paint + * paint when this token is "to the left" of the clip rectangle. + * @param paintBG + * Whether to paint the background. * @return The x-coordinate representing the end of the painted text. */ - float paint(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart, - boolean paintBG); - - + float paint(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart, boolean paintBG); + /** * Paints this token as it should appear in a selected region of text * (assuming painting with a selection-foreground color is enabled in the * parent RSyntaxTextArea). * - * @param token The token to render. - * @param g The graphics context in which to paint. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. - * @param host The text area this token is in. - * @param e How to expand tabs. - * @param useSTC Whether to use the text area's "selected text color." + * @param token + * The token to render. + * @param g + * The graphics context in which to paint. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. + * @param host + * The text area this token is in. + * @param e + * How to expand tabs. + * @param useSTC + * Whether to use the text area's "selected text color." * @return The x-coordinate representing the end of the painted text. */ - float paintSelected(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, boolean useSTC); - - + float paintSelected(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, boolean useSTC); + /** * Paints this token as it should appear in a selected region of text * (assuming painting with a selection-foreground color is enabled in the * parent RSyntaxTextArea). * - * @param token The token to render. - * @param g The graphics context in which to paint. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. - * @param host The text area this token is in. - * @param e How to expand tabs. - * @param clipStart The left boundary of the clip rectangle in which we're - * painting. This optimizes painting by allowing us to not paint - * paint when this token is "to the left" of the clip rectangle. - * @param useSTC Whether to use the text area's "selected text color." + * @param token + * The token to render. + * @param g + * The graphics context in which to paint. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. + * @param host + * The text area this token is in. + * @param e + * How to expand tabs. + * @param clipStart + * The left boundary of the clip rectangle in which we're + * painting. This optimizes painting by allowing us to not paint + * paint when this token is "to the left" of the clip rectangle. + * @param useSTC + * Whether to use the text area's "selected text color." * @return The x-coordinate representing the end of the painted text. */ - float paintSelected(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart, - boolean useSTC); - - -} \ No newline at end of file + float paintSelected(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart, boolean useSTC); +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenTypes.java b/src/org/fife/ui/rsyntaxtextarea/TokenTypes.java index f56f204..888e270 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenTypes.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenTypes.java @@ -1,16 +1,14 @@ /* * 12/04/2011 - * * TokenTypes.java - All token types supported by RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; - /** - * All token types supported by RSyntaxTextArea.

+ * All token types supported by RSyntaxTextArea. + *

* * Note that all valid token types are >= 0, so extensions of the TokenMaker * class are free to internally use all ints < 0 ONLY for "end-of-line" @@ -20,66 +18,49 @@ package org.fife.ui.rsyntaxtextarea; * @version 1.0 */ public interface TokenTypes { - + /** * Tokens of type NULL mark the end of lines with no * multi-line token at the end (such as a block comment in C++). */ - int NULL = 0; - - int COMMENT_EOL = 1; - int COMMENT_MULTILINE = 2; - int COMMENT_DOCUMENTATION = 3; - int COMMENT_KEYWORD = 4; - int COMMENT_MARKUP = 5; - - int RESERVED_WORD = 6; - int RESERVED_WORD_2 = 7; - - int FUNCTION = 8; - - int LITERAL_BOOLEAN = 9; - int LITERAL_NUMBER_DECIMAL_INT = 10; - int LITERAL_NUMBER_FLOAT = 11; - int LITERAL_NUMBER_HEXADECIMAL = 12; - int LITERAL_STRING_DOUBLE_QUOTE = 13; - int LITERAL_CHAR = 14; - int LITERAL_BACKQUOTE = 15; - - int DATA_TYPE = 16; - - int VARIABLE = 17; - - int REGEX = 18; - - int ANNOTATION = 19; - - int IDENTIFIER = 20; - - int WHITESPACE = 21; - - int SEPARATOR = 22; - - int OPERATOR = 23; - - int PREPROCESSOR = 24; - - int MARKUP_TAG_DELIMITER = 25; - int MARKUP_TAG_NAME = 26; - int MARKUP_TAG_ATTRIBUTE = 27; - int MARKUP_TAG_ATTRIBUTE_VALUE = 28; - int MARKUP_COMMENT = 29; - int MARKUP_DTD = 30; - int MARKUP_PROCESSING_INSTRUCTION = 31; - int MARKUP_CDATA_DELIMITER = 32; - int MARKUP_CDATA = 33; - int MARKUP_ENTITY_REFERENCE = 34; - - int ERROR_IDENTIFIER = 35; - int ERROR_NUMBER_FORMAT = 36; - int ERROR_STRING_DOUBLE = 37; - int ERROR_CHAR = 38; - + int NULL = 0; + int COMMENT_EOL = 1; + int COMMENT_MULTILINE = 2; + int COMMENT_DOCUMENTATION = 3; + int COMMENT_KEYWORD = 4; + int COMMENT_MARKUP = 5; + int RESERVED_WORD = 6; + int RESERVED_WORD_2 = 7; + int FUNCTION = 8; + int LITERAL_BOOLEAN = 9; + int LITERAL_NUMBER_DECIMAL_INT = 10; + int LITERAL_NUMBER_FLOAT = 11; + int LITERAL_NUMBER_HEXADECIMAL = 12; + int LITERAL_STRING_DOUBLE_QUOTE = 13; + int LITERAL_CHAR = 14; + int LITERAL_BACKQUOTE = 15; + int DATA_TYPE = 16; + int VARIABLE = 17; + int REGEX = 18; + int ANNOTATION = 19; + int IDENTIFIER = 20; + int WHITESPACE = 21; + int SEPARATOR = 22; + int OPERATOR = 23; + int PREPROCESSOR = 24; + int MARKUP_TAG_DELIMITER = 25; + int MARKUP_TAG_NAME = 26; + int MARKUP_TAG_ATTRIBUTE = 27; + int MARKUP_TAG_ATTRIBUTE_VALUE = 28; + int MARKUP_COMMENT = 29; + int MARKUP_DTD = 30; + int MARKUP_PROCESSING_INSTRUCTION = 31; + int MARKUP_CDATA_DELIMITER = 32; + int MARKUP_CDATA = 33; + int MARKUP_ENTITY_REFERENCE = 34; + int ERROR_IDENTIFIER = 35; + int ERROR_NUMBER_FORMAT = 36; + int ERROR_STRING_DOUBLE = 37; + int ERROR_CHAR = 38; int DEFAULT_NUM_TOKEN_TYPES = 39; - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/TokenUtils.java b/src/org/fife/ui/rsyntaxtextarea/TokenUtils.java index 1f1e40f..0312c68 100644 --- a/src/org/fife/ui/rsyntaxtextarea/TokenUtils.java +++ b/src/org/fife/ui/rsyntaxtextarea/TokenUtils.java @@ -2,7 +2,6 @@ package org.fife.ui.rsyntaxtextarea; import javax.swing.text.TabExpander; - /** * Utility methods for dealing with tokens. * @@ -10,161 +9,159 @@ import javax.swing.text.TabExpander; * @version 1.0 */ public final class TokenUtils { - - + private TokenUtils() {} - - + /** * Modifies the passed-in token list to start at the specified offset. * For example, if the token list covered positions 20-60 in the document * (inclusive) like so: + * *

 	 *   [token1] -> [token2] -> [token3] -> [token4]
 	 *   20     30   31     40   41     50   51     60
 	 * 
+ * * and you used this method to make the token list start at position 44, * then the token list would be modified to be the following: + * *
 	 *   [part-of-old-token3] -> [token4]
 	 *   44                 50   51     60
 	 * 
+ * * Tokens that come before the specified position are forever lost, and * the token containing that position is made to begin at that position if - * necessary. All token types remain the same as they were originally.

+ * necessary. All token types remain the same as they were originally. + *

* * This method can be useful if you are only interested in part of a token * list (i.e., the line it represents), but you don't want to modify the * token list yourself. * - * @param tokenList The list to make start at the specified position. - * This parameter is modified. - * @param pos The position at which the new token list is to start. If - * this position is not in the passed-in token list, - * returned token list will either be null or the - * unpaintable token(s) at the end of the passed-in token list. - * @param e How to expand tabs. - * @param textArea The text area from which the token list came. - * @param x0 The initial x-pixel position of the old token list. - * @return Information about the "sub" token list. This will be + * @param tokenList + * The list to make start at the specified position. + * This parameter is modified. + * @param pos + * The position at which the new token list is to start. If + * this position is not in the passed-in token list, + * returned token list will either be null or the + * unpaintable token(s) at the end of the passed-in token list. + * @param e + * How to expand tabs. + * @param textArea + * The text area from which the token list came. + * @param x0 + * The initial x-pixel position of the old token list. + * @return Information about the "sub" token list. This will be * null if pos was not a valid offset * into the token list. - * @see #getSubTokenList(Token, int, TabExpander, RSyntaxTextArea, float, TokenImpl) + * @see #getSubTokenList(Token, int, TabExpander, RSyntaxTextArea, float, + * TokenImpl) */ - public static TokenSubList getSubTokenList(Token tokenList, int pos, - TabExpander e, - final RSyntaxTextArea textArea, - float x0) { + public static TokenSubList getSubTokenList(Token tokenList, int pos, TabExpander e, final RSyntaxTextArea textArea, float x0) { return getSubTokenList(tokenList, pos, e, textArea, x0, null); } - - + /** * Modifies the passed-in token list to start at the specified offset. * For example, if the token list covered positions 20-60 in the document * (inclusive) like so: + * *

 	 *   [token1] -> [token2] -> [token3] -> [token4]
 	 *   20     30   31     40   41     50   51     60
 	 * 
+ * * and you used this method to make the token list start at position 44, * then the token list would be modified to be the following: + * *
 	 *   [part-of-old-token3] -> [token4]
 	 *   44                 50   51     60
 	 * 
+ * * Tokens that come before the specified position are forever lost, and * the token containing that position is made to begin at that position if - * necessary. All token types remain the same as they were originally.

+ * necessary. All token types remain the same as they were originally. + *

* * This method can be useful if you are only interested in part of a token * list (i.e., the line it represents), but you don't want to modify the * token list yourself. * - * @param tokenList The list to make start at the specified position. - * This parameter is modified. - * @param pos The position at which the new token list is to start. If - * this position is not in the passed-in token list, - * returned token list will either be null or the - * unpaintable token(s) at the end of the passed-in token list. - * @param e How to expand tabs. - * @param textArea The text area from which the token list came. - * @param x0 The initial x-pixel position of the old token list. - * @param tempToken A temporary token to use when creating the token list - * result. This may be null but callers can pass in - * a "buffer" token for performance if desired. - * @return Information about the "sub" token list. This will be + * @param tokenList + * The list to make start at the specified position. + * This parameter is modified. + * @param pos + * The position at which the new token list is to start. If + * this position is not in the passed-in token list, + * returned token list will either be null or the + * unpaintable token(s) at the end of the passed-in token list. + * @param e + * How to expand tabs. + * @param textArea + * The text area from which the token list came. + * @param x0 + * The initial x-pixel position of the old token list. + * @param tempToken + * A temporary token to use when creating the token list + * result. This may be null but callers can pass in + * a "buffer" token for performance if desired. + * @return Information about the "sub" token list. This will be * null if pos was not a valid offset * into the token list. * @see #getSubTokenList(Token, int, TabExpander, RSyntaxTextArea, float) */ - public static TokenSubList getSubTokenList(Token tokenList, int pos, - TabExpander e, - final RSyntaxTextArea textArea, - float x0, - TokenImpl tempToken) { - - if (tempToken==null) { + public static TokenSubList getSubTokenList(Token tokenList, int pos, TabExpander e, final RSyntaxTextArea textArea, float x0, + TokenImpl tempToken) { + if (tempToken == null) { tempToken = new TokenImpl(); } Token t = tokenList; - // Loop through the token list until you find the one that contains - // pos. Remember the cumulative width of all of these tokens. - while (t!=null && t.isPaintable() && !t.containsPosition(pos)) { + // pos. Remember the cumulative width of all of these tokens. + while (t != null && t.isPaintable() && !t.containsPosition(pos)) { x0 += t.getWidth(textArea, e, x0); t = t.getNextToken(); } - // Make the token that contains pos start at pos. - if (t!=null && t.isPaintable()) { - - if (t.getOffset()!=pos) { + if (t != null && t.isPaintable()) { + if (t.getOffset() != pos) { // Number of chars between p0 and token start. int difference = pos - t.getOffset(); - x0 += t.getWidthUpTo(t.length()-difference+1, textArea, e, x0); + x0 += t.getWidthUpTo(t.length() - difference + 1, textArea, e, x0); tempToken.copyFrom(t); tempToken.makeStartAt(pos); - return new TokenSubList(tempToken, x0); - - } - else { // t.getOffset()==pos + } else { // t.getOffset()==pos return new TokenSubList(t, x0); } - } - // This could be a null token, so we need to just return it. return new TokenSubList(tokenList, x0); - //return null; - + // return null; } - - + /** * A sub-list of tokens. */ @SuppressWarnings({ "checkstyle:visibilitymodifier" }) public static class TokenSubList { - + /** * The "sub" token list. */ public Token tokenList; - /** * The width, in pixels, of the part of the token list "removed from - * the front." This way, you know the x-offset of the "new" token list. + * the front." This way, you know the x-offset of the "new" token list. */ public float x; - + public TokenSubList(Token tokenList, float x) { this.tokenList = tokenList; this.x = x; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/URLFileLocation.java b/src/org/fife/ui/rsyntaxtextarea/URLFileLocation.java index 7e60ab6..2d78235 100644 --- a/src/org/fife/ui/rsyntaxtextarea/URLFileLocation.java +++ b/src/org/fife/ui/rsyntaxtextarea/URLFileLocation.java @@ -1,19 +1,16 @@ /* * 11/13/2008 - * * URLFileLocation.java - The location of a file at a (remote) URL. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.net.URL; - /** * The location of a file at a (remote) URL. * @@ -21,38 +18,35 @@ import java.net.URL; * @version 1.0 */ class URLFileLocation extends FileLocation { - + /** * URL of the remote file. */ private URL url; - /** * A prettied-up full path of the URL (password removed, etc.). */ private String fileFullPath; - /** * A prettied-up filename (leading slash, and possibly "%2F", * removed). */ private String fileName; - - + /** * Constructor. * - * @param url The URL of the file. + * @param url + * The URL of the file. */ URLFileLocation(URL url) { this.url = url; fileFullPath = createFileFullPath(); fileName = createFileName(); } - - + /** - * Creates a "prettied-up" URL to use. This will be stripped of + * Creates a "prettied-up" URL to use. This will be stripped of * sensitive information such as passwords. * * @return The full path to use. @@ -62,8 +56,7 @@ class URLFileLocation extends FileLocation { fullPath = fullPath.replaceFirst("://([^:]+)(?:.+)@", "://$1@"); return fullPath; } - - + /** * Creates the "prettied-up" filename to use. * @@ -73,28 +66,25 @@ class URLFileLocation extends FileLocation { String fileName = url.getPath(); if (fileName.startsWith("/%2F/")) { // Absolute path fileName = fileName.substring(4); - } - else if (fileName.startsWith("/")) { // All others + } else if (fileName.startsWith("/")) { // All others fileName = fileName.substring(1); } return fileName; } - - + /** * Returns the last time this file was modified, or * {@link TextEditorPane#LAST_MODIFIED_UNKNOWN} if this value cannot be * computed (such as for a remote file). * - * @return The last time this file was modified. This will always be + * @return The last time this file was modified. This will always be * {@link TextEditorPane#LAST_MODIFIED_UNKNOWN} for URL's. */ @Override protected long getActualLastModified() { return TextEditorPane.LAST_MODIFIED_UNKNOWN; } - - + /** * {@inheritDoc} */ @@ -102,8 +92,7 @@ class URLFileLocation extends FileLocation { public String getFileFullPath() { return fileFullPath; } - - + /** * {@inheritDoc} */ @@ -111,8 +100,7 @@ class URLFileLocation extends FileLocation { public String getFileName() { return fileName; } - - + /** * {@inheritDoc} */ @@ -120,8 +108,7 @@ class URLFileLocation extends FileLocation { protected InputStream getInputStream() throws IOException { return url.openStream(); } - - + /** * {@inheritDoc} */ @@ -129,8 +116,7 @@ class URLFileLocation extends FileLocation { protected OutputStream getOutputStream() throws IOException { return url.openConnection().getOutputStream(); } - - + /** * Returns whether this file location is a local file. * @@ -141,11 +127,10 @@ class URLFileLocation extends FileLocation { public boolean isLocal() { return "file".equalsIgnoreCase(url.getProtocol()); } - - + /** * Returns whether this file location is a local file and already - * exists. This method always returns false since we + * exists. This method always returns false since we * cannot check this value easily. * * @return false always. @@ -155,6 +140,4 @@ class URLFileLocation extends FileLocation { public boolean isLocalAndExists() { return false; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/VisibleWhitespaceTokenPainter.java b/src/org/fife/ui/rsyntaxtextarea/VisibleWhitespaceTokenPainter.java index b4bd32c..03c1e64 100644 --- a/src/org/fife/ui/rsyntaxtextarea/VisibleWhitespaceTokenPainter.java +++ b/src/org/fife/ui/rsyntaxtextarea/VisibleWhitespaceTokenPainter.java @@ -1,10 +1,8 @@ /* * 03/16/2013 - * * VisibleWhitespaceTokenPainter - Renders tokens in an instance of * RSyntaxTextArea, with special glyphs to denote spaces and tabs. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -12,174 +10,146 @@ package org.fife.ui.rsyntaxtextarea; import java.awt.Color; import java.awt.FontMetrics; import java.awt.Graphics2D; + import javax.swing.text.TabExpander; - /** - * A token painter that visibly renders whitespace (spaces and tabs).

+ * A token painter that visibly renders whitespace (spaces and tabs). + *

* * The current implementation paints as follows: *

    - *
  • The first tab or space, if any, is found in the token.
  • - *
  • If a tab was found, all characters up to it are painted as a - * group.
  • - *
  • If a space was found, all characters up to and including it are - * painted (it is painted with a special symbol to denote it as - * a space).
  • - *
  • If neither a tab nor a whitespace was found, all characters in the - * token are painted.
  • - *
  • Repeat until all characters are painted.
  • + *
  • The first tab or space, if any, is found in the token.
  • + *
  • If a tab was found, all characters up to it are painted as a + * group.
  • + *
  • If a space was found, all characters up to and including it are + * painted (it is painted with a special symbol to denote it as + * a space).
  • + *
  • If neither a tab nor a whitespace was found, all characters in the + * token are painted.
  • + *
  • Repeat until all characters are painted.
  • *
* This means that rendering hints are applied to all groups of characters - * within a token, excluding whitespace and tabs.

+ * within a token, excluding whitespace and tabs. + *

* * A problem with this implementation is that FontMetrics.charsWidth() is still - * used to calculate the width of a group of chars painted. Thus, the group of + * used to calculate the width of a group of chars painted. Thus, the group of * characters will be painted with the rendering hints specified, but the * following tab (or group of characters if the current group was the end of a * token) will not necessarily be painted at the proper x-coordinate (as * FontMetrics.charsWidth() returns an int and not a - * float). The way around this would be to calculate the token's + * float). The way around this would be to calculate the token's * width in such a way that a float is returned (Font.getStringBounds()?). * * @author Robert Futrell * @version 1.0 */ class VisibleWhitespaceTokenPainter extends DefaultTokenPainter { - - + /** * {@inheritDoc} */ @Override - protected float paintImpl(Token token, Graphics2D g, float x, float y, - RSyntaxTextArea host, TabExpander e, float clipStart, + protected float paintImpl(Token token, Graphics2D g, float x, float y, RSyntaxTextArea host, TabExpander e, float clipStart, boolean selected, boolean useSTC) { - - int origX = (int)x; + int origX = (int) x; int textOffs = token.getTextOffset(); char[] text = token.getTextArray(); int end = textOffs + token.length(); float nextX = x; int flushLen = 0; int flushIndex = textOffs; - Color fg = useSTC ? host.getSelectedTextColor() : - host.getForegroundForToken(token); + Color fg = useSTC ? host.getSelectedTextColor() : host.getForegroundForToken(token); Color bg = selected ? null : host.getBackgroundForToken(token); g.setFont(host.getFontForTokenType(token.getType())); FontMetrics fm = host.getFontMetricsForTokenType(token.getType()); - int ascent = fm.getAscent(); int height = fm.getHeight(); - - for (int i=textOffs; i 0) { - g.drawChars(text, flushIndex, flushLen, (int)x,(int)y); + g.drawChars(text, flushIndex, flushLen, (int) x, (int) y); flushLen = 0; } flushIndex = i + 1; - // Draw an arrow representing the tab. int halfHeight = height / 2; int quarterHeight = halfHeight / 2; - int ymid = (int)y - ascent + halfHeight; - g.drawLine((int)nextX,ymid, (int)nextNextX,ymid); - g.drawLine((int)nextNextX,ymid, (int)nextNextX-4,ymid-quarterHeight); - g.drawLine((int)nextNextX,ymid, (int)nextNextX-4,ymid+quarterHeight); - + int ymid = (int) y - ascent + halfHeight; + g.drawLine((int) nextX, ymid, (int) nextNextX, ymid); + g.drawLine((int) nextNextX, ymid, (int) nextNextX - 4, ymid - quarterHeight); + g.drawLine((int) nextNextX, ymid, (int) nextNextX - 4, ymid + quarterHeight); x = nextNextX; break; - case ' ': - - // NOTE: There is a little bit of a "fudge factor" + // NOTE: There is a little bit of a "fudge factor" // here when "smooth text" is enabled, as "width" // below may well not be the width given to the space // by fm.charsWidth() (it depends on how it places the // space with respect to the preceding character). // But, we assume the approximation is close enough for // our drawing a dot for the space. - // "flushLen+1" ensures text is aligned correctly (or, // aligned the same as in getWidth()). - nextX = x+fm.charsWidth(text, flushIndex,flushLen+1); + nextX = x + fm.charsWidth(text, flushIndex, flushLen + 1); int width = fm.charWidth(' '); - // Paint background. - if (bg!=null) { - paintBackground(x,y, nextX-x,height, g, - ascent, host, bg); + if (bg != null) { + paintBackground(x, y, nextX - x, height, g, ascent, host, bg); } g.setColor(fg); - // Paint chars before space. - if (flushLen>0) { - g.drawChars(text, flushIndex, flushLen, (int)x,(int)y); + if (flushLen > 0) { + g.drawChars(text, flushIndex, flushLen, (int) x, (int) y); flushLen = 0; } - // Paint a dot representing the space. - int dotX = (int)(nextX - width/2f); // "2.0f" for FindBugs - int dotY = (int)(y - ascent + height/2f); // Ditto + int dotX = (int) (nextX - width / 2f); // "2.0f" for + // FindBugs + int dotY = (int) (y - ascent + height / 2f); // Ditto g.drawLine(dotX, dotY, dotX, dotY); flushIndex = i + 1; x = nextX; break; - - case '\f': // ??? // fall-through for now. - default: flushLen += 1; break; - } } - - nextX = x+fm.charsWidth(text, flushIndex,flushLen); - - if (flushLen>0 && nextX>=clipStart) { - if (bg!=null) { - paintBackground(x,y, nextX-x,height, g, - ascent, host, bg); + nextX = x + fm.charsWidth(text, flushIndex, flushLen); + if (flushLen > 0 && nextX >= clipStart) { + if (bg != null) { + paintBackground(x, y, nextX - x, height, g, ascent, host, bg); } g.setColor(fg); - g.drawChars(text, flushIndex, flushLen, (int)x,(int)y); + g.drawChars(text, flushIndex, flushLen, (int) x, (int) y); } - if (host.getUnderlineForToken(token)) { g.setColor(fg); - int y2 = (int)(y+1); - g.drawLine(origX,y2, (int)nextX,y2); + int y2 = (int) (y + 1); + g.drawLine(origX, y2, (int) nextX, y2); } - // Don't check if it's whitespace - some TokenMakers may return types // other than Token.WHITESPACE for spaces (such as Token.IDENTIFIER). // This also allows us to paint tab lines for MLC's. - if (host.getPaintTabLines() && origX==host.getMargin().left) {// && isWhitespace()) { - paintTabLines(token, origX, (int)y, (int)nextX, g, e, host); + if (host.getPaintTabLines() && origX == host.getMargin().left) {// && + // isWhitespace()) + // { + paintTabLines(token, origX, (int) y, (int) nextX, g, e, host); } - return nextX; - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/WrappedSyntaxView.java b/src/org/fife/ui/rsyntaxtextarea/WrappedSyntaxView.java index 5fa8eeb..ed8a1ad 100644 --- a/src/org/fife/ui/rsyntaxtextarea/WrappedSyntaxView.java +++ b/src/org/fife/ui/rsyntaxtextarea/WrappedSyntaxView.java @@ -1,10 +1,8 @@ /* * 08/06/2004 - * * WrappedSyntaxView.java - Test implementation of WrappedSyntaxView that * is also aware of RSyntaxTextArea's different fonts per token type. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -38,30 +36,25 @@ import org.fife.ui.rsyntaxtextarea.folding.Fold; import org.fife.ui.rsyntaxtextarea.folding.FoldManager; import org.fife.ui.rtextarea.Gutter; - /** * The view used by {@link RSyntaxTextArea} when word wrap is enabled. * * @author Robert Futrell * @version 0.2 */ -public class WrappedSyntaxView extends BoxView implements TabExpander, - RSTAView { - +public class WrappedSyntaxView extends BoxView implements TabExpander, RSTAView { + private boolean widthChanging; - private int tabBase; - private int tabSize; - + private int tabBase; + private int tabSize; /** * This is reused to keep from allocating/deallocating. */ private Segment s, drawSeg; - /** * Another variable initialized once to keep from allocating/deallocating. */ private Rectangle tempRect; - /** * Cached for each paint() call so each drawView() call has access to it. */ @@ -69,24 +62,22 @@ public class WrappedSyntaxView extends BoxView implements TabExpander, private FontMetrics metrics; private TokenImpl tempToken; private TokenImpl lineCountTempToken; - -// /** -// * The end-of-line marker. -// */ -// private static final char[] eolMarker = { '.' }; - + // /** + // * The end-of-line marker. + // */ + // private static final char[] eolMarker = { '.' }; /** * The width of this view cannot be below this amount, as if the width * is ever 0 (really a bug), we'll go into an infinite loop. */ - private static final int MIN_WIDTH = 20; - - + private static final int MIN_WIDTH = 20; + /** - * Creates a new WrappedSyntaxView. Lines will be wrapped + * Creates a new WrappedSyntaxView. Lines will be wrapped * on character boundaries. * - * @param elem the element underlying the view + * @param elem + * the element underlying the view */ public WrappedSyntaxView(Element elem) { super(elem, Y_AXIS); @@ -96,88 +87,91 @@ public class WrappedSyntaxView extends BoxView implements TabExpander, tempRect = new Rectangle(); lineCountTempToken = new TokenImpl(); } - - - + /** * This is called by the nested wrapped line - * views to determine the break location. This can + * views to determine the break location. This can * be reimplemented to alter the breaking behavior. * It will either break at word or character boundaries * depending upon the break argument given at * construction. */ protected int calculateBreakPosition(int p0, Token tokenList, float x0) { -//System.err.println("------ beginning calculateBreakPosition() --------"); + // System.err.println("------ beginning calculateBreakPosition() + // --------"); int p = p0; - RSyntaxTextArea textArea = (RSyntaxTextArea)getContainer(); + RSyntaxTextArea textArea = (RSyntaxTextArea) getContainer(); float currentWidth = getWidth(); - if (currentWidth==Integer.MAX_VALUE) { + if (currentWidth == Integer.MAX_VALUE) { currentWidth = getPreferredSpan(X_AXIS); } // Make sure width>0; this is a huge hack to fix a bug where // loading text into an RTextArea before it is visible if word wrap // is enabled causes an infinite loop in calculateBreakPosition() - // because of the 0-width! We cannot simply check in setSize() + // because of the 0-width! We cannot simply check in setSize() // because the width is set to 0 somewhere else too somehow... currentWidth = Math.max(currentWidth, MIN_WIDTH); Token t = tokenList; - while (t!=null && t.isPaintable()) { -// FIXME: Replace the code below with the commented-out line below. This will -// allow long tokens to be broken at embedded spaces (such as MLC's). But it -// currently throws BadLocationExceptions sometimes... + while (t != null && t.isPaintable()) { + // FIXME: Replace the code below with the commented-out line below. + // This will + // allow long tokens to be broken at embedded spaces (such as + // MLC's). But it + // currently throws BadLocationExceptions sometimes... float tokenWidth = t.getWidth(textArea, this, x0); - if (tokenWidth>currentWidth) { + if (tokenWidth > currentWidth) { // If the current token alone is too long for this line, // break at a character boundary. - if (p==p0) { + if (p == p0) { return t.getOffsetBeforeX(textArea, this, 0, currentWidth); } // Return the first non-whitespace char (i.e., don't start // off the continuation of a wrapped line with whitespace). - return t.isWhitespace() ? p+t.length() : p; -//return getBreakLocation(t, fm, x0, currentWidth, this); + return t.isWhitespace() ? p + t.length() : p; + // return getBreakLocation(t, fm, x0, currentWidth, this); } currentWidth -= tokenWidth; x0 += tokenWidth; p += t.length(); -//System.err.println("*** *** *** token fit entirely (width==" + tokenWidth + "), adding " + t.textCount + " to p, now p==" + p); + // System.err.println("*** *** *** token fit entirely (width==" + + // tokenWidth + "), adding " + t.textCount + " to p, now p==" + p); t = t.getNextToken(); } -//System.err.println("... ... whole line fits; returning p==" + p); -//System.err.println("------ ending calculateBreakPosition() --------"); - -// return p; -return p + 1; + // System.err.println("... ... whole line fits; returning p==" + p); + // System.err.println("------ ending calculateBreakPosition() + // --------"); + // return p; + return p + 1; } - -//private int getBreakLocation(Token t, FontMetrics fm, int x0, int x, -// TabExpander e) { -// Segment s = new Segment(); -// s.array = t.text; -// s.offset = t.getTextOffset(); -// s.count = t.textCount; -// return t.offset + Utilities.getBreakLocation(s, fm, x0, x, e, t.offset); -//} - + + // private int getBreakLocation(Token t, FontMetrics fm, int x0, int x, + // TabExpander e) { + // Segment s = new Segment(); + // s.array = t.text; + // s.offset = t.getTextOffset(); + // s.count = t.textCount; + // return t.offset + Utilities.getBreakLocation(s, fm, x0, x, e, t.offset); + // } /** * Gives notification from the document that attributes were changed * in a location that this view is responsible for. * - * @param e the change information from the associated document - * @param a the current allocation of the view - * @param f the factory to use to rebuild if the view has children + * @param e + * the change information from the associated document + * @param a + * the current allocation of the view + * @param f + * the factory to use to rebuild if the view has children * @see View#changedUpdate */ @Override public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f) { updateChildren(e, a); } - - + /** * Sets the allocation rectangle for a given line's view, but sets the - * y value to the passed-in value. This should be used instead of + * y value to the passed-in value. This should be used instead of * {@link #childAllocation(int, Rectangle)} since it allows you to account * for hidden lines in collapsed fold regions. * @@ -190,302 +184,254 @@ return p + 1; alloc.y += y; alloc.width = getSpan(X_AXIS, line); alloc.height = getSpan(Y_AXIS, line); - - // FIXME: This is required due to a bug that I can't track down. The + // FIXME: This is required due to a bug that I can't track down. The // top margin is being added twice somewhere in wrapped views, so we // have to adjust for it here. Insets margin = host.getMargin(); - if (margin!=null) { + if (margin != null) { alloc.y -= margin.top; } - } - - + /** * Draws a single view (i.e., a line of text for a wrapped view), * wrapping the text onto multiple lines if necessary. * - * @param painter The painter to use to render tokens. - * @param g The graphics context in which to paint. - * @param r The rectangle in which to paint. - * @param view The View to paint. - * @param fontHeight The height of the font being used. - * @param y The y-coordinate at which to begin painting. + * @param painter + * The painter to use to render tokens. + * @param g + * The graphics context in which to paint. + * @param r + * The rectangle in which to paint. + * @param view + * The View to paint. + * @param fontHeight + * The height of the font being used. + * @param y + * The y-coordinate at which to begin painting. */ - protected void drawView(TokenPainter painter, Graphics2D g, Rectangle r, - View view, int fontHeight, int y, int line) { - + protected void drawView(TokenPainter painter, Graphics2D g, Rectangle r, View view, int fontHeight, int y, int line) { float x = r.x; - - LayeredHighlighter h = (LayeredHighlighter)host.getHighlighter(); - - RSyntaxDocument document = (RSyntaxDocument)getDocument(); + LayeredHighlighter h = (LayeredHighlighter) host.getHighlighter(); + RSyntaxDocument document = (RSyntaxDocument) getDocument(); Element map = getElement(); - int p0 = view.getStartOffset(); int lineNumber = map.getElementIndex(p0); int p1 = view.getEndOffset();// - 1; - - setSegment(p0,p1-1, document, drawSeg); - //System.err.println("drawSeg=='" + drawSeg + "' (p0/p1==" + p0 + "/" + p1 + ")"); + setSegment(p0, p1 - 1, document, drawSeg); + // System.err.println("drawSeg=='" + drawSeg + "' (p0/p1==" + p0 + "/" + + // p1 + ")"); int start = p0 - drawSeg.offset; Token token = document.getTokenListForLine(lineNumber); - // If this line is an empty line, then the token list is simply a - // null token. In this case, the line highlight will be skipped in + // null token. In this case, the line highlight will be skipped in // the loop below, so unfortunately we must manually do it here. - if (token!=null && token.getType()==Token.NULL) { - h.paintLayeredHighlights(g, p0,p1, r, host, this); + if (token != null && token.getType() == Token.NULL) { + h.paintLayeredHighlights(g, p0, p1, r, host, this); return; } - // Loop through all tokens in this view and paint them! - while (token!=null && token.isPaintable()) { - + while (token != null && token.isPaintable()) { int p = calculateBreakPosition(p0, token, x); x = r.x; - - h.paintLayeredHighlights(g, p0,p, r, host, this); - - while (token!=null && token.isPaintable() && token.getEndOffset()-1View to paint. - * @param fontHeight The height of the font being used. - * @param y The y-coordinate at which to begin painting. - * @param selStart The start of the selection. - * @param selEnd The end of the selection. + * @param painter + * The painter to use to render tokens. + * @param g + * The graphics context in which to paint. + * @param r + * The rectangle in which to paint. + * @param view + * The View to paint. + * @param fontHeight + * The height of the font being used. + * @param y + * The y-coordinate at which to begin painting. + * @param selStart + * The start of the selection. + * @param selEnd + * The end of the selection. */ - protected void drawViewWithSelection(TokenPainter painter, Graphics2D g, - Rectangle r, View view, int fontHeight, int y, int selStart, - int selEnd) { - + protected void drawViewWithSelection(TokenPainter painter, Graphics2D g, Rectangle r, View view, int fontHeight, int y, int selStart, + int selEnd) { float x = r.x; boolean useSTC = host.getUseSelectedTextColor(); - - LayeredHighlighter h = (LayeredHighlighter)host.getHighlighter(); - - RSyntaxDocument document = (RSyntaxDocument)getDocument(); + LayeredHighlighter h = (LayeredHighlighter) host.getHighlighter(); + RSyntaxDocument document = (RSyntaxDocument) getDocument(); Element map = getElement(); - int p0 = view.getStartOffset(); int lineNumber = map.getElementIndex(p0); int p1 = view.getEndOffset();// - 1; - - setSegment(p0,p1-1, document, drawSeg); - //System.err.println("drawSeg=='" + drawSeg + "' (p0/p1==" + p0 + "/" + p1 + ")"); + setSegment(p0, p1 - 1, document, drawSeg); + // System.err.println("drawSeg=='" + drawSeg + "' (p0/p1==" + p0 + "/" + + // p1 + ")"); int start = p0 - drawSeg.offset; Token token = document.getTokenListForLine(lineNumber); - // If this line is an empty line, then the token list is simply a - // null token. In this case, the line highlight will be skipped in + // null token. In this case, the line highlight will be skipped in // the loop below, so unfortunately we must manually do it here. - if (token!=null && token.getType()==Token.NULL) { - h.paintLayeredHighlights(g, p0,p1, r, host, this); + if (token != null && token.getType() == Token.NULL) { + h.paintLayeredHighlights(g, p0, p1, r, host, this); return; } - // Loop through all tokens in this view and paint them! - while (token!=null && token.isPaintable()) { - + while (token != null && token.isPaintable()) { int p = calculateBreakPosition(p0, token, x); x = r.x; - - h.paintLayeredHighlights(g, p0,p, r, host, this); - - while (token!=null && token.isPaintable() && token.getEndOffset()-1token.getOffset()) { + if (selStart > token.getOffset()) { tempToken.copyFrom(token); tempToken.textCount = selStart - tempToken.getOffset(); - x = painter.paint(tempToken,g,x,y,host, this); + x = painter.paint(tempToken, g, x, y, host, this); tempToken.textCount = token.length(); tempToken.makeStartAt(selStart); // Clone required since token and tempToken must be // different tokens for else statement below token = new TokenImpl(tempToken); } - - int selCount = Math.min(token.length(), selEnd-token.getOffset()); - if (selCount==token.length()) { - x = painter.paintSelected(token, g, x,y, host, this, - useSTC); - } - else { + int selCount = Math.min(token.length(), selEnd - token.getOffset()); + if (selCount == token.length()) { + x = painter.paintSelected(token, g, x, y, host, this, useSTC); + } else { tempToken.copyFrom(token); tempToken.textCount = selCount; - x = painter.paintSelected(tempToken, g, x,y, host, this, - useSTC); + x = painter.paintSelected(tempToken, g, x, y, host, this, useSTC); tempToken.textCount = token.length(); tempToken.makeStartAt(token.getOffset() + selCount); token = tempToken; - x = painter.paint(token, g, x,y, host, this); + x = painter.paint(token, g, x, y, host, this); } - } - // Selection ends in this token else if (token.containsPosition(selEnd)) { tempToken.copyFrom(token); tempToken.textCount = selEnd - tempToken.getOffset(); - x = painter.paintSelected(tempToken, g, x,y, host, this, - useSTC); + x = painter.paintSelected(tempToken, g, x, y, host, this, useSTC); tempToken.textCount = token.length(); tempToken.makeStartAt(selEnd); token = tempToken; - x = painter.paint(token, g, x,y, host, this); + x = painter.paint(token, g, x, y, host, this); } - // This token is entirely selected - else if (token.getOffset()>=selStart && - token.getEndOffset()<=selEnd) { - x = painter.paintSelected(token, g, x,y, host, this,useSTC); + else if (token.getOffset() >= selStart && token.getEndOffset() <= selEnd) { + x = painter.paintSelected(token, g, x, y, host, this, useSTC); } - // This token is entirely unselected else { - x = painter.paint(token, g, x,y, host, this); + x = painter.paint(token, g, x, y, host, this); } - token = token.getNextToken(); - } - // If there's a token that's going to be split onto the next line - if (token!=null && token.isPaintable() && token.getOffset()token.getOffset()) { + if (selStart > token.getOffset()) { tempToken.copyFrom(token); tempToken.textCount = selStart - tempToken.getOffset(); - x = painter.paint(tempToken,g,x,y,host, this); + x = painter.paint(tempToken, g, x, y, host, this); tempToken.textCount = token.length(); tempToken.makeStartAt(selStart); // Clone required since token and tempToken must be // different tokens for else statement below token = new TokenImpl(tempToken); } - - int selCount = Math.min(token.length(), selEnd-token.getOffset()); - if (selCount==token.length()) { - x = painter.paintSelected(token, g, x,y, host, this, - useSTC); - } - else { + int selCount = Math.min(token.length(), selEnd - token.getOffset()); + if (selCount == token.length()) { + x = painter.paintSelected(token, g, x, y, host, this, useSTC); + } else { tempToken.copyFrom(token); tempToken.textCount = selCount; - x = painter.paintSelected(tempToken, g, x,y, host, - this, useSTC); + x = painter.paintSelected(tempToken, g, x, y, host, this, useSTC); tempToken.textCount = token.length(); tempToken.makeStartAt(token.getOffset() + selCount); token = tempToken; - x = painter.paint(token, g, x,y, host, this); + x = painter.paint(token, g, x, y, host, this); } - } - // Selection ends in this token else if (token.containsPosition(selEnd)) { tempToken.copyFrom(token); tempToken.textCount = selEnd - tempToken.getOffset(); - x = painter.paintSelected(tempToken, g, x,y, host, this, - useSTC); + x = painter.paintSelected(tempToken, g, x, y, host, this, useSTC); tempToken.textCount = token.length(); tempToken.makeStartAt(selEnd); token = tempToken; - x = painter.paint(token, g, x,y, host, this); + x = painter.paint(token, g, x, y, host, this); } - // This token is entirely selected - else if (token.getOffset()>=selStart && - token.getEndOffset()<=selEnd) { - x = painter.paintSelected(token, g, x,y, host, this,useSTC); + else if (token.getOffset() >= selStart && token.getEndOffset() <= selEnd) { + x = painter.paintSelected(token, g, x, y, host, this, useSTC); } - // This token is entirely unselected else { - x = painter.paint(token, g, x,y, host, this); + x = painter.paint(token, g, x, y, host, this); } - token = new TokenImpl(orig); - ((TokenImpl)token).makeStartAt(p); - + ((TokenImpl) token).makeStartAt(p); } - - p0 = (p==p0) ? p1 : p; + p0 = (p == p0) ? p1 : p; y += fontHeight; - } // End of while (token!=null && token.isPaintable()). - - // NOTE: We should re-use code from Token (paintBackground()) here, - // but don't because I'm just too lazy. + // NOTE: We should re-use code from Token (paintBackground()) here, + // but don't because I'm just too lazy. if (host.getEOLMarkersVisible()) { g.setColor(host.getForegroundForTokenType(Token.WHITESPACE)); g.setFont(host.getFontForTokenType(Token.WHITESPACE)); - g.drawString("\u00B6", x, (float) y-fontHeight); + g.drawString("\u00B6", x, (float) y - fontHeight); } - } - - + /** - * Fetches the allocation for the given child view.

+ * Fetches the allocation for the given child view. + *

* Overridden to account for code folding. * - * @param index The index of the child, >= 0 &&< getViewCount(). - * @param a The allocation to this view + * @param index + * The index of the child, >= 0 &&< getViewCount(). + * @param a + * The allocation to this view * @return The allocation to the child; or null if * a is null; or null if the * layout is invalid @@ -496,8 +442,7 @@ return p + 1; Shape ca = getChildAllocationImpl(index, a); if ((ca != null) && (!isAllocationValid())) { // The child allocation may not have been set yet. - Rectangle r = (ca instanceof Rectangle) ? (Rectangle) ca : ca - .getBounds(); + Rectangle r = (ca instanceof Rectangle) ? (Rectangle) ca : ca.getBounds(); if ((r.width == 0) && (r.height == 0)) { return null; } @@ -506,122 +451,120 @@ return p + 1; } return null; } - + /** - * Fetches the allocation for the given child view to render into.

+ * Fetches the allocation for the given child view to render into. + *

* Overridden to account for lines hidden by collapsed folded regions. * - * @param line The index of the child, >= 0 &&< getViewCount() - * @param a The allocation to this view + * @param line + * The index of the child, >= 0 &&< getViewCount() + * @param a + * The allocation to this view * @return The allocation to the child */ public Shape getChildAllocationImpl(int line, Shape a) { - Rectangle alloc = getInsideAllocation(a); - host = (RSyntaxTextArea)getContainer(); + host = (RSyntaxTextArea) getContainer(); FoldManager fm = host.getFoldManager(); int y = alloc.y; - // TODO: Make cached getOffset() calls for Y_AXIS valid even for // folding, to speed this up! - for (int i=0; isetParent method. * Subclasses can re-implement this to initialize their - * child views in a different manner. The default + * child views in a different manner. The default * implementation creates a child view for each * child element. * - * @param f the view factory + * @param f + * the view factory */ @Override protected void loadChildren(ViewFactory f) { @@ -721,36 +658,30 @@ return p + 1; replace(0, 0, added); } } - - + @Override - public Shape modelToView(int pos, Shape a, Position.Bias b) - throws BadLocationException { - - if (! isAllocationValid()) { + public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException { + if (!isAllocationValid()) { Rectangle alloc = a.getBounds(); setSize(alloc.width, alloc.height); } - boolean isBackward = (b == Position.Bias.Backward); int testPos = (isBackward) ? Math.max(0, pos - 1) : pos; - if(isBackward && testPos < getStartOffset()) { + if (isBackward && testPos < getStartOffset()) { return null; } - int vIndex = getViewIndexAtPosition(testPos); if ((vIndex != -1) && (vIndex < getViewCount())) { View v = getView(vIndex); - if(v != null && testPos >= v.getStartOffset() && - testPos < v.getEndOffset()) { + if (v != null && testPos >= v.getStartOffset() && testPos < v.getEndOffset()) { Shape childShape = getChildAllocation(vIndex, a); if (childShape == null) { // We are likely invalid, fail. return null; } Shape retShape = v.modelToView(pos, childShape, b); - if(retShape == null && v.getEndOffset() == pos) { - if(++vIndex < getViewCount()) { + if (retShape == null && v.getEndOffset() == pos) { + if (++vIndex < getViewCount()) { v = getView(vIndex); retShape = v.modelToView(pos, getChildAllocation(vIndex, a), b); } @@ -758,55 +689,57 @@ return p + 1; return retShape; } } - throw new BadLocationException("Position not represented by view", pos); - } - - + /** * Provides a mapping, for a given region, from the document model * coordinate space to the view coordinate space. The specified region is - * created as a union of the first and last character positions.

+ * created as a union of the first and last character positions. + *

* * This is implemented to subtract the width of the second character, as * this view's modelToView actually returns the width of the * character instead of "1" or "0" like the View implementations in - * javax.swing.text. Thus, if we don't override this method, + * javax.swing.text. Thus, if we don't override this method, * the View implementation will return one character's width * too much for its consumers (implementations of * javax.swing.text.Highlighter). * - * @param p0 the position of the first character (>=0) - * @param b0 The bias of the first character position, toward the previous - * character or the next character represented by the offset, in - * case the position is a boundary of two views; b0 - * will have one of these values: - *

    - *
  • Position.Bias.Forward - *
  • Position.Bias.Backward - *
- * @param p1 the position of the last character (>=0) - * @param b1 the bias for the second character position, defined - * one of the legal values shown above - * @param a the area of the view, which encompasses the requested region + * @param p0 + * the position of the first character (>=0) + * @param b0 + * The bias of the first character position, toward the previous + * character or the next character represented by the offset, in + * case the position is a boundary of two views; b0 + * will have one of these values: + *
    + *
  • Position.Bias.Forward + *
  • Position.Bias.Backward + *
+ * @param p1 + * the position of the last character (>=0) + * @param b1 + * the bias for the second character position, defined + * one of the legal values shown above + * @param a + * the area of the view, which encompasses the requested region * @return the bounding box which is a union of the region specified - * by the first and last character positions - * @exception BadLocationException if the given position does - * not represent a valid location in the associated document - * @exception IllegalArgumentException if b0 or - * b1 are not one of the - * legal Position.Bias values listed above + * by the first and last character positions + * @exception BadLocationException + * if the given position does + * not represent a valid location in the associated document + * @exception IllegalArgumentException + * if b0 or + * b1 are not one of the + * legal Position.Bias values listed above * @see View#viewToModel */ @Override - public Shape modelToView(int p0, Position.Bias b0, - int p1, Position.Bias b1, - Shape a) throws BadLocationException { - + public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException { Shape s0 = modelToView(p0, a, b0); Shape s1; - if (p1 ==getEndOffset()) { + if (p1 == getEndOffset()) { try { s1 = modelToView(p1, a, b1); } catch (BadLocationException ble) { @@ -814,50 +747,44 @@ return p + 1; } if (s1 == null) { // Assume extends left to right. - Rectangle alloc = (a instanceof Rectangle) ? (Rectangle)a : - a.getBounds(); - s1 = new Rectangle(alloc.x + alloc.width - 1, alloc.y, - 1, alloc.height); + Rectangle alloc = (a instanceof Rectangle) ? (Rectangle) a : a.getBounds(); + s1 = new Rectangle(alloc.x + alloc.width - 1, alloc.y, 1, alloc.height); } - } - else { + } else { s1 = modelToView(p1, a, b1); } Rectangle r0 = s0.getBounds(); - Rectangle r1 = (s1 instanceof Rectangle) ? (Rectangle) s1 : - s1.getBounds(); + Rectangle r1 = (s1 instanceof Rectangle) ? (Rectangle) s1 : s1.getBounds(); if (r0.y != r1.y) { // If it spans lines, force it to be the width of the view. - Rectangle alloc = (a instanceof Rectangle) ? (Rectangle)a : - a.getBounds(); + Rectangle alloc = (a instanceof Rectangle) ? (Rectangle) a : a.getBounds(); r0.x = alloc.x; r0.width = alloc.width; } - r0.add(r1); // The next line is the only difference between this method and - // View's implementation. We're subtracting the width of the second - // character. This is because this method is used by Highlighter + // View's implementation. We're subtracting the width of the second + // character. This is because this method is used by Highlighter // implementations to get the area to "highlight", and if we don't do // this, one character too many is highlighted thanks to our // modelToView() implementation returning the actual width of the // character requested! - if (p1>p0) { + if (p1 > p0) { r0.width -= r1.width; } return r0; - } - - + /** * Returns the next tab stop position after a given reference position. * This implementation does not support things like centering so it * ignores the tabOffset argument. * - * @param x the current position >= 0 - * @param tabOffset the position within the text stream - * that the tab occurred at >= 0. + * @param x + * the current position >= 0 + * @param tabOffset + * the position within the text stream + * that the tab occurred at >= 0. * @return the tab stop, measured in points >= 0 */ @Override @@ -868,134 +795,124 @@ return p + 1; int ntabs = ((int) x - tabBase) / tabSize; return tabBase + ((ntabs + 1f) * tabSize); } - - + /** * Paints the word-wrapped text. * - * @param g The graphics context in which to paint. - * @param a The shape (usually a rectangle) in which to paint. + * @param g + * The graphics context in which to paint. + * @param a + * The shape (usually a rectangle) in which to paint. */ @Override public void paint(Graphics g, Shape a) { - - Rectangle alloc = (a instanceof Rectangle) ? - (Rectangle)a : a.getBounds(); + Rectangle alloc = (a instanceof Rectangle) ? (Rectangle) a : a.getBounds(); tabBase = alloc.x; - - Graphics2D g2d = (Graphics2D)g; - host = (RSyntaxTextArea)getContainer(); + Graphics2D g2d = (Graphics2D) g; + host = (RSyntaxTextArea) getContainer(); int ascent = host.getMaxAscent(); int fontHeight = host.getLineHeight(); FoldManager fm = host.getFoldManager(); TokenPainter painter = host.getTokenPainter(); Element root = getElement(); - // Whether token styles should always be painted, even in selections int selStart = host.getSelectionStart(); int selEnd = host.getSelectionEnd(); - - int n = getViewCount(); // Number of lines. + int n = getViewCount(); // Number of lines. int x = alloc.x + getLeftInset(); tempRect.y = alloc.y + getTopInset(); Rectangle clip = g.getClipBounds(); for (int i = 0; i < n; i++) { - tempRect.x = x + getOffset(X_AXIS, i); - //tempRect.y = y + getOffset(Y_AXIS, i); + // tempRect.y = y + getOffset(Y_AXIS, i); tempRect.width = getSpan(X_AXIS, i); tempRect.height = getSpan(Y_AXIS, i); - //System.err.println("For line " + i + ": tempRect==" + tempRect); - + // System.err.println("For line " + i + ": tempRect==" + tempRect); if (tempRect.intersects(clip)) { Element lineElement = root.getElement(i); int startOffset = lineElement.getStartOffset(); - int endOffset = lineElement.getEndOffset()-1; // Why always "-1"? + int endOffset = lineElement.getEndOffset() - 1; // Why always + // "-1"? View view = getView(i); - if (selStart==selEnd || startOffset>=selEnd || - endOffset= selEnd || endOffset < selStart) { + drawView(painter, g2d, alloc, view, fontHeight, tempRect.y + ascent, i); + } else { + // System.out.println("Drawing line with selection: " + i); + drawViewWithSelection(painter, g2d, alloc, view, fontHeight, tempRect.y + ascent, selStart, selEnd); } } - tempRect.y += tempRect.height; - Fold possibleFold = fm.getFoldForLine(i); - if (possibleFold!=null && possibleFold.isCollapsed()) { + if (possibleFold != null && possibleFold.isCollapsed()) { i += possibleFold.getCollapsedLineCount(); // Visible indicator of collapsed lines Color c = RSyntaxUtilities.getFoldedLineBottomColor(host); - if (c!=null) { + if (c != null) { g.setColor(c); - g.drawLine(x,tempRect.y-1, host.getWidth(),tempRect.y-1); + g.drawLine(x, tempRect.y - 1, host.getWidth(), tempRect.y - 1); } } - } - } - - + /** * Gives notification that something was removed from the * document in a location that this view is responsible for. * This is implemented to simply update the children. * - * @param changes The change information from the associated document. - * @param a the current allocation of the view - * @param f the factory to use to rebuild if the view has children + * @param changes + * The change information from the associated document. + * @param a + * the current allocation of the view + * @param f + * the factory to use to rebuild if the view has children * @see View#removeUpdate */ @Override public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f) { - updateChildren(changes, a); - - Rectangle alloc = ((a != null) && isAllocationValid()) ? - getInsideAllocation(a) : null; + Rectangle alloc = ((a != null) && isAllocationValid()) ? getInsideAllocation(a) : null; int pos = changes.getOffset(); View v = getViewAtPosition(pos, alloc); if (v != null) { v.removeUpdate(changes, alloc, f); } - } - - + /** * Makes a Segment point to the text in our - * document between the given positions. Note that the positions MUST be + * document between the given positions. Note that the positions MUST be * valid positions in the document. * - * @param p0 The first position in the document. - * @param p1 The second position in the document. - * @param document The document from which you want to get the text. - * @param seg The segment in which to load the text. + * @param p0 + * The first position in the document. + * @param p1 + * The second position in the document. + * @param document + * The document from which you want to get the text. + * @param seg + * The segment in which to load the text. */ - private void setSegment(int p0, int p1, Document document, - Segment seg) { + private void setSegment(int p0, int p1, Document document, Segment seg) { try { -//System.err.println("... in setSharedSegment, p0/p1==" + p0 + "/" + p1); - document.getText(p0, p1-p0, seg); - //System.err.println("... in setSharedSegment: s=='" + s + "'; line/numLines==" + line + "/" + numLines); + // System.err.println("... in setSharedSegment, p0/p1==" + p0 + "/" + // + p1); + document.getText(p0, p1 - p0, seg); + // System.err.println("... in setSharedSegment: s=='" + s + "'; + // line/numLines==" + line + "/" + numLines); } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); } } - - + /** - * Sets the size of the view. This should cause layout of the view along + * Sets the size of the view. This should cause layout of the view along * the given axis, if it has any layout duties. * - * @param width the width >= 0 - * @param height the height >= 0 + * @param width + * the width >= 0 + * @param height + * the height >= 0 */ @Override public void setSize(float width, float height) { @@ -1009,113 +926,92 @@ return p + 1; super.setSize(width, height); widthChanging = false; } - - + /** * Update the child views in response to a * document event. */ void updateChildren(DocumentEvent e, Shape a) { - Element elem = getElement(); DocumentEvent.ElementChange ec = e.getChange(elem); - // This occurs when syntax highlighting only changes on lines // (i.e. beginning a multiline comment). - if (e.getType()==DocumentEvent.EventType.CHANGE) { - //System.err.println("Updating the damage due to a CHANGE event..."); - // FIXME: Make me repaint more intelligently. + if (e.getType() == DocumentEvent.EventType.CHANGE) { + // System.err.println("Updating the damage due to a CHANGE + // event..."); + // FIXME: Make me repaint more intelligently. getContainer().repaint(); - //damageLineRange(startLine,endLine, a, host); - } - - else if (ec != null) { - + // damageLineRange(startLine,endLine, a, host); + } else if (ec != null) { // the structure of this element changed. Element[] removedElems = ec.getChildrenRemoved(); Element[] addedElems = ec.getChildrenAdded(); View[] added = new View[addedElems.length]; - for (int i = 0; i < addedElems.length; i++) { added[i] = new WrappedLine(addedElems[i]); } - //System.err.println("Replacing " + removedElems.length + + // System.err.println("Replacing " + removedElems.length + // " children with " + addedElems.length); replace(ec.getIndex(), removedElems.length, added); - // should damge a little more intelligently. if (a != null) { preferenceChanged(null, true, true); getContainer().repaint(); } - } - // update font metrics which may be used by the child views updateMetrics(); - } - - + final void updateMetrics() { Component host = getContainer(); Font f = host.getFont(); metrics = host.getFontMetrics(f); // Metrics for the default font. tabSize = getTabSize() * metrics.charWidth('m'); } - - + @Override public int viewToModel(float x, float y, Shape a, Position.Bias[] bias) { - int offs = -1; - - if (! isAllocationValid()) { + if (!isAllocationValid()) { Rectangle alloc = a.getBounds(); setSize(alloc.width, alloc.height); } - // Get the child view for the line at (x,y), and ask it for the // specific offset. Rectangle alloc = getInsideAllocation(a); View v = getViewAtPoint((int) x, (int) y, alloc); if (v != null) { offs = v.viewToModel(x, y, alloc, bias); - - // Code folding may have hidden the last line. If so, return the last - // visible offset instead of the last offset. - if (host.isCodeFoldingEnabled() && v == getView(getViewCount() - 1) && - offs == v.getEndOffset() - 1) { - offs = host.getLastVisibleOffset(); - } - } + // Code folding may have hidden the last line. If so, return the + // last + // visible offset instead of the last offset. + if (host.isCodeFoldingEnabled() && v == getView(getViewCount() - 1) && offs == v.getEndOffset() - 1) { + offs = host.getLastVisibleOffset(); + } + } return offs; - } - - + /** * {@inheritDoc} */ @Override public int yForLine(Rectangle alloc, int line) throws BadLocationException { - return yForLineContaining(alloc, - getElement().getElement(line).getStartOffset()); -//return alloc.y + getOffset(Y_AXIS, line); + return yForLineContaining(alloc, getElement().getElement(line).getStartOffset()); + // return alloc.y + getOffset(Y_AXIS, line); } - - + /** * {@inheritDoc} */ @Override - public int yForLineContaining(Rectangle alloc, int offs) - throws BadLocationException { + public int yForLineContaining(Rectangle alloc, int offs) throws BadLocationException { if (isAllocationValid()) { // TODO: make cached Y_AXIS offsets valid even with folding enabled // to speed this back up! - Rectangle r = (Rectangle)modelToView(offs, alloc, Bias.Forward); - if (r!=null) { + Rectangle r = (Rectangle) modelToView(offs, alloc, Bias.Forward); + if (r != null) { if (host.isCodeFoldingEnabled()) { int line = host.getLineOfOffset(offs); FoldManager fm = host.getFoldManager(); @@ -1128,8 +1024,7 @@ return p + 1; } return -1; } - - + /** * Simple view of a line that wraps if it doesn't * fit within the horizontal space allocated. @@ -1138,73 +1033,71 @@ return p + 1; * with it's siblings. */ class WrappedLine extends View { - + private int nlines; - + WrappedLine(Element elem) { super(elem); } - + /** * Calculate the number of lines that will be rendered * by logical line when it is wrapped. */ final int calculateLineCount() { - int nlines = 0; int startOffset = getStartOffset(); int p1 = getEndOffset(); - // Get the token list for this line so we don't have to keep // recomputing it if this logical line spans multiple physical // lines. - RSyntaxTextArea textArea = (RSyntaxTextArea)getContainer(); - RSyntaxDocument doc = (RSyntaxDocument)getDocument(); + RSyntaxTextArea textArea = (RSyntaxTextArea) getContainer(); + RSyntaxDocument doc = (RSyntaxDocument) getDocument(); Element map = doc.getDefaultRootElement(); int line = map.getElementIndex(startOffset); Token tokenList = doc.getTokenListForLine(line); - float x0 = 0;// FIXME: should be alloc.x!! alloc.x;//0; - - -//System.err.println(">>> calculateLineCount: " + startOffset + "-" + p1); - for (int p0=startOffset; p0>> calculateLineCount: " + startOffset + "-" + // + p1); + for (int p0 = startOffset; p0 < p1;) { + // System.err.println("... ... " + p0 + ", " + p1); nlines += 1; - TokenSubList subList = TokenUtils.getSubTokenList(tokenList, p0, - WrappedSyntaxView.this, textArea, x0, lineCountTempToken); - x0 = subList!=null ? subList.x : x0; - tokenList = subList!=null ? subList.tokenList : null; + TokenSubList subList = TokenUtils.getSubTokenList(tokenList, p0, WrappedSyntaxView.this, textArea, x0, lineCountTempToken); + x0 = subList != null ? subList.x : x0; + tokenList = subList != null ? subList.tokenList : null; int p = calculateBreakPosition(p0, tokenList, x0); - -//System.err.println("... ... ... break position p==" + p); + // System.err.println("... ... ... break position p==" + p); p0 = (p == p0) ? ++p : p; // this is the fix of #4410243 - // we check on situation when - // width is too small and - // break position is calculated - // incorrectly. -//System.err.println("... ... ... new p0==" + p0); + // we check on situation when + // width is too small and + // break position is calculated + // incorrectly. + // System.err.println("... ... ... new p0==" + p0); } -/* -int numLines = 0; -try { - numLines = textArea.getLineCount(); -} catch (BadLocationException ble) { - ble.printStackTrace(); -} -System.err.println(">>> >>> calculated number of lines for this view (line " + line + "/" + numLines + ": " + nlines); -*/ + /* + * int numLines = 0; + * try { + * numLines = textArea.getLineCount(); + * } catch (BadLocationException ble) { + * ble.printStackTrace(); + * } + * System.err. + * println(">>> >>> calculated number of lines for this view (line " + * + line + "/" + numLines + ": " + nlines); + */ return nlines; } - + /** * Determines the preferred span for this view along an * axis. * - * @param axis may be either X_AXIS or Y_AXIS - * @return the span the view would like to be rendered into. - * Typically the view is told to render into the span - * that is returned, although there is no guarantee. - * The parent may choose to resize or break the view. + * @param axis + * may be either X_AXIS or Y_AXIS + * @return the span the view would like to be rendered into. + * Typically the view is told to render into the span + * that is returned, although there is no guarantee. + * The parent may choose to resize or break the view. * @see View#getPreferredSpan */ @Override @@ -1222,141 +1115,126 @@ System.err.println(">>> >>> calculated number of lines for this view (line " + l if (nlines == 0 || widthChanging) { nlines = calculateLineCount(); } - int h = nlines * ((RSyntaxTextArea)getContainer()).getLineHeight(); + int h = nlines * ((RSyntaxTextArea) getContainer()).getLineHeight(); return h; default: throw new IllegalArgumentException("Invalid axis: " + axis); } } - + /** * Renders using the given rendering surface and area on that - * surface. The view may need to do layout and create child + * surface. The view may need to do layout and create child * views to enable itself to render into the given allocation. * - * @param g the rendering surface to use - * @param a the allocated region to render into + * @param g + * the rendering surface to use + * @param a + * the allocated region to render into * @see View#paint */ @Override public void paint(Graphics g, Shape a) { // This is done by drawView() above. } - + /** * Provides a mapping from the document model coordinate space * to the coordinate space of the view mapped to it. * - * @param pos the position to convert - * @param a the allocated region to render into + * @param pos + * the position to convert + * @param a + * the allocated region to render into * @return the bounding box of the given position is returned - * @exception BadLocationException if the given position does not - * represent a valid location in the associated document. + * @exception BadLocationException + * if the given position does not + * represent a valid location in the associated document. */ @Override - public Shape modelToView(int pos, Shape a, Position.Bias b) - throws BadLocationException { - - //System.err.println("--- begin modelToView ---"); + public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException { + // System.err.println("--- begin modelToView ---"); Rectangle alloc = a.getBounds(); - RSyntaxTextArea textArea = (RSyntaxTextArea)getContainer(); - alloc.height = textArea.getLineHeight();//metrics.getHeight(); + RSyntaxTextArea textArea = (RSyntaxTextArea) getContainer(); + alloc.height = textArea.getLineHeight();// metrics.getHeight(); alloc.width = 1; int p0 = getStartOffset(); int p1 = getEndOffset(); - int testP = (b == Position.Bias.Forward) ? pos : - Math.max(p0, pos - 1); - + int testP = (b == Position.Bias.Forward) ? pos : Math.max(p0, pos - 1); // Get the token list for this line so we don't have to keep // recomputing it if this logical line spans multiple physical // lines. - RSyntaxDocument doc = (RSyntaxDocument)getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) getDocument(); Element map = doc.getDefaultRootElement(); int line = map.getElementIndex(p0); Token tokenList = doc.getTokenListForLine(line); - float x0 = alloc.x;//0; - + float x0 = alloc.x;// 0; while (p0 < p1) { - TokenSubList subList = TokenUtils.getSubTokenList(tokenList, p0, - WrappedSyntaxView.this, textArea, x0, lineCountTempToken); - x0 = subList!=null ? subList.x : x0; - tokenList = subList!=null ? subList.tokenList : null; + TokenSubList subList = TokenUtils.getSubTokenList(tokenList, p0, WrappedSyntaxView.this, textArea, x0, lineCountTempToken); + x0 = subList != null ? subList.x : x0; + tokenList = subList != null ? subList.tokenList : null; int p = calculateBreakPosition(p0, tokenList, x0); - if ((pos >= p0) && (testP= p0) && (testP < p)) {// pos < p)) { // it's in this line - alloc = RSyntaxUtilities.getLineWidthUpTo( - textArea, s, p0, pos, - WrappedSyntaxView.this, - alloc, alloc.x); - //System.err.println("--- end modelToView ---"); + alloc = RSyntaxUtilities.getLineWidthUpTo(textArea, s, p0, pos, WrappedSyntaxView.this, alloc, alloc.x); + // System.err.println("--- end modelToView ---"); return alloc; } - //if (p == p1 && pos == p1) { - if (p==p1-1 && pos==p1-1) { + // if (p == p1 && pos == p1) { + if (p == p1 - 1 && pos == p1 - 1) { // Wants end. if (pos > p0) { - alloc = RSyntaxUtilities.getLineWidthUpTo( - textArea, s, p0, pos, - WrappedSyntaxView.this, - alloc, alloc.x); + alloc = RSyntaxUtilities.getLineWidthUpTo(textArea, s, p0, pos, WrappedSyntaxView.this, alloc, alloc.x); } - //System.err.println("--- end modelToView ---"); + // System.err.println("--- end modelToView ---"); return alloc; } - p0 = (p == p0) ? p1 : p; - //System.err.println("... ... Incrementing y"); + // System.err.println("... ... Incrementing y"); alloc.y += alloc.height; - } - throw new BadLocationException(null, pos); - } - + /** * Provides a mapping from the view coordinate space to the logical * coordinate space of the model. * - * @param fx the X coordinate - * @param fy the Y coordinate - * @param a the allocated region to render into + * @param fx + * the X coordinate + * @param fy + * the Y coordinate + * @param a + * the allocated region to render into * @return the location within the model that best represents the - * given point in the view + * given point in the view * @see View#viewToModel */ @Override public int viewToModel(float fx, float fy, Shape a, Position.Bias[] bias) { - // PENDING(prinz) implement bias properly bias[0] = Position.Bias.Forward; - Rectangle alloc = (Rectangle) a; - RSyntaxDocument doc = (RSyntaxDocument)getDocument(); + RSyntaxDocument doc = (RSyntaxDocument) getDocument(); int x = (int) fx; int y = (int) fy; if (y < alloc.y) { // above the area covered by this icon, so the the position // is assumed to be the start of the coverage for this view. return getStartOffset(); - } - else if (y > alloc.y + alloc.height) { + } else if (y > alloc.y + alloc.height) { // below the area covered by this icon, so the the position // is assumed to be the end of the coverage for this view. return getEndOffset() - 1; - } - else { - + } else { // positioned within the coverage of this view vertically, // so we figure out which line the point corresponds to. // if the line is greater than the number of lines // contained, then simply use the last line as it represents // the last possible place we can position to. - - RSyntaxTextArea textArea = (RSyntaxTextArea)getContainer(); + RSyntaxTextArea textArea = (RSyntaxTextArea) getContainer(); alloc.height = textArea.getLineHeight(); int p1 = getEndOffset(); - // Get the token list for this line so we don't have to keep // recomputing it if this logical line spans multiple // physical lines. @@ -1364,98 +1242,76 @@ System.err.println(">>> >>> calculated number of lines for this view (line " + l int p0 = getStartOffset(); int line = map.getElementIndex(p0); Token tlist = doc.getTokenListForLine(line); - // Look at each physical line-chunk of this logical line. - while (p0=alloc.y) && (y<(alloc.y+alloc.height))) { - + if ((y >= alloc.y) && (y < (alloc.y + alloc.height))) { // Point is to the left of the line if (x < alloc.x) { return p0; } - // Point is to the right of the line else if (x > alloc.x + alloc.width) { return p - 1; } - // Point is in this physical line! else if (tlist != null) { - // Start at alloc.x since this chunk starts // at the beginning of a physical line. - int n = tlist.getListOffset(textArea, - WrappedSyntaxView.this, - alloc.x, x); - - // NOTE: We needed to add the max() with + int n = tlist.getListOffset(textArea, WrappedSyntaxView.this, alloc.x, x); + // NOTE: We needed to add the max() with // p0 as getTokenListForLine returns -1 // for empty lines (just a null token). // How did this work before? - // FIXME: Have null tokens have their + // FIXME: Have null tokens have their // offset but a -1 length. - return Math.max(Math.min(n, p1-1), p0); - - } // End of else. - + return Math.max(Math.min(n, p1 - 1), p0); + } // End of else. } // End of if ((y>=alloc.y) && ... - p0 = (p == p0) ? p1 : p; alloc.y += alloc.height; - } // End of while (p0WrappedSyntaxView class, designed to - * be faster with large wrapped documents. Heavily based off of + * be faster with large wrapped documents. Heavily based off of * BoxView, but streamlined to only care about the y-axis, and - * takes code folding into account.

+ * takes code folding into account. + *

* * This class is not currently used. * * @author Robert Futrell * @version 1.0 */ -public class WrappedSyntaxView2 {//extends CompositeView { - -// private Rectangle tempRect; -// private int[] cachedOffsets; -// private int[] cachedSpans; -// private boolean sizeRequirementsValid; - - +public class WrappedSyntaxView2 {// extends CompositeView { + // private Rectangle tempRect; + // private int[] cachedOffsets; + // private int[] cachedSpans; + // private boolean sizeRequirementsValid; + public WrappedSyntaxView2(Element root) { - //super(root); -// tempRect = new Rectangle(); -// cachedOffsets = new int[0]; -// cachedSpans = new int[0]; -// sizeRequirementsValid = false; + // super(root); + // tempRect = new Rectangle(); + // cachedOffsets = new int[0]; + // cachedSpans = new int[0]; + // sizeRequirementsValid = false; } - - -// protected void childAllocation(int index, Rectangle alloc) { -// alloc.y += getOffset(index); -// alloc.height = getHeight(index); -// } -// -// -// private int getHeight(int childIndex) { -// return cachedSpans[childIndex]; -// } -// -// -// private int getOffset(int childIndex) { -// return cachedOffsets[childIndex]; -// } -// -// -// protected View getViewAtPoint(int x, int y, Rectangle alloc) { -// // TODO Auto-generated method stub -// return null; -// } -// -// -// /** -// * @param alloc The allocated region; this is the area inside of the insets -// * @return Whether the point lies after the region. -// */ -// protected boolean isAfter(int x, int y, Rectangle alloc) { -// return y > (alloc.y + alloc.height); -// } -// -// -// /** -// * @param alloc The allocated region; this is the area inside of the insets -// * @return Whether the point lies before the region. -// */ -// protected boolean isBefore(int x, int y, Rectangle alloc) { -// return y < alloc.y; -// } -// -// -// public float getPreferredSpan(int axis) { -// if (axis==X_AXIS) { -// return preferredWidth + getLeftInset() + getRightInset(); -// } -// else { -// return preferredHeight + getTopInset() + getBottomInset(); -// } -// } -// -// -// public void paint(Graphics g, Shape allocation) { -// -// Rectangle alloc = (allocation instanceof Rectangle) ? -// (Rectangle)allocation : allocation.getBounds(); -// int n = getViewCount(); -// -// int x = alloc.x + getLeftInset(); -// int y = alloc.y + getTopInset(); -// Rectangle clip = g.getClipBounds(); -// int preferredWidth = (int)getPreferredSpan(X_AXIS); -// -// for (int i = 0; i < n; i++) { -// tempRect.x = x; -// tempRect.y = y + getOffset(i); -// tempRect.width = preferredWidth; -// tempRect.height = getHeight(i); -// if (tempRect.intersects(clip)) { -// paintChild(g, tempRect, i); -// } -// } -// -// } -// -// -// /** -// * Called when a child view's preferred span changes. This invalidates -// * our layout cache and calls the super implementation. -// */ -// public void preferenceChanged(View child, boolean widthPreferenceChanged, -// boolean heightPreferenceChanged) { -// -// if (heightPreferenceChanged) { -// sizeRequirementsValid = false; -//// majorAllocValid = false; -// } -//// if (width) { -//// minorReqValid = false; -//// minorAllocValid = false; -//// } -// -// super.preferenceChanged(child, widthPreferenceChanged, heightPreferenceChanged); -// -// } -// -// public void replace(int index, int length, View[] elems) { -// -// super.replace(index, length, elems); -// -// // Invalidate cache -// int insertCount = elems==null ? 0 : elems.length; -// cachedOffsets = updateLayoutArray(cachedOffsets, index, insertCount); -// majorReqValid = false; -// majorAllocValid = false; -// -// } -// -// -// private int[] updateLayoutArray(int[] oldArray, int offset, int nInserted) { -// int n = getViewCount(); // Called after super.replace() so this is accurate -// int[] newArray = new int[n]; -// System.arraycopy(oldArray, 0, newArray, 0, offset); -// System.arraycopy(oldArray, offset, -// newArray, offset + nInserted, n - nInserted - offset); -// return newArray; -// } -// - -} \ No newline at end of file + // protected void childAllocation(int index, Rectangle alloc) { + // alloc.y += getOffset(index); + // alloc.height = getHeight(index); + // } + // + // + // private int getHeight(int childIndex) { + // return cachedSpans[childIndex]; + // } + // + // + // private int getOffset(int childIndex) { + // return cachedOffsets[childIndex]; + // } + // + // + // protected View getViewAtPoint(int x, int y, Rectangle alloc) { + // // TODO Auto-generated method stub + // return null; + // } + // + // + // /** + // * @param alloc The allocated region; this is the area inside of the + // insets + // * @return Whether the point lies after the region. + // */ + // protected boolean isAfter(int x, int y, Rectangle alloc) { + // return y > (alloc.y + alloc.height); + // } + // + // + // /** + // * @param alloc The allocated region; this is the area inside of the + // insets + // * @return Whether the point lies before the region. + // */ + // protected boolean isBefore(int x, int y, Rectangle alloc) { + // return y < alloc.y; + // } + // + // + // public float getPreferredSpan(int axis) { + // if (axis==X_AXIS) { + // return preferredWidth + getLeftInset() + getRightInset(); + // } + // else { + // return preferredHeight + getTopInset() + getBottomInset(); + // } + // } + // + // + // public void paint(Graphics g, Shape allocation) { + // + // Rectangle alloc = (allocation instanceof Rectangle) ? + // (Rectangle)allocation : allocation.getBounds(); + // int n = getViewCount(); + // + // int x = alloc.x + getLeftInset(); + // int y = alloc.y + getTopInset(); + // Rectangle clip = g.getClipBounds(); + // int preferredWidth = (int)getPreferredSpan(X_AXIS); + // + // for (int i = 0; i < n; i++) { + // tempRect.x = x; + // tempRect.y = y + getOffset(i); + // tempRect.width = preferredWidth; + // tempRect.height = getHeight(i); + // if (tempRect.intersects(clip)) { + // paintChild(g, tempRect, i); + // } + // } + // + // } + // + // + // /** + // * Called when a child view's preferred span changes. This invalidates + // * our layout cache and calls the super implementation. + // */ + // public void preferenceChanged(View child, boolean widthPreferenceChanged, + // boolean heightPreferenceChanged) { + // + // if (heightPreferenceChanged) { + // sizeRequirementsValid = false; + //// majorAllocValid = false; + // } + //// if (width) { + //// minorReqValid = false; + //// minorAllocValid = false; + //// } + // + // super.preferenceChanged(child, widthPreferenceChanged, + // heightPreferenceChanged); + // + // } + // + // public void replace(int index, int length, View[] elems) { + // + // super.replace(index, length, elems); + // + // // Invalidate cache + // int insertCount = elems==null ? 0 : elems.length; + // cachedOffsets = updateLayoutArray(cachedOffsets, index, insertCount); + // majorReqValid = false; + // majorAllocValid = false; + // + // } + // + // + // private int[] updateLayoutArray(int[] oldArray, int offset, int + // nInserted) { + // int n = getViewCount(); // Called after super.replace() so this is + // accurate + // int[] newArray = new int[n]; + // System.arraycopy(oldArray, 0, newArray, 0, offset); + // System.arraycopy(oldArray, offset, + // newArray, offset + nInserted, n - nInserted - offset); + // return newArray; + // } + // +} diff --git a/src/org/fife/ui/rsyntaxtextarea/XmlOccurrenceMarker.java b/src/org/fife/ui/rsyntaxtextarea/XmlOccurrenceMarker.java index d02eb28..5d9cf23 100644 --- a/src/org/fife/ui/rsyntaxtextarea/XmlOccurrenceMarker.java +++ b/src/org/fife/ui/rsyntaxtextarea/XmlOccurrenceMarker.java @@ -1,9 +1,7 @@ /* * 03/09/2013 - * * XmlOccurrenceMarker - Marks occurrences of the current token for XML. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea; @@ -16,7 +14,6 @@ import javax.swing.text.Element; import org.fife.ui.rtextarea.SmartHighlightPainter; - /** * Marks occurrences of the current token for XML. * @@ -24,21 +21,18 @@ import org.fife.ui.rtextarea.SmartHighlightPainter; * @version 1.0 */ public class XmlOccurrenceMarker implements OccurrenceMarker { - + private static final char[] CLOSE_TAG_START = { '<', '/' }; private static final char[] TAG_SELF_CLOSE = { '/', '>' }; - - + /** * {@inheritDoc} */ @Override public Token getTokenToMark(RSyntaxTextArea textArea) { - return HtmlOccurrenceMarker.getTagNameTokenForCaretOffset( - textArea, this); + return HtmlOccurrenceMarker.getTagNameTokenForCaretOffset(textArea, this); } - - + /** * {@inheritDoc} */ @@ -46,34 +40,29 @@ public class XmlOccurrenceMarker implements OccurrenceMarker { public boolean isValidType(RSyntaxTextArea textArea, Token t) { return textArea.getMarkOccurrencesOfTokenType(t.getType()); } - - + /** * {@inheritDoc} */ @Override - public void markOccurrences(RSyntaxDocument doc, Token t, - RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { - + public void markOccurrences(RSyntaxDocument doc, Token t, RSyntaxTextAreaHighlighter h, SmartHighlightPainter p) { char[] lexeme = t.getLexeme().toCharArray(); int tokenOffs = t.getOffset(); Element root = doc.getDefaultRootElement(); int lineCount = root.getElementCount(); int curLine = root.getElementIndex(t.getOffset()); int depth = 0; - // For now, we only check for tags on the current line, for - // simplicity. Tags spanning multiple lines aren't common anyway. + // simplicity. Tags spanning multiple lines aren't common anyway. boolean found = false; boolean forward = true; t = doc.getTokenListForLine(curLine); - while (t!=null && t.isPaintable()) { - if (t.getType()==Token.MARKUP_TAG_DELIMITER) { - if (t.isSingleChar('<') && t.getOffset()+1==tokenOffs) { + while (t != null && t.isPaintable()) { + if (t.getType() == Token.MARKUP_TAG_DELIMITER) { + if (t.isSingleChar('<') && t.getOffset() + 1 == tokenOffs) { found = true; break; - } - else if (t.is(CLOSE_TAG_START) && t.getOffset()+2==tokenOffs) { + } else if (t.is(CLOSE_TAG_START) && t.getOffset() + 2 == tokenOffs) { found = true; forward = false; break; @@ -81,26 +70,20 @@ public class XmlOccurrenceMarker implements OccurrenceMarker { } t = t.getNextToken(); } - if (!found) { return; } - if (forward) { - t = t.getNextToken().getNextToken(); - do { - - while (t!=null && t.isPaintable()) { - if (t.getType()==Token.MARKUP_TAG_DELIMITER) { + while (t != null && t.isPaintable()) { + if (t.getType() == Token.MARKUP_TAG_DELIMITER) { if (t.is(CLOSE_TAG_START)) { Token match = t.getNextToken(); - if (match!=null && match.is(lexeme)) { - if (depth>0) { + if (match != null && match.is(lexeme)) { + if (depth > 0) { depth--; - } - else { + } else { try { int end = match.getOffset() + match.length(); h.addMarkedOccurrenceHighlight(match.getOffset(), end, p); @@ -112,65 +95,50 @@ public class XmlOccurrenceMarker implements OccurrenceMarker { return; // We're done! } } - } - else if (t.isSingleChar('<')) { + } else if (t.isSingleChar('<')) { t = t.getNextToken(); - if (t!=null && t.is(lexeme)) { + if (t != null && t.is(lexeme)) { depth++; } } } - t = t==null ? null : t.getNextToken(); + t = t == null ? null : t.getNextToken(); } - - if (++curLine openCloses = new ArrayList(); boolean inPossibleMatch = false; t = doc.getTokenListForLine(curLine); final int endBefore = tokenOffs - 2; // Stop before "')) { + } else if (t.isSingleChar('>')) { inPossibleMatch = false; - } - else if (inPossibleMatch && t.is(TAG_SELF_CLOSE)) { - openCloses.remove(openCloses.size()-1); + } else if (inPossibleMatch && t.is(TAG_SELF_CLOSE)) { + openCloses.remove(openCloses.size() - 1); inPossibleMatch = false; - } - else if (t.is(CLOSE_TAG_START)) { + } else if (t.is(CLOSE_TAG_START)) { Token next = t.getNextToken(); - if (next!=null) { + if (next != null) { // Invalid XML might not have a match if (next.is(lexeme)) { openCloses.add(new Entry(false, next)); @@ -181,11 +149,10 @@ public class XmlOccurrenceMarker implements OccurrenceMarker { } t = t.getNextToken(); } - - for (int i=openCloses.size()-1; i>=0; i--) { + for (int i = openCloses.size() - 1; i >= 0; i--) { Entry entry = openCloses.get(i); depth += entry.open ? -1 : 1; - if (depth==-1) { + if (depth == -1) { try { Token match = entry.t; int end = match.getOffset() + match.length(); @@ -199,34 +166,25 @@ public class XmlOccurrenceMarker implements OccurrenceMarker { return; } } - openCloses.clear(); - if (--curLine>=0) { + if (--curLine >= 0) { t = doc.getTokenListForLine(curLine); } - - } while (curLine>=0); - - + } while (curLine >= 0); } - } - - + /** * Used internally when searching backward for a matching "open" tag. */ private static class Entry { - + private boolean open; private Token t; - + Entry(boolean open, Token t) { this.open = open; this.t = t; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/focusabletip/FocusableTip.java b/src/org/fife/ui/rsyntaxtextarea/focusabletip/FocusableTip.java index d39f1a7..2374c55 100644 --- a/src/org/fife/ui/rsyntaxtextarea/focusabletip/FocusableTip.java +++ b/src/org/fife/ui/rsyntaxtextarea/focusabletip/FocusableTip.java @@ -1,9 +1,7 @@ /* * 07/29/2009 - * * FocusableTip.java - A focusable tool tip, like those in Eclipse. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.focusabletip; @@ -34,53 +32,44 @@ import javax.swing.event.MouseInputAdapter; import org.fife.ui.rsyntaxtextarea.PopupWindowDecorator; - /** - * A focusable tool tip, similar to those found in Eclipse. The user + * A focusable tool tip, similar to those found in Eclipse. The user * can click in the tip and it becomes a "real," resizable window. * * @author Robert Futrell * @version 1.0 */ public class FocusableTip { - + private JTextArea textArea; private TipWindow tipWindow; private URL imageBase; private TextAreaListener textAreaListener; private HyperlinkListener hyperlinkListener; private String lastText; - private Dimension maxSize; // null to automatic. - /** * The screen bounds in which the mouse has to stay for the currently * displayed tip to stay visible. */ private Rectangle tipVisibleBounds; - /** * Margin from mouse cursor at which to draw focusable tip. */ private static final int X_MARGIN = 18; - /** * Margin from mouse cursor at which to draw focusable tip. */ private static final int Y_MARGIN = 12; - - private static final ResourceBundle MSG = ResourceBundle.getBundle( - "org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip"); - - + private static final ResourceBundle MSG = ResourceBundle.getBundle("org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip"); + public FocusableTip(JTextArea textArea, HyperlinkListener listener) { setTextArea(textArea); this.hyperlinkListener = listener; textAreaListener = new TextAreaListener(); tipVisibleBounds = new Rectangle(); } - - + /** * Compute the bounds in which the user can move the mouse without the * tip window disappearing. @@ -93,86 +82,73 @@ public class FocusableTip { Point p = r.getLocation(); SwingUtilities.convertPointFromScreen(p, textArea); r.setLocation(p); - tipVisibleBounds.setBounds(r.x,r.y-15, r.width,r.height+15*2); + tipVisibleBounds.setBounds(r.x, r.y - 15, r.width, r.height + 15 * 2); } - - + private void createAndShowTipWindow(final MouseEvent e, final String text) { - Window owner = SwingUtilities.getWindowAncestor(textArea); tipWindow = new TipWindow(owner, this, text); tipWindow.setHyperlinkListener(hyperlinkListener); - // Give apps a chance to decorate us with drop shadows, etc. PopupWindowDecorator decorator = PopupWindowDecorator.get(); - if (decorator!=null) { + if (decorator != null) { decorator.decorate(tipWindow); } - // TODO: Position tip window better (handle RTL, edges of screen, etc.). // Wrap in an invokeLater() to work around a JEditorPane issue where it // doesn't return its proper preferred size until after it is displayed. // See http://forums.sun.com/thread.jspa?forumID=57&threadID=574810 // for a discussion. SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { - // If a new FocusableTip is requested while another one is // *focused* and visible, the focused tip (i.e. "tipWindow") - // will be disposed of. If this Runnable is run after the - // dispose(), tipWindow will be null. All of this is done on + // will be disposed of. If this Runnable is run after the + // dispose(), tipWindow will be null. All of this is done on // the EDT so no synchronization should be necessary. - if (tipWindow==null) { + if (tipWindow == null) { return; } - tipWindow.fixSize(); ComponentOrientation o = textArea.getComponentOrientation(); - Point p = e.getPoint(); SwingUtilities.convertPointToScreen(p, textArea); - // Ensure tool tip is in the window bounds. // Multi-monitor support - make sure the completion window (and // description window, if applicable) both fit in the same - // window in a multi-monitor environment. To do this, we decide + // window in a multi-monitor environment. To do this, we decide // which monitor the rectangle "p" is in, and use that one. Rectangle sb = TipUtil.getScreenBoundsForPoint(p.x, p.y); - //Dimension ss = tipWindow.getToolkit().getScreenSize(); - + // Dimension ss = tipWindow.getToolkit().getScreenSize(); // Try putting our stuff "below" the mouse first. int y = p.y + Y_MARGIN; - if (y+tipWindow.getHeight()>=sb.y+sb.height) { + if (y + tipWindow.getHeight() >= sb.y + sb.height) { y = p.y - Y_MARGIN - tipWindow.getHeight(); } - - // Get x-coordinate of completions. Try to align left edge + // Get x-coordinate of completions. Try to align left edge // with the mouse first (with a slight margin). int x = p.x - X_MARGIN; // ltr if (!o.isLeftToRight()) { x = p.x - tipWindow.getWidth() + X_MARGIN; } - if (xsb.x+sb.width) { // completions don't fit + } else if (x + tipWindow.getWidth() > sb.x + sb.width) { // completions + // don't + // fit x = sb.x + sb.width - tipWindow.getWidth(); } - tipWindow.setLocation(x, y); tipWindow.setVisible(true); - computeTipVisibleBounds(); // Do after tip is visible textAreaListener.install(textArea); lastText = text; - } }); - } - - + /** * Returns the base URL to use when loading images in this focusable tip. * @@ -182,31 +158,29 @@ public class FocusableTip { public URL getImageBase() { return imageBase; } - - + /** * The maximum size for unfocused tool tips. * - * @return The maximum size for unfocused tool tips. A value of + * @return The maximum size for unfocused tool tips. A value of * null will use a default size. * @see #setMaxSize(Dimension) */ public Dimension getMaxSize() { - return maxSize; - } - - + return maxSize; + } + /** * Returns localized text for the given key. * - * @param key The key into the resource bundle. + * @param key + * The key into the resource bundle. * @return The localized text. */ static String getString(String key) { return MSG.getString(key); } - - + /** * Disposes of the focusable tip currently displayed, if any. */ @@ -220,67 +194,58 @@ public class FocusableTip { textArea.requestFocus(); } } - - + void removeListeners() { - //System.out.println("DEBUG: Removing text area listeners"); + // System.out.println("DEBUG: Removing text area listeners"); textAreaListener.uninstall(); } - - + /** * Sets the base URL to use when loading images in this focusable tip. * - * @param url The base URL to use. + * @param url + * The base URL to use. * @see #getImageBase() */ public void setImageBase(URL url) { imageBase = url; } - - + /** * Sets the maximum size for unfocused tool tips. * - * @param maxSize The new maximum size. A value of null will - * cause a default size to be used. + * @param maxSize + * The new maximum size. A value of null will + * cause a default size to be used. * @see #getMaxSize() */ public void setMaxSize(Dimension maxSize) { - this.maxSize = maxSize; - } - - + this.maxSize = maxSize; + } + private void setTextArea(JTextArea textArea) { this.textArea = textArea; // Is okay to do multiple times. ToolTipManager.sharedInstance().registerComponent(textArea); } - - + public void toolTipRequested(MouseEvent e, String text) { - - if (text==null || text.length()==0) { + if (text == null || text.length() == 0) { possiblyDisposeOfTipWindow(); lastText = text; return; } - - if (lastText==null || text.length()!=lastText.length() || - !text.equals(lastText)) { + if (lastText == null || text.length() != lastText.length() || !text.equals(lastText)) { possiblyDisposeOfTipWindow(); createAndShowTipWindow(e, text); } - } - - + /** * Listens for events in a text area. */ - private class TextAreaListener extends MouseInputAdapter implements - CaretListener, ComponentListener, FocusListener, KeyListener { - + private class TextAreaListener extends MouseInputAdapter implements CaretListener, ComponentListener, FocusListener, KeyListener { + @Override public void caretUpdate(CaretEvent e) { Object source = e.getSource(); @@ -288,31 +253,30 @@ public class FocusableTip { possiblyDisposeOfTipWindow(); } } - + @Override public void componentHidden(ComponentEvent e) { handleComponentEvent(e); } - + @Override public void componentMoved(ComponentEvent e) { handleComponentEvent(e); } - + @Override public void componentResized(ComponentEvent e) { handleComponentEvent(e); } - + @Override public void componentShown(ComponentEvent e) { handleComponentEvent(e); } - + @Override - public void focusGained(FocusEvent e) { - } - + public void focusGained(FocusEvent e) {} + @Override public void focusLost(FocusEvent e) { // Only dispose of tip if it wasn't the TipWindow that was clicked @@ -320,18 +284,16 @@ public class FocusableTip { // calling SwingUtilities.getWindowAncestor() to guard against an // NPE. Component c = e.getOppositeComponent(); - boolean tipClicked = (c instanceof TipWindow) || - (c!=null && - SwingUtilities.getWindowAncestor(c) instanceof TipWindow); + boolean tipClicked = (c instanceof TipWindow) || (c != null && SwingUtilities.getWindowAncestor(c) instanceof TipWindow); if (!tipClicked) { possiblyDisposeOfTipWindow(); } } - + private void handleComponentEvent(ComponentEvent e) { possiblyDisposeOfTipWindow(); } - + public void install(JTextArea textArea) { textArea.addCaretListener(this); textArea.addComponentListener(this); @@ -340,41 +302,37 @@ public class FocusableTip { textArea.addMouseListener(this); textArea.addMouseMotionListener(this); } - + @Override public void keyPressed(KeyEvent e) { - if (e.getKeyCode()==KeyEvent.VK_ESCAPE) { + if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { possiblyDisposeOfTipWindow(); - } - else if (e.getKeyCode()==KeyEvent.VK_F2) { - if (tipWindow!=null && !tipWindow.getFocusableWindowState()) { + } else if (e.getKeyCode() == KeyEvent.VK_F2) { + if (tipWindow != null && !tipWindow.getFocusableWindowState()) { tipWindow.actionPerformed(null); e.consume(); // Don't do bookmarking stuff } } } - + @Override - public void keyReleased(KeyEvent e) { - } - + public void keyReleased(KeyEvent e) {} + @Override - public void keyTyped(KeyEvent e) { - } - + public void keyTyped(KeyEvent e) {} + @Override public void mouseExited(MouseEvent e) { // possiblyDisposeOfTipWindow(); } - + @Override public void mouseMoved(MouseEvent e) { - if (tipVisibleBounds==null || - !tipVisibleBounds.contains(e.getPoint())) { + if (tipVisibleBounds == null || !tipVisibleBounds.contains(e.getPoint())) { possiblyDisposeOfTipWindow(); } } - + public void uninstall() { textArea.removeCaretListener(this); textArea.removeComponentListener(this); @@ -383,7 +341,5 @@ public class FocusableTip { textArea.removeMouseListener(this); textArea.removeMouseMotionListener(this); } - } - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/focusabletip/SizeGrip.java b/src/org/fife/ui/rsyntaxtextarea/focusabletip/SizeGrip.java index 6092acd..7cc2aeb 100644 --- a/src/org/fife/ui/rsyntaxtextarea/focusabletip/SizeGrip.java +++ b/src/org/fife/ui/rsyntaxtextarea/focusabletip/SizeGrip.java @@ -1,10 +1,8 @@ /* * 12/23/2008 - * * SizeGrip.java - A size grip component that sits at the bottom of the window, * allowing the user to easily resize that window. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.focusabletip; @@ -29,7 +27,6 @@ import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.event.MouseInputAdapter; - /** * A component that allows its parent window to be resizable, similar to the * size grip seen on status bars. @@ -39,34 +36,32 @@ import javax.swing.event.MouseInputAdapter; */ @SuppressWarnings({ "checkstyle:magicnumber" }) class SizeGrip extends JPanel { - + /** * The size grip to use if we're on OS X. */ private transient Image osxSizeGrip; - - + SizeGrip() { MouseHandler adapter = new MouseHandler(); addMouseListener(adapter); addMouseMotionListener(adapter); setPreferredSize(new Dimension(16, 16)); } - - + /** * Overridden to ensure that the cursor for this component is appropriate * for the orientation. * - * @param o The new orientation. + * @param o + * The new orientation. */ @Override public void applyComponentOrientation(ComponentOrientation o) { possiblyFixCursor(o.isLeftToRight()); super.applyComponentOrientation(o); } - - + /** * Creates and returns the OS X size grip image. * @@ -75,7 +70,7 @@ class SizeGrip extends JPanel { private Image createOSXSizeGrip() { ClassLoader cl = getClass().getClassLoader(); URL url = cl.getResource("org/fife/ui/rsyntaxtextarea/focusabletip/osx_sizegrip.png"); - if (url==null) { + if (url == null) { // We're not running in a jar - we may be debugging in Eclipse, // for example File f = new File("../RSyntaxTextArea/src/org/fife/ui/rsyntaxtextarea/focusabletip/osx_sizegrip.png"); @@ -86,8 +81,7 @@ class SizeGrip extends JPanel { mue.printStackTrace(); return null; } - } - else { + } else { return null; // Can't find resource or image file } } @@ -99,117 +93,107 @@ class SizeGrip extends JPanel { } return image; } - - + /** * Paints this panel. * - * @param g The graphics context. + * @param g + * The graphics context. */ @Override protected void paintComponent(Graphics g) { - super.paintComponent(g); - Dimension dim = getSize(); - - if (osxSizeGrip!=null) { - g.drawImage(osxSizeGrip, dim.width-16, dim.height-16, null); + if (osxSizeGrip != null) { + g.drawImage(osxSizeGrip, dim.width - 16, dim.height - 16, null); return; } - Color c1 = UIManager.getColor("Label.disabledShadow"); Color c2 = UIManager.getColor("Label.disabledForeground"); ComponentOrientation orientation = getComponentOrientation(); - if (orientation.isLeftToRight()) { - int width = dim.width -= 3; + int width = dim.width -= 3; int height = dim.height -= 3; g.setColor(c1); - g.fillRect(width-9,height-1, 3,3); - g.fillRect(width-5,height-1, 3,3); - g.fillRect(width-1,height-1, 3,3); - g.fillRect(width-5,height-5, 3,3); - g.fillRect(width-1,height-5, 3,3); - g.fillRect(width-1,height-9, 3,3); + g.fillRect(width - 9, height - 1, 3, 3); + g.fillRect(width - 5, height - 1, 3, 3); + g.fillRect(width - 1, height - 1, 3, 3); + g.fillRect(width - 5, height - 5, 3, 3); + g.fillRect(width - 1, height - 5, 3, 3); + g.fillRect(width - 1, height - 9, 3, 3); g.setColor(c2); - g.fillRect(width-9,height-1, 2,2); - g.fillRect(width-5,height-1, 2,2); - g.fillRect(width-1,height-1, 2,2); - g.fillRect(width-5,height-5, 2,2); - g.fillRect(width-1,height-5, 2,2); - g.fillRect(width-1,height-9, 2,2); - } - else { + g.fillRect(width - 9, height - 1, 2, 2); + g.fillRect(width - 5, height - 1, 2, 2); + g.fillRect(width - 1, height - 1, 2, 2); + g.fillRect(width - 5, height - 5, 2, 2); + g.fillRect(width - 1, height - 5, 2, 2); + g.fillRect(width - 1, height - 9, 2, 2); + } else { int height = dim.height -= 3; g.setColor(c1); - g.fillRect(10,height-1, 3,3); - g.fillRect(6,height-1, 3,3); - g.fillRect(2,height-1, 3,3); - g.fillRect(6,height-5, 3,3); - g.fillRect(2,height-5, 3,3); - g.fillRect(2,height-9, 3,3); + g.fillRect(10, height - 1, 3, 3); + g.fillRect(6, height - 1, 3, 3); + g.fillRect(2, height - 1, 3, 3); + g.fillRect(6, height - 5, 3, 3); + g.fillRect(2, height - 5, 3, 3); + g.fillRect(2, height - 9, 3, 3); g.setColor(c2); - g.fillRect(10,height-1, 2,2); - g.fillRect(6,height-1, 2,2); - g.fillRect(2,height-1, 2,2); - g.fillRect(6,height-5, 2,2); - g.fillRect(2,height-5, 2,2); - g.fillRect(2,height-9, 2,2); + g.fillRect(10, height - 1, 2, 2); + g.fillRect(6, height - 1, 2, 2); + g.fillRect(2, height - 1, 2, 2); + g.fillRect(6, height - 5, 2, 2); + g.fillRect(2, height - 5, 2, 2); + g.fillRect(2, height - 9, 2, 2); } - } - - + /** * Ensures that the cursor for this component is appropriate for the * orientation. * - * @param ltr Whether the current component orientation is LTR. + * @param ltr + * Whether the current component orientation is LTR. */ protected void possiblyFixCursor(boolean ltr) { int cursor = Cursor.NE_RESIZE_CURSOR; if (ltr) { cursor = Cursor.NW_RESIZE_CURSOR; } - if (cursor!=getCursor().getType()) { + if (cursor != getCursor().getType()) { setCursor(Cursor.getPredefinedCursor(cursor)); } } - - + @Override public void updateUI() { super.updateUI(); // TODO: Key off of Aqua LaF, not just OS X, as this size grip looks // bad on other LaFs on Mac such as Nimbus. if (System.getProperty("os.name").contains("OS X")) { - if (osxSizeGrip==null) { + if (osxSizeGrip == null) { osxSizeGrip = createOSXSizeGrip(); } - } - else { // Clear memory in case of runtime LaF change. + } else { // Clear memory in case of runtime LaF change. osxSizeGrip = null; } - } - - + /** * Listens for mouse events on this panel and resizes the parent window * appropriately. */ private class MouseHandler extends MouseInputAdapter { - + /* - * NOTE: We use SwingUtilities.convertPointToScreen() instead of just using - * the locations relative to the corner component because the latter proved + * NOTE: We use SwingUtilities.convertPointToScreen() instead of just + * using + * the locations relative to the corner component because the latter + * proved * buggy - stretch the window too wide and some kind of arithmetic error * started happening somewhere - our window would grow way too large. */ - private Point origPos; - + @Override public void mouseDragged(MouseEvent e) { Point newPos = e.getPoint(); @@ -217,21 +201,20 @@ class SizeGrip extends JPanel { int xDelta = newPos.x - origPos.x; int yDelta = newPos.y - origPos.y; Window wind = SwingUtilities.getWindowAncestor(SizeGrip.this); - if (wind!=null) { // Should always be true + if (wind != null) { // Should always be true if (getComponentOrientation().isLeftToRight()) { int w = wind.getWidth(); - if (newPos.x>=wind.getX()) { + if (newPos.x >= wind.getX()) { w += xDelta; } int h = wind.getHeight(); - if (newPos.y>=wind.getY()) { + if (newPos.y >= wind.getY()) { h += yDelta; } - wind.setSize(w,h); - } - else { // RTL - int newW = Math.max(1, wind.getWidth()-xDelta); - int newH = Math.max(1, wind.getHeight()+yDelta); + wind.setSize(w, h); + } else { // RTL + int newW = Math.max(1, wind.getWidth() - xDelta); + int newH = Math.max(1, wind.getHeight() + yDelta); wind.setBounds(newPos.x, wind.getY(), newW, newH); } // invalidate()/validate() needed pre-1.6. @@ -240,19 +223,16 @@ class SizeGrip extends JPanel { } origPos.setLocation(newPos); } - + @Override public void mousePressed(MouseEvent e) { origPos = e.getPoint(); SwingUtilities.convertPointToScreen(origPos, SizeGrip.this); } - + @Override public void mouseReleased(MouseEvent e) { origPos = null; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipUtil.java b/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipUtil.java index 885ad47..176551d 100644 --- a/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipUtil.java +++ b/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipUtil.java @@ -1,9 +1,7 @@ /* * 08/13/2009 - * * TipUtil.java - Utility methods for homemade tool tips. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.focusabletip; @@ -25,7 +23,6 @@ import javax.swing.text.html.HTMLDocument; import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; - /** * Static utility methods for focusable tips. * @@ -33,63 +30,57 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; * @version 1.0 */ public final class TipUtil { - - - private TipUtil() { - } - - + + private TipUtil() {} + /** * Returns a hex string for the specified color, suitable for HTML. * - * @param c The color. + * @param c + * The color. * @return The string representation, in the form "#rrggbb", * or null if c is null. */ private static String getHexString(Color c) { - - if (c==null) { + if (c == null) { return null; } - StringBuilder sb = new StringBuilder("#"); int r = c.getRed(); - if (r<16) { + if (r < 16) { sb.append('0'); } sb.append(Integer.toHexString(r)); int g = c.getGreen(); - if (g<16) { + if (g < 16) { sb.append('0'); } sb.append(Integer.toHexString(g)); int b = c.getBlue(); - if (b<16) { + if (b < 16) { sb.append('0'); } sb.append(Integer.toHexString(b)); - return sb.toString(); - } - - + /** * Returns the screen coordinates for the monitor that contains the - * specified point. This is useful for setups with multiple monitors, + * specified point. This is useful for setups with multiple monitors, * to ensure that popup windows are positioned properly. * - * @param x The x-coordinate, in screen coordinates. - * @param y The y-coordinate, in screen coordinates. + * @param x + * The x-coordinate, in screen coordinates. + * @param y + * The y-coordinate, in screen coordinates. * @return The bounds of the monitor that contains the specified point. */ public static Rectangle getScreenBoundsForPoint(int x, int y) { - GraphicsEnvironment env = GraphicsEnvironment. - getLocalGraphicsEnvironment(); + GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] devices = env.getScreenDevices(); - for (int i=0; iJEditorPane so it can be used to render the - * content in a focusable pseudo-tool tip. It is assumed that the editor + * content in a focusable pseudo-tool tip. It is assumed that the editor * pane is using an HTMLDocument. * - * @param textArea The editor pane to tweak. + * @param textArea + * The editor pane to tweak. */ public static void tweakTipEditorPane(JEditorPane textArea) { - // Jump through a few hoops to get things looking nice in Nimbus boolean isNimbus = isNimbusLookAndFeel(); if (isNimbus) { @@ -192,25 +170,20 @@ public final class TipUtil { textArea.setSelectedTextColor(selFG); textArea.setSelectionColor(selBG); } - textArea.setEditable(false); // Required for links to work! - textArea.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); - + textArea.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); // Make selection visible even though we are not (initially) focusable. textArea.getCaret().setSelectionVisible(true); - - // Set the foreground color. Important because when rendering HTML, + // Set the foreground color. Important because when rendering HTML, // default foreground becomes black, which may not match all LAF's // (e.g. Substance). Color fg = UIManager.getColor("Label.foreground"); - if (fg==null || (isNimbus && isDerivedColor(fg))) { + if (fg == null || (isNimbus && isDerivedColor(fg))) { fg = SystemColor.textText; } textArea.setForeground(fg); - // Make it use the "tool tip" background color. textArea.setBackground(TipUtil.getToolTipBackground()); - // Force JEditorPane to use a certain font even in HTML. // All standard LookAndFeels, even Nimbus (!), define Label.font. Font font = UIManager.getFont("Label.font"); @@ -219,32 +192,27 @@ public final class TipUtil { } HTMLDocument doc = (HTMLDocument) textArea.getDocument(); setFont(doc, font, fg); - - // Always add link foreground rule. Unfortunately these CSS rules + // Always add link foreground rule. Unfortunately these CSS rules // stack each time the LaF is changed (how can we overwrite them // without clearing out the important "standard" ones?). Color linkFG = RSyntaxUtilities.getHyperlinkForeground(); - doc.getStyleSheet().addRule( - "a { color: " + getHexString(linkFG) + "; }"); - + doc.getStyleSheet().addRule("a { color: " + getHexString(linkFG) + "; }"); } - - + /** * Sets the default font for an HTML document (e.g., in a tool tip - * displaying HTML). This is here because when rendering HTML, + * displaying HTML). This is here because when rendering HTML, * {@code setFont()} is not honored. * - * @param doc The document to modify. - * @param font The font to use. - * @param fg The default foreground color. + * @param doc + * The document to modify. + * @param font + * The font to use. + * @param fg + * The default foreground color. */ public static void setFont(HTMLDocument doc, Font font, Color fg) { - doc.getStyleSheet().addRule( - "body { font-family: " + font.getFamily() + - "; font-size: " + font.getSize() + "pt" + - "; color: " + getHexString(fg) + "; }"); + doc.getStyleSheet().addRule("body { font-family: " + font.getFamily() + "; font-size: " + font.getSize() + "pt" + "; color: " + + getHexString(fg) + "; }"); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipWindow.java b/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipWindow.java index 3532068..a941dba 100644 --- a/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipWindow.java +++ b/src/org/fife/ui/rsyntaxtextarea/focusabletip/TipWindow.java @@ -1,9 +1,7 @@ /* * 07/29/2009 - * * TipWindow.java - The actual window component representing the tool tip. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.focusabletip; @@ -45,7 +43,6 @@ import javax.swing.text.html.HTMLDocument; import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; - /** * The actual tool tip component. * @@ -53,203 +50,182 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; * @version 1.0 */ class TipWindow extends JWindow implements ActionListener { - + private FocusableTip ft; private JEditorPane textArea; private String text; private transient TipListener tipListener; private transient HyperlinkListener userHyperlinkListener; - private static TipWindow visibleInstance; - - + /** * Constructor. * - * @param owner The parent window. - * @param msg The text of the tool tip. This can be HTML. + * @param owner + * The parent window. + * @param msg + * The text of the tool tip. This can be HTML. */ TipWindow(Window owner, FocusableTip ft, String msg) { - super(owner); this.ft = ft; // Render plain text tool tips correctly. - if (msg!=null && msg.length()>=6 && - !msg.substring(0,6).toLowerCase().equals("")) { + if (msg != null && msg.length() >= 6 && !msg.substring(0, 6).toLowerCase().equals("")) { msg = "" + RSyntaxUtilities.escapeForHtml(msg, "
", false); } this.text = msg; tipListener = new TipListener(); - JPanel cp = new JPanel(new BorderLayout()); cp.setBorder(TipUtil.getToolTipBorder()); cp.setBackground(TipUtil.getToolTipBackground()); textArea = new JEditorPane("text/html", text); TipUtil.tweakTipEditorPane(textArea); - if (ft.getImageBase()!=null) { // Base URL for images - ((HTMLDocument)textArea.getDocument()).setBase(ft.getImageBase()); + if (ft.getImageBase() != null) { // Base URL for images + ((HTMLDocument) textArea.getDocument()).setBase(ft.getImageBase()); } textArea.addMouseListener(tipListener); textArea.addHyperlinkListener(new HyperlinkListener() { + @Override public void hyperlinkUpdate(HyperlinkEvent e) { - if (e.getEventType()==HyperlinkEvent.EventType.ACTIVATED) { + if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { TipWindow.this.ft.possiblyDisposeOfTipWindow(); } } }); cp.add(textArea); - setFocusableWindowState(false); setContentPane(cp); setBottomPanel(); // Must do after setContentPane() pack(); - // InputMap/ActionMap combo doesn't work for JWindows (even when // using the JWindow's JRootPane), so we'll resort to KeyListener KeyAdapter ka = new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { - if (e.getKeyCode()==KeyEvent.VK_ESCAPE) { + if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { TipWindow.this.ft.possiblyDisposeOfTipWindow(); } } }; addKeyListener(ka); textArea.addKeyListener(ka); - - // Ensure only 1 TipWindow is ever visible. If the caller does what + // Ensure only 1 TipWindow is ever visible. If the caller does what // they're supposed to and only creates these on the EDT, the // synchronization isn't necessary, but we'll be extra safe. synchronized (TipWindow.class) { - if (visibleInstance!=null) { + if (visibleInstance != null) { visibleInstance.dispose(); } visibleInstance = this; } - } - - + @Override public void actionPerformed(ActionEvent e) { - if (!getFocusableWindowState()) { setFocusableWindowState(true); setBottomPanel(); textArea.removeMouseListener(tipListener); pack(); addWindowFocusListener(new WindowAdapter() { + @Override public void windowLostFocus(WindowEvent e) { ft.possiblyDisposeOfTipWindow(); } }); ft.removeListeners(); - if (e==null) { // Didn't get here via our mouseover timer + if (e == null) { // Didn't get here via our mouseover timer requestFocus(); } } - } - - + /** * Disposes of this window. */ @Override public void dispose() { - //System.out.println("[DEBUG]: Disposing..."); + // System.out.println("[DEBUG]: Disposing..."); Container cp = getContentPane(); - for (int i=0; id.height) { + r = textArea.modelToView(textArea.getDocument().getLength() - 1); + if (r.y + r.height > d.height) { d.height = r.y + r.height + 5; - if(ft.getMaxSize() != null) { + if (ft.getMaxSize() != null) { d.height = Math.min(d.height, maxWindowH); } textArea.setPreferredSize(d); } - } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); } - pack(); // Must re-pack to calculate proper size. - } - - + public String getText() { return text; } - - + private void setBottomPanel() { - final JPanel panel = new JPanel(new BorderLayout()); panel.add(new JSeparator(), BorderLayout.NORTH); - boolean focusable = getFocusableWindowState(); if (focusable) { SizeGrip sg = new SizeGrip(); sg.applyComponentOrientation(sg.getComponentOrientation()); // Workaround panel.add(sg, BorderLayout.LINE_END); MouseInputAdapter adapter = new MouseInputAdapter() { + private Point lastPoint; + @Override public void mouseDragged(MouseEvent e) { Point p = e.getPoint(); SwingUtilities.convertPointToScreen(p, panel); - if (lastPoint==null) { + if (lastPoint == null) { lastPoint = p; - } - else { + } else { int dx = p.x - lastPoint.x; int dy = p.y - lastPoint.y; - setLocation(getX()+dx, getY()+dy); + setLocation(getX() + dx, getY() + dy); lastPoint = p; } } + @Override public void mousePressed(MouseEvent e) { lastPoint = e.getPoint(); @@ -259,15 +235,14 @@ class TipWindow extends JWindow implements ActionListener { panel.addMouseListener(adapter); panel.addMouseMotionListener(adapter); // Don't add tipListener to the panel or SizeGrip - } - else { + } else { panel.setOpaque(false); JLabel label = new JLabel(FocusableTip.getString("FocusHotkey")); Color fg = UIManager.getColor("Label.disabledForeground"); Font font = textArea.getFont(); font = font.deriveFont(font.getSize2D() - 1.0f); label.setFont(font); - if (fg==null) { // Non BasicLookAndFeel-derived Looks + if (fg == null) { // Non BasicLookAndFeel-derived Looks fg = Color.GRAY; } label.setOpaque(true); @@ -279,10 +254,9 @@ class TipWindow extends JWindow implements ActionListener { panel.add(label); panel.addMouseListener(tipListener); } - // Replace the previous SOUTH Component with the new one. Container cp = getContentPane(); - if (cp.getComponentCount()==2) { // Skip first time through + if (cp.getComponentCount() == 2) { // Skip first time through Component comp = cp.getComponent(0); cp.remove(0); JScrollPane sp = new JScrollPane(comp); @@ -296,56 +270,49 @@ class TipWindow extends JWindow implements ActionListener { cp.getComponent(0).removeMouseListener(tipListener); cp.remove(0); } - cp.add(panel, BorderLayout.SOUTH); - } - - + /** * Sets the listener for hyperlink events in this tip window. * - * @param listener The new listener. The old listener (if any) is - * removed. A value of null means "no listener." + * @param listener + * The new listener. The old listener (if any) is + * removed. A value of null means "no listener." */ public void setHyperlinkListener(HyperlinkListener listener) { // We've added a separate listener, so remove only the user's. - if (userHyperlinkListener!=null) { + if (userHyperlinkListener != null) { textArea.removeHyperlinkListener(userHyperlinkListener); } userHyperlinkListener = listener; - if (userHyperlinkListener!=null) { + if (userHyperlinkListener != null) { textArea.addHyperlinkListener(userHyperlinkListener); } } - - + /** * Listens for events in this window. */ private final class TipListener extends MouseAdapter { - - private TipListener() { - } - + + private TipListener() {} + @Override public void mousePressed(MouseEvent e) { actionPerformed(null); // Manually create "real" window } - + @Override public void mouseExited(MouseEvent e) { // Since we registered this listener on the child components of // the JWindow, not the JWindow iteself, we have to be careful. - Component source = (Component)e.getSource(); + Component source = (Component) e.getSource(); Point p = e.getPoint(); SwingUtilities.convertPointToScreen(p, source); if (!TipWindow.this.getBounds().contains(p)) { ft.possiblyDisposeOfTipWindow(); } } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/CurlyFoldParser.java b/src/org/fife/ui/rsyntaxtextarea/folding/CurlyFoldParser.java index 85b45fb..41d8c79 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/CurlyFoldParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/CurlyFoldParser.java @@ -1,9 +1,7 @@ /* * 10/08/2011 - * * CurlyFoldParser.java - Fold parser for languages with C-style syntax. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -16,24 +14,26 @@ import javax.swing.text.BadLocationException; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.Token; - /** * A basic fold parser that can be used for languages such as C, that use - * curly braces to denote code blocks. This parser searches for curly brace - * pairs and creates code folds out of them. It can also optionally find + * curly braces to denote code blocks. This parser searches for curly brace + * pairs and creates code folds out of them. It can also optionally find * C-style multi-line comments ("/* ... */") and make them - * foldable as well.

+ * foldable as well. + *

* * This parser knows nothing about language semantics; it uses * RSyntaxTextArea's syntax highlighting tokens to identify - * curly braces. By default, it looks for single-char tokens of type + * curly braces. By default, it looks for single-char tokens of type * {@link Token#SEPARATOR}, with lexemes '{' or '}'. * If your {@link org.fife.ui.rsyntaxtextarea.TokenMaker} uses a different token - * type for curly braces, you should override the {@link #isLeftCurly(Token)} and - * {@link #isRightCurly(Token)} methods with your own definitions. In theory, + * type for curly braces, you should override the {@link #isLeftCurly(Token)} + * and + * {@link #isRightCurly(Token)} methods with your own definitions. In theory, * you could extend this fold parser to parse languages that use completely * different tokens than curly braces to denote foldable regions by overriding - * those two methods.

+ * those two methods. + *

* * Note also that this class may impose somewhat of a performance penalty on * large source files, since it re-parses the entire document each time folds @@ -43,28 +43,24 @@ import org.fife.ui.rsyntaxtextarea.Token; * @version 1.0 */ public class CurlyFoldParser implements FoldParser { - + /** * Whether to scan for C-style multi-line comments and make them foldable. */ private boolean foldableMultiLineComments; - /** * Whether this parser is folding Java. */ private final boolean java; - /** * Used to find import statements when folding Java code. */ private static final char[] KEYWORD_IMPORT = "import".toCharArray(); - /** * Ending of a multi-line comment in C, C++, Java, etc. */ protected static final char[] C_MLC_END = "*/".toCharArray(); - - + /** * Creates a fold parser that identifies foldable regions via curly braces * as well as C-style multi-line comments. @@ -72,23 +68,23 @@ public class CurlyFoldParser implements FoldParser { public CurlyFoldParser() { this(true, false); } - - + /** * Constructor. * - * @param cStyleMultiLineComments Whether to scan for C-style multi-line - * comments and make them foldable. - * @param java Whether this parser is folding Java. This adds extra - * parsing rules, such as grouping all import statements into a - * fold section. + * @param cStyleMultiLineComments + * Whether to scan for C-style multi-line + * comments and make them foldable. + * @param java + * Whether this parser is folding Java. This adds extra + * parsing rules, such as grouping all import statements into a + * fold section. */ public CurlyFoldParser(boolean cStyleMultiLineComments, boolean java) { this.foldableMultiLineComments = cStyleMultiLineComments; this.java = java; } - - + /** * Returns whether multi-line comments are foldable with this parser. * @@ -98,16 +94,13 @@ public class CurlyFoldParser implements FoldParser { public boolean getFoldableMultiLineComments() { return foldableMultiLineComments; } - - + /** * {@inheritDoc} */ @Override public List getFolds(RSyntaxTextArea textArea) { - List folds = new ArrayList(); - Fold currentFold = null; int lineCount = textArea.getLineCount(); boolean inMLC = false; @@ -118,106 +111,91 @@ public class CurlyFoldParser implements FoldParser { int importGroupEndOffs = -1; int lastRightCurlyLine = -1; Fold prevFold = null; - try { - - for (int line=0; line-1) { - if (lastSeenImportLine>importStartLine) { + if (importStartLine > -1) { + if (lastSeenImportLine > importStartLine) { Fold fold = null; - // Any imports found *should* be a top-level fold, - // but we're extra lenient here and allow groups - // of them anywhere to keep our parser better-behaved - // if they have random "imports" throughout code. - if (currentFold==null) { - fold = new Fold(FoldType.IMPORTS, - textArea, importGroupStartOffs); + // Any imports found *should* be a top-level + // fold, + // but we're extra lenient here and allow + // groups + // of them anywhere to keep our parser + // better-behaved + // if they have random "imports" throughout + // code. + if (currentFold == null) { + fold = new Fold(FoldType.IMPORTS, textArea, importGroupStartOffs); folds.add(fold); - } - else { - fold = currentFold.createChild(FoldType.IMPORTS, - importGroupStartOffs); + } else { + fold = currentFold.createChild(FoldType.IMPORTS, importGroupStartOffs); } fold.setEndOffset(importGroupEndOffs); } - importStartLine = lastSeenImportLine = - importGroupStartOffs = importGroupEndOffs = -1; + importStartLine = lastSeenImportLine = importGroupStartOffs = importGroupEndOffs = -1; } - } - if (inMLC) { // If we found the end of an MLC that started // on a previous line... if (t.endsWith(C_MLC_END)) { int mlcEnd = t.getEndOffset() - 1; - if (currentFold==null) { + if (currentFold == null) { currentFold = new Fold(FoldType.COMMENT, textArea, mlcStart); currentFold.setEndOffset(mlcEnd); folds.add(currentFold); currentFold = null; - } - else { + } else { currentFold = currentFold.createChild(FoldType.COMMENT, mlcStart); currentFold.setEndOffset(mlcEnd); currentFold = currentFold.getParent(); } - //System.out.println("Ending MLC at: " + mlcEnd + ", parent==" + currentFold); + // System.out.println("Ending MLC at: " + mlcEnd + // + ", parent==" + currentFold); inMLC = false; mlcStart = 0; } // Otherwise, this MLC is continuing on to yet // another line. - } - else { + } else { // If we're an MLC that ends on a later line... - if (t.getType()!=Token.COMMENT_EOL && !t.endsWith(C_MLC_END)) { - //System.out.println("Starting MLC at: " + t.offset); + if (t.getType() != Token.COMMENT_EOL && !t.endsWith(C_MLC_END)) { + // System.out.println("Starting MLC at: " + + // t.offset); inMLC = true; mlcStart = t.getOffset(); } } - - } - - else if (isLeftCurly(t)) { - + } else if (isLeftCurly(t)) { // Java-specific stuff if (java) { - - if (importStartLine>-1) { - if (lastSeenImportLine>importStartLine) { + if (importStartLine > -1) { + if (lastSeenImportLine > importStartLine) { Fold fold = null; - // Any imports found *should* be a top-level fold, - // but we're extra lenient here and allow groups - // of them anywhere to keep our parser better-behaved - // if they have random "imports" throughout code. - if (currentFold==null) { - fold = new Fold(FoldType.IMPORTS, - textArea, importGroupStartOffs); + // Any imports found *should* be a top-level + // fold, + // but we're extra lenient here and allow + // groups + // of them anywhere to keep our parser + // better-behaved + // if they have random "imports" throughout + // code. + if (currentFold == null) { + fold = new Fold(FoldType.IMPORTS, textArea, importGroupStartOffs); folds.add(fold); - } - else { - fold = currentFold.createChild(FoldType.IMPORTS, - importGroupStartOffs); + } else { + fold = currentFold.createChild(FoldType.IMPORTS, importGroupStartOffs); } fold.setEndOffset(importGroupEndOffs); } - importStartLine = lastSeenImportLine = - importGroupStartOffs = importGroupEndOffs = -1; + importStartLine = lastSeenImportLine = importGroupStartOffs = importGroupEndOffs = -1; } - } - // If a new fold block starts on the same line as the // previous one ends, we treat it as one big block // (e.g. K&R-style "} else {") @@ -228,30 +206,24 @@ public class CurlyFoldParser implements FoldParser { // as possible prevFold = null; lastRightCurlyLine = -1; - } - else if (currentFold==null) { // A top-level fold + } else if (currentFold == null) { // A top-level fold currentFold = new Fold(FoldType.CODE, textArea, t.getOffset()); folds.add(currentFold); - } - else { // A nested fold + } else { // A nested fold currentFold = currentFold.createChild(FoldType.CODE, t.getOffset()); } - - } - - else if (isRightCurly(t)) { - - if (currentFold!=null) { + } else if (isRightCurly(t)) { + if (currentFold != null) { currentFold.setEndOffset(t.getOffset()); Fold parentFold = currentFold.getParent(); - //System.out.println("... Adding regular fold at " + t.offset + ", parent==" + parentFold); + // System.out.println("... Adding regular fold at " + // + t.offset + ", parent==" + parentFold); // Don't add fold markers for single-line blocks if (currentFold.isOnSingleLine()) { if (!currentFold.removeFromParent()) { - folds.remove(folds.size()-1); + folds.remove(folds.size() - 1); } - } - else { + } else { // Remember the end of the last completed fold, // in case it needs to get merged with the next // one (e.g. K&R "} else {" style) @@ -260,79 +232,65 @@ public class CurlyFoldParser implements FoldParser { } currentFold = parentFold; } - } - // Java-specific folding rules else if (java) { - if (t.is(Token.RESERVED_WORD, KEYWORD_IMPORT)) { - if (importStartLine==-1) { + if (importStartLine == -1) { importStartLine = line; importGroupStartOffs = t.getOffset(); importGroupEndOffs = t.getOffset(); } lastSeenImportLine = line; - } - - else if (importStartLine>-1 && - t.isIdentifier() &&//SEPARATOR && + } else if (importStartLine > -1 && t.isIdentifier() && // SEPARATOR + // && t.isSingleChar(';')) { importGroupEndOffs = t.getOffset(); } - } - t = t.getNextToken(); - } - } - } catch (BadLocationException ble) { // Should never happen ble.printStackTrace(); } - return folds; - } - - + /** - * Returns whether the token is a left curly brace. This method exists + * Returns whether the token is a left curly brace. This method exists * so subclasses can provide their own curly brace definition. * - * @param t The token. + * @param t + * The token. * @return Whether it is a left curly brace. * @see #isRightCurly(Token) */ public boolean isLeftCurly(Token t) { return t.isLeftCurly(); } - - + /** - * Returns whether the token is a right curly brace. This method exists + * Returns whether the token is a right curly brace. This method exists * so subclasses can provide their own curly brace definition. * - * @param t The token. + * @param t + * The token. * @return Whether it is a right curly brace. * @see #isLeftCurly(Token) */ public boolean isRightCurly(Token t) { return t.isRightCurly(); } - - + /** * Sets whether multi-line comments are foldable with this parser. * - * @param foldable Whether multi-line comments are foldable. + * @param foldable + * Whether multi-line comments are foldable. * @see #getFoldableMultiLineComments() */ public void setFoldableMultiLineComments(boolean foldable) { this.foldableMultiLineComments = foldable; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/DefaultFoldManager.java b/src/org/fife/ui/rsyntaxtextarea/folding/DefaultFoldManager.java index 719c6d5..fe5f434 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/DefaultFoldManager.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/DefaultFoldManager.java @@ -1,7 +1,6 @@ /* * 10/08/2011 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -28,18 +27,17 @@ import org.fife.ui.rsyntaxtextarea.parser.ParseResult; import org.fife.ui.rsyntaxtextarea.parser.Parser; import org.fife.ui.rtextarea.RDocument; - /** - * The default implementation of a fold manager. Besides keeping track of + * The default implementation of a fold manager. Besides keeping track of * folds, this class behaves as follows: * *

    - *
  • If text containing a newline is inserted in a collapsed fold, - * that fold, and any ancestor folds, are expanded. This ensures that - * modified text is always visible to the user. - *
  • If the text area's {@link RSyntaxTextArea#SYNTAX_STYLE_PROPERTY} - * changes, the current fold parser is uninstalled, and one appropriate - * for the new language, if any, is installed. + *
  • If text containing a newline is inserted in a collapsed fold, + * that fold, and any ancestor folds, are expanded. This ensures that + * modified text is always visible to the user. + *
  • If the text area's {@link RSyntaxTextArea#SYNTAX_STYLE_PROPERTY} + * changes, the current fold parser is uninstalled, and one appropriate + * for the new language, if any, is installed. *
* * The folding strategy to use is retrieved from {@link FoldParserManager}. @@ -48,7 +46,7 @@ import org.fife.ui.rtextarea.RDocument; * @version 1.0 */ public class DefaultFoldManager implements FoldManager { - + private RSyntaxTextArea textArea; private Parser rstaParser; private FoldParser foldParser; @@ -56,12 +54,12 @@ public class DefaultFoldManager implements FoldManager { private boolean codeFoldingEnabled; private PropertyChangeSupport support; private Listener l; - - + /** * Constructor. * - * @param textArea The text area whose folds we are managing. + * @param textArea + * The text area whose folds we are managing. */ public DefaultFoldManager(RSyntaxTextArea textArea) { this.textArea = textArea; @@ -73,48 +71,39 @@ public class DefaultFoldManager implements FoldManager { folds = new ArrayList(); updateFoldParser(); } - - + @Override public void addPropertyChangeListener(PropertyChangeListener l) { support.addPropertyChangeListener(l); } - - + @Override public void clear() { folds.clear(); } - - + @Override public boolean ensureOffsetNotInClosedFold(int offs) { - boolean foldsOpened = false; Fold fold = getDeepestFoldContaining(offs); - - while (fold!=null) { + while (fold != null) { if (fold.isCollapsed()) { fold.setCollapsed(false); foldsOpened = true; } fold = fold.getParent(); } - if (foldsOpened) { // Folds changing state mean gutter is stale RSyntaxUtilities.possiblyRepaintGutter(textArea); } - return foldsOpened; - } - - + @Override public Fold getDeepestFoldContaining(int offs) { Fold deepestFold = null; - if (offs>-1) { - for (int i=0; i -1) { + for (int i = 0; i < folds.size(); i++) { Fold fold = getFold(i); if (fold.containsOffset(offs)) { deepestFold = fold.getDeepestFoldContaining(offs); @@ -124,15 +113,12 @@ public class DefaultFoldManager implements FoldManager { } return deepestFold; } - - + @Override public Fold getDeepestOpenFoldContaining(int offs) { - Fold deepestFold = null; - - if (offs>-1) { - for (int i=0; i -1) { + for (int i = 0; i < folds.size(); i++) { Fold fold = getFold(i); if (fold.containsOffset(offs)) { if (fold.isCollapsed()) { @@ -143,61 +129,48 @@ public class DefaultFoldManager implements FoldManager { } } } - return deepestFold; - } - - + @Override public Fold getFold(int index) { return folds.get(index); } - - + @Override public int getFoldCount() { return folds.size(); } - - + @Override public Fold getFoldForLine(int line) { return getFoldForLineImpl(null, folds, line); } - - -private Fold getFoldForLineImpl(Fold parent, List folds, int line) { - - int low = 0; - int high = folds.size() - 1; - - while (low <= high) { - int mid = (low + high) >> 1; - Fold midFold = folds.get(mid); - int startLine = midFold.getStartLine(); - if (line==startLine) { - return midFold; - } - else if (line=endLine) { - low = mid + 1; - } - else { // line>startLine && line<=endLine - List children = midFold.getChildren(); - return children!=null ? getFoldForLineImpl(midFold, children, line) : null; + + private Fold getFoldForLineImpl(Fold parent, List folds, int line) { + int low = 0; + int high = folds.size() - 1; + while (low <= high) { + int mid = (low + high) >> 1; + Fold midFold = folds.get(mid); + int startLine = midFold.getStartLine(); + if (line == startLine) { + return midFold; + } else if (line < startLine) { + high = mid - 1; + } else { + int endLine = midFold.getEndLine(); + if (line >= endLine) { + low = mid + 1; + } else { // line>startLine && line<=endLine + List children = midFold.getChildren(); + return children != null ? getFoldForLineImpl(midFold, children, line) : null; + } } } + return null; // No fold for this line } - - return null; // No fold for this line -} - - + @Override public int getHiddenLineCount() { int count = 0; @@ -206,89 +179,78 @@ private Fold getFoldForLineImpl(Fold parent, List folds, int line) { } return count; } - - + @Override public int getHiddenLineCountAbove(int line) { return getHiddenLineCountAbove(line, false); } - - + @Override public int getHiddenLineCountAbove(int line, boolean physical) { - int count = 0; - for (Fold fold : folds) { - int comp = physical ? line+count : line; - if (fold.getStartLine()>=comp) { + int comp = physical ? line + count : line; + if (fold.getStartLine() >= comp) { break; } count += getHiddenLineCountAboveImpl(fold, comp, physical); } - return count; - } - - + /** * Returns the number of lines "hidden" by collapsed folds above the * specified line. * - * @param fold The current fold in the recursive algorithm. It and its - * children are examined. - * @param line The line. - * @param physical Whether line is the number of a physical - * line (i.e. visible, not code-folded), or a logical one (i.e. any - * line from the model). If line was determined by a - * raw line calculation (i.e. (visibleTopY / lineHeight)), - * this value should be true. It should be - * false when it was calculated from an offset in the - * document (for example). + * @param fold + * The current fold in the recursive algorithm. It and its + * children are examined. + * @param line + * The line. + * @param physical + * Whether line is the number of a physical + * line (i.e. visible, not code-folded), or a logical one (i.e. + * any + * line from the model). If line was determined by a + * raw line calculation (i.e. + * (visibleTopY / lineHeight)), + * this value should be true. It should be + * false when it was calculated from an offset in + * the + * document (for example). * @return The number of lines hidden in folds that are descendants of * fold, or fold itself, above * line. */ private int getHiddenLineCountAboveImpl(Fold fold, int line, boolean physical) { - int count = 0; - - if (fold.getEndLine()=comp) { + int comp = physical ? line + count : line; + if (child.getStartLine() >= comp) { break; } count += getHiddenLineCountAboveImpl(child, comp, physical); } } - return count; - } - - + @Override public int getLastVisibleLine() { - int lastLine = textArea.getLineCount() - 1; - if (isCodeFoldingSupportedAndEnabled()) { int foldCount = getFoldCount(); - if (foldCount>0) { - Fold lastFold = getFold(foldCount-1); + if (foldCount > 0) { + Fold lastFold = getFold(foldCount - 1); if (lastFold.containsLine(lastLine)) { if (lastFold.isCollapsed()) { lastLine = lastFold.getStartLine(); - } - else { // Child fold may end on the same line as parent + } else { // Child fold may end on the same line as parent while (lastFold.getHasChildFolds()) { lastFold = lastFold.getLastChild(); if (lastFold.containsLine(lastLine)) { @@ -296,8 +258,7 @@ private Fold getFoldForLineImpl(Fold parent, List folds, int line) { lastLine = lastFold.getStartLine(); break; } - } - else { // Higher up + } else { // Higher up break; } } @@ -305,199 +266,165 @@ private Fold getFoldForLineImpl(Fold parent, List folds, int line) { } } } - return lastLine; - } - - + @Override public int getVisibleLineAbove(int line) { - - if (line<=0 || line>=textArea.getLineCount()) { + if (line <= 0 || line >= textArea.getLineCount()) { return -1; } - do { line--; - } while (line>=0 && isLineHidden(line)); - + } while (line >= 0 && isLineHidden(line)); return line; - } - - + @Override public int getVisibleLineBelow(int line) { - int lineCount = textArea.getLineCount(); - if (line<0 || line>=lineCount-1) { + if (line < 0 || line >= lineCount - 1) { return -1; } - do { line++; - } while (line> 1; -// Fold midVal = (Fold)allFolds.get(mid); -// if (midVal.containsLine(line)) { -// return mid; -// } -// if (line<=midVal.getStartLine()) { -// high = mid - 1; -// } -// else { // line > midVal.getEndLine() -// low = mid + 1; -// } -// } -// -// return -(low + 1); // key not found -// -// } - - + + // private static int binaryFindFoldContainingLine(int line) { + // + // List allFolds; + // + // int low = 0; + // int high = allFolds.size() - 1; + // + // while (low <= high) { + // int mid = (low + high) >> 1; + // Fold midVal = (Fold)allFolds.get(mid); + // if (midVal.containsLine(line)) { + // return mid; + // } + // if (line<=midVal.getStartLine()) { + // high = mid - 1; + // } + // else { // line > midVal.getEndLine() + // low = mid + 1; + // } + // } + // + // return -(low + 1); // key not found + // + // } @Override public boolean isCodeFoldingEnabled() { return codeFoldingEnabled; } - - + @Override public boolean isCodeFoldingSupportedAndEnabled() { - return codeFoldingEnabled && foldParser!=null; + return codeFoldingEnabled && foldParser != null; } - - + @Override public boolean isFoldStartLine(int line) { - return getFoldForLine(line)!=null; + return getFoldForLine(line) != null; } - - + @Override public boolean isLineHidden(int line) { for (Fold fold : folds) { if (fold.containsLine(line)) { if (fold.isCollapsed()) { return true; - } - else { + } else { return isLineHiddenImpl(fold, line); } } } return false; } - - + private boolean isLineHiddenImpl(Fold parent, int line) { - for (int i=0; i oldFolds) { int previousLoc = Collections.binarySearch(oldFolds, newFold); - //System.out.println(newFold + " => " + previousLoc); - if (previousLoc>=0) { + // System.out.println(newFold + " => " + previousLoc); + if (previousLoc >= 0) { Fold prevFold = oldFolds.get(previousLoc); newFold.setCollapsed(prevFold.isCollapsed()); - } - else { - //previousLoc = -(insertion point) - 1; + } else { + // previousLoc = -(insertion point) - 1; int insertionPoint = -(previousLoc + 1); - if (insertionPoint>0) { - Fold possibleParentFold = oldFolds.get(insertionPoint-1); - if (possibleParentFold.containsOffset( - newFold.getStartOffset())) { + if (insertionPoint > 0) { + Fold possibleParentFold = oldFolds.get(insertionPoint - 1); + if (possibleParentFold.containsOffset(newFold.getStartOffset())) { List children = possibleParentFold.getChildren(); - if (children!=null) { + if (children != null) { keepFoldState(newFold, children); } } } } } - - + private void keepFoldStates(List newFolds, List oldFolds) { for (Fold newFold : newFolds) { keepFoldState(newFold, folds); List newChildFolds = newFold.getChildren(); - if (newChildFolds!=null) { + if (newChildFolds != null) { keepFoldStates(newChildFolds, oldFolds); } } } - - + @Override public void removePropertyChangeListener(PropertyChangeListener l) { support.removePropertyChangeListener(l); } - - + @Override public void reparse() { - - if (codeFoldingEnabled && foldParser!=null) { - - // Re-calculate folds. Keep the fold state of folds that are + if (codeFoldingEnabled && foldParser != null) { + // Re-calculate folds. Keep the fold state of folds that are // still around. List newFolds = foldParser.getFolds(textArea); - if (newFolds==null) { + if (newFolds == null) { newFolds = Collections.emptyList(); - } - else { + } else { keepFoldStates(newFolds, folds); } folds = newFolds; - // Let folks (gutter, etc.) know that folds have been updated. support.firePropertyChange(PROPERTY_FOLDS_UPDATED, null, folds); textArea.repaint(); - - } - else { + } else { folds.clear(); } - } - - + @Override public void setCodeFoldingEnabled(boolean enabled) { - if (enabled!=codeFoldingEnabled) { + if (enabled != codeFoldingEnabled) { codeFoldingEnabled = enabled; - if (rstaParser!=null) { + if (rstaParser != null) { textArea.removeParser(rstaParser); } if (enabled) { rstaParser = new AbstractParser() { + @Override public ParseResult parse(RSyntaxDocument doc, String style) { reparse(); @@ -506,46 +433,40 @@ private Fold getFoldForLineImpl(Fold parent, List folds, int line) { }; textArea.addParser(rstaParser); support.firePropertyChange(PROPERTY_FOLDS_UPDATED, null, null); - //reparse(); - } - else { + // reparse(); + } else { folds = Collections.emptyList(); textArea.repaint(); support.firePropertyChange(PROPERTY_FOLDS_UPDATED, null, null); } } } - - + @Override public void setFolds(List folds) { this.folds = folds; } - - + /** * Updates the fold parser to be the one appropriate for the language * currently being highlighted. */ private void updateFoldParser() { - foldParser = FoldParserManager.get().getFoldParser( - textArea.getSyntaxEditingStyle()); + foldParser = FoldParserManager.get().getFoldParser(textArea.getSyntaxEditingStyle()); } - - + /** * Listens for events in the text editor. */ private class Listener implements DocumentListener, PropertyChangeListener { - + @Override - public void changedUpdate(DocumentEvent e) { - } - + public void changedUpdate(DocumentEvent e) {} + @Override public void insertUpdate(DocumentEvent e) { // Adding text containing a newline to the visible line of a folded - // Fold causes that Fold to unfold. Check only start offset of + // Fold causes that Fold to unfold. Check only start offset of // insertion since that's the line that was "modified". int startOffs = e.getOffset(); int endOffs = startOffs + e.getLength(); @@ -553,60 +474,52 @@ private Fold getFoldForLineImpl(Fold parent, List folds, int line) { Element root = doc.getDefaultRootElement(); int startLine = root.getElementIndex(startOffs); int endLine = root.getElementIndex(endOffs); - if (startLine!=endLine) { // Inserted text covering > 1 line... + if (startLine != endLine) { // Inserted text covering > 1 line... Fold fold = getFoldForLine(startLine); - if (fold!=null && fold.isCollapsed()) { + if (fold != null && fold.isCollapsed()) { fold.toggleCollapsedState(); } } } - + @Override public void propertyChange(PropertyChangeEvent e) { - String name = e.getPropertyName(); - if (RSyntaxTextArea.SYNTAX_STYLE_PROPERTY.equals(name)) { // Syntax style changed in editor. updateFoldParser(); reparse(); // Even if no fold parser change, highlighting did - } - - else if ("document".equals(name)) { + } else if ("document".equals(name)) { // The document switched out from under us - RDocument old = (RDocument)e.getOldValue(); + RDocument old = (RDocument) e.getOldValue(); if (old != null) { old.removeDocumentListener(this); } - RDocument newDoc = (RDocument)e.getNewValue(); + RDocument newDoc = (RDocument) e.getNewValue(); if (newDoc != null) { newDoc.addDocumentListener(this); } reparse(); } - } - + @Override public void removeUpdate(DocumentEvent e) { // Removing text from the visible line of a folded Fold causes that - // Fold to unfold. We only need to check the removal offset since + // Fold to unfold. We only need to check the removal offset since // that's the new caret position. int offs = e.getOffset(); try { int lastLineModified = textArea.getLineOfOffset(offs); - //System.out.println(">>> " + lastLineModified); + // System.out.println(">>> " + lastLineModified); Fold fold = getFoldForLine(lastLineModified); - //System.out.println("&&& " + fold); - if (fold!=null && fold.isCollapsed()) { + // System.out.println("&&& " + fold); + if (fold != null && fold.isCollapsed()) { fold.toggleCollapsedState(); } } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/Fold.java b/src/org/fife/ui/rsyntaxtextarea/folding/Fold.java index 287f81c..acfede2 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/Fold.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/Fold.java @@ -1,32 +1,32 @@ /* * 10/08/2011 - * * Fold.java - A foldable region of text in an RSyntaxTextArea instance. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; import java.util.ArrayList; import java.util.List; + import javax.swing.text.BadLocationException; import javax.swing.text.Element; import javax.swing.text.Position; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; - /** - * Information about a foldable region.

+ * Information about a foldable region. + *

* * A Fold has zero or more children, and Folds thus * form a hierarchical structure, with "parent" folds containing the info about - * any "child" folds they contain.

+ * any "child" folds they contain. + *

* * Fold regions are denoted by a starting and ending offset, but the actual * folding is done on a per-line basis, so Fold instances provide - * methods for retrieving both starting and ending offsets and lines. The + * methods for retrieving both starting and ending offsets and lines. The * starting and ending offsets/lines are "sticky" and correctly track their * positions even as the document is modified. * @@ -34,7 +34,7 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; * @version 1.0 */ public class Fold implements Comparable { - + private int type; private RSyntaxTextArea textArea; private Position startOffs; @@ -43,134 +43,131 @@ public class Fold implements Comparable { private List children; private boolean collapsed; private int childCollapsedLineCount; - private int lastStartOffs = -1; private int cachedStartLine; - private int lastEndOffs = -1; private int cachedEndLine; - - - public Fold(int type, RSyntaxTextArea textArea, int startOffs) - throws BadLocationException { + + public Fold(int type, RSyntaxTextArea textArea, int startOffs) throws BadLocationException { this.type = type; this.textArea = textArea; this.startOffs = textArea.getDocument().createPosition(startOffs); } - - + /** * Creates a fold that is a child of this one. * - * @param type The type of fold. - * @param startOffs The starting offset of the fold. + * @param type + * The type of fold. + * @param startOffs + * The starting offset of the fold. * @return The child fold. - * @throws BadLocationException If startOffs is invalid. + * @throws BadLocationException + * If startOffs is invalid. * @see FoldType */ public Fold createChild(int type, int startOffs) throws BadLocationException { Fold child = new Fold(type, textArea, startOffs); child.parent = this; - if (children==null) { + if (children == null) { children = new ArrayList(); } children.add(child); return child; } - - + /** * Two folds are considered equal if they start at the same offset. * - * @param otherFold Another fold to compare this one to. + * @param otherFold + * Another fold to compare this one to. * @return How this fold compares to the other. */ @Override public int compareTo(Fold otherFold) { int result = -1; - if (otherFold!=null) { + if (otherFold != null) { result = startOffs.getOffset() - otherFold.startOffs.getOffset(); - //result = getStartLine() - otherFold.getStartLine(); + // result = getStartLine() - otherFold.getStartLine(); } return result; } - - + /** - * Returns whether the specified line would be hidden in this fold. Since + * Returns whether the specified line would be hidden in this fold. Since * RSTA displays the "first" line in a fold, this means that the line must * must be between (getStartLine()+1) and * getEndLine(), inclusive. * - * @param line The line to check. + * @param line + * The line to check. * @return Whether the line would be hidden if this fold is collapsed. * @see #containsOffset(int) * @see #containsOrStartsOnLine(int) */ public boolean containsLine(int line) { - return line>getStartLine() && line<=getEndLine(); + return line > getStartLine() && line <= getEndLine(); } - - + /** * Returns whether the given line is in the range * [getStartLine(), getEndLine()], inclusive. * - * @param line The line to check. + * @param line + * The line to check. * @return Whether this fold contains, or starts on, the line. * @see #containsLine(int) */ public boolean containsOrStartsOnLine(int line) { - return line>=getStartLine() && line<=getEndLine(); + return line >= getStartLine() && line <= getEndLine(); } - - + /** - * Returns whether the specified offset is "inside" the fold. This method + * Returns whether the specified offset is "inside" the fold. This method * returns true if the offset is greater than the fold start * offset, and no further than the last offset of the last folded line. * - * @param offs The offset to check. + * @param offs + * The offset to check. * @return Whether the offset is "inside" the fold. * @see #containsLine(int) */ public boolean containsOffset(int offs) { boolean contained = false; - if (offs>getStartOffset()) { + if (offs > getStartOffset()) { // Use Elements to avoid BadLocationExceptions Element root = textArea.getDocument().getDefaultRootElement(); int line = root.getElementIndex(offs); - contained = line<=getEndLine(); + contained = line <= getEndLine(); } return contained; } - - + /** * Two folds are considered equal if they have the same starting offset. * - * @param otherFold Another fold to compare this one to. + * @param otherFold + * Another fold to compare this one to. * @return Whether the two folds are equal. * @see #compareTo(Fold) */ @Override public boolean equals(Object otherFold) { - return otherFold instanceof Fold && compareTo((Fold)otherFold)==0; + return otherFold instanceof Fold && compareTo((Fold) otherFold) == 0; } - - + /** * Returns a specific child fold. * - * @param index The index of the child fold. + * @param index + * The index of the child fold. * @return The child fold. * @see #getChildCount() */ public Fold getChild(int index) { return children.get(index); } - - + /** * Returns the number of child folds. * @@ -178,12 +175,11 @@ public class Fold implements Comparable { * @see #getChild(int) */ public int getChildCount() { - return children==null ? 0 : children.size(); + return children == null ? 0 : children.size(); } - - + /** - * Returns the array of child folds. This is a shallow copy. + * Returns the array of child folds. This is a shallow copy. * * @return The array of child folds, or null if there are * none. @@ -191,13 +187,13 @@ public class Fold implements Comparable { List getChildren() { return children; } - - + /** - * Returns the number of collapsed lines under this fold. If this fold + * Returns the number of collapsed lines under this fold. If this fold * is collapsed, this method returns {@link #getLineCount()}, otherwise * it returns the sum of all collapsed lines of all child folds of this - * one.

+ * one. + *

* * The value returned is cached, so this method returns quickly and * shouldn't affect performance. @@ -207,21 +203,21 @@ public class Fold implements Comparable { public int getCollapsedLineCount() { return collapsed ? getLineCount() : childCollapsedLineCount; } - - + /** - * Returns the "deepest" fold containing the specified offset. It is + * Returns the "deepest" fold containing the specified offset. It is * assumed that it's already been verified that offs is indeed * contained in this fold. * - * @param offs The offset. + * @param offs + * The offset. * @return The fold, or null if no child fold also contains * the offset. * @see FoldManager#getDeepestFoldContaining(int) */ Fold getDeepestFoldContaining(int offs) { Fold deepestFold = this; - for (int i=0; i { } return deepestFold; } - - + /** - * Returns the "deepest" open fold containing the specified offset. It + * Returns the "deepest" open fold containing the specified offset. It * is assumed that it's already been verified that offs is * indeed contained in this fold. * - * @param offs The offset. + * @param offs + * The offset. * @return The fold, or null if no open fold contains the * offset. * @see FoldManager#getDeepestOpenFoldContaining(int) */ Fold getDeepestOpenFoldContaining(int offs) { - Fold deepestFold = this; - - for (int i=0; i { break; } } - return deepestFold; - } - - + /** - * Returns the end line of this fold. For example, in languages such as + * Returns the end line of this fold. For example, in languages such as * C and Java, this might be the line containing the closing curly brace of - * a code block.

+ * a code block. + *

* * The value returned by this method will automatically update as the * text area's contents are modified, to track the ending line of the @@ -277,37 +269,36 @@ public class Fold implements Comparable { */ public int getEndLine() { int endOffs = getEndOffset(); - if (lastEndOffs==endOffs) { + if (lastEndOffs == endOffs) { return cachedEndLine; } lastEndOffs = endOffs; Element root = textArea.getDocument().getDefaultRootElement(); return cachedEndLine = root.getElementIndex(endOffs); } - - + /** - * Returns the end offset of this fold. For example, in languages such as + * Returns the end offset of this fold. For example, in languages such as * C and Java, this might be the offset of the closing curly brace of a - * code block.

+ * code block. + *

* * The value returned by this method will automatically update as the * text area's contents are modified, to track the ending offset of the * code block. * * @return The end offset of this code block, or {@link Integer#MAX_VALUE} - * if this fold region isn't closed properly. The latter causes + * if this fold region isn't closed properly. The latter causes * this fold to collapsed all lines through the end of the file. * @see #getEndLine() * @see #getStartOffset() */ public int getEndOffset() { - return endOffs!=null ? endOffs.getOffset() : Integer.MAX_VALUE; + return endOffs != null ? endOffs.getOffset() : Integer.MAX_VALUE; } - - + /** - * Returns the type of fold this is. This will be one of the values in + * Returns the type of fold this is. This will be one of the values in * {@link FoldType}, or a user-defined value. * * @return The type of fold this is. @@ -315,8 +306,7 @@ public class Fold implements Comparable { public int getFoldType() { return type; } - - + /** * Returns whether this fold has any child folds. * @@ -324,10 +314,9 @@ public class Fold implements Comparable { * @see #getChildCount() */ public boolean getHasChildFolds() { - return getChildCount()>0; + return getChildCount() > 0; } - - + /** * Returns the last child fold. * @@ -338,10 +327,9 @@ public class Fold implements Comparable { */ public Fold getLastChild() { int childCount = getChildCount(); - return childCount==0 ? null : getChild(childCount-1); + return childCount == 0 ? null : getChild(childCount - 1); } - - + /** * Returns the number of lines that are hidden when this fold is * collapsed. @@ -353,8 +341,7 @@ public class Fold implements Comparable { public int getLineCount() { return getEndLine() - getStartLine(); } - - + /** * Returns the parent fold of this one. * @@ -364,11 +351,11 @@ public class Fold implements Comparable { public Fold getParent() { return parent; } - - + /** - * Returns the starting line of this fold region. This is the only line - * in the fold region that is not hidden when a fold is collapsed.

+ * Returns the starting line of this fold region. This is the only line + * in the fold region that is not hidden when a fold is collapsed. + *

* * The value returned by this method will automatically update as the * text area's contents are modified, to track the starting line of the @@ -380,19 +367,19 @@ public class Fold implements Comparable { */ public int getStartLine() { int startOffs = getStartOffset(); - if (lastStartOffs==startOffs) { + if (lastStartOffs == startOffs) { return cachedStartLine; } lastStartOffs = startOffs; Element root = textArea.getDocument().getDefaultRootElement(); return cachedStartLine = root.getElementIndex(startOffs); } - - + /** - * Returns the starting offset of this fold region. For example, for + * Returns the starting offset of this fold region. For example, for * languages such as C and Java, this would be the offset of the opening - * curly brace of a code block.

+ * curly brace of a code block. + *

* * The value returned by this method will automatically update as the * text area's contents are modified, to track the starting offset of the @@ -405,14 +392,12 @@ public class Fold implements Comparable { public int getStartOffset() { return startOffs.getOffset(); } - - + @Override public int hashCode() { return getStartLine(); } - - + /** * Returns whether this fold is collapsed. * @@ -423,10 +408,9 @@ public class Fold implements Comparable { public boolean isCollapsed() { return collapsed; } - - + /** - * Returns whether this fold is entirely on a single line. In general, + * Returns whether this fold is entirely on a single line. In general, * a {@link FoldParser} should not remember fold regions all on a single * line, since there's really nothing to fold. * @@ -434,12 +418,11 @@ public class Fold implements Comparable { * @see #removeFromParent() */ public boolean isOnSingleLine() { - return getStartLine()==getEndLine(); + return getStartLine() == getEndLine(); } - - + /** - * Removes this fold from its parent. This should only be called by + * Removes this fold from its parent. This should only be called by * {@link FoldParser} implementations if they determine that a fold is all * on a single line (and thus shouldn't be remembered) after creating it. * @@ -447,45 +430,41 @@ public class Fold implements Comparable { * @see #isOnSingleLine() */ public boolean removeFromParent() { - if (parent!=null) { + if (parent != null) { parent.removeMostRecentChild(); parent = null; return true; } return false; } - - + private void removeMostRecentChild() { - children.remove(children.size()-1); + children.remove(children.size() - 1); } - - + /** - * Sets whether this Fold is collapsed. Calling this method + * Sets whether this Fold is collapsed. Calling this method * will update both the text area and all Gutter components. * - * @param collapsed Whether this fold should be collapsed. + * @param collapsed + * Whether this fold should be collapsed. * @see #isCollapsed() * @see #toggleCollapsedState() */ public void setCollapsed(boolean collapsed) { - - if (collapsed!=this.collapsed) { - + if (collapsed != this.collapsed) { // Change our fold state and cached info about folded line count. int lineCount = getLineCount(); int linesToCollapse = lineCount - childCollapsedLineCount; if (!collapsed) { // If we're expanding linesToCollapse = -linesToCollapse; } - //System.out.println("Hiding lines: " + linesToCollapse + - // " (" + lineCount + ", " + linesToCollapse + ")"); + // System.out.println("Hiding lines: " + linesToCollapse + + // " (" + lineCount + ", " + linesToCollapse + ")"); this.collapsed = collapsed; - if (parent!=null) { + if (parent != null) { parent.updateChildCollapsedLineCount(linesToCollapse); } - // If an end point of the selection is being hidden, move the caret // "out" of the fold. if (collapsed) { @@ -495,7 +474,7 @@ public class Fold implements Comparable { boolean updateCaret = containsLine(dotLine); if (!updateCaret) { int mark = textArea.getSelectionEnd(); - if (mark!=dot) { + if (mark != dot) { int markLine = root.getElementIndex(mark); updateCaret = containsLine(markLine); } @@ -505,30 +484,27 @@ public class Fold implements Comparable { textArea.setCaretPosition(dot); } } - textArea.foldToggled(this); - } - } - - + /** * Sets the ending offset of this fold, such as the closing curly brace * of a code block in C or Java. {@link FoldParser} implementations should - * call this on an existing Fold upon finding its end. If + * call this on an existing Fold upon finding its end. If * this method isn't called, then this Fold is considered to * have no end, i.e., it will collapse everything to the end of the file. * - * @param endOffs The end offset of this fold. - * @throws BadLocationException If endOffs is not a valid - * location in the text area. + * @param endOffs + * The end offset of this fold. + * @throws BadLocationException + * If endOffs is not a valid + * location in the text area. */ public void setEndOffset(int endOffs) throws BadLocationException { this.endOffs = textArea.getDocument().createPosition(endOffs); } - - + /** * Toggles the collapsed state of this fold. * @@ -537,19 +513,17 @@ public class Fold implements Comparable { public void toggleCollapsedState() { setCollapsed(!collapsed); } - - + private void updateChildCollapsedLineCount(int count) { childCollapsedLineCount += count; - //if (childCollapsedLineCount>getLineCount()) { - // Thread.dumpStack(); - //} - if (!collapsed && parent!=null) { + // if (childCollapsedLineCount>getLineCount()) { + // Thread.dumpStack(); + // } + if (!collapsed && parent != null) { parent.updateChildCollapsedLineCount(count); } } - - + /** * Overridden for debugging purposes. * @@ -557,12 +531,6 @@ public class Fold implements Comparable { */ @Override public String toString() { - return "[Fold: " + - "startOffs=" + getStartOffset() + - ", endOffs=" + getEndOffset() + - ", collapsed=" + collapsed + - "]"; + return "[Fold: " + "startOffs=" + getStartOffset() + ", endOffs=" + getEndOffset() + ", collapsed=" + collapsed + "]"; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/FoldCollapser.java b/src/org/fife/ui/rsyntaxtextarea/folding/FoldCollapser.java index 7f7cdbf..ead5961 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/FoldCollapser.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/FoldCollapser.java @@ -1,10 +1,8 @@ /* * 10/23/2011 - * * FoldCollapser.java - Goes through an RSTA instance and collapses folds of * specific types, such as comments. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -12,95 +10,91 @@ package org.fife.ui.rsyntaxtextarea.folding; import java.util.ArrayList; import java.util.List; - /** - * Collapses folds based on their type. You can create an instance of this + * Collapses folds based on their type. You can create an instance of this * class to collapse all comment blocks when opening a new file, for example. * * @author Robert Futrell * @version 1.0 */ public class FoldCollapser { - + private List typesToCollapse; - - + /** * Creates an instance that collapses all comment blocks. */ public FoldCollapser() { this(FoldType.COMMENT); } - - + /** * Creates an instance that collapses all blocks of the specified * type. * - * @param typeToCollapse The type to collapse. + * @param typeToCollapse + * The type to collapse. * @see FoldType */ public FoldCollapser(int typeToCollapse) { typesToCollapse = new ArrayList(3); addTypeToCollapse(typeToCollapse); } - - + /** * Adds a type of fold to collapse. * - * @param typeToCollapse The type of fold to collapse. + * @param typeToCollapse + * The type of fold to collapse. */ public void addTypeToCollapse(int typeToCollapse) { typesToCollapse.add(Integer.valueOf(typeToCollapse)); } - - + /** * Collapses any relevant folds known by the fold manager. * - * @param fm The fold manager. + * @param fm + * The fold manager. */ public void collapseFolds(FoldManager fm) { - for (int i=0; i + * Manages code folding in an instance of RSyntaxTextArea. + *

* * By default, {@code RSyntaxTextArea} uses a {@link DefaultFoldManager}, which * is sufficient for almost all applications. @@ -23,69 +21,67 @@ import java.util.List; * @see DefaultFoldManager */ public interface FoldManager { - + /** * Property fired when folds have been updated. */ String PROPERTY_FOLDS_UPDATED = "FoldsUpdated"; - - + /** * Adds a property change listener to this fold manager. * - * @param l The new listener. + * @param l + * The new listener. * @see #removePropertyChangeListener(PropertyChangeListener) */ void addPropertyChangeListener(PropertyChangeListener l); - - + /** * Removes all folds. */ void clear(); - - + /** * Ensures that the specified offset is not hidden in a collapsed fold. * Any folds containing this offset that are collapsed will be expanded. * - * @param offs The offset. + * @param offs + * The offset. * @return Whether any folds had to be opened. * @see #getDeepestFoldContaining(int) */ boolean ensureOffsetNotInClosedFold(int offs); - - + /** * Returns the "deepest" nested fold containing the specified offset. * - * @param offs The offset. + * @param offs + * The offset. * @return The deepest fold containing the offset, or null if * no fold contains the offset. */ Fold getDeepestFoldContaining(int offs); - - + /** * Returns the "deepest" open fold containing the specified offset. * - * @param offs The offset. + * @param offs + * The offset. * @return The fold, or null if no open fold contains the * offset. */ Fold getDeepestOpenFoldContaining(int offs); - - + /** * Returns a specific top-level fold, which may have child folds. * - * @param index The index of the fold. + * @param index + * The index of the fold. * @return The fold. * @see #getFoldCount() */ Fold getFold(int index); - - + /** * Returns the number of top-level folds. * @@ -93,19 +89,18 @@ public interface FoldManager { * @see #getFold(int) */ int getFoldCount(); - - + /** * Returns the fold region that starts at the specified line. * - * @param line The line number. + * @param line + * The line number. * @return The fold, or null if the line is not the start * of a fold region. * @see #isFoldStartLine(int) */ Fold getFoldForLine(int line); - - + /** * Returns the total number of hidden (folded) lines. * @@ -113,38 +108,42 @@ public interface FoldManager { * @see #getHiddenLineCountAbove(int) */ int getHiddenLineCount(); - - + /** * Returns the number of lines "hidden" by collapsed folds above the * specified line. * - * @param line The line. This is the line number for a logical line. - * For the line number of a physical line (i.e. visible, not folded), - * use getHiddenLineCountAbove(int, true). + * @param line + * The line. This is the line number for a logical line. + * For the line number of a physical line (i.e. visible, not + * folded), + * use getHiddenLineCountAbove(int, true). * @return The number of lines hidden in folds above line. * @see #getHiddenLineCountAbove(int, boolean) */ int getHiddenLineCountAbove(int line); - - + /** * Returns the number of lines "hidden" by collapsed folds above the * specified line. * - * @param line The line. - * @param physical Whether line is the number of a physical - * line (i.e. visible, not code-folded), or a logical one (i.e. any - * line from the model). If line was determined by a - * raw line calculation (i.e. (visibleTopY / lineHeight)), - * this value should be true. It should be - * false when it was calculated from an offset in the - * document (for example). + * @param line + * The line. + * @param physical + * Whether line is the number of a physical + * line (i.e. visible, not code-folded), or a logical one (i.e. + * any + * line from the model). If line was determined by a + * raw line calculation (i.e. + * (visibleTopY / lineHeight)), + * this value should be true. It should be + * false when it was calculated from an offset in + * the + * document (for example). * @return The number of lines hidden in folds above line. */ int getHiddenLineCountAbove(int line, boolean physical); - - + /** * Returns the last visible line in the text area, taking into account * folds. @@ -152,16 +151,13 @@ public interface FoldManager { * @return The last visible line. */ int getLastVisibleLine(); - - + int getVisibleLineAbove(int line); - - + int getVisibleLineBelow(int line); - - - /** - * Returns whether code folding is enabled. Note that only certain + + /** + * Returns whether code folding is enabled. Note that only certain * languages support code folding; those that do not will ignore this * property. * @@ -169,8 +165,7 @@ public interface FoldManager { * @see #setCodeFoldingEnabled(boolean) */ boolean isCodeFoldingEnabled(); - - + /** * Returns true if and only if code folding is enabled for * this text area, AND folding is supported for the language it is editing. @@ -182,61 +177,58 @@ public interface FoldManager { * @see FoldParserManager */ boolean isCodeFoldingSupportedAndEnabled(); - - + /** * Returns whether the specified line contains the start of a fold region. * - * @param line The line. + * @param line + * The line. * @return Whether the line contains the start of a fold region. * @see #getFoldForLine(int) */ boolean isFoldStartLine(int line); - - + /** * Returns whether a line is hidden in a collapsed fold. * - * @param line The line to check. + * @param line + * The line to check. * @return Whether the line is hidden in a collapsed fold. */ boolean isLineHidden(int line); - - + /** * Removes a property change listener from this fold manager. * - * @param l The listener to remove. + * @param l + * The listener to remove. * @see #addPropertyChangeListener(PropertyChangeListener) */ void removePropertyChangeListener(PropertyChangeListener l); - - + /** - * Forces an immediate reparsing for folds, if folding is enabled. This + * Forces an immediate reparsing for folds, if folding is enabled. This * usually does not need to be called by the programmer, since fold * parsing is done automatically by RSTA. */ void reparse(); - - + /** - * Sets whether code folding is enabled. Note that only certain - * languages will support code folding out of the box. Those languages + * Sets whether code folding is enabled. Note that only certain + * languages will support code folding out of the box. Those languages * which do not support folding will ignore this property. * - * @param enabled Whether code folding should be enabled. + * @param enabled + * Whether code folding should be enabled. * @see #isCodeFoldingEnabled() */ void setCodeFoldingEnabled(boolean enabled); - - + /** * Sets the folds for this fold manager. * - * @param folds The new folds. This should not be null. + * @param folds + * The new folds. This should not be null. */ void setFolds(List folds); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/FoldParser.java b/src/org/fife/ui/rsyntaxtextarea/folding/FoldParser.java index e679f7f..72deab8 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/FoldParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/FoldParser.java @@ -1,9 +1,7 @@ /* * 10/08/2011 - * * FoldParser.java - Locates folds in an RSyntaxTextArea instance. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -12,12 +10,11 @@ import java.util.List; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; - /** - * Locates folds in a document. If you are implementing a language that has + * Locates folds in a document. If you are implementing a language that has * sections of source code that can be logically "folded," you can create an * instance of this interface that locates those regions and represents them - * as {@link Fold}s. RSyntaxTextArea knows how to take it from + * as {@link Fold}s. RSyntaxTextArea knows how to take it from * there and implement code folding in the editor. * * @author Robert Futrell @@ -26,16 +23,14 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; * @see XmlFoldParser */ public interface FoldParser { - - + /** * Returns a list of all folds in the text area. * - * @param textArea The text area whose contents should be analyzed. - * @return The list of folds. If this method returns null, + * @param textArea + * The text area whose contents should be analyzed. + * @return The list of folds. If this method returns null, * it is treated as if no folds were found. */ List getFolds(RSyntaxTextArea textArea); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/FoldParserManager.java b/src/org/fife/ui/rsyntaxtextarea/folding/FoldParserManager.java index 0c80e13..5eb005e 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/FoldParserManager.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/FoldParserManager.java @@ -1,10 +1,8 @@ /* * 10/08/2011 - * * FoldParserManager.java - Used by RSTA to determine what fold parser to use * for each language it supports. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -14,9 +12,8 @@ import java.util.Map; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; - /** - * Manages fold parsers. Instances of RSyntaxTextArea call into + * Manages fold parsers. Instances of RSyntaxTextArea call into * this class to retrieve fold parsers for whatever language they're editing. * Folks implementing custom languages can add a {@link FoldParser} * implementation for their language to this manager and it will be used by @@ -26,80 +23,73 @@ import org.fife.ui.rsyntaxtextarea.SyntaxConstants; * @version 1.0 */ public final class FoldParserManager implements SyntaxConstants { - + /** * Map from syntax styles to fold parsers. */ private Map foldParserMap; - private static final FoldParserManager INSTANCE = new FoldParserManager(); - - + /** * Private constructor to prevent instantiation. */ private FoldParserManager() { foldParserMap = createFoldParserMap(); } - - + /** - * Adds a mapping from a syntax style to a fold parser. The parser + * Adds a mapping from a syntax style to a fold parser. The parser * specified will be shared among all RSTA instances editing that language, * so it should be stateless (which should not be difficult for a fold - * parser). You can also override the fold parser for built-in languages, + * parser). You can also override the fold parser for built-in languages, * such as SYNTAX_STYLE_JAVA, with your own parser * implementations. * - * @param syntaxStyle The syntax style. - * @param parser The parser. + * @param syntaxStyle + * The syntax style. + * @param parser + * The parser. * @see SyntaxConstants */ public void addFoldParserMapping(String syntaxStyle, FoldParser parser) { foldParserMap.put(syntaxStyle, parser); } - - + /** * Creates the syntax style-to-fold parser mapping for built-in languages. * * @return The style-to-fold parser mapping. */ private Map createFoldParserMap() { - Map map = new HashMap(); - - map.put(SYNTAX_STYLE_C, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_CPLUSPLUS, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_CSHARP, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_CLOJURE, new LispFoldParser()); - map.put(SYNTAX_STYLE_CSS, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_D, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_DART, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_GROOVY, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_HTACCESS, new XmlFoldParser()); - map.put(SYNTAX_STYLE_HTML, new HtmlFoldParser(HtmlFoldParser.LANGUAGE_HTML)); - map.put(SYNTAX_STYLE_JAVA, new CurlyFoldParser(true, true)); - map.put(SYNTAX_STYLE_JAVASCRIPT, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_JSON, new JsonFoldParser()); - map.put(SYNTAX_STYLE_JSON_WITH_COMMENTS,new JsonFoldParser()); - map.put(SYNTAX_STYLE_JSP, new HtmlFoldParser(HtmlFoldParser.LANGUAGE_JSP)); - map.put(SYNTAX_STYLE_LATEX, new LatexFoldParser()); - map.put(SYNTAX_STYLE_LESS, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_LISP, new LispFoldParser()); - map.put(SYNTAX_STYLE_MXML, new XmlFoldParser()); - map.put(SYNTAX_STYLE_NSIS, new NsisFoldParser()); - map.put(SYNTAX_STYLE_PERL, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_PHP, new HtmlFoldParser(HtmlFoldParser.LANGUAGE_PHP)); - map.put(SYNTAX_STYLE_SCALA, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_TYPESCRIPT, new CurlyFoldParser()); - map.put(SYNTAX_STYLE_XML, new XmlFoldParser()); - + map.put(SYNTAX_STYLE_C, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_CPLUSPLUS, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_CSHARP, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_CLOJURE, new LispFoldParser()); + map.put(SYNTAX_STYLE_CSS, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_D, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_DART, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_GROOVY, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_HTACCESS, new XmlFoldParser()); + map.put(SYNTAX_STYLE_HTML, new HtmlFoldParser(HtmlFoldParser.LANGUAGE_HTML)); + map.put(SYNTAX_STYLE_JAVA, new CurlyFoldParser(true, true)); + map.put(SYNTAX_STYLE_JAVASCRIPT, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_JSON, new JsonFoldParser()); + map.put(SYNTAX_STYLE_JSON_WITH_COMMENTS, new JsonFoldParser()); + map.put(SYNTAX_STYLE_JSP, new HtmlFoldParser(HtmlFoldParser.LANGUAGE_JSP)); + map.put(SYNTAX_STYLE_LATEX, new LatexFoldParser()); + map.put(SYNTAX_STYLE_LESS, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_LISP, new LispFoldParser()); + map.put(SYNTAX_STYLE_MXML, new XmlFoldParser()); + map.put(SYNTAX_STYLE_NSIS, new NsisFoldParser()); + map.put(SYNTAX_STYLE_PERL, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_PHP, new HtmlFoldParser(HtmlFoldParser.LANGUAGE_PHP)); + map.put(SYNTAX_STYLE_SCALA, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_TYPESCRIPT, new CurlyFoldParser()); + map.put(SYNTAX_STYLE_XML, new XmlFoldParser()); return map; - } - - + /** * Returns the singleton instance of this class. * @@ -108,20 +98,18 @@ public final class FoldParserManager implements SyntaxConstants { public static FoldParserManager get() { return INSTANCE; } - - + /** * Returns a fold parser to use for an editor highlighting code of a * specific language. * - * @param syntaxStyle A value from {@link SyntaxConstants}, such as - * SYNTAX_STYLE_JAVA. + * @param syntaxStyle + * A value from {@link SyntaxConstants}, such as + * SYNTAX_STYLE_JAVA. * @return A fold parser to use, or null if none is registered * for the language. */ public FoldParser getFoldParser(String syntaxStyle) { return foldParserMap.get(syntaxStyle); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/FoldType.java b/src/org/fife/ui/rsyntaxtextarea/folding/FoldType.java index d609748..d442b13 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/FoldType.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/FoldType.java @@ -1,23 +1,21 @@ /* * 10/08/2011 - * * FoldType.java - Types of folds found in many programming languages. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; - /** - * Constants representing the "type" of a folded region. Implementations of + * Constants representing the "type" of a folded region. Implementations of * {@link FoldParser} can also define their own folded region types, provided - * they give them values of at least {@link #FOLD_TYPE_USER_DEFINED_MIN}. This + * they give them values of at least {@link #FOLD_TYPE_USER_DEFINED_MIN}. This * allows you to identify and auto-fold specific regions of source code when * opening files; for example, a Java editor could identify all import * statements in a file as a foldable region, and give it a user-defined value - * for fold type. Then, the UI could provide a means for the user to specify - * that they always want the import region folded when opening a new file.

+ * for fold type. Then, the UI could provide a means for the user to specify + * that they always want the import region folded when opening a new file. + *

* * The majority of the time, however, code editors won't need to be that fancy, * and can simply use the standard CODE and COMMENT @@ -28,32 +26,27 @@ package org.fife.ui.rsyntaxtextarea.folding; * @see Fold */ public interface FoldType { - + /** * Denotes a Fold as being a region of code. */ - int CODE = 0; - + int CODE = 0; /** * Denotes a Fold as being a multi-line comment. */ - int COMMENT = 1; - + int COMMENT = 1; /** * Denotes a Fold as being a section of import statements * (Java), include statements (C), etc. */ - int IMPORTS = 2; - + int IMPORTS = 2; /** * Users building advanced editors such as IDE's, that want to allow their * users to auto-expand/collapse foldable regions of a specific type other * than comments, should define their custom fold types using values - * FOLD_TYPE_USER_DEFINED_MIN + n. That way, if + * FOLD_TYPE_USER_DEFINED_MIN + n. That way, if * new default fold types are added to this interface in the future, your * code won't suddenly break when upgrading to a new version of RSTA. */ - int FOLD_TYPE_USER_DEFINED_MIN = 1000; - - -} \ No newline at end of file + int FOLD_TYPE_USER_DEFINED_MIN = 1000; +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/HtmlFoldParser.java b/src/org/fife/ui/rsyntaxtextarea/folding/HtmlFoldParser.java index 10e430c..920a347 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/HtmlFoldParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/HtmlFoldParser.java @@ -1,9 +1,7 @@ /* * 09/30/2012 - * * HtmlFoldParser.java - Fold parser for HTML 5 and PHP. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -19,10 +17,9 @@ import javax.swing.text.BadLocationException; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.Token; - /** - * Fold parser for HTML 5, PHP and JSP. For HTML, we currently don't fold - * everything possible, just the "big" stuff. For PHP, we only fold + * Fold parser for HTML 5, PHP and JSP. For HTML, we currently don't fold + * everything possible, just the "big" stuff. For PHP, we only fold * the "big" HTML stuff and PHP regions, not code blocks in the actual PHP. * For JSP we only fold the "big" HTML stuff and JSP blocks, not anything in * the actual Java code. @@ -31,51 +28,41 @@ import org.fife.ui.rsyntaxtextarea.Token; * @version 1.0 */ public class HtmlFoldParser implements FoldParser { - + /** * Constant denoting we're folding HTML. */ - public static final int LANGUAGE_HTML = -1; - + public static final int LANGUAGE_HTML = -1; /** * Constant denoting we're folding PHP. */ - public static final int LANGUAGE_PHP = 0; - + public static final int LANGUAGE_PHP = 0; /** * Constant denoting we're folding JSP. */ - public static final int LANGUAGE_JSP = 1; - + public static final int LANGUAGE_JSP = 1; /** * The language we're folding. */ private final int language; - /** - * The set of tags we allow to be folded. These are tags that must have + * The set of tags we allow to be folded. These are tags that must have * explicit close tags in both HTML 4 and HTML 5. */ private static final Set FOLDABLE_TAGS; - private static final char[] MARKUP_CLOSING_TAG_START = "".toCharArray(); + // private static final char[] MARKUP_SHORT_TAG_END = "/>".toCharArray(); private static final char[] MLC_START = "".toCharArray(); - + private static final char[] MLC_END = "-->".toCharArray(); private static final char[] PHP_START = "".toCharArray(); - // Scriptlets, declarations, and expressions all start the same way. private static final char[] JSP_START = "<%".toCharArray(); private static final char[] JSP_END = "%>".toCharArray(); - private static final char[][] LANG_START = { PHP_START, JSP_START }; - private static final char[][] LANG_END = { PHP_END, JSP_END }; - + private static final char[][] LANG_END = { PHP_END, JSP_END }; private static final char[] JSP_COMMENT_START = "<%--".toCharArray(); - private static final char[] JSP_COMMENT_END = "--%>".toCharArray(); - + private static final char[] JSP_COMMENT_END = "--%>".toCharArray(); static { FOLDABLE_TAGS = new HashSet(); FOLDABLE_TAGS.add("body"); @@ -96,60 +83,50 @@ public class HtmlFoldParser implements FoldParser { FOLDABLE_TAGS.add("td"); FOLDABLE_TAGS.add("ul"); } - - + /** * Constructor. * - * @param language The language to fold, such as {@link #LANGUAGE_PHP}. + * @param language + * The language to fold, such as {@link #LANGUAGE_PHP}. */ public HtmlFoldParser(int language) { - if (languageLANGUAGE_JSP) { + if (language < LANGUAGE_HTML && language > LANGUAGE_JSP) { throw new IllegalArgumentException("Invalid language: " + language); } this.language = language; } - - + /** * {@inheritDoc} */ @Override public List getFolds(RSyntaxTextArea textArea) { - List folds = new ArrayList(); Stack tagNameStack = new Stack(); boolean inSublanguage = false; - Fold currentFold = null; int lineCount = textArea.getLineCount(); boolean inMLC = false; boolean inJSMLC = false; TagCloseInfo tci = new TagCloseInfo(); - try { - - for (int line=0; line=0 && t.getType()==Token.SEPARATOR) { - + if (language >= 0 && t.getType() == Token.SEPARATOR) { // or %> else if (t.startsWith(LANG_END[language]) && currentFold != null) { int phpEnd = t.getEndOffset() - 1; @@ -164,21 +141,19 @@ public class HtmlFoldParser implements FoldParser { t = t.getNextToken(); continue; } - } - if (!inSublanguage) { - - if (t.getType()==Token.COMMENT_MULTILINE) { - + if (t.getType() == Token.COMMENT_MULTILINE) { // Continuing an MLC from a previous line if (inMLC) { - // Found the end of the MLC starting on a previous line... + // Found the end of the MLC starting on a + // previous line... if (t.endsWith(MLC_END)) { int mlcEnd = t.getEndOffset() - 1; currentFold.setEndOffset(mlcEnd); Fold parentFold = currentFold.getParent(); - // Don't add fold markers for single-line blocks + // Don't add fold markers for single-line + // blocks if (currentFold.isOnSingleLine()) { removeFold(currentFold, folds); } @@ -188,15 +163,16 @@ public class HtmlFoldParser implements FoldParser { // Otherwise, this MLC is continuing on to yet // another line. } - // Continuing a JS MLC from a previous line else if (inJSMLC) { - // Found the end of the MLC starting on a previous line... + // Found the end of the MLC starting on a + // previous line... if (t.endsWith(JSP_COMMENT_END)) { int mlcEnd = t.getEndOffset() - 1; currentFold.setEndOffset(mlcEnd); Fold parentFold = currentFold.getParent(); - // Don't add fold markers for single-line blocks + // Don't add fold markers for single-line + // blocks if (currentFold.isOnSingleLine()) { removeFold(currentFold, folds); } @@ -206,56 +182,48 @@ public class HtmlFoldParser implements FoldParser { // Otherwise, this MLC is continuing on to yet // another line. } - // Starting a MLC that ends on a later line... else if (t.startsWith(MLC_START) && !t.endsWith(MLC_END)) { - if (currentFold==null) { + if (currentFold == null) { currentFold = new Fold(FoldType.COMMENT, textArea, t.getOffset()); folds.add(currentFold); - } - else { + } else { currentFold = currentFold.createChild(FoldType.COMMENT, t.getOffset()); } inMLC = true; } - - // Starting a JSP comment that ends on a later line... - else if (language==LANGUAGE_JSP && - t.startsWith(JSP_COMMENT_START) && - !t.endsWith(JSP_COMMENT_END)) { - if (currentFold==null) { + // Starting a JSP comment that ends on a later + // line... + else if (language == LANGUAGE_JSP && t.startsWith(JSP_COMMENT_START) && !t.endsWith(JSP_COMMENT_END)) { + if (currentFold == null) { currentFold = new Fold(FoldType.COMMENT, textArea, t.getOffset()); folds.add(currentFold); - } - else { + } else { currentFold = currentFold.createChild(FoldType.COMMENT, t.getOffset()); } inJSMLC = true; } - } - // If we're starting a new tag... else if (t.isSingleChar(Token.MARKUP_TAG_DELIMITER, '<')) { Token tagStartToken = t; Token tagNameToken = t.getNextToken(); if (isFoldableTag(tagNameToken)) { int newLine = getTagCloseInfo(tagNameToken, textArea, line, tci); - if (tci.line==-1) { // EOF reached before end of tag + if (tci.line == -1) { // EOF reached before end + // of tag return folds; } // We have found either ">" or "/>" with tci. - //System.out.println(line + ", "+ tci + ", " + t); + // System.out.println(line + ", "+ tci + ", " + + // t); Token tagCloseToken = tci.closeToken; if (tagCloseToken.isSingleChar(Token.MARKUP_TAG_DELIMITER, '>')) { - if (currentFold==null) { - currentFold = new Fold(FoldType.CODE, textArea, - tagStartToken.getOffset()); + if (currentFold == null) { + currentFold = new Fold(FoldType.CODE, textArea, tagStartToken.getOffset()); folds.add(currentFold); - } - else { - currentFold = currentFold.createChild(FoldType.CODE, - tagStartToken.getOffset()); + } else { + currentFold = currentFold.createChild(FoldType.CODE, tagStartToken.getOffset()); } tagNameStack.push(tagNameToken.getLexeme()); } @@ -263,17 +231,16 @@ public class HtmlFoldParser implements FoldParser { line = newLine; } } - // If we've found a closing tag (e.g. ""). else if (t.is(Token.MARKUP_TAG_DELIMITER, MARKUP_CLOSING_TAG_START)) { - if (currentFold!=null) { + if (currentFold != null) { Token tagNameToken = t.getNextToken(); - if (isFoldableTag(tagNameToken) && - isEndOfLastFold(tagNameStack, tagNameToken)) { + if (isFoldableTag(tagNameToken) && isEndOfLastFold(tagNameStack, tagNameToken)) { tagNameStack.pop(); currentFold.setEndOffset(t.getOffset()); Fold parentFold = currentFold.getParent(); - // Don't add fold markers for single-line blocks + // Don't add fold markers for single-line + // blocks if (currentFold.isOnSingleLine()) { removeFold(currentFold, folds); } @@ -282,131 +249,111 @@ public class HtmlFoldParser implements FoldParser { } } } - } - t = t.getNextToken(); - } - } - } catch (BadLocationException ble) { // Should never happen ble.printStackTrace(); } - return folds; - } - - + /** * Grabs the token representing the closing of a tag (i.e. - * ">" or "/>"). This should only be - * called after a tag name has been parsed, to ensure the "closing" of + * ">" or "/>"). This should only be + * called after a tag name has been parsed, to ensure the "closing" of * other tags is not identified. * - * @param tagNameToken The token denoting the name of the tag. - * @param textArea The text area whose contents are being parsed. - * @param line The line we're currently on. - * @param info On return, information about the closing of the tag is - * returned in this object. + * @param tagNameToken + * The token denoting the name of the tag. + * @param textArea + * The text area whose contents are being parsed. + * @param line + * The line we're currently on. + * @param info + * On return, information about the closing of the tag is + * returned in this object. * @return The line number of the closing tag token. */ - private int getTagCloseInfo(Token tagNameToken, RSyntaxTextArea textArea, - int line, TagCloseInfo info) { - + private int getTagCloseInfo(Token tagNameToken, RSyntaxTextArea textArea, int line, TagCloseInfo info) { info.reset(); Token t = tagNameToken.getNextToken(); - do { - - while (t!=null && t.getType()!=Token.MARKUP_TAG_DELIMITER) { + while (t != null && t.getType() != Token.MARKUP_TAG_DELIMITER) { t = t.getNextToken(); } - - if (t!=null) { + if (t != null) { info.closeToken = t; info.line = line; break; } - - } while (++line</...>") with a * specific name is the closing tag of our current fold region. * - * @param tagNameStack The stack of fold regions. - * @param tagNameToken The tag name of the most recently parsed closing - * tag. + * @param tagNameStack + * The stack of fold regions. + * @param tagNameToken + * The tag name of the most recently parsed closing + * tag. * @return Whether it's the end of the current fold region. */ - private static boolean isEndOfLastFold(Stack tagNameStack, - Token tagNameToken) { - if (tagNameToken!=null && !tagNameStack.isEmpty()) { + private static boolean isEndOfLastFold(Stack tagNameStack, Token tagNameToken) { + if (tagNameToken != null && !tagNameStack.isEmpty()) { return tagNameToken.getLexeme().equalsIgnoreCase(tagNameStack.peek()); } return false; } - - + /** * Returns whether a tag is one we allow as a foldable region. * - * @param tagNameToken The tag's name token. This may be null. + * @param tagNameToken + * The tag's name token. This may be null. * @return Whether this tag can be a foldable region. */ private static boolean isFoldableTag(Token tagNameToken) { - return tagNameToken!=null && - FOLDABLE_TAGS.contains(tagNameToken.getLexeme().toLowerCase()); + return tagNameToken != null && FOLDABLE_TAGS.contains(tagNameToken.getLexeme().toLowerCase()); } - - + /** * If this fold has a parent fold, this method removes it from its parent. * Otherwise, it's assumed to be the most recent (top-level) fold in the * folds list, and is removed from that. * - * @param fold The fold to remove. - * @param folds The list of top-level folds. + * @param fold + * The fold to remove. + * @param folds + * The list of top-level folds. */ private static void removeFold(Fold fold, List folds) { if (!fold.removeFromParent()) { - folds.remove(folds.size()-1); + folds.remove(folds.size() - 1); } } - - + /** * A simple wrapper for the token denoting the closing of a tag (i.e. * ">" or "/>"). */ private static class TagCloseInfo { - + private Token closeToken; private int line; - + public void reset() { closeToken = null; line = -1; } - + @Override public String toString() { - return "[TagCloseInfo: " + - "closeToken=" + closeToken + - ", line=" + line + - "]"; + return "[TagCloseInfo: " + "closeToken=" + closeToken + ", line=" + line + "]"; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/JsonFoldParser.java b/src/org/fife/ui/rsyntaxtextarea/folding/JsonFoldParser.java index a5dee88..4d438c1 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/JsonFoldParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/JsonFoldParser.java @@ -1,9 +1,7 @@ /* * 12/23/2012 - * * JsonFoldParser.java - Fold parser for JSON. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -18,9 +16,8 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenTypes; - /** - * The fold parser for JSON. Objects ("{ ... }") and arrays + * The fold parser for JSON. Objects ("{ ... }") and arrays * ("[ ... ]") that span multiple lines are considered fold * regions. * @@ -28,136 +25,116 @@ import org.fife.ui.rsyntaxtextarea.TokenTypes; * @version 1.0 */ public class JsonFoldParser implements FoldParser { - + private static final Object OBJECT_BLOCK = new Object(); private static final Object ARRAY_BLOCK = new Object(); - - + /** * {@inheritDoc} */ @Override public List getFolds(RSyntaxTextArea textArea) { - Stack blocks = new Stack(); List folds = new ArrayList(); - Fold currentFold = null; int lineCount = textArea.getLineCount(); - try { - - for (int line=0; linetrue. Otherwise, return false. + * true. Otherwise, return false. * - * @param stack The stack. - * @param value The value to check for. + * @param stack + * The stack. + * @param value + * The value to check for. * @return Whether the value was found on top of the stack. */ private static boolean popOffTop(Stack stack, Object value) { - if (stack.size()>0 && stack.peek()==value) { + if (stack.size() > 0 && stack.peek() == value) { stack.pop(); return true; } return false; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/folding/LatexFoldParser.java b/src/org/fife/ui/rsyntaxtextarea/folding/LatexFoldParser.java index 924b744..c5c2190 100644 --- a/src/org/fife/ui/rsyntaxtextarea/folding/LatexFoldParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/folding/LatexFoldParser.java @@ -1,9 +1,7 @@ /* * 04/24/2012 - * * LatexFoldParser.java - Fold parser for LaTeX. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; @@ -11,77 +9,67 @@ package org.fife.ui.rsyntaxtextarea.folding; import java.util.ArrayList; import java.util.List; import java.util.Stack; + import javax.swing.text.BadLocationException; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.Token; - /** - * A fold parser for LaTeX documents. This is likely incomplete and/or not + * A fold parser for LaTeX documents. This is likely incomplete and/or not * quite right; feedback is appreciated. * * @author Robert Futrell * @version 1.0 */ public class LatexFoldParser implements FoldParser { - + private static final char[] BEGIN = "\\begin".toCharArray(); private static final char[] END = "\\end".toCharArray(); - - + /** * {@inheritDoc} */ @Override public List getFolds(RSyntaxTextArea textArea) { - List folds = new ArrayList(); Stack expectedStack = new Stack(); - Fold currentFold = null; int lineCount = textArea.getLineCount(); - try { - - for (int line=0; line + * A fold parser NSIS. + *

* * Note that this class may impose somewhat of a performance penalty on large * source files, since it re-parses the entire document each time folds are @@ -29,130 +27,101 @@ import org.fife.ui.rsyntaxtextarea.Token; * @version 1.0 */ public class NsisFoldParser implements FoldParser { - - private static final char[] KEYWORD_FUNCTION = "Function".toCharArray(); - private static final char[] KEYWORD_FUNCTION_END = "FunctionEnd".toCharArray(); - private static final char[] KEYWORD_SECTION = "Section".toCharArray(); - private static final char[] KEYWORD_SECTION_END = "SectionEnd".toCharArray(); - + + private static final char[] KEYWORD_FUNCTION = "Function".toCharArray(); + private static final char[] KEYWORD_FUNCTION_END = "FunctionEnd".toCharArray(); + private static final char[] KEYWORD_SECTION = "Section".toCharArray(); + private static final char[] KEYWORD_SECTION_END = "SectionEnd".toCharArray(); protected static final char[] C_MLC_END = "*/".toCharArray(); - - - private static boolean foundEndKeyword(char[] keyword, Token t, - Stack endWordStack) { - return t.is(Token.RESERVED_WORD, keyword) && !endWordStack.isEmpty() && - keyword==endWordStack.peek(); + + private static boolean foundEndKeyword(char[] keyword, Token t, Stack endWordStack) { + return t.is(Token.RESERVED_WORD, keyword) && !endWordStack.isEmpty() && keyword == endWordStack.peek(); } - - + /** * {@inheritDoc} */ @Override public List getFolds(RSyntaxTextArea textArea) { - List folds = new ArrayList(); - Fold currentFold = null; int lineCount = textArea.getLineCount(); boolean inMLC = false; int mlcStart = 0; Stack endWordStack = new Stack(); - try { - - for (int line=0; line' }; private static final char[] MLC_END = { '-', '-', '>' }; - - + /** * {@inheritDoc} */ @Override public List getFolds(RSyntaxTextArea textArea) { - List folds = new ArrayList(); - Fold currentFold = null; int lineCount = textArea.getLineCount(); boolean inMLC = false; int mlcStart = 0; - try { - - for (int line=0; linefolds list, and is removed from that. * - * @param fold The fold to remove. - * @param folds The list of top-level folds. + * @param fold + * The fold to remove. + * @param folds + * The list of top-level folds. */ private static void removeFold(Fold fold, List folds) { if (!fold.removeFromParent()) { - folds.remove(folds.size()-1); + folds.remove(folds.size() - 1); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/AbstractMarkupTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/AbstractMarkupTokenMaker.java index ffcf175..18a7f85 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/AbstractMarkupTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/AbstractMarkupTokenMaker.java @@ -1,17 +1,14 @@ /* * 10/03/2009 - * * AbstractMarkupTokenMaker.java - Base class for token makers for markup * languages. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; - /** * Base class for token makers for markup languages. * @@ -19,16 +16,14 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; * @version 1.0 */ public abstract class AbstractMarkupTokenMaker extends AbstractJFlexTokenMaker { - - + /** * Returns whether markup close tags should be completed. * * @return Whether closing markup tags are to be completed. */ public abstract boolean getCompleteCloseTags(); - - + /** * {@inheritDoc} */ @@ -36,8 +31,7 @@ public abstract class AbstractMarkupTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "" }; } - - + /** * Overridden to return true. * @@ -47,6 +41,4 @@ public abstract class AbstractMarkupTokenMaker extends AbstractJFlexTokenMaker { public final boolean isMarkupLanguage() { return true; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/ActionScriptTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/ActionScriptTokenMaker.java index 7440381..e8ea149 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/ActionScriptTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/ActionScriptTokenMaker.java @@ -1,1500 +1,747 @@ /* The following code was generated by JFlex 1.4.1 on 11/24/15 12:57 AM */ - /* * 04/27/2010 - * * ActionScriptTokenMaker.java - Scanner for ActionScript. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for the ActionScript.

+ * Scanner for the ActionScript. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated ActionScriptTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated ActionScriptTokenMaker.java file will contain + * two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class ActionScriptTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\20\1\10\1\0\1\20\1\16\22\0\1\71\1\47\1\15"+ - "\1\17\1\1\1\47\1\51\1\7\2\54\1\22\1\42\1\41\1\30"+ - "\1\31\1\21\1\4\3\6\4\6\2\3\1\52\1\41\1\43\1\44"+ - "\1\46\1\50\1\53\1\77\1\5\1\75\1\25\1\27\1\73\1\1"+ - "\1\113\1\112\1\1\1\100\1\24\1\101\1\102\1\103\1\107\1\114"+ - "\1\111\1\105\1\76\1\110\1\106\1\1\1\23\2\1\1\54\1\11"+ - "\1\54\1\45\1\2\1\0\1\35\1\14\1\63\1\61\1\34\1\26"+ - "\1\72\1\55\1\57\1\104\1\62\1\36\1\66\1\13\1\64\1\56"+ - "\1\67\1\33\1\37\1\32\1\12\1\74\1\60\1\70\1\65\1\1"+ - "\1\40\1\45\1\40\1\50\uff81\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 = - "\3\0\1\1\1\2\2\3\1\2\1\4\1\5\3\2"+ - "\1\6\2\1\1\7\2\10\3\2\1\10\7\2\1\11"+ - "\1\2\5\10\22\2\1\12\1\13\5\12\1\14\3\12"+ - "\1\1\1\15\1\3\1\16\1\15\1\16\1\15\1\17"+ - "\1\15\1\2\1\20\1\4\5\2\1\21\3\2\2\6"+ - "\1\22\1\1\1\23\1\24\21\2\1\21\12\2\1\0"+ - "\1\10\4\2\2\21\11\2\1\21\2\2\1\21\17\2"+ - "\1\25\10\0\1\1\1\16\1\0\2\17\1\2\3\4"+ - "\6\2\1\21\4\2\1\6\1\26\1\6\1\1\1\0"+ - "\1\27\5\2\1\21\23\2\1\21\11\2\1\27\20\2"+ - "\1\21\4\2\1\27\12\2\10\0\1\1\1\2\1\30"+ - "\2\4\10\2\1\6\1\1\1\31\5\2\1\0\1\32"+ - "\13\2\1\33\3\2\1\33\40\2\2\0\1\34\2\0"+ - "\1\35\1\1\1\2\1\4\7\2\1\6\1\1\4\2"+ - "\1\21\1\0\17\2\1\33\23\2\4\0\1\1\1\2"+ - "\1\4\6\2\1\6\1\1\4\2\1\0\35\2\1\1"+ - "\2\2\1\0\24\2\1\33\1\2\1\21\25\2\1\33"+ - "\40\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[528]; - 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\115\0\232\0\347\0\u0134\0\u0181\0\u01ce\0\u021b"+ - "\0\u0268\0\u02b5\0\u0302\0\u034f\0\u039c\0\u03e9\0\u02b5\0\u0436"+ - "\0\u0483\0\u04d0\0\u051d\0\u056a\0\u05b7\0\u0604\0\u0651\0\u069e"+ - "\0\u06eb\0\u0738\0\u0785\0\u07d2\0\u081f\0\u086c\0\u02b5\0\u02b5"+ - "\0\u08b9\0\u0906\0\u0953\0\u02b5\0\u09a0\0\u09ed\0\u0a3a\0\u0a87"+ - "\0\u0ad4\0\u0b21\0\u0b6e\0\u0bbb\0\u0c08\0\u0c55\0\u0ca2\0\u0cef"+ - "\0\u0d3c\0\u0d89\0\u0dd6\0\u0e23\0\u0e70\0\u0ebd\0\u0f0a\0\u0f57"+ - "\0\u02b5\0\u0fa4\0\u0ff1\0\u103e\0\u108b\0\u10d8\0\u02b5\0\u1125"+ - "\0\u1172\0\u11bf\0\u120c\0\u1259\0\u1259\0\u1259\0\u12a6\0\u12f3"+ - "\0\u1340\0\u138d\0\u13da\0\u1427\0\u02b5\0\u1474\0\u14c1\0\u150e"+ - "\0\u155b\0\u15a8\0\u15f5\0\u1642\0\u168f\0\u16dc\0\u1729\0\u1776"+ - "\0\u17c3\0\u02b5\0\u1810\0\u02b5\0\u185d\0\u18aa\0\u18f7\0\u1944"+ - "\0\u1991\0\u19de\0\u1a2b\0\u1a78\0\u1ac5\0\u1b12\0\u1b5f\0\u1bac"+ - "\0\u1bf9\0\u1c46\0\u1c93\0\u1ce0\0\u1d2d\0\u1d7a\0\u0134\0\u1dc7"+ - "\0\u1e14\0\u1e61\0\u1eae\0\u1efb\0\u1f48\0\u1f95\0\u1fe2\0\u202f"+ - "\0\u207c\0\u051d\0\u20c9\0\u2116\0\u2163\0\u21b0\0\u21fd\0\u224a"+ - "\0\u2297\0\u22e4\0\u2331\0\u237e\0\u23cb\0\u2418\0\u2465\0\u24b2"+ - "\0\u24ff\0\u254c\0\u2599\0\u25e6\0\u2633\0\u2680\0\u26cd\0\u271a"+ - "\0\u2767\0\u27b4\0\u2801\0\u284e\0\u289b\0\u28e8\0\u2935\0\u2982"+ - "\0\u29cf\0\u2a1c\0\u2a69\0\u2ab6\0\u2b03\0\u02b5\0\u2b50\0\u2b9d"+ - "\0\u2bea\0\u2c37\0\u2c84\0\u2cd1\0\u2d1e\0\u2d6b\0\u2db8\0\u2e05"+ - "\0\u2e52\0\u1259\0\u2e9f\0\u2eec\0\u2f39\0\u2f86\0\u2fd3\0\u3020"+ - "\0\u306d\0\u30ba\0\u3107\0\u3154\0\u31a1\0\u31ee\0\u323b\0\u3288"+ - "\0\u32d5\0\u3322\0\u336f\0\u02b5\0\u33bc\0\u3409\0\u3456\0\u34a3"+ - "\0\u34f0\0\u353d\0\u358a\0\u35d7\0\u3624\0\u3671\0\u36be\0\u370b"+ - "\0\u3758\0\u37a5\0\u37f2\0\u383f\0\u388c\0\u38d9\0\u3926\0\u3973"+ - "\0\u39c0\0\u3a0d\0\u3a5a\0\u3aa7\0\u3af4\0\u3b41\0\u3b8e\0\u3bdb"+ - "\0\u3c28\0\u3c75\0\u3cc2\0\u3d0f\0\u3d5c\0\u3da9\0\u3df6\0\u3e43"+ - "\0\u3e90\0\u3edd\0\u3f2a\0\u3f77\0\u3fc4\0\u4011\0\u405e\0\u40ab"+ - "\0\u40f8\0\u4145\0\u4192\0\u41df\0\u422c\0\u4279\0\u42c6\0\u4313"+ - "\0\u4360\0\u43ad\0\u43fa\0\u4447\0\u4494\0\u44e1\0\u452e\0\u457b"+ - "\0\u45c8\0\u0134\0\u4615\0\u4662\0\u46af\0\u46fc\0\u4749\0\u4796"+ - "\0\u47e3\0\u4830\0\u487d\0\u48ca\0\u4917\0\u4964\0\u49b1\0\u49fe"+ - "\0\u4a4b\0\u4a98\0\u4ae5\0\u4b32\0\u4b7f\0\u4bcc\0\u02b5\0\u4c19"+ - "\0\u4c66\0\u4cb3\0\u4d00\0\u4d4d\0\u4d9a\0\u4de7\0\u4e34\0\u4e81"+ - "\0\u4ece\0\u4f1b\0\u4f68\0\u02b5\0\u4fb5\0\u5002\0\u504f\0\u509c"+ - "\0\u50e9\0\u5136\0\u0134\0\u5183\0\u51d0\0\u521d\0\u526a\0\u52b7"+ - "\0\u5304\0\u5351\0\u539e\0\u53eb\0\u5438\0\u5485\0\u0134\0\u54d2"+ - "\0\u551f\0\u556c\0\u55b9\0\u5606\0\u5653\0\u56a0\0\u56ed\0\u573a"+ - "\0\u5787\0\u57d4\0\u5821\0\u586e\0\u58bb\0\u5908\0\u5955\0\u59a2"+ - "\0\u59ef\0\u5a3c\0\u5a89\0\u5ad6\0\u5b23\0\u5b70\0\u5bbd\0\u5c0a"+ - "\0\u5c57\0\u5ca4\0\u5cf1\0\u5d3e\0\u5d8b\0\u5dd8\0\u5e25\0\u5e72"+ - "\0\u5ebf\0\u5f0c\0\u5f59\0\u5fa6\0\u5ff3\0\u6040\0\u608d\0\u60da"+ - "\0\u6127\0\u6174\0\u61c1\0\u620e\0\u625b\0\u62a8\0\u62f5\0\u6342"+ - "\0\u638f\0\u63dc\0\u6429\0\u6476\0\u64c3\0\u6510\0\u655d\0\u65aa"+ - "\0\u65f7\0\u6644\0\u6691\0\u66de\0\u672b\0\u6778\0\u67c5\0\u6812"+ - "\0\u685f\0\u68ac\0\u68f9\0\u6946\0\u6993\0\u69e0\0\u6a2d\0\u6a7a"+ - "\0\u6ac7\0\u6b14\0\u6b61\0\u6bae\0\u6bfb\0\u6c48\0\u6c95\0\u6ce2"+ - "\0\u6d2f\0\u6d7c\0\u6dc9\0\u6e16\0\u6e63\0\u6eb0\0\u6efd\0\u6f4a"+ - "\0\u6f97\0\u6fe4\0\u7031\0\u707e\0\u70cb\0\u7118\0\u7165\0\u6040"+ - "\0\u71b2\0\u6127\0\u71ff\0\u724c\0\u7299\0\u72e6\0\u7333\0\u7380"+ - "\0\u73cd\0\u741a\0\u7467\0\u74b4\0\u7501\0\u754e\0\u759b\0\u75e8"+ - "\0\u7635\0\u7682\0\u76cf\0\u771c\0\u7769\0\u77b6\0\u7803\0\u7850"+ - "\0\u789d\0\u78ea\0\u7937\0\u7984\0\u79d1\0\u7a1e\0\u7a6b\0\u7ab8"+ - "\0\u7b05\0\u7b52\0\u7b9f\0\u7bec\0\u7c39\0\u7c86\0\u7cd3\0\u7d20"+ - "\0\u7d6d\0\u7dba\0\u7e07\0\u7e54\0\u7ea1\0\u7eee\0\u7f3b\0\u7f88"+ - "\0\u7fd5\0\u8022\0\u806f\0\u80bc\0\u8109\0\u8156\0\u81a3\0\u81f0"+ - "\0\u823d\0\u828a\0\u82d7\0\u8324\0\u8371\0\u83be\0\u840b\0\u8458"+ - "\0\u84a5\0\u84f2\0\u853f\0\u858c\0\u85d9\0\u8626\0\u8673\0\347"+ - "\0\u86c0\0\u02b5\0\u870d\0\u875a\0\u87a7\0\u87f4\0\u8841\0\u888e"+ - "\0\u88db\0\u8928\0\u8975\0\u89c2\0\u8a0f\0\u8a5c\0\u8aa9\0\u8af6"+ - "\0\u8b43\0\u8b90\0\u8bdd\0\u8c2a\0\u8c77\0\u8cc4\0\u8d11\0\u8d5e"+ - "\0\u8dab\0\u8df8\0\u8e45\0\u8e92\0\u8edf\0\u8f2c\0\u8f79\0\u8fc6"+ - "\0\u9013\0\u9060\0\u90ad\0\u90fa\0\u9147\0\u9194\0\u91e1\0\u922e"+ - "\0\u927b\0\u92c8\0\u9315\0\u9362\0\u93af\0\u93fc\0\u9449\0\u9496"+ - "\0\u94e3\0\u9530\0\u957d\0\u95ca\0\u9617\0\u9664\0\u96b1\0\u96fe"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[528]; - 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 = - "\1\4\2\5\1\6\1\7\1\10\1\6\1\11\1\12"+ - "\1\4\1\13\1\14\1\15\1\16\1\17\1\20\1\21"+ - "\1\22\1\23\1\24\1\5\1\25\1\26\1\5\1\27"+ - "\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37"+ - "\1\40\1\41\1\42\2\23\1\43\1\23\1\44\1\45"+ - "\1\44\1\4\1\37\1\5\1\46\1\47\1\50\1\51"+ - "\1\5\1\52\1\53\1\5\1\54\2\5\1\21\1\55"+ - "\1\56\1\57\1\60\1\5\1\61\1\62\1\63\1\64"+ - "\1\65\1\5\1\66\1\67\6\5\10\70\1\71\11\70"+ - "\1\72\3\70\1\73\26\70\1\74\2\70\1\75\34\70"+ - "\10\76\1\77\15\76\1\100\26\76\1\101\2\76\1\102"+ - "\34\76\7\4\2\0\4\4\2\0\1\4\3\0\5\4"+ - "\2\0\6\4\13\0\1\4\1\0\14\4\1\0\24\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\3\104\2\6\1\104\1\6\2\0\4\104\2\0\1\104"+ - "\3\0\1\104\1\105\2\106\1\107\1\0\1\110\2\104"+ - "\1\107\1\104\1\105\1\104\13\0\1\104\1\0\4\104"+ - "\1\106\7\104\1\0\1\104\1\106\24\104\1\111\1\112"+ - "\1\104\1\112\2\0\4\104\2\0\1\104\3\0\1\113"+ - "\1\105\2\106\1\107\1\0\1\110\2\104\1\107\1\104"+ - "\1\105\1\104\13\0\1\104\1\0\4\104\1\106\6\104"+ - "\1\113\1\0\1\104\1\106\21\104\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\7\5\1\114\4\5\1\0\23\5"+ - "\7\11\1\115\1\11\1\116\103\11\115\0\1\4\6\5"+ - "\2\0\1\103\1\5\1\117\1\5\2\0\1\4\3\0"+ - "\5\5\2\0\5\5\1\120\13\0\1\4\1\0\1\5"+ - "\1\121\1\122\11\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\1\123\2\5\2\0\1\4\3\0\5\5\2\0"+ - "\2\5\1\124\1\125\2\5\13\0\1\4\1\0\7\5"+ - "\1\126\4\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\127"+ - "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\10\16"+ - "\1\130\1\131\3\16\1\132\77\16\7\4\2\0\4\4"+ - "\2\0\1\4\3\0\5\4\2\0\6\4\13\0\1\4"+ - "\1\0\2\4\1\133\11\4\1\0\23\4\20\0\1\21"+ - "\50\0\1\21\44\0\1\134\1\135\21\0\1\44\114\0"+ - "\1\44\50\0\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\7\5\1\136\13\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5"+ - "\1\137\2\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\1\140\2\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\141\1\5\1\142\13\0"+ - "\1\4\1\0\2\5\1\143\4\5\1\144\4\5\1\0"+ - "\23\5\30\0\1\44\13\0\1\44\53\0\2\110\1\0"+ - "\1\110\106\0\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\5\1\145\1\146\1\147"+ - "\2\5\13\0\1\4\1\0\1\150\6\5\1\151\1\152"+ - "\3\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\153\1\154"+ - "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\4\5\1\155\1\156\13\0\1\4\1\0\12\5"+ - "\1\157\1\160\1\0\2\5\1\161\20\5\1\4\6\5"+ - "\2\0\1\103\1\5\1\162\1\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\162"+ - "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\157\1\5\1\157"+ - "\1\163\2\5\13\0\1\4\1\0\7\5\1\164\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\165\2\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\166\1\5\1\167"+ - "\3\5\13\0\1\4\1\0\3\5\1\170\2\5\1\171"+ - "\5\5\1\0\23\5\42\0\1\44\1\0\1\44\113\0"+ - "\1\172\1\44\114\0\1\44\1\0\1\173\112\0\1\44"+ - "\4\0\1\44\43\0\1\4\6\5\2\0\1\103\1\174"+ - "\2\5\2\0\1\4\3\0\5\5\2\0\1\5\1\175"+ - "\1\5\1\176\1\177\1\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\200"+ - "\1\5\2\0\1\4\3\0\3\5\1\201\1\5\2\0"+ - "\5\5\1\202\13\0\1\4\1\0\11\5\1\203\2\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\1\204\1\5\1\205\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\2\5\1\206\3\5\13\0\1\4\1\0\7\5\1\157"+ - "\1\207\3\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\210"+ - "\1\211\1\5\13\0\1\4\1\0\7\5\1\212\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\213"+ - "\1\5\2\0\1\4\3\0\5\5\2\0\1\5\1\157"+ - "\4\5\13\0\1\4\1\0\14\5\1\0\2\5\1\214"+ - "\20\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\215\2\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\157\1\5"+ - "\1\216\3\5\13\0\1\4\1\0\7\5\1\217\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\220\2\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\221"+ - "\2\5\13\0\1\4\1\0\7\5\1\222\4\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\7\5"+ - "\1\223\4\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\224"+ - "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\2\5\1\225\3\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\3\5\1\226\2\5\13\0"+ - "\1\4\1\0\7\5\1\227\4\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\1\230\2\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\2\5\1\231\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\232\1\5\1\233"+ - "\3\5\13\0\1\4\1\0\7\5\1\234\4\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\2\5\1\235\3\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\10\70\1\0\11\70\1\0"+ - "\3\70\1\0\26\70\1\0\2\70\1\0\34\70\21\0"+ - "\1\236\125\0\1\237\24\0\1\240\67\0\1\241\142\0"+ - "\1\242\34\0\10\76\1\0\15\76\1\0\26\76\1\0"+ - "\2\76\1\0\34\76\32\0\1\243\24\0\1\244\67\0"+ - "\1\245\142\0\1\246\34\0\7\4\2\0\1\4\1\247"+ - "\2\4\2\0\1\4\3\0\5\4\2\0\6\4\13\0"+ - "\1\4\1\0\14\4\1\0\23\4\7\104\2\0\4\104"+ - "\2\0\1\104\3\0\5\104\2\0\6\104\13\0\1\104"+ - "\1\0\14\104\1\0\26\104\2\250\1\104\1\250\2\0"+ - "\4\104\2\0\1\104\3\0\5\104\1\251\1\0\6\104"+ - "\2\0\1\251\10\0\1\104\1\0\14\104\1\0\26\104"+ - "\2\110\1\104\1\110\2\0\4\104\2\0\1\104\3\0"+ - "\2\104\2\106\1\107\2\0\2\104\1\107\3\104\13\0"+ - "\1\104\1\0\4\104\1\106\7\104\1\0\1\104\1\106"+ - "\24\104\2\111\1\104\1\111\2\0\4\104\2\0\1\104"+ - "\3\0\2\104\2\106\1\107\1\0\1\110\2\104\1\107"+ - "\3\104\13\0\1\104\1\0\4\104\1\106\7\104\1\0"+ - "\1\104\1\106\24\104\1\111\1\112\1\104\1\112\2\0"+ - "\4\104\2\0\1\104\3\0\1\104\1\252\2\106\1\107"+ - "\1\0\1\110\2\104\1\107\1\104\1\252\1\104\13\0"+ - "\1\104\1\0\4\104\1\106\7\104\1\0\1\104\1\106"+ - "\24\104\4\253\2\0\3\104\1\253\2\0\1\104\3\0"+ - "\2\104\3\253\2\0\2\104\2\253\2\104\13\0\1\104"+ - "\1\0\4\104\1\253\1\104\1\253\5\104\1\0\1\104"+ - "\1\253\1\104\1\253\1\104\1\253\15\104\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\7\5\1\254\4\5\1\0"+ - "\23\5\4\255\1\11\1\255\2\11\1\256\1\11\1\257"+ - "\3\11\10\255\1\11\3\255\2\11\61\255\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\2\5\1\260\1\5\1\261\1\5\13\0\1\4\1\0"+ - "\4\5\1\262\7\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\157\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\263"+ - "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\1\5"+ - "\1\264\1\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\4\5\1\265\1\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\3\5"+ - "\1\266\7\5\1\267\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\270"+ - "\5\5\13\0\1\4\1\0\11\5\1\271\2\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\1\157\5\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\272\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\11\130\1\273"+ - "\3\130\1\274\103\130\1\16\1\130\2\16\1\0\1\16"+ - "\1\275\3\16\10\130\1\16\3\130\2\16\61\130\7\4"+ - "\2\0\2\4\1\276\1\4\2\0\1\4\3\0\5\4"+ - "\2\0\6\4\13\0\1\4\1\0\14\4\1\0\23\4"+ - "\22\0\1\277\72\0\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\1\5\1\300\3\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\301\5\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\1\5\1\302\1\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\4\5\1\303\1\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\6\5\1\304\5\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\1\5\1\305\1\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\306"+ - "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\1\307\2\5\2\0\1\4\3\0"+ - "\5\5\2\0\3\5\1\310\2\5\13\0\1\4\1\0"+ - "\10\5\1\157\3\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5"+ - "\1\311\1\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\1\5\1\312\4\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\5\1\313\4\5"+ - "\13\0\1\4\1\0\2\5\1\314\11\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\1\315\22\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\1\5\1\316\12\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\317"+ - "\5\5\13\0\1\4\1\0\11\5\1\320\2\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\1\5\1\321\1\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\5\5\1\120"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\6\5\1\322\5\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\1\323\5\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\3\5\1\324\2\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\4\5\1\157\7\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\2\5\1\325\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\3\5\1\326\2\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\1\5\1\327\12\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\330\2\5\13\0\1\4"+ - "\1\0\7\5\1\331\4\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\332\5\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\2\5\1\333"+ - "\11\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\5\1\334\4\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\44\0\1\44"+ - "\1\0\1\23\46\0\1\4\6\5\2\0\1\103\2\5"+ - "\1\335\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\336\3\5\13\0\1\4\1\0\2\5\1\337\4\5"+ - "\1\340\4\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\341"+ - "\4\5\13\0\1\4\1\0\6\5\1\342\5\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\343\2\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\344\5\5"+ - "\13\0\1\4\1\0\6\5\1\345\5\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\1\5\1\346\21\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\1\5\1\347\6\5\1\350\12\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\1\5\1\351"+ - "\12\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\352\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\353\5\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\3\5\1\354\1\5\2\0\4\5\1\355\1\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\1\5\1\356\1\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\1\357\3\5\1\324\1\120\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\360"+ - "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\1\5\1\361\1\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\3\5\1\362\17\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\363\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\13\5\1\364"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\365\5\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\366\5\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\1\5\1\367\1\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\1\5\1\157\4\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\2\5\1\162\11\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\4\5\1\370\1\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\5\1\371\4\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\10\5\1\372\3\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\1\373\5\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\374\2\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\2\5\1\375\20\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\4\5\1\376\1\5\13\0\1\4\1\0\11\5\1\377"+ - "\2\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\12\5\1\u0100\10\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\5\1\u0101\4\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\4\5\1\u0102\1\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\1\u0103\2\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\6\5\1\u0104\5\5\1\0"+ - "\23\5\56\0\1\u0105\74\0\1\u0106\110\0\1\u0107\142\0"+ - "\1\u0108\112\0\1\u0109\74\0\1\u010a\110\0\1\u010b\142\0"+ - "\1\u010c\34\0\3\4\4\u010d\2\0\3\4\1\u010d\2\0"+ - "\1\4\3\0\2\4\3\u010d\2\0\2\4\2\u010d\2\4"+ - "\13\0\1\4\1\0\4\4\1\u010d\1\4\1\u010d\5\4"+ - "\1\0\1\4\1\u010d\1\4\1\u010d\1\4\1\u010d\15\4"+ - "\3\104\2\250\1\104\1\250\2\0\4\104\2\0\1\104"+ - "\3\0\2\104\2\106\1\104\2\0\6\104\13\0\1\104"+ - "\1\0\4\104\1\106\7\104\1\0\1\104\1\106\21\104"+ - "\3\0\2\250\1\0\1\250\106\0\3\104\4\253\2\0"+ - "\3\104\1\253\2\0\1\104\3\0\1\104\1\252\3\253"+ - "\2\0\2\104\2\253\1\252\1\104\13\0\1\104\1\0"+ - "\4\104\1\253\1\104\1\253\5\104\1\0\1\104\1\253"+ - "\1\104\1\253\1\104\1\253\15\104\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5"+ - "\1\u010e\1\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\7\255\1\u010f\1\255\1\u0110\103\255\7\256\1\u010f\105\256"+ - "\3\255\4\u0111\1\u010f\1\255\1\u0110\2\255\1\u0111\10\255"+ - "\3\u0111\4\255\2\u0111\23\255\1\u0111\1\255\1\u0111\7\255"+ - "\1\u0111\1\255\1\u0111\1\255\1\u0111\15\255\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\5\5\1\156\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\7\5\1\u0112"+ - "\4\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\u0113\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\3\5\1\u0114\2\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\1\372\5\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\4\5\1\157\1\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\4\5\1\u0115\1\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\1\u0116\5\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u0117\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\2\5\1\u0118\3\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\u0119\2\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\10\130\1\0\107\130\4\u011a"+ - "\2\130\1\273\2\130\1\u011a\1\274\7\130\3\u011a\4\130"+ - "\2\u011a\23\130\1\u011a\1\130\1\u011a\7\130\1\u011a\1\130"+ - "\1\u011a\1\130\1\u011a\15\130\7\4\2\0\4\4\2\0"+ - "\1\4\3\0\5\4\2\0\6\4\13\0\1\4\1\0"+ - "\6\4\1\u011b\5\4\1\0\23\4\21\0\1\u011c\73\0"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\10\5\1\u011d\2\5\1\u011e\7\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\372\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\u011f"+ - "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\5\5\1\307\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\7\5\1\u0120\4\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\3\5\1\u0121\2\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\u0122\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u0123"+ - "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\6\5\1\u0124\5\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\4\5\1\u0125\1\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\1\u0126\22\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\7\5\1\u0127\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\5\5\1\157\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\1\u0128\22\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\2\5\1\u0129\3\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\1\u012a\2\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\7\5\1\u012b\4\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\4\5\1\u012c\7\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\u012d\2\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u012e"+ - "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\4\5\1\u012f\1\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\2\5\1\265\3\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\4\5\1\u0130\7\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\2\5\1\221\3\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\u0131\1\u0132\4\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\1\5\1\u0133\12\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\15\5\1\u0134\5\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\357\5\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\7\5\1\u0135\4\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\4\5\1\u0131\1\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\2\5\1\u0116\20\5\1\4"+ - "\6\5\2\0\1\103\1\5\1\u0136\1\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\2\5\1\u0137\20\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\u0138\5\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\5\5\1\u0139\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\5\5\1\u013a"+ - "\6\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\10\5\1\u012f\3\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\2\5\1\u013b\3\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\4\5\1\u013c\1\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\u013d"+ - "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\2\5\1\u013e\11\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\3\5\1\u013f\2\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5"+ - "\1\u0140\1\5\13\0\1\4\1\0\7\5\1\u0141\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\4\5\1\120\1\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\1\157\13\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\3\5\1\u0142\2\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\2\5\1\u0143\3\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5"+ - "\1\u0144\2\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\353"+ - "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\5\5\1\314\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\u0145"+ - "\4\5\1\126\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\4\5\1\u0146\1\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\5\1\u0147\4\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\5\5\1\u0148\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\4\5\1\u0149\7\5\1\u014a\1\u0134\1\u014b\4\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\7\5\1\u014c\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\6\5\1\u014d\5\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\7\5\1\u014e\4\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\3\5\1\225\2\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\1\372\13\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\5\5"+ - "\1\301\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\2\5\1\u014f\11\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\4\5\1\372\1\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\2\5\1\u0150\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\2\5\1\u0151\3\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\2\5\1\u0152\11\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\367\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\1\5\1\u0153\1\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\370\5\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\52\0\1\u0154\76\0"+ - "\1\u0105\136\0\1\u0155\67\0\1\u0156\135\0\1\u0157\76\0"+ - "\1\u0109\136\0\1\u0158\67\0\1\u0159\63\0\3\4\4\u015a"+ - "\2\0\3\4\1\u015a\2\0\1\4\3\0\2\4\3\u015a"+ - "\2\0\2\4\2\u015a\2\4\13\0\1\4\1\0\4\4"+ - "\1\u015a\1\4\1\u015a\5\4\1\0\1\4\1\u015a\1\4"+ - "\1\u015a\1\4\1\u015a\16\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\u015b\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\10\255\1\256"+ - "\107\255\4\u015c\1\u010f\1\255\1\u0110\2\255\1\u015c\10\255"+ - "\3\u015c\4\255\2\u015c\23\255\1\u015c\1\255\1\u015c\7\255"+ - "\1\u015c\1\255\1\u015c\1\255\1\u015c\15\255\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\3\5\1\u015d\2\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\3\5\1\u015e\1\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\u015f\5\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\2\5\1\u0160\11\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\1\5\1\u0161\11\5\1\u0162\7\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\2\5\1\120"+ - "\20\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\5\5\1\u0163\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\5\5\1\157\6\5\1\0\23\5\3\130\4\u0164"+ - "\2\130\1\273\2\130\1\u0164\1\274\7\130\3\u0164\4\130"+ - "\2\u0164\23\130\1\u0164\1\130\1\u0164\7\130\1\u0164\1\130"+ - "\1\u0164\1\130\1\u0164\15\130\7\4\2\0\4\4\2\0"+ - "\1\4\3\0\5\4\2\0\4\4\1\u0165\1\4\13\0"+ - "\1\4\1\0\14\4\1\0\24\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\7\5\1\u0166\4\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\7\5\1\u0167\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\u0168\5\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\11\5\1\u0169\2\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\4\5\1\u016a\1\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\34\0\1\u016b\60\0\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\u012f\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\4\5\1\u016c\16\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\u016d\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\3\5\1\157\10\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\4\5\1\u016e\1\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\7\5\1\u016f\4\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\1\5\1\u0170\4\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\2\5\1\u0171\20\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\7\5\1\u0172\4\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\1\5\1\u0124"+ - "\12\5\1\0\23\5\1\4\6\5\2\0\1\103\1\5"+ - "\1\u0173\1\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\7\5\1\u0174"+ - "\4\5\1\u0175\6\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u0176\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\u0177\5\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\2\5\1\u0178\2\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\5\5\1\u0179\15\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\5"+ - "\1\u017a\4\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\4\5\1\324\1\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\u017b\5\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5"+ - "\1\u0143\2\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\2\5\1\u017c\3\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\u017d\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\3\5\1\u017e\2\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\1\5\1\u017f\4\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\1\u0180\2\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\3\5\1\u0181\2\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\1\5\1\u0182\1\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\10\5\1\u012f\12\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\2\5\1\u0183\3\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\5\1\126\4\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\1\u0184\2\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\1\120\5\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\11\5"+ - "\1\u0131\2\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\2\5\1\u0185\11\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\2\5\1\u0186\11\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\5\1\u0187\4\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\6\5\1\171\5\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\2\5\1\u0188"+ - "\11\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\u0189\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\17\5\1\u018a"+ - "\3\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\5\5\1\u018b\15\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\u018c\5\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\5\1\372\4\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\2\5\1\u018d\3\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u014e"+ - "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\6\5\1\264\5\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\u018e"+ - "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\4\5\1\372\7\5\1\0\23\5"+ - "\21\0\1\u018f\132\0\1\u0105\12\0\1\u0154\43\0\1\u0156"+ - "\1\u0190\4\u0156\1\u0190\2\0\3\u0156\2\0\1\u0190\1\0"+ - "\1\u0156\1\u0190\5\u0156\2\u0190\6\u0156\1\0\2\u0190\1\0"+ - "\1\u0190\2\0\6\u0190\14\u0156\1\0\23\u0156\21\0\1\u0191"+ - "\132\0\1\u0109\12\0\1\u0157\43\0\1\u0159\1\u0192\4\u0159"+ - "\1\u0192\2\0\3\u0159\2\0\1\u0192\1\0\1\u0159\1\u0192"+ - "\5\u0159\2\u0192\6\u0159\1\0\2\u0192\1\0\1\u0192\2\0"+ - "\6\u0192\14\u0159\1\0\23\u0159\3\4\4\u0193\2\0\3\4"+ - "\1\u0193\2\0\1\4\3\0\2\4\3\u0193\2\0\2\4"+ - "\2\u0193\2\4\13\0\1\4\1\0\4\4\1\u0193\1\4"+ - "\1\u0193\5\4\1\0\1\4\1\u0193\1\4\1\u0193\1\4"+ - "\1\u0193\16\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\u0194\2\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\3\255\4\u0195\1\u010f\1\255"+ - "\1\u0110\2\255\1\u0195\10\255\3\u0195\4\255\2\u0195\23\255"+ - "\1\u0195\1\255\1\u0195\7\255\1\u0195\1\255\1\u0195\1\255"+ - "\1\u0195\15\255\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\4\5\1\u0196\7\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\2\5\1\u0197\11\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\2\5\1\u0198\3\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\1\5"+ - "\1\u0124\1\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\5\1\u0199\4\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\6\5"+ - "\1\u019a\5\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\1\5\1\u019b\12\5\1\0\23\5\3\130"+ - "\4\u019c\2\130\1\273\2\130\1\u019c\1\274\7\130\3\u019c"+ - "\4\130\2\u019c\23\130\1\u019c\1\130\1\u019c\7\130\1\u019c"+ - "\1\130\1\u019c\1\130\1\u019c\15\130\7\4\2\0\1\4"+ - "\1\u019d\2\4\2\0\1\4\3\0\5\4\2\0\6\4"+ - "\13\0\1\4\1\0\14\4\1\0\24\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\4\5\1\301\7\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\u019e"+ - "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u019f\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\11\5\1\u01a0\2\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\4\5\1\u01a1\1\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\35\0\1\u01a2\57\0\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\3\5\1\u01a3\2\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\u01a4\5\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01a5"+ - "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\3\5"+ - "\1\157\1\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\157"+ - "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\u01a6\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\11\5\1\u012f"+ - "\2\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\4\5\1\314\7\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\7\5\1\u01a7\4\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\3\5\1\u01a8\2\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\6\5\1\157\5\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\2\5"+ - "\1\u0178\2\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\5\1\u01a9\4\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5"+ - "\1\u01aa\1\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\7\5\1\u01ab"+ - "\4\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\5\5\1\u01ac\2\5\1\u01ad\12\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\u01ae"+ - "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\1\5\1\u01af\16\5\1\u01b0\2\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\1\120\22\5\1\4\6\5\2\0\1\103\1\5\1\u01b1"+ - "\1\5\2\0\1\4\3\0\3\5\1\u019b\1\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\4\5\1\120\7\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\11\5\1\u01b2\2\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\2\5\1\u01b3\11\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\11\5\1\u01b4"+ - "\2\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\4\5\1\126\1\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\1\5\1\u01b5\1\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\1\5"+ - "\1\u01b6\12\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\2\5\1\u0180\11\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\11\5\1\u01b7\2\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\5\1\u01b8\4\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\1\5\1\u012f\3\5"+ - "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\1\5\1\u01b9\1\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u01ba\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\3\5\1\u01bb"+ - "\17\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\1\372\22\5\21\0\1\u0156\114\0\1\u0159\73\0"+ - "\3\4\4\5\2\0\3\4\1\5\2\0\1\4\3\0"+ - "\2\4\3\5\2\0\2\4\2\5\2\4\13\0\1\4"+ - "\1\0\4\4\1\5\1\4\1\5\5\4\1\0\1\4"+ - "\1\5\1\4\1\5\1\4\1\5\16\4\6\5\2\0"+ - "\1\103\1\5\1\372\1\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\3\255\4\11\1\u010f\1\255\1\u0110\2\255\1\11\10\255"+ - "\3\11\4\255\2\11\23\255\1\11\1\255\1\11\7\255"+ - "\1\11\1\255\1\11\1\255\1\11\15\255\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\7\5\1\u0174"+ - "\13\5\1\4\6\5\2\0\1\103\1\5\1\u01bc\1\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\5\5\1\u01bd\15\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\3\5\1\u01be\2\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\2\5\1\u0160\3\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5"+ - "\1\u01bf\2\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\3\130\4\16\2\130\1\273\2\130\1\16\1\274\7\130"+ - "\3\16\4\130\2\16\23\130\1\16\1\130\1\16\7\130"+ - "\1\16\1\130\1\16\1\130\1\16\15\130\7\4\2\0"+ - "\4\4\2\0\1\4\3\0\5\4\2\0\6\4\13\0"+ - "\1\4\1\0\4\4\1\u01c0\7\4\1\0\24\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\5\5\1\u01c1\6\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\7\5"+ - "\1\u0170\4\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\u01c2"+ - "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\10\5\1\157\3\5"+ - "\1\0\23\5\63\0\1\u01c3\31\0\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\5"+ - "\1\u01c4\4\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\15\5\1\u01c5\5\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\21\5\1\u01c6\1\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\7\5\1\u01c7"+ - "\13\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\2\5\1\u01c8\20\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\u01c9"+ - "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\3\5\1\u01ca\2\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\4\5\1\u01cb\1\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\1\5\1\u01cc\12\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\5\5\1\u01cd\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\u0172\2\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\1\u01bc\5\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\4\5\1\u01ce\1\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\1\5\1\u01cf\1\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\265"+ - "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\2\5\1\u01d0\3\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\u0124\5\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01d1"+ - "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\1\120\2\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\4\5\1\u01d2\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\u01d3\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\5\5\1\u01d4\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\u01d5"+ - "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\7\5\1\u0194\4\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\4\5\1\u01d6\1\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\2\5\1\162\3\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\3\5\1\u01d7\1\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\11\5\1\u0124\2\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\6\5\1\120\5\5\1\0\23\5\7\4\2\0\4\4"+ - "\2\0\1\4\3\0\5\4\2\0\2\4\1\u01d8\3\4"+ - "\13\0\1\4\1\0\14\4\1\0\24\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\264\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\1\5\1\u01d9\1\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\55\0\1\u01da\37\0\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\1\u01db\22\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\3\5\1\u01dc\2\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u01dd\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\7\5\1\u01de\4\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\2\5"+ - "\1\u01df\11\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\2\5\1\u01e0\11\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\1\u012f"+ - "\22\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\13\5\1\u01e1\7\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01e2"+ - "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\4\5\1\u01e3\1\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\7\5\1\u01e4\4\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\u012f"+ - "\5\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\1\5"+ - "\1\u01e5\3\5\2\0\6\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\u01e6"+ - "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\2\5\1\u01e7\20\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\1\5\1\u012f\4\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u01e8\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\13\5\1\u01e9"+ - "\1\5\1\u01ea\5\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u01eb\11\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\u01ec\5\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\u012f"+ - "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\2\5\1\126\3\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\u01ed\5\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\1\u01ee\22\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\2\5\1\u01ef\20\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5"+ - "\1\u01f0\3\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\3\5\1\u01f1\2\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\7\5\1\u01f2\4\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\1\5\1\u01f3\4\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\2\5"+ - "\1\u01f4\11\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\u01cf"+ - "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\7\5\1\u01f5\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\314\5\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01f6"+ - "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\7\5\1\u01f7\4\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\1\u01f8\5\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\4\5\1\177"+ - "\1\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\1\5\1\372\12\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\2\5\1\u01f9\3\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\1\u012f\13\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\1\u01fa\13\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\2\5"+ - "\1\u01fb\11\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\10\5\1\u01ad\12\5\1\4"+ - "\6\5\2\0\1\103\2\5\1\u01fc\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\1\u01fd\2\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\343\5\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\u01fe"+ - "\5\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\3\5\1\u01ff\2\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\126"+ - "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\1\5\1\u012f\1\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\7\5\1\u0200"+ - "\4\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\1\5\1\u0201\4\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\22\5\1\u0202"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\2\5\1\u0203\3\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\4\5\1\u0204\1\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\1\5\1\u0205\1\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0"+ - "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\11\5"+ - "\1\u0206\2\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\4\5\1\u01bc\7\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\1\5\1\u012f\12\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\4\5\1\u0207\2\0\6\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\1\u0208\2\5\2\0\1\4\3\0\5\5\2\0\6\5"+ - "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5"+ - "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0"+ - "\6\5\13\0\1\4\1\0\14\5\1\0\3\5\1\u0209"+ - "\17\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4"+ - "\3\0\5\5\2\0\2\5\1\u020a\3\5\13\0\1\4"+ - "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103"+ - "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0"+ - "\1\4\1\0\4\5\1\u020b\7\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\3\5\1\u020c\2\5\13\0\1\4\1\0\14\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0"+ - "\14\5\1\0\2\5\1\u020d\20\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5"+ - "\1\u020e\2\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\4\5\1\u020f\1\5\13\0\1\4\1\0"+ - "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\5\5\1\u01f0\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\5\5"+ - "\1\u012f\13\0\1\4\1\0\14\5\1\0\23\5\1\4"+ - "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5"+ - "\2\0\6\5\13\0\1\4\1\0\1\5\1\u01f0\12\5"+ - "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0"+ - "\1\4\3\0\5\5\2\0\2\5\1\u01b0\3\5\13\0"+ - "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0"+ - "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5"+ - "\1\u0210\1\5\13\0\1\4\1\0\14\5\1\0\23\5"+ - "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0"+ - "\5\5\2\0\6\5\13\0\1\4\1\0\2\5\1\u0200"+ - "\11\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5"+ - "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4"+ - "\1\0\2\5\1\u01f3\11\5\1\0\23\5"; - - private static int [] zzUnpackTrans() { - int [] result = new int[38731]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\6\1\1\11\4\1\1\11\17\1\2\11\3\1"+ - "\1\11\24\1\1\11\5\1\1\11\15\1\1\11\14\1"+ - "\1\11\1\1\1\11\35\1\1\0\43\1\1\11\10\0"+ - "\2\1\1\0\22\1\1\11\2\1\1\0\105\1\10\0"+ - "\2\1\1\11\14\1\1\11\5\1\1\0\61\1\2\0"+ - "\1\1\2\0\22\1\1\0\43\1\4\0\17\1\1\0"+ - "\40\1\1\0\26\1\1\11\66\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[528]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 2; + public static final int YYINITIAL = 0; + public static final int MLC = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\20\1\10\1\0\1\20\1\16\22\0\1\71\1\47\1\15" + + "\1\17\1\1\1\47\1\51\1\7\2\54\1\22\1\42\1\41\1\30" + "\1\31\1\21\1\4\3\6\4\6\2\3\1\52\1\41\1\43\1\44" + + "\1\46\1\50\1\53\1\77\1\5\1\75\1\25\1\27\1\73\1\1" + "\1\113\1\112\1\1\1\100\1\24\1\101\1\102\1\103\1\107\1\114" + + "\1\111\1\105\1\76\1\110\1\106\1\1\1\23\2\1\1\54\1\11" + "\1\54\1\45\1\2\1\0\1\35\1\14\1\63\1\61\1\34\1\26" + + "\1\72\1\55\1\57\1\104\1\62\1\36\1\66\1\13\1\64\1\56" + "\1\67\1\33\1\37\1\32\1\12\1\74\1\60\1\70\1\65\1\1" + + "\1\40\1\45\1\40\1\50\uff81\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 = "\3\0\1\1\1\2\2\3\1\2\1\4\1\5\3\2" + "\1\6\2\1\1\7\2\10\3\2\1\10\7\2\1\11" + + "\1\2\5\10\22\2\1\12\1\13\5\12\1\14\3\12" + "\1\1\1\15\1\3\1\16\1\15\1\16\1\15\1\17" + "\1\15\1\2\1\20\1\4\5\2\1\21\3\2\2\6" + + "\1\22\1\1\1\23\1\24\21\2\1\21\12\2\1\0" + "\1\10\4\2\2\21\11\2\1\21\2\2\1\21\17\2" + "\1\25\10\0\1\1\1\16\1\0\2\17\1\2\3\4" + + "\6\2\1\21\4\2\1\6\1\26\1\6\1\1\1\0" + "\1\27\5\2\1\21\23\2\1\21\11\2\1\27\20\2" + "\1\21\4\2\1\27\12\2\10\0\1\1\1\2\1\30" + + "\2\4\10\2\1\6\1\1\1\31\5\2\1\0\1\32" + "\13\2\1\33\3\2\1\33\40\2\2\0\1\34\2\0" + "\1\35\1\1\1\2\1\4\7\2\1\6\1\1\4\2" + + "\1\21\1\0\17\2\1\33\23\2\4\0\1\1\1\2" + "\1\4\6\2\1\6\1\1\4\2\1\0\35\2\1\1" + "\2\2\1\0\24\2\1\33\1\2\1\21\25\2\1\33" + + "\40\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[528]; + 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\115\0\232\0\347\0\u0134\0\u0181\0\u01ce\0\u021b" + + "\0\u0268\0\u02b5\0\u0302\0\u034f\0\u039c\0\u03e9\0\u02b5\0\u0436" + + "\0\u0483\0\u04d0\0\u051d\0\u056a\0\u05b7\0\u0604\0\u0651\0\u069e" + + "\0\u06eb\0\u0738\0\u0785\0\u07d2\0\u081f\0\u086c\0\u02b5\0\u02b5" + + "\0\u08b9\0\u0906\0\u0953\0\u02b5\0\u09a0\0\u09ed\0\u0a3a\0\u0a87" + + "\0\u0ad4\0\u0b21\0\u0b6e\0\u0bbb\0\u0c08\0\u0c55\0\u0ca2\0\u0cef" + + "\0\u0d3c\0\u0d89\0\u0dd6\0\u0e23\0\u0e70\0\u0ebd\0\u0f0a\0\u0f57" + + "\0\u02b5\0\u0fa4\0\u0ff1\0\u103e\0\u108b\0\u10d8\0\u02b5\0\u1125" + + "\0\u1172\0\u11bf\0\u120c\0\u1259\0\u1259\0\u1259\0\u12a6\0\u12f3" + + "\0\u1340\0\u138d\0\u13da\0\u1427\0\u02b5\0\u1474\0\u14c1\0\u150e" + + "\0\u155b\0\u15a8\0\u15f5\0\u1642\0\u168f\0\u16dc\0\u1729\0\u1776" + + "\0\u17c3\0\u02b5\0\u1810\0\u02b5\0\u185d\0\u18aa\0\u18f7\0\u1944" + + "\0\u1991\0\u19de\0\u1a2b\0\u1a78\0\u1ac5\0\u1b12\0\u1b5f\0\u1bac" + + "\0\u1bf9\0\u1c46\0\u1c93\0\u1ce0\0\u1d2d\0\u1d7a\0\u0134\0\u1dc7" + + "\0\u1e14\0\u1e61\0\u1eae\0\u1efb\0\u1f48\0\u1f95\0\u1fe2\0\u202f" + + "\0\u207c\0\u051d\0\u20c9\0\u2116\0\u2163\0\u21b0\0\u21fd\0\u224a" + + "\0\u2297\0\u22e4\0\u2331\0\u237e\0\u23cb\0\u2418\0\u2465\0\u24b2" + + "\0\u24ff\0\u254c\0\u2599\0\u25e6\0\u2633\0\u2680\0\u26cd\0\u271a" + + "\0\u2767\0\u27b4\0\u2801\0\u284e\0\u289b\0\u28e8\0\u2935\0\u2982" + + "\0\u29cf\0\u2a1c\0\u2a69\0\u2ab6\0\u2b03\0\u02b5\0\u2b50\0\u2b9d" + + "\0\u2bea\0\u2c37\0\u2c84\0\u2cd1\0\u2d1e\0\u2d6b\0\u2db8\0\u2e05" + + "\0\u2e52\0\u1259\0\u2e9f\0\u2eec\0\u2f39\0\u2f86\0\u2fd3\0\u3020" + + "\0\u306d\0\u30ba\0\u3107\0\u3154\0\u31a1\0\u31ee\0\u323b\0\u3288" + + "\0\u32d5\0\u3322\0\u336f\0\u02b5\0\u33bc\0\u3409\0\u3456\0\u34a3" + + "\0\u34f0\0\u353d\0\u358a\0\u35d7\0\u3624\0\u3671\0\u36be\0\u370b" + + "\0\u3758\0\u37a5\0\u37f2\0\u383f\0\u388c\0\u38d9\0\u3926\0\u3973" + + "\0\u39c0\0\u3a0d\0\u3a5a\0\u3aa7\0\u3af4\0\u3b41\0\u3b8e\0\u3bdb" + + "\0\u3c28\0\u3c75\0\u3cc2\0\u3d0f\0\u3d5c\0\u3da9\0\u3df6\0\u3e43" + + "\0\u3e90\0\u3edd\0\u3f2a\0\u3f77\0\u3fc4\0\u4011\0\u405e\0\u40ab" + + "\0\u40f8\0\u4145\0\u4192\0\u41df\0\u422c\0\u4279\0\u42c6\0\u4313" + + "\0\u4360\0\u43ad\0\u43fa\0\u4447\0\u4494\0\u44e1\0\u452e\0\u457b" + + "\0\u45c8\0\u0134\0\u4615\0\u4662\0\u46af\0\u46fc\0\u4749\0\u4796" + + "\0\u47e3\0\u4830\0\u487d\0\u48ca\0\u4917\0\u4964\0\u49b1\0\u49fe" + + "\0\u4a4b\0\u4a98\0\u4ae5\0\u4b32\0\u4b7f\0\u4bcc\0\u02b5\0\u4c19" + + "\0\u4c66\0\u4cb3\0\u4d00\0\u4d4d\0\u4d9a\0\u4de7\0\u4e34\0\u4e81" + + "\0\u4ece\0\u4f1b\0\u4f68\0\u02b5\0\u4fb5\0\u5002\0\u504f\0\u509c" + + "\0\u50e9\0\u5136\0\u0134\0\u5183\0\u51d0\0\u521d\0\u526a\0\u52b7" + + "\0\u5304\0\u5351\0\u539e\0\u53eb\0\u5438\0\u5485\0\u0134\0\u54d2" + + "\0\u551f\0\u556c\0\u55b9\0\u5606\0\u5653\0\u56a0\0\u56ed\0\u573a" + + "\0\u5787\0\u57d4\0\u5821\0\u586e\0\u58bb\0\u5908\0\u5955\0\u59a2" + + "\0\u59ef\0\u5a3c\0\u5a89\0\u5ad6\0\u5b23\0\u5b70\0\u5bbd\0\u5c0a" + + "\0\u5c57\0\u5ca4\0\u5cf1\0\u5d3e\0\u5d8b\0\u5dd8\0\u5e25\0\u5e72" + + "\0\u5ebf\0\u5f0c\0\u5f59\0\u5fa6\0\u5ff3\0\u6040\0\u608d\0\u60da" + + "\0\u6127\0\u6174\0\u61c1\0\u620e\0\u625b\0\u62a8\0\u62f5\0\u6342" + + "\0\u638f\0\u63dc\0\u6429\0\u6476\0\u64c3\0\u6510\0\u655d\0\u65aa" + + "\0\u65f7\0\u6644\0\u6691\0\u66de\0\u672b\0\u6778\0\u67c5\0\u6812" + + "\0\u685f\0\u68ac\0\u68f9\0\u6946\0\u6993\0\u69e0\0\u6a2d\0\u6a7a" + + "\0\u6ac7\0\u6b14\0\u6b61\0\u6bae\0\u6bfb\0\u6c48\0\u6c95\0\u6ce2" + + "\0\u6d2f\0\u6d7c\0\u6dc9\0\u6e16\0\u6e63\0\u6eb0\0\u6efd\0\u6f4a" + + "\0\u6f97\0\u6fe4\0\u7031\0\u707e\0\u70cb\0\u7118\0\u7165\0\u6040" + + "\0\u71b2\0\u6127\0\u71ff\0\u724c\0\u7299\0\u72e6\0\u7333\0\u7380" + + "\0\u73cd\0\u741a\0\u7467\0\u74b4\0\u7501\0\u754e\0\u759b\0\u75e8" + + "\0\u7635\0\u7682\0\u76cf\0\u771c\0\u7769\0\u77b6\0\u7803\0\u7850" + + "\0\u789d\0\u78ea\0\u7937\0\u7984\0\u79d1\0\u7a1e\0\u7a6b\0\u7ab8" + + "\0\u7b05\0\u7b52\0\u7b9f\0\u7bec\0\u7c39\0\u7c86\0\u7cd3\0\u7d20" + + "\0\u7d6d\0\u7dba\0\u7e07\0\u7e54\0\u7ea1\0\u7eee\0\u7f3b\0\u7f88" + + "\0\u7fd5\0\u8022\0\u806f\0\u80bc\0\u8109\0\u8156\0\u81a3\0\u81f0" + + "\0\u823d\0\u828a\0\u82d7\0\u8324\0\u8371\0\u83be\0\u840b\0\u8458" + + "\0\u84a5\0\u84f2\0\u853f\0\u858c\0\u85d9\0\u8626\0\u8673\0\347" + + "\0\u86c0\0\u02b5\0\u870d\0\u875a\0\u87a7\0\u87f4\0\u8841\0\u888e" + + "\0\u88db\0\u8928\0\u8975\0\u89c2\0\u8a0f\0\u8a5c\0\u8aa9\0\u8af6" + + "\0\u8b43\0\u8b90\0\u8bdd\0\u8c2a\0\u8c77\0\u8cc4\0\u8d11\0\u8d5e" + + "\0\u8dab\0\u8df8\0\u8e45\0\u8e92\0\u8edf\0\u8f2c\0\u8f79\0\u8fc6" + + "\0\u9013\0\u9060\0\u90ad\0\u90fa\0\u9147\0\u9194\0\u91e1\0\u922e" + + "\0\u927b\0\u92c8\0\u9315\0\u9362\0\u93af\0\u93fc\0\u9449\0\u9496" + + "\0\u94e3\0\u9530\0\u957d\0\u95ca\0\u9617\0\u9664\0\u96b1\0\u96fe"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[528]; + 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 = "\1\4\2\5\1\6\1\7\1\10\1\6\1\11\1\12" + "\1\4\1\13\1\14\1\15\1\16\1\17\1\20\1\21" + + "\1\22\1\23\1\24\1\5\1\25\1\26\1\5\1\27" + "\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37" + + "\1\40\1\41\1\42\2\23\1\43\1\23\1\44\1\45" + "\1\44\1\4\1\37\1\5\1\46\1\47\1\50\1\51" + + "\1\5\1\52\1\53\1\5\1\54\2\5\1\21\1\55" + "\1\56\1\57\1\60\1\5\1\61\1\62\1\63\1\64" + + "\1\65\1\5\1\66\1\67\6\5\10\70\1\71\11\70" + "\1\72\3\70\1\73\26\70\1\74\2\70\1\75\34\70" + + "\10\76\1\77\15\76\1\100\26\76\1\101\2\76\1\102" + "\34\76\7\4\2\0\4\4\2\0\1\4\3\0\5\4" + + "\2\0\6\4\13\0\1\4\1\0\14\4\1\0\24\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\3\104\2\6\1\104\1\6\2\0\4\104\2\0\1\104" + "\3\0\1\104\1\105\2\106\1\107\1\0\1\110\2\104" + + "\1\107\1\104\1\105\1\104\13\0\1\104\1\0\4\104" + "\1\106\7\104\1\0\1\104\1\106\24\104\1\111\1\112" + + "\1\104\1\112\2\0\4\104\2\0\1\104\3\0\1\113" + "\1\105\2\106\1\107\1\0\1\110\2\104\1\107\1\104" + + "\1\105\1\104\13\0\1\104\1\0\4\104\1\106\6\104" + "\1\113\1\0\1\104\1\106\21\104\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\7\5\1\114\4\5\1\0\23\5" + "\7\11\1\115\1\11\1\116\103\11\115\0\1\4\6\5" + + "\2\0\1\103\1\5\1\117\1\5\2\0\1\4\3\0" + "\5\5\2\0\5\5\1\120\13\0\1\4\1\0\1\5" + "\1\121\1\122\11\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\1\123\2\5\2\0\1\4\3\0\5\5\2\0" + "\2\5\1\124\1\125\2\5\13\0\1\4\1\0\7\5" + "\1\126\4\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\127" + "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\10\16" + "\1\130\1\131\3\16\1\132\77\16\7\4\2\0\4\4" + + "\2\0\1\4\3\0\5\4\2\0\6\4\13\0\1\4" + "\1\0\2\4\1\133\11\4\1\0\23\4\20\0\1\21" + "\50\0\1\21\44\0\1\134\1\135\21\0\1\44\114\0" + + "\1\44\50\0\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\7\5\1\136\13\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5" + "\1\137\2\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\1\140\2\5\2\0\1\4" + + "\3\0\5\5\2\0\3\5\1\141\1\5\1\142\13\0" + "\1\4\1\0\2\5\1\143\4\5\1\144\4\5\1\0" + "\23\5\30\0\1\44\13\0\1\44\53\0\2\110\1\0" + + "\1\110\106\0\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\5\1\145\1\146\1\147" + + "\2\5\13\0\1\4\1\0\1\150\6\5\1\151\1\152" + "\3\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\2\5\1\153\1\154" + + "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\4\5\1\155\1\156\13\0\1\4\1\0\12\5" + + "\1\157\1\160\1\0\2\5\1\161\20\5\1\4\6\5" + "\2\0\1\103\1\5\1\162\1\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\162" + + "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\1\157\1\5\1\157" + "\1\163\2\5\13\0\1\4\1\0\7\5\1\164\4\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\1\165\2\5" + "\2\0\1\4\3\0\5\5\2\0\1\166\1\5\1\167" + "\3\5\13\0\1\4\1\0\3\5\1\170\2\5\1\171" + + "\5\5\1\0\23\5\42\0\1\44\1\0\1\44\113\0" + "\1\172\1\44\114\0\1\44\1\0\1\173\112\0\1\44" + + "\4\0\1\44\43\0\1\4\6\5\2\0\1\103\1\174" + "\2\5\2\0\1\4\3\0\5\5\2\0\1\5\1\175" + "\1\5\1\176\1\177\1\5\13\0\1\4\1\0\14\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\200" + "\1\5\2\0\1\4\3\0\3\5\1\201\1\5\2\0" + "\5\5\1\202\13\0\1\4\1\0\11\5\1\203\2\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\1\204\1\5\1\205\11\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\2\5\1\206\3\5\13\0\1\4\1\0\7\5\1\157" + "\1\207\3\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\210" + "\1\211\1\5\13\0\1\4\1\0\7\5\1\212\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\213" + + "\1\5\2\0\1\4\3\0\5\5\2\0\1\5\1\157" + "\4\5\13\0\1\4\1\0\14\5\1\0\2\5\1\214" + "\20\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\3\5\1\215\2\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\157\1\5" + + "\1\216\3\5\13\0\1\4\1\0\7\5\1\217\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\1\220\2\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\221" + "\2\5\13\0\1\4\1\0\7\5\1\222\4\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\7\5" + "\1\223\4\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\224" + "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\2\5\1\225\3\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\3\5\1\226\2\5\13\0" + + "\1\4\1\0\7\5\1\227\4\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\1\230\2\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\2\5\1\231\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\1\232\1\5\1\233" + "\3\5\13\0\1\4\1\0\7\5\1\234\4\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\2\5\1\235\3\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\10\70\1\0\11\70\1\0" + "\3\70\1\0\26\70\1\0\2\70\1\0\34\70\21\0" + + "\1\236\125\0\1\237\24\0\1\240\67\0\1\241\142\0" + "\1\242\34\0\10\76\1\0\15\76\1\0\26\76\1\0" + + "\2\76\1\0\34\76\32\0\1\243\24\0\1\244\67\0" + "\1\245\142\0\1\246\34\0\7\4\2\0\1\4\1\247" + + "\2\4\2\0\1\4\3\0\5\4\2\0\6\4\13\0" + "\1\4\1\0\14\4\1\0\23\4\7\104\2\0\4\104" + "\2\0\1\104\3\0\5\104\2\0\6\104\13\0\1\104" + + "\1\0\14\104\1\0\26\104\2\250\1\104\1\250\2\0" + "\4\104\2\0\1\104\3\0\5\104\1\251\1\0\6\104" + + "\2\0\1\251\10\0\1\104\1\0\14\104\1\0\26\104" + "\2\110\1\104\1\110\2\0\4\104\2\0\1\104\3\0" + + "\2\104\2\106\1\107\2\0\2\104\1\107\3\104\13\0" + "\1\104\1\0\4\104\1\106\7\104\1\0\1\104\1\106" + + "\24\104\2\111\1\104\1\111\2\0\4\104\2\0\1\104" + "\3\0\2\104\2\106\1\107\1\0\1\110\2\104\1\107" + + "\3\104\13\0\1\104\1\0\4\104\1\106\7\104\1\0" + "\1\104\1\106\24\104\1\111\1\112\1\104\1\112\2\0" + + "\4\104\2\0\1\104\3\0\1\104\1\252\2\106\1\107" + "\1\0\1\110\2\104\1\107\1\104\1\252\1\104\13\0" + + "\1\104\1\0\4\104\1\106\7\104\1\0\1\104\1\106" + "\24\104\4\253\2\0\3\104\1\253\2\0\1\104\3\0" + + "\2\104\3\253\2\0\2\104\2\253\2\104\13\0\1\104" + "\1\0\4\104\1\253\1\104\1\253\5\104\1\0\1\104" + + "\1\253\1\104\1\253\1\104\1\253\15\104\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\7\5\1\254\4\5\1\0" + + "\23\5\4\255\1\11\1\255\2\11\1\256\1\11\1\257" + "\3\11\10\255\1\11\3\255\2\11\61\255\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\2\5\1\260\1\5\1\261\1\5\13\0\1\4\1\0" + "\4\5\1\262\7\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + "\1\157\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\263" + "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\1\5" + "\1\264\1\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\4\5\1\265\1\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\3\5" + "\1\266\7\5\1\267\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\270" + "\5\5\13\0\1\4\1\0\11\5\1\271\2\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\1\157\5\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\2\5\1\272\3\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\11\130\1\273" + "\3\130\1\274\103\130\1\16\1\130\2\16\1\0\1\16" + + "\1\275\3\16\10\130\1\16\3\130\2\16\61\130\7\4" + "\2\0\2\4\1\276\1\4\2\0\1\4\3\0\5\4" + "\2\0\6\4\13\0\1\4\1\0\14\4\1\0\23\4" + + "\22\0\1\277\72\0\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\1\5\1\300\3\5\2\0\6\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\1\301\5\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\1\5\1\302\1\5\2\0" + + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\4\5\1\303\1\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\6\5\1\304\5\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\1\5\1\305\1\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\306" + "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\1\307\2\5\2\0\1\4\3\0" + + "\5\5\2\0\3\5\1\310\2\5\13\0\1\4\1\0" + "\10\5\1\157\3\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5" + + "\1\311\1\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\1\5\1\312\4\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\1\5\1\313\4\5" + "\13\0\1\4\1\0\2\5\1\314\11\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\1\315\22\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\1\5\1\316\12\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\317" + + "\5\5\13\0\1\4\1\0\11\5\1\320\2\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\1\5\1\321\1\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\5\5\1\120" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\6\5\1\322\5\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\1\323\5\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\3\5\1\324\2\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\4\5\1\157\7\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\2\5\1\325\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\3\5\1\326\2\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\6\5\13\0\1\4\1\0\1\5\1\327\12\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\3\5\1\330\2\5\13\0\1\4" + + "\1\0\7\5\1\331\4\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\1\332\5\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\2\5\1\333" + "\11\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\1\5\1\334\4\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\44\0\1\44" + "\1\0\1\23\46\0\1\4\6\5\2\0\1\103\2\5" + + "\1\335\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + + "\1\336\3\5\13\0\1\4\1\0\2\5\1\337\4\5" + "\1\340\4\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\341" + + "\4\5\13\0\1\4\1\0\6\5\1\342\5\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\3\5\1\343\2\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\344\5\5" + "\13\0\1\4\1\0\6\5\1\345\5\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\1\5\1\346\21\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\1\5\1\347\6\5\1\350\12\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\6\5\13\0\1\4\1\0\1\5\1\351" + "\12\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\2\5\1\352\11\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\1\353\5\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\3\5\1\354\1\5\2\0\4\5\1\355\1\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\1\5\1\356\1\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\1\357\3\5\1\324\1\120\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\360" + + "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\1\5\1\361\1\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\3\5\1\362\17\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + "\1\363\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\6\5\13\0\1\4\1\0\13\5\1\364" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\365\5\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\366\5\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\1\5\1\367\1\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\1\5\1\157\4\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\2\5\1\162\11\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\4\5\1\370\1\5\13\0\1\4\1\0\14\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\5\1\371\4\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\10\5\1\372\3\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\1\373\5\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\1\374\2\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\14\5\1\0\2\5\1\375\20\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\4\5\1\376\1\5\13\0\1\4\1\0\11\5\1\377" + + "\2\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\12\5\1\u0100\10\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\1\5\1\u0101\4\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\4\5\1\u0102\1\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\1\u0103\2\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\6\5\1\u0104\5\5\1\0" + + "\23\5\56\0\1\u0105\74\0\1\u0106\110\0\1\u0107\142\0" + "\1\u0108\112\0\1\u0109\74\0\1\u010a\110\0\1\u010b\142\0" + + "\1\u010c\34\0\3\4\4\u010d\2\0\3\4\1\u010d\2\0" + "\1\4\3\0\2\4\3\u010d\2\0\2\4\2\u010d\2\4" + + "\13\0\1\4\1\0\4\4\1\u010d\1\4\1\u010d\5\4" + "\1\0\1\4\1\u010d\1\4\1\u010d\1\4\1\u010d\15\4" + + "\3\104\2\250\1\104\1\250\2\0\4\104\2\0\1\104" + "\3\0\2\104\2\106\1\104\2\0\6\104\13\0\1\104" + + "\1\0\4\104\1\106\7\104\1\0\1\104\1\106\21\104" + "\3\0\2\250\1\0\1\250\106\0\3\104\4\253\2\0" + + "\3\104\1\253\2\0\1\104\3\0\1\104\1\252\3\253" + "\2\0\2\104\2\253\1\252\1\104\13\0\1\104\1\0" + + "\4\104\1\253\1\104\1\253\5\104\1\0\1\104\1\253" + "\1\104\1\253\1\104\1\253\15\104\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5" + "\1\u010e\1\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\7\255\1\u010f\1\255\1\u0110\103\255\7\256\1\u010f\105\256" + "\3\255\4\u0111\1\u010f\1\255\1\u0110\2\255\1\u0111\10\255" + + "\3\u0111\4\255\2\u0111\23\255\1\u0111\1\255\1\u0111\7\255" + "\1\u0111\1\255\1\u0111\1\255\1\u0111\15\255\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\5\5\1\156\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\6\5\13\0\1\4\1\0\7\5\1\u0112" + "\4\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\2\5\1\u0113\3\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\3\5\1\u0114\2\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\1\372\5\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\4\5\1\157\1\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\4\5\1\u0115\1\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\1\u0116\5\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\2\5\1\u0117\11\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\2\5\1\u0118\3\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\3\5\1\u0119\2\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\10\130\1\0\107\130\4\u011a" + + "\2\130\1\273\2\130\1\u011a\1\274\7\130\3\u011a\4\130" + "\2\u011a\23\130\1\u011a\1\130\1\u011a\7\130\1\u011a\1\130" + + "\1\u011a\1\130\1\u011a\15\130\7\4\2\0\4\4\2\0" + "\1\4\3\0\5\4\2\0\6\4\13\0\1\4\1\0" + + "\6\4\1\u011b\5\4\1\0\23\4\21\0\1\u011c\73\0" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + + "\10\5\1\u011d\2\5\1\u011e\7\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + "\1\372\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\u011f" + "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\5\5\1\307\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\7\5\1\u0120\4\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\3\5\1\u0121\2\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\u0122\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u0123" + "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\6\5\13\0\1\4\1\0\6\5\1\u0124\5\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\4\5\1\u0125\1\5\13\0" + + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\14\5\1\0\1\u0126\22\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\7\5\1\u0127\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\5\5\1\157\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\14\5\1\0\1\u0128\22\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\2\5\1\u0129\3\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\1\u012a\2\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\7\5\1\u012b\4\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\6\5\13\0\1\4\1\0\4\5\1\u012c\7\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\3\5\1\u012d\2\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u012e" + "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\4\5\1\u012f\1\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\2\5\1\265\3\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\4\5\1\u0130\7\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\2\5\1\221\3\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\1\u0131\1\u0132\4\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\1\5\1\u0133\12\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\15\5\1\u0134\5\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\357\5\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\7\5\1\u0135\4\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\4\5\1\u0131\1\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\2\5\1\u0116\20\5\1\4" + "\6\5\2\0\1\103\1\5\1\u0136\1\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\2\5\1\u0137\20\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\u0138\5\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\5\5\1\u0139\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\5\5\1\u013a" + "\6\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\10\5\1\u012f\3\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\2\5\1\u013b\3\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\4\5\1\u013c\1\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\u013d" + "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\2\5\1\u013e\11\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\3\5\1\u013f\2\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5" + + "\1\u0140\1\5\13\0\1\4\1\0\7\5\1\u0141\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\4\5\1\120\1\5\13\0" + + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\1\157\13\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\3\5\1\u0142\2\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\2\5\1\u0143\3\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5" + + "\1\u0144\2\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\353" + + "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\5\5\1\314\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\u0145" + "\4\5\1\126\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\4\5\1\u0146\1\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\1\5\1\u0147\4\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\5\5\1\u0148\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + + "\4\5\1\u0149\7\5\1\u014a\1\u0134\1\u014b\4\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\6\5\13\0\1\4\1\0\7\5\1\u014c\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + + "\6\5\1\u014d\5\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\7\5\1\u014e\4\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\3\5\1\225\2\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\1\372\13\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\5\5" + + "\1\301\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\2\5\1\u014f\11\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\4\5\1\372\1\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\2\5\1\u0150\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\2\5\1\u0151\3\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + + "\2\5\1\u0152\11\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + "\1\367\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\1\5\1\u0153\1\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\1\370\5\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\52\0\1\u0154\76\0" + + "\1\u0105\136\0\1\u0155\67\0\1\u0156\135\0\1\u0157\76\0" + "\1\u0109\136\0\1\u0158\67\0\1\u0159\63\0\3\4\4\u015a" + + "\2\0\3\4\1\u015a\2\0\1\4\3\0\2\4\3\u015a" + "\2\0\2\4\2\u015a\2\4\13\0\1\4\1\0\4\4" + + "\1\u015a\1\4\1\u015a\5\4\1\0\1\4\1\u015a\1\4" + "\1\u015a\1\4\1\u015a\16\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\2\5\1\u015b\3\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\10\255\1\256" + + "\107\255\4\u015c\1\u010f\1\255\1\u0110\2\255\1\u015c\10\255" + "\3\u015c\4\255\2\u015c\23\255\1\u015c\1\255\1\u015c\7\255" + + "\1\u015c\1\255\1\u015c\1\255\1\u015c\15\255\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\3\5\1\u015d\2\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\3\5\1\u015e\1\5\2\0\6\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\u015f\5\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\2\5\1\u0160\11\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\1\5\1\u0161\11\5\1\u0162\7\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\6\5\13\0\1\4\1\0\14\5\1\0\2\5\1\120" + "\20\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\5\5\1\u0163\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\5\5\1\157\6\5\1\0\23\5\3\130\4\u0164" + + "\2\130\1\273\2\130\1\u0164\1\274\7\130\3\u0164\4\130" + "\2\u0164\23\130\1\u0164\1\130\1\u0164\7\130\1\u0164\1\130" + + "\1\u0164\1\130\1\u0164\15\130\7\4\2\0\4\4\2\0" + "\1\4\3\0\5\4\2\0\4\4\1\u0165\1\4\13\0" + + "\1\4\1\0\14\4\1\0\24\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\7\5\1\u0166\4\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\7\5\1\u0167\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\1\u0168\5\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\11\5\1\u0169\2\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\4\5\1\u016a\1\5\13\0\1\4\1\0\14\5" + + "\1\0\23\5\34\0\1\u016b\60\0\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + "\1\u012f\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\4\5\1\u016c\16\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\2\5\1\u016d\3\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\6\5\13\0\1\4\1\0\3\5\1\157\10\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\4\5\1\u016e\1\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\7\5\1\u016f\4\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\1\5\1\u0170\4\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\2\5\1\u0171\20\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\7\5\1\u0172\4\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\1\5\1\u0124" + + "\12\5\1\0\23\5\1\4\6\5\2\0\1\103\1\5" + "\1\u0173\1\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\7\5\1\u0174" + "\4\5\1\u0175\6\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\2\5\1\u0176\11\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\1\u0177\5\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\2\5\1\u0178\2\5\2\0\6\5\13\0\1\4\1\0" + + "\14\5\1\0\5\5\1\u0179\15\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\5" + "\1\u017a\4\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\4\5\1\324\1\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\1\u017b\5\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5" + + "\1\u0143\2\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\2\5\1\u017c\3\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\2\5\1\u017d\3\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\3\5\1\u017e\2\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\1\5\1\u017f\4\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\1\u0180\2\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\3\5\1\u0181\2\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\1\5\1\u0182\1\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\10\5\1\u012f\12\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\2\5\1\u0183\3\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\5\1\126\4\5\13\0" + + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\1\u0184\2\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\1\120\5\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\11\5" + "\1\u0131\2\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\2\5\1\u0185\11\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\2\5\1\u0186\11\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\5\1\u0187\4\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\6\5\1\171\5\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\6\5\13\0\1\4\1\0\2\5\1\u0188" + "\11\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\2\5\1\u0189\3\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\17\5\1\u018a" + + "\3\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\5\5\1\u018b\15\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\1\u018c\5\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\1\5\1\372\4\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\2\5\1\u018d\3\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u014e" + "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\6\5\1\264\5\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\u018e" + + "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\4\5\1\372\7\5\1\0\23\5" + "\21\0\1\u018f\132\0\1\u0105\12\0\1\u0154\43\0\1\u0156" + + "\1\u0190\4\u0156\1\u0190\2\0\3\u0156\2\0\1\u0190\1\0" + "\1\u0156\1\u0190\5\u0156\2\u0190\6\u0156\1\0\2\u0190\1\0" + + "\1\u0190\2\0\6\u0190\14\u0156\1\0\23\u0156\21\0\1\u0191" + "\132\0\1\u0109\12\0\1\u0157\43\0\1\u0159\1\u0192\4\u0159" + + "\1\u0192\2\0\3\u0159\2\0\1\u0192\1\0\1\u0159\1\u0192" + "\5\u0159\2\u0192\6\u0159\1\0\2\u0192\1\0\1\u0192\2\0" + + "\6\u0192\14\u0159\1\0\23\u0159\3\4\4\u0193\2\0\3\4" + "\1\u0193\2\0\1\4\3\0\2\4\3\u0193\2\0\2\4" + + "\2\u0193\2\4\13\0\1\4\1\0\4\4\1\u0193\1\4" + "\1\u0193\5\4\1\0\1\4\1\u0193\1\4\1\u0193\1\4" + + "\1\u0193\16\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\3\5\1\u0194\2\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\3\255\4\u0195\1\u010f\1\255" + "\1\u0110\2\255\1\u0195\10\255\3\u0195\4\255\2\u0195\23\255" + + "\1\u0195\1\255\1\u0195\7\255\1\u0195\1\255\1\u0195\1\255" + "\1\u0195\15\255\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\4\5\1\u0196\7\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\2\5\1\u0197\11\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\2\5\1\u0198\3\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\1\5" + "\1\u0124\1\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\1\5\1\u0199\4\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\6\5" + "\1\u019a\5\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\1\5\1\u019b\12\5\1\0\23\5\3\130" + "\4\u019c\2\130\1\273\2\130\1\u019c\1\274\7\130\3\u019c" + + "\4\130\2\u019c\23\130\1\u019c\1\130\1\u019c\7\130\1\u019c" + "\1\130\1\u019c\1\130\1\u019c\15\130\7\4\2\0\1\4" + + "\1\u019d\2\4\2\0\1\4\3\0\5\4\2\0\6\4" + "\13\0\1\4\1\0\14\4\1\0\24\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\4\5\1\301\7\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\u019e" + + "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\2\5\1\u019f\11\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\11\5\1\u01a0\2\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\4\5\1\u01a1\1\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\35\0\1\u01a2\57\0\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\3\5\1\u01a3\2\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\u01a4\5\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01a5" + "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\3\5" + "\1\157\1\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\157" + + "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + + "\1\u01a6\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\11\5\1\u012f" + + "\2\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\4\5\1\314\7\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\7\5\1\u01a7\4\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\3\5\1\u01a8\2\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\6\5\1\157\5\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\2\5" + "\1\u0178\2\5\2\0\6\5\13\0\1\4\1\0\14\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\5\1\u01a9\4\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5" + "\1\u01aa\1\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\6\5\13\0\1\4\1\0\7\5\1\u01ab" + "\4\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\14\5\1\0\5\5\1\u01ac\2\5\1\u01ad\12\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\6\5\1\u01ae" + + "\5\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\1\5\1\u01af\16\5\1\u01b0\2\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\1\120\22\5\1\4\6\5\2\0\1\103\1\5\1\u01b1" + + "\1\5\2\0\1\4\3\0\3\5\1\u019b\1\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\6\5\13\0\1\4\1\0\4\5\1\120\7\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + + "\11\5\1\u01b2\2\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\2\5\1\u01b3\11\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\11\5\1\u01b4" + "\2\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\4\5\1\126\1\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\1\5\1\u01b5\1\5\2\0\1\4\3\0" + + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\1\5" + + "\1\u01b6\12\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\2\5\1\u0180\11\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\11\5\1\u01b7\2\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\1\5\1\u01b8\4\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\1\5\1\u012f\3\5" + + "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\1\5\1\u01b9\1\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\2\5\1\u01ba\11\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\3\5\1\u01bb" + "\17\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\1\372\22\5\21\0\1\u0156\114\0\1\u0159\73\0" + "\3\4\4\5\2\0\3\4\1\5\2\0\1\4\3\0" + + "\2\4\3\5\2\0\2\4\2\5\2\4\13\0\1\4" + "\1\0\4\4\1\5\1\4\1\5\5\4\1\0\1\4" + "\1\5\1\4\1\5\1\4\1\5\16\4\6\5\2\0" + + "\1\103\1\5\1\372\1\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\3\255\4\11\1\u010f\1\255\1\u0110\2\255\1\11\10\255" + "\3\11\4\255\2\11\23\255\1\11\1\255\1\11\7\255" + + "\1\11\1\255\1\11\1\255\1\11\15\255\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\7\5\1\u0174" + + "\13\5\1\4\6\5\2\0\1\103\1\5\1\u01bc\1\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\5\5\1\u01bd\15\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\3\5\1\u01be\2\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\2\5\1\u0160\3\5\13\0" + + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5" + "\1\u01bf\2\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\3\130\4\16\2\130\1\273\2\130\1\16\1\274\7\130" + "\3\16\4\130\2\16\23\130\1\16\1\130\1\16\7\130" + + "\1\16\1\130\1\16\1\130\1\16\15\130\7\4\2\0" + "\4\4\2\0\1\4\3\0\5\4\2\0\6\4\13\0" + "\1\4\1\0\4\4\1\u01c0\7\4\1\0\24\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\5\5\1\u01c1\6\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\7\5" + "\1\u0170\4\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\u01c2" + + "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\10\5\1\157\3\5" + + "\1\0\23\5\63\0\1\u01c3\31\0\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\5" + "\1\u01c4\4\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\15\5\1\u01c5\5\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\21\5\1\u01c6\1\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\6\5\13\0\1\4\1\0\14\5\1\0\7\5\1\u01c7" + "\13\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + + "\1\0\2\5\1\u01c8\20\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\1\5\1\u01c9" + "\4\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\3\5\1\u01ca\2\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\4\5\1\u01cb\1\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + + "\13\0\1\4\1\0\1\5\1\u01cc\12\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\5\5\1\u01cd\13\0\1\4\1\0\14\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\1\u0172\2\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\1\u01bc\5\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\4\5\1\u01ce\1\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\1\5\1\u01cf\1\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\265" + "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\2\5\1\u01d0\3\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\1\u0124\5\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01d1" + + "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\1\120\2\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\4\5\1\u01d2\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\2\5\1\u01d3\3\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\5\5\1\u01d4\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\u01d5" + + "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\7\5\1\u0194\4\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\4\5\1\u01d6\1\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\2\5\1\162\3\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\3\5\1\u01d7\1\5\2\0" + + "\6\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\11\5\1\u0124\2\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\6\5\1\120\5\5\1\0\23\5\7\4\2\0\4\4" + + "\2\0\1\4\3\0\5\4\2\0\2\4\1\u01d8\3\4" + "\13\0\1\4\1\0\14\4\1\0\24\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + + "\1\264\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\1\5\1\u01d9\1\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + + "\14\5\1\0\23\5\55\0\1\u01da\37\0\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\1\u01db\22\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\3\5\1\u01dc\2\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\2\5\1\u01dd\11\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\6\5\13\0\1\4\1\0\7\5\1\u01de\4\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\2\5" + + "\1\u01df\11\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\2\5\1\u01e0\11\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\1\u012f" + "\22\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\13\5\1\u01e1\7\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01e2" + + "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\4\5\1\u01e3\1\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\14\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\7\5\1\u01e4\4\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\u012f" + "\5\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\1\5" + + "\1\u01e5\3\5\2\0\6\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\u01e6" + "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\14\5\1\0\2\5\1\u01e7\20\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\1\5\1\u012f\4\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\2\5\1\u01e8\11\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\6\5\13\0\1\4\1\0\14\5\1\0\13\5\1\u01e9" + "\1\5\1\u01ea\5\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\2\5\1\u01eb\11\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\1\u01ec\5\5\13\0\1\4\1\0\14\5\1\0\23\5" + + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\4\5\1\u012f" + "\7\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + + "\2\0\1\4\3\0\5\5\2\0\2\5\1\126\3\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + + "\1\u01ed\5\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + + "\1\u01ee\22\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\2\5\1\u01ef\20\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\2\5" + "\1\u01f0\3\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\3\5\1\u01f1\2\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + + "\1\0\7\5\1\u01f2\4\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\1\5\1\u01f3\4\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\2\5" + "\1\u01f4\11\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\3\5\1\u01cf" + "\2\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\6\5\13\0\1\4\1\0\7\5\1\u01f5\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\1\314\5\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\2\5\1\u01f6" + "\3\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\7\5\1\u01f7\4\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\1\u01f8\5\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\4\5\1\177" + + "\1\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\1\5\1\372\12\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\2\5\1\u01f9\3\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\1\u012f\13\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\6\5\13\0\1\4\1\0\1\u01fa\13\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\2\5" + + "\1\u01fb\11\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\10\5\1\u01ad\12\5\1\4" + + "\6\5\2\0\1\103\2\5\1\u01fc\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + "\23\5\1\4\6\5\2\0\1\103\1\u01fd\2\5\2\0" + + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\1\343\5\5\13\0" + + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\1\u01fe" + "\5\5\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\3\5\1\u01ff\2\5\13\0\1\4\1\0\14\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\1\5\1\126" + + "\1\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\1\5\1\u012f\1\5\2\0\1\4\3\0\5\5" + + "\2\0\6\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\7\5\1\u0200" + + "\4\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\1\5\1\u0201\4\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\22\5\1\u0202" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\2\5\1\u0203\3\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\4\5\1\u0204\1\5" + + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + "\2\0\1\103\1\5\1\u0205\1\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\14\5\1\0" + + "\23\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + "\3\0\5\5\2\0\6\5\13\0\1\4\1\0\11\5" + "\1\u0206\2\5\1\0\23\5\1\4\6\5\2\0\1\103" + + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + "\1\4\1\0\4\5\1\u01bc\7\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + + "\2\0\6\5\13\0\1\4\1\0\1\5\1\u012f\12\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\4\5\1\u0207\2\0\6\5\13\0\1\4" + + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\1\u0208\2\5\2\0\1\4\3\0\5\5\2\0\6\5" + "\13\0\1\4\1\0\14\5\1\0\23\5\1\4\6\5" + + "\2\0\1\103\3\5\2\0\1\4\3\0\5\5\2\0" + "\6\5\13\0\1\4\1\0\14\5\1\0\3\5\1\u0209" + "\17\5\1\4\6\5\2\0\1\103\3\5\2\0\1\4" + + "\3\0\5\5\2\0\2\5\1\u020a\3\5\13\0\1\4" + "\1\0\14\5\1\0\23\5\1\4\6\5\2\0\1\103" + "\3\5\2\0\1\4\3\0\5\5\2\0\6\5\13\0" + + "\1\4\1\0\4\5\1\u020b\7\5\1\0\23\5\1\4" + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\3\5\1\u020c\2\5\13\0\1\4\1\0\14\5" + + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + "\1\4\3\0\5\5\2\0\6\5\13\0\1\4\1\0" + "\14\5\1\0\2\5\1\u020d\20\5\1\4\6\5\2\0" + + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\3\5" + "\1\u020e\2\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + + "\5\5\2\0\4\5\1\u020f\1\5\13\0\1\4\1\0" + "\14\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\5\5\1\u01f0\13\0" + + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\5\5" + "\1\u012f\13\0\1\4\1\0\14\5\1\0\23\5\1\4" + + "\6\5\2\0\1\103\3\5\2\0\1\4\3\0\5\5" + "\2\0\6\5\13\0\1\4\1\0\1\5\1\u01f0\12\5" + "\1\0\23\5\1\4\6\5\2\0\1\103\3\5\2\0" + + "\1\4\3\0\5\5\2\0\2\5\1\u01b0\3\5\13\0" + "\1\4\1\0\14\5\1\0\23\5\1\4\6\5\2\0" + "\1\103\3\5\2\0\1\4\3\0\5\5\2\0\4\5" + + "\1\u0210\1\5\13\0\1\4\1\0\14\5\1\0\23\5" + "\1\4\6\5\2\0\1\103\3\5\2\0\1\4\3\0" + "\5\5\2\0\6\5\13\0\1\4\1\0\2\5\1\u0200" + + "\11\5\1\0\23\5\1\4\6\5\2\0\1\103\3\5" + "\2\0\1\4\3\0\5\5\2\0\6\5\13\0\1\4" + "\1\0\2\5\1\u01f3\11\5\1\0\23\5"; + + private static int[] zzUnpackTrans() { + int[] result = new int[38731]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\6\1\1\11\4\1\1\11\17\1\2\11\3\1" + "\1\11\24\1\1\11\5\1\1\11\15\1\1\11\14\1" + + "\1\11\1\1\1\11\35\1\1\0\43\1\1\11\10\0" + "\2\1\1\0\22\1\1\11\2\1\1\0\105\1\10\0" + "\2\1\1\11\14\1\1\11\5\1\1\0\61\1\2\0" + + "\1\1\2\0\22\1\1\0\43\1\4\0\17\1\1\0" + "\40\1\1\0\26\1\1\11\66\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[528]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public ActionScriptTokenMaker() { - } - - + public ActionScriptTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1502,26 +749,26 @@ public class ActionScriptTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -1532,7 +779,6 @@ public class ActionScriptTokenMaker extends AbstractJFlexCTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1542,21 +788,18 @@ public class ActionScriptTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1565,7 +808,8 @@ public class ActionScriptTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -1574,384 +818,414 @@ public class ActionScriptTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 ActionScriptTokenMaker(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 ActionScriptTokenMaker(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 < 190) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 5: { + addNullToken(); + return firstToken; + } + case 30: + break; + case 16: { + addToken(Token.LITERAL_CHAR); + } + case 31: + break; + case 21: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 32: + break; + case 25: { + addToken(Token.COMMENT_MULTILINE); + } + case 33: + break; + case 20: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 34: + break; + case 7: { + addToken(Token.WHITESPACE); + } + case 35: + break; + case 15: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 36: + break; + case 22: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 37: + break; + case 14: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 38: + break; + case 17: { + addToken(Token.RESERVED_WORD); + } + case 39: + break; + case 9: { + addToken(Token.SEPARATOR); + } + case 40: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 41: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 42: + break; + case 19: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 43: + break; + case 27: { + addToken(Token.FUNCTION); + } + case 44: + break; + case 4: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 45: + break; + case 6: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 46: + break; + case 23: { + addToken(Token.DATA_TYPE); + } + case 47: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 48: + break; + case 24: { + addToken(Token.ERROR_CHAR); + } + case 49: + break; + case 26: { + addToken(Token.LITERAL_BOOLEAN); + } + case 50: + break; + case 18: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 51: + break; + case 29: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 52: + break; + case 28: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 53: + break; + case 13: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 54: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 55: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 56: + break; + case 10: {} + case 57: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 58: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 529: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 530: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 531: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 ActionScriptTokenMaker(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 ActionScriptTokenMaker(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 < 190) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 5: - { addNullToken(); return firstToken; - } - case 30: break; - case 16: - { addToken(Token.LITERAL_CHAR); - } - case 31: break; - case 21: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 32: break; - case 25: - { addToken(Token.COMMENT_MULTILINE); - } - case 33: break; - case 20: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 34: break; - case 7: - { addToken(Token.WHITESPACE); - } - case 35: break; - case 15: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 36: break; - case 22: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 37: break; - case 14: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 38: break; - case 17: - { addToken(Token.RESERVED_WORD); - } - case 39: break; - case 9: - { addToken(Token.SEPARATOR); - } - case 40: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 41: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 42: break; - case 19: - { start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - case 43: break; - case 27: - { addToken(Token.FUNCTION); - } - case 44: break; - case 4: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 45: break; - case 6: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 46: break; - case 23: - { addToken(Token.DATA_TYPE); - } - case 47: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 48: break; - case 24: - { addToken(Token.ERROR_CHAR); - } - case 49: break; - case 26: - { addToken(Token.LITERAL_BOOLEAN); - } - case 50: break; - case 18: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 51: break; - case 29: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 52: break; - case 28: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 53: break; - case 13: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 54: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 55: break; - case 8: - { addToken(Token.OPERATOR); - } - case 56: break; - case 10: - { - } - case 57: break; - case 11: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 58: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 529: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 530: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 531: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/AssemblerX86TokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/AssemblerX86TokenMaker.java index dc4e562..76fb2e6 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/AssemblerX86TokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/AssemblerX86TokenMaker.java @@ -1,1443 +1,887 @@ /* The following code was generated by JFlex 1.4.1 on 2/1/08 1:33 PM */ - /* * 12/06/2004 - * * AssemblerX86TokenMaker.java - An object that can take a chunk of text and * return a linked list of tokens representing X86 assembler. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * This class takes plain text and returns tokens representing x86 - * assembler.

+ * assembler. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated AssemblerX86TokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated AssemblerX86TokenMaker.java file will contain + * two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.2 * */ - public class AssemblerX86TokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int YYINITIAL = 0; - - /** - * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l - * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l - * at the beginning of a line - * l is of the form l = 2*k, k a non negative integer - */ - private static final int ZZ_LEXSTATE[] = { - 0, 1 - }; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\10\1\7\1\0\1\10\23\0\1\10\1\14\1\4\2\0"+ - "\1\13\1\14\1\5\2\0\1\12\1\12\1\3\1\12\1\15\1\12"+ - "\1\27\1\16\1\21\1\24\1\25\1\26\1\20\1\23\1\17\1\2"+ - "\1\11\1\6\1\14\1\14\1\14\1\50\1\0\1\30\1\33\1\40"+ - "\1\42\1\35\1\47\1\51\1\32\1\45\1\1\1\36\1\31\1\55"+ - "\1\43\1\41\1\22\1\56\1\34\1\37\1\44\1\46\1\61\1\52"+ - "\1\54\1\60\1\53\1\3\1\0\1\3\1\14\1\57\1\0\1\30"+ - "\1\33\1\40\1\42\1\35\1\47\1\51\1\32\1\45\1\1\1\36"+ - "\1\31\1\55\1\43\1\41\1\22\1\56\1\34\1\37\1\44\1\46"+ - "\1\61\1\52\1\54\1\60\1\53\1\0\1\14\1\0\1\14\uff81\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 = - "\2\0\2\1\1\2\1\3\1\4\1\5\1\6\1\7"+ - "\1\10\32\1\1\11\1\1\1\12\5\13\2\1\1\14"+ - "\1\15\25\0\16\1\2\16\23\1\1\13\11\1\1\16"+ - "\14\1\2\16\7\1\1\16\10\1\1\13\4\1\1\11"+ - "\3\1\1\16\1\1\1\11\15\1\1\13\1\12\13\1"+ - "\1\16\42\1\31\0\1\12\11\0\20\1\1\13\1\12"+ - "\14\1\2\13\3\1\1\13\4\1\1\12\6\1\1\13"+ - "\3\1\1\13\5\1\1\12\5\1\1\13\4\1\1\12"+ - "\1\1\1\13\2\1\1\13\10\1\1\13\4\1\1\13"+ - "\4\1\1\13\5\1\1\12\3\1\3\13\24\1\1\13"+ - "\37\1\1\13\3\1\1\13\3\1\1\0\1\12\10\0"+ - "\1\12\17\0\3\1\1\13\11\1\1\13\14\1\2\13"+ - "\1\1\1\17\1\13\3\1\2\12\10\1\1\12\7\1"+ - "\1\12\1\13\12\1\1\12\15\1\1\13\5\1\2\13"+ - "\1\1\1\13\14\1\1\13\3\1\1\13\4\1\1\0"+ - "\1\12\3\0\1\12\5\0\1\12\5\0\16\1\1\12"+ - "\5\1\1\12\16\1\1\12\1\1\1\13\4\1\1\13"+ - "\1\1\1\13\4\1\7\0\1\12\7\1\2\12\10\1"+ - "\1\0\1\12\2\0\1\12\1\0\4\1\1\12\1\1"+ - "\3\0\2\1\2\0\1\1\1\12\2\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[668]; - 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\62\0\144\0\226\0\310\0\372\0\u012c\0\u015e"+ - "\0\144\0\u0190\0\144\0\u01c2\0\u01f4\0\u0226\0\u0258\0\u028a"+ - "\0\u02bc\0\u02ee\0\u0320\0\u0352\0\u0384\0\u03b6\0\u03e8\0\u041a"+ - "\0\u044c\0\u047e\0\u04b0\0\u04e2\0\u0514\0\u0546\0\u0578\0\u05aa"+ - "\0\u05dc\0\u060e\0\u0640\0\u0672\0\u06a4\0\u06d6\0\u0708\0\u0708"+ - "\0\u073a\0\u076c\0\u079e\0\u0352\0\u07d0\0\u0802\0\u0834\0\144"+ - "\0\144\0\u0866\0\u0898\0\u08ca\0\u08fc\0\u092e\0\u0960\0\u0992"+ - "\0\u09c4\0\u09f6\0\u0a28\0\u0a5a\0\u0a8c\0\u0abe\0\u0af0\0\u0b22"+ - "\0\u0b54\0\u0b86\0\u0bb8\0\u0bea\0\u0c1c\0\u0c4e\0\u0c80\0\u0cb2"+ - "\0\u0ce4\0\u0d16\0\u0d48\0\u0d7a\0\u0dac\0\u0dde\0\u0e10\0\u0e42"+ - "\0\u0e74\0\u0ea6\0\u0ed8\0\u0f0a\0\u0f3c\0\u0352\0\u0f6e\0\u0fa0"+ - "\0\u0fd2\0\u1004\0\u1036\0\u1068\0\u109a\0\u10cc\0\u10fe\0\u1130"+ - "\0\u1162\0\u1194\0\u11c6\0\u11f8\0\u122a\0\u125c\0\u128e\0\u12c0"+ - "\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba\0\u13ec\0\u141e\0\u1450"+ - "\0\u1482\0\u14b4\0\u14e6\0\u1518\0\u154a\0\u157c\0\u15ae\0\u15e0"+ - "\0\u1612\0\u1644\0\u1676\0\u16a8\0\u16da\0\u170c\0\u173e\0\u1770"+ - "\0\u17a2\0\u17d4\0\u1806\0\u1838\0\u186a\0\u189c\0\u18ce\0\u1900"+ - "\0\u1932\0\u1964\0\u1996\0\u19c8\0\u19fa\0\u1a2c\0\u1a5e\0\u1a90"+ - "\0\u1ac2\0\u1af4\0\u1b26\0\u1b58\0\u1b8a\0\u1bbc\0\u1bee\0\u0352"+ - "\0\u1c20\0\u1c52\0\u1c84\0\u1cb6\0\u1ce8\0\u186a\0\u1d1a\0\u1d4c"+ - "\0\u1d7e\0\u1db0\0\u1de2\0\u1e14\0\u1e46\0\u1e78\0\u1eaa\0\u1edc"+ - "\0\u1f0e\0\u1f40\0\u1f72\0\u1fa4\0\u1fd6\0\u2008\0\u203a\0\u206c"+ - "\0\u209e\0\u20d0\0\u2102\0\u2134\0\u2166\0\u2198\0\u21ca\0\u21fc"+ - "\0\u222e\0\u2260\0\u2292\0\u22c4\0\u22f6\0\u2328\0\u235a\0\u238c"+ - "\0\u23be\0\u23f0\0\u2422\0\u2454\0\u2486\0\u24b8\0\u24ea\0\u251c"+ - "\0\u254e\0\u2580\0\u25b2\0\u25e4\0\u2616\0\u2648\0\u267a\0\u26ac"+ - "\0\u26de\0\u2710\0\u2742\0\u2774\0\u27a6\0\u27d8\0\u280a\0\u283c"+ - "\0\u286e\0\u07d0\0\u28a0\0\u28d2\0\u2904\0\u2936\0\u2968\0\u299a"+ - "\0\u29cc\0\u29fe\0\u2a30\0\u2a62\0\u2a94\0\u2ac6\0\u2af8\0\u2b2a"+ - "\0\u2b5c\0\u2b8e\0\u2bc0\0\u2bf2\0\u2c24\0\u2c56\0\u2c88\0\u2cba"+ - "\0\u2cec\0\u2d1e\0\u2d50\0\u2d82\0\144\0\u2db4\0\u2de6\0\u2e18"+ - "\0\u2e4a\0\u2e7c\0\u2eae\0\u2ee0\0\u2f12\0\u2f44\0\u2f76\0\u2fa8"+ - "\0\u2fda\0\u300c\0\u303e\0\u3070\0\u30a2\0\u30d4\0\u3106\0\u3138"+ - "\0\u316a\0\u319c\0\u31ce\0\u3200\0\u3232\0\u3264\0\u3296\0\u0352"+ - "\0\u32c8\0\u32fa\0\u332c\0\u335e\0\u3390\0\u33c2\0\u33f4\0\u3426"+ - "\0\u3458\0\u348a\0\u34bc\0\u34ee\0\u3520\0\u3552\0\u3584\0\u35b6"+ - "\0\u35e8\0\u361a\0\u364c\0\u367e\0\u36b0\0\u36e2\0\u3714\0\u3746"+ - "\0\u3778\0\u37aa\0\u37dc\0\u380e\0\u3840\0\u3872\0\u38a4\0\u38d6"+ - "\0\u3908\0\u393a\0\u396c\0\u399e\0\u39d0\0\u3a02\0\u3a34\0\u3a66"+ - "\0\u3a98\0\u3aca\0\u3afc\0\u3b2e\0\u3b60\0\u3b92\0\u3bc4\0\u3bf6"+ - "\0\u3c28\0\u3c5a\0\u3c8c\0\u3cbe\0\u3cf0\0\u3d22\0\u3d54\0\u3d86"+ - "\0\u3db8\0\u3dea\0\u3e1c\0\u3e4e\0\u3e80\0\u3eb2\0\u3ee4\0\u3f16"+ - "\0\u3f48\0\u3f7a\0\u3fac\0\u3fde\0\u4010\0\u36e2\0\u4042\0\u4074"+ - "\0\u40a6\0\u40d8\0\u410a\0\u413c\0\u416e\0\u41a0\0\u41d2\0\u4204"+ - "\0\u4236\0\u4268\0\u429a\0\u42cc\0\u42fe\0\u4330\0\u4362\0\u4394"+ - "\0\u43c6\0\u43f8\0\u442a\0\u445c\0\u448e\0\u44c0\0\u44f2\0\u4524"+ - "\0\u4556\0\u4588\0\u45ba\0\u45ec\0\u461e\0\u3b92\0\u4650\0\u4682"+ - "\0\u46b4\0\u361a\0\u46e6\0\u4718\0\u474a\0\u477c\0\u47ae\0\u47e0"+ - "\0\u4812\0\u4844\0\u4876\0\u48a8\0\u48da\0\u490c\0\u493e\0\u4970"+ - "\0\u49a2\0\u49d4\0\u4a06\0\u4a38\0\u4a6a\0\u4a9c\0\u4ace\0\u4b00"+ - "\0\u4b32\0\u4b64\0\u4b96\0\u4bc8\0\u4bfa\0\u4c2c\0\u4c5e\0\u4c90"+ - "\0\u4cc2\0\u4cf4\0\u4d26\0\u4d58\0\u4d8a\0\u4dbc\0\u410a\0\u4dee"+ - "\0\u4e20\0\u4e52\0\u4e84\0\u4eb6\0\u4ee8\0\u4f1a\0\u4f4c\0\u4f7e"+ - "\0\u4fb0\0\u4fe2\0\u5014\0\u5046\0\u5078\0\u50aa\0\u50dc\0\u510e"+ - "\0\u5140\0\u5172\0\u51a4\0\u51d6\0\u5208\0\u523a\0\u526c\0\u529e"+ - "\0\u52d0\0\u5302\0\u5334\0\u5366\0\u5398\0\u53ca\0\u53fc\0\u542e"+ - "\0\u5460\0\u5492\0\u54c4\0\u54f6\0\u5528\0\u555a\0\u558c\0\u55be"+ - "\0\u55f0\0\u5622\0\u55f0\0\u5654\0\u5686\0\u56b8\0\u56ea\0\u571c"+ - "\0\u574e\0\u5780\0\u57b2\0\u4d58\0\u57e4\0\u076c\0\u5816\0\u5848"+ - "\0\u587a\0\u58ac\0\u0352\0\u58de\0\u5910\0\u5942\0\u5974\0\u59a6"+ - "\0\u1f40\0\u59d8\0\u5a0a\0\u5a3c\0\u5a6e\0\u5aa0\0\u5ad2\0\u5b04"+ - "\0\u5b36\0\u5b68\0\u5b9a\0\u5bcc\0\u5bfe\0\u5c30\0\u5c62\0\u5c94"+ - "\0\u5cc6\0\u5cf8\0\u5d2a\0\u5d5c\0\u5d8e\0\u5dc0\0\u5df2\0\u5e24"+ - "\0\u5e56\0\u5e88\0\u5eba\0\u5eec\0\u5f1e\0\u5f50\0\u5f82\0\u5fb4"+ - "\0\u5fe6\0\u6018\0\u604a\0\u607c\0\u60ae\0\u60e0\0\u6112\0\u6144"+ - "\0\u6176\0\u61a8\0\u5460\0\u0834\0\u61da\0\u620c\0\u623e\0\u6270"+ - "\0\u62a2\0\u62d4\0\u6306\0\u6338\0\u636a\0\u639c\0\u63ce\0\u6400"+ - "\0\u6432\0\u6464\0\u6496\0\u64c8\0\u64fa\0\u652c\0\u655e\0\u6590"+ - "\0\u65c2\0\u65f4\0\u6626\0\u6658\0\u668a\0\u66bc\0\u66ee\0\u6720"+ - "\0\u6752\0\u6784\0\u67b6\0\u67e8\0\u681a\0\u684c\0\u687e\0\u68b0"+ - "\0\u68e2\0\u6914\0\u6946\0\u6978\0\u69aa\0\u69dc\0\u6a0e\0\u6a40"+ - "\0\u6a72\0\u6aa4\0\u6ad6\0\u6b08\0\u6b3a\0\u6b6c\0\u6b9e\0\u6bd0"+ - "\0\u6c02\0\u6c34\0\u6c66\0\u4236\0\u6c98\0\u6cca\0\u65f4\0\u6cfc"+ - "\0\u6d2e\0\u6d60\0\u6d92\0\u6dc4\0\u6df6\0\u6e28\0\u6e5a\0\u5a6e"+ - "\0\u6e8c\0\u6ebe\0\u6ef0\0\u6f22\0\u6f54\0\u6f86\0\u6fb8\0\u6fea"+ - "\0\u701c\0\u704e\0\u7080\0\u70b2\0\u70e4\0\u7116\0\u7148\0\u717a"+ - "\0\u61da\0\u71ac\0\u71de\0\u7210\0\u7242\0\u1194\0\u7274\0\u72a6"+ - "\0\u72d8\0\u730a\0\u733c\0\u736e\0\u73a0\0\u73d2\0\u7404\0\u7436"+ - "\0\u7468\0\u749a\0\u74cc\0\u74fe\0\u7530\0\u7562\0\u7594\0\u587a"+ - "\0\u75c6\0\u75f8\0\u762a\0\u765c\0\u768e\0\u76c0\0\u76f2\0\u7724"+ - "\0\u7756\0\u7788\0\u77ba\0\u77ec\0\u781e\0\u7850\0\u7882\0\u4ee8"+ - "\0\u78b4\0\u78e6\0\u7918\0\u794a\0\u797c\0\u79ae\0\u79e0\0\u7a12"+ - "\0\u7a44\0\u7a76\0\u7aa8\0\u7ada\0\u7b0c\0\u7b3e\0\u7b70\0\u7ba2"+ - "\0\u6d60\0\u7bd4\0\u7c06\0\u7c38"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[668]; - 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 = - "\1\3\1\4\1\5\1\3\1\6\1\7\1\10\1\11"+ - "\1\12\1\3\3\13\1\14\4\5\1\15\5\5\1\16"+ - "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+ - "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\3"+ - "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\24"+ - "\1\45\1\3\1\4\1\5\1\3\1\6\1\7\1\10"+ - "\1\11\1\12\1\3\1\13\1\46\1\13\1\14\4\5"+ - "\1\15\5\5\1\16\1\17\1\20\1\21\1\22\1\23"+ - "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33"+ - "\1\34\1\35\1\3\1\36\1\37\1\40\1\41\1\42"+ - "\1\43\1\44\1\24\1\45\62\0\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\51"+ - "\5\24\2\52\1\24\1\52\1\24\1\53\1\24\1\54"+ - "\1\55\1\54\1\24\1\56\4\24\1\47\1\52\1\24"+ - "\1\54\1\24\1\57\4\24\1\47\1\24\1\5\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\4\5\1\24"+ - "\5\5\20\24\1\47\11\24\4\6\1\60\55\6\5\7"+ - "\1\61\54\7\7\10\1\0\52\10\10\0\1\12\67\0"+ - "\1\62\1\63\1\64\1\65\2\0\1\65\2\64\1\0"+ - "\1\66\1\67\1\0\1\70\1\71\1\72\1\73\1\74"+ - "\1\75\1\0\1\76\1\77\1\100\1\101\1\102\1\103"+ - "\2\0\1\104\1\0\1\105\1\106\4\0\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24"+ - "\1\107\3\24\1\110\1\111\1\24\1\112\1\113\1\114"+ - "\2\24\1\115\1\116\1\117\1\24\1\47\3\24\1\120"+ - "\1\121\4\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\1\122\5\24\1\123\3\24\1\124"+ - "\1\125\1\126\1\24\1\127\2\24\1\130\2\24\1\131"+ - "\1\132\4\24\1\47\3\24\1\126\5\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24"+ - "\1\133\1\134\2\24\1\135\1\136\1\24\1\137\1\24"+ - "\1\140\1\141\1\24\1\142\1\134\1\24\1\143\1\47"+ - "\1\144\3\24\1\145\4\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\13\24\1\146\13\24"+ - "\1\147\2\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\4\24\1\126\6\24"+ - "\2\126\4\24\1\150\1\24\1\151\2\24\1\152\1\153"+ - "\2\24\1\47\3\24\1\126\3\24\1\154\1\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\155\1\24\1\156\2\157\1\160\5\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\12\24\1\161\1\162\1\24\1\163\3\24"+ - "\1\164\1\165\1\24\1\166\1\167\4\24\1\47\3\24"+ - "\1\170\1\171\1\172\2\24\1\173\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\4\24\1\126\5\24\1\174\1\134\1\175"+ - "\1\176\1\24\1\177\1\24\1\126\1\200\1\24\1\43"+ - "\1\24\1\201\1\202\1\203\1\204\1\47\1\134\1\205"+ - "\2\24\1\145\1\206\1\24\1\207\1\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\210\5\24\1\211\1\212\1\126\1\213\1\214\2\24"+ - "\1\126\1\24\1\215\1\216\5\24\1\47\1\24\1\217"+ - "\1\24\1\126\1\220\3\24\1\221\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\1\122\3\24"+ - "\1\222\1\24\1\123\7\24\1\223\11\24\1\224\1\225"+ - "\1\47\10\24\1\226\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\12\24\1\227\2\126\1\230"+ - "\1\231\1\232\1\24\1\126\1\24\1\233\1\230\1\24"+ - "\1\230\1\234\1\235\1\230\1\47\1\24\1\236\1\24"+ - "\1\126\1\24\1\230\3\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\12\24\1\237\4\24"+ - "\1\240\3\24\1\241\6\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\14\24"+ - "\1\242\1\243\1\244\1\245\7\24\1\246\2\24\1\47"+ - "\1\24\1\205\5\24\1\247\1\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\250"+ - "\1\251\1\24\1\252\2\24\1\253\1\254\3\24\1\255"+ - "\1\47\4\24\1\256\4\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\15\24\1\257\3\24"+ - "\1\260\1\261\2\24\1\262\4\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\3\24\1\263\1\264\5\24\1\265\1\266\1\24\1\267"+ - "\1\270\2\24\1\271\1\272\1\273\1\274\1\275\1\276"+ - "\1\277\1\300\1\301\1\47\1\24\1\302\1\24\1\303"+ - "\1\304\2\24\1\305\1\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\13\24\1\306\2\24"+ - "\1\307\2\24\1\126\1\24\1\310\6\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\12\24\1\311\1\24\1\312\1\313\1\314\4\24"+ - "\1\315\6\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\316\12\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\12\24\1\317\1\320\6\24\1\321"+ - "\1\322\6\24\1\47\4\24\1\323\4\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24"+ - "\1\324\10\24\1\325\3\24\1\326\1\327\1\24\1\47"+ - "\4\24\1\231\4\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\1\24\1\205"+ - "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\6\24\1\330\2\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\331\12\24\1\47\11\24\1\0\2\46\13\0"+ - "\32\46\1\0\11\46\3\47\1\0\3\47\2\0\1\47"+ - "\2\0\1\47\1\0\45\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\17\24\1\54\3\24\1\54"+ - "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\17\24\1\54\12\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\22\24\1\332\7\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\3\24\1\333\5\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\54"+ - "\5\24\2\52\1\24\1\52\1\24\1\54\1\24\3\54"+ - "\6\24\1\47\1\52\1\24\1\54\6\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\54\25\24\1\47\11\24\17\0\1\334\71\0\1\335"+ - "\51\0\1\336\61\0\1\337\73\0\1\340\60\0\1\341"+ - "\14\0\1\342\1\0\1\343\46\0\1\344\2\0\1\345"+ - "\52\0\1\346\4\0\1\347\55\0\1\350\2\0\1\351"+ - "\6\0\1\352\10\0\1\353\31\0\1\354\65\0\1\341"+ - "\4\0\1\355\6\0\1\356\2\0\1\343\46\0\1\357"+ - "\4\0\1\360\50\0\1\361\10\0\1\362\61\0\1\363"+ - "\55\0\1\364\11\0\1\343\61\0\1\365\55\0\1\366"+ - "\46\0\1\367\63\0\1\370\57\0\1\341\1\371\6\0"+ - "\1\372\14\0\1\373\43\0\1\374\1\0\1\375\13\0"+ - "\1\376\4\0\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\16\24\1\377\3\24\1\u0100\1\24"+ - "\1\u0101\1\u0102\4\24\1\47\1\u0103\7\24\1\u0104\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\u0105\3\24\1\u0106\3\24\1\u0107\2\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\3\24\1\u0108\5\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\12\24\1\u0109\1\u010a\1\u010b\1\24\1\u010c\11\24\1\u010d"+ - "\1\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\4\24\1\u010e"+ - "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\4\24\1\u010f\11\24\1\54\13\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\16\24\1\u0110\13\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\25\24\1\u0111\4\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\u0112"+ - "\1\u0113\2\24\1\u0114\3\24\1\u0115\4\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\23\24\1\142\6\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24"+ - "\1\u0116\10\24\1\u0117\3\24\1\u0118\1\u0119\1\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\2\24\1\u0110\27\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\3\24\1\u0110\26\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\54"+ - "\6\24\1\54\2\24\1\54\5\24\1\47\4\24\1\54"+ - "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\27\24\1\u011a\2\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\4\24\1\u011b\25\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u011c"+ - "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\22\24\1\54\1\24\1\u011d"+ - "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\24\24\1\u011e\5\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\14\24\1\u011f\1\u0120\1\54\13\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\24\24\1\146\5\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\23\24\1\u0121\6\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u0122"+ - "\6\24\1\54\3\24\1\u0123\4\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\13\24\1\54\5\24\1\54\10\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\22\24\1\u0124\1\u0125\1\u0126\5\24\1\47\1\24\1\u0127"+ - "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\21\24\1\54\10\24\1\47\4\24\1\u0128"+ - "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\16\24\1\54\13\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\54\10\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\54"+ - "\2\24\1\146\5\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\213"+ - "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\26\24\1\54\3\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\1\u0129\10\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24"+ - "\1\54\12\24\1\54\1\47\1\24\1\u012a\7\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\30\24\1\u012b\1\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\54"+ - "\2\24\2\54\7\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\26\24\1\u012c"+ - "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\26\24\1\u012d\3\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\4\24\1\u012e\5\24\1\u012f\6\24\1\u0130"+ - "\1\u0131\3\24\1\u0132\3\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24"+ - "\1\47\4\24\1\54\4\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\13\24\1\54\2\24"+ - "\1\54\13\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\4\24\1\u0133\21\24"+ - "\1\u0134\3\24\1\47\4\24\1\u0135\4\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24"+ - "\1\47\3\24\1\126\5\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\21\24\1\u0136\10\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\4\24\1\126\25\24\1\47\3\24"+ - "\1\126\5\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\4\24\1\126\22\24\1\126\2\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\14\24\1\u0137\15\24\1\47\3\24"+ - "\1\126\5\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\27\24\1\126\2\24\1\47\3\24"+ - "\1\126\5\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\24\24\1\u0138\1\24\1\u0139\3\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\4\24\1\u013a\21\24\1\u013b\1\u013c"+ - "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\4\24\1\143"+ - "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\30\24\1\230\1\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\u013d\12\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\54"+ - "\1\u011f\1\24\1\54\13\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\13\24"+ - "\1\u013e\2\24\1\u013e\4\24\1\u013f\4\24\1\u0140\1\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\15\24\1\54\14\24\1\47\7\24"+ - "\1\154\1\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\22\24\1\u0141\3\24\1\u0142\3\24"+ - "\1\47\1\u0143\10\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\12\24\1\u0126\17\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\1\126\1\24\2\126\1\24\5\126\1\u0144"+ - "\3\24\1\u0145\3\24\1\54\1\u0126\1\54\2\24\1\54"+ - "\2\24\1\47\4\24\1\u0128\4\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\146"+ - "\5\24\1\47\1\u0146\1\24\1\u0147\6\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\15\24"+ - "\1\u0148\14\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\u0149\12\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\23\24\1\315\6\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\16\24\1\u014a\13\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\u014b\10\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\30\24\1\u014c\1\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\13\24\1\u011b\2\24\1\u014d\7\24"+ - "\1\u014e\3\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\22\24\1\54\1\24"+ - "\1\54\1\24\1\143\1\54\2\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\1\24\1\54\7\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\3\24\1\126"+ - "\2\24\2\126\1\24\1\126\20\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\24\24\1\u014f\5\24\1\47\4\24\1\u0150\4\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\5\24\1\54\3\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\52"+ - "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\4\24\1\u0151\15\24\1\54"+ - "\1\u0152\6\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\26\24\1\u0153\3\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\12\24\1\u0154\13\24\1\u0155\3\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\4\24\1\143\25\24\1\47\1\u0110"+ - "\10\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\u0156\3\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\31\24\1\u0157\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\u0158\12\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\12\24\1\54\6\24\1\54\4\24"+ - "\1\u0159\3\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\1\126\1\24\2\126"+ - "\1\24\5\126\20\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\54"+ - "\7\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\21\24\1\u015a\10\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\10\24\1\u015b\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\230\25\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\4\24"+ - "\1\u0103\4\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\12\24\1\115\17\24\1\47\1\54"+ - "\10\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\4\24\1\54\14\24\1\u015c\4\24\1\54"+ - "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\27\24\1\u012c\2\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\7\24\1\154\1\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\2\24\1\126\2\24\4\126\21\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\146\10\24\1\47\3\24\1\u015d\5\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\26\24\1\u015e\3\24\1\47\4\24\1\u015f\4\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\4\24\1\u0160\25\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\u0161"+ - "\12\24\1\146\12\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u0162"+ - "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\26\24\1\u0163\3\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\27\24\1\u0164\2\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\u0165\1\u0166\3\24\1\u0167\3\24\1\47\10\24"+ - "\1\u0168\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\1\u0110\2\24\1\u0110\11\24\1\u0110\1\24"+ - "\1\u0110\4\24\1\u0169\1\u016a\1\24\1\u016b\2\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\4\24\1\u013a\23\24\1\u011b\1\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\3\24\1\54\26\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\u016c\12\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\u016d"+ - "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\4\24\1\u016e\22\24\1\u016f"+ - "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\3\24\1\u0170"+ - "\5\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\12\24\1\u0171\3\24\1\u0172\7\24\1\u0173"+ - "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\15\24\1\143\1\u0110\5\24"+ - "\1\u0174\5\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\24\24\1\u0175\5\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\13\24\1\u0176\5\24\1\u0177\10\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\21\24\1\u0178\3\24\1\u0179\4\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\12\24\1\u017a\7\24\1\u017b\3\24"+ - "\1\u017c\1\u017d\1\u017e\1\24\1\47\5\24\1\u017f\3\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\13\24\1\u0180\1\143\6\24\1\u0181\6\24\1\47"+ - "\4\24\1\u0182\4\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\16\24\1\u0161\13\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\17\24\1\u0183\7\24\1\u0184\2\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\21\24\1\u0185\1\u0186\1\57\3\24\1\u0187"+ - "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\21\24\1\146\10\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\12\24\1\317\1\u0176\5\24\1\u0188\1\u0189"+ - "\1\24\1\u018a\1\u018b\4\24\1\47\4\24\1\u018c\4\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\22\24\1\u018d\7\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24"+ - "\1\u018e\13\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\12\24\1\311\10\24"+ - "\1\315\6\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\12\24\1\156\3\24"+ - "\1\u018f\2\24\1\u0190\1\u0191\3\24\1\u0192\3\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\30\24\1\u0193\1\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\13\24\1\u0194\16\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\u0195"+ - "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\23\24\1\u0196\6\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\u0137\3\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\27\24\1\146\2\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\27\24\1\u015e"+ - "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\27\24\1\u0197\2\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\u0110\3\24\1\47\4\24\1\u0135"+ - "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\16\24\1\u0198\13\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\16\24\1\u0199\13\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\u0176"+ - "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\12\24\1\u019a\17\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\14\24\1\u019b\15\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\16\24\1\u019c\13\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\4\24\1\231\4\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\21\24\1\u019d\1\u019e\7\24"+ - "\1\47\3\24\1\u019f\5\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\10\24"+ - "\1\u01a0\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\25\24\1\u019f\4\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\13\24\1\u015b\16\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u01a1"+ - "\15\24\1\u01a2\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\16\24\1\u01a3\13\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\47\2\24\1\54\6\24"+ - "\20\0\1\365\60\0\1\u01a4\62\0\1\u01a5\61\0\1\u01a5"+ - "\2\0\1\365\60\0\1\u01a6\70\0\1\u01a7\67\0\1\u01a8"+ - "\62\0\1\u01a9\56\0\1\u01aa\63\0\1\365\64\0\1\u01ab"+ - "\41\0\1\u01ac\76\0\1\u01ad\56\0\1\u01ae\67\0\1\u01af"+ - "\64\0\1\u01b0\56\0\1\365\75\0\1\365\33\0\1\u01b1"+ - "\66\0\1\101\66\0\1\u01b2\1\u01b3\62\0\1\u01b4\54\0"+ - "\1\u01b5\41\0\1\u01b6\11\0\1\u01b7\6\0\1\372\75\0"+ - "\1\u01b0\51\0\1\u01b8\51\0\1\u01b9\72\0\1\u01ba\61\0"+ - "\1\u01bb\50\0\1\357\102\0\1\365\53\0\1\u01bc\54\0"+ - "\1\u01bd\73\0\1\365\5\0\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\27\24\1\u01be\2\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\20\24\1\u01bf\11\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\24\24\1\u01c0\5\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\24\24"+ - "\1\u01c1\5\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\u0110\12\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\47\1\u01c2\10\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\31\24\1\u01c3\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\22\24\1\u0110\3\24"+ - "\1\u0137\3\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\10\24"+ - "\1\u01c4\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\u01c5\3\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\24\24\1\u01c6\5\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u01c7"+ - "\16\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\30\24\1\u01c8\1\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\12\24\1\u01c9\1\u01c7\16\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\15\24\1\u01c0\14\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\u01ca\25\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\12\24\1\u01cb\7\24"+ - "\1\u01cc\6\24\1\u01cb\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u01c5"+ - "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\13\24\1\u01cd\16\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\1\u0103\10\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\14\24"+ - "\1\u010f\15\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\4\24\1\u01ce\25\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\24\24\1\u01cf\5\24\1\47\3\24"+ - "\1\u01d0\5\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\47\10\24\1\u01d1\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\25\24\1\u01d0\4\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u01d2"+ - "\16\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\1\u01d3\10\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\13\24\1\54\16\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\30\24"+ - "\1\237\1\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\4\24\1\143\11\24"+ - "\1\u0110\2\24\1\143\10\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\143\20\24\1\u01d4\4\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\31\24"+ - "\1\54\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\17\24\1\u01d5\12\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\31\24\1\225\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24"+ - "\1\47\10\24\1\u01d6\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\1\u01d7\10\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\12\24\1\u01d5\5\24\1\54\11\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\4\24\1\u01d8\25\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\u01d9\10\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\1\24"+ - "\1\u0131\7\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\47\3\24\1\u01da\5\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\14\24\1\u0127\15\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24"+ - "\1\57\17\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\25\24\1\u0176\4\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\21\24\1\u0110\10\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\17\24\1\u01db\12\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24"+ - "\1\u01dc\5\24\1\u01dd\1\u0110\3\24\1\47\2\24\1\54"+ - "\6\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\13\24\1\u01de\16\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\15\24\1\230\6\24\1\230\1\24\1\230\3\24\1\47"+ - "\1\24\1\230\3\24\1\230\3\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\u01df"+ - "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\25\24\1\54\3\24\1\54"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\47\4\24\1\232\4\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\21\24\1\232\10\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\142\10\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\u01e0\12\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\23\24\1\u0110\6\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\4\24\1\u0110\14\24\1\u01e1\5\24\1\u01e2\2\24"+ - "\1\47\4\24\1\u0110\4\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\142\12\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\23\24\1\u013f\6\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\16\24\1\u013d\1\u01e3\12\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\26\24\1\u01e4\3\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u0110"+ - "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\24\24\1\54\5\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\16\24\1\u01e5\13\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\31\24\1\u01d4\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\26\24\1\u0155\3\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\4\24\1\51\5\24\2\52\1\24"+ - "\1\52\1\24\1\54\1\24\3\54\1\24\1\56\4\24"+ - "\1\47\1\52\1\24\1\54\6\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\4\24\1\u01e6\4\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\22\24\1\u01e7\7\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\30\24\1\u01e8\1\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\25\24\1\u01e9\4\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\u01ea"+ - "\12\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\4\24\1\143\14\24\1\u01eb"+ - "\4\24\1\u01ec\3\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u01ed"+ - "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\26\24\1\u019f\3\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\17\24\1\u01ee\12\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\27\24\1\u0176\2\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\u01ef"+ - "\13\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\21\24\1\u01f0\10\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\17\24\1\u015a\12\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\27\24\1\u01f1\2\24\1\47\4\24\1\u01f2\4\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\4\24\1\143\14\24\1\u01f3\10\24\1\47\3\24\1\u01f4"+ - "\5\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\10\24\1\u0142\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\u01f5\14\24\1\u01f6\4\24\1\u01f7\3\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\26\24\1\u01f0\3\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\27\24"+ - "\1\u016f\2\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\21\24\1\u01f8\10\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\16\24\1\u01f9\13\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\12\24\1\u015a\17\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\u01fa\10\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\4\24\1\143\14\24"+ - "\1\143\10\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\4\24\1\u01fb\25\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\26\24\1\u01fc\3\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\13\24\1\u0103\16\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24"+ - "\1\u01fd\12\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\u01fe\12\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\22\24\1\u0110\7\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\24\24\1\u0110\5\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24"+ - "\1\u01ff\13\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\10\24"+ - "\1\54\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\15\24\1\54\6\24\1\54\1\24\1\115"+ - "\3\24\1\47\1\24\1\54\7\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u0200"+ - "\1\24\1\u0201\14\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\54"+ - "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\13\24\1\u0202\7\24\1\u0203"+ - "\1\54\5\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\17\24\1\u01e2\7\24"+ - "\1\u0204\2\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\15\24\1\u0110\6\24"+ - "\1\u0205\5\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\24\24\1\u0206\5\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\1\122\5\24\1\123\12\24\1\u0110"+ - "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\4\24\1\u0207"+ - "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\22\24\1\u0208\7\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\23\24\1\u013d\6\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\4\24\1\u0209\4\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\26\24\1\u0173\3\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\17\24\1\u020a\12\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\12\24\1\u020b\17\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\u020c"+ - "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\1\54\3\24\1\u020d\6\24"+ - "\1\u020e\3\24\1\u020f\2\24\1\213\7\24\1\47\2\24"+ - "\1\54\6\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\26\24\1\57\3\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\26\24\1\120\3\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\24\24"+ - "\1\u0210\5\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\12\24\1\u0211\17\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\4\24\1\54\12\24\1\u020f\1\24"+ - "\2\213\7\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\25\24\1\u0212\4\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\15\24\1\u0213\14\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\16\24\1\146\13\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24"+ - "\1\u0214\12\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\21\24\1\54\10\24"+ - "\1\47\4\24\1\u0215\4\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\23\24\1\u0216\6\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\22\24\1\u0217\7\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\32\24\1\47\10\24\1\u0213\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u017a"+ - "\13\24\1\u0218\3\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u0180"+ - "\16\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\25\24\1\311\4\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\u020c\1\24\1\u0219\1\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\23\24\1\u021a\6\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\27\24\1\u021b\2\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\u0217"+ - "\4\24\1\146\2\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\30\24\1\u011b"+ - "\1\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\23\24\1\u021c\6\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\17\24\1\u01d6\12\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\u0178\10\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u017a"+ - "\17\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\14\24\1\54\15\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\16\24\1\u021d\13\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\13\24\1\u020c\16\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\3\24\1\u021e"+ - "\26\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\15\24\1\u021f\14\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\30\24\1\u0220\1\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\25\24\1\u0221\4\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\u01db"+ - "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\23\24\1\u01e9\6\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\u0222\3\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\1\54\10\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\4\24\1\143\25\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\20\24\1\u0223\11\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\16\24\1\u0137\13\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24"+ - "\1\u01d4\1\u0224\1\u0225\4\24\1\u0226\2\24\1\54\1\u0227"+ - "\2\24\1\u01d4\1\24\1\47\2\24\1\u0214\1\24\1\u0228"+ - "\1\54\3\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\27\24\1\u0229\2\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\27\24\1\u022a\2\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24"+ - "\1\54\13\24\1\47\1\24\1\54\7\24\20\0\1\365"+ - "\2\0\1\365\60\0\1\365\71\0\1\u022b\60\0\1\365"+ - "\74\0\1\u022c\56\0\1\u022d\50\0\1\u022e\76\0\1\376"+ - "\51\0\1\u022f\61\0\1\u0230\42\0\1\365\2\0\1\365"+ - "\11\0\1\365\1\0\1\365\4\0\1\u0231\1\u0232\1\0"+ - "\1\u0233\61\0\1\101\4\0\1\365\53\0\1\365\51\0"+ - "\1\u0234\3\0\1\u022e\56\0\1\365\63\0\1\u01b0\4\0"+ - "\1\u0235\45\0\1\u0236\70\0\1\u0237\45\0\1\365\103\0"+ - "\1\u0238\61\0\1\u0239\56\0\1\u023a\50\0\1\u01b2\67\0"+ - "\1\u01b0\53\0\1\u023b\65\0\1\u01a7\24\0\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\26\24"+ - "\1\u01ef\3\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\21\24\1\u023c\6\24"+ - "\1\u023d\1\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\15\24\1\54\3\24"+ - "\1\u01c2\2\24\1\54\3\24\1\u023e\1\24\1\47\1\24"+ - "\1\54\7\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\25\24\1\54\4\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\15\24\1\54\14\24\1\47\1\24\1\54\7\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\17\24\1\u023f\12\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24"+ - "\1\u0240\17\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\16\24\1\213\13\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\15\24\1\213\14\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\24\24\1\54\5\24\1\47\1\24\1\54\3\24"+ - "\1\54\3\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\31\24\1\213\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\24\24\1\54\5\24\1\47\1\24\1\54\7\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\u0241\12\24\1\47\1\u0242\10\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\23\24"+ - "\1\u0243\6\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\27\24\1\u0244\2\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\22\24\1\u0245\7\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\24\24\1\u0246\5\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\213\6\24\1\u0247\1\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24"+ - "\1\47\4\24\1\u0248\4\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\13\24\1\213\1\u0249"+ - "\15\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\25\24\1\u024a\4\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\13\24\1\u0110\16\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\26\24\1\u024b\3\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\54"+ - "\5\24\1\u01dd\4\24\1\47\2\24\1\54\6\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\15\24\1\54\6\24\1\54\5\24\1\47\1\24\1\54"+ - "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\22\24\1\u0135\7\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\12\24\1\u01e5\17\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\54"+ - "\12\24\1\47\2\24\1\54\6\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\1\u024c\1\u01db"+ - "\5\24\1\u01db\22\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\u0162"+ - "\13\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\27\24\1\u024d\2\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\31\24\1\u0110\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24"+ - "\1\u024e\13\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\4\24"+ - "\1\u0110\4\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\26\24\1\u0110\3\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\17\24\1\u024f\12\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\20\24"+ - "\1\u0110\11\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\22\24\1\u0250\7\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\50\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\u01f0\1\24\1\u01e2\6\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\54\4\24\1\115\3\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\26\24"+ - "\1\u01d5\1\u0251\2\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\u01d6"+ - "\7\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\25\24\1\u0252\4\24\1\47"+ - "\3\24\1\311\5\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\7\24\1\u01e9"+ - "\1\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\115\3\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\143\10\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\u024f"+ - "\3\24\1\u013d\6\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\54"+ - "\3\24\1\54\2\24\1\54\5\24\1\47\1\24\1\54"+ - "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\22\24\1\u0253\7\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\u0254\5\24\1\u0255\2\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\u0256\5\24\1\u0257\2\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\4\24\1\u0258\14\24\1\u0259\10\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\u01e5\12\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\31\24\1\u025a"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\17\24\1\u025b\12\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\13\24\1\u025c\16\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24"+ - "\1\u025d\12\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\21\24\1\230\10\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\24\24\1\u0205\5\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\30\24\1\u0244\1\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\30\24"+ - "\1\u025e\1\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\27\24\1\u013d\2\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\4\24\1\u019b\25\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\20\24\1\u0103\11\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\31\24"+ - "\1\u025f\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\17\24\1\u01e2\12\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\25\24\1\u025f\4\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\27\24\1\u01f1\2\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\20\24\1\u0260"+ - "\11\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\1\54\31\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\32\24\1\47\4\24\1\u0261\4\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\27\24"+ - "\1\54\2\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\3\24\1\u0262\21\24"+ - "\1\257\4\24\1\47\1\257\10\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u0164"+ - "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\27\24\1\u0263\2\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\13\24\1\u01d6\16\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\22\24\1\u0264\7\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\54"+ - "\11\24\1\u020c\13\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\3\24\1\54\5\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\4\24\1\u020c\22\24\1\u020c"+ - "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\10\24\1\u0265"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\21\24\1\u0177\10\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24"+ - "\1\u020f\1\24\2\213\7\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\15\24"+ - "\1\u0266\14\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\4\24"+ - "\1\u020c\4\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\47\10\24\1\u0266\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\4\24\1\u0215\4\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u0267"+ - "\17\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\32\24\1\47\3\24\1\u0268"+ - "\5\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\12\24\1\u01d5\17\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\4\24\1\u0110\25\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\10\24\1\u0176\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\15\24\1\54\14\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\32\24\1\47\4\24\1\u0269\4\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\143\7\24\1\u01d4\15\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24"+ - "\1\143\6\24\1\u01d4\16\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\15\24"+ - "\1\54\3\24\1\54\2\24\1\54\5\24\1\47\1\24"+ - "\1\54\1\24\1\54\5\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\26\24\1\u026a\3\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\21\24\1\u026b\10\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\25\24\1\u026c\4\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\13\24"+ - "\1\u026c\16\24\1\47\11\24\30\0\1\365\61\0\1\341"+ - "\14\0\1\101\7\0\1\u026d\47\0\1\354\54\0\1\365"+ - "\53\0\1\u01b0\76\0\1\101\51\0\1\101\7\0\1\u026e"+ - "\47\0\1\365\6\0\1\357\10\0\1\365\50\0\1\u026f"+ - "\63\0\1\u0270\62\0\1\u0271\64\0\1\365\46\0\1\u0272"+ - "\63\0\1\u0273\53\0\1\u0274\60\0\1\361\72\0\1\u022f"+ - "\20\0\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\21\24\1\u0275\10\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\21\24\1\u0276\10\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u01c2"+ - "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\26\24\1\u0277\3\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\26\24\1\u0103\3\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\5\24\1\u0278\3\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\26\24\1\u0278"+ - "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\25\24\1\u0279\4\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\20\24\1\u027a\11\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\1\24\1\u0176\7\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u027b"+ - "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\30\24\1\213\1\24\1\47"+ - "\1\24\1\54\7\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\15\24\1\u0110\14\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\14\24\1\u027c\15\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\11\24\1\u01db\20\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\31\24\1\u027d"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\25\24\1\u01fe\4\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\25\24\1\u01e5\4\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\26\24"+ - "\1\u015e\3\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\26\24\1\u0139\3\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\14\24\1\u027e\15\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\3\24\1\u027f\26\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\3\24"+ - "\1\u01d4\26\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\3\24\1\u0280\26\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\3\24\1\u01f1\26\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\21\24\1\u0254\10\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24"+ - "\1\u0256\10\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\13\24\1\u0281\16\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\32\24\1\47\1\u0110\10\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\27\24\1\u01e5\2\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\5\24\1\172\3\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\24\24\1\u0282\5\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\27\24\1\u0110\2\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\13\24\2\u01d4\15\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\54"+ - "\6\24\1\54\3\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\146"+ - "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\23\24\1\143\6\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\15\24\1\52\1\24\1\54\5\24\1\u0283"+ - "\2\24\1\54\1\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\146"+ - "\7\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\4\24\1\u0209\25\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\23\24\1\u0284\6\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\4\24\1\143\25\24\1\47\5\24\1\54\3\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\20\24\1\u01d4\11\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\u0285"+ - "\12\24\1\47\11\24\30\0\1\u0286\100\0\1\u0287\55\0"+ - "\1\u0287\64\0\1\u0288\56\0\1\u0289\67\0\1\365\54\0"+ - "\1\u028a\55\0\1\u028b\21\0\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\24\24\1\213\5\24"+ - "\1\47\1\24\1\u0247\7\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\1\24"+ - "\1\u0247\7\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\22\24\1\u0191\7\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\26\24\1\u028c\3\24\1\47\11\24\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\13\24"+ - "\2\u028d\15\24\1\47\11\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\20\24\1\u0247\11\24"+ - "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50"+ - "\2\0\1\47\1\0\23\24\1\u01e2\6\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\1\u0110\2\24\1\u0110\11\24\1\u0110\1\24\1\u0110"+ - "\4\24\1\u0205\1\u016a\1\24\1\u028e\2\24\1\47\11\24"+ - "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47"+ - "\1\0\32\24\1\47\1\u0222\10\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\u020d"+ - "\25\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\21\24\1\u020d\10\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\23\24\1\u028f\6\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\u0290\12\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\52"+ - "\1\24\1\54\10\24\1\54\1\24\1\47\11\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\32\24\1\47\10\24\1\216\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\6\24"+ - "\1\u0291\2\24\40\0\1\u0292\66\0\1\365\62\0\1\u01b2"+ - "\60\0\1\101\7\0\1\u0293\60\0\1\u0294\5\0\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\17\24\1\u0295\12\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\213"+ - "\6\24\1\216\5\24\1\47\1\24\1\u0176\7\24\1\47"+ - "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0"+ - "\24\24\1\u013d\5\24\1\47\11\24\1\47\2\24\1\0"+ - "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47"+ - "\1\24\1\u01e9\7\24\1\47\2\24\1\0\3\47\2\0"+ - "\1\50\2\0\1\47\1\0\13\24\1\u0296\16\24\1\47"+ - "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0"+ - "\1\47\1\0\32\24\1\47\6\24\1\u0110\2\24\34\0"+ - "\1\u0297\55\0\1\u0298\104\0\1\365\6\0\1\47\2\24"+ - "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24"+ - "\1\47\3\24\1\u01e5\5\24\1\47\2\24\1\0\3\47"+ - "\2\0\1\50\2\0\1\47\1\0\27\24\1\u0299\2\24"+ - "\1\47\11\24\41\0\1\u029a\60\0\1\u029b\51\0\1\341"+ - "\65\0\1\u029c\66\0\1\365\20\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[31850]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\1\11\5\1\1\11\1\1\1\11\44\1\2\11"+ - "\25\0\225\1\31\0\1\11\11\0\245\1\1\0\1\1"+ - "\10\0\1\1\17\0\155\1\1\0\1\1\3\0\1\1"+ - "\5\0\1\1\5\0\61\1\7\0\22\1\1\0\1\1"+ - "\2\0\1\1\1\0\6\1\3\0\2\1\2\0\2\1"+ - "\2\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[668]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int YYINITIAL = 0; /** - * Constructor. We must have this here as JFLex does not generate a + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { 0, 1 }; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\10\1\7\1\0\1\10\23\0\1\10\1\14\1\4\2\0" + + "\1\13\1\14\1\5\2\0\1\12\1\12\1\3\1\12\1\15\1\12" + "\1\27\1\16\1\21\1\24\1\25\1\26\1\20\1\23\1\17\1\2" + + "\1\11\1\6\1\14\1\14\1\14\1\50\1\0\1\30\1\33\1\40" + "\1\42\1\35\1\47\1\51\1\32\1\45\1\1\1\36\1\31\1\55" + + "\1\43\1\41\1\22\1\56\1\34\1\37\1\44\1\46\1\61\1\52" + "\1\54\1\60\1\53\1\3\1\0\1\3\1\14\1\57\1\0\1\30" + + "\1\33\1\40\1\42\1\35\1\47\1\51\1\32\1\45\1\1\1\36" + "\1\31\1\55\1\43\1\41\1\22\1\56\1\34\1\37\1\44\1\46" + + "\1\61\1\52\1\54\1\60\1\53\1\0\1\14\1\0\1\14\uff81\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 = "\2\0\2\1\1\2\1\3\1\4\1\5\1\6\1\7" + "\1\10\32\1\1\11\1\1\1\12\5\13\2\1\1\14" + + "\1\15\25\0\16\1\2\16\23\1\1\13\11\1\1\16" + "\14\1\2\16\7\1\1\16\10\1\1\13\4\1\1\11" + + "\3\1\1\16\1\1\1\11\15\1\1\13\1\12\13\1" + "\1\16\42\1\31\0\1\12\11\0\20\1\1\13\1\12" + + "\14\1\2\13\3\1\1\13\4\1\1\12\6\1\1\13" + "\3\1\1\13\5\1\1\12\5\1\1\13\4\1\1\12" + "\1\1\1\13\2\1\1\13\10\1\1\13\4\1\1\13" + + "\4\1\1\13\5\1\1\12\3\1\3\13\24\1\1\13" + "\37\1\1\13\3\1\1\13\3\1\1\0\1\12\10\0" + "\1\12\17\0\3\1\1\13\11\1\1\13\14\1\2\13" + + "\1\1\1\17\1\13\3\1\2\12\10\1\1\12\7\1" + "\1\12\1\13\12\1\1\12\15\1\1\13\5\1\2\13" + "\1\1\1\13\14\1\1\13\3\1\1\13\4\1\1\0" + + "\1\12\3\0\1\12\5\0\1\12\5\0\16\1\1\12" + "\5\1\1\12\16\1\1\12\1\1\1\13\4\1\1\13" + "\1\1\1\13\4\1\7\0\1\12\7\1\2\12\10\1" + + "\1\0\1\12\2\0\1\12\1\0\4\1\1\12\1\1" + "\3\0\2\1\2\0\1\1\1\12\2\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[668]; + 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\62\0\144\0\226\0\310\0\372\0\u012c\0\u015e" + + "\0\144\0\u0190\0\144\0\u01c2\0\u01f4\0\u0226\0\u0258\0\u028a" + + "\0\u02bc\0\u02ee\0\u0320\0\u0352\0\u0384\0\u03b6\0\u03e8\0\u041a" + + "\0\u044c\0\u047e\0\u04b0\0\u04e2\0\u0514\0\u0546\0\u0578\0\u05aa" + + "\0\u05dc\0\u060e\0\u0640\0\u0672\0\u06a4\0\u06d6\0\u0708\0\u0708" + + "\0\u073a\0\u076c\0\u079e\0\u0352\0\u07d0\0\u0802\0\u0834\0\144" + + "\0\144\0\u0866\0\u0898\0\u08ca\0\u08fc\0\u092e\0\u0960\0\u0992" + + "\0\u09c4\0\u09f6\0\u0a28\0\u0a5a\0\u0a8c\0\u0abe\0\u0af0\0\u0b22" + + "\0\u0b54\0\u0b86\0\u0bb8\0\u0bea\0\u0c1c\0\u0c4e\0\u0c80\0\u0cb2" + + "\0\u0ce4\0\u0d16\0\u0d48\0\u0d7a\0\u0dac\0\u0dde\0\u0e10\0\u0e42" + + "\0\u0e74\0\u0ea6\0\u0ed8\0\u0f0a\0\u0f3c\0\u0352\0\u0f6e\0\u0fa0" + + "\0\u0fd2\0\u1004\0\u1036\0\u1068\0\u109a\0\u10cc\0\u10fe\0\u1130" + + "\0\u1162\0\u1194\0\u11c6\0\u11f8\0\u122a\0\u125c\0\u128e\0\u12c0" + + "\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba\0\u13ec\0\u141e\0\u1450" + + "\0\u1482\0\u14b4\0\u14e6\0\u1518\0\u154a\0\u157c\0\u15ae\0\u15e0" + + "\0\u1612\0\u1644\0\u1676\0\u16a8\0\u16da\0\u170c\0\u173e\0\u1770" + + "\0\u17a2\0\u17d4\0\u1806\0\u1838\0\u186a\0\u189c\0\u18ce\0\u1900" + + "\0\u1932\0\u1964\0\u1996\0\u19c8\0\u19fa\0\u1a2c\0\u1a5e\0\u1a90" + + "\0\u1ac2\0\u1af4\0\u1b26\0\u1b58\0\u1b8a\0\u1bbc\0\u1bee\0\u0352" + + "\0\u1c20\0\u1c52\0\u1c84\0\u1cb6\0\u1ce8\0\u186a\0\u1d1a\0\u1d4c" + + "\0\u1d7e\0\u1db0\0\u1de2\0\u1e14\0\u1e46\0\u1e78\0\u1eaa\0\u1edc" + + "\0\u1f0e\0\u1f40\0\u1f72\0\u1fa4\0\u1fd6\0\u2008\0\u203a\0\u206c" + + "\0\u209e\0\u20d0\0\u2102\0\u2134\0\u2166\0\u2198\0\u21ca\0\u21fc" + + "\0\u222e\0\u2260\0\u2292\0\u22c4\0\u22f6\0\u2328\0\u235a\0\u238c" + + "\0\u23be\0\u23f0\0\u2422\0\u2454\0\u2486\0\u24b8\0\u24ea\0\u251c" + + "\0\u254e\0\u2580\0\u25b2\0\u25e4\0\u2616\0\u2648\0\u267a\0\u26ac" + + "\0\u26de\0\u2710\0\u2742\0\u2774\0\u27a6\0\u27d8\0\u280a\0\u283c" + + "\0\u286e\0\u07d0\0\u28a0\0\u28d2\0\u2904\0\u2936\0\u2968\0\u299a" + + "\0\u29cc\0\u29fe\0\u2a30\0\u2a62\0\u2a94\0\u2ac6\0\u2af8\0\u2b2a" + + "\0\u2b5c\0\u2b8e\0\u2bc0\0\u2bf2\0\u2c24\0\u2c56\0\u2c88\0\u2cba" + + "\0\u2cec\0\u2d1e\0\u2d50\0\u2d82\0\144\0\u2db4\0\u2de6\0\u2e18" + + "\0\u2e4a\0\u2e7c\0\u2eae\0\u2ee0\0\u2f12\0\u2f44\0\u2f76\0\u2fa8" + + "\0\u2fda\0\u300c\0\u303e\0\u3070\0\u30a2\0\u30d4\0\u3106\0\u3138" + + "\0\u316a\0\u319c\0\u31ce\0\u3200\0\u3232\0\u3264\0\u3296\0\u0352" + + "\0\u32c8\0\u32fa\0\u332c\0\u335e\0\u3390\0\u33c2\0\u33f4\0\u3426" + + "\0\u3458\0\u348a\0\u34bc\0\u34ee\0\u3520\0\u3552\0\u3584\0\u35b6" + + "\0\u35e8\0\u361a\0\u364c\0\u367e\0\u36b0\0\u36e2\0\u3714\0\u3746" + + "\0\u3778\0\u37aa\0\u37dc\0\u380e\0\u3840\0\u3872\0\u38a4\0\u38d6" + + "\0\u3908\0\u393a\0\u396c\0\u399e\0\u39d0\0\u3a02\0\u3a34\0\u3a66" + + "\0\u3a98\0\u3aca\0\u3afc\0\u3b2e\0\u3b60\0\u3b92\0\u3bc4\0\u3bf6" + + "\0\u3c28\0\u3c5a\0\u3c8c\0\u3cbe\0\u3cf0\0\u3d22\0\u3d54\0\u3d86" + + "\0\u3db8\0\u3dea\0\u3e1c\0\u3e4e\0\u3e80\0\u3eb2\0\u3ee4\0\u3f16" + + "\0\u3f48\0\u3f7a\0\u3fac\0\u3fde\0\u4010\0\u36e2\0\u4042\0\u4074" + + "\0\u40a6\0\u40d8\0\u410a\0\u413c\0\u416e\0\u41a0\0\u41d2\0\u4204" + + "\0\u4236\0\u4268\0\u429a\0\u42cc\0\u42fe\0\u4330\0\u4362\0\u4394" + + "\0\u43c6\0\u43f8\0\u442a\0\u445c\0\u448e\0\u44c0\0\u44f2\0\u4524" + + "\0\u4556\0\u4588\0\u45ba\0\u45ec\0\u461e\0\u3b92\0\u4650\0\u4682" + + "\0\u46b4\0\u361a\0\u46e6\0\u4718\0\u474a\0\u477c\0\u47ae\0\u47e0" + + "\0\u4812\0\u4844\0\u4876\0\u48a8\0\u48da\0\u490c\0\u493e\0\u4970" + + "\0\u49a2\0\u49d4\0\u4a06\0\u4a38\0\u4a6a\0\u4a9c\0\u4ace\0\u4b00" + + "\0\u4b32\0\u4b64\0\u4b96\0\u4bc8\0\u4bfa\0\u4c2c\0\u4c5e\0\u4c90" + + "\0\u4cc2\0\u4cf4\0\u4d26\0\u4d58\0\u4d8a\0\u4dbc\0\u410a\0\u4dee" + + "\0\u4e20\0\u4e52\0\u4e84\0\u4eb6\0\u4ee8\0\u4f1a\0\u4f4c\0\u4f7e" + + "\0\u4fb0\0\u4fe2\0\u5014\0\u5046\0\u5078\0\u50aa\0\u50dc\0\u510e" + + "\0\u5140\0\u5172\0\u51a4\0\u51d6\0\u5208\0\u523a\0\u526c\0\u529e" + + "\0\u52d0\0\u5302\0\u5334\0\u5366\0\u5398\0\u53ca\0\u53fc\0\u542e" + + "\0\u5460\0\u5492\0\u54c4\0\u54f6\0\u5528\0\u555a\0\u558c\0\u55be" + + "\0\u55f0\0\u5622\0\u55f0\0\u5654\0\u5686\0\u56b8\0\u56ea\0\u571c" + + "\0\u574e\0\u5780\0\u57b2\0\u4d58\0\u57e4\0\u076c\0\u5816\0\u5848" + + "\0\u587a\0\u58ac\0\u0352\0\u58de\0\u5910\0\u5942\0\u5974\0\u59a6" + + "\0\u1f40\0\u59d8\0\u5a0a\0\u5a3c\0\u5a6e\0\u5aa0\0\u5ad2\0\u5b04" + + "\0\u5b36\0\u5b68\0\u5b9a\0\u5bcc\0\u5bfe\0\u5c30\0\u5c62\0\u5c94" + + "\0\u5cc6\0\u5cf8\0\u5d2a\0\u5d5c\0\u5d8e\0\u5dc0\0\u5df2\0\u5e24" + + "\0\u5e56\0\u5e88\0\u5eba\0\u5eec\0\u5f1e\0\u5f50\0\u5f82\0\u5fb4" + + "\0\u5fe6\0\u6018\0\u604a\0\u607c\0\u60ae\0\u60e0\0\u6112\0\u6144" + + "\0\u6176\0\u61a8\0\u5460\0\u0834\0\u61da\0\u620c\0\u623e\0\u6270" + + "\0\u62a2\0\u62d4\0\u6306\0\u6338\0\u636a\0\u639c\0\u63ce\0\u6400" + + "\0\u6432\0\u6464\0\u6496\0\u64c8\0\u64fa\0\u652c\0\u655e\0\u6590" + + "\0\u65c2\0\u65f4\0\u6626\0\u6658\0\u668a\0\u66bc\0\u66ee\0\u6720" + + "\0\u6752\0\u6784\0\u67b6\0\u67e8\0\u681a\0\u684c\0\u687e\0\u68b0" + + "\0\u68e2\0\u6914\0\u6946\0\u6978\0\u69aa\0\u69dc\0\u6a0e\0\u6a40" + + "\0\u6a72\0\u6aa4\0\u6ad6\0\u6b08\0\u6b3a\0\u6b6c\0\u6b9e\0\u6bd0" + + "\0\u6c02\0\u6c34\0\u6c66\0\u4236\0\u6c98\0\u6cca\0\u65f4\0\u6cfc" + + "\0\u6d2e\0\u6d60\0\u6d92\0\u6dc4\0\u6df6\0\u6e28\0\u6e5a\0\u5a6e" + + "\0\u6e8c\0\u6ebe\0\u6ef0\0\u6f22\0\u6f54\0\u6f86\0\u6fb8\0\u6fea" + + "\0\u701c\0\u704e\0\u7080\0\u70b2\0\u70e4\0\u7116\0\u7148\0\u717a" + + "\0\u61da\0\u71ac\0\u71de\0\u7210\0\u7242\0\u1194\0\u7274\0\u72a6" + + "\0\u72d8\0\u730a\0\u733c\0\u736e\0\u73a0\0\u73d2\0\u7404\0\u7436" + + "\0\u7468\0\u749a\0\u74cc\0\u74fe\0\u7530\0\u7562\0\u7594\0\u587a" + + "\0\u75c6\0\u75f8\0\u762a\0\u765c\0\u768e\0\u76c0\0\u76f2\0\u7724" + + "\0\u7756\0\u7788\0\u77ba\0\u77ec\0\u781e\0\u7850\0\u7882\0\u4ee8" + + "\0\u78b4\0\u78e6\0\u7918\0\u794a\0\u797c\0\u79ae\0\u79e0\0\u7a12" + + "\0\u7a44\0\u7a76\0\u7aa8\0\u7ada\0\u7b0c\0\u7b3e\0\u7b70\0\u7ba2" + "\0\u6d60\0\u7bd4\0\u7c06\0\u7c38"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[668]; + 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 = "\1\3\1\4\1\5\1\3\1\6\1\7\1\10\1\11" + "\1\12\1\3\3\13\1\14\4\5\1\15\5\5\1\16" + + "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26" + "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\3" + + "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\24" + "\1\45\1\3\1\4\1\5\1\3\1\6\1\7\1\10" + "\1\11\1\12\1\3\1\13\1\46\1\13\1\14\4\5" + + "\1\15\5\5\1\16\1\17\1\20\1\21\1\22\1\23" + "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33" + + "\1\34\1\35\1\3\1\36\1\37\1\40\1\41\1\42" + "\1\43\1\44\1\24\1\45\62\0\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\51" + "\5\24\2\52\1\24\1\52\1\24\1\53\1\24\1\54" + + "\1\55\1\54\1\24\1\56\4\24\1\47\1\52\1\24" + "\1\54\1\24\1\57\4\24\1\47\1\24\1\5\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\4\5\1\24" + + "\5\5\20\24\1\47\11\24\4\6\1\60\55\6\5\7" + "\1\61\54\7\7\10\1\0\52\10\10\0\1\12\67\0" + + "\1\62\1\63\1\64\1\65\2\0\1\65\2\64\1\0" + "\1\66\1\67\1\0\1\70\1\71\1\72\1\73\1\74" + + "\1\75\1\0\1\76\1\77\1\100\1\101\1\102\1\103" + "\2\0\1\104\1\0\1\105\1\106\4\0\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24" + "\1\107\3\24\1\110\1\111\1\24\1\112\1\113\1\114" + + "\2\24\1\115\1\116\1\117\1\24\1\47\3\24\1\120" + "\1\121\4\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\1\122\5\24\1\123\3\24\1\124" + "\1\125\1\126\1\24\1\127\2\24\1\130\2\24\1\131" + + "\1\132\4\24\1\47\3\24\1\126\5\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24" + + "\1\133\1\134\2\24\1\135\1\136\1\24\1\137\1\24" + "\1\140\1\141\1\24\1\142\1\134\1\24\1\143\1\47" + + "\1\144\3\24\1\145\4\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\13\24\1\146\13\24" + + "\1\147\2\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\4\24\1\126\6\24" + + "\2\126\4\24\1\150\1\24\1\151\2\24\1\152\1\153" + "\2\24\1\47\3\24\1\126\3\24\1\154\1\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\17\24\1\155\1\24\1\156\2\157\1\160\5\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\12\24\1\161\1\162\1\24\1\163\3\24" + + "\1\164\1\165\1\24\1\166\1\167\4\24\1\47\3\24" + "\1\170\1\171\1\172\2\24\1\173\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\4\24\1\126\5\24\1\174\1\134\1\175" + "\1\176\1\24\1\177\1\24\1\126\1\200\1\24\1\43" + + "\1\24\1\201\1\202\1\203\1\204\1\47\1\134\1\205" + "\2\24\1\145\1\206\1\24\1\207\1\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + "\1\210\5\24\1\211\1\212\1\126\1\213\1\214\2\24" + + "\1\126\1\24\1\215\1\216\5\24\1\47\1\24\1\217" + "\1\24\1\126\1\220\3\24\1\221\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\1\122\3\24" + "\1\222\1\24\1\123\7\24\1\223\11\24\1\224\1\225" + + "\1\47\10\24\1\226\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\12\24\1\227\2\126\1\230" + + "\1\231\1\232\1\24\1\126\1\24\1\233\1\230\1\24" + "\1\230\1\234\1\235\1\230\1\47\1\24\1\236\1\24" + + "\1\126\1\24\1\230\3\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\12\24\1\237\4\24" + + "\1\240\3\24\1\241\6\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\14\24" + + "\1\242\1\243\1\244\1\245\7\24\1\246\2\24\1\47" + "\1\24\1\205\5\24\1\247\1\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\250" + "\1\251\1\24\1\252\2\24\1\253\1\254\3\24\1\255" + + "\1\47\4\24\1\256\4\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\15\24\1\257\3\24" + + "\1\260\1\261\2\24\1\262\4\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\3\24\1\263\1\264\5\24\1\265\1\266\1\24\1\267" + "\1\270\2\24\1\271\1\272\1\273\1\274\1\275\1\276" + + "\1\277\1\300\1\301\1\47\1\24\1\302\1\24\1\303" + "\1\304\2\24\1\305\1\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\13\24\1\306\2\24" + "\1\307\2\24\1\126\1\24\1\310\6\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\12\24\1\311\1\24\1\312\1\313\1\314\4\24" + + "\1\315\6\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\17\24\1\316\12\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\12\24\1\317\1\320\6\24\1\321" + + "\1\322\6\24\1\47\4\24\1\323\4\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24" + + "\1\324\10\24\1\325\3\24\1\326\1\327\1\24\1\47" + "\4\24\1\231\4\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\32\24\1\47\1\24\1\205" + "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\32\24\1\47\6\24\1\330\2\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\17\24\1\331\12\24\1\47\11\24\1\0\2\46\13\0" + "\32\46\1\0\11\46\3\47\1\0\3\47\2\0\1\47" + + "\2\0\1\47\1\0\45\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\17\24\1\54\3\24\1\54" + + "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\17\24\1\54\12\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\22\24\1\332\7\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\32\24\1\47\3\24\1\333\5\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\54" + + "\5\24\2\52\1\24\1\52\1\24\1\54\1\24\3\54" + "\6\24\1\47\1\52\1\24\1\54\6\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + "\1\54\25\24\1\47\11\24\17\0\1\334\71\0\1\335" + + "\51\0\1\336\61\0\1\337\73\0\1\340\60\0\1\341" + "\14\0\1\342\1\0\1\343\46\0\1\344\2\0\1\345" + + "\52\0\1\346\4\0\1\347\55\0\1\350\2\0\1\351" + "\6\0\1\352\10\0\1\353\31\0\1\354\65\0\1\341" + + "\4\0\1\355\6\0\1\356\2\0\1\343\46\0\1\357" + "\4\0\1\360\50\0\1\361\10\0\1\362\61\0\1\363" + + "\55\0\1\364\11\0\1\343\61\0\1\365\55\0\1\366" + "\46\0\1\367\63\0\1\370\57\0\1\341\1\371\6\0" + + "\1\372\14\0\1\373\43\0\1\374\1\0\1\375\13\0" + "\1\376\4\0\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\16\24\1\377\3\24\1\u0100\1\24" + "\1\u0101\1\u0102\4\24\1\47\1\u0103\7\24\1\u0104\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\17\24\1\u0105\3\24\1\u0106\3\24\1\u0107\2\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\32\24\1\47\3\24\1\u0108\5\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\12\24\1\u0109\1\u010a\1\u010b\1\24\1\u010c\11\24\1\u010d" + + "\1\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\32\24\1\47\4\24\1\u010e" + + "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\4\24\1\u010f\11\24\1\54\13\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\16\24\1\u0110\13\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\25\24\1\u0111\4\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\u0112" + "\1\u0113\2\24\1\u0114\3\24\1\u0115\4\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\23\24\1\142\6\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24" + "\1\u0116\10\24\1\u0117\3\24\1\u0118\1\u0119\1\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\2\24\1\u0110\27\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\3\24\1\u0110\26\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\54" + "\6\24\1\54\2\24\1\54\5\24\1\47\4\24\1\54" + + "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\27\24\1\u011a\2\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\4\24\1\u011b\25\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u011c" + "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\22\24\1\54\1\24\1\u011d" + "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\24\24\1\u011e\5\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\14\24\1\u011f\1\u0120\1\54\13\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\24\24\1\146\5\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\23\24\1\u0121\6\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u0122" + + "\6\24\1\54\3\24\1\u0123\4\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\13\24\1\54\5\24\1\54\10\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\22\24\1\u0124\1\u0125\1\u0126\5\24\1\47\1\24\1\u0127" + "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\21\24\1\54\10\24\1\47\4\24\1\u0128" + "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\16\24\1\54\13\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\21\24\1\54\10\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\54" + + "\2\24\1\146\5\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\213" + + "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\26\24\1\54\3\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\32\24\1\47\1\u0129\10\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24" + "\1\54\12\24\1\54\1\47\1\24\1\u012a\7\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\30\24\1\u012b\1\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\54" + "\2\24\2\54\7\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\26\24\1\u012c" + "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\26\24\1\u012d\3\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\4\24\1\u012e\5\24\1\u012f\6\24\1\u0130" + "\1\u0131\3\24\1\u0132\3\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24" + "\1\47\4\24\1\54\4\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\13\24\1\54\2\24" + + "\1\54\13\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\4\24\1\u0133\21\24" + + "\1\u0134\3\24\1\47\4\24\1\u0135\4\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24" + + "\1\47\3\24\1\126\5\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\21\24\1\u0136\10\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\4\24\1\126\25\24\1\47\3\24" + + "\1\126\5\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\4\24\1\126\22\24\1\126\2\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\14\24\1\u0137\15\24\1\47\3\24" + + "\1\126\5\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\27\24\1\126\2\24\1\47\3\24" + + "\1\126\5\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\24\24\1\u0138\1\24\1\u0139\3\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\4\24\1\u013a\21\24\1\u013b\1\u013c" + + "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\32\24\1\47\4\24\1\143" + + "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\30\24\1\230\1\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\17\24\1\u013d\12\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\54" + "\1\u011f\1\24\1\54\13\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\13\24" + "\1\u013e\2\24\1\u013e\4\24\1\u013f\4\24\1\u0140\1\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\15\24\1\54\14\24\1\47\7\24" + + "\1\154\1\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\22\24\1\u0141\3\24\1\u0142\3\24" + + "\1\47\1\u0143\10\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\12\24\1\u0126\17\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\1\126\1\24\2\126\1\24\5\126\1\u0144" + + "\3\24\1\u0145\3\24\1\54\1\u0126\1\54\2\24\1\54" + "\2\24\1\47\4\24\1\u0128\4\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\146" + "\5\24\1\47\1\u0146\1\24\1\u0147\6\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\15\24" + "\1\u0148\14\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\17\24\1\u0149\12\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\23\24\1\315\6\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\16\24\1\u014a\13\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + + "\1\u014b\10\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\30\24\1\u014c\1\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\13\24\1\u011b\2\24\1\u014d\7\24" + + "\1\u014e\3\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\22\24\1\54\1\24" + + "\1\54\1\24\1\143\1\54\2\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\32\24\1\47\1\24\1\54\7\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\3\24\1\126" + + "\2\24\2\126\1\24\1\126\20\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\24\24\1\u014f\5\24\1\47\4\24\1\u0150\4\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\32\24\1\47\5\24\1\54\3\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\52" + + "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\4\24\1\u0151\15\24\1\54" + + "\1\u0152\6\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\26\24\1\u0153\3\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\12\24\1\u0154\13\24\1\u0155\3\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\4\24\1\143\25\24\1\47\1\u0110" + + "\10\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\26\24\1\u0156\3\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\31\24\1\u0157\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\17\24\1\u0158\12\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\12\24\1\54\6\24\1\54\4\24" + "\1\u0159\3\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\1\126\1\24\2\126" + "\1\24\5\126\20\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\54" + "\7\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\21\24\1\u015a\10\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\32\24\1\47\10\24\1\u015b\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + + "\1\230\25\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\4\24" + + "\1\u0103\4\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\12\24\1\115\17\24\1\47\1\54" + + "\10\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\4\24\1\54\14\24\1\u015c\4\24\1\54" + + "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\27\24\1\u012c\2\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\32\24\1\47\7\24\1\154\1\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\2\24\1\126\2\24\4\126\21\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\21\24\1\146\10\24\1\47\3\24\1\u015d\5\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\26\24\1\u015e\3\24\1\47\4\24\1\u015f\4\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\4\24\1\u0160\25\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\u0161" + "\12\24\1\146\12\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u0162" + "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\26\24\1\u0163\3\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\27\24\1\u0164\2\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\21\24\1\u0165\1\u0166\3\24\1\u0167\3\24\1\47\10\24" + "\1\u0168\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\1\u0110\2\24\1\u0110\11\24\1\u0110\1\24" + "\1\u0110\4\24\1\u0169\1\u016a\1\24\1\u016b\2\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\4\24\1\u013a\23\24\1\u011b\1\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\3\24\1\54\26\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\17\24\1\u016c\12\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\u016d" + "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\4\24\1\u016e\22\24\1\u016f" + "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\32\24\1\47\3\24\1\u0170" + "\5\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\12\24\1\u0171\3\24\1\u0172\7\24\1\u0173" + "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\15\24\1\143\1\u0110\5\24" + "\1\u0174\5\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\24\24\1\u0175\5\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\13\24\1\u0176\5\24\1\u0177\10\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\21\24\1\u0178\3\24\1\u0179\4\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\12\24\1\u017a\7\24\1\u017b\3\24" + "\1\u017c\1\u017d\1\u017e\1\24\1\47\5\24\1\u017f\3\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\13\24\1\u0180\1\143\6\24\1\u0181\6\24\1\47" + + "\4\24\1\u0182\4\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\16\24\1\u0161\13\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\17\24\1\u0183\7\24\1\u0184\2\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\21\24\1\u0185\1\u0186\1\57\3\24\1\u0187" + + "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\21\24\1\146\10\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\12\24\1\317\1\u0176\5\24\1\u0188\1\u0189" + + "\1\24\1\u018a\1\u018b\4\24\1\47\4\24\1\u018c\4\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\22\24\1\u018d\7\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24" + + "\1\u018e\13\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\12\24\1\311\10\24" + + "\1\315\6\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\12\24\1\156\3\24" + + "\1\u018f\2\24\1\u0190\1\u0191\3\24\1\u0192\3\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\30\24\1\u0193\1\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\13\24\1\u0194\16\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\u0195" + + "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\23\24\1\u0196\6\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\26\24\1\u0137\3\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\27\24\1\146\2\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\27\24\1\u015e" + "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\27\24\1\u0197\2\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\26\24\1\u0110\3\24\1\47\4\24\1\u0135" + "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\16\24\1\u0198\13\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\16\24\1\u0199\13\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\u0176" + + "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\12\24\1\u019a\17\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\14\24\1\u019b\15\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\16\24\1\u019c\13\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + "\4\24\1\231\4\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\21\24\1\u019d\1\u019e\7\24" + "\1\47\3\24\1\u019f\5\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\10\24" + "\1\u01a0\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\25\24\1\u019f\4\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\13\24\1\u015b\16\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u01a1" + + "\15\24\1\u01a2\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\16\24\1\u01a3\13\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\32\24\1\47\2\24\1\54\6\24" + + "\20\0\1\365\60\0\1\u01a4\62\0\1\u01a5\61\0\1\u01a5" + "\2\0\1\365\60\0\1\u01a6\70\0\1\u01a7\67\0\1\u01a8" + + "\62\0\1\u01a9\56\0\1\u01aa\63\0\1\365\64\0\1\u01ab" + "\41\0\1\u01ac\76\0\1\u01ad\56\0\1\u01ae\67\0\1\u01af" + + "\64\0\1\u01b0\56\0\1\365\75\0\1\365\33\0\1\u01b1" + "\66\0\1\101\66\0\1\u01b2\1\u01b3\62\0\1\u01b4\54\0" + + "\1\u01b5\41\0\1\u01b6\11\0\1\u01b7\6\0\1\372\75\0" + "\1\u01b0\51\0\1\u01b8\51\0\1\u01b9\72\0\1\u01ba\61\0" + + "\1\u01bb\50\0\1\357\102\0\1\365\53\0\1\u01bc\54\0" + "\1\u01bd\73\0\1\365\5\0\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\27\24\1\u01be\2\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\20\24\1\u01bf\11\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\24\24\1\u01c0\5\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\24\24" + + "\1\u01c1\5\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\17\24\1\u0110\12\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\32\24\1\47\1\u01c2\10\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\31\24\1\u01c3\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\22\24\1\u0110\3\24" + "\1\u0137\3\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\10\24" + "\1\u01c4\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\26\24\1\u01c5\3\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\24\24\1\u01c6\5\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u01c7" + + "\16\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\30\24\1\u01c8\1\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\12\24\1\u01c9\1\u01c7\16\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\15\24\1\u01c0\14\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + "\1\u01ca\25\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\12\24\1\u01cb\7\24" + "\1\u01cc\6\24\1\u01cb\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u01c5" + "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\13\24\1\u01cd\16\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\32\24\1\47\1\u0103\10\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\14\24" + + "\1\u010f\15\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\4\24\1\u01ce\25\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\24\24\1\u01cf\5\24\1\47\3\24" + + "\1\u01d0\5\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\32\24\1\47\10\24\1\u01d1\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\25\24\1\u01d0\4\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u01d2" + "\16\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\32\24\1\47\1\u01d3\10\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\13\24\1\54\16\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\30\24" + + "\1\237\1\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\4\24\1\143\11\24" + + "\1\u0110\2\24\1\143\10\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + + "\1\143\20\24\1\u01d4\4\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\31\24" + + "\1\54\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\17\24\1\u01d5\12\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\31\24\1\225\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24" + "\1\47\10\24\1\u01d6\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\32\24\1\47\1\u01d7\10\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\12\24\1\u01d5\5\24\1\54\11\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\4\24\1\u01d8\25\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + + "\1\u01d9\10\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\1\24" + + "\1\u0131\7\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\32\24\1\47\3\24\1\u01da\5\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\14\24\1\u0127\15\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24" + "\1\57\17\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\25\24\1\u0176\4\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\21\24\1\u0110\10\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\17\24\1\u01db\12\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24" + + "\1\u01dc\5\24\1\u01dd\1\u0110\3\24\1\47\2\24\1\54" + "\6\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\13\24\1\u01de\16\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\15\24\1\230\6\24\1\230\1\24\1\230\3\24\1\47" + "\1\24\1\230\3\24\1\230\3\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\u01df" + "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\25\24\1\54\3\24\1\54" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\32\24\1\47\4\24\1\232\4\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\21\24\1\232\10\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + + "\1\142\10\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\17\24\1\u01e0\12\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\23\24\1\u0110\6\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\4\24\1\u0110\14\24\1\u01e1\5\24\1\u01e2\2\24" + + "\1\47\4\24\1\u0110\4\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\17\24\1\142\12\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\23\24\1\u013f\6\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\16\24\1\u013d\1\u01e3\12\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\26\24\1\u01e4\3\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u0110" + "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\24\24\1\54\5\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\16\24\1\u01e5\13\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\31\24\1\u01d4\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\26\24\1\u0155\3\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\4\24\1\51\5\24\2\52\1\24" + + "\1\52\1\24\1\54\1\24\3\54\1\24\1\56\4\24" + "\1\47\1\52\1\24\1\54\6\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + "\4\24\1\u01e6\4\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\22\24\1\u01e7\7\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\30\24\1\u01e8\1\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\25\24\1\u01e9\4\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\u01ea" + + "\12\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\4\24\1\143\14\24\1\u01eb" + + "\4\24\1\u01ec\3\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u01ed" + + "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\26\24\1\u019f\3\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\17\24\1\u01ee\12\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\27\24\1\u0176\2\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\u01ef" + "\13\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\21\24\1\u01f0\10\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\17\24\1\u015a\12\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\27\24\1\u01f1\2\24\1\47\4\24\1\u01f2\4\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\4\24\1\143\14\24\1\u01f3\10\24\1\47\3\24\1\u01f4" + "\5\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\32\24\1\47\10\24\1\u0142\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + + "\1\u01f5\14\24\1\u01f6\4\24\1\u01f7\3\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\26\24\1\u01f0\3\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\27\24" + + "\1\u016f\2\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\21\24\1\u01f8\10\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\16\24\1\u01f9\13\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\12\24\1\u015a\17\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + "\1\u01fa\10\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\4\24\1\143\14\24" + "\1\143\10\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\4\24\1\u01fb\25\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\26\24\1\u01fc\3\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\13\24\1\u0103\16\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24" + + "\1\u01fd\12\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\17\24\1\u01fe\12\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\22\24\1\u0110\7\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\24\24\1\u0110\5\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24" + "\1\u01ff\13\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\10\24" + "\1\54\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\15\24\1\54\6\24\1\54\1\24\1\115" + "\3\24\1\47\1\24\1\54\7\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u0200" + "\1\24\1\u0201\14\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\23\24\1\54" + "\6\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\13\24\1\u0202\7\24\1\u0203" + "\1\54\5\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\17\24\1\u01e2\7\24" + "\1\u0204\2\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\15\24\1\u0110\6\24" + "\1\u0205\5\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\24\24\1\u0206\5\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\1\122\5\24\1\123\12\24\1\u0110" + "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\32\24\1\47\4\24\1\u0207" + "\4\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\22\24\1\u0208\7\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\23\24\1\u013d\6\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + + "\4\24\1\u0209\4\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\26\24\1\u0173\3\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\17\24\1\u020a\12\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\12\24\1\u020b\17\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\u020c" + "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\1\54\3\24\1\u020d\6\24" + "\1\u020e\3\24\1\u020f\2\24\1\213\7\24\1\47\2\24" + + "\1\54\6\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\26\24\1\57\3\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\26\24\1\120\3\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\24\24" + "\1\u0210\5\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\12\24\1\u0211\17\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\4\24\1\54\12\24\1\u020f\1\24" + "\2\213\7\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\25\24\1\u0212\4\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\15\24\1\u0213\14\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\16\24\1\146\13\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24" + + "\1\u0214\12\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\21\24\1\54\10\24" + + "\1\47\4\24\1\u0215\4\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\23\24\1\u0216\6\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\22\24\1\u0217\7\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\32\24\1\47\10\24\1\u0213\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u017a" + "\13\24\1\u0218\3\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\13\24\1\u0180" + "\16\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\25\24\1\311\4\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\26\24\1\u020c\1\24\1\u0219\1\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\23\24\1\u021a\6\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\27\24\1\u021b\2\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\u0217" + + "\4\24\1\146\2\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\30\24\1\u011b" + + "\1\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\23\24\1\u021c\6\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\17\24\1\u01d6\12\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\21\24\1\u0178\10\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u017a" + "\17\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\14\24\1\54\15\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\16\24\1\u021d\13\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\13\24\1\u020c\16\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\3\24\1\u021e" + + "\26\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\15\24\1\u021f\14\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\30\24\1\u0220\1\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\25\24\1\u0221\4\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\24\24\1\u01db" + "\5\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\23\24\1\u01e9\6\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\26\24\1\u0222\3\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\32\24\1\47\1\54\10\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\4\24\1\143\25\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\20\24\1\u0223\11\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\16\24\1\u0137\13\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24" + "\1\u01d4\1\u0224\1\u0225\4\24\1\u0226\2\24\1\54\1\u0227" + + "\2\24\1\u01d4\1\24\1\47\2\24\1\u0214\1\24\1\u0228" + "\1\54\3\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\27\24\1\u0229\2\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\27\24\1\u022a\2\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24" + + "\1\54\13\24\1\47\1\24\1\54\7\24\20\0\1\365" + "\2\0\1\365\60\0\1\365\71\0\1\u022b\60\0\1\365" + + "\74\0\1\u022c\56\0\1\u022d\50\0\1\u022e\76\0\1\376" + "\51\0\1\u022f\61\0\1\u0230\42\0\1\365\2\0\1\365" + + "\11\0\1\365\1\0\1\365\4\0\1\u0231\1\u0232\1\0" + "\1\u0233\61\0\1\101\4\0\1\365\53\0\1\365\51\0" + + "\1\u0234\3\0\1\u022e\56\0\1\365\63\0\1\u01b0\4\0" + "\1\u0235\45\0\1\u0236\70\0\1\u0237\45\0\1\365\103\0" + + "\1\u0238\61\0\1\u0239\56\0\1\u023a\50\0\1\u01b2\67\0" + "\1\u01b0\53\0\1\u023b\65\0\1\u01a7\24\0\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\26\24" + "\1\u01ef\3\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\21\24\1\u023c\6\24" + "\1\u023d\1\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\15\24\1\54\3\24" + "\1\u01c2\2\24\1\54\3\24\1\u023e\1\24\1\47\1\24" + + "\1\54\7\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\25\24\1\54\4\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\15\24\1\54\14\24\1\47\1\24\1\54\7\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\17\24\1\u023f\12\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\12\24" + "\1\u0240\17\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\16\24\1\213\13\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\15\24\1\213\14\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\24\24\1\54\5\24\1\47\1\24\1\54\3\24" + "\1\54\3\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\31\24\1\213\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\24\24\1\54\5\24\1\47\1\24\1\54\7\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\17\24\1\u0241\12\24\1\47\1\u0242\10\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\23\24" + + "\1\u0243\6\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\27\24\1\u0244\2\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\22\24\1\u0245\7\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\24\24\1\u0246\5\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + "\1\213\6\24\1\u0247\1\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24" + "\1\47\4\24\1\u0248\4\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\13\24\1\213\1\u0249" + "\15\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\25\24\1\u024a\4\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\13\24\1\u0110\16\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\26\24\1\u024b\3\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\54" + + "\5\24\1\u01dd\4\24\1\47\2\24\1\54\6\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\15\24\1\54\6\24\1\54\5\24\1\47\1\24\1\54" + "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\22\24\1\u0135\7\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\12\24\1\u01e5\17\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\54" + + "\12\24\1\47\2\24\1\54\6\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\1\u024c\1\u01db" + + "\5\24\1\u01db\22\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\16\24\1\u0162" + + "\13\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\27\24\1\u024d\2\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\31\24\1\u0110\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\16\24" + "\1\u024e\13\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\4\24" + "\1\u0110\4\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\26\24\1\u0110\3\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\17\24\1\u024f\12\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\20\24" + + "\1\u0110\11\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\22\24\1\u0250\7\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\32\24\1\50\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + "\1\u01f0\1\24\1\u01e2\6\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + "\1\54\4\24\1\115\3\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\26\24" + "\1\u01d5\1\u0251\2\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\u01d6" + "\7\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\25\24\1\u0252\4\24\1\47" + "\3\24\1\311\5\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\32\24\1\47\7\24\1\u01e9" + "\1\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\26\24\1\115\3\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\21\24\1\143\10\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\u024f" + + "\3\24\1\u013d\6\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\54" + + "\3\24\1\54\2\24\1\54\5\24\1\47\1\24\1\54" + "\7\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\22\24\1\u0253\7\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\21\24\1\u0254\5\24\1\u0255\2\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\21\24\1\u0256\5\24\1\u0257\2\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\4\24\1\u0258\14\24\1\u0259\10\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\17\24\1\u01e5\12\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\31\24\1\u025a" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\17\24\1\u025b\12\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\13\24\1\u025c\16\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24" + "\1\u025d\12\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\21\24\1\230\10\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\24\24\1\u0205\5\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\30\24\1\u0244\1\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\30\24" + + "\1\u025e\1\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\27\24\1\u013d\2\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\4\24\1\u019b\25\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\20\24\1\u0103\11\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\31\24" + "\1\u025f\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\17\24\1\u01e2\12\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\25\24\1\u025f\4\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\27\24\1\u01f1\2\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\20\24\1\u0260" + + "\11\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\1\54\31\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\32\24\1\47\4\24\1\u0261\4\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\27\24" + "\1\54\2\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\3\24\1\u0262\21\24" + "\1\257\4\24\1\47\1\257\10\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\u0164" + "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\27\24\1\u0263\2\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\13\24\1\u01d6\16\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\22\24\1\u0264\7\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\54" + + "\11\24\1\u020c\13\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + + "\3\24\1\54\5\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\4\24\1\u020c\22\24\1\u020c" + + "\2\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\32\24\1\47\10\24\1\u0265" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\21\24\1\u0177\10\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\17\24" + "\1\u020f\1\24\2\213\7\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\15\24" + "\1\u0266\14\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\4\24" + "\1\u020c\4\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\32\24\1\47\10\24\1\u0266\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\32\24\1\47\4\24\1\u0215\4\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\12\24\1\u0267" + + "\17\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\32\24\1\47\3\24\1\u0268" + + "\5\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\12\24\1\u01d5\17\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\4\24\1\u0110\25\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + "\10\24\1\u0176\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\15\24\1\54\14\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\32\24\1\47\4\24\1\u0269\4\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + + "\1\143\7\24\1\u01d4\15\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\4\24" + + "\1\143\6\24\1\u01d4\16\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\15\24" + + "\1\54\3\24\1\54\2\24\1\54\5\24\1\47\1\24" + "\1\54\1\24\1\54\5\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\26\24\1\u026a\3\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\21\24\1\u026b\10\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\25\24\1\u026c\4\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\13\24" + + "\1\u026c\16\24\1\47\11\24\30\0\1\365\61\0\1\341" + "\14\0\1\101\7\0\1\u026d\47\0\1\354\54\0\1\365" + + "\53\0\1\u01b0\76\0\1\101\51\0\1\101\7\0\1\u026e" + "\47\0\1\365\6\0\1\357\10\0\1\365\50\0\1\u026f" + + "\63\0\1\u0270\62\0\1\u0271\64\0\1\365\46\0\1\u0272" + "\63\0\1\u0273\53\0\1\u0274\60\0\1\361\72\0\1\u022f" + + "\20\0\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\21\24\1\u0275\10\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\21\24\1\u0276\10\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u01c2" + "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\26\24\1\u0277\3\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\26\24\1\u0103\3\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\32\24\1\47\5\24\1\u0278\3\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\26\24\1\u0278" + + "\3\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\25\24\1\u0279\4\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\20\24\1\u027a\11\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\32\24\1\47\1\24\1\u0176\7\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\21\24\1\u027b" + "\10\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\30\24\1\213\1\24\1\47" + "\1\24\1\54\7\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\15\24\1\u0110\14\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\14\24\1\u027c\15\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\11\24\1\u01db\20\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\31\24\1\u027d" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\25\24\1\u01fe\4\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\25\24\1\u01e5\4\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\26\24" + "\1\u015e\3\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\26\24\1\u0139\3\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\14\24\1\u027e\15\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\3\24\1\u027f\26\24\1\47\11\24\1\47\2\24" + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\3\24" + + "\1\u01d4\26\24\1\47\11\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\3\24\1\u0280\26\24" + + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\3\24\1\u01f1\26\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\21\24\1\u0254\10\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\21\24" + "\1\u0256\10\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\13\24\1\u0281\16\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\32\24\1\47\1\u0110\10\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\27\24\1\u01e5\2\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + + "\5\24\1\172\3\24\1\47\2\24\1\0\3\47\2\0" + "\1\50\2\0\1\47\1\0\24\24\1\u0282\5\24\1\47" + + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + "\1\47\1\0\27\24\1\u0110\2\24\1\47\11\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\13\24\2\u01d4\15\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\54" + "\6\24\1\54\3\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\25\24\1\146" + "\4\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\23\24\1\143\6\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\15\24\1\52\1\24\1\54\5\24\1\u0283" + "\2\24\1\54\1\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\22\24\1\146" + "\7\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\4\24\1\u0209\25\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\23\24\1\u0284\6\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\4\24\1\143\25\24\1\47\5\24\1\54\3\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\20\24\1\u01d4\11\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\17\24\1\u0285" + + "\12\24\1\47\11\24\30\0\1\u0286\100\0\1\u0287\55\0" + "\1\u0287\64\0\1\u0288\56\0\1\u0289\67\0\1\365\54\0" + + "\1\u028a\55\0\1\u028b\21\0\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\24\24\1\213\5\24" + + "\1\47\1\24\1\u0247\7\24\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\1\24" + + "\1\u0247\7\24\1\47\2\24\1\0\3\47\2\0\1\50" + "\2\0\1\47\1\0\22\24\1\u0191\7\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\26\24\1\u028c\3\24\1\47\11\24\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\13\24" + "\2\u028d\15\24\1\47\11\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\20\24\1\u0247\11\24" + "\1\47\11\24\1\47\2\24\1\0\3\47\2\0\1\50" + + "\2\0\1\47\1\0\23\24\1\u01e2\6\24\1\47\11\24" + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + + "\1\0\1\u0110\2\24\1\u0110\11\24\1\u0110\1\24\1\u0110" + "\4\24\1\u0205\1\u016a\1\24\1\u028e\2\24\1\47\11\24" + + "\1\47\2\24\1\0\3\47\2\0\1\50\2\0\1\47" + "\1\0\32\24\1\47\1\u0222\10\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\4\24\1\u020d" + "\25\24\1\47\11\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\21\24\1\u020d\10\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\23\24\1\u028f\6\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\17\24\1\u0290\12\24\1\47\11\24\1\47\2\24\1\0" + "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\52" + + "\1\24\1\54\10\24\1\54\1\24\1\47\11\24\1\47" + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + + "\32\24\1\47\10\24\1\216\1\47\2\24\1\0\3\47" + "\2\0\1\50\2\0\1\47\1\0\32\24\1\47\6\24" + + "\1\u0291\2\24\40\0\1\u0292\66\0\1\365\62\0\1\u01b2" + "\60\0\1\101\7\0\1\u0293\60\0\1\u0294\5\0\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\17\24\1\u0295\12\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\15\24\1\213" + "\6\24\1\216\5\24\1\47\1\24\1\u0176\7\24\1\47" + + "\2\24\1\0\3\47\2\0\1\50\2\0\1\47\1\0" + "\24\24\1\u013d\5\24\1\47\11\24\1\47\2\24\1\0" + + "\3\47\2\0\1\50\2\0\1\47\1\0\32\24\1\47" + "\1\24\1\u01e9\7\24\1\47\2\24\1\0\3\47\2\0" + + "\1\50\2\0\1\47\1\0\13\24\1\u0296\16\24\1\47" + "\11\24\1\47\2\24\1\0\3\47\2\0\1\50\2\0" + + "\1\47\1\0\32\24\1\47\6\24\1\u0110\2\24\34\0" + "\1\u0297\55\0\1\u0298\104\0\1\365\6\0\1\47\2\24" + + "\1\0\3\47\2\0\1\50\2\0\1\47\1\0\32\24" + "\1\47\3\24\1\u01e5\5\24\1\47\2\24\1\0\3\47" + + "\2\0\1\50\2\0\1\47\1\0\27\24\1\u0299\2\24" + "\1\47\11\24\41\0\1\u029a\60\0\1\u029b\51\0\1\341" + + "\65\0\1\u029c\66\0\1\365\20\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[31850]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\1\11\5\1\1\11\1\1\1\11\44\1\2\11" + "\25\0\225\1\31\0\1\11\11\0\245\1\1\0\1\1" + + "\10\0\1\1\17\0\155\1\1\0\1\1\3\0\1\1" + "\5\0\1\1\5\0\61\1\7\0\22\1\1\0\1\1" + "\2\0\1\1\1\0\6\1\3\0\2\1\2\0\2\1" + "\2\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[668]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. We must have this here as JFLex does not generate a * no parameter constructor. */ public AssemblerX86TokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1445,33 +889,32 @@ public class AssemblerX86TokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { ";", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1481,21 +924,18 @@ public class AssemblerX86TokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1504,7 +944,8 @@ public class AssemblerX86TokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1513,354 +954,358 @@ public class AssemblerX86TokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtBOL = true; - zzAtEOF = false; + zzAtBOL = true; + zzAtEOF = false; + } + + /** + * 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 AssemblerX86TokenMaker(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 AssemblerX86TokenMaker(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 < 200) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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; + if (zzMarkedPosL > zzStartRead) { + switch (zzBufferL[zzMarkedPosL - 1]) { + case '\n': + case '\u000B': + case '\u000C': + case '\u0085': + case '\u2028': + case '\u2029': + zzAtBOL = true; + break; + case '\r': + if (zzMarkedPosL < zzEndReadL) + zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; + else if (zzAtEOF) + zzAtBOL = false; + else { + boolean eof = zzRefill(); + zzMarkedPosL = zzMarkedPos; + zzEndReadL = zzEndRead; + zzBufferL = zzBuffer; + if (eof) + zzAtBOL = false; + else + zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; + } + break; + default: + zzAtBOL = false; + } + } + zzAction = -1; + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + if (zzAtBOL) + zzState = ZZ_LEXSTATE[zzLexicalState + 1]; + else + zzState = ZZ_LEXSTATE[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 11: { + addToken(Token.RESERVED_WORD); + } + case 16: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 17: + break; + case 12: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 18: + break; + case 9: { + addToken(Token.FUNCTION); + } + case 19: + break; + case 5: { + addToken(Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 20: + break; + case 14: { + addToken(Token.VARIABLE); + } + case 21: + break; + case 7: { + addToken(Token.WHITESPACE); + } + case 22: + break; + case 10: { + addToken(Token.PREPROCESSOR); + } + case 23: + break; + case 15: { + addToken(Token.DATA_TYPE); + } + case 24: + break; + case 4: { + addToken(Token.ERROR_CHAR); /* + * addNullToken(); return + * firstToken; + */ + } + case 25: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 26: + break; + case 2: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 27: + break; + case 13: { + addToken(Token.LITERAL_CHAR); + } + case 28: + break; + case 3: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 29: + break; + case 6: { + addNullToken(); + return firstToken; + } + case 30: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 669: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 AssemblerX86TokenMaker(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 AssemblerX86TokenMaker(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 < 200) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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; - - if (zzMarkedPosL > zzStartRead) { - switch (zzBufferL[zzMarkedPosL-1]) { - case '\n': - case '\u000B': - case '\u000C': - case '\u0085': - case '\u2028': - case '\u2029': - zzAtBOL = true; - break; - case '\r': - if (zzMarkedPosL < zzEndReadL) - zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; - else if (zzAtEOF) - zzAtBOL = false; - else { - boolean eof = zzRefill(); - zzMarkedPosL = zzMarkedPos; - zzEndReadL = zzEndRead; - zzBufferL = zzBuffer; - if (eof) - zzAtBOL = false; - else - zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; - } - break; - default: - zzAtBOL = false; - } - } - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - if (zzAtBOL) - zzState = ZZ_LEXSTATE[zzLexicalState+1]; - else - zzState = ZZ_LEXSTATE[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 11: - { addToken(Token.RESERVED_WORD); - } - case 16: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 17: break; - case 12: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 18: break; - case 9: - { addToken(Token.FUNCTION); - } - case 19: break; - case 5: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 20: break; - case 14: - { addToken(Token.VARIABLE); - } - case 21: break; - case 7: - { addToken(Token.WHITESPACE); - } - case 22: break; - case 10: - { addToken(Token.PREPROCESSOR); - } - case 23: break; - case 15: - { addToken(Token.DATA_TYPE); - } - case 24: break; - case 4: - { addToken(Token.ERROR_CHAR); /*addNullToken(); return firstToken;*/ - } - case 25: break; - case 8: - { addToken(Token.OPERATOR); - } - case 26: break; - case 2: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 27: break; - case 13: - { addToken(Token.LITERAL_CHAR); - } - case 28: break; - case 3: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 29: break; - case 6: - { addNullToken(); return firstToken; - } - case 30: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 669: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/BBCodeTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/BBCodeTokenMaker.java index 0e39985..ae4f1c6 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/BBCodeTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/BBCodeTokenMaker.java @@ -1,329 +1,287 @@ /* The following code was generated by JFlex 1.4.1 on 11/18/09 4:41 PM */ - /* * 11/18/2009 - * * BBCodeTokenMaker.java - Generates tokens for BBCode syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * Scanner for BBCode. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated BBCodeTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated BBCodeTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.7 * */ - public class BBCodeTokenMaker extends AbstractMarkupTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int INTAG = 1; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\1\1\2\1\0\1\1\23\0\1\1\16\0\1\27\15\0"+ - "\1\30\35\0\1\3\1\0\1\4\4\0\1\5\1\13\1\26\1\12"+ - "\1\0\1\23\1\0\1\6\2\0\1\15\1\22\1\17\1\14\1\0"+ - "\1\21\1\16\1\10\1\20\1\7\1\25\2\0\1\24\1\11\uff85\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 = - "\2\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7"+ - "\4\10\6\5\1\11\1\12\1\4\23\5"; - - private static int [] zzUnpackAction() { - int [] result = new int[41]; - 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\31\0\62\0\113\0\144\0\175\0\226\0\144"+ - "\0\144\0\226\0\257\0\310\0\341\0\372\0\u0113\0\u012c"+ - "\0\u0145\0\u015e\0\u0177\0\u0190\0\144\0\144\0\u01a9\0\u01c2"+ - "\0\u01db\0\u01f4\0\u020d\0\u0226\0\u023f\0\u0258\0\u0271\0\u028a"+ - "\0\u02a3\0\u02bc\0\u02d5\0\u02ee\0\u0307\0\u0320\0\u0339\0\u0352"+ - "\0\u036b"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[41]; - 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 = - "\1\3\1\4\1\5\1\6\25\3\1\7\1\4\1\0"+ - "\1\10\1\11\1\12\1\13\1\14\1\15\2\7\1\16"+ - "\1\17\1\20\3\7\1\21\1\7\1\22\1\23\2\7"+ - "\1\24\1\25\1\3\3\0\25\3\1\0\1\4\107\0"+ - "\1\26\1\0\1\7\4\0\22\7\2\0\1\7\4\0"+ - "\15\7\1\27\4\7\2\0\1\7\4\0\10\7\1\12"+ - "\1\17\10\7\2\0\1\7\4\0\1\7\1\30\20\7"+ - "\2\0\1\7\4\0\5\7\1\31\1\7\1\32\12\7"+ - "\2\0\1\7\4\0\10\7\1\12\11\7\2\0\1\7"+ - "\4\0\1\7\1\12\20\7\2\0\1\7\4\0\2\7"+ - "\1\33\17\7\2\0\1\7\4\0\20\7\1\34\1\7"+ - "\2\0\1\7\4\0\7\7\1\35\12\7\6\0\1\11"+ - "\24\0\1\7\4\0\16\7\1\12\3\7\2\0\1\7"+ - "\4\0\4\7\1\36\15\7\2\0\1\7\4\0\12\7"+ - "\1\37\7\7\2\0\1\7\4\0\10\7\1\40\11\7"+ - "\2\0\1\7\4\0\7\7\1\41\12\7\2\0\1\7"+ - "\4\0\1\7\1\42\20\7\2\0\1\7\4\0\2\7"+ - "\1\43\17\7\2\0\1\7\4\0\5\7\1\12\14\7"+ - "\2\0\1\7\4\0\13\7\1\44\6\7\2\0\1\7"+ - "\4\0\7\7\1\45\12\7\2\0\1\7\4\0\13\7"+ - "\1\36\6\7\2\0\1\7\4\0\21\7\1\46\2\0"+ - "\1\7\4\0\13\7\1\47\6\7\2\0\1\7\4\0"+ - "\5\7\1\45\14\7\2\0\1\7\4\0\11\7\1\12"+ - "\10\7\2\0\1\7\4\0\5\7\1\50\14\7\2\0"+ - "\1\7\4\0\2\7\1\51\17\7\2\0\1\7\4\0"+ - "\7\7\1\12\12\7\2\0\1\7\4\0\1\36\21\7"+ - "\2\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[900]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\2\1\1\11\2\1\2\11\13\1\2\11\23\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[41]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int INTAG = 1; + public static final int YYINITIAL = 0; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\1\1\2\1\0\1\1\23\0\1\1\16\0\1\27\15\0" + + "\1\30\35\0\1\3\1\0\1\4\4\0\1\5\1\13\1\26\1\12" + "\1\0\1\23\1\0\1\6\2\0\1\15\1\22\1\17\1\14\1\0" + + "\1\21\1\16\1\10\1\20\1\7\1\25\2\0\1\24\1\11\uff85\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 = "\2\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7" + "\4\10\6\5\1\11\1\12\1\4\23\5"; + + private static int[] zzUnpackAction() { + int[] result = new int[41]; + 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\31\0\62\0\113\0\144\0\175\0\226\0\144" + + "\0\144\0\226\0\257\0\310\0\341\0\372\0\u0113\0\u012c" + "\0\u0145\0\u015e\0\u0177\0\u0190\0\144\0\144\0\u01a9\0\u01c2" + + "\0\u01db\0\u01f4\0\u020d\0\u0226\0\u023f\0\u0258\0\u0271\0\u028a" + + "\0\u02a3\0\u02bc\0\u02d5\0\u02ee\0\u0307\0\u0320\0\u0339\0\u0352" + "\0\u036b"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[41]; + 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 = "\1\3\1\4\1\5\1\6\25\3\1\7\1\4\1\0" + "\1\10\1\11\1\12\1\13\1\14\1\15\2\7\1\16" + + "\1\17\1\20\3\7\1\21\1\7\1\22\1\23\2\7" + "\1\24\1\25\1\3\3\0\25\3\1\0\1\4\107\0" + "\1\26\1\0\1\7\4\0\22\7\2\0\1\7\4\0" + + "\15\7\1\27\4\7\2\0\1\7\4\0\10\7\1\12" + "\1\17\10\7\2\0\1\7\4\0\1\7\1\30\20\7" + "\2\0\1\7\4\0\5\7\1\31\1\7\1\32\12\7" + + "\2\0\1\7\4\0\10\7\1\12\11\7\2\0\1\7" + "\4\0\1\7\1\12\20\7\2\0\1\7\4\0\2\7" + "\1\33\17\7\2\0\1\7\4\0\20\7\1\34\1\7" + + "\2\0\1\7\4\0\7\7\1\35\12\7\6\0\1\11" + "\24\0\1\7\4\0\16\7\1\12\3\7\2\0\1\7" + "\4\0\4\7\1\36\15\7\2\0\1\7\4\0\12\7" + + "\1\37\7\7\2\0\1\7\4\0\10\7\1\40\11\7" + "\2\0\1\7\4\0\7\7\1\41\12\7\2\0\1\7" + "\4\0\1\7\1\42\20\7\2\0\1\7\4\0\2\7" + + "\1\43\17\7\2\0\1\7\4\0\5\7\1\12\14\7" + "\2\0\1\7\4\0\13\7\1\44\6\7\2\0\1\7" + "\4\0\7\7\1\45\12\7\2\0\1\7\4\0\13\7" + + "\1\36\6\7\2\0\1\7\4\0\21\7\1\46\2\0" + "\1\7\4\0\13\7\1\47\6\7\2\0\1\7\4\0" + "\5\7\1\45\14\7\2\0\1\7\4\0\11\7\1\12" + + "\10\7\2\0\1\7\4\0\5\7\1\50\14\7\2\0" + "\1\7\4\0\2\7\1\51\17\7\2\0\1\7\4\0" + "\7\7\1\12\12\7\2\0\1\7\4\0\1\36\21\7" + + "\2\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[900]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\2\1\1\11\2\1\2\11\13\1\2\11\23\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[41]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specific to BBCodeTokenMaker; this signals that the user has * ended a line with an unclosed tag; thus a new line is beginning * still inside of the tag. */ - public static final int INTERNAL_INTAG = -1; - + public static final int INTERNAL_INTAG = -1; /** * Whether closing markup tags are automatically completed for BBCode. */ private static boolean completeCloseTags = true; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public BBCodeTokenMaker() { - } - - + public BBCodeTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** - * Sets whether markup close tags should be completed. The default value + * Sets whether markup close tags should be completed. The default value * for BBCode is true. * * @return Whether closing markup tags are completed. @@ -333,8 +291,7 @@ public class BBCodeTokenMaker extends AbstractMarkupTokenMaker { public boolean getCompleteCloseTags() { return completeCloseTags; } - - + /** * Returns null since BBCode has no comments. * @@ -344,26 +301,26 @@ public class BBCodeTokenMaker extends AbstractMarkupTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return null; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -374,7 +331,6 @@ public class BBCodeTokenMaker extends AbstractMarkupTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -384,32 +340,29 @@ public class BBCodeTokenMaker extends AbstractMarkupTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Sets whether markup close tags should be completed. * - * @param complete Whether closing markup tags are completed. + * @param complete + * Whether closing markup tags are completed. * @see #getCompleteCloseTags() */ public static void setCompleteCloseTags(boolean complete) { completeCloseTags = complete; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -418,7 +371,8 @@ public class BBCodeTokenMaker extends AbstractMarkupTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -427,304 +381,301 @@ public class BBCodeTokenMaker extends AbstractMarkupTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 BBCodeTokenMaker(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 BBCodeTokenMaker(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 < 80) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 1: { + addToken(Token.IDENTIFIER); + } + case 11: + break; + case 9: { + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 12: + break; + case 2: { + addToken(Token.WHITESPACE); + } + case 13: + break; + case 10: { + addToken(Token.OPERATOR); + } + case 14: + break; + case 8: { + addToken(Token.MARKUP_TAG_NAME); + } + case 15: + break; + case 4: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(INTAG); + } + case 16: + break; + case 6: { + addToken( + Token.IDENTIFIER); /* Unhandled chars, not likely */ + } + case 17: + break; + case 5: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 18: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 19: + break; + case 7: { + yybegin(YYINITIAL); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 20: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case INTAG: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG); + return firstToken; + } + case 42: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 43: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 BBCodeTokenMaker(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 BBCodeTokenMaker(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 < 80) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 1: - { addToken(Token.IDENTIFIER); - } - case 11: break; - case 9: - { addToken(Token.MARKUP_TAG_DELIMITER); - } - case 12: break; - case 2: - { addToken(Token.WHITESPACE); - } - case 13: break; - case 10: - { addToken(Token.OPERATOR); - } - case 14: break; - case 8: - { addToken(Token.MARKUP_TAG_NAME); - } - case 15: break; - case 4: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(INTAG); - } - case 16: break; - case 6: - { addToken(Token.IDENTIFIER); /* Unhandled chars, not likely */ - } - case 17: break; - case 5: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 18: break; - case 3: - { addNullToken(); return firstToken; - } - case 19: break; - case 7: - { yybegin(YYINITIAL); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 20: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case INTAG: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG); return firstToken; - } - case 42: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 43: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/CPlusPlusTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/CPlusPlusTokenMaker.java index 84646d0..d856e56 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/CPlusPlusTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/CPlusPlusTokenMaker.java @@ -1,12 +1,9 @@ /* The following code was generated by JFlex 1.4.1 on 1/24/17 10:44 PM */ - /* * 11/19/2004 - * * CPlusPlusTokenMaker.java - An object that can take a chunk of text and * return a linked list of tokens representing it in C++. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -20,1856 +17,862 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** * A parser for the C++ programming language. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated CPlusPlusTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated CPlusPlusTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.6 * */ - public class CPlusPlusTokenMaker extends AbstractJFlexCTokenMaker { - - /** 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 EOL_COMMENT = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\50\1\43\1\0\1\50\1\56\22\0\1\50\1\36\1\44"+ - "\1\57\1\60\1\65\1\113\1\33\1\31\1\31\1\51\1\7\1\64"+ - "\1\37\1\54\1\32\1\47\1\77\1\76\1\41\4\5\2\3\1\70"+ - "\1\63\1\34\1\30\1\35\1\27\1\61\1\103\1\4\1\111\1\102"+ - "\1\6\1\55\2\1\1\105\2\1\1\53\1\106\1\107\4\1\1\110"+ - "\1\104\1\52\2\1\1\42\2\1\1\62\1\40\1\62\1\115\1\2"+ - "\1\0\1\24\1\46\1\21\1\10\1\11\1\12\1\25\1\66\1\13"+ - "\1\100\1\72\1\15\1\26\1\14\1\20\1\23\1\101\1\17\1\16"+ - "\1\67\1\22\1\45\1\71\1\74\1\73\1\75\1\112\1\114\1\112"+ - "\1\64\uff81\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 = - "\3\0\1\1\2\2\1\3\1\4\17\2\2\4\1\5"+ - "\1\4\1\6\3\4\1\2\1\7\1\10\2\2\1\3"+ - "\1\11\1\4\2\1\1\2\1\4\3\2\2\4\2\12"+ - "\1\13\5\12\1\14\1\15\2\12\1\2\2\16\2\3"+ - "\1\17\2\2\1\20\22\2\1\20\56\2\1\0\1\21"+ - "\1\22\2\23\1\24\1\6\2\10\1\25\10\2\1\16"+ - "\6\1\1\0\14\2\2\0\1\26\4\0\1\27\2\0"+ - "\5\2\1\3\1\0\1\3\1\16\1\17\3\2\1\30"+ - "\6\2\1\30\23\2\1\31\16\2\1\30\1\2\1\30"+ - "\40\2\1\30\15\2\1\6\1\32\1\6\3\23\1\6"+ - "\2\10\1\33\7\2\1\34\4\1\1\35\4\1\6\0"+ - "\14\2\10\0\5\2\1\17\1\0\37\2\1\31\45\2"+ - "\1\30\2\2\1\30\7\2\1\6\1\10\7\2\2\34"+ - "\7\1\4\0\1\35\4\0\11\2\2\0\1\36\2\0"+ - "\1\37\44\2\1\20\14\2\1\34\1\35\3\1\7\0"+ - "\10\2\4\0\11\2\1\40\11\2\2\1\1\35\3\0"+ - "\12\2\2\0\1\35\4\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[583]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /** - * Translates a state to a row index in the transition table - */ - private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); - - private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222"+ - "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492"+ - "\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u06b4\0\u0702"+ - "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u0888\0\u08d6\0\u0924\0\352"+ - "\0\u079e\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa\0\u0af8\0\u079e"+ - "\0\u0b46\0\u079e\0\u079e\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc"+ - "\0\u0d1a\0\u0d68\0\u079e\0\u0db6\0\u0e04\0\u0e52\0\u0ea0\0\u0eee"+ - "\0\u0f3c\0\u079e\0\u0f8a\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110"+ - "\0\u115e\0\u11ac\0\u11fa\0\u1248\0\u1296\0\u12e4\0\u1332\0\u1380"+ - "\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506\0\u1554\0\u15a2\0\u15f0"+ - "\0\u163e\0\u168c\0\u16da\0\u1728\0\u1776\0\u17c4\0\u1812\0\u0138"+ - "\0\u1860\0\u18ae\0\u18fc\0\u194a\0\u1998\0\u19e6\0\u1a34\0\u1a82"+ - "\0\u1ad0\0\u1b1e\0\u1b6c\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u1cf2"+ - "\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6\0\u1f14\0\u1f62"+ - "\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u2136\0\u2184\0\u21d2"+ - "\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358\0\u23a6\0\u23f4\0\u2442"+ - "\0\u2490\0\u24de\0\u252c\0\u257a\0\u25c8\0\u2616\0\u2664\0\u079e"+ - "\0\u079e\0\u26b2\0\u2700\0\u079e\0\u274e\0\u279c\0\u27ea\0\u079e"+ - "\0\u2838\0\u2886\0\u28d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u2a5a"+ - "\0\u2aa8\0\u2af6\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca"+ - "\0\u2d18\0\u2d66\0\u2db4\0\u2e02\0\u2e50\0\u2e9e\0\u2eec\0\u2f3a"+ - "\0\u2f88\0\u2fd6\0\u3024\0\u3072\0\u30c0\0\u310e\0\u079e\0\u315c"+ - "\0\u31aa\0\u31f8\0\u3246\0\u079e\0\u3294\0\u32e2\0\u3330\0\u337e"+ - "\0\u33cc\0\u341a\0\u3468\0\u34b6\0\u3504\0\u1074\0\u3552\0\u1074"+ - "\0\u35a0\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u3726\0\u3774\0\u37c2"+ - "\0\u3810\0\u385e\0\u38ac\0\u38fa\0\u3948\0\u3996\0\u39e4\0\u3a32"+ - "\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54\0\u3ca2"+ - "\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76\0\u0138\0\u3ec4"+ - "\0\u3f12\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098\0\u40e6\0\u4134"+ - "\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4"+ - "\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614"+ - "\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a\0\u47e8\0\u4836\0\u4884"+ - "\0\u48d2\0\u4920\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6\0\u4af4"+ - "\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u4c7a\0\u4cc8\0\u4d16\0\u4d64"+ - "\0\u0138\0\u4db2\0\u4e00\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38\0\u4f86"+ - "\0\u4fd4\0\u5022\0\u5070\0\u50be\0\u510c\0\u515a\0\u51a8\0\u079e"+ - "\0\u51f6\0\u5244\0\u5292\0\u52e0\0\u532e\0\u537c\0\u53ca\0\u079e"+ - "\0\u5418\0\u5466\0\u54b4\0\u5502\0\u5550\0\u559e\0\u55ec\0\u563a"+ - "\0\u5688\0\u56d6\0\u5724\0\u5772\0\u57c0\0\u580e\0\u585c\0\u58aa"+ - "\0\u58f8\0\u5946\0\u5994\0\u59e2\0\u5a30\0\u5a7e\0\u5acc\0\u5b1a"+ - "\0\u5b68\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0\0\u5cee\0\u5d3c\0\u5d8a"+ - "\0\u5dd8\0\u5e26\0\u5e74\0\u5ec2\0\u5f10\0\u5f5e\0\u5fac\0\u5ffa"+ - "\0\u6048\0\u6096\0\u60e4\0\u6132\0\u6180\0\u61ce\0\u621c\0\u626a"+ - "\0\u62b8\0\u6306\0\u6354\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da"+ - "\0\u6528\0\u6576\0\u65c4\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u674a"+ - "\0\u6798\0\u67e6\0\u6834\0\u6882\0\u68d0\0\u691e\0\u696c\0\u69ba"+ - "\0\u6a08\0\u6a56\0\u6aa4\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a"+ - "\0\u6c78\0\u6cc6\0\u6d14\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a"+ - "\0\u6ee8\0\u6f36\0\u6f84\0\u6fd2\0\u7020\0\u706e\0\u70bc\0\u710a"+ - "\0\u7158\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u72de\0\u732c\0\u737a"+ - "\0\u73c8\0\u7416\0\u7464\0\u74b2\0\u7500\0\u754e\0\u759c\0\u75ea"+ - "\0\u7638\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c\0\u785a"+ - "\0\u78a8\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u7a2e\0\u7a7c\0\u7aca"+ - "\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a"+ - "\0\u7d88\0\u7dd6\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c\0\u7faa"+ - "\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc\0\u821a"+ - "\0\u8268\0\u82b6\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c\0\u848a"+ - "\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u8610\0\u865e\0\u86ac\0\u86fa"+ - "\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u88ce\0\u891c\0\u896a"+ - "\0\u89b8\0\u43a4\0\u8a06\0\u8a54\0\u8aa2\0\u8af0\0\u8b3e\0\u8b8c"+ - "\0\u8bda\0\u8c28\0\u8c76\0\u8cc4\0\u8d12\0\u8d60\0\u8dae\0\u8dfc"+ - "\0\u8e4a\0\u8e98\0\u8ee6\0\u8f34\0\u8f82\0\u8fd0\0\u901e\0\u906c"+ - "\0\u90ba\0\u9108\0\u9156\0\u91a4\0\u91f2\0\u9240\0\u928e\0\u92dc"+ - "\0\u932a\0\u9378\0\u93c6\0\u9414\0\u9462\0\u94b0\0\u94fe\0\u954c"+ - "\0\u959a\0\u95e8\0\u9636\0\u9684\0\u96d2\0\u1074\0\352\0\u9720"+ - "\0\u976e\0\u97bc\0\u980a\0\u9858\0\u98a6\0\u98f4\0\u9942\0\u9990"+ - "\0\u99de\0\u9a2c\0\u9a7a\0\u9ac8\0\u9b16\0\u9b64\0\u9bb2\0\u368a"+ - "\0\u9c00\0\u9c4e\0\u8748\0\u9c9c\0\u8832\0\u9cea\0\u9d38\0\u9d86"+ - "\0\u9dd4\0\u9e22\0\u9e70\0\u9ebe\0\u9f0c\0\u9f5a\0\u0138\0\u9fa8"+ - "\0\u9ff6\0\ua044\0\ua092\0\ua0e0\0\ua12e\0\ua17c\0\ua1ca\0\ua218"+ - "\0\ua266\0\ua2b4\0\u079e\0\ua302\0\ua350\0\ua39e\0\ua3ec\0\ua43a"+ - "\0\ua488\0\u932a\0\ua4d6\0\ua524\0\ua572\0\ua5c0\0\ua60e\0\ua65c"+ - "\0\ua6aa\0\ua6f8\0\u0138\0\ua746\0\ua794\0\ua7e2\0\ua830"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[583]; - 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 = - "\1\4\1\5\1\6\1\7\1\5\1\7\1\5\1\10"+ - "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+ - "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30"+ - "\1\31\1\32\1\33\1\34\1\35\1\36\1\31\1\37"+ - "\1\40\1\7\1\5\1\41\1\42\1\43\1\44\1\45"+ - "\1\46\1\31\2\5\1\47\1\5\1\50\1\51\2\4"+ - "\1\32\1\52\1\53\1\31\1\5\1\54\1\53\1\55"+ - "\4\5\2\7\1\5\1\56\10\5\1\32\1\57\1\60"+ - "\1\31\12\61\1\62\30\61\1\63\5\61\1\64\14\61"+ - "\1\65\2\61\1\66\24\61\12\67\1\70\25\67\1\71"+ - "\2\67\1\72\22\67\1\73\2\67\1\74\24\67\7\4"+ - "\1\0\17\4\11\0\3\4\2\0\3\4\2\0\2\4"+ - "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\1\5\1\75\4\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\3\76"+ - "\1\7\1\76\1\7\1\77\1\0\1\76\1\77\3\76"+ - "\1\100\4\76\1\101\4\76\11\0\1\76\1\7\1\76"+ - "\2\0\2\76\1\7\2\0\1\101\1\100\1\102\1\76"+ - "\1\0\3\76\4\0\2\76\1\0\5\76\2\7\12\76"+ - "\13\0\1\53\20\0\1\53\65\0\1\4\6\5\1\0"+ - "\1\5\1\103\1\5\1\104\4\5\1\105\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\2\5"+ - "\1\106\16\5\4\0\1\4\6\5\1\0\4\5\1\107"+ - "\1\110\1\5\1\111\7\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\3\5\1\112\15\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\113\1\114\2\5\1\115"+ - "\1\116\1\117\1\120\1\121\1\5\1\122\1\123\1\124"+ - "\1\125\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\126\1\0\1\127\20\5\4\0\1\4\6\5\1\0"+ - "\2\5\1\130\1\5\1\131\1\5\1\132\10\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\133\12\5\1\134"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\135\7\5"+ - "\1\136\3\5\1\137\2\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\1\5\1\140\1\5\1\141\2\5\1\142\1\143"+ - "\1\5\1\144\1\5\1\145\3\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\146\1\147\1\0\1\150\1\5"+ - "\1\151\5\5\1\152\10\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\153\12\5\1\154\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\2\5\1\155\10\5\1\156\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\157\3\5\1\160"+ - "\2\5\1\161\3\5\1\162\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\163\1\164\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\4\5\1\165\1\5\1\166\10\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\167\5\5"+ - "\1\170\1\171\1\5\1\172\4\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\6\5\1\173\2\5\1\174\1\175\4\5"+ - "\11\0\1\4\2\5\2\0\1\5\1\176\1\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\177\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\200\6\5\1\175\5\5\1\201\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\202\6\5\1\203\1\5"+ - "\1\204\1\5\1\205\2\5\11\0\1\4\2\5\2\0"+ - "\1\5\1\206\1\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\1\5\1\201"+ - "\17\5\33\0\1\207\116\0\1\53\233\0\1\53\1\0"+ - "\1\210\16\0\1\211\44\0\27\212\1\213\3\212\1\214"+ - "\4\212\1\215\2\212\1\0\52\212\30\0\1\53\3\0"+ - "\1\31\111\0\1\53\4\0\1\31\110\0\1\53\6\0"+ - "\1\53\56\0\40\42\1\216\2\42\1\217\1\220\51\42"+ - "\1\4\6\5\1\0\2\5\1\221\1\222\2\5\1\221"+ - "\1\5\1\223\2\5\1\145\1\224\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\1\225\20\5"+ - "\4\0\1\4\6\5\1\0\6\5\1\226\1\227\7\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\230"+ - "\1\0\21\5\4\0\3\76\1\7\1\76\1\7\1\77"+ - "\1\0\1\76\1\77\3\76\1\100\4\76\1\101\4\76"+ - "\11\0\1\76\1\7\1\231\2\0\2\76\1\7\2\0"+ - "\1\101\1\100\1\102\1\76\1\0\3\76\4\0\2\76"+ - "\1\0\3\76\1\231\1\76\2\7\12\76\54\0\1\46"+ - "\50\0\1\102\1\0\1\102\33\0\1\102\5\0\1\102"+ - "\26\0\2\102\16\0\7\4\1\0\1\232\1\233\1\4"+ - "\1\234\1\4\1\235\4\4\1\236\1\237\3\4\11\0"+ - "\3\4\2\0\3\4\1\240\1\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\1\4"+ - "\6\5\1\0\1\5\1\241\1\5\1\242\3\5\1\243"+ - "\1\244\3\5\1\245\1\5\1\246\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\247\1\5\1\0\2\5\1\250"+ - "\16\5\4\0\1\4\6\5\1\0\6\5\1\142\2\5"+ - "\1\251\1\5\1\145\2\5\1\252\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\253\1\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\6\5\1\254\10\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\34\0"+ - "\1\53\62\0\1\53\32\0\1\53\63\0\1\53\1\0"+ - "\12\61\1\0\30\61\1\0\5\61\1\0\14\61\1\0"+ - "\2\61\1\0\24\61\13\0\1\255\53\0\1\256\60\0"+ - "\1\257\152\0\1\260\117\0\1\261\24\0\12\67\1\0"+ - "\25\67\1\0\2\67\1\0\22\67\1\0\2\67\1\0"+ - "\24\67\13\0\1\262\53\0\1\263\26\0\43\264\1\0"+ - "\52\264\67\0\1\265\117\0\1\266\24\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\1\5\1\267\1\0\1\270\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\11\5\1\271\1\5\1\272\3\5"+ - "\1\273\1\5\4\0\7\76\1\0\17\76\11\0\3\76"+ - "\2\0\3\76\2\0\2\76\1\0\1\76\1\0\3\76"+ - "\4\0\2\76\1\0\21\76\4\0\3\76\1\274\1\76"+ - "\1\274\1\76\1\275\17\76\10\0\1\275\1\76\1\274"+ - "\1\76\2\0\2\76\1\274\2\0\2\76\1\0\1\76"+ - "\1\0\3\76\4\0\2\76\1\0\5\76\2\274\12\76"+ - "\4\0\7\76\1\0\12\76\1\276\4\76\11\0\3\76"+ - "\2\0\3\76\2\0\1\276\1\76\1\0\1\76\1\0"+ - "\3\76\4\0\2\76\1\0\21\76\4\0\7\76\1\0"+ - "\5\76\1\276\11\76\11\0\3\76\2\0\3\76\2\0"+ - "\1\76\1\276\1\0\1\76\1\0\3\76\4\0\2\76"+ - "\1\0\21\76\4\0\3\76\1\102\1\76\1\102\1\277"+ - "\1\0\1\76\1\277\1\300\2\76\1\300\11\76\11\0"+ - "\1\76\1\102\1\76\2\0\2\76\1\102\2\0\1\76"+ - "\1\300\1\0\1\300\1\0\3\76\4\0\2\76\1\0"+ - "\5\76\2\102\12\76\4\0\1\4\6\5\1\0\2\5"+ - "\1\301\2\5\1\302\11\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\2\5\1\303\14\5\11\0\1\4\2\5\2\0"+ - "\1\304\2\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\12\5\1\305\4\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\4\5\1\306\12\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\12\5\1\307\4\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\6\5\1\310\10\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\7\5\1\311\7\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\312\7\5\1\313\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\5\1\314\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\7\5\1\315\1\316"+ - "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\5\5\1\317"+ - "\11\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\320"+ - "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\321"+ - "\7\5\1\144\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\322\1\5\1\323\13\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\7\5\1\130\3\5\1\324\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\5\5\1\325\11\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\326\2\5\1\327"+ - "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\5\5\1\330"+ - "\11\5\11\0\1\4\2\5\2\0\1\5\1\331\1\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\332\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\333\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\334\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\6\5\1\142\1\335\3\5\1\145\3\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\5\5\1\336\11\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\337\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\340\4\5\1\341\1\342"+ - "\2\5\1\343\1\344\1\345\1\346\1\347\1\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\3\5"+ - "\1\350\15\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\1\130"+ - "\20\5\4\0\1\4\6\5\1\0\16\5\1\351\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\352\1\5\1\353"+ - "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\354"+ - "\4\5\1\355\3\5\1\356\1\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\5"+ - "\1\331\1\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\357\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\4\5\1\360\10\5\1\361\1\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\4\5\1\362"+ - "\14\5\4\0\1\4\6\5\1\0\11\5\1\144\5\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\14\5\1\363\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\14\5\1\364\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\7\5\1\326\7\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\10\5\1\365\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\7\5\1\366\4\5"+ - "\1\367\2\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5"+ - "\1\370\2\5\1\142\4\5\1\145\3\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\6\5\1\371\10\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\7\5\1\312\7\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\3\5\1\372\1\373\7\5\1\205"+ - "\1\374\1\375\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\376\1\0\1\377\20\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\u0100\1\333\12\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\2\5\1\u0101\14\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\u0102\15\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\u0103\13\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\u0104\6\5\1\u0105\3\5\1\u0106"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\u0107"+ - "\1\5\1\360\10\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\5\5\1\u0108\1\310\10\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\u0109\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\14\5\1\u010a\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\242\13\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\u010b\2\5\1\u010c\6\5\1\u010d"+ - "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u010e"+ - "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\315"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u010f"+ - "\4\5\1\u0110\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\1\u0111\20\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\1\5\1\u0112\1\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u0113\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\3\5\1\u0114\2\5\1\u0115\2\5\1\201\5\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\331\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\u0116\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\6\5\1\u0111\1\5\1\152\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0117\6\5"+ - "\1\u0118\3\5\1\u0119\2\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u011a\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\164\1\0\21\5\4\0\1\4\6\5\1\0\16\5"+ - "\1\u011b\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\316\16\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\u011c\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\5\5\1\u0108\11\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\5\5\1\324\1\u011d\1\u011e"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\230\1\0\21\5\34\0\10\53\56\0\33\u011f\1\u0120"+ - "\7\u011f\1\0\101\u011f\1\u0121\3\u011f\1\u0120\7\u011f\1\0"+ - "\57\u011f\1\u0122\3\u011f\2\212\1\u011f\1\212\2\u011f\1\212"+ - "\4\u011f\1\212\2\u011f\1\212\3\u011f\1\u0123\4\u011f\1\212"+ - "\1\u0124\1\u0125\1\0\3\212\1\u0124\17\u011f\1\212\4\u011f"+ - "\1\u0125\1\u011f\2\u0124\16\u011f\5\217\1\42\3\217\2\42"+ - "\1\217\1\42\2\217\1\42\4\217\1\42\2\217\1\42"+ - "\3\217\1\42\4\217\2\42\1\u0126\1\0\4\42\17\217"+ - "\1\42\4\217\1\u0126\1\217\2\42\56\217\1\u0127\3\217"+ - "\1\u0128\51\217\1\4\6\5\1\0\13\5\1\145\3\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\1\225\20\5\4\0\1\4\6\5\1\0\7\5\1\u0129"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u012a"+ - "\1\5\1\u012b\11\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\1\5\1\u012c"+ - "\4\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\13\5\1\145\3\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\u012d\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\u012e\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\u012f\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\3\76\4\u0130\1\0"+ - "\3\u0130\6\76\1\u0130\2\76\1\u0130\2\76\11\0\1\76"+ - "\1\u0130\1\76\2\0\1\76\2\u0130\2\0\2\76\1\0"+ - "\1\u0130\1\0\3\76\4\0\2\76\1\0\5\76\2\u0130"+ - "\2\76\2\u0130\5\76\1\u0130\4\0\7\4\1\0\1\4"+ - "\1\u0131\15\4\11\0\3\4\2\0\3\4\2\0\2\4"+ - "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4"+ - "\4\0\7\4\1\0\4\4\1\u0132\1\u0133\1\4\1\u0134"+ - "\7\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0"+ - "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0"+ - "\7\4\1\0\2\4\1\u0135\1\4\1\u0136\12\4\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0"+ - "\3\4\1\u0137\13\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\4\0\7\4\1\0\4\4\1\u0138\12\4\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0"+ - "\7\4\1\u0139\7\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\14\0\1\u013a\1\u013b\1\0\1\u013c\1\0\1\u013d"+ - "\4\0\1\u013e\1\u013f\24\0\1\240\45\0\1\4\6\5"+ - "\1\0\16\5\1\u0140\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\16\5\1\u0141\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\12\5"+ - "\1\u0142\4\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\2\5\1\130\16\5\4\0\1\4\6\5"+ - "\1\0\5\5\1\341\4\5\1\344\4\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\4\5\1\360\12\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\13\5\1\u0143\3\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\3\5\1\u0144\3\5\1\u0145\7\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\13\5\1\u0146\3\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\6\5\1\u0147\1\u0148"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\u0149"+ - "\1\u014a\1\0\21\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\202\15\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5"+ - "\1\u014b\13\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5"+ - "\1\152\6\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\21\0\1\u014c\123\0\1\u014d\161\0"+ - "\1\u014e\117\0\1\u014f\41\0\1\u0150\123\0\1\u0151\161\0"+ - "\1\u0152\117\0\1\u0153\24\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\14\5\1\u0154\4\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\14\5\1\u0155\4\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\12\5\1\u0156\6\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\14\5\1\u0157\4\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\13\5\1\u0158\5\5\4\0\3\76\1\274\1\76\1\274"+ - "\1\76\1\0\5\76\1\100\4\76\1\101\4\76\11\0"+ - "\1\76\1\274\1\76\2\0\2\76\1\274\2\0\1\101"+ - "\1\100\1\0\1\76\1\0\3\76\4\0\2\76\1\0"+ - "\5\76\2\274\12\76\7\0\1\274\1\0\1\274\33\0"+ - "\1\274\5\0\1\274\26\0\2\274\16\0\3\76\1\u0159"+ - "\1\76\1\u0159\1\76\1\u015a\17\76\10\0\1\u015a\1\76"+ - "\1\u0159\1\76\2\0\2\76\1\u0159\2\0\2\76\1\0"+ - "\1\76\1\0\3\76\4\0\2\76\1\0\5\76\2\u0159"+ - "\12\76\4\0\1\4\6\5\1\0\14\5\1\u015b\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u015c\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\2\5\1\201\14\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\1\5\1\u015d\4\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\1\5\1\u015e\1\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\14\5\1\u015f\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\16\5\1\130\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\130\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\u0160\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\u0111\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\5\5\1\u0161\11\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\u0162\15\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\7\5\1\u0163\7\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\2\5\1\u0111\14\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\12\5\1\u0164\4\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\10\5\1\u0165\3\5\1\u015d\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0166\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u0167"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u0111"+ - "\6\5\1\u0168\3\5\1\333\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\3\5\1\u0169\15\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u016a\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u0114\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\u0100\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\3\5\1\u016b\13\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\u016c\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\6\5\1\u0142\10\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\6\5\1\u0111\10\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\u016d\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\u0111\16\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\5\5\1\u0103\11\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\u016e\13\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\u016f\13\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\u0170\13\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\10\5\1\u0171\6\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\13\5\1\u0172\3\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\4\5\1\u0173\12\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\13\5\1\u0174\3\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\7\5\1\u0175\2\5\1\u0176\4\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\5\5\1\u0177\11\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\7\5\1\u0178\7\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\340\16\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\u0179\15\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\3\5\1\u0169\15\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\304"+ - "\2\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\15\5\1\u017a\1\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\14\5\1\u017b\2\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\6\5\1\u017c\12\5\4\0\1\4\6\5"+ - "\1\0\5\5\1\u017d\11\5\11\0\1\4\2\5\2\0"+ - "\1\u017e\1\u017f\1\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\7\5\1\u0180"+ - "\11\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\u0111\1\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\u0181\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u0182\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\333\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\316\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u015d\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\167\1\201\1\5"+ - "\1\u0183\1\324\1\u0184\1\u0185\1\5\1\u0186\1\u0187\1\u0188"+ - "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u0189\1\0\3\5\1\u018a\15\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u018b\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u0109\1\0\21\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u018c"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\u018d"+ - "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\242"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u018e"+ - "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\u018f"+ - "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\12\5\1\u0190"+ - "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\363"+ - "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0141"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0191"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u0192"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\5\5\1\u0111"+ - "\11\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u0193"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u0166"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0144"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0194"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u0195\1\0\21\5\4\0\1\4\6\5\1\0\5\5"+ - "\1\u0196\11\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5"+ - "\1\u0197\5\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5"+ - "\1\337\7\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5"+ - "\1\u0198\6\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5"+ - "\1\u0199\13\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\u019a\15\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5"+ - "\1\u019b\12\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5"+ - "\1\u019c\12\5\11\0\1\4\2\5\2\0\1\u019d\2\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u019e\1\0\21\5\4\0\1\4\6\5\1\0\5\5"+ - "\1\u019f\11\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\u0111\2\5\1\u01a0\5\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\u01a1\20\5\4\0\1\4"+ - "\6\5\1\0\4\5\1\u0111\12\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\152\15\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\10\5\1\130\6\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\3\5\1\u01a2\15\5\4\0\1\4"+ - "\6\5\1\0\2\5\2\u0111\1\5\1\u0111\11\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\u01a3\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u01a4\4\5\1\u0111"+ - "\2\5\1\u01a0\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\1\u01a1\20\5\4\0\1\4\6\5"+ - "\1\0\6\5\1\u01a5\2\5\1\u01a6\4\5\1\375\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\14\5\1\u01a7\2\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\3\5\1\u01a8\3\5\1\u01a9"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u01aa\1\0\21\5\4\0\1\4\6\5\1\0\5\5"+ - "\1\324\11\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\230\1\0\21\5\4\0\33\u011f\1\214\7\u011f"+ - "\1\0\102\u011f\3\212\1\u0123\4\212\3\u011f\1\0\57\u011f"+ - "\1\212\25\u011f\1\u0120\5\u011f\1\212\1\u011f\1\0\3\u011f"+ - "\1\212\26\u011f\2\212\16\u011f\33\0\1\u0120\62\0\5\u011f"+ - "\1\u0122\25\u011f\1\u0120\5\u011f\1\u0122\1\u011f\1\0\3\u011f"+ - "\1\u0122\26\u011f\2\u0122\21\u011f\4\u01ab\1\u011f\3\u01ab\6\u011f"+ - "\1\u01ab\2\u011f\1\u01ab\6\u011f\1\214\5\u011f\1\u01ab\1\u011f"+ - "\1\0\2\u011f\2\u01ab\5\u011f\1\u01ab\20\u011f\2\u01ab\2\u011f"+ - "\2\u01ab\5\u011f\1\u01ab\4\u011f\3\217\4\u01ac\1\217\3\u01ac"+ - "\6\217\1\u01ac\2\217\1\u01ac\13\217\1\u0127\1\u01ac\2\217"+ - "\1\u0128\1\217\2\u01ac\5\217\1\u01ac\20\217\2\u01ac\2\217"+ - "\2\u01ac\5\217\1\u01ac\47\217\1\0\52\217\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u01ad\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\337\16\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\14\5"+ - "\1\u01ae\2\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\363\4\5\1\u01af\5\5\1\u01b0\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\14\5\1\u01b1\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\14\5\1\u01b2\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\u01b3\20\5\4\0\3\76"+ - "\4\u0130\1\0\3\u0130\2\76\1\u01b4\3\76\1\u0130\1\u01b5"+ - "\1\76\1\u0130\2\76\11\0\1\76\1\u0130\1\76\2\0"+ - "\1\76\2\u0130\2\0\1\u01b5\1\u01b4\1\0\1\u0130\1\0"+ - "\3\76\4\0\2\76\1\0\5\76\2\u0130\2\76\2\u0130"+ - "\5\76\1\u0130\4\0\7\4\1\0\2\4\1\235\14\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4"+ - "\1\0\1\u01b6\16\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\4\0\7\4\1\0\3\4\1\u01b7\2\4\1\u01b8"+ - "\10\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0"+ - "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0"+ - "\7\4\1\0\7\4\1\u01b9\7\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\4\0\7\4\1\0\1\u01ba\3\4"+ - "\1\u0138\12\4\11\0\3\4\2\0\3\4\2\0\2\4"+ - "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4"+ - "\4\0\7\4\1\0\11\4\1\u01bb\5\4\11\0\3\4"+ - "\2\0\3\4\2\0\2\4\1\0\1\4\1\0\3\4"+ - "\4\0\2\4\1\0\21\4\4\0\7\4\1\0\4\4"+ - "\1\u01b8\12\4\11\0\3\4\2\0\3\4\2\0\2\4"+ - "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4"+ - "\4\0\7\4\1\0\1\u01ba\16\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\4\0\7\4\1\0\14\4\1\u01bc"+ - "\2\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0"+ - "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\15\0"+ - "\1\u01bd\120\0\1\u01be\1\u01bf\1\0\1\u01c0\110\0\1\u01c1"+ - "\1\0\1\u01c2\114\0\1\u01c3\116\0\1\u01c4\120\0\1\u01c5"+ - "\76\0\1\4\6\5\1\0\13\5\1\u01c6\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u0111\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\337\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\2\5\1\u01c7\1\5\1\u01c8"+ - "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\130"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\133"+ - "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u01c9"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\201"+ - "\1\5\1\u0183\1\324\1\u0184\1\u01ca\1\5\1\u0186\1\5"+ - "\1\u0188\3\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u01cb\1\0\3\5\1\u018a\15\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\u01cc\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\14\5\1\u01cd\2\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\10\5\1\u01ce\6\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\5\5\1\310\11\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\15\0\1\u014d\174\0"+ - "\1\u01cf\50\0\1\u01d0\146\0\1\u01d1\52\0\1\u0151\174\0"+ - "\1\u01d2\50\0\1\u01d3\146\0\1\u01d4\41\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\16\5\1\u01d5\2\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\1\5\1\u01d5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\13\5\1\u01d5\5\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\15\5\1\u01d5\3\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\11\5\1\u01d6\7\5\4\0\3\76\1\u0159\1\76"+ - "\1\u0159\1\76\1\0\2\76\1\300\2\76\1\300\11\76"+ - "\11\0\1\76\1\u0159\1\76\2\0\2\76\1\u0159\2\0"+ - "\1\76\1\300\1\0\1\300\1\0\3\76\4\0\2\76"+ - "\1\0\5\76\2\u0159\12\76\7\0\1\u0159\1\0\1\u0159"+ - "\33\0\1\u0159\5\0\1\u0159\26\0\2\u0159\16\0\1\4"+ - "\6\5\1\0\12\5\1\u01d7\4\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\310\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\337\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\5\5\1\u0142\11\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\16\5\1\u01d8\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5"+ - "\1\u0111\6\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5"+ - "\1\u01d9\13\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5"+ - "\1\u0198\7\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5"+ - "\1\u0165\6\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\u01da\10\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5"+ - "\1\u0111\7\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\1\5\1\u0111\17\5\4\0\1\4\6\5\1\0\13\5"+ - "\1\174\3\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\13\5"+ - "\1\324\3\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\13\5"+ - "\1\u0111\3\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5"+ - "\1\u01db\12\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5"+ - "\1\u019c\12\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\u0111\2\5\1\u0111\5\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\u01dc\20\5\4\0\1\4"+ - "\6\5\1\0\6\5\1\u0111\2\5\1\u0111\1\5\1\174"+ - "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\1\u01dc\20\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u0141"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\310"+ - "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\15\5\1\u01a2"+ - "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\1\u01dd"+ - "\20\5\4\0\1\4\6\5\1\0\14\5\1\u01de\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\u01df\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\13\5\1\u01dd\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\3\5\1\u01e0\13\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\u01e1\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\u01e2\6\5\1\u01e3"+ - "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u01e4"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u01e5"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\7\5"+ - "\1\u0180\11\5\4\0\1\4\6\5\1\0\5\5\1\u01e6"+ - "\11\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\2\5\1\u0111\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01e7\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\1\5\1\u017f\1\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\12\5\1\316\4\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\16\5\1\u0169\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u012a\12\5\1\u0103"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\1\5\1\u015d\4\5\1\0"+ - "\10\5\1\u01e8\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\u01e9\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\13\5\1\u0114\3\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\u0165\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\11\5\1\u01ea\5\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\6\5\1\u01eb\1\5\1\334\2\5\1\u01ec\1\312"+ - "\1\5\1\u0169\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\u0165\1\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\u01ed\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\1\5\1\u01ee\1\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\u01ef\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\2\5\1\u01f0\14\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\3\5\1\u01f1\13\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\u01f2\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u01f3\1\0\21\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\u01f4\10\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\1\u0141\2\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u01f5"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u01f6"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u01f7"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u01f8"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\5\1\u01f9\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\3\5\1\u01fa\13\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01b3\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\130\1\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\130\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\15\5\1\u01fb\1\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\u01fc\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\15\5\1\130\1\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\316\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\14\5\1\u015c\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\u01fd\15\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\u01fe\13\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\u01ff\1\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\11\5\1\u01a0\5\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\312\13\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\5\5\1\u0111\13\5\4\0\1\4\6\5"+ - "\1\0\4\5\1\u0200\12\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\1\5\1\312\15\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\13\5\1\u01ec\2\5\1\u0169\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\u0165\1\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\1\5\1\u014b\1\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\4\5\1\u01a2\12\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\u01aa\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\10\5\1\u0201\6\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\3\u011f"+ - "\4\212\1\u011f\3\212\6\u011f\1\212\2\u011f\1\212\6\u011f"+ - "\1\214\5\u011f\1\212\1\u011f\1\0\2\u011f\2\212\5\u011f"+ - "\1\212\20\u011f\2\212\2\u011f\2\212\5\u011f\1\212\4\u011f"+ - "\3\217\4\42\1\217\3\42\6\217\1\42\2\217\1\42"+ - "\13\217\1\u0127\1\42\2\217\1\u0128\1\217\2\42\5\217"+ - "\1\42\20\217\2\42\2\217\2\42\5\217\1\42\4\217"+ - "\1\4\6\5\1\0\12\5\1\u0202\4\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\253\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\u0203\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\7\5\1\u0204\7\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\7\5\1\u0205\7\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\1\5\1\130\17\5\4\0\1\4\6\5"+ - "\1\0\11\5\1\u0111\5\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\7\76\1\0"+ - "\12\76\1\u0206\4\76\11\0\3\76\2\0\3\76\2\0"+ - "\1\u0206\1\76\1\0\1\76\1\0\3\76\4\0\2\76"+ - "\1\0\21\76\4\0\7\76\1\0\5\76\1\u0206\11\76"+ - "\11\0\3\76\2\0\3\76\2\0\1\76\1\u0206\1\0"+ - "\1\76\1\0\3\76\4\0\2\76\1\0\21\76\4\0"+ - "\7\4\1\0\3\4\1\u01b7\13\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\4\0\7\4\1\0\2\4\1\u0207"+ - "\14\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0"+ - "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0"+ - "\7\4\1\0\1\4\1\u0207\15\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\4\0\7\4\1\0\10\4\1\u0208"+ - "\6\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0"+ - "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0"+ - "\7\4\1\0\1\4\1\u01b7\15\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\4\0\7\4\1\0\5\4\1\u0209"+ - "\11\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0"+ - "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0"+ - "\7\4\1\0\15\4\1\u020a\1\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\16\0\1\u013d\113\0\1\u020b\120\0"+ - "\1\u020c\2\0\1\u020d\116\0\1\u020e\106\0\1\u020f\3\0"+ - "\1\u01c4\122\0\1\u0210\110\0\1\u020d\111\0\1\u020f\131\0"+ - "\1\u0211\71\0\1\4\6\5\1\0\5\5\1\u019d\11\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\3\5\1\u0212\13\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\14\5\1\u01f2\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\u0213\2\5\1\u01db"+ - "\1\u0214\12\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5"+ - "\1\u01ea\5\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u0215\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\u0216\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\u0217\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\u0218\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\16\5\1\u0219\11\0\1\4\2\5\2\0\1\5\1\u0111"+ - "\1\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\36\0\1\u021a\101\0"+ - "\1\u014d\51\0\1\u01cf\26\0\1\u01d1\1\u021b\4\u01d1\1\u021b"+ - "\17\u01d1\3\u021b\1\u01d1\1\u021b\2\0\2\u021b\1\0\2\u01d1"+ - "\2\0\3\u01d1\1\0\1\u021b\2\u01d1\1\u021b\1\u01d1\1\0"+ - "\1\u021b\1\u01d1\5\u021b\2\u01d1\1\u021b\21\u01d1\1\0\1\u021b"+ - "\34\0\1\u021c\101\0\1\u0151\51\0\1\u01d2\26\0\1\u01d4"+ - "\1\u021d\4\u01d4\1\u021d\17\u01d4\3\u021d\1\u01d4\1\u021d\2\0"+ - "\2\u021d\1\0\2\u01d4\2\0\3\u01d4\1\0\1\u021d\2\u01d4"+ - "\1\u021d\1\u01d4\1\0\1\u021d\1\u01d4\5\u021d\2\u01d4\1\u021d"+ - "\21\u01d4\1\0\1\u021d\2\0\1\4\5\5\1\u021e\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\20\5"+ - "\1\u021e\4\0\1\4\6\5\1\0\5\5\1\u01ed\11\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\3\5\1\u021f\13\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\11\5\1\u0220\5\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\130\16\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\6\5\1\u0111\2\5\1\u0111"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u0165"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u0141"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u0103"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\312"+ - "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\312"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\12\5\1\u01f2"+ - "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\u0221\1\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\13\5\1\u01da\3\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\13\5\1\u0222\3\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0223\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\164"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u0224"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\130"+ - "\14\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\13\5\1\u01ec"+ - "\1\312\1\5\1\u0169\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\u0165"+ - "\1\5\1\0\21\5\4\0\1\4\6\5\1\0\13\5"+ - "\1\u0114\3\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\2\5\1\u0111\16\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\130"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u0166"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\u0111\4\5"+ - "\1\u0111\4\5\1\u0103\4\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\5\1\u0111\17\5\4\0"+ - "\1\4\6\5\1\0\7\5\1\u01f2\7\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\11\5\1\u01f9\5\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\16\5\1\u0111\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\u0225\15\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\u0226\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\4\5\1\u0227\12\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u0228\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u0229\1\0\21\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\u022a\15\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\1\5\1\u022b\4\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5"+ - "\1\u022c\12\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5"+ - "\1\u022d\12\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5"+ - "\1\u0111\5\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\1\u01b3\20\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\u022e\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\130\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\14\5\1\u0165\2\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\1\u0111\2\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\1\u022f\20\5\4\0\1\4\6\5\1\0\14\5\1\u0230"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\152"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\15\5\1\u0111"+ - "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u01da"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\7\4\1\0\7\4\1\u0207\7\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4"+ - "\1\0\12\4\1\u0231\4\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\4\0\7\4\1\0\16\4\1\u0232\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\17\0\1\u020c\114\0"+ - "\1\u0233\114\0\1\u0233\124\0\1\u0234\106\0\1\u020c\121\0"+ - "\1\u0235\125\0\1\u0236\70\0\1\4\6\5\1\0\5\5"+ - "\1\u0141\11\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\u01e8\15\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\14\5"+ - "\1\u0237\2\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5"+ - "\1\u0238\6\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\u0111"+ - "\4\5\1\u0111\4\5\1\u0103\3\5\1\137\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\1\5\1\u0111"+ - "\17\5\4\0\1\4\6\5\1\0\16\5\1\u0219\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\1\5\1\u0111\1\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\36\0\1\u01d1\115\0\1\u01d4\63\0\1\4\1\5\1\u0239"+ - "\4\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\u023a\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\3\5\1\u01ed\13\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\14\5\1\u0111\2\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\14\5\1\u023b\2\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\u023c\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\14\5\1\u0212\2\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\u023d\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\u023e\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\316\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\u023e\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\u0165\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\u023f\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\12\5\1\310\4\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\u012a\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u0240\1\0\21\5\4\0\1\4\6\5\1\0\11\5"+ - "\1\331\5\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\5\5"+ - "\1\130\11\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\7\4\1\0\1\u01b8\16\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4"+ - "\1\0\14\4\1\u0207\2\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\23\0\1\u0233\120\0\1\u0241\121\0\1\u0242"+ - "\67\0\1\4\6\5\1\0\16\5\1\310\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\16\5\1\137\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\1\5\1\u0243\4\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\11\5\1\310\5\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\10\5\1\u01a4\6\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\13\5\1\u0244\3\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\7\5\1\130\7\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\14\5\1\u0245\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\u01db\15\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\14\0\1\u020d"+ - "\131\0\1\u0233\71\0\1\4\6\5\1\0\7\5\1\u0246"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u01ed"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u0247"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\5\1\u023a\1\0"+ - "\21\5\4\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[43134]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\26\1\1\11\6\1\1\11\6\1\1\11\1\1"+ - "\2\11\7\1\1\11\6\1\1\11\114\1\1\0\2\11"+ - "\2\1\1\11\3\1\1\11\17\1\1\0\14\1\2\0"+ - "\1\11\4\0\1\11\2\0\6\1\1\0\142\1\1\11"+ - "\7\1\1\11\21\1\6\0\14\1\10\0\6\1\1\0"+ - "\142\1\4\0\1\1\4\0\11\1\2\0\1\1\2\0"+ - "\67\1\7\0\10\1\4\0\25\1\1\11\3\0\12\1"+ - "\2\0\5\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[583]; - 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 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; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** 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 EOL_COMMENT = 2; + public static final int YYINITIAL = 0; + public static final int MLC = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\50\1\43\1\0\1\50\1\56\22\0\1\50\1\36\1\44" + + "\1\57\1\60\1\65\1\113\1\33\1\31\1\31\1\51\1\7\1\64" + "\1\37\1\54\1\32\1\47\1\77\1\76\1\41\4\5\2\3\1\70" + + "\1\63\1\34\1\30\1\35\1\27\1\61\1\103\1\4\1\111\1\102" + "\1\6\1\55\2\1\1\105\2\1\1\53\1\106\1\107\4\1\1\110" + + "\1\104\1\52\2\1\1\42\2\1\1\62\1\40\1\62\1\115\1\2" + "\1\0\1\24\1\46\1\21\1\10\1\11\1\12\1\25\1\66\1\13" + + "\1\100\1\72\1\15\1\26\1\14\1\20\1\23\1\101\1\17\1\16" + "\1\67\1\22\1\45\1\71\1\74\1\73\1\75\1\112\1\114\1\112" + + "\1\64\uff81\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 = "\3\0\1\1\2\2\1\3\1\4\17\2\2\4\1\5" + "\1\4\1\6\3\4\1\2\1\7\1\10\2\2\1\3" + + "\1\11\1\4\2\1\1\2\1\4\3\2\2\4\2\12" + "\1\13\5\12\1\14\1\15\2\12\1\2\2\16\2\3" + "\1\17\2\2\1\20\22\2\1\20\56\2\1\0\1\21" + + "\1\22\2\23\1\24\1\6\2\10\1\25\10\2\1\16" + "\6\1\1\0\14\2\2\0\1\26\4\0\1\27\2\0" + "\5\2\1\3\1\0\1\3\1\16\1\17\3\2\1\30" + + "\6\2\1\30\23\2\1\31\16\2\1\30\1\2\1\30" + "\40\2\1\30\15\2\1\6\1\32\1\6\3\23\1\6" + "\2\10\1\33\7\2\1\34\4\1\1\35\4\1\6\0" + + "\14\2\10\0\5\2\1\17\1\0\37\2\1\31\45\2" + "\1\30\2\2\1\30\7\2\1\6\1\10\7\2\2\34" + "\7\1\4\0\1\35\4\0\11\2\2\0\1\36\2\0" + + "\1\37\44\2\1\20\14\2\1\34\1\35\3\1\7\0" + "\10\2\4\0\11\2\1\40\11\2\2\1\1\35\3\0" + "\12\2\2\0\1\35\4\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[583]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int[] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do + result[j++] = value; + while (--count > 0); + } + return j; + } + + /** + * Translates a state to a row index in the transition table + */ + private static final int[] ZZ_ROWMAP = zzUnpackRowMap(); + private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222" + + "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492" + + "\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u06b4\0\u0702" + + "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u0888\0\u08d6\0\u0924\0\352" + + "\0\u079e\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa\0\u0af8\0\u079e" + + "\0\u0b46\0\u079e\0\u079e\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc" + + "\0\u0d1a\0\u0d68\0\u079e\0\u0db6\0\u0e04\0\u0e52\0\u0ea0\0\u0eee" + + "\0\u0f3c\0\u079e\0\u0f8a\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110" + + "\0\u115e\0\u11ac\0\u11fa\0\u1248\0\u1296\0\u12e4\0\u1332\0\u1380" + + "\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506\0\u1554\0\u15a2\0\u15f0" + + "\0\u163e\0\u168c\0\u16da\0\u1728\0\u1776\0\u17c4\0\u1812\0\u0138" + + "\0\u1860\0\u18ae\0\u18fc\0\u194a\0\u1998\0\u19e6\0\u1a34\0\u1a82" + + "\0\u1ad0\0\u1b1e\0\u1b6c\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u1cf2" + + "\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6\0\u1f14\0\u1f62" + + "\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u2136\0\u2184\0\u21d2" + + "\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358\0\u23a6\0\u23f4\0\u2442" + + "\0\u2490\0\u24de\0\u252c\0\u257a\0\u25c8\0\u2616\0\u2664\0\u079e" + + "\0\u079e\0\u26b2\0\u2700\0\u079e\0\u274e\0\u279c\0\u27ea\0\u079e" + + "\0\u2838\0\u2886\0\u28d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u2a5a" + + "\0\u2aa8\0\u2af6\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca" + + "\0\u2d18\0\u2d66\0\u2db4\0\u2e02\0\u2e50\0\u2e9e\0\u2eec\0\u2f3a" + + "\0\u2f88\0\u2fd6\0\u3024\0\u3072\0\u30c0\0\u310e\0\u079e\0\u315c" + + "\0\u31aa\0\u31f8\0\u3246\0\u079e\0\u3294\0\u32e2\0\u3330\0\u337e" + + "\0\u33cc\0\u341a\0\u3468\0\u34b6\0\u3504\0\u1074\0\u3552\0\u1074" + + "\0\u35a0\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u3726\0\u3774\0\u37c2" + + "\0\u3810\0\u385e\0\u38ac\0\u38fa\0\u3948\0\u3996\0\u39e4\0\u3a32" + + "\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54\0\u3ca2" + + "\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76\0\u0138\0\u3ec4" + + "\0\u3f12\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098\0\u40e6\0\u4134" + + "\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4" + + "\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614" + + "\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a\0\u47e8\0\u4836\0\u4884" + + "\0\u48d2\0\u4920\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6\0\u4af4" + + "\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u4c7a\0\u4cc8\0\u4d16\0\u4d64" + + "\0\u0138\0\u4db2\0\u4e00\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38\0\u4f86" + + "\0\u4fd4\0\u5022\0\u5070\0\u50be\0\u510c\0\u515a\0\u51a8\0\u079e" + + "\0\u51f6\0\u5244\0\u5292\0\u52e0\0\u532e\0\u537c\0\u53ca\0\u079e" + + "\0\u5418\0\u5466\0\u54b4\0\u5502\0\u5550\0\u559e\0\u55ec\0\u563a" + + "\0\u5688\0\u56d6\0\u5724\0\u5772\0\u57c0\0\u580e\0\u585c\0\u58aa" + + "\0\u58f8\0\u5946\0\u5994\0\u59e2\0\u5a30\0\u5a7e\0\u5acc\0\u5b1a" + + "\0\u5b68\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0\0\u5cee\0\u5d3c\0\u5d8a" + + "\0\u5dd8\0\u5e26\0\u5e74\0\u5ec2\0\u5f10\0\u5f5e\0\u5fac\0\u5ffa" + + "\0\u6048\0\u6096\0\u60e4\0\u6132\0\u6180\0\u61ce\0\u621c\0\u626a" + + "\0\u62b8\0\u6306\0\u6354\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da" + + "\0\u6528\0\u6576\0\u65c4\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u674a" + + "\0\u6798\0\u67e6\0\u6834\0\u6882\0\u68d0\0\u691e\0\u696c\0\u69ba" + + "\0\u6a08\0\u6a56\0\u6aa4\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a" + + "\0\u6c78\0\u6cc6\0\u6d14\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a" + + "\0\u6ee8\0\u6f36\0\u6f84\0\u6fd2\0\u7020\0\u706e\0\u70bc\0\u710a" + + "\0\u7158\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u72de\0\u732c\0\u737a" + + "\0\u73c8\0\u7416\0\u7464\0\u74b2\0\u7500\0\u754e\0\u759c\0\u75ea" + + "\0\u7638\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c\0\u785a" + + "\0\u78a8\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u7a2e\0\u7a7c\0\u7aca" + + "\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a" + + "\0\u7d88\0\u7dd6\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c\0\u7faa" + + "\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc\0\u821a" + + "\0\u8268\0\u82b6\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c\0\u848a" + + "\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u8610\0\u865e\0\u86ac\0\u86fa" + + "\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u88ce\0\u891c\0\u896a" + + "\0\u89b8\0\u43a4\0\u8a06\0\u8a54\0\u8aa2\0\u8af0\0\u8b3e\0\u8b8c" + + "\0\u8bda\0\u8c28\0\u8c76\0\u8cc4\0\u8d12\0\u8d60\0\u8dae\0\u8dfc" + + "\0\u8e4a\0\u8e98\0\u8ee6\0\u8f34\0\u8f82\0\u8fd0\0\u901e\0\u906c" + + "\0\u90ba\0\u9108\0\u9156\0\u91a4\0\u91f2\0\u9240\0\u928e\0\u92dc" + + "\0\u932a\0\u9378\0\u93c6\0\u9414\0\u9462\0\u94b0\0\u94fe\0\u954c" + + "\0\u959a\0\u95e8\0\u9636\0\u9684\0\u96d2\0\u1074\0\352\0\u9720" + + "\0\u976e\0\u97bc\0\u980a\0\u9858\0\u98a6\0\u98f4\0\u9942\0\u9990" + + "\0\u99de\0\u9a2c\0\u9a7a\0\u9ac8\0\u9b16\0\u9b64\0\u9bb2\0\u368a" + + "\0\u9c00\0\u9c4e\0\u8748\0\u9c9c\0\u8832\0\u9cea\0\u9d38\0\u9d86" + + "\0\u9dd4\0\u9e22\0\u9e70\0\u9ebe\0\u9f0c\0\u9f5a\0\u0138\0\u9fa8" + + "\0\u9ff6\0\ua044\0\ua092\0\ua0e0\0\ua12e\0\ua17c\0\ua1ca\0\ua218" + + "\0\ua266\0\ua2b4\0\u079e\0\ua302\0\ua350\0\ua39e\0\ua3ec\0\ua43a" + + "\0\ua488\0\u932a\0\ua4d6\0\ua524\0\ua572\0\ua5c0\0\ua60e\0\ua65c" + + "\0\ua6aa\0\ua6f8\0\u0138\0\ua746\0\ua794\0\ua7e2\0\ua830"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[583]; + 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 = "\1\4\1\5\1\6\1\7\1\5\1\7\1\5\1\10" + "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20" + + "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30" + "\1\31\1\32\1\33\1\34\1\35\1\36\1\31\1\37" + + "\1\40\1\7\1\5\1\41\1\42\1\43\1\44\1\45" + "\1\46\1\31\2\5\1\47\1\5\1\50\1\51\2\4" + "\1\32\1\52\1\53\1\31\1\5\1\54\1\53\1\55" + + "\4\5\2\7\1\5\1\56\10\5\1\32\1\57\1\60" + "\1\31\12\61\1\62\30\61\1\63\5\61\1\64\14\61" + + "\1\65\2\61\1\66\24\61\12\67\1\70\25\67\1\71" + "\2\67\1\72\22\67\1\73\2\67\1\74\24\67\7\4" + + "\1\0\17\4\11\0\3\4\2\0\3\4\2\0\2\4" + "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\1\5\1\75\4\5\1\0\17\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\3\76" + "\1\7\1\76\1\7\1\77\1\0\1\76\1\77\3\76" + + "\1\100\4\76\1\101\4\76\11\0\1\76\1\7\1\76" + "\2\0\2\76\1\7\2\0\1\101\1\100\1\102\1\76" + + "\1\0\3\76\4\0\2\76\1\0\5\76\2\7\12\76" + "\13\0\1\53\20\0\1\53\65\0\1\4\6\5\1\0" + "\1\5\1\103\1\5\1\104\4\5\1\105\6\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\2\5" + "\1\106\16\5\4\0\1\4\6\5\1\0\4\5\1\107" + + "\1\110\1\5\1\111\7\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\3\5\1\112\15\5\4\0" + + "\1\4\6\5\1\0\1\5\1\113\1\114\2\5\1\115" + "\1\116\1\117\1\120\1\121\1\5\1\122\1\123\1\124" + + "\1\125\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + "\1\126\1\0\1\127\20\5\4\0\1\4\6\5\1\0" + + "\2\5\1\130\1\5\1\131\1\5\1\132\10\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\133\12\5\1\134" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\135\7\5" + "\1\136\3\5\1\137\2\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\1\5\1\140\1\5\1\141\2\5\1\142\1\143" + "\1\5\1\144\1\5\1\145\3\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\146\1\147\1\0\1\150\1\5" + "\1\151\5\5\1\152\10\5\4\0\1\4\6\5\1\0" + + "\1\5\1\153\12\5\1\154\2\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\2\5\1\155\10\5\1\156\3\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\157\3\5\1\160" + "\2\5\1\161\3\5\1\162\2\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\1\163\1\164\1\0\21\5\4\0" + "\1\4\6\5\1\0\4\5\1\165\1\5\1\166\10\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\5\1\167\5\5" + "\1\170\1\171\1\5\1\172\4\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\6\5\1\173\2\5\1\174\1\175\4\5" + + "\11\0\1\4\2\5\2\0\1\5\1\176\1\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\177\1\0\21\5\4\0\1\4\6\5\1\0" + + "\1\5\1\200\6\5\1\175\5\5\1\201\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\1\5\1\202\6\5\1\203\1\5" + "\1\204\1\5\1\205\2\5\11\0\1\4\2\5\2\0" + "\1\5\1\206\1\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\1\5\1\201" + "\17\5\33\0\1\207\116\0\1\53\233\0\1\53\1\0" + + "\1\210\16\0\1\211\44\0\27\212\1\213\3\212\1\214" + "\4\212\1\215\2\212\1\0\52\212\30\0\1\53\3\0" + + "\1\31\111\0\1\53\4\0\1\31\110\0\1\53\6\0" + "\1\53\56\0\40\42\1\216\2\42\1\217\1\220\51\42" + + "\1\4\6\5\1\0\2\5\1\221\1\222\2\5\1\221" + "\1\5\1\223\2\5\1\145\1\224\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\1\225\20\5" + "\4\0\1\4\6\5\1\0\6\5\1\226\1\227\7\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\230" + "\1\0\21\5\4\0\3\76\1\7\1\76\1\7\1\77" + "\1\0\1\76\1\77\3\76\1\100\4\76\1\101\4\76" + + "\11\0\1\76\1\7\1\231\2\0\2\76\1\7\2\0" + "\1\101\1\100\1\102\1\76\1\0\3\76\4\0\2\76" + + "\1\0\3\76\1\231\1\76\2\7\12\76\54\0\1\46" + "\50\0\1\102\1\0\1\102\33\0\1\102\5\0\1\102" + + "\26\0\2\102\16\0\7\4\1\0\1\232\1\233\1\4" + "\1\234\1\4\1\235\4\4\1\236\1\237\3\4\11\0" + + "\3\4\2\0\3\4\1\240\1\0\2\4\1\0\1\4" + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\1\4" + "\6\5\1\0\1\5\1\241\1\5\1\242\3\5\1\243" + + "\1\244\3\5\1\245\1\5\1\246\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\247\1\5\1\0\2\5\1\250" + + "\16\5\4\0\1\4\6\5\1\0\6\5\1\142\2\5" + "\1\251\1\5\1\145\2\5\1\252\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\1\253\1\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\6\5\1\254\10\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\34\0" + "\1\53\62\0\1\53\32\0\1\53\63\0\1\53\1\0" + "\12\61\1\0\30\61\1\0\5\61\1\0\14\61\1\0" + + "\2\61\1\0\24\61\13\0\1\255\53\0\1\256\60\0" + "\1\257\152\0\1\260\117\0\1\261\24\0\12\67\1\0" + + "\25\67\1\0\2\67\1\0\22\67\1\0\2\67\1\0" + "\24\67\13\0\1\262\53\0\1\263\26\0\43\264\1\0" + + "\52\264\67\0\1\265\117\0\1\266\24\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\1\5\1\267\1\0\1\270\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\11\5\1\271\1\5\1\272\3\5" + "\1\273\1\5\4\0\7\76\1\0\17\76\11\0\3\76" + "\2\0\3\76\2\0\2\76\1\0\1\76\1\0\3\76" + + "\4\0\2\76\1\0\21\76\4\0\3\76\1\274\1\76" + "\1\274\1\76\1\275\17\76\10\0\1\275\1\76\1\274" + + "\1\76\2\0\2\76\1\274\2\0\2\76\1\0\1\76" + "\1\0\3\76\4\0\2\76\1\0\5\76\2\274\12\76" + + "\4\0\7\76\1\0\12\76\1\276\4\76\11\0\3\76" + "\2\0\3\76\2\0\1\276\1\76\1\0\1\76\1\0" + "\3\76\4\0\2\76\1\0\21\76\4\0\7\76\1\0" + + "\5\76\1\276\11\76\11\0\3\76\2\0\3\76\2\0" + "\1\76\1\276\1\0\1\76\1\0\3\76\4\0\2\76" + + "\1\0\21\76\4\0\3\76\1\102\1\76\1\102\1\277" + "\1\0\1\76\1\277\1\300\2\76\1\300\11\76\11\0" + + "\1\76\1\102\1\76\2\0\2\76\1\102\2\0\1\76" + "\1\300\1\0\1\300\1\0\3\76\4\0\2\76\1\0" + + "\5\76\2\102\12\76\4\0\1\4\6\5\1\0\2\5" + "\1\301\2\5\1\302\11\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\2\5\1\303\14\5\11\0\1\4\2\5\2\0" + "\1\304\2\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\12\5\1\305\4\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\4\5\1\306\12\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\12\5\1\307\4\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\6\5\1\310\10\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\7\5\1\311\7\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\3\5\1\312\7\5\1\313\3\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\1\5\1\314\1\0" + "\21\5\4\0\1\4\6\5\1\0\7\5\1\315\1\316" + "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\5\5\1\317" + "\11\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\320" + "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\321" + "\7\5\1\144\5\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\322\1\5\1\323\13\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\7\5\1\130\3\5\1\324\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\5\5\1\325\11\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\326\2\5\1\327" + + "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\5\5\1\330" + + "\11\5\11\0\1\4\2\5\2\0\1\5\1\331\1\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\1\5\1\332\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\10\5\1\333\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\1\5\1\334\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\6\5\1\142\1\335\3\5\1\145\3\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\5\5\1\336\11\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\5\1\337\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\340\4\5\1\341\1\342" + "\2\5\1\343\1\344\1\345\1\346\1\347\1\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\3\5" + "\1\350\15\5\4\0\1\4\6\5\1\0\17\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\1\130" + "\20\5\4\0\1\4\6\5\1\0\16\5\1\351\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\352\1\5\1\353" + "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\354" + "\4\5\1\355\3\5\1\356\1\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\5" + + "\1\331\1\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\5\1\357\1\0\21\5\4\0\1\4\6\5" + "\1\0\4\5\1\360\10\5\1\361\1\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\4\5\1\362" + "\14\5\4\0\1\4\6\5\1\0\11\5\1\144\5\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\14\5\1\363\2\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\14\5\1\364\2\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\7\5\1\326\7\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\10\5\1\365\6\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\7\5\1\366\4\5" + + "\1\367\2\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5" + + "\1\370\2\5\1\142\4\5\1\145\3\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\6\5\1\371\10\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\7\5\1\312\7\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\3\5\1\372\1\373\7\5\1\205" + "\1\374\1\375\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\5\1\376\1\0\1\377\20\5\4\0\1\4\6\5" + "\1\0\3\5\1\u0100\1\333\12\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\2\5\1\u0101\14\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\5\1\u0102\15\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\3\5\1\u0103\13\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\5\1\u0104\6\5\1\u0105\3\5\1\u0106" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\u0107" + "\1\5\1\360\10\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\5\5\1\u0108\1\310\10\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\5\1\u0109\1\0\21\5\4\0\1\4" + "\6\5\1\0\14\5\1\u010a\2\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\3\5\1\242\13\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\3\5\1\u010b\2\5\1\u010c\6\5\1\u010d" + + "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u010e" + + "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\315" + + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u010f" + + "\4\5\1\u0110\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\1\u0111\20\5\4\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\1\5\1\u0112\1\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u0113\1\0\21\5\4\0\1\4\6\5\1\0" + + "\3\5\1\u0114\2\5\1\u0115\2\5\1\201\5\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\10\5\1\331\6\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\u0116\1\0\21\5\4\0" + + "\1\4\6\5\1\0\6\5\1\u0111\1\5\1\152\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0117\6\5" + "\1\u0118\3\5\1\u0119\2\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\5\1\u011a\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + + "\1\164\1\0\21\5\4\0\1\4\6\5\1\0\16\5" + "\1\u011b\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\316\16\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\5\1\u011c\1\0\21\5" + + "\4\0\1\4\6\5\1\0\5\5\1\u0108\11\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\5\5\1\324\1\u011d\1\u011e" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + + "\1\230\1\0\21\5\34\0\10\53\56\0\33\u011f\1\u0120" + "\7\u011f\1\0\101\u011f\1\u0121\3\u011f\1\u0120\7\u011f\1\0" + + "\57\u011f\1\u0122\3\u011f\2\212\1\u011f\1\212\2\u011f\1\212" + "\4\u011f\1\212\2\u011f\1\212\3\u011f\1\u0123\4\u011f\1\212" + + "\1\u0124\1\u0125\1\0\3\212\1\u0124\17\u011f\1\212\4\u011f" + "\1\u0125\1\u011f\2\u0124\16\u011f\5\217\1\42\3\217\2\42" + + "\1\217\1\42\2\217\1\42\4\217\1\42\2\217\1\42" + "\3\217\1\42\4\217\2\42\1\u0126\1\0\4\42\17\217" + + "\1\42\4\217\1\u0126\1\217\2\42\56\217\1\u0127\3\217" + "\1\u0128\51\217\1\4\6\5\1\0\13\5\1\145\3\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\1\225\20\5\4\0\1\4\6\5\1\0\7\5\1\u0129" + + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u012a" + + "\1\5\1\u012b\11\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\1\5\1\u012c" + + "\4\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\13\5\1\145\3\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\1\5\1\u012d\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\1\5\1\u012e\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\10\5\1\u012f\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\3\76\4\u0130\1\0" + + "\3\u0130\6\76\1\u0130\2\76\1\u0130\2\76\11\0\1\76" + "\1\u0130\1\76\2\0\1\76\2\u0130\2\0\2\76\1\0" + + "\1\u0130\1\0\3\76\4\0\2\76\1\0\5\76\2\u0130" + "\2\76\2\u0130\5\76\1\u0130\4\0\7\4\1\0\1\4" + + "\1\u0131\15\4\11\0\3\4\2\0\3\4\2\0\2\4" + "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4" + + "\4\0\7\4\1\0\4\4\1\u0132\1\u0133\1\4\1\u0134" + "\7\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0" + "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0" + + "\7\4\1\0\2\4\1\u0135\1\4\1\u0136\12\4\11\0" + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0" + + "\3\4\1\u0137\13\4\11\0\3\4\2\0\3\4\2\0" + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + "\21\4\4\0\7\4\1\0\4\4\1\u0138\12\4\11\0" + + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0" + "\7\4\1\u0139\7\4\11\0\3\4\2\0\3\4\2\0" + + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + "\21\4\14\0\1\u013a\1\u013b\1\0\1\u013c\1\0\1\u013d" + + "\4\0\1\u013e\1\u013f\24\0\1\240\45\0\1\4\6\5" + "\1\0\16\5\1\u0140\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\16\5\1\u0141\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\12\5" + "\1\u0142\4\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\2\5\1\130\16\5\4\0\1\4\6\5" + "\1\0\5\5\1\341\4\5\1\344\4\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\4\5\1\360\12\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\13\5\1\u0143\3\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\3\5\1\u0144\3\5\1\u0145\7\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\13\5\1\u0146\3\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\6\5\1\u0147\1\u0148" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\u0149" + "\1\u014a\1\0\21\5\4\0\1\4\6\5\1\0\1\5" + "\1\202\15\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5" + "\1\u014b\13\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5" + "\1\152\6\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\21\0\1\u014c\123\0\1\u014d\161\0" + + "\1\u014e\117\0\1\u014f\41\0\1\u0150\123\0\1\u0151\161\0" + "\1\u0152\117\0\1\u0153\24\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\14\5\1\u0154\4\5\4\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\14\5\1\u0155\4\5\4\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\12\5\1\u0156\6\5\4\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\14\5\1\u0157\4\5\4\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\13\5\1\u0158\5\5\4\0\3\76\1\274\1\76\1\274" + + "\1\76\1\0\5\76\1\100\4\76\1\101\4\76\11\0" + "\1\76\1\274\1\76\2\0\2\76\1\274\2\0\1\101" + + "\1\100\1\0\1\76\1\0\3\76\4\0\2\76\1\0" + "\5\76\2\274\12\76\7\0\1\274\1\0\1\274\33\0" + + "\1\274\5\0\1\274\26\0\2\274\16\0\3\76\1\u0159" + "\1\76\1\u0159\1\76\1\u015a\17\76\10\0\1\u015a\1\76" + + "\1\u0159\1\76\2\0\2\76\1\u0159\2\0\2\76\1\0" + "\1\76\1\0\3\76\4\0\2\76\1\0\5\76\2\u0159" + + "\12\76\4\0\1\4\6\5\1\0\14\5\1\u015b\2\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u015c\15\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\2\5\1\201\14\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\1\5\1\u015d\4\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\1\5\1\u015e\1\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\14\5\1\u015f\2\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\16\5\1\130\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\130\15\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\4\5\1\u0160\12\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\u0111\1\0\21\5\4\0" + + "\1\4\6\5\1\0\5\5\1\u0161\11\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\1\5\1\u0162\15\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\7\5\1\u0163\7\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\2\5\1\u0111\14\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\12\5\1\u0164\4\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\10\5\1\u0165\3\5\1\u015d\2\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0166\15\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u0167" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u0111" + "\6\5\1\u0168\3\5\1\333\2\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\3\5\1\u0169\15\5" + "\4\0\1\4\6\5\1\0\1\5\1\u016a\15\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\u0114\15\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\10\5\1\u0100\6\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\3\5\1\u016b\13\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\1\5\1\u016c\1\0\21\5\4\0" + "\1\4\6\5\1\0\6\5\1\u0142\10\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\6\5\1\u0111\10\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\1\5\1\u016d\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\u0111\16\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\5\5\1\u0103\11\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\3\5\1\u016e\13\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\3\5\1\u016f\13\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\3\5\1\u0170\13\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\10\5\1\u0171\6\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\13\5\1\u0172\3\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\4\5\1\u0173\12\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\13\5\1\u0174\3\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\7\5\1\u0175\2\5\1\u0176\4\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\5\5\1\u0177\11\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\7\5\1\u0178\7\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\340\16\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\5\1\u0179\15\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\3\5\1\u0169\15\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\304" + "\2\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\15\5\1\u017a\1\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\14\5\1\u017b\2\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\6\5\1\u017c\12\5\4\0\1\4\6\5" + "\1\0\5\5\1\u017d\11\5\11\0\1\4\2\5\2\0" + + "\1\u017e\1\u017f\1\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\7\5\1\u0180" + "\11\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\u0111\1\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\4\5\1\u0181\12\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\u0182\15\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\4\5\1\333\12\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\4\5\1\316\12\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\u015d\7\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\167\1\201\1\5" + + "\1\u0183\1\324\1\u0184\1\u0185\1\5\1\u0186\1\u0187\1\u0188" + "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + "\1\u0189\1\0\3\5\1\u018a\15\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u018b\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + "\1\u0109\1\0\21\5\4\0\1\4\6\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u018c" + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\u018d" + "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\242" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\u018e" + "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\u018f" + "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\12\5\1\u0190" + "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\3\5\1\363" + "\13\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0141" + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0191" + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u0192" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\5\5\1\u0111" + "\11\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u0193" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u0166" + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0144" + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0194" + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + "\1\u0195\1\0\21\5\4\0\1\4\6\5\1\0\5\5" + "\1\u0196\11\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5" + "\1\u0197\5\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5" + "\1\337\7\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5" + "\1\u0198\6\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5" + "\1\u0199\13\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5" + "\1\u019a\15\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5" + "\1\u019b\12\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5" + "\1\u019c\12\5\11\0\1\4\2\5\2\0\1\u019d\2\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + "\1\u019e\1\0\21\5\4\0\1\4\6\5\1\0\5\5" + "\1\u019f\11\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5" + "\1\u0111\2\5\1\u01a0\5\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\1\u01a1\20\5\4\0\1\4" + "\6\5\1\0\4\5\1\u0111\12\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\5\1\152\15\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\10\5\1\130\6\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\3\5\1\u01a2\15\5\4\0\1\4" + "\6\5\1\0\2\5\2\u0111\1\5\1\u0111\11\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\4\5\1\u01a3\12\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\u01a4\4\5\1\u0111" + + "\2\5\1\u01a0\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\1\u01a1\20\5\4\0\1\4\6\5" + + "\1\0\6\5\1\u01a5\2\5\1\u01a6\4\5\1\375\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\14\5\1\u01a7\2\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\3\5\1\u01a8\3\5\1\u01a9" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + + "\1\u01aa\1\0\21\5\4\0\1\4\6\5\1\0\5\5" + "\1\324\11\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\5\1\230\1\0\21\5\4\0\33\u011f\1\214\7\u011f" + "\1\0\102\u011f\3\212\1\u0123\4\212\3\u011f\1\0\57\u011f" + + "\1\212\25\u011f\1\u0120\5\u011f\1\212\1\u011f\1\0\3\u011f" + "\1\212\26\u011f\2\212\16\u011f\33\0\1\u0120\62\0\5\u011f" + + "\1\u0122\25\u011f\1\u0120\5\u011f\1\u0122\1\u011f\1\0\3\u011f" + + "\1\u0122\26\u011f\2\u0122\21\u011f\4\u01ab\1\u011f\3\u01ab\6\u011f" + + "\1\u01ab\2\u011f\1\u01ab\6\u011f\1\214\5\u011f\1\u01ab\1\u011f" + + "\1\0\2\u011f\2\u01ab\5\u011f\1\u01ab\20\u011f\2\u01ab\2\u011f" + + "\2\u01ab\5\u011f\1\u01ab\4\u011f\3\217\4\u01ac\1\217\3\u01ac" + "\6\217\1\u01ac\2\217\1\u01ac\13\217\1\u0127\1\u01ac\2\217" + + "\1\u0128\1\217\2\u01ac\5\217\1\u01ac\20\217\2\u01ac\2\217" + "\2\u01ac\5\217\1\u01ac\47\217\1\0\52\217\1\4\6\5" + + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u01ad\1\0\21\5\4\0\1\4\6\5\1\0" + + "\1\337\16\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\14\5" + + "\1\u01ae\2\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5" + + "\1\363\4\5\1\u01af\5\5\1\u01b0\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\14\5\1\u01b1\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\14\5\1\u01b2\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\1\u01b3\20\5\4\0\3\76" + + "\4\u0130\1\0\3\u0130\2\76\1\u01b4\3\76\1\u0130\1\u01b5" + "\1\76\1\u0130\2\76\11\0\1\76\1\u0130\1\76\2\0" + + "\1\76\2\u0130\2\0\1\u01b5\1\u01b4\1\0\1\u0130\1\0" + "\3\76\4\0\2\76\1\0\5\76\2\u0130\2\76\2\u0130" + + "\5\76\1\u0130\4\0\7\4\1\0\2\4\1\235\14\4" + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4" + + "\1\0\1\u01b6\16\4\11\0\3\4\2\0\3\4\2\0" + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + "\21\4\4\0\7\4\1\0\3\4\1\u01b7\2\4\1\u01b8" + + "\10\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0" + "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0" + "\7\4\1\0\7\4\1\u01b9\7\4\11\0\3\4\2\0" + + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + "\2\4\1\0\21\4\4\0\7\4\1\0\1\u01ba\3\4" + "\1\u0138\12\4\11\0\3\4\2\0\3\4\2\0\2\4" + + "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4" + "\4\0\7\4\1\0\11\4\1\u01bb\5\4\11\0\3\4" + "\2\0\3\4\2\0\2\4\1\0\1\4\1\0\3\4" + + "\4\0\2\4\1\0\21\4\4\0\7\4\1\0\4\4" + "\1\u01b8\12\4\11\0\3\4\2\0\3\4\2\0\2\4" + "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4" + + "\4\0\7\4\1\0\1\u01ba\16\4\11\0\3\4\2\0" + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + "\2\4\1\0\21\4\4\0\7\4\1\0\14\4\1\u01bc" + + "\2\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0" + "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\15\0" + + "\1\u01bd\120\0\1\u01be\1\u01bf\1\0\1\u01c0\110\0\1\u01c1" + "\1\0\1\u01c2\114\0\1\u01c3\116\0\1\u01c4\120\0\1\u01c5" + + "\76\0\1\4\6\5\1\0\13\5\1\u01c6\3\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\u0111\15\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\337\15\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\2\5\1\u01c7\1\5\1\u01c8" + "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\130" + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\133" + "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u01c9" + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\201" + "\1\5\1\u0183\1\324\1\u0184\1\u01ca\1\5\1\u0186\1\5" + + "\1\u0188\3\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u01cb\1\0\3\5\1\u018a\15\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\5\1\u01cc\1\0\21\5\4\0\1\4\6\5" + + "\1\0\14\5\1\u01cd\2\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\10\5\1\u01ce\6\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\5\5\1\310\11\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\15\0\1\u014d\174\0" + + "\1\u01cf\50\0\1\u01d0\146\0\1\u01d1\52\0\1\u0151\174\0" + "\1\u01d2\50\0\1\u01d3\146\0\1\u01d4\41\0\1\4\6\5" + + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\16\5\1\u01d5\2\5\4\0\1\4\6\5" + + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\1\5\1\u01d5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\13\5\1\u01d5\5\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\15\5\1\u01d5\3\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\11\5\1\u01d6\7\5\4\0\3\76\1\u0159\1\76" + + "\1\u0159\1\76\1\0\2\76\1\300\2\76\1\300\11\76" + "\11\0\1\76\1\u0159\1\76\2\0\2\76\1\u0159\2\0" + + "\1\76\1\300\1\0\1\300\1\0\3\76\4\0\2\76" + "\1\0\5\76\2\u0159\12\76\7\0\1\u0159\1\0\1\u0159" + + "\33\0\1\u0159\5\0\1\u0159\26\0\2\u0159\16\0\1\4" + "\6\5\1\0\12\5\1\u01d7\4\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\5\1\310\1\0\21\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\337\1\0\21\5\4\0\1\4\6\5\1\0" + "\5\5\1\u0142\11\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\16\5\1\u01d8\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5" + "\1\u0111\6\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5" + "\1\u01d9\13\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5" + "\1\u0198\7\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5" + "\1\u0165\6\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5" + "\1\u01da\10\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5" + "\1\u0111\7\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\1\5\1\u0111\17\5\4\0\1\4\6\5\1\0\13\5" + "\1\174\3\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\13\5" + "\1\324\3\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\13\5" + "\1\u0111\3\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5" + "\1\u01db\12\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5" + "\1\u019c\12\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5" + "\1\u0111\2\5\1\u0111\5\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\1\u01dc\20\5\4\0\1\4" + "\6\5\1\0\6\5\1\u0111\2\5\1\u0111\1\5\1\174" + + "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\1\u01dc\20\5\4\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u0141" + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\310" + + "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\15\5\1\u01a2" + + "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\1\u01dd" + "\20\5\4\0\1\4\6\5\1\0\14\5\1\u01de\2\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\5\1\u01df\1\0\21\5" + "\4\0\1\4\6\5\1\0\13\5\1\u01dd\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\3\5\1\u01e0\13\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\4\5\1\u01e1\12\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\4\5\1\u01e2\6\5\1\u01e3" + + "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u01e4" + + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u01e5" + + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\7\5" + "\1\u0180\11\5\4\0\1\4\6\5\1\0\5\5\1\u01e6" + + "\11\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\2\5\1\u0111\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01e7\6\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + + "\2\5\2\0\1\5\1\u017f\1\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\12\5\1\316\4\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\16\5\1\u0169\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\u012a\12\5\1\u0103" + + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\1\5\1\u015d\4\5\1\0" + + "\10\5\1\u01e8\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\11\5\1\u01e9\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\13\5\1\u0114\3\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\5\1\u0165\1\0\21\5\4\0\1\4\6\5" + + "\1\0\11\5\1\u01ea\5\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\6\5\1\u01eb\1\5\1\334\2\5\1\u01ec\1\312" + "\1\5\1\u0169\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\u0165\1\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\11\5\1\u01ed\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\1\5\1\u01ee\1\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\10\5\1\u01ef\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\2\5\1\u01f0\14\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\3\5\1\u01f1\13\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\u01f2\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + + "\1\u01f3\1\0\21\5\4\0\1\4\6\5\1\0\6\5" + "\1\u01f4\10\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\1\u0141\2\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u01f5" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u01f6" + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u01f7" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u01f8" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\1\5\1\u01f9\1\0" + + "\21\5\4\0\1\4\6\5\1\0\3\5\1\u01fa\13\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01b3\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\130\1\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\4\5\1\130\12\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\15\5\1\u01fb\1\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\u01fc\1\0\21\5\4\0" + + "\1\4\6\5\1\0\15\5\1\130\1\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\5\1\316\1\0\21\5\4\0\1\4" + + "\6\5\1\0\14\5\1\u015c\2\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\1\5\1\u01fd\15\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\3\5\1\u01fe\13\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\u01ff\1\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\11\5\1\u01a0\5\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\3\5\1\312\13\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\5\5\1\u0111\13\5\4\0\1\4\6\5" + + "\1\0\4\5\1\u0200\12\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\1\5\1\312\15\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\13\5\1\u01ec\2\5\1\u0169\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\u0165\1\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\1\5\1\u014b\1\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\4\5\1\u01a2\12\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\5\1\u01aa\1\0\21\5\4\0\1\4" + + "\6\5\1\0\10\5\1\u0201\6\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\3\u011f" + + "\4\212\1\u011f\3\212\6\u011f\1\212\2\u011f\1\212\6\u011f" + "\1\214\5\u011f\1\212\1\u011f\1\0\2\u011f\2\212\5\u011f" + + "\1\212\20\u011f\2\212\2\u011f\2\212\5\u011f\1\212\4\u011f" + "\3\217\4\42\1\217\3\42\6\217\1\42\2\217\1\42" + + "\13\217\1\u0127\1\42\2\217\1\u0128\1\217\2\42\5\217" + "\1\42\20\217\2\42\2\217\2\42\5\217\1\42\4\217" + + "\1\4\6\5\1\0\12\5\1\u0202\4\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\5\1\253\1\0\21\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\5\1\u0203\1\0\21\5\4\0\1\4\6\5" + + "\1\0\7\5\1\u0204\7\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\7\5\1\u0205\7\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\1\5\1\130\17\5\4\0\1\4\6\5" + + "\1\0\11\5\1\u0111\5\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\7\76\1\0" + + "\12\76\1\u0206\4\76\11\0\3\76\2\0\3\76\2\0" + "\1\u0206\1\76\1\0\1\76\1\0\3\76\4\0\2\76" + + "\1\0\21\76\4\0\7\76\1\0\5\76\1\u0206\11\76" + "\11\0\3\76\2\0\3\76\2\0\1\76\1\u0206\1\0" + + "\1\76\1\0\3\76\4\0\2\76\1\0\21\76\4\0" + "\7\4\1\0\3\4\1\u01b7\13\4\11\0\3\4\2\0" + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + + "\2\4\1\0\21\4\4\0\7\4\1\0\2\4\1\u0207" + "\14\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0" + "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0" + + "\7\4\1\0\1\4\1\u0207\15\4\11\0\3\4\2\0" + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + "\2\4\1\0\21\4\4\0\7\4\1\0\10\4\1\u0208" + + "\6\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0" + "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0" + "\7\4\1\0\1\4\1\u01b7\15\4\11\0\3\4\2\0" + + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + "\2\4\1\0\21\4\4\0\7\4\1\0\5\4\1\u0209" + "\11\4\11\0\3\4\2\0\3\4\2\0\2\4\1\0" + + "\1\4\1\0\3\4\4\0\2\4\1\0\21\4\4\0" + "\7\4\1\0\15\4\1\u020a\1\4\11\0\3\4\2\0" + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + + "\2\4\1\0\21\4\16\0\1\u013d\113\0\1\u020b\120\0" + "\1\u020c\2\0\1\u020d\116\0\1\u020e\106\0\1\u020f\3\0" + + "\1\u01c4\122\0\1\u0210\110\0\1\u020d\111\0\1\u020f\131\0" + "\1\u0211\71\0\1\4\6\5\1\0\5\5\1\u019d\11\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\3\5\1\u0212\13\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\14\5\1\u01f2\2\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\u0213\2\5\1\u01db" + + "\1\u0214\12\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5" + + "\1\u01ea\5\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u0215\1\0\21\5\4\0\1\4\6\5\1\0" + + "\10\5\1\u0216\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\10\5\1\u0217\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\7\5\1\u0218\7\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\16\5\1\u0219\11\0\1\4\2\5\2\0\1\5\1\u0111" + "\1\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\36\0\1\u021a\101\0" + + "\1\u014d\51\0\1\u01cf\26\0\1\u01d1\1\u021b\4\u01d1\1\u021b" + "\17\u01d1\3\u021b\1\u01d1\1\u021b\2\0\2\u021b\1\0\2\u01d1" + + "\2\0\3\u01d1\1\0\1\u021b\2\u01d1\1\u021b\1\u01d1\1\0" + "\1\u021b\1\u01d1\5\u021b\2\u01d1\1\u021b\21\u01d1\1\0\1\u021b" + + "\34\0\1\u021c\101\0\1\u0151\51\0\1\u01d2\26\0\1\u01d4" + "\1\u021d\4\u01d4\1\u021d\17\u01d4\3\u021d\1\u01d4\1\u021d\2\0" + + "\2\u021d\1\0\2\u01d4\2\0\3\u01d4\1\0\1\u021d\2\u01d4" + "\1\u021d\1\u01d4\1\0\1\u021d\1\u01d4\5\u021d\2\u01d4\1\u021d" + + "\21\u01d4\1\0\1\u021d\2\0\1\4\5\5\1\u021e\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\20\5" + + "\1\u021e\4\0\1\4\6\5\1\0\5\5\1\u01ed\11\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\3\5\1\u021f\13\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\11\5\1\u0220\5\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\130\16\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\6\5\1\u0111\2\5\1\u0111" + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u0165" + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u0141" + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u0103" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\312" + "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\312" + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\12\5\1\u01f2" + "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\1\u0221\1\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\13\5\1\u01da\3\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\13\5\1\u0222\3\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0223\15\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\164" + + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u0224" + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\130" + "\14\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\13\5\1\u01ec" + "\1\312\1\5\1\u0169\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\u0165" + + "\1\5\1\0\21\5\4\0\1\4\6\5\1\0\13\5" + "\1\u0114\3\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\2\5\1\u0111\16\5\4\0\1\4\6\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\130" + + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u0166" + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\u0111\4\5" + "\1\u0111\4\5\1\u0103\4\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\1\5\1\u0111\17\5\4\0" + "\1\4\6\5\1\0\7\5\1\u01f2\7\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\11\5\1\u01f9\5\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\16\5\1\u0111\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\5\1\u0225\15\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\1\5\1\u0226\1\0\21\5\4\0\1\4\6\5" + "\1\0\4\5\1\u0227\12\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\5\1\u0228\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + + "\1\u0229\1\0\21\5\4\0\1\4\6\5\1\0\1\5" + "\1\u022a\15\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\1\5\1\u022b\4\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5" + "\1\u022c\12\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\4\5" + "\1\u022d\12\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5" + "\1\u0111\5\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\1\u01b3\20\5\4\0\1\4\6\5\1\0" + "\11\5\1\u022e\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\11\5\1\130\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\14\5\1\u0165\2\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\1\u0111\2\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\1\u022f\20\5\4\0\1\4\6\5\1\0\14\5\1\u0230" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\152" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\15\5\1\u0111" + "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u01da" + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\7\4\1\0\7\4\1\u0207\7\4" + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4" + + "\1\0\12\4\1\u0231\4\4\11\0\3\4\2\0\3\4" + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + "\1\0\21\4\4\0\7\4\1\0\16\4\1\u0232\11\0" + + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + "\3\4\4\0\2\4\1\0\21\4\17\0\1\u020c\114\0" + + "\1\u0233\114\0\1\u0233\124\0\1\u0234\106\0\1\u020c\121\0" + "\1\u0235\125\0\1\u0236\70\0\1\4\6\5\1\0\5\5" + + "\1\u0141\11\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5" + + "\1\u01e8\15\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\14\5" + + "\1\u0237\2\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5" + + "\1\u0238\6\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\u0111" + + "\4\5\1\u0111\4\5\1\u0103\3\5\1\137\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\1\5\1\u0111" + + "\17\5\4\0\1\4\6\5\1\0\16\5\1\u0219\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\1\5\1\u0111\1\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\36\0\1\u01d1\115\0\1\u01d4\63\0\1\4\1\5\1\u0239" + "\4\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\11\5\1\u023a\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\3\5\1\u01ed\13\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\14\5\1\u0111\2\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\14\5\1\u023b\2\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\11\5\1\u023c\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\14\5\1\u0212\2\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\7\5\1\u023d\7\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\u023e\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\10\5\1\316\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\10\5\1\u023e\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\7\5\1\u0165\7\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\11\5\1\u023f\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\12\5\1\310\4\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\u012a\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + + "\1\u0240\1\0\21\5\4\0\1\4\6\5\1\0\11\5" + "\1\331\5\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\5\5" + "\1\130\11\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\21\5\4\0\7\4\1\0\1\u01b8\16\4" + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4" + + "\1\0\14\4\1\u0207\2\4\11\0\3\4\2\0\3\4" + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + + "\1\0\21\4\23\0\1\u0233\120\0\1\u0241\121\0\1\u0242" + "\67\0\1\4\6\5\1\0\16\5\1\310\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\16\5\1\137\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\1\5\1\u0243\4\5\1\0\17\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\11\5\1\310\5\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\10\5\1\u01a4\6\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\13\5\1\u0244\3\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\7\5\1\130\7\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\14\5\1\u0245\2\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\5\1\u01db\15\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\14\0\1\u020d" + "\131\0\1\u0233\71\0\1\4\6\5\1\0\7\5\1\u0246" + + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u01ed" + + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u0247" + + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\1\5\1\u023a\1\0" + "\21\5\4\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[43134]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\26\1\1\11\6\1\1\11\6\1\1\11\1\1" + "\2\11\7\1\1\11\6\1\1\11\114\1\1\0\2\11" + + "\2\1\1\11\3\1\1\11\17\1\1\0\14\1\2\0" + "\1\11\4\0\1\11\2\0\6\1\1\0\142\1\1\11" + "\7\1\1\11\21\1\6\0\14\1\10\0\6\1\1\0" + + "\142\1\4\0\1\1\4\0\11\1\2\0\1\1\2\0" + "\67\1\7\0\10\1\4\0\25\1\1\11\3\0\12\1" + "\2\0\5\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[583]; + 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 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; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public CPlusPlusTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1877,26 +880,26 @@ public class CPlusPlusTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -1911,7 +914,6 @@ public class CPlusPlusTokenMaker extends AbstractJFlexCTokenMaker { default: state = YYINITIAL; } - s = text; try { yyreset(zzReader); @@ -1921,21 +923,18 @@ public class CPlusPlusTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1944,7 +943,8 @@ public class CPlusPlusTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1953,398 +953,432 @@ public class CPlusPlusTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 CPlusPlusTokenMaker(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 CPlusPlusTokenMaker(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 < 184) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 29: - { addToken(Token.PREPROCESSOR); - } - case 33: break; - case 7: - { addNullToken(); return firstToken; - } - case 34: break; - case 26: - { addToken(Token.LITERAL_CHAR); - } - case 35: break; - case 22: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 36: break; - case 18: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 37: break; - case 9: - { addToken(Token.WHITESPACE); - } - case 38: break; - case 28: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 39: break; - case 19: - { addToken(Token.ERROR_CHAR); /*addNullToken(); return firstToken;*/ - } - case 40: break; - case 27: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 41: break; - case 15: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 42: break; - case 16: - { addToken(Token.RESERVED_WORD); - } - case 43: break; - case 5: - { addToken(Token.SEPARATOR); - } - case 44: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 45: break; - case 12: - { /* Line ending in '\' => continue to next line. */ - addToken(start,zzStartRead, Token.COMMENT_EOL); + + /** + * 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 CPlusPlusTokenMaker(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 CPlusPlusTokenMaker(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 < 184) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 29: { + addToken(Token.PREPROCESSOR); + } + case 33: + break; + case 7: { + addNullToken(); + return firstToken; + } + case 34: + break; + case 26: { + addToken(Token.LITERAL_CHAR); + } + case 35: + break; + case 22: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 36: + break; + case 18: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 37: + break; + case 9: { + addToken(Token.WHITESPACE); + } + case 38: + break; + case 28: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 39: + break; + case 19: { + addToken(Token.ERROR_CHAR); /* + * addNullToken(); return + * firstToken; + */ + } + case 40: + break; + case 27: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 41: + break; + case 15: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 42: + break; + case 16: { + addToken(Token.RESERVED_WORD); + } + case 43: + break; + case 5: { + addToken(Token.SEPARATOR); + } + case 44: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 45: + break; + case 12: { /* Line ending in '\' => continue to next line. */ + addToken(start, zzStartRead, Token.COMMENT_EOL); + return firstToken; + } + case 46: + break; + case 13: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 47: + break; + case 17: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 48: + break; + case 24: { + addToken(Token.FUNCTION); + } + case 49: + break; + case 6: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 50: + break; + case 8: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 51: + break; + case 25: { + addToken(Token.DATA_TYPE); + } + case 52: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 53: + break; + case 20: { + addToken(Token.ERROR_CHAR); + } + case 54: + break; + case 23: { /* Skip all escaped chars. */ + } + case 55: + break; + case 21: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 56: + break; + case 31: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 57: + break; + case 30: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 58: + break; + case 32: { + addToken(Token.RESERVED_WORD_2); + } + case 59: + break; + case 14: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 60: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 61: + break; + case 4: { + addToken(Token.OPERATOR); + } + case 62: + break; + case 10: {} + case 63: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 64: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); return firstToken; - } - case 46: break; - case 13: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 47: break; - case 17: - { start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - case 48: break; - case 24: - { addToken(Token.FUNCTION); - } - case 49: break; - case 6: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 50: break; - case 8: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 51: break; - case 25: - { addToken(Token.DATA_TYPE); - } - case 52: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 53: break; - case 20: - { addToken(Token.ERROR_CHAR); - } - case 54: break; - case 23: - { /* Skip all escaped chars. */ - } - case 55: break; - case 21: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 56: break; - case 31: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 57: break; - case 30: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 58: break; - case 32: - { addToken(Token.RESERVED_WORD_2); - } - case 59: break; - case 14: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 60: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 61: break; - case 4: - { addToken(Token.OPERATOR); - } - case 62: break; - case 10: - { - } - case 63: break; - case 11: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 64: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 584: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 585: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 586: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 584: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 585: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 586: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/CSSTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/CSSTokenMaker.java index 3a58551..784951a 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/CSSTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/CSSTokenMaker.java @@ -1,630 +1,486 @@ /* The following code was generated by JFlex 1.4.1 on 9/19/15 11:19 PM */ - /* * 09/03/2005 - * * CSSTokenMaker.java - Token maker for CSS 3 files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; +import org.fife.ui.rsyntaxtextarea.TokenTypes; /** - * This class splits up text into tokens representing a CSS 3 file. It's + * This class splits up text into tokens representing a CSS 3 file. It's * written with a few extra internal states so that it can easily be copy - * and pasted into HTML, PHP, and JSP TokenMakres when it is updated.

+ * and pasted into HTML, PHP, and JSP TokenMakres when it is updated. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated CSSTokenMaker.java file will contain 2 - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated CSSTokenMaker.java file will contain 2 + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class CSSTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int CSS_C_STYLE_COMMENT = 5; - public static final int LESS_EOL_COMMENT = 6; - public static final int YYINITIAL = 0; - public static final int CSS_STRING = 3; - public static final int CSS_VALUE = 2; - public static final int CSS_PROPERTY = 1; - public static final int CSS_CHAR_LITERAL = 4; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\41\1\64\25\0\1\41\1\53\1\60\1\37\1\55\1\46"+ - "\1\50\1\61\1\44\1\65\1\5\1\54\1\57\1\4\1\6\1\42"+ - "\12\1\1\7\1\40\1\0\1\54\1\63\1\51\1\35\6\47\24\2"+ - "\1\52\1\43\1\52\1\63\1\3\1\0\1\21\1\34\1\15\1\20"+ - "\1\26\1\23\1\33\1\14\1\16\1\2\1\30\1\17\1\27\1\13"+ - "\1\11\1\25\1\2\1\10\1\22\1\12\1\32\1\31\1\36\1\45"+ - "\1\24\1\2\1\56\1\63\1\62\1\54\uff81\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 = - "\2\0\1\1\4\0\1\2\1\3\2\4\1\5\2\2"+ - "\1\6\1\7\1\2\1\10\1\11\1\1\1\12\1\13"+ - "\1\14\1\15\1\16\1\17\2\20\1\21\3\16\1\22"+ - "\1\23\1\24\1\25\1\26\2\1\2\25\1\27\1\1"+ - "\1\30\1\25\1\31\1\32\1\33\1\34\1\35\1\36"+ - "\1\33\1\37\1\40\5\33\1\41\4\33\1\42\2\0"+ - "\1\3\3\0\1\4\15\0\12\43\1\3\1\44\1\3"+ - "\1\45\1\46\2\0\1\47\1\50\1\51\2\0\1\26"+ - "\3\0\1\26\1\52\1\0\1\34\1\53\33\0\11\43"+ - "\15\0\1\17\16\0\1\17\14\0\11\43\26\0\1\54"+ - "\2\0\1\55\14\0\5\43\1\56\2\43\5\0\1\20"+ - "\31\0\6\43\21\0\3\43\14\0\2\43\7\0\1\43"+ - "\11\0\1\57\3\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[340]; - 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\66\0\154\0\242\0\330\0\u010e\0\u0144\0\u017a"+ - "\0\u01b0\0\u01e6\0\u021c\0\u0252\0\u0288\0\u02be\0\u017a\0\u02f4"+ - "\0\u032a\0\u017a\0\u017a\0\u017a\0\u017a\0\u017a\0\u017a\0\u017a"+ - "\0\u017a\0\u0360\0\u0396\0\u03cc\0\u017a\0\u0402\0\u0438\0\u046e"+ - "\0\u017a\0\u017a\0\u017a\0\u017a\0\u04a4\0\u04da\0\u0510\0\u0402"+ - "\0\u0546\0\u017a\0\u057c\0\u017a\0\u05b2\0\u017a\0\u017a\0\u05e8"+ - "\0\u061e\0\u017a\0\u017a\0\u0654\0\u017a\0\u017a\0\u068a\0\u06c0"+ - "\0\u06f6\0\u072c\0\u0762\0\u017a\0\u0798\0\u07ce\0\u0804\0\u083a"+ - "\0\u017a\0\u0870\0\u08a6\0\u017a\0\u08dc\0\u0912\0\u0948\0\u097e"+ - "\0\u09b4\0\u09ea\0\u0a20\0\u0a56\0\u0a8c\0\u0ac2\0\u0af8\0\u0b2e"+ - "\0\u0b64\0\u0b9a\0\u0bd0\0\u0c06\0\u0c3c\0\u0c72\0\u0ca8\0\u0cde"+ - "\0\u0d14\0\u0d4a\0\u0d80\0\u0db6\0\u0dec\0\u0e22\0\u0e58\0\u0e8e"+ - "\0\u0ec4\0\u0efa\0\u017a\0\u017a\0\u0f30\0\u0f66\0\u0f9c\0\u017a"+ - "\0\u0fd2\0\u1008\0\u103e\0\u017a\0\u1074\0\u10aa\0\u10e0\0\u0546"+ - "\0\u04da\0\u1116\0\u017a\0\u017a\0\u114c\0\u1182\0\u11b8\0\u11ee"+ - "\0\u1224\0\u125a\0\u1290\0\u12c6\0\u12fc\0\u1332\0\u1368\0\u139e"+ - "\0\u13d4\0\u140a\0\u1440\0\u1476\0\u14ac\0\u14e2\0\u1518\0\u154e"+ - "\0\u1584\0\u15ba\0\u15f0\0\u1626\0\u165c\0\u1692\0\u16c8\0\u16fe"+ - "\0\u1734\0\u176a\0\u17a0\0\u17d6\0\u180c\0\u1842\0\u1878\0\u18ae"+ - "\0\u18e4\0\u191a\0\u1950\0\u1986\0\u19bc\0\u19f2\0\u1a28\0\u1a5e"+ - "\0\u1a94\0\u1aca\0\u1b00\0\u1b36\0\u1b6c\0\u1ba2\0\u1bd8\0\u1c0e"+ - "\0\u1c44\0\u1c7a\0\u1cb0\0\u1ce6\0\u1d1c\0\u1d52\0\u1d88\0\u1dbe"+ - "\0\u1df4\0\u1e2a\0\u1e60\0\u1e96\0\u017a\0\u1ecc\0\u1f02\0\u1f38"+ - "\0\u1f6e\0\u1fa4\0\u1fda\0\u2010\0\u2046\0\u207c\0\u20b2\0\u20e8"+ - "\0\u211e\0\u2154\0\u218a\0\u21c0\0\u21f6\0\u222c\0\u2262\0\u2298"+ - "\0\u22ce\0\u2304\0\u233a\0\u2370\0\u23a6\0\u23dc\0\u2412\0\u2448"+ - "\0\u247e\0\u24b4\0\u24ea\0\u2520\0\u2556\0\u258c\0\u25c2\0\u25f8"+ - "\0\u262e\0\u2664\0\u269a\0\u26d0\0\u2706\0\u273c\0\u2772\0\u27a8"+ - "\0\u27de\0\u2814\0\u284a\0\u2880\0\u28b6\0\u28ec\0\u2922\0\u2958"+ - "\0\u298e\0\u29c4\0\u29fa\0\u2a30\0\u2a66\0\u2a9c\0\u2ad2\0\u2b08"+ - "\0\u2b3e\0\u2b74\0\u2baa\0\u2be0\0\u2c16\0\u0c72\0\u2c4c\0\u2c82"+ - "\0\u2cb8\0\u2cee\0\u2d24\0\u2d5a\0\u2d90\0\u2dc6\0\u2dfc\0\u2e32"+ - "\0\u2e68\0\u2e9e\0\u2ed4\0\u2f0a\0\u2f40\0\u2f76\0\u2fac\0\u2fe2"+ - "\0\u3018\0\u304e\0\u3084\0\u30ba\0\u27de\0\u30f0\0\u2880\0\u3126"+ - "\0\u315c\0\u3192\0\u31c8\0\u31fe\0\u3234\0\u326a\0\u32a0\0\u32d6"+ - "\0\u330c\0\u3342\0\u3378\0\u33ae\0\u33e4\0\u341a\0\u3450\0\u3486"+ - "\0\u34bc\0\u34f2\0\u3528\0\u355e\0\u3594\0\u35ca\0\u3600\0\u3636"+ - "\0\u366c\0\u36a2\0\u36d8\0\u370e\0\u3744\0\u377a\0\u37b0\0\u37e6"+ - "\0\u381c\0\u3852\0\u3888\0\u38be\0\u38f4\0\u392a\0\u3960\0\u3996"+ - "\0\u39cc\0\u3a02\0\u3a38\0\u3a6e\0\u3aa4\0\u3ada\0\u3b10\0\u3b46"+ - "\0\u3b7c\0\u3bb2\0\u3be8\0\u3c1e\0\u3c54\0\u3c8a\0\u3cc0\0\u3cf6"+ - "\0\u3d2c\0\u3d62\0\u3d98\0\u3dce\0\u3e04\0\u3e3a\0\u3e70\0\u3ea6"+ - "\0\u017a\0\u3edc\0\u3f12\0\u3f48"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[340]; - 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 = - "\1\10\1\11\2\12\1\13\2\12\1\14\25\12\1\15"+ - "\1\12\1\16\1\17\1\20\1\21\1\10\1\17\1\12"+ - "\1\10\1\12\2\10\1\17\1\10\2\22\1\23\1\24"+ - "\1\25\1\26\1\27\1\22\1\30\1\17\2\31\3\32"+ - "\1\33\1\34\1\35\25\32\1\36\1\32\2\31\1\20"+ - "\1\37\2\31\1\32\1\31\1\32\1\40\5\31\1\41"+ - "\3\31\1\42\1\31\1\43\1\31\1\44\1\45\2\46"+ - "\1\47\1\44\1\24\1\44\25\46\1\50\1\46\1\51"+ - "\1\52\1\20\1\53\1\46\1\54\1\46\1\44\1\46"+ - "\3\44\1\55\3\44\1\24\1\25\1\26\1\42\1\44"+ - "\1\56\1\57\43\60\1\61\14\60\1\62\3\60\1\63"+ - "\1\60\43\64\1\61\15\64\1\65\2\64\1\66\1\64"+ - "\5\67\1\70\6\67\1\71\6\67\1\72\12\67\1\73"+ - "\25\67\1\74\1\67\14\75\1\76\6\75\1\77\12\75"+ - "\1\100\25\75\1\101\1\75\67\0\1\11\4\0\1\11"+ - "\6\0\1\102\1\103\3\0\1\104\2\0\1\105\1\106"+ - "\1\107\16\0\1\104\20\0\4\12\1\0\1\12\1\0"+ - "\25\12\1\0\1\12\6\0\1\12\1\0\1\12\17\0"+ - "\1\110\3\12\1\0\1\12\1\0\25\12\1\0\1\12"+ - "\6\0\1\12\1\0\1\12\25\0\1\111\1\112\1\113"+ - "\1\114\1\115\1\116\1\117\1\0\1\120\1\121\1\122"+ - "\1\0\1\123\2\0\1\124\2\0\1\125\36\0\3\126"+ - "\3\0\3\126\1\127\1\126\1\130\1\131\1\126\1\132"+ - "\2\126\1\133\1\126\1\134\1\126\1\135\1\136\1\137"+ - "\3\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0"+ - "\1\140\5\141\1\0\5\141\1\142\2\141\2\142\1\141"+ - "\1\142\2\141\1\142\5\141\1\142\1\0\1\141\6\0"+ - "\1\141\1\0\1\142\57\0\1\20\31\0\1\143\34\0"+ - "\1\144\24\0\4\32\1\0\1\34\1\145\25\32\1\0"+ - "\1\32\6\0\1\32\1\0\1\32\17\0\1\34\3\32"+ - "\1\0\1\34\1\146\25\32\1\0\1\32\6\0\1\32"+ - "\1\0\1\32\17\0\4\34\1\0\1\34\1\146\25\34"+ - "\1\0\1\34\6\0\1\34\1\0\1\34\20\0\3\147"+ - "\3\0\25\147\1\0\1\147\6\0\1\147\1\0\1\147"+ - "\23\0\1\143\34\0\1\150\25\0\5\151\1\0\25\151"+ - "\1\0\1\151\6\0\1\151\1\0\1\151\17\0\1\45"+ - "\4\0\1\45\6\0\1\152\1\153\3\0\1\154\2\0"+ - "\1\155\1\156\1\157\16\0\1\154\21\0\3\46\3\0"+ - "\25\46\1\0\1\46\3\0\2\46\1\54\1\46\1\0"+ - "\1\46\17\0\1\45\3\46\3\0\25\46\1\0\1\46"+ - "\3\0\2\46\1\54\1\46\1\0\1\46\17\0\1\160"+ - "\13\0\1\160\2\0\2\160\1\0\1\160\2\0\1\160"+ - "\5\0\1\160\12\0\1\160\20\0\3\46\1\143\2\0"+ - "\25\46\1\0\1\46\3\0\1\161\1\46\1\54\1\46"+ - "\1\0\1\46\34\0\1\162\47\0\43\60\1\0\14\60"+ - "\1\0\3\60\1\0\1\60\64\163\1\0\1\163\43\64"+ - "\1\0\15\64\1\0\2\64\1\0\1\64\5\67\1\0"+ - "\6\67\1\0\6\67\1\0\12\67\1\0\25\67\1\0"+ - "\1\67\42\0\1\164\35\0\1\165\65\0\1\166\3\0"+ - "\1\167\105\0\1\170\27\0\14\75\1\0\6\75\1\0"+ - "\12\75\1\0\25\75\1\0\1\75\12\0\1\171\65\0"+ - "\1\172\3\0\1\173\105\0\1\174\56\0\1\104\51\0"+ - "\1\104\64\0\1\104\2\0\1\104\27\0\1\104\47\0"+ - "\1\104\15\0\1\104\42\0\1\104\4\0\1\104\37\0"+ - "\1\110\3\12\1\0\1\110\1\0\25\12\1\0\1\12"+ - "\6\0\1\12\1\104\1\12\37\0\1\175\1\0\1\176"+ - "\10\0\1\177\42\0\1\200\67\0\1\201\73\0\1\202"+ - "\55\0\1\203\1\204\64\0\1\205\70\0\1\206\67\0"+ - "\1\207\2\0\1\210\62\0\1\211\64\0\1\212\61\0"+ - "\1\213\4\0\1\214\62\0\1\215\13\0\1\216\54\0"+ - "\1\217\50\0\4\126\1\0\1\126\1\0\25\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\11\126\1\220\13\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0"+ - "\4\126\1\221\20\126\1\0\1\126\6\0\1\126\1\0"+ - "\1\126\17\0\4\126\1\0\1\126\1\0\17\126\1\222"+ - "\5\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0"+ - "\4\126\1\0\1\126\1\0\1\126\1\223\23\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\1\126\1\224\23\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0"+ - "\11\126\1\225\13\126\1\0\1\126\6\0\1\126\1\0"+ - "\1\126\17\0\4\126\1\0\1\126\1\0\16\126\1\226"+ - "\6\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0"+ - "\4\126\1\0\1\126\1\0\16\126\1\227\6\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\6\126\1\230\16\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\1\140\13\0\1\140\2\0"+ - "\2\140\1\0\1\140\2\0\1\140\5\0\1\140\12\0"+ - "\1\140\17\0\4\141\1\0\1\141\1\0\25\141\1\0"+ - "\1\141\6\0\1\141\1\0\1\141\17\0\1\142\3\141"+ - "\1\0\1\141\1\0\5\141\1\142\2\141\2\142\1\141"+ - "\1\142\2\141\1\142\5\141\1\142\1\0\1\141\6\0"+ - "\1\141\1\0\1\142\25\0\1\231\1\232\1\233\1\234"+ - "\1\235\1\236\1\237\1\0\1\240\1\241\1\242\1\0"+ - "\1\243\2\0\1\244\2\0\1\245\4\0\1\246\36\0"+ - "\1\231\1\232\1\233\1\234\1\235\1\236\1\237\1\0"+ - "\1\240\1\241\1\242\1\0\1\243\2\0\1\244\2\0"+ - "\1\245\35\0\4\147\1\0\1\147\1\0\25\147\1\0"+ - "\1\147\6\0\1\147\1\0\1\147\17\0\4\151\1\0"+ - "\1\151\1\0\25\151\1\0\1\151\6\0\1\151\1\0"+ - "\1\151\45\0\1\154\51\0\1\154\64\0\1\154\2\0"+ - "\1\154\27\0\1\154\47\0\1\154\15\0\1\154\42\0"+ - "\1\154\4\0\1\154\65\0\1\247\50\0\1\250\100\0"+ - "\1\251\57\0\1\252\104\0\1\253\41\0\1\254\100\0"+ - "\1\255\57\0\1\256\104\0\1\257\52\0\1\260\60\0"+ - "\1\261\75\0\1\262\50\0\1\203\73\0\1\263\56\0"+ - "\1\264\67\0\1\265\67\0\1\266\102\0\1\267\62\0"+ - "\1\270\52\0\1\271\65\0\1\272\6\0\1\273\65\0"+ - "\1\215\55\0\1\274\70\0\1\275\60\0\1\276\76\0"+ - "\1\277\71\0\1\300\62\0\1\301\44\0\4\126\1\0"+ - "\1\126\1\0\17\126\1\302\5\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0"+ - "\11\126\1\303\13\126\1\0\1\126\6\0\1\126\1\0"+ - "\1\126\17\0\4\126\1\0\1\126\1\0\15\126\1\304"+ - "\7\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0"+ - "\4\126\1\0\1\126\1\0\5\126\1\305\17\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\3\126\1\306\21\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0"+ - "\23\126\1\307\1\126\1\0\1\126\6\0\1\126\1\0"+ - "\1\126\17\0\4\126\1\0\1\126\1\0\10\126\1\310"+ - "\14\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0"+ - "\4\126\1\0\1\126\1\0\14\126\1\311\10\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\16\126\1\312\6\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\37\0\1\313\1\0\1\314\10\0"+ - "\1\315\42\0\1\316\67\0\1\317\73\0\1\320\55\0"+ - "\1\321\1\322\64\0\1\323\70\0\1\324\67\0\1\325"+ - "\2\0\1\326\62\0\1\327\64\0\1\330\61\0\1\331"+ - "\4\0\1\332\62\0\1\333\13\0\1\334\54\0\1\335"+ - "\105\0\1\246\54\0\1\336\65\0\1\337\47\0\1\340"+ - "\104\0\1\251\45\0\1\341\104\0\1\342\47\0\1\343"+ - "\104\0\1\255\45\0\1\344\71\0\1\267\63\0\1\345"+ - "\100\0\1\346\66\0\1\347\74\0\1\350\36\0\1\351"+ - "\107\0\1\352\54\0\1\353\100\0\1\265\70\0\1\265"+ - "\44\0\1\347\71\0\1\354\101\0\1\355\55\0\1\273"+ - "\77\0\1\356\43\0\1\357\71\0\1\360\50\0\4\126"+ - "\1\0\1\126\1\0\16\126\1\361\6\126\1\0\1\126"+ - "\6\0\1\126\1\0\1\126\17\0\4\126\1\0\1\126"+ - "\1\0\1\362\24\126\1\0\1\126\6\0\1\126\1\0"+ - "\1\126\17\0\4\126\1\0\1\126\1\0\1\126\1\363"+ - "\23\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0"+ - "\4\126\1\0\1\126\1\0\22\126\1\364\2\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\2\126\1\365\22\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0"+ - "\16\126\1\366\6\126\1\0\1\126\6\0\1\126\1\0"+ - "\1\126\17\0\4\126\1\0\1\126\1\0\6\126\1\367"+ - "\16\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0"+ - "\4\126\1\0\1\126\1\0\13\126\1\370\11\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\25\126\1\0\1\222\6\0\1\126\1\0"+ - "\1\126\41\0\1\371\60\0\1\372\75\0\1\373\50\0"+ - "\1\321\73\0\1\374\56\0\1\375\67\0\1\376\67\0"+ - "\1\377\102\0\1\u0100\62\0\1\u0101\52\0\1\u0102\65\0"+ - "\1\u0103\6\0\1\u0104\65\0\1\333\55\0\1\u0105\70\0"+ - "\1\u0106\60\0\1\u0107\76\0\1\u0108\71\0\1\u0109\62\0"+ - "\1\u010a\54\0\1\u010b\63\0\1\340\12\0\1\251\105\0"+ - "\1\u010c\24\0\2\341\5\u010d\25\341\1\u010d\1\341\2\u010d"+ - "\1\0\1\341\1\0\1\u010d\1\341\1\u010d\1\341\5\u010d"+ - "\1\341\1\0\1\u010d\1\0\1\u010d\3\0\1\u010d\7\0"+ - "\1\343\12\0\1\255\105\0\1\u010e\24\0\2\344\5\u010f"+ - "\25\344\1\u010f\1\344\2\u010f\1\0\1\344\1\0\1\u010f"+ - "\1\344\1\u010f\1\344\5\u010f\1\344\1\0\1\u010f\1\0"+ - "\1\u010f\3\0\1\u010f\22\0\1\u0110\54\0\1\u0111\60\0"+ - "\1\u0112\107\0\1\203\50\0\1\u0113\3\0\1\u0114\1\0"+ - "\1\u0115\56\0\1\265\105\0\1\u0116\66\0\1\u0117\56\0"+ - "\1\265\62\0\1\u0116\72\0\1\265\53\0\1\u0116\54\0"+ - "\4\126\1\0\1\126\1\0\12\126\1\u0118\12\126\1\0"+ - "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0"+ - "\1\126\1\0\12\126\1\u0119\12\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0"+ - "\1\u011a\24\126\1\0\1\126\6\0\1\126\1\0\1\126"+ - "\17\0\4\126\1\0\1\126\1\0\17\126\1\u011b\5\126"+ - "\1\0\1\126\6\0\1\126\1\0\1\126\17\0\3\126"+ - "\1\u011c\1\0\1\126\1\0\25\126\1\0\1\126\6\0"+ - "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0"+ - "\11\126\1\366\13\126\1\0\1\126\6\0\1\126\1\0"+ - "\1\126\17\0\4\126\1\0\1\126\1\0\1\u011d\24\126"+ - "\1\0\1\126\6\0\1\126\1\0\1\126\30\0\1\u0100"+ - "\63\0\1\u011e\100\0\1\u011f\66\0\1\u0120\74\0\1\u0121"+ - "\41\0\1\146\62\0\1\u0122\107\0\1\u0123\54\0\1\u0124"+ - "\100\0\1\376\70\0\1\376\44\0\1\u0120\71\0\1\u0125"+ - "\101\0\1\u0126\55\0\1\u0104\77\0\1\u0127\43\0\1\u0128"+ - "\71\0\1\u0129\57\0\1\u012a\117\0\1\341\65\0\1\344"+ - "\35\0\1\u012b\63\0\1\u0117\66\0\1\u0113\3\0\1\u0114"+ - "\73\0\1\u012c\56\0\1\u012d\72\0\1\276\72\0\1\u012e"+ - "\65\0\1\265\40\0\4\126\1\0\1\126\1\0\15\126"+ - "\1\u012f\7\126\1\0\1\126\6\0\1\126\1\0\1\126"+ - "\17\0\4\126\1\0\1\126\1\0\16\126\1\u011a\6\126"+ - "\1\0\1\126\6\0\1\126\1\0\1\126\17\0\4\126"+ - "\1\0\1\126\1\0\2\126\1\366\22\126\1\0\1\126"+ - "\6\0\1\126\1\0\1\126\17\0\4\126\1\0\1\126"+ - "\1\0\16\126\1\u0130\6\126\1\0\1\126\6\0\1\126"+ - "\1\0\1\126\17\0\4\126\1\0\1\126\1\0\13\126"+ - "\1\u012f\11\126\1\0\1\126\6\0\1\126\1\0\1\126"+ - "\17\0\4\126\1\0\1\126\1\0\11\126\1\u0131\13\126"+ - "\1\0\1\126\6\0\1\126\1\0\1\126\40\0\1\u0132"+ - "\54\0\1\u0133\60\0\1\u0134\107\0\1\321\50\0\1\u0135"+ - "\3\0\1\u0136\1\0\1\u0137\56\0\1\376\105\0\1\u0138"+ - "\66\0\1\u0139\56\0\1\376\62\0\1\u0138\72\0\1\376"+ - "\53\0\1\u0138\65\0\1\u013a\57\0\1\u013b\65\0\1\u013c"+ - "\77\0\1\u013d\67\0\1\265\46\0\4\126\1\0\1\126"+ - "\1\0\11\126\1\u013e\13\126\1\0\1\126\6\0\1\126"+ - "\1\0\1\126\17\0\4\126\1\0\1\126\1\0\3\126"+ - "\1\u011a\21\126\1\0\1\126\6\0\1\126\1\0\1\126"+ - "\17\0\4\126\1\0\1\126\1\0\17\126\1\u013f\5\126"+ - "\1\0\1\126\6\0\1\126\1\0\1\126\30\0\1\u0140"+ - "\63\0\1\u0139\66\0\1\u0135\3\0\1\u0136\73\0\1\u0141"+ - "\56\0\1\u0142\72\0\1\u0107\72\0\1\u0143\65\0\1\376"+ - "\60\0\1\u0144\63\0\1\u0145\60\0\1\u0146\72\0\1\u012e"+ - "\47\0\4\126\1\0\1\126\1\0\5\126\1\307\17\126"+ - "\1\0\1\126\6\0\1\126\1\0\1\126\17\0\4\126"+ - "\1\0\1\126\1\0\16\126\1\u0147\6\126\1\0\1\126"+ - "\6\0\1\126\1\0\1\126\22\0\1\u0148\65\0\1\u0149"+ - "\77\0\1\u014a\67\0\1\376\60\0\1\u014b\70\0\1\u014c"+ - "\7\0\1\u014d\63\0\1\u014e\42\0\4\126\1\0\1\126"+ - "\1\0\12\126\1\366\12\126\1\0\1\126\6\0\1\126"+ - "\1\0\1\126\35\0\1\u014f\60\0\1\u0150\72\0\1\u0143"+ - "\60\0\1\u0151\66\0\1\u0117\64\0\1\260\100\0\1\u0117"+ - "\56\0\1\u0152\7\0\1\u0153\63\0\1\u0154\54\0\1\u0139"+ - "\64\0\1\371\100\0\1\u0139\40\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[16254]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\1\1\4\0\1\11\6\1\1\11\2\1\10\11"+ - "\3\1\1\11\3\1\4\11\5\1\1\11\1\1\1\11"+ - "\1\1\2\11\2\1\2\11\1\1\2\11\5\1\1\11"+ - "\4\1\1\11\2\0\1\11\3\0\1\1\15\0\15\1"+ - "\2\11\2\0\1\1\1\11\1\1\2\0\1\11\3\0"+ - "\2\1\1\0\2\11\33\0\11\1\15\0\1\1\16\0"+ - "\1\11\14\0\11\1\26\0\1\1\2\0\1\1\14\0"+ - "\10\1\5\0\1\1\31\0\6\1\21\0\3\1\14\0"+ - "\2\1\7\0\1\1\11\0\1\11\3\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[340]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int CSS_C_STYLE_COMMENT = 5; + public static final int LESS_EOL_COMMENT = 6; + public static final int YYINITIAL = 0; + public static final int CSS_STRING = 3; + public static final int CSS_VALUE = 2; + public static final int CSS_PROPERTY = 1; + public static final int CSS_CHAR_LITERAL = 4; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\41\1\64\25\0\1\41\1\53\1\60\1\37\1\55\1\46" + + "\1\50\1\61\1\44\1\65\1\5\1\54\1\57\1\4\1\6\1\42" + "\12\1\1\7\1\40\1\0\1\54\1\63\1\51\1\35\6\47\24\2" + + "\1\52\1\43\1\52\1\63\1\3\1\0\1\21\1\34\1\15\1\20" + "\1\26\1\23\1\33\1\14\1\16\1\2\1\30\1\17\1\27\1\13" + + "\1\11\1\25\1\2\1\10\1\22\1\12\1\32\1\31\1\36\1\45" + "\1\24\1\2\1\56\1\63\1\62\1\54\uff81\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 = "\2\0\1\1\4\0\1\2\1\3\2\4\1\5\2\2" + "\1\6\1\7\1\2\1\10\1\11\1\1\1\12\1\13" + + "\1\14\1\15\1\16\1\17\2\20\1\21\3\16\1\22" + "\1\23\1\24\1\25\1\26\2\1\2\25\1\27\1\1" + + "\1\30\1\25\1\31\1\32\1\33\1\34\1\35\1\36" + "\1\33\1\37\1\40\5\33\1\41\4\33\1\42\2\0" + + "\1\3\3\0\1\4\15\0\12\43\1\3\1\44\1\3" + "\1\45\1\46\2\0\1\47\1\50\1\51\2\0\1\26" + "\3\0\1\26\1\52\1\0\1\34\1\53\33\0\11\43" + + "\15\0\1\17\16\0\1\17\14\0\11\43\26\0\1\54" + "\2\0\1\55\14\0\5\43\1\56\2\43\5\0\1\20" + + "\31\0\6\43\21\0\3\43\14\0\2\43\7\0\1\43" + "\11\0\1\57\3\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[340]; + 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\66\0\154\0\242\0\330\0\u010e\0\u0144\0\u017a" + + "\0\u01b0\0\u01e6\0\u021c\0\u0252\0\u0288\0\u02be\0\u017a\0\u02f4" + + "\0\u032a\0\u017a\0\u017a\0\u017a\0\u017a\0\u017a\0\u017a\0\u017a" + + "\0\u017a\0\u0360\0\u0396\0\u03cc\0\u017a\0\u0402\0\u0438\0\u046e" + + "\0\u017a\0\u017a\0\u017a\0\u017a\0\u04a4\0\u04da\0\u0510\0\u0402" + + "\0\u0546\0\u017a\0\u057c\0\u017a\0\u05b2\0\u017a\0\u017a\0\u05e8" + + "\0\u061e\0\u017a\0\u017a\0\u0654\0\u017a\0\u017a\0\u068a\0\u06c0" + + "\0\u06f6\0\u072c\0\u0762\0\u017a\0\u0798\0\u07ce\0\u0804\0\u083a" + + "\0\u017a\0\u0870\0\u08a6\0\u017a\0\u08dc\0\u0912\0\u0948\0\u097e" + + "\0\u09b4\0\u09ea\0\u0a20\0\u0a56\0\u0a8c\0\u0ac2\0\u0af8\0\u0b2e" + + "\0\u0b64\0\u0b9a\0\u0bd0\0\u0c06\0\u0c3c\0\u0c72\0\u0ca8\0\u0cde" + + "\0\u0d14\0\u0d4a\0\u0d80\0\u0db6\0\u0dec\0\u0e22\0\u0e58\0\u0e8e" + + "\0\u0ec4\0\u0efa\0\u017a\0\u017a\0\u0f30\0\u0f66\0\u0f9c\0\u017a" + + "\0\u0fd2\0\u1008\0\u103e\0\u017a\0\u1074\0\u10aa\0\u10e0\0\u0546" + + "\0\u04da\0\u1116\0\u017a\0\u017a\0\u114c\0\u1182\0\u11b8\0\u11ee" + + "\0\u1224\0\u125a\0\u1290\0\u12c6\0\u12fc\0\u1332\0\u1368\0\u139e" + + "\0\u13d4\0\u140a\0\u1440\0\u1476\0\u14ac\0\u14e2\0\u1518\0\u154e" + + "\0\u1584\0\u15ba\0\u15f0\0\u1626\0\u165c\0\u1692\0\u16c8\0\u16fe" + + "\0\u1734\0\u176a\0\u17a0\0\u17d6\0\u180c\0\u1842\0\u1878\0\u18ae" + + "\0\u18e4\0\u191a\0\u1950\0\u1986\0\u19bc\0\u19f2\0\u1a28\0\u1a5e" + + "\0\u1a94\0\u1aca\0\u1b00\0\u1b36\0\u1b6c\0\u1ba2\0\u1bd8\0\u1c0e" + + "\0\u1c44\0\u1c7a\0\u1cb0\0\u1ce6\0\u1d1c\0\u1d52\0\u1d88\0\u1dbe" + + "\0\u1df4\0\u1e2a\0\u1e60\0\u1e96\0\u017a\0\u1ecc\0\u1f02\0\u1f38" + + "\0\u1f6e\0\u1fa4\0\u1fda\0\u2010\0\u2046\0\u207c\0\u20b2\0\u20e8" + + "\0\u211e\0\u2154\0\u218a\0\u21c0\0\u21f6\0\u222c\0\u2262\0\u2298" + + "\0\u22ce\0\u2304\0\u233a\0\u2370\0\u23a6\0\u23dc\0\u2412\0\u2448" + + "\0\u247e\0\u24b4\0\u24ea\0\u2520\0\u2556\0\u258c\0\u25c2\0\u25f8" + + "\0\u262e\0\u2664\0\u269a\0\u26d0\0\u2706\0\u273c\0\u2772\0\u27a8" + + "\0\u27de\0\u2814\0\u284a\0\u2880\0\u28b6\0\u28ec\0\u2922\0\u2958" + + "\0\u298e\0\u29c4\0\u29fa\0\u2a30\0\u2a66\0\u2a9c\0\u2ad2\0\u2b08" + + "\0\u2b3e\0\u2b74\0\u2baa\0\u2be0\0\u2c16\0\u0c72\0\u2c4c\0\u2c82" + + "\0\u2cb8\0\u2cee\0\u2d24\0\u2d5a\0\u2d90\0\u2dc6\0\u2dfc\0\u2e32" + + "\0\u2e68\0\u2e9e\0\u2ed4\0\u2f0a\0\u2f40\0\u2f76\0\u2fac\0\u2fe2" + + "\0\u3018\0\u304e\0\u3084\0\u30ba\0\u27de\0\u30f0\0\u2880\0\u3126" + + "\0\u315c\0\u3192\0\u31c8\0\u31fe\0\u3234\0\u326a\0\u32a0\0\u32d6" + + "\0\u330c\0\u3342\0\u3378\0\u33ae\0\u33e4\0\u341a\0\u3450\0\u3486" + + "\0\u34bc\0\u34f2\0\u3528\0\u355e\0\u3594\0\u35ca\0\u3600\0\u3636" + + "\0\u366c\0\u36a2\0\u36d8\0\u370e\0\u3744\0\u377a\0\u37b0\0\u37e6" + + "\0\u381c\0\u3852\0\u3888\0\u38be\0\u38f4\0\u392a\0\u3960\0\u3996" + + "\0\u39cc\0\u3a02\0\u3a38\0\u3a6e\0\u3aa4\0\u3ada\0\u3b10\0\u3b46" + + "\0\u3b7c\0\u3bb2\0\u3be8\0\u3c1e\0\u3c54\0\u3c8a\0\u3cc0\0\u3cf6" + + "\0\u3d2c\0\u3d62\0\u3d98\0\u3dce\0\u3e04\0\u3e3a\0\u3e70\0\u3ea6" + "\0\u017a\0\u3edc\0\u3f12\0\u3f48"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[340]; + 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 = "\1\10\1\11\2\12\1\13\2\12\1\14\25\12\1\15" + "\1\12\1\16\1\17\1\20\1\21\1\10\1\17\1\12" + + "\1\10\1\12\2\10\1\17\1\10\2\22\1\23\1\24" + "\1\25\1\26\1\27\1\22\1\30\1\17\2\31\3\32" + + "\1\33\1\34\1\35\25\32\1\36\1\32\2\31\1\20" + "\1\37\2\31\1\32\1\31\1\32\1\40\5\31\1\41" + + "\3\31\1\42\1\31\1\43\1\31\1\44\1\45\2\46" + "\1\47\1\44\1\24\1\44\25\46\1\50\1\46\1\51" + + "\1\52\1\20\1\53\1\46\1\54\1\46\1\44\1\46" + "\3\44\1\55\3\44\1\24\1\25\1\26\1\42\1\44" + + "\1\56\1\57\43\60\1\61\14\60\1\62\3\60\1\63" + "\1\60\43\64\1\61\15\64\1\65\2\64\1\66\1\64" + + "\5\67\1\70\6\67\1\71\6\67\1\72\12\67\1\73" + "\25\67\1\74\1\67\14\75\1\76\6\75\1\77\12\75" + + "\1\100\25\75\1\101\1\75\67\0\1\11\4\0\1\11" + "\6\0\1\102\1\103\3\0\1\104\2\0\1\105\1\106" + + "\1\107\16\0\1\104\20\0\4\12\1\0\1\12\1\0" + "\25\12\1\0\1\12\6\0\1\12\1\0\1\12\17\0" + + "\1\110\3\12\1\0\1\12\1\0\25\12\1\0\1\12" + "\6\0\1\12\1\0\1\12\25\0\1\111\1\112\1\113" + + "\1\114\1\115\1\116\1\117\1\0\1\120\1\121\1\122" + "\1\0\1\123\2\0\1\124\2\0\1\125\36\0\3\126" + + "\3\0\3\126\1\127\1\126\1\130\1\131\1\126\1\132" + "\2\126\1\133\1\126\1\134\1\126\1\135\1\136\1\137" + + "\3\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0" + "\1\140\5\141\1\0\5\141\1\142\2\141\2\142\1\141" + + "\1\142\2\141\1\142\5\141\1\142\1\0\1\141\6\0" + "\1\141\1\0\1\142\57\0\1\20\31\0\1\143\34\0" + + "\1\144\24\0\4\32\1\0\1\34\1\145\25\32\1\0" + "\1\32\6\0\1\32\1\0\1\32\17\0\1\34\3\32" + + "\1\0\1\34\1\146\25\32\1\0\1\32\6\0\1\32" + "\1\0\1\32\17\0\4\34\1\0\1\34\1\146\25\34" + + "\1\0\1\34\6\0\1\34\1\0\1\34\20\0\3\147" + "\3\0\25\147\1\0\1\147\6\0\1\147\1\0\1\147" + + "\23\0\1\143\34\0\1\150\25\0\5\151\1\0\25\151" + "\1\0\1\151\6\0\1\151\1\0\1\151\17\0\1\45" + + "\4\0\1\45\6\0\1\152\1\153\3\0\1\154\2\0" + "\1\155\1\156\1\157\16\0\1\154\21\0\3\46\3\0" + + "\25\46\1\0\1\46\3\0\2\46\1\54\1\46\1\0" + "\1\46\17\0\1\45\3\46\3\0\25\46\1\0\1\46" + + "\3\0\2\46\1\54\1\46\1\0\1\46\17\0\1\160" + "\13\0\1\160\2\0\2\160\1\0\1\160\2\0\1\160" + + "\5\0\1\160\12\0\1\160\20\0\3\46\1\143\2\0" + "\25\46\1\0\1\46\3\0\1\161\1\46\1\54\1\46" + + "\1\0\1\46\34\0\1\162\47\0\43\60\1\0\14\60" + "\1\0\3\60\1\0\1\60\64\163\1\0\1\163\43\64" + + "\1\0\15\64\1\0\2\64\1\0\1\64\5\67\1\0" + "\6\67\1\0\6\67\1\0\12\67\1\0\25\67\1\0" + + "\1\67\42\0\1\164\35\0\1\165\65\0\1\166\3\0" + "\1\167\105\0\1\170\27\0\14\75\1\0\6\75\1\0" + + "\12\75\1\0\25\75\1\0\1\75\12\0\1\171\65\0" + "\1\172\3\0\1\173\105\0\1\174\56\0\1\104\51\0" + + "\1\104\64\0\1\104\2\0\1\104\27\0\1\104\47\0" + "\1\104\15\0\1\104\42\0\1\104\4\0\1\104\37\0" + + "\1\110\3\12\1\0\1\110\1\0\25\12\1\0\1\12" + "\6\0\1\12\1\104\1\12\37\0\1\175\1\0\1\176" + + "\10\0\1\177\42\0\1\200\67\0\1\201\73\0\1\202" + "\55\0\1\203\1\204\64\0\1\205\70\0\1\206\67\0" + + "\1\207\2\0\1\210\62\0\1\211\64\0\1\212\61\0" + "\1\213\4\0\1\214\62\0\1\215\13\0\1\216\54\0" + + "\1\217\50\0\4\126\1\0\1\126\1\0\25\126\1\0" + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + + "\1\126\1\0\11\126\1\220\13\126\1\0\1\126\6\0" + "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0" + + "\4\126\1\221\20\126\1\0\1\126\6\0\1\126\1\0" + "\1\126\17\0\4\126\1\0\1\126\1\0\17\126\1\222" + + "\5\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0" + "\4\126\1\0\1\126\1\0\1\126\1\223\23\126\1\0" + + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + "\1\126\1\0\1\126\1\224\23\126\1\0\1\126\6\0" + + "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0" + "\11\126\1\225\13\126\1\0\1\126\6\0\1\126\1\0" + + "\1\126\17\0\4\126\1\0\1\126\1\0\16\126\1\226" + "\6\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0" + + "\4\126\1\0\1\126\1\0\16\126\1\227\6\126\1\0" + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + + "\1\126\1\0\6\126\1\230\16\126\1\0\1\126\6\0" + "\1\126\1\0\1\126\17\0\1\140\13\0\1\140\2\0" + + "\2\140\1\0\1\140\2\0\1\140\5\0\1\140\12\0" + "\1\140\17\0\4\141\1\0\1\141\1\0\25\141\1\0" + + "\1\141\6\0\1\141\1\0\1\141\17\0\1\142\3\141" + "\1\0\1\141\1\0\5\141\1\142\2\141\2\142\1\141" + + "\1\142\2\141\1\142\5\141\1\142\1\0\1\141\6\0" + "\1\141\1\0\1\142\25\0\1\231\1\232\1\233\1\234" + + "\1\235\1\236\1\237\1\0\1\240\1\241\1\242\1\0" + "\1\243\2\0\1\244\2\0\1\245\4\0\1\246\36\0" + + "\1\231\1\232\1\233\1\234\1\235\1\236\1\237\1\0" + "\1\240\1\241\1\242\1\0\1\243\2\0\1\244\2\0" + + "\1\245\35\0\4\147\1\0\1\147\1\0\25\147\1\0" + "\1\147\6\0\1\147\1\0\1\147\17\0\4\151\1\0" + + "\1\151\1\0\25\151\1\0\1\151\6\0\1\151\1\0" + "\1\151\45\0\1\154\51\0\1\154\64\0\1\154\2\0" + + "\1\154\27\0\1\154\47\0\1\154\15\0\1\154\42\0" + "\1\154\4\0\1\154\65\0\1\247\50\0\1\250\100\0" + + "\1\251\57\0\1\252\104\0\1\253\41\0\1\254\100\0" + "\1\255\57\0\1\256\104\0\1\257\52\0\1\260\60\0" + + "\1\261\75\0\1\262\50\0\1\203\73\0\1\263\56\0" + "\1\264\67\0\1\265\67\0\1\266\102\0\1\267\62\0" + + "\1\270\52\0\1\271\65\0\1\272\6\0\1\273\65\0" + "\1\215\55\0\1\274\70\0\1\275\60\0\1\276\76\0" + + "\1\277\71\0\1\300\62\0\1\301\44\0\4\126\1\0" + "\1\126\1\0\17\126\1\302\5\126\1\0\1\126\6\0" + + "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0" + "\11\126\1\303\13\126\1\0\1\126\6\0\1\126\1\0" + + "\1\126\17\0\4\126\1\0\1\126\1\0\15\126\1\304" + "\7\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0" + + "\4\126\1\0\1\126\1\0\5\126\1\305\17\126\1\0" + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + + "\1\126\1\0\3\126\1\306\21\126\1\0\1\126\6\0" + "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0" + + "\23\126\1\307\1\126\1\0\1\126\6\0\1\126\1\0" + "\1\126\17\0\4\126\1\0\1\126\1\0\10\126\1\310" + + "\14\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0" + "\4\126\1\0\1\126\1\0\14\126\1\311\10\126\1\0" + + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + "\1\126\1\0\16\126\1\312\6\126\1\0\1\126\6\0" + + "\1\126\1\0\1\126\37\0\1\313\1\0\1\314\10\0" + "\1\315\42\0\1\316\67\0\1\317\73\0\1\320\55\0" + + "\1\321\1\322\64\0\1\323\70\0\1\324\67\0\1\325" + "\2\0\1\326\62\0\1\327\64\0\1\330\61\0\1\331" + + "\4\0\1\332\62\0\1\333\13\0\1\334\54\0\1\335" + "\105\0\1\246\54\0\1\336\65\0\1\337\47\0\1\340" + + "\104\0\1\251\45\0\1\341\104\0\1\342\47\0\1\343" + "\104\0\1\255\45\0\1\344\71\0\1\267\63\0\1\345" + + "\100\0\1\346\66\0\1\347\74\0\1\350\36\0\1\351" + "\107\0\1\352\54\0\1\353\100\0\1\265\70\0\1\265" + + "\44\0\1\347\71\0\1\354\101\0\1\355\55\0\1\273" + "\77\0\1\356\43\0\1\357\71\0\1\360\50\0\4\126" + + "\1\0\1\126\1\0\16\126\1\361\6\126\1\0\1\126" + "\6\0\1\126\1\0\1\126\17\0\4\126\1\0\1\126" + + "\1\0\1\362\24\126\1\0\1\126\6\0\1\126\1\0" + "\1\126\17\0\4\126\1\0\1\126\1\0\1\126\1\363" + + "\23\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0" + "\4\126\1\0\1\126\1\0\22\126\1\364\2\126\1\0" + + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + "\1\126\1\0\2\126\1\365\22\126\1\0\1\126\6\0" + + "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0" + "\16\126\1\366\6\126\1\0\1\126\6\0\1\126\1\0" + + "\1\126\17\0\4\126\1\0\1\126\1\0\6\126\1\367" + "\16\126\1\0\1\126\6\0\1\126\1\0\1\126\17\0" + + "\4\126\1\0\1\126\1\0\13\126\1\370\11\126\1\0" + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + + "\1\126\1\0\25\126\1\0\1\222\6\0\1\126\1\0" + "\1\126\41\0\1\371\60\0\1\372\75\0\1\373\50\0" + + "\1\321\73\0\1\374\56\0\1\375\67\0\1\376\67\0" + "\1\377\102\0\1\u0100\62\0\1\u0101\52\0\1\u0102\65\0" + + "\1\u0103\6\0\1\u0104\65\0\1\333\55\0\1\u0105\70\0" + "\1\u0106\60\0\1\u0107\76\0\1\u0108\71\0\1\u0109\62\0" + + "\1\u010a\54\0\1\u010b\63\0\1\340\12\0\1\251\105\0" + "\1\u010c\24\0\2\341\5\u010d\25\341\1\u010d\1\341\2\u010d" + + "\1\0\1\341\1\0\1\u010d\1\341\1\u010d\1\341\5\u010d" + "\1\341\1\0\1\u010d\1\0\1\u010d\3\0\1\u010d\7\0" + + "\1\343\12\0\1\255\105\0\1\u010e\24\0\2\344\5\u010f" + "\25\344\1\u010f\1\344\2\u010f\1\0\1\344\1\0\1\u010f" + + "\1\344\1\u010f\1\344\5\u010f\1\344\1\0\1\u010f\1\0" + "\1\u010f\3\0\1\u010f\22\0\1\u0110\54\0\1\u0111\60\0" + + "\1\u0112\107\0\1\203\50\0\1\u0113\3\0\1\u0114\1\0" + "\1\u0115\56\0\1\265\105\0\1\u0116\66\0\1\u0117\56\0" + + "\1\265\62\0\1\u0116\72\0\1\265\53\0\1\u0116\54\0" + "\4\126\1\0\1\126\1\0\12\126\1\u0118\12\126\1\0" + + "\1\126\6\0\1\126\1\0\1\126\17\0\4\126\1\0" + "\1\126\1\0\12\126\1\u0119\12\126\1\0\1\126\6\0" + + "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0" + "\1\u011a\24\126\1\0\1\126\6\0\1\126\1\0\1\126" + + "\17\0\4\126\1\0\1\126\1\0\17\126\1\u011b\5\126" + "\1\0\1\126\6\0\1\126\1\0\1\126\17\0\3\126" + + "\1\u011c\1\0\1\126\1\0\25\126\1\0\1\126\6\0" + "\1\126\1\0\1\126\17\0\4\126\1\0\1\126\1\0" + + "\11\126\1\366\13\126\1\0\1\126\6\0\1\126\1\0" + "\1\126\17\0\4\126\1\0\1\126\1\0\1\u011d\24\126" + + "\1\0\1\126\6\0\1\126\1\0\1\126\30\0\1\u0100" + "\63\0\1\u011e\100\0\1\u011f\66\0\1\u0120\74\0\1\u0121" + + "\41\0\1\146\62\0\1\u0122\107\0\1\u0123\54\0\1\u0124" + "\100\0\1\376\70\0\1\376\44\0\1\u0120\71\0\1\u0125" + + "\101\0\1\u0126\55\0\1\u0104\77\0\1\u0127\43\0\1\u0128" + "\71\0\1\u0129\57\0\1\u012a\117\0\1\341\65\0\1\344" + + "\35\0\1\u012b\63\0\1\u0117\66\0\1\u0113\3\0\1\u0114" + "\73\0\1\u012c\56\0\1\u012d\72\0\1\276\72\0\1\u012e" + + "\65\0\1\265\40\0\4\126\1\0\1\126\1\0\15\126" + "\1\u012f\7\126\1\0\1\126\6\0\1\126\1\0\1\126" + + "\17\0\4\126\1\0\1\126\1\0\16\126\1\u011a\6\126" + "\1\0\1\126\6\0\1\126\1\0\1\126\17\0\4\126" + + "\1\0\1\126\1\0\2\126\1\366\22\126\1\0\1\126" + "\6\0\1\126\1\0\1\126\17\0\4\126\1\0\1\126" + + "\1\0\16\126\1\u0130\6\126\1\0\1\126\6\0\1\126" + "\1\0\1\126\17\0\4\126\1\0\1\126\1\0\13\126" + + "\1\u012f\11\126\1\0\1\126\6\0\1\126\1\0\1\126" + "\17\0\4\126\1\0\1\126\1\0\11\126\1\u0131\13\126" + + "\1\0\1\126\6\0\1\126\1\0\1\126\40\0\1\u0132" + "\54\0\1\u0133\60\0\1\u0134\107\0\1\321\50\0\1\u0135" + + "\3\0\1\u0136\1\0\1\u0137\56\0\1\376\105\0\1\u0138" + "\66\0\1\u0139\56\0\1\376\62\0\1\u0138\72\0\1\376" + + "\53\0\1\u0138\65\0\1\u013a\57\0\1\u013b\65\0\1\u013c" + "\77\0\1\u013d\67\0\1\265\46\0\4\126\1\0\1\126" + + "\1\0\11\126\1\u013e\13\126\1\0\1\126\6\0\1\126" + "\1\0\1\126\17\0\4\126\1\0\1\126\1\0\3\126" + + "\1\u011a\21\126\1\0\1\126\6\0\1\126\1\0\1\126" + "\17\0\4\126\1\0\1\126\1\0\17\126\1\u013f\5\126" + + "\1\0\1\126\6\0\1\126\1\0\1\126\30\0\1\u0140" + "\63\0\1\u0139\66\0\1\u0135\3\0\1\u0136\73\0\1\u0141" + + "\56\0\1\u0142\72\0\1\u0107\72\0\1\u0143\65\0\1\376" + "\60\0\1\u0144\63\0\1\u0145\60\0\1\u0146\72\0\1\u012e" + + "\47\0\4\126\1\0\1\126\1\0\5\126\1\307\17\126" + "\1\0\1\126\6\0\1\126\1\0\1\126\17\0\4\126" + + "\1\0\1\126\1\0\16\126\1\u0147\6\126\1\0\1\126" + "\6\0\1\126\1\0\1\126\22\0\1\u0148\65\0\1\u0149" + + "\77\0\1\u014a\67\0\1\376\60\0\1\u014b\70\0\1\u014c" + "\7\0\1\u014d\63\0\1\u014e\42\0\4\126\1\0\1\126" + + "\1\0\12\126\1\366\12\126\1\0\1\126\6\0\1\126" + "\1\0\1\126\35\0\1\u014f\60\0\1\u0150\72\0\1\u0143" + + "\60\0\1\u0151\66\0\1\u0117\64\0\1\260\100\0\1\u0117" + "\56\0\1\u0152\7\0\1\u0153\63\0\1\u0154\54\0\1\u0139" + + "\64\0\1\371\100\0\1\u0139\40\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[16254]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\1\1\4\0\1\11\6\1\1\11\2\1\10\11" + "\3\1\1\11\3\1\4\11\5\1\1\11\1\1\1\11" + + "\1\1\2\11\2\1\2\11\1\1\2\11\5\1\1\11" + "\4\1\1\11\2\0\1\11\3\0\1\1\15\0\15\1" + "\2\11\2\0\1\1\1\11\1\1\2\0\1\11\3\0" + + "\2\1\1\0\2\11\33\0\11\1\15\0\1\1\16\0" + "\1\11\14\0\11\1\26\0\1\1\2\0\1\1\14\0" + "\10\1\5\0\1\1\31\0\6\1\21\0\3\1\14\0" + + "\2\1\7\0\1\1\11\0\1\11\3\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[340]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Internal type denoting a line ending in a CSS property. */ - public static final int INTERNAL_CSS_PROPERTY = -1; - + public static final int INTERNAL_CSS_PROPERTY = -1; /** * Internal type denoting a line ending in a CSS property value. */ - public static final int INTERNAL_CSS_VALUE = -2; - + public static final int INTERNAL_CSS_VALUE = -2; /** * Internal type denoting line ending in a CSS double-quote string. * The state to return to is embedded in the actual end token type. */ - public static final int INTERNAL_CSS_STRING = -(1<<11); - + public static final int INTERNAL_CSS_STRING = -(1 << 11); /** * Internal type denoting line ending in a CSS single-quote string. * The state to return to is embedded in the actual end token type. */ - public static final int INTERNAL_CSS_CHAR = -(2<<11); - + public static final int INTERNAL_CSS_CHAR = -(2 << 11); /** * Internal type denoting line ending in a CSS multi-line comment. * The state to return to is embedded in the actual end token type. */ - public static final int INTERNAL_CSS_MLC = -(3<<11); - + public static final int INTERNAL_CSS_MLC = -(3 << 11); /** * The state previous CSS-related state we were in before going into a CSS * string, multi-line comment, etc. */ private int cssPrevState; - /** * Whether we are highlighting less instead of CSS. */ private boolean highlightingLess; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public CSSTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * Returns the closest {@link TokenTypes "standard" token type} for a given * "internal" token type (e.g. one whose value is < 0). @@ -640,8 +496,7 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { } return type; } - - + /** * Returns true since CSS uses curly braces. * @@ -650,49 +505,47 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { public boolean getCurlyBracesDenoteCodeBlocks() { return true; } - - + /** * {@inheritDoc} */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.RESERVED_WORD; // Used for CSS keys + return type == Token.RESERVED_WORD; // Used for CSS keys } - - + /** * {@inheritDoc} */ @Override public boolean getShouldIndentNextLineAfter(Token t) { - if (t!=null && t.length()==1) { + if (t != null && t.length() == 1) { char ch = t.charAt(0); - return ch=='{' || ch=='('; + return ch == '{' || ch == '('; } return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; cssPrevState = YYINITIAL; // Shouldn't be necessary - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -712,7 +565,7 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { state = CSS_VALUE; break; default: - if (initialTokenType<-1024) { + if (initialTokenType < -1024) { int main = -(-initialTokenType & 0xffffff00); switch (main) { default: // Should never happen @@ -726,13 +579,11 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { state = CSS_C_STYLE_COMMENT; break; } - cssPrevState = -initialTokenType&0xff; - } - else { + cssPrevState = -initialTokenType & 0xff; + } else { state = YYINITIAL; } } - start = text.offset; s = text; try { @@ -743,40 +594,36 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Overridden to accept letters, digits, underscores, and hyphens. */ @Override public boolean isIdentifierChar(int languageIndex, char ch) { - return Character.isLetterOrDigit(ch) || ch=='-' || ch=='.' || ch=='_'; + return Character.isLetterOrDigit(ch) || ch == '-' || ch == '.' || ch == '_'; } - - + /** * Toggles whether we're highlighting less instead of just CSS. * - * @param highlightingLess Whether we're highlighting less. + * @param highlightingLess + * Whether we're highlighting less. */ public void setHighlightingLess(boolean highlightingLess) { this.highlightingLess = highlightingLess; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -785,7 +632,8 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -794,366 +642,550 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 CSSTokenMaker(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 CSSTokenMaker(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 < 134) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 1: - { addToken(Token.IDENTIFIER); - } - case 48: break; - case 2: - { /*System.out.println("yyinitial: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 49: break; - case 25: - { addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 50: break; - case 16: - { addToken(highlightingLess ? Token.RESERVED_WORD : Token.IDENTIFIER); - } - case 51: break; - case 9: - { addToken(Token.SEPARATOR); yybegin(CSS_PROPERTY); - } - case 52: break; - case 29: - { addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(cssPrevState); - } - case 53: break; - case 32: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 54: break; - case 37: - { start = zzMarkedPos-2; cssPrevState = zzLexicalState; yybegin(CSS_C_STYLE_COMMENT); - } - case 55: break; - case 31: - { addToken(start,zzStartRead, Token.LITERAL_CHAR); yybegin(cssPrevState); - } - case 56: break; - case 43: - { addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); yybegin(cssPrevState); - } - case 57: break; - case 12: - { addToken(highlightingLess ? Token.SEPARATOR : Token.IDENTIFIER); - } - case 58: break; - case 10: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_STRING); - } - case 59: break; - case 17: - { addToken(Token.OPERATOR); yybegin(CSS_VALUE); - } - case 60: break; - case 38: - { if (highlightingLess) { - start = zzMarkedPos-2; yybegin(LESS_EOL_COMMENT); - } - else { // Highlight the "//" as an identifier and continue on - int temp = zzStartRead + 2; - addToken(zzStartRead, zzStartRead + 1, Token.IDENTIFIER); - zzStartRead = temp; - } - } - case 61: break; - case 5: - { /* Unknown pseudo class */ addToken(Token.DATA_TYPE); - } - case 62: break; - case 23: - { addToken(Token.OPERATOR); yybegin(CSS_PROPERTY); - } - case 63: break; - case 28: - { /* Skip escaped chars. */ - } - case 64: break; - case 46: - { addToken(Token.REGEX); - } - case 65: break; - case 36: - { addToken(highlightingLess ? Token.ANNOTATION : Token.VARIABLE); - } - case 66: break; - case 3: - { addToken(highlightingLess ? Token.LITERAL_NUMBER_DECIMAL_INT : Token.IDENTIFIER); - } - case 67: break; - case 20: - { addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 68: break; - case 7: - { addToken(Token.WHITESPACE); - } - case 69: break; - case 19: - { addToken(Token.SEPARATOR); yybegin(YYINITIAL); - } - case 70: break; - case 47: - { addToken(Token.PREPROCESSOR); - } - case 71: break; - case 4: - { addToken(Token.DATA_TYPE); - } - case 72: break; - case 24: - { int temp = zzMarkedPos - 2; - addToken(zzStartRead, temp, Token.FUNCTION); - addToken(zzMarkedPos-1, zzMarkedPos-1, Token.SEPARATOR); - zzStartRead = zzCurrentPos = zzMarkedPos; - } - case 73: break; - case 35: - { addToken(highlightingLess ? Token.VARIABLE : Token.REGEX); - } - case 74: break; - case 18: - { addToken(Token.SEPARATOR); /* helps with auto-closing curlies when editing CSS */ - } - case 75: break; - case 34: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); + + /** + * 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 CSSTokenMaker(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 CSSTokenMaker(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 < 134) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 1: { + addToken(Token.IDENTIFIER); + } + case 48: + break; + case 2: { + /* System.out.println("yyinitial: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 49: + break; + case 25: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 50: + break; + case 16: { + addToken(highlightingLess ? Token.RESERVED_WORD : Token.IDENTIFIER); + } + case 51: + break; + case 9: { + addToken(Token.SEPARATOR); + yybegin(CSS_PROPERTY); + } + case 52: + break; + case 29: { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(cssPrevState); + } + case 53: + break; + case 32: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 54: + break; + case 37: { + start = zzMarkedPos - 2; + cssPrevState = zzLexicalState; + yybegin(CSS_C_STYLE_COMMENT); + } + case 55: + break; + case 31: { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + yybegin(cssPrevState); + } + case 56: + break; + case 43: { + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + yybegin(cssPrevState); + } + case 57: + break; + case 12: { + addToken(highlightingLess ? Token.SEPARATOR : Token.IDENTIFIER); + } + case 58: + break; + case 10: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_STRING); + } + case 59: + break; + case 17: { + addToken(Token.OPERATOR); + yybegin(CSS_VALUE); + } + case 60: + break; + case 38: { + if (highlightingLess) { + start = zzMarkedPos - 2; + yybegin(LESS_EOL_COMMENT); + } else { // Highlight the "//" as an identifier and continue + // on + int temp = zzStartRead + 2; + addToken(zzStartRead, zzStartRead + 1, Token.IDENTIFIER); + zzStartRead = temp; + } + } + case 61: + break; + case 5: { + /* Unknown pseudo class */ addToken(Token.DATA_TYPE); + } + case 62: + break; + case 23: { + addToken(Token.OPERATOR); + yybegin(CSS_PROPERTY); + } + case 63: + break; + case 28: { /* Skip escaped chars. */ + } + case 64: + break; + case 46: { + addToken(Token.REGEX); + } + case 65: + break; + case 36: { + addToken(highlightingLess ? Token.ANNOTATION : Token.VARIABLE); + } + case 66: + break; + case 3: { + addToken(highlightingLess ? Token.LITERAL_NUMBER_DECIMAL_INT : Token.IDENTIFIER); + } + case 67: + break; + case 20: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 68: + break; + case 7: { + addToken(Token.WHITESPACE); + } + case 69: + break; + case 19: { + addToken(Token.SEPARATOR); + yybegin(YYINITIAL); + } + case 70: + break; + case 47: { + addToken(Token.PREPROCESSOR); + } + case 71: + break; + case 4: { + addToken(Token.DATA_TYPE); + } + case 72: + break; + case 24: { + int temp = zzMarkedPos - 2; + addToken(zzStartRead, temp, Token.FUNCTION); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.SEPARATOR); + zzStartRead = zzCurrentPos = zzMarkedPos; + } + case 73: + break; + case 35: { + addToken(highlightingLess ? Token.VARIABLE : Token.REGEX); + } + case 74: + break; + case 18: { + addToken(Token.SEPARATOR); /* + * helps with auto-closing + * curlies when editing CSS + */ + } + case 75: + break; + case 34: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + switch (cssPrevState) { + case CSS_PROPERTY: + addEndToken(INTERNAL_CSS_PROPERTY); + break; + case CSS_VALUE: + addEndToken(INTERNAL_CSS_VALUE); + break; + default: // Should be YYINITIAL + addNullToken(); + break; + } + return firstToken; + } + case 76: + break; + case 22: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 77: + break; + case 30: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); + return firstToken; + } + case 78: + break; + case 33: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 79: + break; + case 26: { + /* End of a function */ addToken(Token.SEPARATOR); + } + case 80: + break; + case 41: { + if (highlightingLess) { + // Unfortunately, as we're sharing the CSS and Less + // syntax highlighting, we do not color nested selectors + // properly. For uniformity, color this the same as + // CSS_Property + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 81: + break; + case 39: { + addToken(highlightingLess ? Token.VARIABLE : Token.IDENTIFIER); + } + case 82: + break; + case 14: { + /* System.out.println("css_property: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 83: + break; + case 15: { + addToken(Token.RESERVED_WORD); + } + case 84: + break; + case 44: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 85: + break; + case 11: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_CHAR_LITERAL); + } + case 86: + break; + case 6: { + addToken(Token.SEPARATOR); + } + case 87: + break; + case 13: { + addNullToken(); + return firstToken; + } + case 88: + break; + case 40: { + if (highlightingLess) { + cssPrevState = zzLexicalState; + start = zzMarkedPos - 2; + yybegin(LESS_EOL_COMMENT); + } else { // Highlight the "//" as an identifier and continue + // on + int temp = zzStartRead + 2; + addToken(zzStartRead, zzStartRead + 1, Token.IDENTIFIER); + zzStartRead = temp; + } + } + case 89: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 90: + break; + case 21: { + /* System.out.println("css_value: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 91: + break; + case 45: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 92: + break; + case 42: { // This must be before {CSS_Value} since "//" is a + // valid CSS value + if (highlightingLess) { + cssPrevState = zzLexicalState; + start = zzMarkedPos - 2; + yybegin(LESS_EOL_COMMENT); + } else { // Highlight the "//" as an identifier and continue + // on + int temp = zzStartRead + 2; + addToken(zzStartRead, zzStartRead + 1, Token.IDENTIFIER); + zzStartRead = temp; + } + } + case 93: + break; + case 27: {} + case 94: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case CSS_C_STYLE_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 341: + break; + case LESS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); switch (cssPrevState) { case CSS_PROPERTY: addEndToken(INTERNAL_CSS_PROPERTY); @@ -1166,160 +1198,48 @@ public class CSSTokenMaker extends AbstractJFlexCTokenMaker { break; } return firstToken; - } - case 76: break; - case 22: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 77: break; - case 30: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 78: break; - case 33: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 79: break; - case 26: - { /* End of a function */ addToken(Token.SEPARATOR); - } - case 80: break; - case 41: - { if (highlightingLess) { - // Unfortunately, as we're sharing the CSS and Less - // syntax highlighting, we do not color nested selectors - // properly. For uniformity, color this the same as - // CSS_Property - addToken(Token.RESERVED_WORD); - } - else { - addToken(Token.IDENTIFIER); - } - } - case 81: break; - case 39: - { addToken(highlightingLess ? Token.VARIABLE : Token.IDENTIFIER); - } - case 82: break; - case 14: - { /*System.out.println("css_property: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 83: break; - case 15: - { addToken(Token.RESERVED_WORD); - } - case 84: break; - case 44: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 85: break; - case 11: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_CHAR_LITERAL); - } - case 86: break; - case 6: - { addToken(Token.SEPARATOR); - } - case 87: break; - case 13: - { addNullToken(); return firstToken; - } - case 88: break; - case 40: - { if (highlightingLess) { - cssPrevState = zzLexicalState; - start = zzMarkedPos-2; yybegin(LESS_EOL_COMMENT); - } - else { // Highlight the "//" as an identifier and continue on - int temp = zzStartRead + 2; - addToken(zzStartRead, zzStartRead + 1, Token.IDENTIFIER); - zzStartRead = temp; - } - } - case 89: break; - case 8: - { addToken(Token.OPERATOR); - } - case 90: break; - case 21: - { /*System.out.println("css_value: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 91: break; - case 45: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 92: break; - case 42: - { // This must be before {CSS_Value} since "//" is a valid CSS value - if (highlightingLess) { - cssPrevState = zzLexicalState; - start = zzMarkedPos-2; yybegin(LESS_EOL_COMMENT); - } - else { // Highlight the "//" as an identifier and continue on - int temp = zzStartRead + 2; - addToken(zzStartRead, zzStartRead + 1, Token.IDENTIFIER); - zzStartRead = temp; - } - } - case 93: break; - case 27: - { - } - case 94: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case CSS_C_STYLE_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 341: break; - case LESS_EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); - switch (cssPrevState) { - case CSS_PROPERTY: - addEndToken(INTERNAL_CSS_PROPERTY); - break; - case CSS_VALUE: - addEndToken(INTERNAL_CSS_VALUE); - break; - default: // Should be YYINITIAL - addNullToken(); - break; - } + } + case 342: + break; + case YYINITIAL: { + addNullToken(); return firstToken; - } - case 342: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 343: break; - case CSS_STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 344: break; - case CSS_VALUE: { - addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 345: break; - case CSS_PROPERTY: { - addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 346: break; - case CSS_CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 347: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 343: + break; + case CSS_STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); + return firstToken; + } + case 344: + break; + case CSS_VALUE: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 345: + break; + case CSS_PROPERTY: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 346: + break; + case CSS_CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 347: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/CSharpTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/CSharpTokenMaker.java index 8b0d5cb..7a414e1 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/CSharpTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/CSharpTokenMaker.java @@ -1,1111 +1,625 @@ /* The following code was generated by JFlex 1.4.1 on 1/21/09 4:27 PM */ - /* * 11/13/2004 - * * CSharpTokenMaker.java - An object that can take a chunk of text and return * a linked list of tokens representing it in the C# programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * A lexer for the C# programming language. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated CSharpTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated CSharpTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class CSharpTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int VERBATIMSTRING = 3; - public static final int DOCUMENTCOMMENT = 2; - public static final int YYINITIAL = 0; - public static final int DELIMITEDCOMMENT = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\2\1\1\1\0\2\15\22\0\1\2\1\45\1\41\1\16"+ - "\1\66\1\45\1\46\1\37\2\65\1\4\1\32\1\56\1\12\1\36"+ - "\1\3\1\30\11\11\1\44\1\56\1\53\1\52\1\54\1\51\1\14"+ - "\3\27\1\35\1\33\1\35\5\10\1\26\1\34\7\10\1\7\2\10"+ - "\1\31\2\10\1\65\1\5\1\65\1\50\1\13\1\0\1\23\1\42"+ - "\1\71\1\57\1\21\1\22\1\64\1\67\1\60\1\75\1\72\1\24"+ - "\1\73\1\61\1\62\1\70\1\10\1\20\1\25\1\17\1\6\1\40"+ - "\1\63\1\43\1\74\1\76\1\55\1\47\1\55\1\51\uff81\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 = - "\2\0\2\1\1\2\1\3\1\4\2\5\2\6\1\7"+ - "\1\5\3\2\7\6\1\7\1\5\1\2\1\10\1\6"+ - "\1\11\1\6\5\5\1\12\11\6\1\1\1\13\5\1"+ - "\1\14\1\1\1\15\3\1\1\16\1\17\1\0\1\20"+ - "\1\21\5\6\1\22\1\7\1\22\1\23\1\7\1\0"+ - "\1\24\7\2\14\6\1\25\10\6\1\22\1\23\1\26"+ - "\1\10\1\27\2\6\2\11\1\30\4\6\2\25\21\6"+ - "\1\31\7\0\1\32\2\0\1\1\7\0\1\20\1\33"+ - "\5\6\1\7\1\23\1\0\7\2\1\34\1\2\17\6"+ - "\1\25\10\6\1\35\1\10\1\36\2\10\1\26\1\10"+ - "\3\6\1\11\1\37\3\11\7\6\1\40\20\6\20\0"+ - "\1\6\1\40\2\6\6\2\1\41\12\6\2\35\2\10"+ - "\1\26\2\6\2\11\16\6\1\0\1\42\2\0\1\43"+ - "\7\0\3\2\10\6\1\35\2\10\1\26\1\6\2\11"+ - "\10\6\7\0\2\2\3\6\2\10\1\26\1\11\5\6"+ - "\2\0\1\2\3\6\1\0\1\6"; - - private static int [] zzUnpackAction() { - int [] result = new int[364]; - 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\77\0\176\0\275\0\374\0\u013b\0\u017a\0\u01b9"+ - "\0\u01f8\0\u0237\0\u0276\0\u02b5\0\u02f4\0\u0333\0\u013b\0\u0372"+ - "\0\u03b1\0\u03f0\0\u042f\0\u046e\0\u04ad\0\u04ec\0\u052b\0\u056a"+ - "\0\u05a9\0\u05e8\0\u0627\0\u0666\0\u06a5\0\u06e4\0\u013b\0\u0723"+ - "\0\u0762\0\u07a1\0\u07e0\0\u013b\0\u013b\0\u081f\0\u085e\0\u089d"+ - "\0\u08dc\0\u091b\0\u095a\0\u0999\0\u09d8\0\u0a17\0\u013b\0\u0a56"+ - "\0\u0a95\0\u0ad4\0\u0b13\0\u0b52\0\u013b\0\u0b91\0\u0bd0\0\u0c0f"+ - "\0\u0c4e\0\u0c8d\0\u013b\0\u0ccc\0\u0d0b\0\u0d4a\0\u013b\0\u0d89"+ - "\0\u0dc8\0\u0e07\0\u0e46\0\u0e85\0\u0ec4\0\u0f03\0\u0f42\0\u0ec4"+ - "\0\u0f81\0\u05e8\0\u013b\0\u0fc0\0\u0fff\0\u103e\0\u107d\0\u10bc"+ - "\0\u10fb\0\u113a\0\u1179\0\u11b8\0\u11f7\0\u1236\0\u1275\0\u12b4"+ - "\0\u12f3\0\u1332\0\u1371\0\u13b0\0\u13ef\0\u142e\0\u0276\0\u146d"+ - "\0\u14ac\0\u14eb\0\u152a\0\u1569\0\u15a8\0\u15e7\0\u1626\0\u1665"+ - "\0\u16a4\0\u16e3\0\u1722\0\u013b\0\u1761\0\u17a0\0\u17df\0\u181e"+ - "\0\u013b\0\u185d\0\u189c\0\u18db\0\u191a\0\u1959\0\u1998\0\u19d7"+ - "\0\u1a16\0\u1a55\0\u1a94\0\u1ad3\0\u1b12\0\u1b51\0\u1b90\0\u1bcf"+ - "\0\u1c0e\0\u1c4d\0\u1c8c\0\u1ccb\0\u1d0a\0\u1d49\0\u1d88\0\u1dc7"+ - "\0\u013b\0\u1e06\0\u1e45\0\u1e84\0\u1ec3\0\u1f02\0\u1f41\0\u0bd0"+ - "\0\u013b\0\u1f80\0\u1fbf\0\u013b\0\u1ffe\0\u203d\0\u207c\0\u20bb"+ - "\0\u20fa\0\u2139\0\u2178\0\u21b7\0\u013b\0\u21f6\0\u2235\0\u2274"+ - "\0\u22b3\0\u22f2\0\u0ec4\0\u2331\0\u2370\0\u23af\0\u23ee\0\u242d"+ - "\0\u246c\0\u24ab\0\u24ea\0\u2529\0\u2568\0\u25a7\0\u25e6\0\u2625"+ - "\0\u2664\0\u26a3\0\u26e2\0\u2721\0\u2760\0\u279f\0\u27de\0\u281d"+ - "\0\u285c\0\u289b\0\u28da\0\u2919\0\u2958\0\u2997\0\u29d6\0\u2a15"+ - "\0\u2a54\0\u2a93\0\u2ad2\0\u2b11\0\u2b50\0\u2b8f\0\u2bce\0\u2c0d"+ - "\0\u013b\0\u2c4c\0\u2c8b\0\u2cca\0\u2d09\0\u2d48\0\u2d87\0\u2dc6"+ - "\0\u2e05\0\u013b\0\u2e44\0\u2e83\0\u2ec2\0\u2f01\0\u2f40\0\u2f7f"+ - "\0\u2fbe\0\u2ffd\0\u303c\0\u307b\0\u30ba\0\u30f9\0\u3138\0\u3177"+ - "\0\u31b6\0\u31f5\0\u3234\0\u3273\0\u32b2\0\u32f1\0\u3330\0\u336f"+ - "\0\u33ae\0\u33ed\0\u342c\0\u346b\0\u34aa\0\u34e9\0\u3528\0\u3567"+ - "\0\u35a6\0\u35e5\0\u3624\0\u3663\0\u36a2\0\u36e1\0\u3720\0\u375f"+ - "\0\u379e\0\u37dd\0\u381c\0\u385b\0\u389a\0\u38d9\0\u0276\0\u3918"+ - "\0\u3957\0\u3996\0\u39d5\0\u3a14\0\u3a53\0\u3a92\0\u3ad1\0\u0276"+ - "\0\u3b10\0\u3b4f\0\u3b8e\0\u3bcd\0\u3c0c\0\u3c4b\0\u3c8a\0\u3cc9"+ - "\0\u3d08\0\u3d47\0\u3d86\0\u3dc5\0\u3e04\0\u3e43\0\u3e82\0\u3ec1"+ - "\0\u3f00\0\u3f3f\0\u3f7e\0\u3fbd\0\u3ffc\0\u403b\0\u407a\0\u40b9"+ - "\0\u40f8\0\u4137\0\u4176\0\u41b5\0\u41f4\0\u4233\0\u4272\0\u42b1"+ - "\0\u42f0\0\u432f\0\u436e\0\u43ad\0\u43ec\0\u442b\0\u446a\0\u44a9"+ - "\0\u44e8\0\u4527\0\u4566\0\u45a5\0\u45e4\0\u4623\0\u4662\0\u46a1"+ - "\0\u46e0\0\u471f\0\u475e\0\u479d\0\u47dc\0\u481b\0\u485a\0\u4899"+ - "\0\u0ec4\0\u48d8\0\u4917\0\u4956\0\u4995\0\u49d4\0\u4a13\0\u4a52"+ - "\0\u4a91\0\u4ad0\0\u4b0f\0\u4b4e\0\u4b8d\0\u4bcc\0\u4c0b\0\u4c4a"+ - "\0\u436e\0\u4c89\0\u442b\0\u4cc8\0\u4d07\0\u4d46\0\u4d85\0\u4dc4"+ - "\0\u4e03\0\u4e42\0\u4e81\0\u4ec0\0\u4eff\0\u4f3e\0\u4f7d\0\u4fbc"+ - "\0\u4ffb\0\u503a\0\u5079\0\u50b8\0\u50f7\0\u5136\0\u5175\0\u51b4"+ - "\0\u51f3\0\u5232\0\u5271\0\u52b0"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[364]; - 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 = - "\1\5\1\6\1\7\1\10\1\11\1\5\1\12\2\13"+ - "\1\14\1\15\1\13\1\16\1\17\1\20\1\21\1\22"+ - "\1\23\1\24\1\25\1\26\1\27\2\13\1\30\1\13"+ - "\1\31\3\13\1\32\1\33\1\34\1\35\1\36\1\13"+ - "\1\37\1\11\1\40\1\41\1\11\1\37\1\11\1\42"+ - "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+ - "\1\53\1\44\1\5\1\13\1\54\1\55\5\13\1\56"+ - "\1\57\2\56\1\60\15\56\1\61\40\56\1\62\3\56"+ - "\1\63\7\56\1\64\1\65\20\64\1\66\30\64\1\67"+ - "\7\64\1\70\3\64\1\71\7\64\1\72\1\73\37\72"+ - "\1\74\35\72\1\5\4\0\5\5\1\0\2\5\1\0"+ - "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0"+ - "\6\5\1\0\11\5\101\0\1\7\13\0\1\75\63\0"+ - "\1\76\1\77\45\0\1\37\76\0\1\37\24\0\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\5\13\1\101\1\102\4\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\1\13\1\103\1\104\3\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\105"+ - "\4\0\1\105\2\106\1\105\1\14\1\0\2\105\1\0"+ - "\3\105\1\107\1\110\1\105\1\111\1\105\1\111\1\105"+ - "\1\14\1\105\1\0\1\107\2\110\1\112\1\0\1\105"+ - "\1\0\2\105\13\0\1\110\5\105\1\0\5\105\1\110"+ - "\3\105\12\0\1\37\37\0\1\37\1\0\1\37\22\0"+ - "\1\5\4\0\1\5\3\13\1\5\1\0\1\13\1\5"+ - "\1\0\1\5\11\13\1\5\1\13\1\0\3\13\2\0"+ - "\1\13\1\113\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\1\0\1\75\2\0\1\5\1\114\3\5\1\0"+ - "\2\5\1\0\2\5\1\115\1\116\2\5\1\117\5\5"+ - "\1\0\3\5\2\0\1\5\1\0\2\5\13\0\1\120"+ - "\1\121\2\5\1\122\1\5\1\0\12\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\1\13\1\123"+ - "\11\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\1\124\4\13\1\125\2\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\2\13\1\126\10\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\5\13"+ - "\1\127\5\13\1\0\3\13\2\0\1\130\1\0\1\13"+ - "\1\131\13\0\2\13\1\132\3\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\4\13\1\133\1\134\5\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\1\13\1\135\1\13\1\136"+ - "\2\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\6\13\1\137\4\13"+ - "\1\0\3\13\2\0\1\13\1\0\1\140\1\13\13\0"+ - "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\3\13\1\141\2\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\142\1\13\1\143\10\13"+ - "\1\0\3\13\2\0\1\13\1\0\1\144\1\13\13\0"+ - "\1\13\1\145\2\13\1\146\1\13\1\0\1\5\1\147"+ - "\7\13\1\105\4\0\1\105\2\106\1\105\1\14\1\0"+ - "\2\105\1\0\3\105\1\107\1\110\1\105\1\111\1\105"+ - "\1\111\1\105\1\14\1\150\1\0\1\107\2\110\1\112"+ - "\1\0\1\105\1\0\1\105\1\150\13\0\1\110\5\105"+ - "\1\0\5\105\1\110\3\105\32\0\1\37\17\0\1\37"+ - "\35\0\1\151\16\0\1\151\46\0\1\152\1\0\3\152"+ - "\1\153\31\152\1\154\37\152\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\1\13\1\155\1\13"+ - "\1\156\2\13\1\0\1\5\10\13\1\35\1\157\3\35"+ - "\1\160\33\35\1\161\35\35\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\1\13\1\162\2\13"+ - "\1\127\6\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\3\13\1\163\2\13\1\0\1\5\5\13\1\164"+ - "\2\13\46\0\1\37\3\0\1\37\73\0\1\37\2\0"+ - "\1\37\76\0\1\37\1\11\75\0\1\37\1\0\1\11"+ - "\22\0\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\2\13\1\165\10\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\3\13\1\166\2\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\3\13\1\137\2\13\1\137\4\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\2\13"+ - "\1\167\3\13\1\0\1\5\4\13\1\170\3\13\1\5"+ - "\4\0\1\5\1\171\3\13\1\100\1\13\1\5\1\0"+ - "\1\5\2\13\1\172\1\13\1\173\6\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\1\174\3\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\175"+ - "\1\0\1\176\1\13\13\0\6\13\1\0\1\5\1\13"+ - "\1\177\6\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\1\200\7\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\3\13\1\201\2\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\1\202\3\13\1\100\1\13\1\5\1\0"+ - "\1\5\1\13\1\203\2\13\1\204\6\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\4\13\1\205\1\206\5\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\3\13\1\207\2\13"+ - "\1\0\1\5\1\210\7\13\1\56\1\0\2\56\1\0"+ - "\15\56\1\0\40\56\1\0\3\56\1\0\7\56\3\0"+ - "\1\211\112\0\1\212\40\0\1\213\101\0\1\214\32\0"+ - "\1\215\57\0\1\64\1\0\20\64\1\0\30\64\1\0"+ - "\7\64\1\0\3\64\1\0\7\64\17\0\1\216\40\0"+ - "\1\217\16\0\54\220\1\221\22\220\63\0\1\222\32\0"+ - "\1\223\57\0\1\72\1\0\37\72\1\0\35\72\41\0"+ - "\1\224\37\0\1\75\3\0\1\225\11\0\1\226\1\227"+ - "\2\0\1\230\32\0\1\231\1\232\2\0\1\233\13\0"+ - "\3\234\1\235\73\234\6\0\6\100\3\0\13\100\1\0"+ - "\3\100\2\0\1\100\1\0\2\100\13\0\6\100\2\0"+ - "\10\100\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\3\13\1\236\2\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\1\13\1\237\4\13\1\0\1\5\1\147\7\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\2\13\1\240\3\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\6\13\1\241\4\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\2\13\1\242\5\13"+ - "\1\105\4\0\5\105\1\0\2\105\1\0\14\105\1\0"+ - "\3\105\2\0\1\105\1\0\2\105\13\0\6\105\1\0"+ - "\12\105\4\0\5\105\1\0\2\105\1\0\6\105\1\243"+ - "\1\105\1\243\3\105\1\0\3\105\2\0\1\105\1\0"+ - "\2\105\13\0\6\105\1\0\12\105\4\0\4\105\1\244"+ - "\1\245\2\105\1\0\12\105\1\244\1\105\1\245\3\105"+ - "\2\0\1\105\1\0\2\105\13\0\6\105\1\0\12\105"+ - "\4\0\1\105\2\243\2\105\1\0\2\105\1\0\14\105"+ - "\1\0\3\105\2\0\1\105\1\0\2\105\13\0\6\105"+ - "\1\0\11\105\1\5\4\0\5\5\1\0\2\5\1\0"+ - "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0"+ - "\2\5\1\246\3\5\1\0\12\5\4\0\5\5\1\0"+ - "\2\5\1\0\3\5\1\247\10\5\1\0\3\5\2\0"+ - "\1\5\1\0\2\5\13\0\6\5\1\0\12\5\4\0"+ - "\5\5\1\0\2\5\1\0\2\5\1\250\3\5\1\251"+ - "\5\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0"+ - "\2\5\1\252\3\5\1\0\12\5\4\0\5\5\1\0"+ - "\2\5\1\0\14\5\1\0\3\5\2\0\1\5\1\0"+ - "\2\5\13\0\1\5\1\253\4\5\1\0\12\5\4\0"+ - "\5\5\1\0\2\5\1\0\3\5\1\254\10\5\1\0"+ - "\3\5\2\0\1\5\1\0\2\5\13\0\6\5\1\0"+ - "\12\5\4\0\5\5\1\0\2\5\1\0\4\5\1\255"+ - "\7\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0"+ - "\6\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0"+ - "\5\5\1\256\6\5\1\0\3\5\2\0\1\5\1\0"+ - "\2\5\13\0\6\5\1\0\12\5\4\0\1\5\1\257"+ - "\3\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\5\13\1\137\2\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\1\13\1\260\11\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\1\13"+ - "\1\261\4\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\1\13\1\262\6\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\1\263\2\13\1\137"+ - "\1\264\6\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\6\13\1\265"+ - "\4\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\2\13\1\266\10\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\267\12\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\1\13\1\270\6\13\1\5\4\0\1\5\1\271\3\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\5\13\1\272\5\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\3\13\1\273\2\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\13\13\1\0\3\13\2\0\1\13\1\0\1\13\1\274"+ - "\13\0\2\13\1\275\3\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\1\13\1\276\11\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\6\13"+ - "\1\277\4\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\2\13\1\300"+ - "\3\13\1\0\1\5\2\13\1\301\5\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\13"+ - "\1\302\2\13\1\303\6\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\4\13\1\304\6\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\5\13\1\164\2\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\7\13\1\262\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\1\13\1\305\4\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\3\13\1\306\2\13\1\0\1\5"+ - "\10\13\1\105\4\0\4\105\1\307\1\0\2\105\1\0"+ - "\3\105\3\307\3\105\2\307\1\105\1\0\1\307\1\105"+ - "\1\307\2\0\1\105\1\0\1\307\1\105\13\0\1\307"+ - "\5\105\1\0\3\105\1\307\6\105\4\0\4\105\1\151"+ - "\1\0\2\105\1\0\3\105\1\107\1\110\5\105\1\151"+ - "\1\105\1\0\1\107\2\110\2\0\1\105\1\0\2\105"+ - "\13\0\1\110\5\105\1\0\5\105\1\110\3\105\1\310"+ - "\1\0\35\310\1\311\40\310\1\0\3\310\1\152\1\312"+ - "\1\313\7\310\2\152\1\310\2\152\4\310\1\152\6\310"+ - "\1\314\3\152\1\315\15\310\1\152\15\310\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\13"+ - "\1\316\11\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\5\13\1\317"+ - "\5\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\1\13\1\320\4\13\1\0\1\5\10\13\5\157\1\321"+ - "\33\157\1\322\36\157\1\0\3\157\1\35\1\323\1\324"+ - "\7\157\2\35\1\157\2\35\4\157\1\35\6\157\4\35"+ - "\1\325\15\157\1\35\15\157\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\2\13\1\326\10\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\3\13\1\327\2\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\1\330\12\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\3\13\1\331\1\13\1\332\5\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\2\13\1\333\5\13\1\5\4\0\1\5\1\334\3\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\1\335\12\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\13\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\1\13\1\270\6\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\5\13"+ - "\1\336\5\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\4\13\1\137"+ - "\1\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\4\13\1\337\3\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\137\12\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\2\13\1\340\10\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\6\13\1\341\1\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\2\13\1\342\10\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\1\13"+ - "\1\343\4\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\1\344\12\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\1\345\1\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\1\13\1\346\1\13\1\347\2\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\1\13\1\350\11\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\1\351\5\13\1\265\4\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\4\13\1\352\6\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\2\13\1\353\3\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\2\13\1\354\1\13\1\355\6\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\70\0\1\356\32\0\1\357\135\0\1\360\32\0\1\361"+ - "\147\0\1\362\32\0\1\363\135\0\1\364\32\0\1\365"+ - "\140\0\1\366\36\0\1\367\75\0\1\370\3\0\1\371"+ - "\34\0\1\372\75\0\1\373\37\0\1\374\77\0\1\255"+ - "\77\0\1\375\53\0\1\234\1\0\75\234\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\2\13"+ - "\1\300\3\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\2\13\1\376"+ - "\3\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\1\377\12\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\4\13\1\u0100\6\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\1\u0101\7\13\1\105"+ - "\4\0\4\105\1\244\1\0\2\105\1\0\4\105\1\110"+ - "\5\105\1\244\1\105\1\0\1\105\2\110\2\0\1\105"+ - "\1\0\2\105\13\0\1\110\5\105\1\0\5\105\1\110"+ - "\3\105\11\0\1\244\16\0\1\244\46\0\1\5\4\0"+ - "\5\5\1\0\2\5\1\0\14\5\1\0\3\5\2\0"+ - "\1\5\1\0\2\5\13\0\1\u0102\5\5\1\0\12\5"+ - "\4\0\5\5\1\0\2\5\1\0\14\5\1\0\3\5"+ - "\2\0\1\5\1\0\2\5\13\0\5\5\1\u0103\1\0"+ - "\12\5\4\0\5\5\1\0\2\5\1\0\2\5\1\u0104"+ - "\11\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0"+ - "\6\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0"+ - "\7\5\1\u0105\4\5\1\0\3\5\2\0\1\5\1\0"+ - "\2\5\13\0\1\5\1\121\4\5\1\0\12\5\4\0"+ - "\5\5\1\0\2\5\1\0\14\5\1\0\3\5\2\0"+ - "\1\5\1\0\2\5\13\0\1\u0106\5\5\1\0\12\5"+ - "\4\0\5\5\1\0\2\5\1\0\14\5\1\0\3\5"+ - "\2\0\1\5\1\0\2\5\13\0\2\5\1\u0105\3\5"+ - "\1\0\12\5\4\0\5\5\1\0\2\5\1\0\4\5"+ - "\1\117\7\5\1\0\3\5\2\0\1\5\1\0\2\5"+ - "\13\0\6\5\1\0\11\5\1\255\1\0\75\255\1\5"+ - "\4\0\5\5\1\0\2\5\1\0\2\5\1\u0107\11\5"+ - "\1\0\3\5\2\0\1\5\1\0\2\5\13\0\6\5"+ - "\1\0\12\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\2\13\1\u0108\10\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\3\13\1\172\2\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\6\13\1\137\4\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13"+ - "\1\u0109\10\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\1\u010a\3\13\1\100\1\13\1\5\1\0\1\5\13\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\1\u010b\5\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\2\13\1\137\10\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\2\13\1\174\3\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\2\13\1\u010a\10\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\5\13"+ - "\1\u010c\5\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\4\13\1\137\3\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\6\13\1\257\4\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\4\13\1\240\6\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\2\13\1\320\10\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\4\13\1\u010d\6\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\2\13\1\u010e\10\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\1\u010f\12\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\5\13\1\377"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\3\13"+ - "\1\137\4\13\1\5\4\0\1\5\1\u0110\3\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\1\13\1\237\4\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\1\u0111\12\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\2\13"+ - "\1\u0112\5\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\5\13\1\274\5\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\1\351\12\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\1\13\1\240\11\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\105\4\0"+ - "\1\105\2\u0113\1\105\1\307\1\0\2\105\1\0\3\105"+ - "\3\307\1\u0114\1\105\1\u0114\2\307\1\105\1\0\1\307"+ - "\1\105\1\307\2\0\1\105\1\0\1\307\1\105\13\0"+ - "\1\307\5\105\1\0\3\105\1\307\5\105\1\310\1\0"+ - "\35\310\1\154\40\310\1\0\7\310\1\u0115\7\310\3\u0115"+ - "\3\310\2\u0115\2\310\1\u0115\1\310\1\u0115\1\310\1\154"+ - "\2\310\1\u0115\14\310\1\u0115\11\310\1\u0115\6\310\1\0"+ - "\7\310\1\u0116\7\310\3\u0116\3\310\2\u0116\2\310\1\u0116"+ - "\1\310\1\u0116\1\310\1\154\2\310\1\u0116\14\310\1\u0116"+ - "\11\310\1\u0116\5\310\37\0\1\311\37\0\1\310\1\0"+ - "\7\310\1\u0117\7\310\3\u0117\3\310\2\u0117\2\310\1\u0117"+ - "\1\310\1\u0117\1\310\1\154\2\310\1\u0117\14\310\1\u0117"+ - "\11\310\1\u0117\5\310\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\u0118\12\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\4\13\1\u0119\6\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\1\137\5\13\1\0\1\5\10\13\1\157\1\0"+ - "\102\157\1\321\3\157\1\u011a\7\157\3\u011a\3\157\2\u011a"+ - "\2\157\1\u011a\1\157\1\u011a\3\157\1\322\1\u011a\14\157"+ - "\1\u011a\11\157\1\u011a\12\157\1\321\3\157\1\u011b\7\157"+ - "\3\u011b\3\157\2\u011b\2\157\1\u011b\1\157\1\u011b\3\157"+ - "\1\322\1\u011b\14\157\1\u011b\11\157\1\u011b\12\157\1\321"+ - "\3\157\1\35\7\157\3\35\3\157\2\35\2\157\1\35"+ - "\1\157\1\35\3\157\1\322\1\35\14\157\1\35\11\157"+ - "\1\35\5\157\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\4\13\1\301\6\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\5\13\1\377\5\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\2\13\1\377\10\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\4\13\1\u011c\6\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13"+ - "\1\u011d\10\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\1\13\1\u011e"+ - "\4\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\1\u011f\1\13\13\0\6\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\2\13\1\u0120\10\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\5\13\1\137\5\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\2\13\1\u0121\10\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\1\13\1\u0122\11\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13"+ - "\1\u0110\10\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\1\13\1\u0123"+ - "\11\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\5\13\1\265\5\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\3\13\1\137\2\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\5\13\1\u0111\5\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\u0124\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\u0125"+ - "\12\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\4\13\1\u0126\6\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\2\13"+ - "\1\u0127\5\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\6\13\1\261\4\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\1\u0128\5\13\1\174\4\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\2\13\1\u0129\5\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\1\13\1\377\11\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\44\0"+ - "\1\u012a\53\0\1\356\113\0\1\u012b\130\0\1\u012c\52\0"+ - "\1\u012d\53\0\1\362\113\0\1\u012e\130\0\1\u012f\65\0"+ - "\1\u0130\103\0\1\u0131\32\0\1\u0132\103\0\1\u0133\32\0"+ - "\1\232\75\0\1\u0134\100\0\1\u0133\37\0\1\230\74\0"+ - "\1\u0135\56\0\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\5\13\1\137\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\3\13\1\265\7\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\2\13\1\354\10\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\5\5\1\0\2\5\1\0\3\5\1\121\10\5\1\0"+ - "\3\5\2\0\1\5\1\0\2\5\13\0\6\5\1\0"+ - "\12\5\4\0\5\5\1\0\2\5\1\0\14\5\1\0"+ - "\3\5\2\0\1\5\1\0\2\5\13\0\1\5\1\u0136"+ - "\4\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0"+ - "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0"+ - "\3\5\1\u0137\2\5\1\0\12\5\4\0\5\5\1\0"+ - "\2\5\1\0\3\5\1\255\10\5\1\0\3\5\2\0"+ - "\1\5\1\0\2\5\13\0\6\5\1\0\12\5\4\0"+ - "\5\5\1\0\2\5\1\0\2\5\1\115\11\5\1\0"+ - "\3\5\2\0\1\5\1\0\2\5\13\0\1\5\1\121"+ - "\4\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0"+ - "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0"+ - "\2\5\1\u0138\3\5\1\0\12\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\3\13\1\u0139\2\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\13\1\u013a\11\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\3\13\1\u013b\2\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\1\13\1\u013c\4\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\5\13\1\u013d\5\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\4\13\1\351\6\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\13"+ - "\1\u013e\11\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\2\13\1\174\5\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\1\13\1\u013f\4\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\3\13"+ - "\1\u0140\4\13\1\105\4\0\5\105\1\0\2\105\1\0"+ - "\6\105\1\u0141\1\105\1\u0141\3\105\1\0\3\105\2\0"+ - "\1\105\1\0\2\105\13\0\6\105\1\0\12\105\4\0"+ - "\1\105\2\u0141\2\105\1\0\2\105\1\0\14\105\1\0"+ - "\3\105\2\0\1\105\1\0\2\105\13\0\6\105\1\0"+ - "\11\105\1\310\1\0\7\310\1\u0142\7\310\3\u0142\3\310"+ - "\2\u0142\2\310\1\u0142\1\310\1\u0142\1\310\1\154\2\310"+ - "\1\u0142\14\310\1\u0142\11\310\1\u0142\6\310\1\0\7\310"+ - "\1\u0143\7\310\3\u0143\3\310\2\u0143\2\310\1\u0143\1\310"+ - "\1\u0143\1\310\1\154\2\310\1\u0143\14\310\1\u0143\11\310"+ - "\1\u0143\6\310\1\0\7\310\1\u0144\7\310\3\u0144\3\310"+ - "\2\u0144\2\310\1\u0144\1\310\1\u0144\1\310\1\311\2\310"+ - "\1\u0144\14\310\1\u0144\11\310\1\u0144\5\310\1\5\4\0"+ - "\1\5\1\u0145\3\13\1\100\1\13\1\5\1\0\1\5"+ - "\13\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\1\200\12\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\10\13\5\157\1\321\3\157\1\u0146\7\157\3\u0146"+ - "\3\157\2\u0146\2\157\1\u0146\1\157\1\u0146\3\157\1\322"+ - "\1\u0146\14\157\1\u0146\11\157\1\u0146\12\157\1\321\3\157"+ - "\1\u0147\7\157\3\u0147\3\157\2\u0147\2\157\1\u0147\1\157"+ - "\1\u0147\3\157\1\322\1\u0147\14\157\1\u0147\11\157\1\u0147"+ - "\5\157\1\5\4\0\1\5\1\u0148\3\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\13\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\5\13\1\u0124\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\4\13\1\u0145\3\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\5\13\1\330\5\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\13\1\u0149\11\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\6\13\1\u014a\4\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\1\13\1\u014b\11\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\4\13\1\u014c\6\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\4\13\1\u014d\6\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13"+ - "\1\u014e\10\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\4\13\1\261\3\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\1\137\7\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\1\13\1\u014f\4\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\3\13\1\274\4\13"+ - "\3\0\1\u0150\76\0\1\u012b\1\u0151\1\0\4\u012b\3\u0151"+ - "\1\0\1\u0151\13\u012b\1\u0151\3\u012b\2\u0151\1\u012b\1\0"+ - "\2\u012b\3\u0151\2\0\2\u0151\3\0\1\u0151\6\u012b\1\u0151"+ - "\11\u012b\25\0\1\356\16\0\1\u012a\35\0\1\u0152\76\0"+ - "\1\u012e\1\u0153\1\0\4\u012e\3\u0153\1\0\1\u0153\13\u012e"+ - "\1\u0153\3\u012e\2\u0153\1\u012e\1\0\2\u012e\3\u0153\2\0"+ - "\2\u0153\3\0\1\u0153\6\u012e\1\u0153\11\u012e\25\0\1\362"+ - "\16\0\1\u012d\53\0\1\232\135\0\1\u0154\100\0\1\u0155"+ - "\35\0\1\255\75\0\1\226\37\0\1\232\77\0\1\u0156"+ - "\15\0\1\5\4\0\5\5\1\0\2\5\1\0\14\5"+ - "\1\0\3\5\2\0\1\5\1\0\2\5\13\0\3\5"+ - "\1\u0157\2\5\1\0\12\5\4\0\5\5\1\0\2\5"+ - "\1\0\2\5\1\255\11\5\1\0\3\5\2\0\1\5"+ - "\1\0\2\5\13\0\6\5\1\0\12\5\4\0\5\5"+ - "\1\0\2\5\1\0\14\5\1\0\3\5\2\0\1\5"+ - "\1\0\2\5\13\0\1\5\1\u0158\4\5\1\0\12\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\3\13\1\137\7\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\2\13"+ - "\1\137\3\13\1\0\1\5\10\13\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\2\13\1\u013d"+ - "\3\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\2\13\1\u0159\5\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\5\13\1\u015a\5\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\4\13\1\u0110\6\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\2\13\1\137\5\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\4\13\1\u015b\6\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\310"+ - "\1\0\7\310\1\u015c\7\310\3\u015c\3\310\2\u015c\2\310"+ - "\1\u015c\1\310\1\u015c\1\310\1\154\2\310\1\u015c\14\310"+ - "\1\u015c\11\310\1\u015c\6\310\1\0\7\310\1\u015d\7\310"+ - "\3\u015d\3\310\2\u015d\2\310\1\u015d\1\310\1\u015d\1\310"+ - "\1\154\2\310\1\u015d\14\310\1\u015d\11\310\1\u015d\6\310"+ - "\1\0\7\310\1\u015e\7\310\3\u015e\3\310\2\u015e\2\310"+ - "\1\u015e\1\310\1\u015e\1\310\1\311\2\310\1\u015e\14\310"+ - "\1\u015e\11\310\1\u015e\5\310\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\4\13\1\336\6\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13"+ - "\1\0\1\5\10\13\5\157\1\321\3\157\1\325\7\157"+ - "\3\325\3\157\2\325\2\157\1\325\1\157\1\325\3\157"+ - "\1\322\1\325\14\157\1\325\11\157\1\325\12\157\1\321"+ - "\3\157\1\u015f\7\157\3\u015f\3\157\2\u015f\2\157\1\u015f"+ - "\1\157\1\u015f\3\157\1\322\1\u015f\14\157\1\u015f\11\157"+ - "\1\u015f\5\157\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\5\13\1\174\5\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\3\13\1\u0160\7\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\2\13\1\u0145\3\13\1\0"+ - "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\1\13\1\u0160"+ - "\6\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\1\13\1\u0161\4\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\1\u0162\12\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\265"+ - "\12\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\2\13\1\u0163\5\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0"+ - "\1\13\1\0\2\13\13\0\2\13\1\u0164\3\13\1\0"+ - "\1\5\10\13\3\0\1\u012b\76\0\1\u012e\155\0\1\u0165"+ - "\34\0\1\255\136\0\1\u0166\16\0\1\5\4\0\5\5"+ - "\1\0\2\5\1\0\14\5\1\0\3\5\2\0\1\5"+ - "\1\0\2\5\13\0\2\5\1\255\3\5\1\0\12\5"+ - "\4\0\5\5\1\0\2\5\1\0\14\5\1\0\3\5"+ - "\2\0\1\5\1\0\2\5\13\0\2\5\1\u0167\3\5"+ - "\1\0\12\5\4\0\1\5\4\13\1\100\1\13\1\5"+ - "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\1\13\1\174\4\13\1\0\1\5\10\13"+ - "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0"+ - "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13"+ - "\13\0\6\13\1\0\1\5\5\13\1\137\2\13\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\5\13\1\u0168\5\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\310\1\0"+ - "\7\310\1\152\7\310\3\152\3\310\2\152\2\310\1\152"+ - "\1\310\1\152\1\310\1\154\2\310\1\152\14\310\1\152"+ - "\11\310\1\152\6\310\1\0\7\310\1\312\7\310\3\312"+ - "\3\310\2\312\2\310\1\312\1\310\1\312\1\310\1\154"+ - "\2\310\1\312\14\310\1\312\11\310\1\312\6\310\1\0"+ - "\7\310\1\152\7\310\3\152\3\310\2\152\2\310\1\152"+ - "\1\310\1\152\1\310\1\311\2\310\1\152\14\310\1\152"+ - "\11\310\1\152\5\310\5\157\1\321\3\157\1\323\7\157"+ - "\3\323\3\157\2\323\2\157\1\323\1\157\1\323\3\157"+ - "\1\322\1\323\14\157\1\323\11\157\1\323\5\157\1\5"+ - "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5"+ - "\4\13\1\u0169\6\13\1\0\3\13\2\0\1\13\1\0"+ - "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0"+ - "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13"+ - "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\1\265"+ - "\5\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\3\13\1\u016a\2\13"+ - "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\274\12\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\10\13\1\5\4\0\1\5\1\265\3\13\1\100\1\13"+ - "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13"+ - "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\61\0"+ - "\1\255\76\0\1\u016b\15\0\1\5\4\0\5\5\1\0"+ - "\2\5\1\0\14\5\1\0\3\5\2\0\1\5\1\0"+ - "\2\5\13\0\5\5\1\255\1\0\12\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\5\13\1\u016c"+ - "\5\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0"+ - "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13"+ - "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13"+ - "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5"+ - "\2\13\1\265\5\13\1\5\4\0\1\5\4\13\1\100"+ - "\1\13\1\5\1\0\1\5\1\13\1\137\11\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0"+ - "\1\5\10\13\64\0\1\255\12\0\1\5\4\0\1\5"+ - "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0"+ - "\3\13\2\0\1\13\1\0\2\13\13\0\3\13\1\u013f"+ - "\2\13\1\0\1\5\10\13"; - - private static int [] zzUnpackTrans() { - int [] result = new int[21231]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\3\1\1\11\10\1\1\11\17\1\1\11\4\1"+ - "\2\11\11\1\1\11\5\1\1\11\5\1\1\11\1\1"+ - "\1\0\1\1\1\11\12\1\1\0\1\11\40\1\1\11"+ - "\4\1\1\11\27\1\1\11\7\0\1\11\2\0\1\11"+ - "\7\0\1\1\1\11\7\1\1\0\43\1\1\11\10\1"+ - "\1\11\33\1\20\0\54\1\1\0\1\1\2\0\1\1"+ - "\7\0\32\1\7\0\16\1\2\0\4\1\1\0\1\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[364]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int VERBATIMSTRING = 3; + public static final int DOCUMENTCOMMENT = 2; + public static final int YYINITIAL = 0; + public static final int DELIMITEDCOMMENT = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\2\1\1\1\0\2\15\22\0\1\2\1\45\1\41\1\16" + + "\1\66\1\45\1\46\1\37\2\65\1\4\1\32\1\56\1\12\1\36" + "\1\3\1\30\11\11\1\44\1\56\1\53\1\52\1\54\1\51\1\14" + + "\3\27\1\35\1\33\1\35\5\10\1\26\1\34\7\10\1\7\2\10" + "\1\31\2\10\1\65\1\5\1\65\1\50\1\13\1\0\1\23\1\42" + + "\1\71\1\57\1\21\1\22\1\64\1\67\1\60\1\75\1\72\1\24" + "\1\73\1\61\1\62\1\70\1\10\1\20\1\25\1\17\1\6\1\40" + + "\1\63\1\43\1\74\1\76\1\55\1\47\1\55\1\51\uff81\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 = "\2\0\2\1\1\2\1\3\1\4\2\5\2\6\1\7" + "\1\5\3\2\7\6\1\7\1\5\1\2\1\10\1\6" + + "\1\11\1\6\5\5\1\12\11\6\1\1\1\13\5\1" + "\1\14\1\1\1\15\3\1\1\16\1\17\1\0\1\20" + "\1\21\5\6\1\22\1\7\1\22\1\23\1\7\1\0" + + "\1\24\7\2\14\6\1\25\10\6\1\22\1\23\1\26" + "\1\10\1\27\2\6\2\11\1\30\4\6\2\25\21\6" + "\1\31\7\0\1\32\2\0\1\1\7\0\1\20\1\33" + + "\5\6\1\7\1\23\1\0\7\2\1\34\1\2\17\6" + "\1\25\10\6\1\35\1\10\1\36\2\10\1\26\1\10" + "\3\6\1\11\1\37\3\11\7\6\1\40\20\6\20\0" + + "\1\6\1\40\2\6\6\2\1\41\12\6\2\35\2\10" + "\1\26\2\6\2\11\16\6\1\0\1\42\2\0\1\43" + "\7\0\3\2\10\6\1\35\2\10\1\26\1\6\2\11" + + "\10\6\7\0\2\2\3\6\2\10\1\26\1\11\5\6" + "\2\0\1\2\3\6\1\0\1\6"; + + private static int[] zzUnpackAction() { + int[] result = new int[364]; + 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\77\0\176\0\275\0\374\0\u013b\0\u017a\0\u01b9" + + "\0\u01f8\0\u0237\0\u0276\0\u02b5\0\u02f4\0\u0333\0\u013b\0\u0372" + + "\0\u03b1\0\u03f0\0\u042f\0\u046e\0\u04ad\0\u04ec\0\u052b\0\u056a" + + "\0\u05a9\0\u05e8\0\u0627\0\u0666\0\u06a5\0\u06e4\0\u013b\0\u0723" + + "\0\u0762\0\u07a1\0\u07e0\0\u013b\0\u013b\0\u081f\0\u085e\0\u089d" + + "\0\u08dc\0\u091b\0\u095a\0\u0999\0\u09d8\0\u0a17\0\u013b\0\u0a56" + + "\0\u0a95\0\u0ad4\0\u0b13\0\u0b52\0\u013b\0\u0b91\0\u0bd0\0\u0c0f" + + "\0\u0c4e\0\u0c8d\0\u013b\0\u0ccc\0\u0d0b\0\u0d4a\0\u013b\0\u0d89" + + "\0\u0dc8\0\u0e07\0\u0e46\0\u0e85\0\u0ec4\0\u0f03\0\u0f42\0\u0ec4" + + "\0\u0f81\0\u05e8\0\u013b\0\u0fc0\0\u0fff\0\u103e\0\u107d\0\u10bc" + + "\0\u10fb\0\u113a\0\u1179\0\u11b8\0\u11f7\0\u1236\0\u1275\0\u12b4" + + "\0\u12f3\0\u1332\0\u1371\0\u13b0\0\u13ef\0\u142e\0\u0276\0\u146d" + + "\0\u14ac\0\u14eb\0\u152a\0\u1569\0\u15a8\0\u15e7\0\u1626\0\u1665" + + "\0\u16a4\0\u16e3\0\u1722\0\u013b\0\u1761\0\u17a0\0\u17df\0\u181e" + + "\0\u013b\0\u185d\0\u189c\0\u18db\0\u191a\0\u1959\0\u1998\0\u19d7" + + "\0\u1a16\0\u1a55\0\u1a94\0\u1ad3\0\u1b12\0\u1b51\0\u1b90\0\u1bcf" + + "\0\u1c0e\0\u1c4d\0\u1c8c\0\u1ccb\0\u1d0a\0\u1d49\0\u1d88\0\u1dc7" + + "\0\u013b\0\u1e06\0\u1e45\0\u1e84\0\u1ec3\0\u1f02\0\u1f41\0\u0bd0" + + "\0\u013b\0\u1f80\0\u1fbf\0\u013b\0\u1ffe\0\u203d\0\u207c\0\u20bb" + + "\0\u20fa\0\u2139\0\u2178\0\u21b7\0\u013b\0\u21f6\0\u2235\0\u2274" + + "\0\u22b3\0\u22f2\0\u0ec4\0\u2331\0\u2370\0\u23af\0\u23ee\0\u242d" + + "\0\u246c\0\u24ab\0\u24ea\0\u2529\0\u2568\0\u25a7\0\u25e6\0\u2625" + + "\0\u2664\0\u26a3\0\u26e2\0\u2721\0\u2760\0\u279f\0\u27de\0\u281d" + + "\0\u285c\0\u289b\0\u28da\0\u2919\0\u2958\0\u2997\0\u29d6\0\u2a15" + + "\0\u2a54\0\u2a93\0\u2ad2\0\u2b11\0\u2b50\0\u2b8f\0\u2bce\0\u2c0d" + + "\0\u013b\0\u2c4c\0\u2c8b\0\u2cca\0\u2d09\0\u2d48\0\u2d87\0\u2dc6" + + "\0\u2e05\0\u013b\0\u2e44\0\u2e83\0\u2ec2\0\u2f01\0\u2f40\0\u2f7f" + + "\0\u2fbe\0\u2ffd\0\u303c\0\u307b\0\u30ba\0\u30f9\0\u3138\0\u3177" + + "\0\u31b6\0\u31f5\0\u3234\0\u3273\0\u32b2\0\u32f1\0\u3330\0\u336f" + + "\0\u33ae\0\u33ed\0\u342c\0\u346b\0\u34aa\0\u34e9\0\u3528\0\u3567" + + "\0\u35a6\0\u35e5\0\u3624\0\u3663\0\u36a2\0\u36e1\0\u3720\0\u375f" + + "\0\u379e\0\u37dd\0\u381c\0\u385b\0\u389a\0\u38d9\0\u0276\0\u3918" + + "\0\u3957\0\u3996\0\u39d5\0\u3a14\0\u3a53\0\u3a92\0\u3ad1\0\u0276" + + "\0\u3b10\0\u3b4f\0\u3b8e\0\u3bcd\0\u3c0c\0\u3c4b\0\u3c8a\0\u3cc9" + + "\0\u3d08\0\u3d47\0\u3d86\0\u3dc5\0\u3e04\0\u3e43\0\u3e82\0\u3ec1" + + "\0\u3f00\0\u3f3f\0\u3f7e\0\u3fbd\0\u3ffc\0\u403b\0\u407a\0\u40b9" + + "\0\u40f8\0\u4137\0\u4176\0\u41b5\0\u41f4\0\u4233\0\u4272\0\u42b1" + + "\0\u42f0\0\u432f\0\u436e\0\u43ad\0\u43ec\0\u442b\0\u446a\0\u44a9" + + "\0\u44e8\0\u4527\0\u4566\0\u45a5\0\u45e4\0\u4623\0\u4662\0\u46a1" + + "\0\u46e0\0\u471f\0\u475e\0\u479d\0\u47dc\0\u481b\0\u485a\0\u4899" + + "\0\u0ec4\0\u48d8\0\u4917\0\u4956\0\u4995\0\u49d4\0\u4a13\0\u4a52" + + "\0\u4a91\0\u4ad0\0\u4b0f\0\u4b4e\0\u4b8d\0\u4bcc\0\u4c0b\0\u4c4a" + + "\0\u436e\0\u4c89\0\u442b\0\u4cc8\0\u4d07\0\u4d46\0\u4d85\0\u4dc4" + + "\0\u4e03\0\u4e42\0\u4e81\0\u4ec0\0\u4eff\0\u4f3e\0\u4f7d\0\u4fbc" + + "\0\u4ffb\0\u503a\0\u5079\0\u50b8\0\u50f7\0\u5136\0\u5175\0\u51b4" + "\0\u51f3\0\u5232\0\u5271\0\u52b0"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[364]; + 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 = "\1\5\1\6\1\7\1\10\1\11\1\5\1\12\2\13" + "\1\14\1\15\1\13\1\16\1\17\1\20\1\21\1\22" + + "\1\23\1\24\1\25\1\26\1\27\2\13\1\30\1\13" + "\1\31\3\13\1\32\1\33\1\34\1\35\1\36\1\13" + + "\1\37\1\11\1\40\1\41\1\11\1\37\1\11\1\42" + "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52" + + "\1\53\1\44\1\5\1\13\1\54\1\55\5\13\1\56" + "\1\57\2\56\1\60\15\56\1\61\40\56\1\62\3\56" + + "\1\63\7\56\1\64\1\65\20\64\1\66\30\64\1\67" + "\7\64\1\70\3\64\1\71\7\64\1\72\1\73\37\72" + + "\1\74\35\72\1\5\4\0\5\5\1\0\2\5\1\0" + "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0" + "\6\5\1\0\11\5\101\0\1\7\13\0\1\75\63\0" + + "\1\76\1\77\45\0\1\37\76\0\1\37\24\0\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\5\13\1\101\1\102\4\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\1\13\1\103\1\104\3\13\1\0" + + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\105" + + "\4\0\1\105\2\106\1\105\1\14\1\0\2\105\1\0" + "\3\105\1\107\1\110\1\105\1\111\1\105\1\111\1\105" + + "\1\14\1\105\1\0\1\107\2\110\1\112\1\0\1\105" + "\1\0\2\105\13\0\1\110\5\105\1\0\5\105\1\110" + + "\3\105\12\0\1\37\37\0\1\37\1\0\1\37\22\0" + "\1\5\4\0\1\5\3\13\1\5\1\0\1\13\1\5" + "\1\0\1\5\11\13\1\5\1\13\1\0\3\13\2\0" + + "\1\13\1\113\2\13\13\0\6\13\1\0\1\5\10\13" + "\1\5\1\0\1\75\2\0\1\5\1\114\3\5\1\0" + "\2\5\1\0\2\5\1\115\1\116\2\5\1\117\5\5" + + "\1\0\3\5\2\0\1\5\1\0\2\5\13\0\1\120" + "\1\121\2\5\1\122\1\5\1\0\12\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\1\13\1\123" + + "\11\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + "\6\13\1\0\1\5\1\124\4\13\1\125\2\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\2\13\1\126\10\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\5\13" + + "\1\127\5\13\1\0\3\13\2\0\1\130\1\0\1\13" + "\1\131\13\0\2\13\1\132\3\13\1\0\1\5\10\13" + + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\4\13\1\133\1\134\5\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\1\13\1\135\1\13\1\136" + "\2\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\6\13\1\137\4\13" + "\1\0\3\13\2\0\1\13\1\0\1\140\1\13\13\0" + "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\3\13\1\141\2\13" + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + + "\1\13\1\5\1\0\1\5\1\142\1\13\1\143\10\13" + "\1\0\3\13\2\0\1\13\1\0\1\144\1\13\13\0" + + "\1\13\1\145\2\13\1\146\1\13\1\0\1\5\1\147" + "\7\13\1\105\4\0\1\105\2\106\1\105\1\14\1\0" + + "\2\105\1\0\3\105\1\107\1\110\1\105\1\111\1\105" + "\1\111\1\105\1\14\1\150\1\0\1\107\2\110\1\112" + + "\1\0\1\105\1\0\1\105\1\150\13\0\1\110\5\105" + "\1\0\5\105\1\110\3\105\32\0\1\37\17\0\1\37" + + "\35\0\1\151\16\0\1\151\46\0\1\152\1\0\3\152" + "\1\153\31\152\1\154\37\152\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\1\13\1\155\1\13" + + "\1\156\2\13\1\0\1\5\10\13\1\35\1\157\3\35" + "\1\160\33\35\1\161\35\35\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\1\13\1\162\2\13" + "\1\127\6\13\1\0\3\13\2\0\1\13\1\0\2\13" + + "\13\0\3\13\1\163\2\13\1\0\1\5\5\13\1\164" + "\2\13\46\0\1\37\3\0\1\37\73\0\1\37\2\0" + + "\1\37\76\0\1\37\1\11\75\0\1\37\1\0\1\11" + "\22\0\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\2\13\1\165\10\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\3\13\1\166\2\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + + "\1\5\1\0\1\5\3\13\1\137\2\13\1\137\4\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\2\13" + + "\1\167\3\13\1\0\1\5\4\13\1\170\3\13\1\5" + "\4\0\1\5\1\171\3\13\1\100\1\13\1\5\1\0" + + "\1\5\2\13\1\172\1\13\1\173\6\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\1\174\3\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\175" + + "\1\0\1\176\1\13\13\0\6\13\1\0\1\5\1\13" + "\1\177\6\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + + "\1\0\2\13\13\0\6\13\1\0\1\5\1\200\7\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + + "\13\0\3\13\1\201\2\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\1\202\3\13\1\100\1\13\1\5\1\0" + + "\1\5\1\13\1\203\2\13\1\204\6\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\4\13\1\205\1\206\5\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\3\13\1\207\2\13" + + "\1\0\1\5\1\210\7\13\1\56\1\0\2\56\1\0" + "\15\56\1\0\40\56\1\0\3\56\1\0\7\56\3\0" + + "\1\211\112\0\1\212\40\0\1\213\101\0\1\214\32\0" + "\1\215\57\0\1\64\1\0\20\64\1\0\30\64\1\0" + + "\7\64\1\0\3\64\1\0\7\64\17\0\1\216\40\0" + "\1\217\16\0\54\220\1\221\22\220\63\0\1\222\32\0" + + "\1\223\57\0\1\72\1\0\37\72\1\0\35\72\41\0" + "\1\224\37\0\1\75\3\0\1\225\11\0\1\226\1\227" + + "\2\0\1\230\32\0\1\231\1\232\2\0\1\233\13\0" + "\3\234\1\235\73\234\6\0\6\100\3\0\13\100\1\0" + + "\3\100\2\0\1\100\1\0\2\100\13\0\6\100\2\0" + "\10\100\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\3\13\1\236\2\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\1\13\1\237\4\13\1\0\1\5\1\147\7\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\2\13\1\240\3\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\6\13\1\241\4\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\2\13\1\242\5\13" + + "\1\105\4\0\5\105\1\0\2\105\1\0\14\105\1\0" + "\3\105\2\0\1\105\1\0\2\105\13\0\6\105\1\0" + + "\12\105\4\0\5\105\1\0\2\105\1\0\6\105\1\243" + "\1\105\1\243\3\105\1\0\3\105\2\0\1\105\1\0" + + "\2\105\13\0\6\105\1\0\12\105\4\0\4\105\1\244" + "\1\245\2\105\1\0\12\105\1\244\1\105\1\245\3\105" + + "\2\0\1\105\1\0\2\105\13\0\6\105\1\0\12\105" + "\4\0\1\105\2\243\2\105\1\0\2\105\1\0\14\105" + + "\1\0\3\105\2\0\1\105\1\0\2\105\13\0\6\105" + "\1\0\11\105\1\5\4\0\5\5\1\0\2\5\1\0" + "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0" + + "\2\5\1\246\3\5\1\0\12\5\4\0\5\5\1\0" + "\2\5\1\0\3\5\1\247\10\5\1\0\3\5\2\0" + "\1\5\1\0\2\5\13\0\6\5\1\0\12\5\4\0" + + "\5\5\1\0\2\5\1\0\2\5\1\250\3\5\1\251" + "\5\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0" + "\2\5\1\252\3\5\1\0\12\5\4\0\5\5\1\0" + + "\2\5\1\0\14\5\1\0\3\5\2\0\1\5\1\0" + "\2\5\13\0\1\5\1\253\4\5\1\0\12\5\4\0" + "\5\5\1\0\2\5\1\0\3\5\1\254\10\5\1\0" + + "\3\5\2\0\1\5\1\0\2\5\13\0\6\5\1\0" + "\12\5\4\0\5\5\1\0\2\5\1\0\4\5\1\255" + "\7\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0" + + "\6\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0" + "\5\5\1\256\6\5\1\0\3\5\2\0\1\5\1\0" + "\2\5\13\0\6\5\1\0\12\5\4\0\1\5\1\257" + + "\3\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\5\13\1\137\2\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\1\13\1\260\11\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\1\13" + "\1\261\4\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\1\13\1\262\6\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\1\263\2\13\1\137" + "\1\264\6\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\6\13\1\265" + "\4\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\2\13\1\266\10\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + + "\1\13\1\5\1\0\1\5\1\267\12\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\1\13\1\270\6\13\1\5\4\0\1\5\1\271\3\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\5\13\1\272\5\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\3\13\1\273\2\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\13\13\1\0\3\13\2\0\1\13\1\0\1\13\1\274" + "\13\0\2\13\1\275\3\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\1\13\1\276\11\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\6\13" + + "\1\277\4\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\2\13\1\300" + "\3\13\1\0\1\5\2\13\1\301\5\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\13" + + "\1\302\2\13\1\303\6\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\4\13\1\304\6\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13" + + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + "\1\0\1\5\5\13\1\164\2\13\1\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\7\13\1\262\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\1\13\1\305\4\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + + "\1\0\2\13\13\0\3\13\1\306\2\13\1\0\1\5" + "\10\13\1\105\4\0\4\105\1\307\1\0\2\105\1\0" + + "\3\105\3\307\3\105\2\307\1\105\1\0\1\307\1\105" + "\1\307\2\0\1\105\1\0\1\307\1\105\13\0\1\307" + + "\5\105\1\0\3\105\1\307\6\105\4\0\4\105\1\151" + "\1\0\2\105\1\0\3\105\1\107\1\110\5\105\1\151" + + "\1\105\1\0\1\107\2\110\2\0\1\105\1\0\2\105" + "\13\0\1\110\5\105\1\0\5\105\1\110\3\105\1\310" + + "\1\0\35\310\1\311\40\310\1\0\3\310\1\152\1\312" + "\1\313\7\310\2\152\1\310\2\152\4\310\1\152\6\310" + + "\1\314\3\152\1\315\15\310\1\152\15\310\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\13" + + "\1\316\11\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\5\13\1\317" + + "\5\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + "\1\13\1\320\4\13\1\0\1\5\10\13\5\157\1\321" + + "\33\157\1\322\36\157\1\0\3\157\1\35\1\323\1\324" + "\7\157\2\35\1\157\2\35\4\157\1\35\6\157\4\35" + + "\1\325\15\157\1\35\15\157\1\5\4\0\1\5\4\13" + "\1\100\1\13\1\5\1\0\1\5\2\13\1\326\10\13" + + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\3\13\1\327\2\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\1\330\12\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\3\13\1\331\1\13\1\332\5\13\1\0\3\13" + + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\2\13\1\333\5\13\1\5\4\0\1\5\1\334\3\13" + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\1\335\12\13\1\0\3\13\2\0\1\13" + + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\13\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + + "\6\13\1\0\1\5\1\13\1\270\6\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\5\13" + "\1\336\5\13\1\0\3\13\2\0\1\13\1\0\2\13" + + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\4\13\1\137" + + "\1\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\4\13\1\337\3\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\1\137\12\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\2\13\1\340\10\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\6\13\1\341\1\13\1\5" + + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\2\13\1\342\10\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\1\13" + "\1\343\4\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\1\344\12\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + "\1\13\1\0\1\345\1\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\1\13\1\346\1\13\1\347\2\13\1\0" + + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\1\13\1\350\11\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\1\351\5\13\1\265\4\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\4\13\1\352\6\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\2\13\1\353\3\13\1\0\1\5\10\13\1\5" + + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\2\13\1\354\1\13\1\355\6\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + + "\70\0\1\356\32\0\1\357\135\0\1\360\32\0\1\361" + "\147\0\1\362\32\0\1\363\135\0\1\364\32\0\1\365" + + "\140\0\1\366\36\0\1\367\75\0\1\370\3\0\1\371" + "\34\0\1\372\75\0\1\373\37\0\1\374\77\0\1\255" + + "\77\0\1\375\53\0\1\234\1\0\75\234\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13" + + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\2\13" + "\1\300\3\13\1\0\1\5\10\13\1\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\2\13\1\376" + "\3\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + "\1\100\1\13\1\5\1\0\1\5\1\377\12\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\4\13\1\u0100\6\13\1\0\3\13" + + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\6\13\1\0\1\5\1\u0101\7\13\1\105" + "\4\0\4\105\1\244\1\0\2\105\1\0\4\105\1\110" + + "\5\105\1\244\1\105\1\0\1\105\2\110\2\0\1\105" + "\1\0\2\105\13\0\1\110\5\105\1\0\5\105\1\110" + + "\3\105\11\0\1\244\16\0\1\244\46\0\1\5\4\0" + "\5\5\1\0\2\5\1\0\14\5\1\0\3\5\2\0" + "\1\5\1\0\2\5\13\0\1\u0102\5\5\1\0\12\5" + + "\4\0\5\5\1\0\2\5\1\0\14\5\1\0\3\5" + "\2\0\1\5\1\0\2\5\13\0\5\5\1\u0103\1\0" + "\12\5\4\0\5\5\1\0\2\5\1\0\2\5\1\u0104" + + "\11\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0" + "\6\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0" + "\7\5\1\u0105\4\5\1\0\3\5\2\0\1\5\1\0" + + "\2\5\13\0\1\5\1\121\4\5\1\0\12\5\4\0" + "\5\5\1\0\2\5\1\0\14\5\1\0\3\5\2\0" + "\1\5\1\0\2\5\13\0\1\u0106\5\5\1\0\12\5" + + "\4\0\5\5\1\0\2\5\1\0\14\5\1\0\3\5" + "\2\0\1\5\1\0\2\5\13\0\2\5\1\u0105\3\5" + "\1\0\12\5\4\0\5\5\1\0\2\5\1\0\4\5" + + "\1\117\7\5\1\0\3\5\2\0\1\5\1\0\2\5" + "\13\0\6\5\1\0\11\5\1\255\1\0\75\255\1\5" + "\4\0\5\5\1\0\2\5\1\0\2\5\1\u0107\11\5" + + "\1\0\3\5\2\0\1\5\1\0\2\5\13\0\6\5" + "\1\0\12\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\2\13\1\u0108\10\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + + "\13\0\3\13\1\172\2\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\6\13\1\137\4\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13" + + "\1\u0109\10\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\1\u010a\3\13\1\100\1\13\1\5\1\0\1\5\13\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\1\u010b\5\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\2\13\1\137\10\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\2\13\1\174\3\13\1\0\1\5\10\13\1\5" + + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\2\13\1\u010a\10\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\5\13" + "\1\u010c\5\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\4\13\1\137\3\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\6\13\1\257\4\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + + "\1\13\1\5\1\0\1\5\4\13\1\240\6\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + + "\1\5\1\0\1\5\2\13\1\320\10\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\4\13\1\u010d\6\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\2\13\1\u010e\10\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\1\u010f\12\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\5\13\1\377" + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\3\13" + + "\1\137\4\13\1\5\4\0\1\5\1\u0110\3\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\1\13\1\237\4\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + + "\1\5\1\0\1\5\1\u0111\12\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\2\13" + + "\1\u0112\5\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\5\13\1\274\5\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\1\351\12\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\1\13\1\240\11\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\105\4\0" + + "\1\105\2\u0113\1\105\1\307\1\0\2\105\1\0\3\105" + "\3\307\1\u0114\1\105\1\u0114\2\307\1\105\1\0\1\307" + + "\1\105\1\307\2\0\1\105\1\0\1\307\1\105\13\0" + "\1\307\5\105\1\0\3\105\1\307\5\105\1\310\1\0" + + "\35\310\1\154\40\310\1\0\7\310\1\u0115\7\310\3\u0115" + "\3\310\2\u0115\2\310\1\u0115\1\310\1\u0115\1\310\1\154" + + "\2\310\1\u0115\14\310\1\u0115\11\310\1\u0115\6\310\1\0" + "\7\310\1\u0116\7\310\3\u0116\3\310\2\u0116\2\310\1\u0116" + + "\1\310\1\u0116\1\310\1\154\2\310\1\u0116\14\310\1\u0116" + "\11\310\1\u0116\5\310\37\0\1\311\37\0\1\310\1\0" + + "\7\310\1\u0117\7\310\3\u0117\3\310\2\u0117\2\310\1\u0117" + "\1\310\1\u0117\1\310\1\154\2\310\1\u0117\14\310\1\u0117" + + "\11\310\1\u0117\5\310\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\1\u0118\12\13\1\0\3\13" + + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\4\13\1\u0119\6\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + + "\13\0\1\137\5\13\1\0\1\5\10\13\1\157\1\0" + "\102\157\1\321\3\157\1\u011a\7\157\3\u011a\3\157\2\u011a" + + "\2\157\1\u011a\1\157\1\u011a\3\157\1\322\1\u011a\14\157" + "\1\u011a\11\157\1\u011a\12\157\1\321\3\157\1\u011b\7\157" + + "\3\u011b\3\157\2\u011b\2\157\1\u011b\1\157\1\u011b\3\157" + "\1\322\1\u011b\14\157\1\u011b\11\157\1\u011b\12\157\1\321" + + "\3\157\1\35\7\157\3\35\3\157\2\35\2\157\1\35" + "\1\157\1\35\3\157\1\322\1\35\14\157\1\35\11\157" + + "\1\35\5\157\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\4\13\1\301\6\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\5\13\1\377\5\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\2\13\1\377\10\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\4\13\1\u011c\6\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13" + "\1\u011d\10\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\1\13\1\u011e" + + "\4\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\1\u011f\1\13\13\0\6\13\1\0" + + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\2\13\1\u0120\10\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\5\13\1\137\5\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\2\13\1\u0121\10\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\1\13\1\u0122\11\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13" + "\1\u0110\10\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\1\13\1\u0123" + "\11\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + + "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + "\1\100\1\13\1\5\1\0\1\5\5\13\1\265\5\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\3\13\1\137\2\13\1\0" + + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\5\13\1\u0111\5\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\13\13\1\0\3\13\2\0\1\u0124\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\u0125" + "\12\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\4\13\1\u0126\6\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\2\13" + + "\1\u0127\5\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\6\13\1\261\4\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\1\u0128\5\13\1\174\4\13\1\0\3\13" + + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\6\13\1\0\1\5\2\13\1\u0129\5\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\1\13\1\377\11\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\44\0" + + "\1\u012a\53\0\1\356\113\0\1\u012b\130\0\1\u012c\52\0" + "\1\u012d\53\0\1\362\113\0\1\u012e\130\0\1\u012f\65\0" + + "\1\u0130\103\0\1\u0131\32\0\1\u0132\103\0\1\u0133\32\0" + "\1\232\75\0\1\u0134\100\0\1\u0133\37\0\1\230\74\0" + + "\1\u0135\56\0\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + + "\1\0\2\13\13\0\5\13\1\137\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\3\13\1\265\7\13\1\0\3\13\2\0\1\13" + + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\2\13\1\354\10\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\5\5\1\0\2\5\1\0\3\5\1\121\10\5\1\0" + "\3\5\2\0\1\5\1\0\2\5\13\0\6\5\1\0" + + "\12\5\4\0\5\5\1\0\2\5\1\0\14\5\1\0" + "\3\5\2\0\1\5\1\0\2\5\13\0\1\5\1\u0136" + "\4\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0" + + "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0" + "\3\5\1\u0137\2\5\1\0\12\5\4\0\5\5\1\0" + "\2\5\1\0\3\5\1\255\10\5\1\0\3\5\2\0" + + "\1\5\1\0\2\5\13\0\6\5\1\0\12\5\4\0" + "\5\5\1\0\2\5\1\0\2\5\1\115\11\5\1\0" + "\3\5\2\0\1\5\1\0\2\5\13\0\1\5\1\121" + + "\4\5\1\0\12\5\4\0\5\5\1\0\2\5\1\0" + "\14\5\1\0\3\5\2\0\1\5\1\0\2\5\13\0" + "\2\5\1\u0138\3\5\1\0\12\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\3\13\1\u0139\2\13" + + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\1\13\1\u013a\11\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\3\13\1\u013b\2\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\1\13\1\u013c\4\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\5\13\1\u013d\5\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\4\13\1\351\6\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\13" + + "\1\u013e\11\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\2\13\1\174\5\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\1\13\1\u013f\4\13" + + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\3\13" + + "\1\u0140\4\13\1\105\4\0\5\105\1\0\2\105\1\0" + "\6\105\1\u0141\1\105\1\u0141\3\105\1\0\3\105\2\0" + + "\1\105\1\0\2\105\13\0\6\105\1\0\12\105\4\0" + "\1\105\2\u0141\2\105\1\0\2\105\1\0\14\105\1\0" + + "\3\105\2\0\1\105\1\0\2\105\13\0\6\105\1\0" + "\11\105\1\310\1\0\7\310\1\u0142\7\310\3\u0142\3\310" + + "\2\u0142\2\310\1\u0142\1\310\1\u0142\1\310\1\154\2\310" + "\1\u0142\14\310\1\u0142\11\310\1\u0142\6\310\1\0\7\310" + + "\1\u0143\7\310\3\u0143\3\310\2\u0143\2\310\1\u0143\1\310" + "\1\u0143\1\310\1\154\2\310\1\u0143\14\310\1\u0143\11\310" + + "\1\u0143\6\310\1\0\7\310\1\u0144\7\310\3\u0144\3\310" + "\2\u0144\2\310\1\u0144\1\310\1\u0144\1\310\1\311\2\310" + + "\1\u0144\14\310\1\u0144\11\310\1\u0144\5\310\1\5\4\0" + "\1\5\1\u0145\3\13\1\100\1\13\1\5\1\0\1\5" + + "\13\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + "\1\100\1\13\1\5\1\0\1\5\1\200\12\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\10\13\5\157\1\321\3\157\1\u0146\7\157\3\u0146" + + "\3\157\2\u0146\2\157\1\u0146\1\157\1\u0146\3\157\1\322" + "\1\u0146\14\157\1\u0146\11\157\1\u0146\12\157\1\321\3\157" + + "\1\u0147\7\157\3\u0147\3\157\2\u0147\2\157\1\u0147\1\157" + "\1\u0147\3\157\1\322\1\u0147\14\157\1\u0147\11\157\1\u0147" + + "\5\157\1\5\4\0\1\5\1\u0148\3\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\13\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + + "\5\13\1\u0124\1\0\1\5\10\13\1\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + + "\1\5\4\13\1\u0145\3\13\1\5\4\0\1\5\4\13" + "\1\100\1\13\1\5\1\0\1\5\5\13\1\330\5\13" + + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\1\13\1\u0149\11\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\6\13\1\u014a\4\13\1\0\3\13" + + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\1\13\1\u014b\11\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\6\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + "\1\5\4\13\1\u014c\6\13\1\0\3\13\2\0\1\13" + + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\4\13\1\u014d\6\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\2\13" + + "\1\u014e\10\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\10\13\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\4\13\1\261\3\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\1\137\7\13\1\5\4\0\1\5\4\13\1\100\1\13" + + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\1\13\1\u014f\4\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\3\13\1\274\4\13" + + "\3\0\1\u0150\76\0\1\u012b\1\u0151\1\0\4\u012b\3\u0151" + "\1\0\1\u0151\13\u012b\1\u0151\3\u012b\2\u0151\1\u012b\1\0" + + "\2\u012b\3\u0151\2\0\2\u0151\3\0\1\u0151\6\u012b\1\u0151" + "\11\u012b\25\0\1\356\16\0\1\u012a\35\0\1\u0152\76\0" + + "\1\u012e\1\u0153\1\0\4\u012e\3\u0153\1\0\1\u0153\13\u012e" + "\1\u0153\3\u012e\2\u0153\1\u012e\1\0\2\u012e\3\u0153\2\0" + + "\2\u0153\3\0\1\u0153\6\u012e\1\u0153\11\u012e\25\0\1\362" + "\16\0\1\u012d\53\0\1\232\135\0\1\u0154\100\0\1\u0155" + + "\35\0\1\255\75\0\1\226\37\0\1\232\77\0\1\u0156" + "\15\0\1\5\4\0\5\5\1\0\2\5\1\0\14\5" + "\1\0\3\5\2\0\1\5\1\0\2\5\13\0\3\5" + + "\1\u0157\2\5\1\0\12\5\4\0\5\5\1\0\2\5" + "\1\0\2\5\1\255\11\5\1\0\3\5\2\0\1\5" + "\1\0\2\5\13\0\6\5\1\0\12\5\4\0\5\5" + + "\1\0\2\5\1\0\14\5\1\0\3\5\2\0\1\5" + "\1\0\2\5\13\0\1\5\1\u0158\4\5\1\0\12\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\3\13\1\137\7\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13" + + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\2\13" + "\1\137\3\13\1\0\1\5\10\13\1\5\4\0\1\5" + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\2\13\1\u013d" + "\3\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\2\13\1\u0159\5\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\5\13\1\u015a\5\13\1\0" + + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\4\13\1\u0110\6\13\1\0\3\13" + + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\6\13\1\0\1\5\2\13\1\137\5\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\4\13\1\u015b\6\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\1\310" + + "\1\0\7\310\1\u015c\7\310\3\u015c\3\310\2\u015c\2\310" + "\1\u015c\1\310\1\u015c\1\310\1\154\2\310\1\u015c\14\310" + + "\1\u015c\11\310\1\u015c\6\310\1\0\7\310\1\u015d\7\310" + "\3\u015d\3\310\2\u015d\2\310\1\u015d\1\310\1\u015d\1\310" + + "\1\154\2\310\1\u015d\14\310\1\u015d\11\310\1\u015d\6\310" + "\1\0\7\310\1\u015e\7\310\3\u015e\3\310\2\u015e\2\310" + + "\1\u015e\1\310\1\u015e\1\310\1\311\2\310\1\u015e\14\310" + "\1\u015e\11\310\1\u015e\5\310\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\4\13\1\336\6\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\6\13" + + "\1\0\1\5\10\13\5\157\1\321\3\157\1\325\7\157" + "\3\325\3\157\2\325\2\157\1\325\1\157\1\325\3\157" + + "\1\322\1\325\14\157\1\325\11\157\1\325\12\157\1\321" + "\3\157\1\u015f\7\157\3\u015f\3\157\2\u015f\2\157\1\u015f" + + "\1\157\1\u015f\3\157\1\322\1\u015f\14\157\1\u015f\11\157" + "\1\u015f\5\157\1\5\4\0\1\5\4\13\1\100\1\13" + + "\1\5\1\0\1\5\5\13\1\174\5\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\10\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\3\13\1\u0160\7\13\1\0\3\13\2\0" + "\1\13\1\0\2\13\13\0\2\13\1\u0145\3\13\1\0" + + "\1\5\10\13\1\5\4\0\1\5\4\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\1\13\1\u0160" + + "\6\13\1\5\4\0\1\5\4\13\1\100\1\13\1\5" + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + + "\2\13\13\0\1\13\1\u0161\4\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\1\u0162\12\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\1\265" + "\12\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\2\13\1\u0163\5\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\13\13\1\0\3\13\2\0" + + "\1\13\1\0\2\13\13\0\2\13\1\u0164\3\13\1\0" + "\1\5\10\13\3\0\1\u012b\76\0\1\u012e\155\0\1\u0165" + + "\34\0\1\255\136\0\1\u0166\16\0\1\5\4\0\5\5" + "\1\0\2\5\1\0\14\5\1\0\3\5\2\0\1\5" + "\1\0\2\5\13\0\2\5\1\255\3\5\1\0\12\5" + + "\4\0\5\5\1\0\2\5\1\0\14\5\1\0\3\5" + "\2\0\1\5\1\0\2\5\13\0\2\5\1\u0167\3\5" + "\1\0\12\5\4\0\1\5\4\13\1\100\1\13\1\5" + + "\1\0\1\5\13\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\1\13\1\174\4\13\1\0\1\5\10\13" + "\1\5\4\0\1\5\4\13\1\100\1\13\1\5\1\0" + + "\1\5\13\13\1\0\3\13\2\0\1\13\1\0\2\13" + "\13\0\6\13\1\0\1\5\5\13\1\137\2\13\1\5" + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + + "\5\13\1\u0168\5\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\310\1\0" + + "\7\310\1\152\7\310\3\152\3\310\2\152\2\310\1\152" + "\1\310\1\152\1\310\1\154\2\310\1\152\14\310\1\152" + + "\11\310\1\152\6\310\1\0\7\310\1\312\7\310\3\312" + "\3\310\2\312\2\310\1\312\1\310\1\312\1\310\1\154" + + "\2\310\1\312\14\310\1\312\11\310\1\312\6\310\1\0" + "\7\310\1\152\7\310\3\152\3\310\2\152\2\310\1\152" + + "\1\310\1\152\1\310\1\311\2\310\1\152\14\310\1\152" + "\11\310\1\152\5\310\5\157\1\321\3\157\1\323\7\157" + + "\3\323\3\157\2\323\2\157\1\323\1\157\1\323\3\157" + "\1\322\1\323\14\157\1\323\11\157\1\323\5\157\1\5" + + "\4\0\1\5\4\13\1\100\1\13\1\5\1\0\1\5" + "\4\13\1\u0169\6\13\1\0\3\13\2\0\1\13\1\0" + "\2\13\13\0\6\13\1\0\1\5\10\13\1\5\4\0" + + "\1\5\4\13\1\100\1\13\1\5\1\0\1\5\13\13" + "\1\0\3\13\2\0\1\13\1\0\2\13\13\0\1\265" + "\5\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\3\13\1\u016a\2\13" + + "\1\0\1\5\10\13\1\5\4\0\1\5\4\13\1\100" + "\1\13\1\5\1\0\1\5\1\274\12\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + + "\10\13\1\5\4\0\1\5\1\265\3\13\1\100\1\13" + "\1\5\1\0\1\5\13\13\1\0\3\13\2\0\1\13" + "\1\0\2\13\13\0\6\13\1\0\1\5\10\13\61\0" + + "\1\255\76\0\1\u016b\15\0\1\5\4\0\5\5\1\0" + "\2\5\1\0\14\5\1\0\3\5\2\0\1\5\1\0" + "\2\5\13\0\5\5\1\255\1\0\12\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\5\13\1\u016c" + "\5\13\1\0\3\13\2\0\1\13\1\0\2\13\13\0" + "\6\13\1\0\1\5\10\13\1\5\4\0\1\5\4\13" + + "\1\100\1\13\1\5\1\0\1\5\13\13\1\0\3\13" + "\2\0\1\13\1\0\2\13\13\0\6\13\1\0\1\5" + "\2\13\1\265\5\13\1\5\4\0\1\5\4\13\1\100" + + "\1\13\1\5\1\0\1\5\1\13\1\137\11\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\6\13\1\0" + "\1\5\10\13\64\0\1\255\12\0\1\5\4\0\1\5" + + "\4\13\1\100\1\13\1\5\1\0\1\5\13\13\1\0" + "\3\13\2\0\1\13\1\0\2\13\13\0\3\13\1\u013f" + "\2\13\1\0\1\5\10\13"; + + private static int[] zzUnpackTrans() { + int[] result = new int[21231]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\3\1\1\11\10\1\1\11\17\1\1\11\4\1" + "\2\11\11\1\1\11\5\1\1\11\5\1\1\11\1\1" + + "\1\0\1\1\1\11\12\1\1\0\1\11\40\1\1\11" + "\4\1\1\11\27\1\1\11\7\0\1\11\2\0\1\11" + "\7\0\1\1\1\11\7\1\1\0\43\1\1\11\10\1" + + "\1\11\33\1\20\0\54\1\1\0\1\1\2\0\1\1" + "\7\0\32\1\7\0\16\1\2\0\4\1\1\0\1\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[364]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public CSharpTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1113,26 +627,26 @@ public class CSharpTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -1147,7 +661,6 @@ public class CSharpTokenMaker extends AbstractJFlexCTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1157,21 +670,18 @@ public class CSharpTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1180,7 +690,8 @@ public class CSharpTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -1189,412 +700,465 @@ public class CSharpTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 CSharpTokenMaker(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 CSharpTokenMaker(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 < 158) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 35: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 36: + break; + case 28: { + addToken(Token.PREPROCESSOR); + } + case 37: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 38: + break; + case 30: { + addToken(Token.LITERAL_CHAR); + } + case 39: + break; + case 25: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 40: + break; + case 4: { + addToken(Token.WHITESPACE); + } + case 41: + break; + case 29: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 42: + break; + case 22: { + addToken(Token.ERROR_CHAR); /* + * addNullToken(); return + * firstToken; + */ + } + case 43: + break; + case 31: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 44: + break; + case 19: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 45: + break; + case 21: { + addToken(Token.RESERVED_WORD); + } + case 46: + break; + case 10: { + addToken(Token.SEPARATOR); + } + case 47: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addNullToken(); + return firstToken; + } + case 48: + break; + case 6: { + addToken(Token.IDENTIFIER); + } + case 49: + break; + case 13: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzEndRead, Token.PREPROCESSOR); + addNullToken(); + return firstToken; + } + case 50: + break; + case 8: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 51: + break; + case 9: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 52: + break; + case 32: { + addToken(Token.DATA_TYPE); + } + case 53: + break; + case 2: { + addToken(Token.ERROR_IDENTIFIER); + } + case 54: + break; + case 23: { + addToken(Token.ERROR_CHAR); + } + case 55: + break; + case 33: { + addToken(Token.LITERAL_BOOLEAN); + } + case 56: + break; + case 20: { + start = zzMarkedPos - 2; + yybegin(VERBATIMSTRING); + } + case 57: + break; + case 24: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 58: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 59: + break; + case 34: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 60: + break; + case 16: { + addToken(Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 61: + break; + case 18: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 62: + break; + case 27: { + start = zzMarkedPos - 3; + yybegin(DOCUMENTCOMMENT); + } + case 63: + break; + case 17: { + start = zzMarkedPos - 2; + yybegin(DELIMITEDCOMMENT); + } + case 64: + break; + case 7: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 65: + break; + case 5: { + addToken(Token.OPERATOR); + } + case 66: + break; + case 26: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.PREPROCESSOR); + start = zzMarkedPos; + } + case 67: + break; + case 15: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 68: + break; + case 1: {} + case 69: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 70: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case VERBATIMSTRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 365: + break; + case DOCUMENTCOMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addNullToken(); + return firstToken; + } + case 366: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 367: + break; + case DELIMITEDCOMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 368: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 CSharpTokenMaker(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 CSharpTokenMaker(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 < 158) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 35: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 36: break; - case 28: - { addToken(Token.PREPROCESSOR); - } - case 37: break; - case 3: - { addNullToken(); return firstToken; - } - case 38: break; - case 30: - { addToken(Token.LITERAL_CHAR); - } - case 39: break; - case 25: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 40: break; - case 4: - { addToken(Token.WHITESPACE); - } - case 41: break; - case 29: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 42: break; - case 22: - { addToken(Token.ERROR_CHAR); /*addNullToken(); return firstToken;*/ - } - case 43: break; - case 31: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 44: break; - case 19: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 45: break; - case 21: - { addToken(Token.RESERVED_WORD); - } - case 46: break; - case 10: - { addToken(Token.SEPARATOR); - } - case 47: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addNullToken(); return firstToken; - } - case 48: break; - case 6: - { addToken(Token.IDENTIFIER); - } - case 49: break; - case 13: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzEndRead, Token.PREPROCESSOR); addNullToken(); return firstToken; - } - case 50: break; - case 8: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 51: break; - case 9: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 52: break; - case 32: - { addToken(Token.DATA_TYPE); - } - case 53: break; - case 2: - { addToken(Token.ERROR_IDENTIFIER); - } - case 54: break; - case 23: - { addToken(Token.ERROR_CHAR); - } - case 55: break; - case 33: - { addToken(Token.LITERAL_BOOLEAN); - } - case 56: break; - case 20: - { start = zzMarkedPos-2; yybegin(VERBATIMSTRING); - } - case 57: break; - case 24: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 58: break; - case 14: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 59: break; - case 34: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 60: break; - case 16: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 61: break; - case 18: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 62: break; - case 27: - { start = zzMarkedPos-3; yybegin(DOCUMENTCOMMENT); - } - case 63: break; - case 17: - { start = zzMarkedPos-2; yybegin(DELIMITEDCOMMENT); - } - case 64: break; - case 7: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 65: break; - case 5: - { addToken(Token.OPERATOR); - } - case 66: break; - case 26: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.PREPROCESSOR); start = zzMarkedPos; - } - case 67: break; - case 15: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 68: break; - case 1: - { - } - case 69: break; - case 11: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 70: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case VERBATIMSTRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 365: break; - case DOCUMENTCOMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addNullToken(); return firstToken; - } - case 366: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 367: break; - case DELIMITEDCOMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 368: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/CTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/CTokenMaker.java index e213b2e..321978c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/CTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/CTokenMaker.java @@ -1,1622 +1,788 @@ /* The following code was generated by JFlex 1.4.1 on 3/22/15 4:43 PM */ - /* * 11/13/2004 - * * CTokenMaker.java - An object that can take a chunk of text and * return a linked list of tokens representing it in the C programming * language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * Scanner for the C programming language. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated CTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated CTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.6 * */ - public class CTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\50\1\43\1\0\1\50\1\56\22\0\1\50\1\36\1\44"+ - "\1\57\1\60\1\65\1\113\1\33\1\31\1\31\1\51\1\7\1\64"+ - "\1\37\1\54\1\32\1\47\1\77\1\76\1\41\4\5\2\3\1\70"+ - "\1\63\1\34\1\30\1\35\1\27\1\61\1\103\1\4\1\111\1\102"+ - "\1\6\1\55\2\1\1\105\2\1\1\53\1\106\1\107\4\1\1\110"+ - "\1\104\1\52\2\1\1\42\2\1\1\62\1\40\1\62\1\115\1\2"+ - "\1\0\1\24\1\46\1\21\1\10\1\11\1\12\1\25\1\66\1\13"+ - "\1\100\1\72\1\15\1\26\1\14\1\20\1\23\1\101\1\17\1\16"+ - "\1\67\1\22\1\45\1\71\1\73\1\75\1\74\1\112\1\114\1\112"+ - "\1\64\uff81\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 = - "\3\0\1\1\2\2\1\3\1\4\16\2\2\4\1\5"+ - "\1\4\1\6\3\4\1\2\1\7\1\10\2\2\1\3"+ - "\1\11\1\4\2\1\1\2\1\4\3\2\2\4\2\12"+ - "\1\13\5\12\1\14\2\12\1\2\2\15\2\3\1\16"+ - "\2\2\1\17\21\2\1\17\50\2\1\0\1\20\1\21"+ - "\2\22\1\23\1\6\2\10\1\24\7\2\1\15\6\1"+ - "\1\0\11\2\2\0\1\25\6\0\5\2\1\3\1\0"+ - "\1\3\1\15\1\16\2\2\1\26\5\2\1\26\17\2"+ - "\1\27\15\2\1\26\1\2\1\26\45\2\1\6\1\30"+ - "\1\6\3\22\1\6\2\10\1\31\6\2\1\32\4\1"+ - "\1\33\4\1\6\0\10\2\10\0\5\2\1\16\1\0"+ - "\27\2\1\27\37\2\1\26\2\2\1\26\6\2\1\6"+ - "\1\10\6\2\2\32\7\1\4\0\1\33\4\0\10\2"+ - "\2\0\1\34\2\0\1\35\50\2\1\32\1\33\3\1"+ - "\7\0\7\2\4\0\5\2\1\36\5\2\2\1\1\33"+ - "\3\0\4\2\2\0\1\33"; - - private static int [] zzUnpackAction() { - int [] result = new int[503]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /** - * Translates a state to a row index in the transition table - */ - private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); - - private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222"+ - "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492"+ - "\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u06b4\0\u0702"+ - "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u0888\0\u08d6\0\352\0\u0750"+ - "\0\u0924\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa\0\u0750\0\u0af8"+ - "\0\u0750\0\u0750\0\u0b46\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc"+ - "\0\u0d1a\0\u0750\0\u0d68\0\u0db6\0\u0e04\0\u0e52\0\u0ea0\0\u0750"+ - "\0\u0eee\0\u0f3c\0\u0f8a\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110"+ - "\0\u115e\0\u11ac\0\u11fa\0\u1248\0\u1296\0\u12e4\0\u1332\0\u1380"+ - "\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506\0\u1554\0\u15a2\0\u15f0"+ - "\0\u163e\0\u168c\0\u16da\0\u1728\0\u0138\0\u1776\0\u17c4\0\u1812"+ - "\0\u1860\0\u18ae\0\u18fc\0\u194a\0\u1998\0\u19e6\0\u1a34\0\u1a82"+ - "\0\u1ad0\0\u1b1e\0\u1b6c\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u1cf2"+ - "\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6\0\u1f14\0\u1f62"+ - "\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u2136\0\u2184\0\u21d2"+ - "\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358\0\u23a6\0\u0750\0\u0750"+ - "\0\u23f4\0\u2442\0\u0750\0\u2490\0\u24de\0\u252c\0\u0750\0\u257a"+ - "\0\u25c8\0\u2616\0\u2664\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea"+ - "\0\u2838\0\u2886\0\u28d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u2a5a"+ - "\0\u2aa8\0\u2af6\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca"+ - "\0\u2d18\0\u0750\0\u2d66\0\u2db4\0\u2e02\0\u2e50\0\u2e9e\0\u2eec"+ - "\0\u2f3a\0\u2f88\0\u2fd6\0\u3024\0\u3072\0\u30c0\0\u310e\0\u0fd8"+ - "\0\u315c\0\u0fd8\0\u31aa\0\u31f8\0\u3246\0\u3294\0\u32e2\0\u3330"+ - "\0\u337e\0\u33cc\0\u0138\0\u341a\0\u3468\0\u34b6\0\u3504\0\u3552"+ - "\0\u35a0\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u3726\0\u3774\0\u37c2"+ - "\0\u3810\0\u385e\0\u0138\0\u38ac\0\u38fa\0\u3948\0\u3996\0\u39e4"+ - "\0\u3a32\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54"+ - "\0\u3ca2\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76\0\u3ec4"+ - "\0\u3f12\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098\0\u40e6\0\u4134"+ - "\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4"+ - "\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614"+ - "\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a\0\u47e8\0\u4836\0\u4884"+ - "\0\u48d2\0\u0750\0\u4920\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6"+ - "\0\u4af4\0\u0750\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u4c7a\0\u4cc8"+ - "\0\u4d16\0\u4d64\0\u4db2\0\u4e00\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38"+ - "\0\u4f86\0\u4fd4\0\u5022\0\u5070\0\u50be\0\u510c\0\u515a\0\u51a8"+ - "\0\u51f6\0\u5244\0\u5292\0\u52e0\0\u532e\0\u537c\0\u53ca\0\u5418"+ - "\0\u5466\0\u54b4\0\u5502\0\u5550\0\u559e\0\u55ec\0\u563a\0\u5688"+ - "\0\u56d6\0\u5724\0\u5772\0\u57c0\0\u580e\0\u585c\0\u58aa\0\u58f8"+ - "\0\u5946\0\u5994\0\u59e2\0\u5a30\0\u5a7e\0\u5acc\0\u5b1a\0\u5b68"+ - "\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0\0\u5cee\0\u5d3c\0\u5d8a\0\u5dd8"+ - "\0\u5e26\0\u5e74\0\u5ec2\0\u5f10\0\u5f5e\0\u5fac\0\u5ffa\0\u6048"+ - "\0\u6096\0\u60e4\0\u6132\0\u6180\0\u61ce\0\u621c\0\u626a\0\u62b8"+ - "\0\u6306\0\u6354\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da\0\u6528"+ - "\0\u6576\0\u65c4\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u674a\0\u6798"+ - "\0\u67e6\0\u6834\0\u6882\0\u68d0\0\u691e\0\u696c\0\u69ba\0\u6a08"+ - "\0\u6a56\0\u6aa4\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a\0\u6c78"+ - "\0\u6cc6\0\u6d14\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a\0\u6ee8"+ - "\0\u6f36\0\u6f84\0\u6fd2\0\u7020\0\u706e\0\u70bc\0\u710a\0\u7158"+ - "\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u72de\0\u732c\0\u737a\0\u73c8"+ - "\0\u7416\0\u7464\0\u74b2\0\u7500\0\u754e\0\u759c\0\u75ea\0\u7638"+ - "\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c\0\u785a\0\u78a8"+ - "\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u3d3e\0\u7a2e\0\u7a7c\0\u7aca"+ - "\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a"+ - "\0\u7d88\0\u7dd6\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c\0\u7faa"+ - "\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc\0\u821a"+ - "\0\u8268\0\u82b6\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c\0\u848a"+ - "\0\u0fd8\0\352\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u8610\0\u865e"+ - "\0\u86ac\0\u86fa\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u88ce"+ - "\0\u891c\0\u3246\0\u896a\0\u89b8\0\u77be\0\u8a06\0\u78a8\0\u8a54"+ - "\0\u8aa2\0\u8af0\0\u8b3e\0\u8b8c\0\u0138\0\u8bda\0\u8c28\0\u8c76"+ - "\0\u8cc4\0\u8d12\0\u8d60\0\u8dae\0\u0750\0\u8dfc\0\u8e4a\0\u8e98"+ - "\0\u8ee6\0\u8f34\0\u8f82\0\u8fd0\0\u901e\0\u906c\0\u0138"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[503]; - 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 = - "\1\4\1\5\1\6\1\7\1\5\1\7\1\5\1\10"+ - "\1\11\1\12\1\13\1\14\1\5\1\15\1\16\1\17"+ - "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+ - "\1\30\1\31\1\32\1\33\1\34\1\35\1\30\1\36"+ - "\1\37\1\7\1\5\1\40\1\41\1\42\1\43\1\44"+ - "\1\45\1\30\2\5\1\46\1\5\1\47\1\50\2\4"+ - "\1\31\1\51\1\52\1\30\1\5\1\53\1\52\1\54"+ - "\4\5\2\7\1\5\1\55\10\5\1\31\1\56\1\57"+ - "\1\30\12\60\1\61\30\60\1\62\5\60\1\63\14\60"+ - "\1\64\2\60\1\65\24\60\12\66\1\67\30\66\1\70"+ - "\22\66\1\71\2\66\1\72\24\66\7\4\1\0\17\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\1\5\1\73"+ - "\4\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\3\74\1\7\1\74"+ - "\1\7\1\75\1\0\1\74\1\75\3\74\1\76\4\74"+ - "\1\77\4\74\11\0\1\74\1\7\1\74\2\0\2\74"+ - "\1\7\2\0\1\77\1\76\1\100\1\74\1\0\3\74"+ - "\4\0\2\74\1\0\5\74\2\7\12\74\13\0\1\52"+ - "\20\0\1\52\65\0\1\4\6\5\1\0\1\5\1\101"+ - "\1\5\1\102\4\5\1\103\6\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\4\5\1\104\1\105\1\5\1\106\7\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\2\5\1\107\16\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\110\1\111\2\5\1\112\1\113\1\114\1\115\1\116"+ - "\1\5\1\117\1\120\1\121\1\122\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\123\1\0\1\124\20\5"+ - "\4\0\1\4\6\5\1\0\2\5\1\125\1\5\1\126"+ - "\1\5\1\127\10\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\130\7\5\1\131\3\5\1\120\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\132\1\5\1\133\2\5"+ - "\1\134\1\135\1\5\1\136\1\5\1\137\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\140\1\141\1\0"+ - "\1\142\3\5\1\143\3\5\1\144\10\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\145\12\5\1\146\2\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\2\5\1\147\14\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\150\3\5\1\151"+ - "\2\5\1\152\3\5\1\153\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\154\1\155\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\4\5\1\156\12\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\157\5\5\1\160\1\161"+ - "\1\5\1\162\4\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\6\5\1\163\2\5\1\164\1\165\4\5\11\0\1\4"+ - "\2\5\2\0\1\5\1\166\1\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\167"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\170"+ - "\6\5\1\165\5\5\1\171\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\1\5\1\172\6\5\1\173\3\5\1\174\2\5"+ - "\11\0\1\4\2\5\2\0\1\5\1\175\1\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\1\5\1\171\17\5\33\0\1\176\116\0"+ - "\1\52\233\0\1\52\1\0\1\177\16\0\1\200\44\0"+ - "\27\201\1\202\3\201\1\203\4\201\1\204\2\201\1\0"+ - "\52\201\30\0\1\52\3\0\1\30\111\0\1\52\4\0"+ - "\1\30\110\0\1\52\6\0\1\52\56\0\40\41\1\205"+ - "\2\41\1\206\1\207\51\41\1\4\6\5\1\0\2\5"+ - "\1\210\3\5\1\210\1\5\1\211\2\5\1\137\1\212"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\1\213\20\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\214\1\215\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\216\1\0\21\5\4\0\3\74\1\7"+ - "\1\74\1\7\1\75\1\0\1\74\1\75\3\74\1\76"+ - "\4\74\1\77\4\74\11\0\1\74\1\7\1\217\2\0"+ - "\2\74\1\7\2\0\1\77\1\76\1\100\1\74\1\0"+ - "\3\74\4\0\2\74\1\0\2\74\1\217\2\74\2\7"+ - "\12\74\54\0\1\45\50\0\1\100\1\0\1\100\33\0"+ - "\1\100\5\0\1\100\26\0\2\100\16\0\7\4\1\0"+ - "\1\220\1\221\1\4\1\222\1\4\1\223\4\4\1\224"+ - "\1\225\3\4\11\0\3\4\2\0\3\4\1\226\1\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\4\0\1\4\6\5\1\0\3\5\1\227\4\5"+ - "\1\230\3\5\1\231\1\5\1\232\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\4\5\1\233\14\5"+ - "\4\0\1\4\6\5\1\0\6\5\1\134\2\5\1\234"+ - "\1\5\1\137\2\5\1\235\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\236\1\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\6\5\1\237\10\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\34\0\1\52"+ - "\62\0\1\52\32\0\1\52\63\0\1\52\1\0\12\60"+ - "\1\0\30\60\1\0\5\60\1\0\14\60\1\0\2\60"+ - "\1\0\24\60\13\0\1\240\53\0\1\241\60\0\1\242"+ - "\152\0\1\243\117\0\1\244\24\0\12\66\1\0\30\66"+ - "\1\0\22\66\1\0\2\66\1\0\24\66\13\0\1\245"+ - "\53\0\1\246\115\0\1\247\117\0\1\250\24\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\1\5\1\251\1\0\1\252\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\11\5\1\253\1\5\1\254"+ - "\3\5\1\255\1\5\4\0\7\74\1\0\17\74\11\0"+ - "\3\74\2\0\3\74\2\0\2\74\1\0\1\74\1\0"+ - "\3\74\4\0\2\74\1\0\21\74\4\0\3\74\1\256"+ - "\1\74\1\256\1\74\1\257\17\74\10\0\1\257\1\74"+ - "\1\256\1\74\2\0\2\74\1\256\2\0\2\74\1\0"+ - "\1\74\1\0\3\74\4\0\2\74\1\0\5\74\2\256"+ - "\12\74\4\0\7\74\1\0\12\74\1\260\4\74\11\0"+ - "\3\74\2\0\3\74\2\0\1\260\1\74\1\0\1\74"+ - "\1\0\3\74\4\0\2\74\1\0\21\74\4\0\7\74"+ - "\1\0\5\74\1\260\11\74\11\0\3\74\2\0\3\74"+ - "\2\0\1\74\1\260\1\0\1\74\1\0\3\74\4\0"+ - "\2\74\1\0\21\74\4\0\3\74\1\100\1\74\1\100"+ - "\1\261\1\0\1\74\1\261\1\262\2\74\1\262\11\74"+ - "\11\0\1\74\1\100\1\74\2\0\2\74\1\100\2\0"+ - "\1\74\1\262\1\0\1\262\1\0\3\74\4\0\2\74"+ - "\1\0\5\74\2\100\12\74\4\0\1\4\6\5\1\0"+ - "\2\5\1\263\14\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\2\5\1\264\14\5\11\0\1\4\2\5\2\0\1\265"+ - "\2\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\12\5\1\266\4\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\12\5\1\267\4\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\6\5\1\270\10\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\7\5\1\271\7\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\272\7\5\1\273\3\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\274\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\275\1\276\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\5\5\1\277\11\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\10\5\1\300\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\301\7\5"+ - "\1\136\5\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\302\15\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5"+ - "\1\125\3\5\1\303\3\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\5\5\1\304\11\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\7\5\1\160\2\5\1\305\4\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\1\5\1\306\1\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\307\15\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\10\5\1\310\6\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\311\15\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\6\5\1\134\1\312\3\5\1\137"+ - "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\5\1\313\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\314\4\5\1\315"+ - "\1\316\2\5\1\317\1\320\1\321\1\322\1\323\1\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\2\5\1\324\16\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\325\1\5\1\326\13\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\4\5\1\327\4\5\1\330\3\5\1\331\1\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\332\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\4\5\1\333\10\5\1\334"+ - "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\3\5\1\335\15\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\136\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\14\5\1\336\2\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\14\5\1\337\2\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\160\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\340\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\341\4\5\1\342\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\343\2\5\1\134\4\5\1\137"+ - "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\344"+ - "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\272"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\345"+ - "\7\5\1\174\1\346\1\347\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\350\1\0\1\351\20\5\4\0"+ - "\1\4\6\5\1\0\3\5\1\352\1\310\12\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\2\5\1\353\14\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\3\5\1\354\13\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\355\6\5\1\356"+ - "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\357"+ - "\1\5\1\333\10\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\5\5\1\360\1\270\10\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\14\5\1\361\2\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\227\13\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\362\2\5\1\363\6\5\1\364\1\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\7\5\1\275\7\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\3\5\1\365\13\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\1\273\20\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\366\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\3\5\1\367\2\5\1\370\2\5"+ - "\1\171\5\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5"+ - "\1\306\6\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\371"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\273"+ - "\1\5\1\144\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\372\6\5\1\373\3\5\1\374\2\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\375\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\155\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\16\5\1\376\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\1\276\16\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\5\5\1\360\11\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\5\5\1\303\1\377\1\u0100\7\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\216\1\0\21\5\34\0"+ - "\10\52\56\0\33\u0101\1\u0102\7\u0101\1\0\101\u0101\1\u0103"+ - "\3\u0101\1\u0102\7\u0101\1\0\57\u0101\1\u0104\3\u0101\2\201"+ - "\1\u0101\1\201\2\u0101\1\201\4\u0101\1\201\2\u0101\1\201"+ - "\3\u0101\1\u0105\4\u0101\1\201\1\u0106\1\u0107\1\0\3\201"+ - "\1\u0106\17\u0101\1\201\3\u0101\1\u0107\2\u0101\2\u0106\16\u0101"+ - "\5\206\1\41\3\206\2\41\1\206\1\41\2\206\1\41"+ - "\4\206\1\41\2\206\1\41\3\206\1\41\4\206\2\41"+ - "\1\u0108\1\0\4\41\17\206\1\41\3\206\1\u0108\2\206"+ - "\2\41\56\206\1\u0109\3\206\1\u010a\51\206\1\4\6\5"+ - "\1\0\13\5\1\137\3\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\213\20\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\u010b\1\5\1\u010c\11\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\1\5\1\u010d\4\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\13\5\1\137\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u010e\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u010f\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\u0110\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\3\74\4\u0111\1\0\3\u0111\6\74\1\u0111\2\74"+ - "\1\u0111\2\74\11\0\1\74\1\u0111\1\74\2\0\1\74"+ - "\2\u0111\2\0\2\74\1\0\1\u0111\1\0\3\74\4\0"+ - "\2\74\1\0\5\74\2\u0111\2\74\2\u0111\5\74\1\u0111"+ - "\4\0\7\4\1\0\1\4\1\u0112\15\4\11\0\3\4"+ - "\2\0\3\4\2\0\2\4\1\0\1\4\1\0\3\4"+ - "\4\0\2\4\1\0\21\4\4\0\7\4\1\0\4\4"+ - "\1\u0113\1\u0114\1\4\1\u0115\7\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\4\0\7\4\1\0\2\4\1\u0116"+ - "\1\4\1\u0117\12\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\4\0\7\4\1\0\3\4\1\u0118\13\4\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0"+ - "\4\4\1\u0119\12\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\4\0\7\4\1\0\7\4\1\u011a\7\4\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\14\0\1\u011b\1\u011c"+ - "\1\0\1\u011d\1\0\1\u011e\4\0\1\u011f\1\u0120\24\0"+ - "\1\226\45\0\1\4\6\5\1\0\16\5\1\u0121\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\5\5\1\315\4\5\1\320"+ - "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\333"+ - "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\13\5\1\u0122"+ - "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\13\5\1\u0123"+ - "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0124"+ - "\1\u0125\7\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\u0126\1\u0127\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\172\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\3\5\1\u0128\13\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\144\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\21\0\1\u0129\123\0\1\u012a"+ - "\161\0\1\u012b\117\0\1\u012c\41\0\1\u012d\123\0\1\u012e"+ - "\161\0\1\u012f\117\0\1\u0130\24\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\14\5\1\u0131\4\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\14\5\1\u0132\4\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\12\5\1\u0133\6\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\14\5\1\u0134\4\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\13\5\1\u0135\5\5\4\0\3\74\1\256\1\74"+ - "\1\256\1\74\1\0\5\74\1\76\4\74\1\77\4\74"+ - "\11\0\1\74\1\256\1\74\2\0\2\74\1\256\2\0"+ - "\1\77\1\76\1\0\1\74\1\0\3\74\4\0\2\74"+ - "\1\0\5\74\2\256\12\74\7\0\1\256\1\0\1\256"+ - "\33\0\1\256\5\0\1\256\26\0\2\256\16\0\3\74"+ - "\1\u0136\1\74\1\u0136\1\74\1\u0137\17\74\10\0\1\u0137"+ - "\1\74\1\u0136\1\74\2\0\2\74\1\u0136\2\0\2\74"+ - "\1\0\1\74\1\0\3\74\4\0\2\74\1\0\5\74"+ - "\2\u0136\12\74\4\0\1\4\6\5\1\0\14\5\1\u0138"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\171"+ - "\14\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\1\5\1\126\4\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\1\5\1\u0139\1\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\16\5\1\125"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\125\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\4\5\1\u013a\12\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\273\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u013b\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u013c\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\2\5\1\273\14\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\12\5\1\u013d\4\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\u013e\3\5\1\126"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u013f"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u0140\1\0\21\5\4\0\1\4\6\5\1\0\1\5"+ - "\1\273\6\5\1\u0141\3\5\1\310\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\2\5\1\u0142"+ - "\16\5\4\0\1\4\6\5\1\0\1\5\1\367\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\10\5\1\352\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\u0143\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\6\5\1\273\10\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\u0144\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\273\16\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\5\5\1\354\11\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\u0145\13\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\3\5\1\u0146\13\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\10\5\1\u0147\6\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\13\5\1\u0148\3\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\4\5\1\u0149\12\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\13\5\1\u014a\3\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\7\5\1\u014b\2\5\1\u014c\4\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\5\5\1\u014d\11\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u014e\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\314\16\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\2\5\1\u0142\16\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\1\265\2\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\15\5\1\u014f\1\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\14\5\1\u0150\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\6\5\1\u0151\12\5\4\0\1\4"+ - "\6\5\1\0\5\5\1\u0152\11\5\11\0\1\4\2\5"+ - "\2\0\1\u0153\1\u0154\1\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\7\5"+ - "\1\u0155\11\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\273\1\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\4\5\1\u0156\12\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0157\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\4\5\1\310\12\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\4\5\1\276\12\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\7\5\1\126\7\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\157\1\171"+ - "\1\5\1\u0158\1\303\1\u0159\1\u015a\1\5\1\u015b\1\u015c"+ - "\1\u015d\3\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u015e\1\0\2\5\1\u015f\16\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\u0160\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u0161\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5"+ - "\1\u0162\1\0\21\5\4\0\1\4\6\5\1\0\14\5"+ - "\1\227\2\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5"+ - "\1\u0163\13\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5"+ - "\1\u0164\6\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\12\5"+ - "\1\u0165\4\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5"+ - "\1\336\13\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\u0121\10\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\u0166\10\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\5\5"+ - "\1\273\11\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\14\5"+ - "\1\u0167\2\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5"+ - "\1\u013f\5\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\u0168\10\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u0169\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\5\5\1\u016a\11\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\313\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\10\5\1\u016b\6\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\3\5\1\u016c\13\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\u016d\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\4\5\1\u016e\12\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\6\5\1\273\2\5\1\u016f\5\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\1\u0170\20\5\4\0"+ - "\1\4\6\5\1\0\4\5\1\273\12\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\144\15\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\10\5\1\125\6\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\2\5\1\u0171\16\5\4\0"+ - "\1\4\6\5\1\0\2\5\2\273\1\5\1\273\11\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\4\5\1\u0172\12\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0173\4\5"+ - "\1\273\2\5\1\u016f\5\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\u0170\20\5\4\0\1\4"+ - "\6\5\1\0\6\5\1\u0174\2\5\1\u0175\4\5\1\347"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\3\5\1\u0176\3\5"+ - "\1\u0177\7\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u0178\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\5\5\1\303\11\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\216\1\0\21\5\4\0\33\u0101\1\203"+ - "\7\u0101\1\0\102\u0101\3\201\1\u0105\4\201\3\u0101\1\0"+ - "\57\u0101\1\201\25\u0101\1\u0102\5\u0101\1\201\1\u0101\1\0"+ - "\3\u0101\1\201\26\u0101\2\201\16\u0101\33\0\1\u0102\62\0"+ - "\5\u0101\1\u0104\25\u0101\1\u0102\5\u0101\1\u0104\1\u0101\1\0"+ - "\3\u0101\1\u0104\26\u0101\2\u0104\21\u0101\4\u0179\1\u0101\3\u0179"+ - "\6\u0101\1\u0179\2\u0101\1\u0179\6\u0101\1\203\5\u0101\1\u0179"+ - "\1\u0101\1\0\2\u0101\2\u0179\5\u0101\1\u0179\20\u0101\2\u0179"+ - "\2\u0101\2\u0179\5\u0101\1\u0179\4\u0101\3\206\4\u017a\1\206"+ - "\3\u017a\6\206\1\u017a\2\206\1\u017a\13\206\1\u0109\1\u017a"+ - "\2\206\1\u010a\1\206\2\u017a\5\206\1\u017a\20\206\2\u017a"+ - "\2\206\2\u017a\5\206\1\u017a\47\206\1\0\52\206\1\4"+ - "\6\5\1\0\1\313\16\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\14\5\1\u017b\2\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\1\5\1\336\4\5\1\u017c\5\5\1\u017d\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\14\5\1\u017e\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\14\5\1\u017f\2\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\1\u0180\20\5"+ - "\4\0\3\74\4\u0111\1\0\3\u0111\2\74\1\u0181\3\74"+ - "\1\u0111\1\u0182\1\74\1\u0111\2\74\11\0\1\74\1\u0111"+ - "\1\74\2\0\1\74\2\u0111\2\0\1\u0182\1\u0181\1\0"+ - "\1\u0111\1\0\3\74\4\0\2\74\1\0\5\74\2\u0111"+ - "\2\74\2\u0111\5\74\1\u0111\4\0\7\4\1\0\2\4"+ - "\1\223\14\4\11\0\3\4\2\0\3\4\2\0\2\4"+ - "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4"+ - "\4\0\7\4\1\0\1\u0183\16\4\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\4\0\7\4\1\0\3\4\1\u0184"+ - "\2\4\1\u0185\10\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\4\0\7\4\1\0\7\4\1\u0186\7\4\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0"+ - "\1\u0187\3\4\1\u0119\12\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\4\0\7\4\1\0\11\4\1\u0188\5\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4"+ - "\1\0\4\4\1\u0185\12\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\4\0\7\4\1\0\1\u0187\16\4\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0"+ - "\14\4\1\u0189\2\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\15\0\1\u018a\120\0\1\u018b\1\u018c\1\0\1\u018d"+ - "\110\0\1\u018e\1\0\1\u018f\114\0\1\u0190\116\0\1\u0191"+ - "\120\0\1\u0192\76\0\1\4\6\5\1\0\1\5\1\273"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\u0193"+ - "\1\5\1\u0194\12\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\u0195\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\2\5\1\171\1\5\1\u0158\1\303\1\u0159\1\u0196\1\5"+ - "\1\u015b\1\5\1\u015d\3\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\u0197\1\0\2\5\1\u015f\16\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\u0198\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\14\5\1\u0199\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\10\5\1\u019a\6\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\5\5\1\270\11\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\15\0"+ - "\1\u012a\174\0\1\u019b\50\0\1\u019c\146\0\1\u019d\52\0"+ - "\1\u012e\174\0\1\u019e\50\0\1\u019f\146\0\1\u01a0\41\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\16\5\1\u01a1\2\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\1\5\1\u01a1\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\13\5\1\u01a1\5\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\15\5\1\u01a1\3\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\11\5\1\u01a2\7\5\4\0\3\74"+ - "\1\u0136\1\74\1\u0136\1\74\1\0\2\74\1\262\2\74"+ - "\1\262\11\74\11\0\1\74\1\u0136\1\74\2\0\2\74"+ - "\1\u0136\2\0\1\74\1\262\1\0\1\262\1\0\3\74"+ - "\4\0\2\74\1\0\5\74\2\u0136\12\74\7\0\1\u0136"+ - "\1\0\1\u0136\33\0\1\u0136\5\0\1\u0136\26\0\2\u0136"+ - "\16\0\1\4\6\5\1\0\12\5\1\u01a3\4\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\5\5\1\u01a4\11\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\273\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u016b\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\u013e\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\6\5\1\u01a5\10\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\273\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\1\5\1\273\17\5"+ - "\4\0\1\4\6\5\1\0\13\5\1\164\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\13\5\1\303\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\13\5\1\273\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\6\5\1\273\2\5\1\273"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\1\u01a6\20\5\4\0\1\4\6\5\1\0\6\5"+ - "\1\273\2\5\1\273\1\5\1\164\3\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\1\u01a6\20\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\u0121\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\15\5\1\u0171\1\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\u01a7\20\5\4\0\1\4"+ - "\6\5\1\0\14\5\1\u01a8\2\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\u01a9\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\13\5\1\u01a7\3\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\3\5\1\u01aa\13\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\4\5\1\u01ab\12\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\4\5\1\u01ac\6\5\1\u01ad\3\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\14\5\1\u01ae\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\7\5\1\u0155\11\5\4\0"+ - "\1\4\6\5\1\0\5\5\1\u01af\11\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\2\5\1\273\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\10\5\1\u01b0\6\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\5"+ - "\1\u0154\1\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\12\5\1\276\4\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\16\5\1\u0142\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\1\5\1\u010b\12\5\1\354\2\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\1\5\1\126\4\5\1\0\10\5\1\u01b1\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\11\5\1\u01b2\5\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\13\5\1\367\3\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u013e"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u01b3"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u01b4"+ - "\1\5\1\311\2\5\1\u01b5\1\272\1\5\1\u0142\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\u013e\1\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\11\5\1\u0168\5\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\1\5\1\u01b6\1\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01b7\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\2\5\1\u01b8\14\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\3\5\1\u01b9\13\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\11\5\1\u01ba\5\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u01bb\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\6\5\1\u01bc\10\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\1\u0121\2\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u01bd\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\5\1\u01be\15\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u01bf\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\125\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\3\5\1\u01c0\13\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\10\5\1\u0180\6\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\4\5\1\125\12\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\15\5\1\u01c1\1\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\5\1\u01c2\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\276\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\u01c3\1\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\u016f\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\3\5\1\272\13\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\5\5\1\273\13\5\4\0\1\4\6\5\1\0"+ - "\4\5\1\u01c4\12\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\1\5\1\272\15\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\13\5\1\u01b5\2\5\1\u0142\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\u013e\1\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\4\5\1\u0171\12\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\u0178\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\10\5\1\u01c5\6\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\3\u0101\4\201"+ - "\1\u0101\3\201\6\u0101\1\201\2\u0101\1\201\6\u0101\1\203"+ - "\5\u0101\1\201\1\u0101\1\0\2\u0101\2\201\5\u0101\1\201"+ - "\20\u0101\2\201\2\u0101\2\201\5\u0101\1\201\4\u0101\3\206"+ - "\4\41\1\206\3\41\6\206\1\41\2\206\1\41\13\206"+ - "\1\u0109\1\41\2\206\1\u010a\1\206\2\41\5\206\1\41"+ - "\20\206\2\41\2\206\2\41\5\206\1\41\4\206\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\1\5\1\236\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\5\1\u01c6\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\u01c7\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\7\5\1\u01c8\7\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\1\5\1\125\17\5\4\0\1\4\6\5\1\0"+ - "\11\5\1\273\5\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\21\5\4\0\7\74\1\0\12\74"+ - "\1\u01c9\4\74\11\0\3\74\2\0\3\74\2\0\1\u01c9"+ - "\1\74\1\0\1\74\1\0\3\74\4\0\2\74\1\0"+ - "\21\74\4\0\7\74\1\0\5\74\1\u01c9\11\74\11\0"+ - "\3\74\2\0\3\74\2\0\1\74\1\u01c9\1\0\1\74"+ - "\1\0\3\74\4\0\2\74\1\0\21\74\4\0\7\4"+ - "\1\0\3\4\1\u0184\13\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\4\0\7\4\1\0\2\4\1\u01ca\14\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4"+ - "\1\0\1\4\1\u01ca\15\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\4\0\7\4\1\0\10\4\1\u01cb\6\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4"+ - "\1\0\1\4\1\u0184\15\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\4\0\7\4\1\0\5\4\1\u01cc\11\4"+ - "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4"+ - "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4"+ - "\1\0\15\4\1\u01cd\1\4\11\0\3\4\2\0\3\4"+ - "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4"+ - "\1\0\21\4\16\0\1\u011e\113\0\1\u01ce\120\0\1\u01cf"+ - "\2\0\1\u01d0\116\0\1\u01d1\106\0\1\u01d2\3\0\1\u0191"+ - "\122\0\1\u01d3\110\0\1\u01d0\111\0\1\u01d2\131\0\1\u01d4"+ - "\71\0\1\4\6\5\1\0\3\5\1\u01d5\13\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\14\5\1\u01bb\2\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\u01d6\16\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\11\5\1\u01b3\5\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\5\1\u01d7\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\u01d8\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\10\5\1\u01d9\6\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u01da\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\16\5\1\u01db\11\0\1\4"+ - "\2\5\2\0\1\5\1\273\1\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\36\0\1\u01dc\101\0\1\u012a\51\0\1\u019b\26\0"+ - "\1\u019d\1\u01dd\4\u019d\1\u01dd\17\u019d\3\u01dd\1\u019d\1\u01dd"+ - "\2\0\2\u01dd\1\0\2\u019d\2\0\3\u019d\1\0\1\u01dd"+ - "\2\u019d\1\u01dd\1\u019d\1\0\1\u01dd\1\u019d\5\u01dd\2\u019d"+ - "\1\u01dd\21\u019d\1\0\1\u01dd\34\0\1\u01de\101\0\1\u012e"+ - "\51\0\1\u019e\26\0\1\u01a0\1\u01df\4\u01a0\1\u01df\17\u01a0"+ - "\3\u01df\1\u01a0\1\u01df\2\0\2\u01df\1\0\2\u01a0\2\0"+ - "\3\u01a0\1\0\1\u01df\2\u01a0\1\u01df\1\u01a0\1\0\1\u01df"+ - "\1\u01a0\5\u01df\2\u01a0\1\u01df\21\u01a0\1\0\1\u01df\2\0"+ - "\1\4\5\5\1\u01e0\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5"+ - "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4"+ - "\4\0\2\5\1\0\20\5\1\u01e0\4\0\1\4\6\5"+ - "\1\0\5\5\1\u0168\11\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\1\5\1\313\15\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\6\5\1\273\2\5\1\273\5\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\1\5\1\u013e\15\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\11\5\1\u0121\5\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\7\5\1\354\7\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\4\5\1\272\12\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\11\5\1\272\5\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\12\5\1\u01bb\4\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\1\u01e1\1\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\13\5\1\u01a5\3\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\1\5\1\u01e2\15\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\1\5\1\155\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\11\5\1\u01e3\5\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\2\5\1\125\14\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0"+ - "\1\4\6\5\1\0\13\5\1\u01b5\1\272\1\5\1\u0142"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\1\u013e\1\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\13\5\1\367\3\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\4\5\1\273\14\5"+ - "\4\0\1\4\6\5\1\0\7\5\1\u013f\7\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\1\273\4\5\1\273\4\5"+ - "\1\354\4\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\1\5\1\273\17\5\4\0\1\4\6\5"+ - "\1\0\7\5\1\u01bb\7\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\11\5\1\125\5\5\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5"+ - "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\1\125\1\5\1\0\21\5\4\0\1\4\6\5\1\0"+ - "\16\5\1\273\11\0\1\4\2\5\2\0\3\5\2\0"+ - "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0"+ - "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u01e4"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\u01e5"+ - "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\1\5\1\u01e6\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u01e7\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\4\5\1\u01e8\12\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\4\5\1\u01e9\12\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\11\5\1\273\5\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\1\u0180\20\5\4\0\1\4\6\5\1\0\14\5\1\u013e"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0"+ - "\1\4\2\5\2\0\1\273\2\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4"+ - "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0"+ - "\1\4\1\5\1\4\4\0\2\5\1\0\1\u01ea\20\5"+ - "\4\0\1\4\6\5\1\0\14\5\1\144\2\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\15\5\1\273\1\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\1\4\6\5\1\0\11\5\1\u01a5\5\5\11\0"+ - "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5"+ - "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5"+ - "\4\0\7\4\1\0\7\4\1\u01ca\7\4\11\0\3\4"+ - "\2\0\3\4\2\0\2\4\1\0\1\4\1\0\3\4"+ - "\4\0\2\4\1\0\21\4\4\0\7\4\1\0\12\4"+ - "\1\u01eb\4\4\11\0\3\4\2\0\3\4\2\0\2\4"+ - "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4"+ - "\4\0\7\4\1\0\16\4\1\u01ec\11\0\3\4\2\0"+ - "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0"+ - "\2\4\1\0\21\4\17\0\1\u01cf\114\0\1\u01ed\114\0"+ - "\1\u01ed\124\0\1\u01ee\106\0\1\u01cf\121\0\1\u01ef\125\0"+ - "\1\u01f0\70\0\1\4\6\5\1\0\5\5\1\u0121\11\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\5\1\u01b1\15\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01f1\6\5"+ - "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0"+ - "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0"+ - "\21\5\4\0\1\4\6\5\1\0\1\273\4\5\1\273"+ - "\4\5\1\354\3\5\1\120\11\0\1\4\2\5\2\0"+ - "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5"+ - "\1\4\4\0\2\5\1\0\1\5\1\273\17\5\4\0"+ - "\1\4\6\5\1\0\16\5\1\u01db\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\5"+ - "\1\273\1\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\36\0\1\u019d"+ - "\115\0\1\u01a0\63\0\1\4\1\5\1\u01f2\4\5\1\0"+ - "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\273"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u01f3"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u01d5"+ - "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u01f4"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\276"+ - "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u013e"+ - "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\12\5\1\270"+ - "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u010b"+ - "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\306"+ - "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5"+ - "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5"+ - "\1\0\21\5\4\0\7\4\1\0\1\u0185\16\4\11\0"+ - "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0"+ - "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0"+ - "\14\4\1\u01ca\2\4\11\0\3\4\2\0\3\4\2\0"+ - "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0"+ - "\21\4\23\0\1\u01ed\120\0\1\u01f5\121\0\1\u01f6\67\0"+ - "\1\4\6\5\1\0\16\5\1\120\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\1\5\1\u01f7\4\5\1\0\17\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\10\5\1\u0173\6\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4"+ - "\6\5\1\0\7\5\1\125\7\5\11\0\1\4\2\5"+ - "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4"+ - "\1\5\1\4\4\0\2\5\1\0\21\5\14\0\1\u01d0"+ - "\131\0\1\u01ed\71\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[37050]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\25\1\1\11\6\1\1\11\6\1\1\11\1\1"+ - "\2\11\7\1\1\11\5\1\1\11\105\1\1\0\2\11"+ - "\2\1\1\11\3\1\1\11\16\1\1\0\11\1\2\0"+ - "\1\11\6\0\6\1\1\0\122\1\1\11\7\1\1\11"+ - "\20\1\6\0\10\1\10\0\6\1\1\0\122\1\4\0"+ - "\1\1\4\0\10\1\2\0\1\1\2\0\56\1\7\0"+ - "\7\1\4\0\15\1\1\11\3\0\4\1\2\0\1\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[503]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 2; + public static final int YYINITIAL = 0; + public static final int MLC = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\50\1\43\1\0\1\50\1\56\22\0\1\50\1\36\1\44" + + "\1\57\1\60\1\65\1\113\1\33\1\31\1\31\1\51\1\7\1\64" + "\1\37\1\54\1\32\1\47\1\77\1\76\1\41\4\5\2\3\1\70" + + "\1\63\1\34\1\30\1\35\1\27\1\61\1\103\1\4\1\111\1\102" + "\1\6\1\55\2\1\1\105\2\1\1\53\1\106\1\107\4\1\1\110" + + "\1\104\1\52\2\1\1\42\2\1\1\62\1\40\1\62\1\115\1\2" + "\1\0\1\24\1\46\1\21\1\10\1\11\1\12\1\25\1\66\1\13" + + "\1\100\1\72\1\15\1\26\1\14\1\20\1\23\1\101\1\17\1\16" + "\1\67\1\22\1\45\1\71\1\73\1\75\1\74\1\112\1\114\1\112" + + "\1\64\uff81\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 = "\3\0\1\1\2\2\1\3\1\4\16\2\2\4\1\5" + "\1\4\1\6\3\4\1\2\1\7\1\10\2\2\1\3" + + "\1\11\1\4\2\1\1\2\1\4\3\2\2\4\2\12" + "\1\13\5\12\1\14\2\12\1\2\2\15\2\3\1\16" + "\2\2\1\17\21\2\1\17\50\2\1\0\1\20\1\21" + + "\2\22\1\23\1\6\2\10\1\24\7\2\1\15\6\1" + "\1\0\11\2\2\0\1\25\6\0\5\2\1\3\1\0" + "\1\3\1\15\1\16\2\2\1\26\5\2\1\26\17\2" + + "\1\27\15\2\1\26\1\2\1\26\45\2\1\6\1\30" + "\1\6\3\22\1\6\2\10\1\31\6\2\1\32\4\1" + "\1\33\4\1\6\0\10\2\10\0\5\2\1\16\1\0" + + "\27\2\1\27\37\2\1\26\2\2\1\26\6\2\1\6" + "\1\10\6\2\2\32\7\1\4\0\1\33\4\0\10\2" + "\2\0\1\34\2\0\1\35\50\2\1\32\1\33\3\1" + + "\7\0\7\2\4\0\5\2\1\36\5\2\2\1\1\33" + "\3\0\4\2\2\0\1\33"; + + private static int[] zzUnpackAction() { + int[] result = new int[503]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int[] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do + result[j++] = value; + while (--count > 0); + } + return j; + } + + /** + * Translates a state to a row index in the transition table + */ + private static final int[] ZZ_ROWMAP = zzUnpackRowMap(); + private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222" + + "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492" + + "\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u06b4\0\u0702" + + "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u0888\0\u08d6\0\352\0\u0750" + + "\0\u0924\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa\0\u0750\0\u0af8" + + "\0\u0750\0\u0750\0\u0b46\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc" + + "\0\u0d1a\0\u0750\0\u0d68\0\u0db6\0\u0e04\0\u0e52\0\u0ea0\0\u0750" + + "\0\u0eee\0\u0f3c\0\u0f8a\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110" + + "\0\u115e\0\u11ac\0\u11fa\0\u1248\0\u1296\0\u12e4\0\u1332\0\u1380" + + "\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506\0\u1554\0\u15a2\0\u15f0" + + "\0\u163e\0\u168c\0\u16da\0\u1728\0\u0138\0\u1776\0\u17c4\0\u1812" + + "\0\u1860\0\u18ae\0\u18fc\0\u194a\0\u1998\0\u19e6\0\u1a34\0\u1a82" + + "\0\u1ad0\0\u1b1e\0\u1b6c\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u1cf2" + + "\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6\0\u1f14\0\u1f62" + + "\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u2136\0\u2184\0\u21d2" + + "\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358\0\u23a6\0\u0750\0\u0750" + + "\0\u23f4\0\u2442\0\u0750\0\u2490\0\u24de\0\u252c\0\u0750\0\u257a" + + "\0\u25c8\0\u2616\0\u2664\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea" + + "\0\u2838\0\u2886\0\u28d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u2a5a" + + "\0\u2aa8\0\u2af6\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca" + + "\0\u2d18\0\u0750\0\u2d66\0\u2db4\0\u2e02\0\u2e50\0\u2e9e\0\u2eec" + + "\0\u2f3a\0\u2f88\0\u2fd6\0\u3024\0\u3072\0\u30c0\0\u310e\0\u0fd8" + + "\0\u315c\0\u0fd8\0\u31aa\0\u31f8\0\u3246\0\u3294\0\u32e2\0\u3330" + + "\0\u337e\0\u33cc\0\u0138\0\u341a\0\u3468\0\u34b6\0\u3504\0\u3552" + + "\0\u35a0\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u3726\0\u3774\0\u37c2" + + "\0\u3810\0\u385e\0\u0138\0\u38ac\0\u38fa\0\u3948\0\u3996\0\u39e4" + + "\0\u3a32\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54" + + "\0\u3ca2\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76\0\u3ec4" + + "\0\u3f12\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098\0\u40e6\0\u4134" + + "\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4" + + "\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614" + + "\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a\0\u47e8\0\u4836\0\u4884" + + "\0\u48d2\0\u0750\0\u4920\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6" + + "\0\u4af4\0\u0750\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u4c7a\0\u4cc8" + + "\0\u4d16\0\u4d64\0\u4db2\0\u4e00\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38" + + "\0\u4f86\0\u4fd4\0\u5022\0\u5070\0\u50be\0\u510c\0\u515a\0\u51a8" + + "\0\u51f6\0\u5244\0\u5292\0\u52e0\0\u532e\0\u537c\0\u53ca\0\u5418" + + "\0\u5466\0\u54b4\0\u5502\0\u5550\0\u559e\0\u55ec\0\u563a\0\u5688" + + "\0\u56d6\0\u5724\0\u5772\0\u57c0\0\u580e\0\u585c\0\u58aa\0\u58f8" + + "\0\u5946\0\u5994\0\u59e2\0\u5a30\0\u5a7e\0\u5acc\0\u5b1a\0\u5b68" + + "\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0\0\u5cee\0\u5d3c\0\u5d8a\0\u5dd8" + + "\0\u5e26\0\u5e74\0\u5ec2\0\u5f10\0\u5f5e\0\u5fac\0\u5ffa\0\u6048" + + "\0\u6096\0\u60e4\0\u6132\0\u6180\0\u61ce\0\u621c\0\u626a\0\u62b8" + + "\0\u6306\0\u6354\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da\0\u6528" + + "\0\u6576\0\u65c4\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u674a\0\u6798" + + "\0\u67e6\0\u6834\0\u6882\0\u68d0\0\u691e\0\u696c\0\u69ba\0\u6a08" + + "\0\u6a56\0\u6aa4\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a\0\u6c78" + + "\0\u6cc6\0\u6d14\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a\0\u6ee8" + + "\0\u6f36\0\u6f84\0\u6fd2\0\u7020\0\u706e\0\u70bc\0\u710a\0\u7158" + + "\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u72de\0\u732c\0\u737a\0\u73c8" + + "\0\u7416\0\u7464\0\u74b2\0\u7500\0\u754e\0\u759c\0\u75ea\0\u7638" + + "\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c\0\u785a\0\u78a8" + + "\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u3d3e\0\u7a2e\0\u7a7c\0\u7aca" + + "\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a" + + "\0\u7d88\0\u7dd6\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c\0\u7faa" + + "\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc\0\u821a" + + "\0\u8268\0\u82b6\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c\0\u848a" + + "\0\u0fd8\0\352\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u8610\0\u865e" + + "\0\u86ac\0\u86fa\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u88ce" + + "\0\u891c\0\u3246\0\u896a\0\u89b8\0\u77be\0\u8a06\0\u78a8\0\u8a54" + + "\0\u8aa2\0\u8af0\0\u8b3e\0\u8b8c\0\u0138\0\u8bda\0\u8c28\0\u8c76" + + "\0\u8cc4\0\u8d12\0\u8d60\0\u8dae\0\u0750\0\u8dfc\0\u8e4a\0\u8e98" + + "\0\u8ee6\0\u8f34\0\u8f82\0\u8fd0\0\u901e\0\u906c\0\u0138"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[503]; + 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 = "\1\4\1\5\1\6\1\7\1\5\1\7\1\5\1\10" + "\1\11\1\12\1\13\1\14\1\5\1\15\1\16\1\17" + + "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27" + "\1\30\1\31\1\32\1\33\1\34\1\35\1\30\1\36" + + "\1\37\1\7\1\5\1\40\1\41\1\42\1\43\1\44" + "\1\45\1\30\2\5\1\46\1\5\1\47\1\50\2\4" + "\1\31\1\51\1\52\1\30\1\5\1\53\1\52\1\54" + + "\4\5\2\7\1\5\1\55\10\5\1\31\1\56\1\57" + "\1\30\12\60\1\61\30\60\1\62\5\60\1\63\14\60" + + "\1\64\2\60\1\65\24\60\12\66\1\67\30\66\1\70" + "\22\66\1\71\2\66\1\72\24\66\7\4\1\0\17\4" + + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\1\5\1\73" + "\4\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\3\74\1\7\1\74" + "\1\7\1\75\1\0\1\74\1\75\3\74\1\76\4\74" + + "\1\77\4\74\11\0\1\74\1\7\1\74\2\0\2\74" + "\1\7\2\0\1\77\1\76\1\100\1\74\1\0\3\74" + "\4\0\2\74\1\0\5\74\2\7\12\74\13\0\1\52" + + "\20\0\1\52\65\0\1\4\6\5\1\0\1\5\1\101" + "\1\5\1\102\4\5\1\103\6\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\4\5\1\104\1\105\1\5\1\106\7\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\2\5\1\107\16\5\4\0\1\4\6\5\1\0\1\5" + "\1\110\1\111\2\5\1\112\1\113\1\114\1\115\1\116" + + "\1\5\1\117\1\120\1\121\1\122\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\123\1\0\1\124\20\5" + + "\4\0\1\4\6\5\1\0\2\5\1\125\1\5\1\126" + "\1\5\1\127\10\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\130\7\5\1\131\3\5\1\120\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\5\1\132\1\5\1\133\2\5" + "\1\134\1\135\1\5\1\136\1\5\1\137\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\1\140\1\141\1\0" + "\1\142\3\5\1\143\3\5\1\144\10\5\4\0\1\4" + + "\6\5\1\0\1\5\1\145\12\5\1\146\2\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\2\5\1\147\14\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\150\3\5\1\151" + "\2\5\1\152\3\5\1\153\2\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\1\154\1\155\1\0\21\5\4\0" + "\1\4\6\5\1\0\4\5\1\156\12\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\5\1\157\5\5\1\160\1\161" + "\1\5\1\162\4\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\6\5\1\163\2\5\1\164\1\165\4\5\11\0\1\4" + + "\2\5\2\0\1\5\1\166\1\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\167" + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\170" + + "\6\5\1\165\5\5\1\171\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\1\5\1\172\6\5\1\173\3\5\1\174\2\5" + "\11\0\1\4\2\5\2\0\1\5\1\175\1\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\2\5\1\0\1\5\1\171\17\5\33\0\1\176\116\0" + "\1\52\233\0\1\52\1\0\1\177\16\0\1\200\44\0" + + "\27\201\1\202\3\201\1\203\4\201\1\204\2\201\1\0" + "\52\201\30\0\1\52\3\0\1\30\111\0\1\52\4\0" + + "\1\30\110\0\1\52\6\0\1\52\56\0\40\41\1\205" + "\2\41\1\206\1\207\51\41\1\4\6\5\1\0\2\5" + + "\1\210\3\5\1\210\1\5\1\211\2\5\1\137\1\212" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\1\213\20\5\4\0\1\4\6\5\1\0\6\5" + "\1\214\1\215\7\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\1\5\1\216\1\0\21\5\4\0\3\74\1\7" + "\1\74\1\7\1\75\1\0\1\74\1\75\3\74\1\76" + "\4\74\1\77\4\74\11\0\1\74\1\7\1\217\2\0" + + "\2\74\1\7\2\0\1\77\1\76\1\100\1\74\1\0" + "\3\74\4\0\2\74\1\0\2\74\1\217\2\74\2\7" + + "\12\74\54\0\1\45\50\0\1\100\1\0\1\100\33\0" + "\1\100\5\0\1\100\26\0\2\100\16\0\7\4\1\0" + + "\1\220\1\221\1\4\1\222\1\4\1\223\4\4\1\224" + "\1\225\3\4\11\0\3\4\2\0\3\4\1\226\1\0" + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + + "\21\4\4\0\1\4\6\5\1\0\3\5\1\227\4\5" + "\1\230\3\5\1\231\1\5\1\232\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\4\5\1\233\14\5" + "\4\0\1\4\6\5\1\0\6\5\1\134\2\5\1\234" + "\1\5\1\137\2\5\1\235\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\236\1\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\6\5\1\237\10\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\34\0\1\52" + "\62\0\1\52\32\0\1\52\63\0\1\52\1\0\12\60" + + "\1\0\30\60\1\0\5\60\1\0\14\60\1\0\2\60" + "\1\0\24\60\13\0\1\240\53\0\1\241\60\0\1\242" + + "\152\0\1\243\117\0\1\244\24\0\12\66\1\0\30\66" + "\1\0\22\66\1\0\2\66\1\0\24\66\13\0\1\245" + + "\53\0\1\246\115\0\1\247\117\0\1\250\24\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\1\5\1\251\1\0\1\252\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\11\5\1\253\1\5\1\254" + "\3\5\1\255\1\5\4\0\7\74\1\0\17\74\11\0" + "\3\74\2\0\3\74\2\0\2\74\1\0\1\74\1\0" + + "\3\74\4\0\2\74\1\0\21\74\4\0\3\74\1\256" + "\1\74\1\256\1\74\1\257\17\74\10\0\1\257\1\74" + + "\1\256\1\74\2\0\2\74\1\256\2\0\2\74\1\0" + "\1\74\1\0\3\74\4\0\2\74\1\0\5\74\2\256" + + "\12\74\4\0\7\74\1\0\12\74\1\260\4\74\11\0" + "\3\74\2\0\3\74\2\0\1\260\1\74\1\0\1\74" + + "\1\0\3\74\4\0\2\74\1\0\21\74\4\0\7\74" + "\1\0\5\74\1\260\11\74\11\0\3\74\2\0\3\74" + "\2\0\1\74\1\260\1\0\1\74\1\0\3\74\4\0" + + "\2\74\1\0\21\74\4\0\3\74\1\100\1\74\1\100" + "\1\261\1\0\1\74\1\261\1\262\2\74\1\262\11\74" + + "\11\0\1\74\1\100\1\74\2\0\2\74\1\100\2\0" + "\1\74\1\262\1\0\1\262\1\0\3\74\4\0\2\74" + + "\1\0\5\74\2\100\12\74\4\0\1\4\6\5\1\0" + "\2\5\1\263\14\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\2\5\1\264\14\5\11\0\1\4\2\5\2\0\1\265" + "\2\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\12\5\1\266\4\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\12\5\1\267\4\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\6\5\1\270\10\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\7\5\1\271\7\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\3\5\1\272\7\5\1\273\3\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\1\5\1\274\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\275\1\276\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\5\5\1\277\11\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\10\5\1\300\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\5\1\301\7\5" + "\1\136\5\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\1\5" + "\1\302\15\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\7\5" + "\1\125\3\5\1\303\3\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\5\5\1\304\11\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\7\5\1\160\2\5\1\305\4\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + + "\1\5\1\306\1\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\5\1\307\15\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\10\5\1\310\6\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\5\1\311\15\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\6\5\1\134\1\312\3\5\1\137" + + "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\1\5\1\313\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\314\4\5\1\315" + + "\1\316\2\5\1\317\1\320\1\321\1\322\1\323\1\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\2\5\1\324\16\5\4\0\1\4\6\5\1\0\1\5" + "\1\325\1\5\1\326\13\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\4\5\1\327\4\5\1\330\3\5\1\331\1\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\1\5\1\332\1\0\21\5" + "\4\0\1\4\6\5\1\0\4\5\1\333\10\5\1\334" + "\1\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\3\5\1\335\15\5\4\0\1\4\6\5\1\0" + "\11\5\1\136\5\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\14\5\1\336\2\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\14\5\1\337\2\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\7\5\1\160\7\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\10\5\1\340\6\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\7\5\1\341\4\5\1\342\2\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\3\5\1\343\2\5\1\134\4\5\1\137" + + "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\344" + + "\10\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\272" + + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\345" + + "\7\5\1\174\1\346\1\347\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\5\1\350\1\0\1\351\20\5\4\0" + + "\1\4\6\5\1\0\3\5\1\352\1\310\12\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\2\5\1\353\14\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\3\5\1\354\13\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\355\6\5\1\356" + "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\357" + "\1\5\1\333\10\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\5\5\1\360\1\270\10\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\14\5\1\361\2\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\3\5\1\227\13\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\3\5\1\362\2\5\1\363\6\5\1\364\1\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\7\5\1\275\7\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\3\5\1\365\13\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\1\273\20\5" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\1\5\1\366\1\0\21\5\4\0" + "\1\4\6\5\1\0\3\5\1\367\2\5\1\370\2\5" + "\1\171\5\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5" + "\1\306\6\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\371" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\273" + "\1\5\1\144\6\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\372\6\5\1\373\3\5\1\374\2\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\375\1\0\21\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\5\1\155\1\0\21\5\4\0\1\4" + "\6\5\1\0\16\5\1\376\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\1\276\16\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\5\5\1\360\11\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\5\5\1\303\1\377\1\u0100\7\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\216\1\0\21\5\34\0" + + "\10\52\56\0\33\u0101\1\u0102\7\u0101\1\0\101\u0101\1\u0103" + "\3\u0101\1\u0102\7\u0101\1\0\57\u0101\1\u0104\3\u0101\2\201" + + "\1\u0101\1\201\2\u0101\1\201\4\u0101\1\201\2\u0101\1\201" + "\3\u0101\1\u0105\4\u0101\1\201\1\u0106\1\u0107\1\0\3\201" + + "\1\u0106\17\u0101\1\201\3\u0101\1\u0107\2\u0101\2\u0106\16\u0101" + "\5\206\1\41\3\206\2\41\1\206\1\41\2\206\1\41" + + "\4\206\1\41\2\206\1\41\3\206\1\41\4\206\2\41" + "\1\u0108\1\0\4\41\17\206\1\41\3\206\1\u0108\2\206" + + "\2\41\56\206\1\u0109\3\206\1\u010a\51\206\1\4\6\5" + "\1\0\13\5\1\137\3\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\1\213\20\5\4\0\1\4" + "\6\5\1\0\3\5\1\u010b\1\5\1\u010c\11\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\1\5\1\u010d\4\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\13\5\1\137\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\u010e\15\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\u010f\15\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\10\5\1\u0110\6\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\3\74\4\u0111\1\0\3\u0111\6\74\1\u0111\2\74" + + "\1\u0111\2\74\11\0\1\74\1\u0111\1\74\2\0\1\74" + "\2\u0111\2\0\2\74\1\0\1\u0111\1\0\3\74\4\0" + + "\2\74\1\0\5\74\2\u0111\2\74\2\u0111\5\74\1\u0111" + "\4\0\7\4\1\0\1\4\1\u0112\15\4\11\0\3\4" + + "\2\0\3\4\2\0\2\4\1\0\1\4\1\0\3\4" + "\4\0\2\4\1\0\21\4\4\0\7\4\1\0\4\4" + "\1\u0113\1\u0114\1\4\1\u0115\7\4\11\0\3\4\2\0" + + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + "\2\4\1\0\21\4\4\0\7\4\1\0\2\4\1\u0116" + "\1\4\1\u0117\12\4\11\0\3\4\2\0\3\4\2\0" + + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + "\21\4\4\0\7\4\1\0\3\4\1\u0118\13\4\11\0" + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + + "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0" + "\4\4\1\u0119\12\4\11\0\3\4\2\0\3\4\2\0" + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + + "\21\4\4\0\7\4\1\0\7\4\1\u011a\7\4\11\0" + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + "\3\4\4\0\2\4\1\0\21\4\14\0\1\u011b\1\u011c" + + "\1\0\1\u011d\1\0\1\u011e\4\0\1\u011f\1\u0120\24\0" + "\1\226\45\0\1\4\6\5\1\0\16\5\1\u0121\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\5\5\1\315\4\5\1\320" + + "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\333" + + "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\13\5\1\u0122" + + "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\13\5\1\u0123" + + "\3\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u0124" + + "\1\u0125\7\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\u0126\1\u0127\1\0\21\5\4\0\1\4\6\5\1\0" + + "\1\5\1\172\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\3\5\1\u0128\13\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\10\5\1\144\6\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\21\0\1\u0129\123\0\1\u012a" + + "\161\0\1\u012b\117\0\1\u012c\41\0\1\u012d\123\0\1\u012e" + "\161\0\1\u012f\117\0\1\u0130\24\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\14\5\1\u0131\4\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\14\5\1\u0132\4\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\12\5\1\u0133\6\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\14\5\1\u0134\4\5\4\0\1\4\6\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\13\5\1\u0135\5\5\4\0\3\74\1\256\1\74" + + "\1\256\1\74\1\0\5\74\1\76\4\74\1\77\4\74" + "\11\0\1\74\1\256\1\74\2\0\2\74\1\256\2\0" + + "\1\77\1\76\1\0\1\74\1\0\3\74\4\0\2\74" + "\1\0\5\74\2\256\12\74\7\0\1\256\1\0\1\256" + + "\33\0\1\256\5\0\1\256\26\0\2\256\16\0\3\74" + "\1\u0136\1\74\1\u0136\1\74\1\u0137\17\74\10\0\1\u0137" + + "\1\74\1\u0136\1\74\2\0\2\74\1\u0136\2\0\2\74" + "\1\0\1\74\1\0\3\74\4\0\2\74\1\0\5\74" + + "\2\u0136\12\74\4\0\1\4\6\5\1\0\14\5\1\u0138" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\171" + "\14\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\1\5\1\126\4\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + "\1\4\2\5\2\0\1\5\1\u0139\1\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\16\5\1\125" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\5\1\125\15\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\4\5\1\u013a\12\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\5\1\273\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\5\1\u013b\15\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\7\5\1\u013c\7\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\2\5\1\273\14\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\12\5\1\u013d\4\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\10\5\1\u013e\3\5\1\126" + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u013f" + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + + "\1\u0140\1\0\21\5\4\0\1\4\6\5\1\0\1\5" + "\1\273\6\5\1\u0141\3\5\1\310\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\2\5\1\u0142" + "\16\5\4\0\1\4\6\5\1\0\1\5\1\367\15\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\10\5\1\352\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\1\5\1\u0143\1\0\21\5" + "\4\0\1\4\6\5\1\0\6\5\1\273\10\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\1\5\1\u0144\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\273\16\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\5\5\1\354\11\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\3\5\1\u0145\13\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\3\5\1\u0146\13\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\10\5\1\u0147\6\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\13\5\1\u0148\3\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\4\5\1\u0149\12\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\13\5\1\u014a\3\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\7\5\1\u014b\2\5\1\u014c\4\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\5\5\1\u014d\11\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\u014e\7\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\314\16\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\2\5\1\u0142\16\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\1\265\2\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\15\5\1\u014f\1\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\14\5\1\u0150\2\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\6\5\1\u0151\12\5\4\0\1\4" + "\6\5\1\0\5\5\1\u0152\11\5\11\0\1\4\2\5" + + "\2\0\1\u0153\1\u0154\1\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\7\5" + "\1\u0155\11\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\1\273\1\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\4\5\1\u0156\12\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0157\15\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\4\5\1\310\12\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\4\5\1\276\12\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\7\5\1\126\7\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\5\1\157\1\171" + + "\1\5\1\u0158\1\303\1\u0159\1\u015a\1\5\1\u015b\1\u015c" + "\1\u015d\3\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u015e\1\0\2\5\1\u015f\16\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\5\1\u0160\1\0\21\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u0161\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\1\5" + "\1\u0162\1\0\21\5\4\0\1\4\6\5\1\0\14\5" + "\1\227\2\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5" + "\1\u0163\13\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\10\5" + "\1\u0164\6\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\12\5" + "\1\u0165\4\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\3\5" + "\1\336\13\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5" + "\1\u0121\10\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5" + "\1\u0166\10\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\5\5" + "\1\273\11\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\14\5" + "\1\u0167\2\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\11\5" + "\1\u013f\5\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\6\5" + "\1\u0168\10\5\11\0\1\4\2\5\2\0\3\5\2\0" + + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\5\1\u0169\1\0\21\5\4\0\1\4\6\5\1\0" + "\5\5\1\u016a\11\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\7\5\1\313\7\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\10\5\1\u016b\6\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\3\5\1\u016c\13\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\u016d\15\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\4\5\1\u016e\12\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\6\5\1\273\2\5\1\u016f\5\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\1\u0170\20\5\4\0" + "\1\4\6\5\1\0\4\5\1\273\12\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\5\1\144\15\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\10\5\1\125\6\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\2\5\1\u0171\16\5\4\0" + "\1\4\6\5\1\0\2\5\2\273\1\5\1\273\11\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\4\5\1\u0172\12\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u0173\4\5" + + "\1\273\2\5\1\u016f\5\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\1\u0170\20\5\4\0\1\4" + + "\6\5\1\0\6\5\1\u0174\2\5\1\u0175\4\5\1\347" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\3\5\1\u0176\3\5" + "\1\u0177\7\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\5\1\u0178\1\0\21\5\4\0\1\4\6\5\1\0" + "\5\5\1\303\11\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\1\5\1\216\1\0\21\5\4\0\33\u0101\1\203" + "\7\u0101\1\0\102\u0101\3\201\1\u0105\4\201\3\u0101\1\0" + + "\57\u0101\1\201\25\u0101\1\u0102\5\u0101\1\201\1\u0101\1\0" + "\3\u0101\1\201\26\u0101\2\201\16\u0101\33\0\1\u0102\62\0" + + "\5\u0101\1\u0104\25\u0101\1\u0102\5\u0101\1\u0104\1\u0101\1\0" + + "\3\u0101\1\u0104\26\u0101\2\u0104\21\u0101\4\u0179\1\u0101\3\u0179" + + "\6\u0101\1\u0179\2\u0101\1\u0179\6\u0101\1\203\5\u0101\1\u0179" + + "\1\u0101\1\0\2\u0101\2\u0179\5\u0101\1\u0179\20\u0101\2\u0179" + + "\2\u0101\2\u0179\5\u0101\1\u0179\4\u0101\3\206\4\u017a\1\206" + "\3\u017a\6\206\1\u017a\2\206\1\u017a\13\206\1\u0109\1\u017a" + + "\2\206\1\u010a\1\206\2\u017a\5\206\1\u017a\20\206\2\u017a" + "\2\206\2\u017a\5\206\1\u017a\47\206\1\0\52\206\1\4" + + "\6\5\1\0\1\313\16\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\14\5\1\u017b\2\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\1\5\1\336\4\5\1\u017c\5\5\1\u017d\2\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\14\5\1\u017e\2\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\14\5\1\u017f\2\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\1\u0180\20\5" + + "\4\0\3\74\4\u0111\1\0\3\u0111\2\74\1\u0181\3\74" + "\1\u0111\1\u0182\1\74\1\u0111\2\74\11\0\1\74\1\u0111" + + "\1\74\2\0\1\74\2\u0111\2\0\1\u0182\1\u0181\1\0" + "\1\u0111\1\0\3\74\4\0\2\74\1\0\5\74\2\u0111" + + "\2\74\2\u0111\5\74\1\u0111\4\0\7\4\1\0\2\4" + "\1\223\14\4\11\0\3\4\2\0\3\4\2\0\2\4" + "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4" + + "\4\0\7\4\1\0\1\u0183\16\4\11\0\3\4\2\0" + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + "\2\4\1\0\21\4\4\0\7\4\1\0\3\4\1\u0184" + + "\2\4\1\u0185\10\4\11\0\3\4\2\0\3\4\2\0" + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + "\21\4\4\0\7\4\1\0\7\4\1\u0186\7\4\11\0" + + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0" + "\1\u0187\3\4\1\u0119\12\4\11\0\3\4\2\0\3\4" + + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + "\1\0\21\4\4\0\7\4\1\0\11\4\1\u0188\5\4" + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4" + "\1\0\4\4\1\u0185\12\4\11\0\3\4\2\0\3\4" + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + + "\1\0\21\4\4\0\7\4\1\0\1\u0187\16\4\11\0" + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0" + + "\14\4\1\u0189\2\4\11\0\3\4\2\0\3\4\2\0" + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + + "\21\4\15\0\1\u018a\120\0\1\u018b\1\u018c\1\0\1\u018d" + "\110\0\1\u018e\1\0\1\u018f\114\0\1\u0190\116\0\1\u0191" + + "\120\0\1\u0192\76\0\1\4\6\5\1\0\1\5\1\273" + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\2\5\1\u0193" + "\1\5\1\u0194\12\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\u0195\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\2\5\1\171\1\5\1\u0158\1\303\1\u0159\1\u0196\1\5" + + "\1\u015b\1\5\1\u015d\3\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\5\1\u0197\1\0\2\5\1\u015f\16\5" + + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\u0198\1\0\21\5\4\0" + + "\1\4\6\5\1\0\14\5\1\u0199\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\10\5\1\u019a\6\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\5\5\1\270\11\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\15\0" + + "\1\u012a\174\0\1\u019b\50\0\1\u019c\146\0\1\u019d\52\0" + "\1\u012e\174\0\1\u019e\50\0\1\u019f\146\0\1\u01a0\41\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\16\5\1\u01a1\2\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\1\5\1\u01a1\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\13\5\1\u01a1\5\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\15\5\1\u01a1\3\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\11\5\1\u01a2\7\5\4\0\3\74" + + "\1\u0136\1\74\1\u0136\1\74\1\0\2\74\1\262\2\74" + "\1\262\11\74\11\0\1\74\1\u0136\1\74\2\0\2\74" + + "\1\u0136\2\0\1\74\1\262\1\0\1\262\1\0\3\74" + "\4\0\2\74\1\0\5\74\2\u0136\12\74\7\0\1\u0136" + + "\1\0\1\u0136\33\0\1\u0136\5\0\1\u0136\26\0\2\u0136" + "\16\0\1\4\6\5\1\0\12\5\1\u01a3\4\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\5\5\1\u01a4\11\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\10\5\1\273\6\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\u016b\7\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\10\5\1\u013e\6\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\6\5\1\u01a5\10\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\273\7\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\1\5\1\273\17\5" + "\4\0\1\4\6\5\1\0\13\5\1\164\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\13\5\1\303\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\13\5\1\273\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\6\5\1\273\2\5\1\273" + + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\1\u01a6\20\5\4\0\1\4\6\5\1\0\6\5" + + "\1\273\2\5\1\273\1\5\1\164\3\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\1\u01a6\20\5" + + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\u0121\1\0\21\5\4\0" + + "\1\4\6\5\1\0\15\5\1\u0171\1\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\1\u01a7\20\5\4\0\1\4" + + "\6\5\1\0\14\5\1\u01a8\2\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\1\5\1\u01a9\1\0\21\5\4\0\1\4\6\5" + + "\1\0\13\5\1\u01a7\3\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\3\5\1\u01aa\13\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\4\5\1\u01ab\12\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\4\5\1\u01ac\6\5\1\u01ad\3\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\14\5\1\u01ae\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\7\5\1\u0155\11\5\4\0" + + "\1\4\6\5\1\0\5\5\1\u01af\11\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\2\5\1\273\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\10\5\1\u01b0\6\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\5" + "\1\u0154\1\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\12\5\1\276\4\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\16\5\1\u0142\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\1\5\1\u010b\12\5\1\354\2\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\1\5\1\126\4\5\1\0\10\5\1\u01b1\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\11\5\1\u01b2\5\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\13\5\1\367\3\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u013e" + + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u01b3" + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\21\5\4\0\1\4\6\5\1\0\6\5\1\u01b4" + "\1\5\1\311\2\5\1\u01b5\1\272\1\5\1\u0142\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\1\u013e\1\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\11\5\1\u0168\5\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\1\5\1\u01b6\1\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01b7\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\2\5\1\u01b8\14\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\3\5\1\u01b9\13\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\11\5\1\u01ba\5\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u01bb\15\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\6\5\1\u01bc\10\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + "\2\5\2\0\1\u0121\2\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\u01bd\7\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\5\1\u01be\15\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\7\5\1\u01bf\7\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\1\5\1\125\1\0\21\5\4\0" + "\1\4\6\5\1\0\3\5\1\u01c0\13\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\10\5\1\u0180\6\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\4\5\1\125\12\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\15\5\1\u01c1\1\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\1\5\1\u01c2\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\1\5\1\276\1\0\21\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\u01c3\1\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\11\5\1\u016f\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\3\5\1\272\13\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\5\5\1\273\13\5\4\0\1\4\6\5\1\0" + "\4\5\1\u01c4\12\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\1\5\1\272\15\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\13\5\1\u01b5\2\5\1\u0142\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\1\u013e\1\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\4\5\1\u0171\12\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\1\5\1\u0178\1\0\21\5\4\0\1\4\6\5" + "\1\0\10\5\1\u01c5\6\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\21\5\4\0\3\u0101\4\201" + "\1\u0101\3\201\6\u0101\1\201\2\u0101\1\201\6\u0101\1\203" + + "\5\u0101\1\201\1\u0101\1\0\2\u0101\2\201\5\u0101\1\201" + "\20\u0101\2\201\2\u0101\2\201\5\u0101\1\201\4\u0101\3\206" + + "\4\41\1\206\3\41\6\206\1\41\2\206\1\41\13\206" + "\1\u0109\1\41\2\206\1\u010a\1\206\2\41\5\206\1\41" + + "\20\206\2\41\2\206\2\41\5\206\1\41\4\206\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\1\5\1\236\1\0\21\5\4\0\1\4\6\5" + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + + "\1\5\1\u01c6\1\0\21\5\4\0\1\4\6\5\1\0" + "\7\5\1\u01c7\7\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\7\5\1\u01c8\7\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\1\4\6\5\1\0" + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + + "\1\0\1\5\1\125\17\5\4\0\1\4\6\5\1\0" + "\11\5\1\273\5\5\11\0\1\4\2\5\2\0\3\5" + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + + "\4\0\2\5\1\0\21\5\4\0\7\74\1\0\12\74" + "\1\u01c9\4\74\11\0\3\74\2\0\3\74\2\0\1\u01c9" + + "\1\74\1\0\1\74\1\0\3\74\4\0\2\74\1\0" + "\21\74\4\0\7\74\1\0\5\74\1\u01c9\11\74\11\0" + + "\3\74\2\0\3\74\2\0\1\74\1\u01c9\1\0\1\74" + "\1\0\3\74\4\0\2\74\1\0\21\74\4\0\7\4" + "\1\0\3\4\1\u0184\13\4\11\0\3\4\2\0\3\4" + + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + "\1\0\21\4\4\0\7\4\1\0\2\4\1\u01ca\14\4" + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4" + "\1\0\1\4\1\u01ca\15\4\11\0\3\4\2\0\3\4" + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + + "\1\0\21\4\4\0\7\4\1\0\10\4\1\u01cb\6\4" + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4" + + "\1\0\1\4\1\u0184\15\4\11\0\3\4\2\0\3\4" + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + "\1\0\21\4\4\0\7\4\1\0\5\4\1\u01cc\11\4" + + "\11\0\3\4\2\0\3\4\2\0\2\4\1\0\1\4" + "\1\0\3\4\4\0\2\4\1\0\21\4\4\0\7\4" + "\1\0\15\4\1\u01cd\1\4\11\0\3\4\2\0\3\4" + + "\2\0\2\4\1\0\1\4\1\0\3\4\4\0\2\4" + "\1\0\21\4\16\0\1\u011e\113\0\1\u01ce\120\0\1\u01cf" + + "\2\0\1\u01d0\116\0\1\u01d1\106\0\1\u01d2\3\0\1\u0191" + "\122\0\1\u01d3\110\0\1\u01d0\111\0\1\u01d2\131\0\1\u01d4" + + "\71\0\1\4\6\5\1\0\3\5\1\u01d5\13\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\14\5\1\u01bb\2\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\1\u01d6\16\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + + "\1\4\6\5\1\0\11\5\1\u01b3\5\5\11\0\1\4" + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\5\1\u01d7\1\0\21\5" + + "\4\0\1\4\6\5\1\0\10\5\1\u01d8\6\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\10\5\1\u01d9\6\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\7\5\1\u01da\7\5\11\0" + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + + "\4\0\1\4\6\5\1\0\16\5\1\u01db\11\0\1\4" + "\2\5\2\0\1\5\1\273\1\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\36\0\1\u01dc\101\0\1\u012a\51\0\1\u019b\26\0" + "\1\u019d\1\u01dd\4\u019d\1\u01dd\17\u019d\3\u01dd\1\u019d\1\u01dd" + + "\2\0\2\u01dd\1\0\2\u019d\2\0\3\u019d\1\0\1\u01dd" + "\2\u019d\1\u01dd\1\u019d\1\0\1\u01dd\1\u019d\5\u01dd\2\u019d" + + "\1\u01dd\21\u019d\1\0\1\u01dd\34\0\1\u01de\101\0\1\u012e" + "\51\0\1\u019e\26\0\1\u01a0\1\u01df\4\u01a0\1\u01df\17\u01a0" + + "\3\u01df\1\u01a0\1\u01df\2\0\2\u01df\1\0\2\u01a0\2\0" + "\3\u01a0\1\0\1\u01df\2\u01a0\1\u01df\1\u01a0\1\0\1\u01df" + + "\1\u01a0\5\u01df\2\u01a0\1\u01df\21\u01a0\1\0\1\u01df\2\0" + "\1\4\5\5\1\u01e0\1\0\17\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\3\5" + + "\2\0\2\5\1\0\1\5\1\0\1\4\1\5\1\4" + "\4\0\2\5\1\0\20\5\1\u01e0\4\0\1\4\6\5" + "\1\0\5\5\1\u0168\11\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\1\5\1\313\15\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + "\1\0\6\5\1\273\2\5\1\273\5\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\1\5\1\u013e\15\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\11\5\1\u0121\5\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\7\5\1\354\7\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\4\5\1\272\12\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\11\5\1\272\5\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\12\5\1\u01bb\4\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\17\5\11\0\1\4\2\5\2\0" + + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\1\u01e1\1\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\13\5\1\u01a5\3\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\1\5\1\u01e2\15\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\1\5\1\155\1\0\21\5\4\0" + "\1\4\6\5\1\0\11\5\1\u01e3\5\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\2\5\1\125\14\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\21\5\4\0" + "\1\4\6\5\1\0\13\5\1\u01b5\1\272\1\5\1\u0142" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\1\u013e\1\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\13\5\1\367\3\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\17\5\11\0\1\4\2\5" + + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\4\5\1\273\14\5" + "\4\0\1\4\6\5\1\0\7\5\1\u013f\7\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\1\273\4\5\1\273\4\5" + + "\1\354\4\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\1\5\1\273\17\5\4\0\1\4\6\5" + + "\1\0\7\5\1\u01bb\7\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\11\5\1\125\5\5\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + "\1\4\4\0\2\5\1\0\21\5\4\0\1\4\6\5" + + "\1\0\17\5\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\1\125\1\5\1\0\21\5\4\0\1\4\6\5\1\0" + + "\16\5\1\273\11\0\1\4\2\5\2\0\3\5\2\0" + "\2\5\1\0\1\5\1\0\1\4\1\5\1\4\4\0" + "\2\5\1\0\21\5\4\0\1\4\6\5\1\0\17\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\1\5\1\u01e4" + "\1\0\21\5\4\0\1\4\6\5\1\0\4\5\1\u01e5" + + "\12\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\1\5\1\u01e6\1\0" + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u01e7\15\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\4\5\1\u01e8\12\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\4\5\1\u01e9\12\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\11\5\1\273\5\5" + + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\1\u0180\20\5\4\0\1\4\6\5\1\0\14\5\1\u013e" + + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\17\5\11\0" + + "\1\4\2\5\2\0\1\273\2\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + "\21\5\4\0\1\4\6\5\1\0\17\5\11\0\1\4" + + "\2\5\2\0\3\5\2\0\2\5\1\0\1\5\1\0" + "\1\4\1\5\1\4\4\0\2\5\1\0\1\u01ea\20\5" + "\4\0\1\4\6\5\1\0\14\5\1\144\2\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\15\5\1\273\1\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\1\4\6\5\1\0\11\5\1\u01a5\5\5\11\0" + + "\1\4\2\5\2\0\3\5\2\0\2\5\1\0\1\5" + "\1\0\1\4\1\5\1\4\4\0\2\5\1\0\21\5" + "\4\0\7\4\1\0\7\4\1\u01ca\7\4\11\0\3\4" + + "\2\0\3\4\2\0\2\4\1\0\1\4\1\0\3\4" + "\4\0\2\4\1\0\21\4\4\0\7\4\1\0\12\4" + "\1\u01eb\4\4\11\0\3\4\2\0\3\4\2\0\2\4" + + "\1\0\1\4\1\0\3\4\4\0\2\4\1\0\21\4" + "\4\0\7\4\1\0\16\4\1\u01ec\11\0\3\4\2\0" + "\3\4\2\0\2\4\1\0\1\4\1\0\3\4\4\0" + + "\2\4\1\0\21\4\17\0\1\u01cf\114\0\1\u01ed\114\0" + "\1\u01ed\124\0\1\u01ee\106\0\1\u01cf\121\0\1\u01ef\125\0" + + "\1\u01f0\70\0\1\4\6\5\1\0\5\5\1\u0121\11\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\5\1\u01b1\15\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\10\5\1\u01f1\6\5" + "\11\0\1\4\2\5\2\0\3\5\2\0\2\5\1\0" + "\1\5\1\0\1\4\1\5\1\4\4\0\2\5\1\0" + + "\21\5\4\0\1\4\6\5\1\0\1\273\4\5\1\273" + "\4\5\1\354\3\5\1\120\11\0\1\4\2\5\2\0" + "\3\5\2\0\2\5\1\0\1\5\1\0\1\4\1\5" + + "\1\4\4\0\2\5\1\0\1\5\1\273\17\5\4\0" + "\1\4\6\5\1\0\16\5\1\u01db\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + "\6\5\1\0\17\5\11\0\1\4\2\5\2\0\1\5" + "\1\273\1\5\2\0\2\5\1\0\1\5\1\0\1\4" + + "\1\5\1\4\4\0\2\5\1\0\21\5\36\0\1\u019d" + "\115\0\1\u01a0\63\0\1\4\1\5\1\u01f2\4\5\1\0" + + "\17\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\273" + + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\u01f3" + + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\14\5\1\u01d5" + + "\2\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u01f4" + + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\10\5\1\276" + + "\6\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\7\5\1\u013e" + + "\7\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\12\5\1\270" + + "\4\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\1\5\1\u010b" + + "\15\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\1\4\6\5\1\0\11\5\1\306" + + "\5\5\11\0\1\4\2\5\2\0\3\5\2\0\2\5" + "\1\0\1\5\1\0\1\4\1\5\1\4\4\0\2\5" + "\1\0\21\5\4\0\7\4\1\0\1\u0185\16\4\11\0" + + "\3\4\2\0\3\4\2\0\2\4\1\0\1\4\1\0" + "\3\4\4\0\2\4\1\0\21\4\4\0\7\4\1\0" + "\14\4\1\u01ca\2\4\11\0\3\4\2\0\3\4\2\0" + + "\2\4\1\0\1\4\1\0\3\4\4\0\2\4\1\0" + "\21\4\23\0\1\u01ed\120\0\1\u01f5\121\0\1\u01f6\67\0" + + "\1\4\6\5\1\0\16\5\1\120\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\1\5\1\u01f7\4\5\1\0\17\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\10\5\1\u0173\6\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\4\0\1\4" + + "\6\5\1\0\7\5\1\125\7\5\11\0\1\4\2\5" + "\2\0\3\5\2\0\2\5\1\0\1\5\1\0\1\4" + "\1\5\1\4\4\0\2\5\1\0\21\5\14\0\1\u01d0" + + "\131\0\1\u01ed\71\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[37050]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\25\1\1\11\6\1\1\11\6\1\1\11\1\1" + "\2\11\7\1\1\11\5\1\1\11\105\1\1\0\2\11" + + "\2\1\1\11\3\1\1\11\16\1\1\0\11\1\2\0" + "\1\11\6\0\6\1\1\0\122\1\1\11\7\1\1\11" + "\20\1\6\0\10\1\10\0\6\1\1\0\122\1\4\0" + + "\1\1\4\0\10\1\2\0\1\1\2\0\56\1\7\0" + "\7\1\4\0\15\1\1\11\3\0\4\1\2\0\1\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[503]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public CTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1624,26 +790,26 @@ public class CTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -1654,7 +820,6 @@ public class CTokenMaker extends AbstractJFlexCTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1664,21 +829,18 @@ public class CTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1687,7 +849,8 @@ public class CTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1696,388 +859,422 @@ public class CTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 CTokenMaker(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 CTokenMaker(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 < 184) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 27: { + addToken(Token.PREPROCESSOR); + } + case 31: + break; + case 7: { + addNullToken(); + return firstToken; + } + case 32: + break; + case 24: { + addToken(Token.LITERAL_CHAR); + } + case 33: + break; + case 21: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 34: + break; + case 17: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 35: + break; + case 9: { + addToken(Token.WHITESPACE); + } + case 36: + break; + case 26: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 37: + break; + case 18: { + addToken(Token.ERROR_CHAR); /* + * addNullToken(); return + * firstToken; + */ + } + case 38: + break; + case 25: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 39: + break; + case 14: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 40: + break; + case 15: { + addToken(Token.RESERVED_WORD); + } + case 41: + break; + case 5: { + addToken(Token.SEPARATOR); + } + case 42: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 43: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 44: + break; + case 16: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 45: + break; + case 22: { + addToken(Token.FUNCTION); + } + case 46: + break; + case 6: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 47: + break; + case 8: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 48: + break; + case 23: { + addToken(Token.DATA_TYPE); + } + case 49: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 50: + break; + case 19: { + addToken(Token.ERROR_CHAR); + } + case 51: + break; + case 20: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 52: + break; + case 29: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 53: + break; + case 28: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 54: + break; + case 30: { + addToken(Token.RESERVED_WORD_2); + } + case 55: + break; + case 13: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 56: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 57: + break; + case 4: { + addToken(Token.OPERATOR); + } + case 58: + break; + case 10: {} + case 59: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 60: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 504: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 505: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 506: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 CTokenMaker(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 CTokenMaker(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 < 184) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 27: - { addToken(Token.PREPROCESSOR); - } - case 31: break; - case 7: - { addNullToken(); return firstToken; - } - case 32: break; - case 24: - { addToken(Token.LITERAL_CHAR); - } - case 33: break; - case 21: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 34: break; - case 17: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 35: break; - case 9: - { addToken(Token.WHITESPACE); - } - case 36: break; - case 26: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 37: break; - case 18: - { addToken(Token.ERROR_CHAR); /*addNullToken(); return firstToken;*/ - } - case 38: break; - case 25: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 39: break; - case 14: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 40: break; - case 15: - { addToken(Token.RESERVED_WORD); - } - case 41: break; - case 5: - { addToken(Token.SEPARATOR); - } - case 42: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 43: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 44: break; - case 16: - { start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - case 45: break; - case 22: - { addToken(Token.FUNCTION); - } - case 46: break; - case 6: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 47: break; - case 8: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 48: break; - case 23: - { addToken(Token.DATA_TYPE); - } - case 49: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 50: break; - case 19: - { addToken(Token.ERROR_CHAR); - } - case 51: break; - case 20: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 52: break; - case 29: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 53: break; - case 28: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 54: break; - case 30: - { addToken(Token.RESERVED_WORD_2); - } - case 55: break; - case 13: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 56: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 57: break; - case 4: - { addToken(Token.OPERATOR); - } - case 58: break; - case 10: - { - } - case 59: break; - case 11: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 60: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 504: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 505: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 506: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/ClojureTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/ClojureTokenMaker.java index 38251ec..d4114e2 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/ClojureTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/ClojureTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 7/9/16 7:07 PM */ - /* * 12/23/2010 - * * ClojureTokenMaker.java - Scanner for Clojure. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -19,1837 +16,849 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** - * Scanner for the Clojure programming language.

+ * Scanner for the Clojure programming language. + *

* * The original version of this class was graciously donated by the folks at the * Fiji project. * This version has been modified to fix a few issues. * Its original location was - * here. + * here. *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated ClojureTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated ClojureTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * */ - public class ClojureTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 2; - public static final int STRING = 1; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\57\1\16\1\0\1\37\1\35\22\0\1\60\1\71\1\17"+ - "\1\53\1\72\1\67\1\67\1\12\1\45\1\50\1\66\1\63\1\73"+ - "\1\44\1\20\1\70\1\4\1\15\1\15\1\15\4\7\2\5\1\2"+ - "\1\1\1\64\1\65\1\62\1\36\1\52\3\6\1\42\1\43\1\42"+ - "\5\3\1\41\13\3\1\40\2\3\1\34\1\11\1\34\1\54\1\61"+ - "\1\47\1\23\1\27\1\24\1\76\1\25\1\14\1\104\1\74\1\33"+ - "\1\105\1\106\1\32\1\77\1\30\1\75\1\22\1\101\1\13\1\21"+ - "\1\26\1\10\1\103\1\31\1\100\1\102\1\107\1\55\1\46\1\56"+ - "\1\51\uff81\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 = - "\1\1\2\0\1\2\1\3\1\4\1\1\2\5\1\1"+ - "\1\2\2\1\1\6\1\7\14\1\1\10\1\4\1\11"+ - "\1\4\1\10\1\4\1\2\4\4\11\1\1\12\1\13"+ - "\1\14\1\15\2\12\1\16\2\12\1\17\2\20\1\21"+ - "\1\20\2\22\1\20\1\5\1\20\1\1\1\23\3\0"+ - "\6\1\1\24\3\1\1\25\52\1\1\24\4\1\4\0"+ - "\1\4\3\1\1\26\4\1\1\26\11\1\1\24\13\1"+ - "\1\13\1\12\4\0\1\21\1\22\1\1\1\21\2\1"+ - "\3\0\4\1\1\25\5\1\1\25\4\1\1\24\2\1"+ - "\2\25\40\1\1\24\1\27\1\25\13\1\1\25\3\1"+ - "\2\0\2\27\26\1\1\24\10\1\1\25\4\1\4\0"+ - "\3\1\2\0\4\1\1\25\4\1\2\25\2\1\1\25"+ - "\1\24\1\25\3\1\1\30\1\1\1\25\3\1\1\25"+ - "\3\1\1\24\1\1\1\25\5\1\1\25\3\1\2\0"+ - "\26\1\1\25\2\1\1\0\1\31\1\0\1\1\2\0"+ - "\7\1\1\25\52\1\2\0\1\1\1\0\176\1\1\25"+ - "\112\1"; - - private static int [] zzUnpackAction() { - int [] result = new int[627]; - 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\110\0\220\0\330\0\330\0\u0120\0\u0168\0\u01b0"+ - "\0\u01f8\0\u0240\0\u0288\0\u02d0\0\u0318\0\330\0\330\0\u0360"+ - "\0\u03a8\0\u03f0\0\u0438\0\u0480\0\u04c8\0\u0510\0\u0558\0\u05a0"+ - "\0\u05e8\0\u0630\0\u0678\0\330\0\u0168\0\u06c0\0\u0708\0\u0750"+ - "\0\330\0\u0798\0\u07e0\0\u0828\0\u0870\0\u08b8\0\u0900\0\u0948"+ - "\0\u0990\0\u09d8\0\u0a20\0\u0a68\0\u0ab0\0\u0af8\0\u0b40\0\u0b88"+ - "\0\u0bd0\0\330\0\u0c18\0\u0c60\0\u0ca8\0\330\0\u0cf0\0\u0d38"+ - "\0\u0d80\0\u0dc8\0\u0e10\0\u0e58\0\u0ea0\0\u0e10\0\u0ee8\0\u0f30"+ - "\0\u0e10\0\u0f78\0\u0fc0\0\330\0\u1008\0\u1050\0\u1098\0\u10e0"+ - "\0\u1128\0\u1170\0\u11b8\0\u1200\0\u1248\0\u1290\0\u12d8\0\u1320"+ - "\0\u1368\0\u0168\0\u13b0\0\u13f8\0\u1440\0\u1488\0\u14d0\0\u1518"+ - "\0\u1560\0\u15a8\0\u15f0\0\u1638\0\u1680\0\u16c8\0\u1710\0\u1758"+ - "\0\u17a0\0\u17e8\0\u1830\0\u1878\0\u18c0\0\u1908\0\u1950\0\u1998"+ - "\0\u19e0\0\u1a28\0\u1a70\0\u1ab8\0\u1b00\0\u1b48\0\u1b90\0\u1bd8"+ - "\0\u1c20\0\u1c68\0\u1cb0\0\u1cf8\0\u1d40\0\u1d88\0\u1dd0\0\u1e18"+ - "\0\u1e60\0\u1ea8\0\u1ef0\0\u1f38\0\u1f80\0\u1fc8\0\u2010\0\u2058"+ - "\0\u20a0\0\u20e8\0\u2130\0\u2178\0\u21c0\0\u2208\0\u2250\0\u2298"+ - "\0\u22e0\0\u0168\0\u2328\0\u2370\0\u23b8\0\u2400\0\u2448\0\u2490"+ - "\0\u24d8\0\u2520\0\u2568\0\u25b0\0\u25f8\0\u2640\0\u2688\0\u26d0"+ - "\0\u2718\0\u2760\0\u27a8\0\u27f0\0\u2838\0\u2880\0\u28c8\0\u2910"+ - "\0\u2958\0\u29a0\0\u29e8\0\u2a30\0\330\0\330\0\u2a78\0\u2ac0"+ - "\0\u2b08\0\u2b50\0\u0e10\0\u2b98\0\u2be0\0\u2c28\0\u2c70\0\u2cb8"+ - "\0\u2d00\0\u2d48\0\u2d90\0\u2dd8\0\u2e20\0\u2e68\0\u2eb0\0\u2ef8"+ - "\0\u2f40\0\u2f88\0\u2fd0\0\u3018\0\u3060\0\u30a8\0\u30f0\0\u3138"+ - "\0\u3180\0\u31c8\0\u0168\0\u3210\0\u3258\0\u32a0\0\u32e8\0\u3330"+ - "\0\u3378\0\u33c0\0\u3408\0\u3450\0\u3498\0\u34e0\0\u3528\0\u3570"+ - "\0\u35b8\0\u3600\0\u2ef8\0\u3648\0\u3690\0\u36d8\0\u3720\0\u3768"+ - "\0\u37b0\0\u37f8\0\u3840\0\u3888\0\u38d0\0\u3918\0\u3960\0\u39a8"+ - "\0\u39f0\0\u3a38\0\u3a80\0\u3ac8\0\u3b10\0\u3b58\0\u3ba0\0\u3be8"+ - "\0\u3498\0\u3c30\0\u3c78\0\u3cc0\0\u3d08\0\u3d50\0\u3d98\0\u3de0"+ - "\0\u3e28\0\u3e70\0\u3eb8\0\u3f00\0\u3f48\0\u3f90\0\u3fd8\0\u4020"+ - "\0\u4068\0\u40b0\0\u40f8\0\330\0\u21c0\0\u4140\0\u4188\0\u41d0"+ - "\0\u4218\0\u4260\0\u42a8\0\u42f0\0\u4338\0\u4380\0\u43c8\0\u4410"+ - "\0\u4458\0\u44a0\0\u44e8\0\u4530\0\u4578\0\u45c0\0\u4608\0\u4650"+ - "\0\u4698\0\u46e0\0\u4728\0\u4770\0\u47b8\0\u4800\0\u4848\0\u4890"+ - "\0\u48d8\0\u4920\0\u4968\0\u49b0\0\u49f8\0\u4a40\0\u4a88\0\u4ad0"+ - "\0\u4b18\0\u4b60\0\u4ba8\0\u4bf0\0\u4c38\0\u4c80\0\u4cc8\0\u4d10"+ - "\0\u4d58\0\u4da0\0\u4de8\0\u4e30\0\u4e78\0\u4ec0\0\u4f08\0\u4f50"+ - "\0\u4f98\0\u4fe0\0\u5028\0\u5070\0\u5028\0\u50b8\0\u5100\0\u5148"+ - "\0\u3e70\0\u5190\0\u51d8\0\u5220\0\u5268\0\u0168\0\u52b0\0\u52f8"+ - "\0\u5340\0\u5388\0\u53d0\0\u5418\0\u5460\0\u54a8\0\u54f0\0\u5538"+ - "\0\u5580\0\u55c8\0\u5610\0\u5658\0\u56a0\0\u56e8\0\u5730\0\u5778"+ - "\0\u57c0\0\u5808\0\u5850\0\u5898\0\u58e0\0\u5928\0\u5970\0\u59b8"+ - "\0\u5a00\0\u5a48\0\u5a90\0\u5ad8\0\u5b20\0\u5b68\0\u5bb0\0\u5bf8"+ - "\0\u5c40\0\u5c88\0\u5cd0\0\u5d18\0\u5d60\0\u5da8\0\u5df0\0\u5e38"+ - "\0\u5e80\0\u5ec8\0\u5f10\0\u3690\0\u5f58\0\u5fa0\0\u5fe8\0\u6030"+ - "\0\u6078\0\u60c0\0\u6108\0\u6150\0\u6198\0\u61e0\0\u6228\0\u6270"+ - "\0\u62b8\0\u6300\0\u6348\0\u6390\0\u63d8\0\u6420\0\u6468\0\u64b0"+ - "\0\u64f8\0\u6540\0\u6588\0\u65d0\0\u6618\0\u6660\0\u66a8\0\u66f0"+ - "\0\u6738\0\u6780\0\u67c8\0\u6810\0\u6858\0\u68a0\0\u68e8\0\u6930"+ - "\0\u6978\0\u69c0\0\u6a08\0\u6a50\0\u6a98\0\u6ae0\0\u6b28\0\u6b70"+ - "\0\u6bb8\0\u6c00\0\u6c48\0\u6c90\0\u6cd8\0\u6d20\0\u6d68\0\u6db0"+ - "\0\u6df8\0\u6e40\0\u6e88\0\u6ed0\0\u6f18\0\u6f60\0\u6fa8\0\u6030"+ - "\0\u6ff0\0\u7038\0\u7080\0\u70c8\0\u7110\0\u7158\0\u71a0\0\u71e8"+ - "\0\u7230\0\u7278\0\u72c0\0\u7308\0\u7350\0\u7398\0\u73e0\0\u7428"+ - "\0\u7470\0\u74b8\0\u7500\0\u7548\0\u7590\0\u75d8\0\u7620\0\u7668"+ - "\0\u76b0\0\u76f8\0\u7740\0\u7788\0\u77d0\0\u7818\0\u7860\0\u78a8"+ - "\0\u78f0\0\u7938\0\u7980\0\u79c8\0\u7a10\0\u7a58\0\u7aa0\0\u7ae8"+ - "\0\u7b30\0\u7b78\0\u7bc0\0\u7c08\0\u49f8\0\u7c50\0\u7c98\0\u7ce0"+ - "\0\u7d28\0\u7d70\0\u7db8\0\u7e00\0\u7e48\0\u7e90\0\u7ed8\0\u7f20"+ - "\0\u7f68\0\u7fb0\0\u7ff8\0\u5418\0\u8040\0\u8088\0\u80d0\0\u8118"+ - "\0\u8160\0\u81a8\0\u81f0\0\u8238\0\u8280\0\u82c8\0\u8310\0\u8358"+ - "\0\u83a0\0\u83e8\0\u8430\0\u8478\0\u84c0\0\u8508\0\u8550\0\u8598"+ - "\0\u85e0\0\u8628\0\u8670\0\u86b8\0\u8700\0\u8748\0\u8790\0\u87d8"+ - "\0\u8820\0\u8868\0\u88b0\0\u88f8\0\u8940\0\u8988\0\u89d0\0\u8a18"+ - "\0\u8a60\0\u8aa8\0\u8af0\0\u8b38\0\u8b80\0\u8bc8\0\u8c10\0\u8c58"+ - "\0\u8ca0\0\u8ce8\0\u8d30\0\u8d78\0\u8dc0\0\u8e08\0\u8e50\0\u8e98"+ - "\0\u8ee0\0\u8f28\0\u8f70\0\u8fb8\0\u9000\0\u9048\0\u9090\0\u90d8"+ - "\0\u9120\0\u9168\0\u91b0\0\u91f8\0\u9240\0\u9288\0\u92d0\0\u9318"+ - "\0\u9360\0\u93a8\0\u93f0\0\u9438\0\u9480\0\u94c8\0\u9510\0\u9558"+ - "\0\u95a0\0\u95e8\0\u9630\0\u9678\0\u96c0\0\u9708\0\u9750\0\u9798"+ - "\0\u97e0\0\u9828\0\u9870\0\u98b8\0\u9900\0\u9948\0\u9990\0\u99d8"+ - "\0\u9a20\0\u9a68\0\u9ab0\0\u9af8\0\u9b40\0\u9b88\0\u9bd0\0\u9c18"+ - "\0\u9c60\0\u9ca8\0\u9cf0\0\u9d38\0\u9d80\0\u9dc8\0\u9e10\0\u9e58"+ - "\0\u9ea0\0\u9ee8\0\u9f30\0\u9f78\0\u9fc0\0\ua008\0\ua050\0\ua098"+ - "\0\ua0e0\0\ua128\0\ua170\0\ua1b8\0\ua200\0\ua248\0\ua290\0\ua2d8"+ - "\0\ua320\0\ua368\0\ua3b0\0\ua3f8\0\ua440\0\ua488\0\ua4d0\0\ua518"+ - "\0\ua560\0\ua5a8\0\ua5f0\0\ua638\0\ua680\0\ua6c8\0\ua710\0\ua758"+ - "\0\ua7a0\0\ua7e8\0\u55c8"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[627]; - 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 = - "\1\4\1\5\1\6\1\7\1\10\1\11\1\7\1\11"+ - "\1\12\1\13\1\4\1\14\1\15\1\11\1\16\1\17"+ - "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27"+ - "\1\30\1\31\1\32\1\33\1\34\1\4\1\35\1\36"+ - "\4\7\1\37\1\40\2\4\1\34\1\41\1\4\1\42"+ - "\1\41\2\34\2\36\1\7\1\43\1\35\1\44\1\45"+ - "\1\46\1\41\1\35\1\44\2\4\1\47\1\50\1\51"+ - "\1\52\1\7\1\53\1\7\1\54\1\55\1\7\1\56"+ - "\1\57\11\60\1\61\4\60\1\62\1\63\70\60\14\64"+ - "\1\65\1\64\1\66\12\64\1\67\42\64\1\70\13\64"+ - "\113\0\1\71\2\0\1\71\1\0\1\71\2\0\2\71"+ - "\4\0\13\71\2\0\1\71\1\0\5\71\16\0\1\71"+ - "\2\0\1\71\1\0\2\71\2\0\14\71\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\1\72\2\0\1\73\1\74\1\75\1\73\1\74\1\73"+ - "\1\72\1\0\1\73\1\76\1\74\2\0\1\77\4\73"+ - "\1\100\4\73\1\101\1\73\2\0\1\7\1\0\1\102"+ - "\1\101\1\76\1\100\1\7\2\0\1\72\2\0\2\72"+ - "\5\0\1\73\3\7\1\0\1\7\1\0\2\7\1\72"+ - "\1\0\2\73\1\76\1\73\1\102\7\73\1\72\2\0"+ - "\1\73\2\11\1\73\1\11\1\73\1\72\1\0\1\73"+ - "\1\76\1\11\2\0\1\77\4\73\1\100\4\73\1\101"+ - "\1\73\2\0\1\7\1\0\1\73\1\101\1\76\1\100"+ - "\1\7\2\0\1\72\2\0\2\72\5\0\1\73\3\7"+ - "\1\0\1\7\1\0\2\7\1\72\1\0\2\73\1\76"+ - "\11\73\3\0\6\7\2\0\3\7\2\0\10\7\1\103"+ - "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\20\0\1\104\1\105"+ - "\4\0\1\106\1\0\1\107\62\0\6\7\2\0\1\110"+ - "\1\111\1\7\2\0\1\7\1\112\1\7\1\113\1\7"+ - "\1\114\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\1\110\1\111\1\7\2\0\3\7\1\115\4\7"+ - "\1\116\1\7\1\117\1\120\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\121\12\7\3\0\1\7\2\77\1\7\1\77\1\7"+ - "\2\0\2\7\1\77\2\0\1\122\13\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\2\7"+ - "\1\123\2\7\1\124\1\125\5\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\1\126\1\127\4\7\1\130\5\7\3\0\6\7\2\0"+ - "\1\131\2\7\2\0\5\7\1\132\6\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\133\1\7\1\134\10\7\3\0\6\7"+ - "\2\0\1\135\2\7\2\0\1\7\1\136\1\137\5\7"+ - "\1\140\1\7\1\141\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\10\7"+ - "\1\142\3\7\3\0\6\7\2\0\3\7\2\0\3\7"+ - "\1\143\6\7\1\144\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\145"+ - "\1\146\4\7\1\147\5\7\3\0\6\7\2\0\3\7"+ - "\2\0\10\7\1\150\3\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\5\7"+ - "\1\151\1\7\1\152\4\7\3\0\6\7\2\0\1\153"+ - "\2\7\2\0\3\7\1\154\7\7\1\155\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\156\13\7\3\0\6\7\2\0\3\7\2\0"+ - "\13\7\1\157\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\1\7\1\160\4\7"+ - "\1\161\5\7\3\0\6\7\2\0\3\7\2\0\3\7"+ - "\1\162\1\7\1\163\1\164\4\7\1\165\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\166\12\7\3\0\6\7\2\0\3\7"+ - "\2\0\13\7\1\167\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\170\13\7"+ - "\3\0\6\7\2\0\3\7\2\0\3\7\1\171\1\7"+ - "\1\172\5\7\1\173\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\174"+ - "\12\7\3\0\6\7\2\0\1\7\1\175\1\7\2\0"+ - "\6\7\1\176\1\7\1\177\3\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\2\7\1\200\1\201\10\7\37\0\1\36\17\0\2\36"+ - "\32\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\1\7\1\122\2\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\12\0\1\202\36\0\1\203"+ - "\50\0\1\204\41\0\1\205\36\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\1\7"+ - "\1\206\2\7\1\41\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\41\1\7\1\0\2\7"+ - "\2\0\14\7\65\0\1\41\25\0\5\7\1\207\2\0"+ - "\1\210\1\211\1\212\2\0\1\7\1\213\1\214\1\215"+ - "\1\216\1\217\2\7\1\220\1\221\1\7\1\222\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\1\7\1\223\1\7\1\224\10\7\3\0"+ - "\6\7\2\0\3\7\2\0\3\7\1\225\10\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\1\122\2\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\1\226\2\7\2\0\5\7\1\227\5\7\1\230"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\1\7\1\231\12\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\232\1\7\1\233\5\7"+ - "\1\234\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\1\7\1\235\12\7\3\0"+ - "\5\7\1\236\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7"+ - "\1\237\1\7\1\240\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\241\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\242\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\243\5\7"+ - "\1\244\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\11\60\1\0\4\60"+ - "\2\0\70\60\16\245\1\0\71\245\17\0\1\246\70\0"+ - "\14\64\1\0\1\64\1\0\12\64\1\0\42\64\1\0"+ - "\13\64\26\0\1\247\4\0\1\250\105\0\1\251\104\0"+ - "\1\252\64\0\6\71\2\0\3\71\3\0\13\71\2\0"+ - "\1\71\1\0\5\71\16\0\1\71\2\0\1\71\1\0"+ - "\2\71\2\0\14\71\1\72\2\0\7\72\1\0\3\72"+ - "\3\0\13\72\4\0\4\72\3\0\1\72\2\0\2\72"+ - "\5\0\1\72\10\0\1\72\1\0\15\72\2\0\6\73"+ - "\1\72\1\0\3\73\2\0\1\7\13\73\2\0\1\7"+ - "\1\0\4\73\1\7\2\0\1\72\2\0\2\72\5\0"+ - "\1\73\3\7\1\0\1\7\1\0\2\7\1\72\1\0"+ - "\14\73\1\72\2\0\1\73\1\74\1\75\1\73\1\74"+ - "\1\73\1\72\1\0\1\73\1\76\1\74\2\0\1\77"+ - "\4\73\1\100\4\73\1\253\1\73\2\0\1\7\1\0"+ - "\1\73\1\253\1\76\1\100\1\7\2\0\1\72\2\0"+ - "\2\72\5\0\1\73\3\7\1\0\1\7\1\0\2\7"+ - "\1\72\1\0\2\73\1\76\11\73\1\72\2\0\1\73"+ - "\2\75\1\73\1\75\1\73\1\72\1\0\1\73\1\76"+ - "\1\75\2\0\1\77\4\73\1\100\6\73\2\0\1\7"+ - "\1\0\2\73\1\76\1\100\1\7\2\0\1\72\2\0"+ - "\2\72\5\0\1\73\3\7\1\0\1\7\1\0\2\7"+ - "\1\72\1\0\2\73\1\76\11\73\1\72\2\0\1\73"+ - "\2\77\1\73\1\77\1\73\1\72\1\0\1\73\1\76"+ - "\1\77\2\0\1\7\4\73\1\100\6\73\2\0\1\7"+ - "\1\0\2\73\1\76\1\100\1\7\2\0\1\72\2\0"+ - "\2\72\5\0\1\73\3\7\1\0\1\7\1\0\2\7"+ - "\1\72\1\0\2\73\1\76\11\73\1\72\2\0\1\73"+ - "\2\254\1\73\1\254\1\73\1\72\1\0\2\73\1\254"+ - "\2\0\1\7\13\73\2\0\1\7\1\0\4\73\1\255"+ - "\2\0\1\72\2\0\2\72\5\0\1\73\1\7\1\255"+ - "\1\7\1\0\1\7\1\0\2\7\1\72\1\0\14\73"+ - "\1\72\2\0\1\73\4\256\1\73\1\72\1\0\1\73"+ - "\2\256\2\0\1\7\2\73\3\256\1\73\1\256\4\73"+ - "\2\0\1\7\1\0\2\73\2\256\1\7\2\0\1\72"+ - "\2\0\2\72\5\0\1\73\3\7\1\0\1\7\1\0"+ - "\2\7\1\72\1\0\2\73\1\256\11\73\3\0\6\7"+ - "\2\0\1\257\2\7\2\0\13\7\1\260\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\22\0\1\261\110\0\1\262\111\0\1\263"+ - "\65\0\6\7\2\0\3\7\2\0\5\7\1\264\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\13\7\1\265\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\266\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\10\7\1\267\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\1\7\1\270\1\7\2\0\1\7\1\271"+ - "\1\272\1\273\1\274\7\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7"+ - "\1\275\1\276\3\7\1\277\4\7\3\0\6\7\2\0"+ - "\3\7\2\0\12\7\1\300\1\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\1\7\1\112"+ - "\12\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\301"+ - "\12\7\3\0\6\7\2\0\1\264\2\7\2\0\10\7"+ - "\1\302\1\7\1\141\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\1\303\2\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\12\7\1\304\1\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\4\7\1\305\1\7\1\306"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\5\7\1\122\6\7\3\0"+ - "\6\7\2\0\1\307\2\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\1\7\1\310\12\7\3\0\6\7"+ - "\2\0\1\311\2\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\312"+ - "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\3\7\1\122\10\7\3\0"+ - "\6\7\2\0\3\7\2\0\10\7\1\122\2\7\1\313"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\314\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\1\7\1\315\1\122"+ - "\11\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\316\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\317\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\320\3\7\1\321\6\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\2\7"+ - "\1\322\11\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7"+ - "\1\122\3\7\1\122\5\7\3\0\6\7\2\0\3\7"+ - "\2\0\6\7\1\323\5\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\324\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\325\12\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\3\7\1\326\1\7"+ - "\1\327\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\50\10\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\5\7\1\313\2\0\3\7\2\0"+ - "\10\7\1\330\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\3\7\1\331"+ - "\10\7\3\0\6\7\2\0\3\7\2\0\4\7\1\332"+ - "\7\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\1\7\1\333\12\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\334"+ - "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\335\1\7\1\336\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\5\7\1\337\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\6\7\1\340\5\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\12\7\1\341\1\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\3\7\1\342\10\7"+ - "\3\0\6\7\2\0\1\343\2\7\2\0\13\7\1\344"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\10\7\1\345\3\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\346\12\7\3\0\6\7\2\0\3\7"+ - "\2\0\6\7\1\342\5\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\3\7\1\347\10\7\3\0\6\7\2\0\3\7"+ - "\2\0\11\7\1\350\2\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\10\7"+ - "\1\315\3\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\1\122\13\7\3\0\6\7\2\0"+ - "\3\7\2\0\12\7\1\351\1\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\352"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\6\7\1\353\5\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\354"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\13\7\1\355"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\303\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\356\12\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\3\7\1\357\1\360"+ - "\3\7\1\361\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\362"+ - "\12\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\4\7\1\363\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\364\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\1\7\1\365\2\7"+ - "\1\122\1\7\1\366\5\7\2\0\1\7\1\0\4\7"+ - "\1\367\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\370"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\2\7\1\371\11\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\46\0\1\372\113\0\1\373\36\0\1\34\14\0"+ - "\2\34\1\204\24\0\1\34\11\0\2\34\27\0\1\205"+ - "\1\374\14\205\2\374\1\205\1\0\34\205\2\374\1\375"+ - "\27\205\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\1\7\1\35\2\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\1\7\1\376\6\7\1\377\3\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\u0100\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\10\7\1\u0101\1\7\1\u0102"+ - "\1\u0103\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\u0104"+ - "\12\7\3\0\6\7\2\0\1\u0105\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\u0106\10\7\1\u0107\1\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\10\7\1\u0108\3\7\3\0\5\7\1\u0109\2\0"+ - "\3\7\2\0\12\7\1\u010a\1\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\1\7\1\u010b\12\7\3\0\6\7\2\0\1\u010c\2\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\1\7\1\u010d\12\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7"+ - "\1\u010e\10\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\10\7\1\u010d\3\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\5\7\1\u010f\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\u0110\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\1\7\1\u0111"+ - "\12\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\u0112"+ - "\12\7\3\0\6\7\2\0\1\u0113\1\u0114\1\7\2\0"+ - "\4\7\1\122\5\7\1\317\1\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\1\7\1\u0115"+ - "\12\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\5\7\1\u0116"+ - "\2\0\3\7\2\0\1\7\1\112\4\7\1\u0117\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\2\7\1\307\11\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\4\7"+ - "\1\122\5\7\1\u0118\1\7\3\0\6\7\2\0\1\267"+ - "\2\7\2\0\6\7\1\u0119\5\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\3\7\1\u011a\10\7\3\0\6\7\2\0\3\7\2\0"+ - "\10\7\1\122\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\10\7\1\u011b\3\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\1\7\1\u011c\12\7\3\0"+ - "\6\7\2\0\1\303\2\7\2\0\12\7\1\u011d\1\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\4\7\1\u011e\7\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\122\1\7"+ - "\1\u011f\3\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\6\7"+ - "\1\u011d\5\7\3\0\6\7\2\0\1\u0120\2\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\2\7\1\u0121\11\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\22\0\1\u0122\117\0\1\u0123\106\0\1\u0124\104\0"+ - "\1\u0125\61\0\1\72\2\0\1\73\2\254\1\73\1\254"+ - "\1\73\1\72\1\0\1\73\1\76\1\254\2\0\1\7"+ - "\13\73\2\0\1\7\1\0\2\73\1\76\1\73\1\7"+ - "\2\0\1\72\2\0\2\72\5\0\1\73\3\7\1\0"+ - "\1\7\1\0\2\7\1\72\1\0\2\73\1\76\11\73"+ - "\3\0\1\7\2\254\1\7\1\254\1\7\2\0\2\7"+ - "\1\254\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\1\72"+ - "\2\0\1\73\4\256\1\73\1\72\1\0\1\73\2\256"+ - "\2\0\1\7\2\73\3\256\1\73\1\256\2\73\1\253"+ - "\1\73\2\0\1\7\1\0\1\73\1\253\2\256\1\7"+ - "\2\0\1\72\2\0\2\72\5\0\1\73\3\7\1\0"+ - "\1\7\1\0\2\7\1\72\1\0\2\73\1\256\11\73"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\u0126\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\10\7\1\u0127\3\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\3\7"+ - "\1\u0128\10\7\23\0\1\u0129\113\0\1\104\111\0\1\u012a"+ - "\61\0\6\7\2\0\3\7\2\0\1\7\1\271\12\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\1\264"+ - "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\5\7\1\122\6\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\10\7\1\342\3\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\50\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\6\7\1\122\5\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\301\4\7\1\u012b"+ - "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\2\7\1\122"+ - "\11\7\3\0\5\7\1\121\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\5\7\1\u012c\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\1\7\1\u012d\12\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\u012e\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\1\7\1\337\12\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\3\7\1\271\10\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\2\7\1\u012f\11\7\3\0\6\7\2\0\3\7\2\0"+ - "\13\7\1\u0130\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\u0131\12\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\1\7\1\303\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\4\7\1\301\7\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\271\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\6\7\1\u0132\5\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\4\7\1\122\7\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\10\7\1\271\3\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\12\7\1\122\1\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\122\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\2\7\1\122\11\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7"+ - "\1\u0133\10\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\312\12\7\3\0\6\7\2\0\3\7\2\0\6\7"+ - "\1\u0134\5\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\12\7\1\u0135\1\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7"+ - "\1\122\1\7\1\u0136\3\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\303\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\344\12\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\3\7\1\u0137\10\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\u0138\2\7\1\301\7\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\2\7\1\u0139\6\7\1\122\2\7\3\0\6\7"+ - "\2\0\3\7\2\0\2\7\1\u013a\11\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\3\7\1\u013b\10\7\3\0\6\7\2\0\3\7"+ - "\2\0\12\7\1\342\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\5\7\1\u013c\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\122\1\0\4\7\1\u013d\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\12\7\1\122\1\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\1\u0133\2\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u013e\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\4\7\1\u013f\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\u0140\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\122\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\1\7\1\u0141\12\7"+ - "\3\0\6\7\2\0\3\7\2\0\1\7\1\303\12\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\2\7\1\u0142\11\7"+ - "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0143\1\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\u0144\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0145\1\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0146\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\1\u0147\13\7\3\0\6\7\2\0\3\7\2\0\10\7"+ - "\1\u0148\3\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\6\7"+ - "\1\u0149\5\7\3\0\6\7\2\0\3\7\2\0\6\7"+ - "\1\u014a\5\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7"+ - "\1\u014b\11\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\12\7\1\u0142\1\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\10\7"+ - "\1\122\3\7\3\0\6\7\2\0\3\7\2\0\2\7"+ - "\1\303\11\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\10\7\1\u014c\1\7\1\u014d\1\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\1\u014e"+ - "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\6\7\1\u014f\5\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\1\7\1\u0150\12\7\3\0"+ - "\6\7\2\0\3\7\2\0\10\7\1\u0151\3\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\10\7\1\u0152\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\12\7\1\u0153\1\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\1\7\1\310\12\7\47\0\1\u0154\106\0"+ - "\1\u0155\44\0\6\7\2\0\3\7\2\0\5\7\1\u0156"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\4\7\1\u0157\7\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\3\7\1\u0158"+ - "\10\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u0159"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\5\7\1\u015a\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\12\7\1\u015b\1\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\5\7\1\u015c\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\13\7"+ - "\1\u015d\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\1\7\1\u015e\12\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\u015f"+ - "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u0160\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\u0161\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\1\7\1\u0162\12\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\3\7\1\u0163\10\7\3\0\6\7\2\0\1\u010d"+ - "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\212\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\u0164\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\6\7\1\u010d\5\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\u0165\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\1\u0166\13\7\3\0"+ - "\6\7\2\0\3\7\2\0\2\7\1\u0140\11\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\u0167\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\10\7\1\303\3\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\3\7\1\u0168\10\7\3\0\6\7\2\0"+ - "\3\7\2\0\1\7\1\320\12\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\7\7\1\332"+ - "\4\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\13\7\1\u0169\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\122\12\7\3\0\6\7\2\0\3\7\2\0\5\7"+ - "\1\u016a\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\122\10\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\1\7\1\234\1\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\13\7\1\u016b\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u016c"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\1\7\1\122\12\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u016d"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\1\7\1\u016e\12\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\1\7\1\315\12\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\3\7\1\134"+ - "\10\7\2\0\1\u016f\132\0\1\u0122\102\0\1\u0170\111\0"+ - "\1\u0171\70\0\6\7\2\0\1\7\1\323\1\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\6\7\1\u0172\5\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\2\7\1\126"+ - "\11\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\24\0\1\u0173\115\0"+ - "\1\u0174\60\0\6\7\2\0\3\7\2\0\13\7\1\u0175"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\4\7\1\342\7\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\7\7\1\u0176\4\7\3\0\6\7\2\0\1\u0177"+ - "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\4\7\1\u0178\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7"+ - "\1\u0179\5\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\10\7\1\273\3\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7"+ - "\1\u017a\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\6\7"+ - "\1\122\5\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\4\7\1\u017b\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\6\7\1\u017c\5\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\u017d\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\6\7\1\u017e\5\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0153\1\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\5\7\1\161\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\1\342\2\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\1\u017f\2\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\7\1\u0180\1\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\4\7\1\u0181\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\11\7\1\303\2\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\13\7\1\u0182\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\u0183\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\1\7\1\u0184\12\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\13\7\1\u0185\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\u0186\1\7\1\u0187\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0188\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\4\7\1\u0189\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\4\7\1\u018a\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\122\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\4\7\1\u018b\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\1\7\1\172\12\7\3\0\6\7"+ - "\2\0\3\7\2\0\5\7\1\172\6\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7"+ - "\1\161\10\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\u018c\10\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\4\7\1\u018d\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\u018e\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u018f"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u0190\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\50\0\1\34\110\0\1\u0154\41\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u0191"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\u0192\13\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\2\7\1\u0193\11\7\3\0"+ - "\6\7\2\0\3\7\2\0\12\7\1\u0194\1\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\1\7\1\u0195\12\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\u010d\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\1\u0196\2\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\10\7\1\u0197\3\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7"+ - "\1\u0198\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\u0199\12\7\3\0\6\7\2\0\3\7\2\0\10\7"+ - "\1\u010f\3\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\1\u019a\2\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\11\7\1\u019b\2\7\3\0\6\7\2\0"+ - "\3\7\2\0\2\7\1\u019c\11\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\3\7\1\u019d\10\7\3\0\6\7\2\0\3\7\2\0"+ - "\10\7\1\u019e\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\1\u019f\13\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\4\7\1\u0121\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\7\1\122\1\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\5\7\1\u01a0\2\0\3\7\2\0\3\7"+ - "\1\u01a1\1\7\1\u01a2\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\3\7\1\u01a3\10\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u01a4\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\6\7\1\u01a5\5\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\1\7\1\50\12\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\6\7\1\u01a6\5\7\70\0\1\u01a7\20\0\2\u01a8\6\u0170"+ - "\1\0\1\u01a8\3\u0170\2\0\1\u01a8\13\u0170\1\u01a8\1\0"+ - "\1\u01a8\1\0\4\u0170\2\u01a8\2\0\4\u01a8\5\0\1\u01a8"+ - "\1\0\1\u01a8\1\0\3\u01a8\1\u0170\1\u01a8\1\u0170\1\u01a8"+ - "\14\u0170\2\0\1\u016f\16\0\1\u0122\71\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u01a9\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\25\0\1\104\115\0\1\u01aa\57\0\6\7\2\0"+ - "\3\7\2\0\4\7\1\u014e\7\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u01ab"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\1\7\1\342\12\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\7\7\1\145\4\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u01ac"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\2\7\1\u01ad\11\7\3\0\6\7\2\0\1\7"+ - "\1\u01ae\1\7\2\0\1\7\1\u01af\5\7\1\u01b0\2\7"+ - "\1\u01b1\1\313\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\2\7\1\u01b2\11\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\4\7\1\u01b3\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\4\7\1\u01b4\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\u01b5\10\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7"+ - "\1\u01b6\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\13\7\1\u01b7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\11\7\1\u01b8"+ - "\2\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\10\7\1\361\3\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\3\7\1\234"+ - "\10\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\2\7\1\u01b9\11\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\342"+ - "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\10\7\1\u0133\3\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\7\7\1\u01ba\4\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\3\7\1\u01bb"+ - "\10\7\3\0\6\7\2\0\1\7\1\u01bc\1\7\2\0"+ - "\10\7\1\u014c\1\7\1\u014d\1\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\4\7\1\u01bd"+ - "\7\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\7\1\u01be\1\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\u01bf"+ - "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\u01c0\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\3\7\1\u01c1\10\7\3\0\6\7\2\0"+ - "\3\7\2\0\13\7\1\u01c2\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\3\7\1\u01c3\10\7\3\0\6\7\2\0\3\7"+ - "\2\0\4\7\1\u01c4\7\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\u01c5\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u01c6\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\1\7\1\u01c7\12\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\1\u01c8\13\7\3\0\6\7"+ - "\2\0\3\7\2\0\4\7\1\u01c9\7\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7"+ - "\1\u01ca\5\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\1\u010f\2\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\11\7\1\u01cb"+ - "\2\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u01cc\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\5\7\1\u01cd\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\13\7\1\u01ce\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\3\7\1\u01cf\10\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\4\7\1\u01d0\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\4\7"+ - "\1\u01d1\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\u01d2"+ - "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\4\7\1\u01d3\7\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u01d4"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u01d5\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\2\7\1\u01d6"+ - "\1\u01c0\10\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\u01d7\12\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\3\7\1\122\10\7\70\0\1\u0170"+ - "\22\0\6\7\2\0\1\234\2\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\30\0\1\u0173\62\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u01d8"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\3\7\1\271\5\7"+ - "\1\u01d9\2\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\4\7"+ - "\1\u01da\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\117"+ - "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\126\13\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\160\4\7\1\161\5\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\u0182\12\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\1\7\1\u01db\12\7\3\0\6\7"+ - "\2\0\3\7\2\0\5\7\1\u01dc\6\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\u0167\12\7\3\0\6\7\2\0\3\7"+ - "\2\0\3\7\1\u01dd\10\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01de\3\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\1\7"+ - "\1\315\1\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01df\3\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\1\u01be\13\7\3\0"+ - "\6\7\2\0\3\7\2\0\3\7\1\u012c\10\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\336\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\u01e0\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\13\7\1\u01e1\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\u01e2\12\7\3\0\6\7\2\0\3\7\2\0\13\7"+ - "\1\332\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\4\7\1\u01e3\7\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\135\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\u01e4\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\u0133\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\313\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\u01e5\12\7\3\0\6\7\2\0\3\7"+ - "\2\0\4\7\1\u01e6\7\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\u01e7\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\3\7\1\u01e8\10\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\4\7\1\u01e9\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\u01ea\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\4\7\1\u01eb\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\4\7\1\u01ec\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\10\7\1\u01ed\3\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\u01ee\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\12\7\1\u01ef\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01f0\3\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\1\7\1\u01f1\12\7"+ - "\3\0\6\7\2\0\3\7\2\0\4\7\1\u01f2\7\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\6\7\1\u01f3\5\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\1\u01f4\2\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\1\u01f5\13\7\3\0\6\7"+ - "\2\0\1\u01f6\2\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\1\u01f7\2\7\2\0\14\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\3\7\1\u01f8\10\7"+ - "\3\0\6\7\2\0\3\7\2\0\13\7\1\u01f9\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\3\7\1\u01fa\10\7\3\0"+ - "\5\7\1\u0116\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\1\u01fb\2\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\10\7\1\u01fc"+ - "\3\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u01fd"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\u01fe\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u0119"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\u01ff\2\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01d5\3\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\u0200\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\10\7\1\u0201\3\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\12\7\1\u0202\1\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\7\7\1\u0203\4\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\2\7\1\u0204\11\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\u0205\12\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0206\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\1\u0207\2\7\2\0\12\7\1\u0208\1\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\2\7\1\u0209\1\u020a\10\7\3\0"+ - "\5\7\1\u020b\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7"+ - "\1\u020c\5\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\5\7\1\u020d\6\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7"+ - "\1\u020e\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7"+ - "\1\u020f\11\7\3\0\6\7\2\0\3\7\2\0\10\7"+ - "\1\u0210\3\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7"+ - "\1\u0211\12\7\3\0\6\7\2\0\3\7\2\0\13\7"+ - "\1\122\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\303"+ - "\12\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\1\7\1\273\12\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\u0212"+ - "\12\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\4\7\1\u0213\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\u01a2\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\164\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\3\7\1\u0214\10\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\1\u0215\2\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\u0216\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\12\7\1\u0133\1\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\12\7\1\u0217\1\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\1\7\1\172\12\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\303\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\6\7\1\u0218\5\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u0219"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\u021a\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u010c"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\10\7\1\u021b\3\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\2\7\1\u021c"+ - "\11\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u021d\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u021e"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\5\7\1\u021f"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\u0220\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\10\7\1\u0221\3\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\4\7\1\u0222\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\4\7\1\u0223\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\4\7"+ - "\1\u0224\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\4\7\1\u0225\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0226\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\10\7\1\u0227\3\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\4\7\1\u0133\7\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\u0228\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\2\7\1\u0229\11\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\1\7\1\u022a\12\7\3\0\6\7\2\0\3\7\2\0"+ - "\10\7\1\u022b\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\12\7\1\u022c\1\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\5\7\1\u022d\6\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\2\7\1\u022e\11\7\3\0\6\7\2\0\3\7\2\0"+ - "\12\7\1\u010d\1\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\4\7\1\u022f\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7"+ - "\1\u0230\10\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\u0231\10\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\10\7"+ - "\1\u0232\3\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\7\7\1\u0233\4\7"+ - "\3\0\6\7\2\0\3\7\2\0\2\7\1\u010d\11\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\6\7\1\u0234\5\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\1\u0235\2\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\10\7\1\u0236\3\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\7\7\1\u0237\4\7\3\0\6\7\2\0\1\7\1\u0238"+ - "\1\7\2\0\2\7\1\u021c\11\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\u0239"+ - "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\u023a\2\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\u023b\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\10\7\1\u023c\3\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\4\7"+ - "\1\u023d\7\7\3\0\6\7\2\0\3\7\2\0\14\7"+ - "\2\0\1\7\1\0\4\7\1\u023e\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\u01d5\2\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\u023f\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\6\7\1\303\5\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\4\7\1\u0240\7\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0241\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\10\7\1\u0242\3\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\6\7\1\u0243\5\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\2\7\1\u0244\11\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\10\7\1\u0230\3\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\u021a\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\3\7\1\u010d\10\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\u0245\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\3\7\1\u0246\10\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\u0247\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\13\7\1\u0248\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\13\7\1\u0249\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u024a"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u024b\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u024c"+ - "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\13\7\1\172\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\7\7\1\u0133\4\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\14\7\2\0\1\7\1\0\4\7\1\u024d\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\6\7\1\u024e\5\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\3\7\1\u021c\10\7\3\0"+ - "\6\7\2\0\3\7\2\0\5\7\1\u024f\6\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\1\u010d\13\7\3\0\6\7"+ - "\2\0\3\7\2\0\3\7\1\u0250\10\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\1\7"+ - "\1\u0251\12\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\3\7"+ - "\1\u0252\10\7\3\0\6\7\2\0\1\u0253\2\7\2\0"+ - "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\12\7\1\u0254\1\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\u0255"+ - "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\7\1\u0256\1\7\2\0\14\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\4\7\1\u010f\7\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\121\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u01dc"+ - "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u0257"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\11\7\1\u0258\2\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\7\7\1\u0259\4\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\1\7\1\u025a\12\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\u025b\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\1\7\1\u025c\12\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\5\7\1\220\6\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\u025d\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\12\7\1\u025e\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\4\7\1\u025f\7\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\12\7\1\u0260\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0261\1\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\12\7\1\u0262\1\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\1\7\1\u0263\12\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\13\7\1\u0264\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0"+ - "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0"+ - "\4\7\1\u0265\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7"+ - "\1\u0266\6\7\2\0\1\7\1\0\5\7\14\0\4\7"+ - "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7"+ - "\2\0\3\7\2\0\12\7\1\u0267\1\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\13\7"+ - "\1\u0268\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0"+ - "\4\7\1\0\1\7\1\0\2\7\2\0\6\7\1\u010d"+ - "\5\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\7\7\1\u0269\4\7\3\0\6\7\2\0"+ - "\3\7\2\0\2\7\1\u026a\11\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0"+ - "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0"+ - "\2\7\2\0\1\7\1\222\12\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\u026b\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\4\7\1\u026c"+ - "\7\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\3\7\1\u026d\10\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\u015b"+ - "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\3\7\2\0\5\7\1\u026e\6\7\2\0\1\7\1\0"+ - "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0"+ - "\14\7\3\0\6\7\2\0\3\7\2\0\3\7\1\u026f"+ - "\10\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0"+ - "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0"+ - "\1\u0270\2\7\2\0\14\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\6\7\1\u025c\5\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\u0271\12\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\2\7\1\u025d\11\7\3\0\6\7\2\0\3\7"+ - "\2\0\4\7\1\u0272\7\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7"+ - "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7"+ - "\2\0\10\7\1\220\3\7\3\0\6\7\2\0\3\7"+ - "\2\0\1\7\1\u0159\12\7\2\0\1\7\1\0\5\7"+ - "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7"+ - "\3\0\6\7\2\0\3\7\2\0\5\7\1\u0273\6\7"+ - "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7"+ - "\1\0\2\7\2\0\14\7"; - - private static int [] zzUnpackTrans() { - int [] result = new int[43056]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\2\0\2\11\10\1\2\11\14\1\1\11\4\1"+ - "\1\11\20\1\1\11\3\1\1\11\15\1\1\11\3\0"+ - "\72\1\4\0\37\1\2\11\4\0\6\1\3\0\106\1"+ - "\2\0\1\11\45\1\4\0\3\1\2\0\51\1\2\0"+ - "\31\1\1\0\1\1\1\0\1\1\2\0\62\1\2\0"+ - "\1\1\1\0\311\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[627]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 2; + public static final int STRING = 1; + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\57\1\16\1\0\1\37\1\35\22\0\1\60\1\71\1\17" + + "\1\53\1\72\1\67\1\67\1\12\1\45\1\50\1\66\1\63\1\73" + "\1\44\1\20\1\70\1\4\1\15\1\15\1\15\4\7\2\5\1\2" + + "\1\1\1\64\1\65\1\62\1\36\1\52\3\6\1\42\1\43\1\42" + "\5\3\1\41\13\3\1\40\2\3\1\34\1\11\1\34\1\54\1\61" + + "\1\47\1\23\1\27\1\24\1\76\1\25\1\14\1\104\1\74\1\33" + "\1\105\1\106\1\32\1\77\1\30\1\75\1\22\1\101\1\13\1\21" + + "\1\26\1\10\1\103\1\31\1\100\1\102\1\107\1\55\1\46\1\56" + "\1\51\uff81\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 = "\1\1\2\0\1\2\1\3\1\4\1\1\2\5\1\1" + "\1\2\2\1\1\6\1\7\14\1\1\10\1\4\1\11" + + "\1\4\1\10\1\4\1\2\4\4\11\1\1\12\1\13" + "\1\14\1\15\2\12\1\16\2\12\1\17\2\20\1\21" + "\1\20\2\22\1\20\1\5\1\20\1\1\1\23\3\0" + + "\6\1\1\24\3\1\1\25\52\1\1\24\4\1\4\0" + "\1\4\3\1\1\26\4\1\1\26\11\1\1\24\13\1" + "\1\13\1\12\4\0\1\21\1\22\1\1\1\21\2\1" + + "\3\0\4\1\1\25\5\1\1\25\4\1\1\24\2\1" + "\2\25\40\1\1\24\1\27\1\25\13\1\1\25\3\1" + "\2\0\2\27\26\1\1\24\10\1\1\25\4\1\4\0" + + "\3\1\2\0\4\1\1\25\4\1\2\25\2\1\1\25" + "\1\24\1\25\3\1\1\30\1\1\1\25\3\1\1\25" + "\3\1\1\24\1\1\1\25\5\1\1\25\3\1\2\0" + + "\26\1\1\25\2\1\1\0\1\31\1\0\1\1\2\0" + "\7\1\1\25\52\1\2\0\1\1\1\0\176\1\1\25" + "\112\1"; + + private static int[] zzUnpackAction() { + int[] result = new int[627]; + 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\110\0\220\0\330\0\330\0\u0120\0\u0168\0\u01b0" + + "\0\u01f8\0\u0240\0\u0288\0\u02d0\0\u0318\0\330\0\330\0\u0360" + + "\0\u03a8\0\u03f0\0\u0438\0\u0480\0\u04c8\0\u0510\0\u0558\0\u05a0" + + "\0\u05e8\0\u0630\0\u0678\0\330\0\u0168\0\u06c0\0\u0708\0\u0750" + + "\0\330\0\u0798\0\u07e0\0\u0828\0\u0870\0\u08b8\0\u0900\0\u0948" + + "\0\u0990\0\u09d8\0\u0a20\0\u0a68\0\u0ab0\0\u0af8\0\u0b40\0\u0b88" + + "\0\u0bd0\0\330\0\u0c18\0\u0c60\0\u0ca8\0\330\0\u0cf0\0\u0d38" + + "\0\u0d80\0\u0dc8\0\u0e10\0\u0e58\0\u0ea0\0\u0e10\0\u0ee8\0\u0f30" + + "\0\u0e10\0\u0f78\0\u0fc0\0\330\0\u1008\0\u1050\0\u1098\0\u10e0" + + "\0\u1128\0\u1170\0\u11b8\0\u1200\0\u1248\0\u1290\0\u12d8\0\u1320" + + "\0\u1368\0\u0168\0\u13b0\0\u13f8\0\u1440\0\u1488\0\u14d0\0\u1518" + + "\0\u1560\0\u15a8\0\u15f0\0\u1638\0\u1680\0\u16c8\0\u1710\0\u1758" + + "\0\u17a0\0\u17e8\0\u1830\0\u1878\0\u18c0\0\u1908\0\u1950\0\u1998" + + "\0\u19e0\0\u1a28\0\u1a70\0\u1ab8\0\u1b00\0\u1b48\0\u1b90\0\u1bd8" + + "\0\u1c20\0\u1c68\0\u1cb0\0\u1cf8\0\u1d40\0\u1d88\0\u1dd0\0\u1e18" + + "\0\u1e60\0\u1ea8\0\u1ef0\0\u1f38\0\u1f80\0\u1fc8\0\u2010\0\u2058" + + "\0\u20a0\0\u20e8\0\u2130\0\u2178\0\u21c0\0\u2208\0\u2250\0\u2298" + + "\0\u22e0\0\u0168\0\u2328\0\u2370\0\u23b8\0\u2400\0\u2448\0\u2490" + + "\0\u24d8\0\u2520\0\u2568\0\u25b0\0\u25f8\0\u2640\0\u2688\0\u26d0" + + "\0\u2718\0\u2760\0\u27a8\0\u27f0\0\u2838\0\u2880\0\u28c8\0\u2910" + + "\0\u2958\0\u29a0\0\u29e8\0\u2a30\0\330\0\330\0\u2a78\0\u2ac0" + + "\0\u2b08\0\u2b50\0\u0e10\0\u2b98\0\u2be0\0\u2c28\0\u2c70\0\u2cb8" + + "\0\u2d00\0\u2d48\0\u2d90\0\u2dd8\0\u2e20\0\u2e68\0\u2eb0\0\u2ef8" + + "\0\u2f40\0\u2f88\0\u2fd0\0\u3018\0\u3060\0\u30a8\0\u30f0\0\u3138" + + "\0\u3180\0\u31c8\0\u0168\0\u3210\0\u3258\0\u32a0\0\u32e8\0\u3330" + + "\0\u3378\0\u33c0\0\u3408\0\u3450\0\u3498\0\u34e0\0\u3528\0\u3570" + + "\0\u35b8\0\u3600\0\u2ef8\0\u3648\0\u3690\0\u36d8\0\u3720\0\u3768" + + "\0\u37b0\0\u37f8\0\u3840\0\u3888\0\u38d0\0\u3918\0\u3960\0\u39a8" + + "\0\u39f0\0\u3a38\0\u3a80\0\u3ac8\0\u3b10\0\u3b58\0\u3ba0\0\u3be8" + + "\0\u3498\0\u3c30\0\u3c78\0\u3cc0\0\u3d08\0\u3d50\0\u3d98\0\u3de0" + + "\0\u3e28\0\u3e70\0\u3eb8\0\u3f00\0\u3f48\0\u3f90\0\u3fd8\0\u4020" + + "\0\u4068\0\u40b0\0\u40f8\0\330\0\u21c0\0\u4140\0\u4188\0\u41d0" + + "\0\u4218\0\u4260\0\u42a8\0\u42f0\0\u4338\0\u4380\0\u43c8\0\u4410" + + "\0\u4458\0\u44a0\0\u44e8\0\u4530\0\u4578\0\u45c0\0\u4608\0\u4650" + + "\0\u4698\0\u46e0\0\u4728\0\u4770\0\u47b8\0\u4800\0\u4848\0\u4890" + + "\0\u48d8\0\u4920\0\u4968\0\u49b0\0\u49f8\0\u4a40\0\u4a88\0\u4ad0" + + "\0\u4b18\0\u4b60\0\u4ba8\0\u4bf0\0\u4c38\0\u4c80\0\u4cc8\0\u4d10" + + "\0\u4d58\0\u4da0\0\u4de8\0\u4e30\0\u4e78\0\u4ec0\0\u4f08\0\u4f50" + + "\0\u4f98\0\u4fe0\0\u5028\0\u5070\0\u5028\0\u50b8\0\u5100\0\u5148" + + "\0\u3e70\0\u5190\0\u51d8\0\u5220\0\u5268\0\u0168\0\u52b0\0\u52f8" + + "\0\u5340\0\u5388\0\u53d0\0\u5418\0\u5460\0\u54a8\0\u54f0\0\u5538" + + "\0\u5580\0\u55c8\0\u5610\0\u5658\0\u56a0\0\u56e8\0\u5730\0\u5778" + + "\0\u57c0\0\u5808\0\u5850\0\u5898\0\u58e0\0\u5928\0\u5970\0\u59b8" + + "\0\u5a00\0\u5a48\0\u5a90\0\u5ad8\0\u5b20\0\u5b68\0\u5bb0\0\u5bf8" + + "\0\u5c40\0\u5c88\0\u5cd0\0\u5d18\0\u5d60\0\u5da8\0\u5df0\0\u5e38" + + "\0\u5e80\0\u5ec8\0\u5f10\0\u3690\0\u5f58\0\u5fa0\0\u5fe8\0\u6030" + + "\0\u6078\0\u60c0\0\u6108\0\u6150\0\u6198\0\u61e0\0\u6228\0\u6270" + + "\0\u62b8\0\u6300\0\u6348\0\u6390\0\u63d8\0\u6420\0\u6468\0\u64b0" + + "\0\u64f8\0\u6540\0\u6588\0\u65d0\0\u6618\0\u6660\0\u66a8\0\u66f0" + + "\0\u6738\0\u6780\0\u67c8\0\u6810\0\u6858\0\u68a0\0\u68e8\0\u6930" + + "\0\u6978\0\u69c0\0\u6a08\0\u6a50\0\u6a98\0\u6ae0\0\u6b28\0\u6b70" + + "\0\u6bb8\0\u6c00\0\u6c48\0\u6c90\0\u6cd8\0\u6d20\0\u6d68\0\u6db0" + + "\0\u6df8\0\u6e40\0\u6e88\0\u6ed0\0\u6f18\0\u6f60\0\u6fa8\0\u6030" + + "\0\u6ff0\0\u7038\0\u7080\0\u70c8\0\u7110\0\u7158\0\u71a0\0\u71e8" + + "\0\u7230\0\u7278\0\u72c0\0\u7308\0\u7350\0\u7398\0\u73e0\0\u7428" + + "\0\u7470\0\u74b8\0\u7500\0\u7548\0\u7590\0\u75d8\0\u7620\0\u7668" + + "\0\u76b0\0\u76f8\0\u7740\0\u7788\0\u77d0\0\u7818\0\u7860\0\u78a8" + + "\0\u78f0\0\u7938\0\u7980\0\u79c8\0\u7a10\0\u7a58\0\u7aa0\0\u7ae8" + + "\0\u7b30\0\u7b78\0\u7bc0\0\u7c08\0\u49f8\0\u7c50\0\u7c98\0\u7ce0" + + "\0\u7d28\0\u7d70\0\u7db8\0\u7e00\0\u7e48\0\u7e90\0\u7ed8\0\u7f20" + + "\0\u7f68\0\u7fb0\0\u7ff8\0\u5418\0\u8040\0\u8088\0\u80d0\0\u8118" + + "\0\u8160\0\u81a8\0\u81f0\0\u8238\0\u8280\0\u82c8\0\u8310\0\u8358" + + "\0\u83a0\0\u83e8\0\u8430\0\u8478\0\u84c0\0\u8508\0\u8550\0\u8598" + + "\0\u85e0\0\u8628\0\u8670\0\u86b8\0\u8700\0\u8748\0\u8790\0\u87d8" + + "\0\u8820\0\u8868\0\u88b0\0\u88f8\0\u8940\0\u8988\0\u89d0\0\u8a18" + + "\0\u8a60\0\u8aa8\0\u8af0\0\u8b38\0\u8b80\0\u8bc8\0\u8c10\0\u8c58" + + "\0\u8ca0\0\u8ce8\0\u8d30\0\u8d78\0\u8dc0\0\u8e08\0\u8e50\0\u8e98" + + "\0\u8ee0\0\u8f28\0\u8f70\0\u8fb8\0\u9000\0\u9048\0\u9090\0\u90d8" + + "\0\u9120\0\u9168\0\u91b0\0\u91f8\0\u9240\0\u9288\0\u92d0\0\u9318" + + "\0\u9360\0\u93a8\0\u93f0\0\u9438\0\u9480\0\u94c8\0\u9510\0\u9558" + + "\0\u95a0\0\u95e8\0\u9630\0\u9678\0\u96c0\0\u9708\0\u9750\0\u9798" + + "\0\u97e0\0\u9828\0\u9870\0\u98b8\0\u9900\0\u9948\0\u9990\0\u99d8" + + "\0\u9a20\0\u9a68\0\u9ab0\0\u9af8\0\u9b40\0\u9b88\0\u9bd0\0\u9c18" + + "\0\u9c60\0\u9ca8\0\u9cf0\0\u9d38\0\u9d80\0\u9dc8\0\u9e10\0\u9e58" + + "\0\u9ea0\0\u9ee8\0\u9f30\0\u9f78\0\u9fc0\0\ua008\0\ua050\0\ua098" + + "\0\ua0e0\0\ua128\0\ua170\0\ua1b8\0\ua200\0\ua248\0\ua290\0\ua2d8" + + "\0\ua320\0\ua368\0\ua3b0\0\ua3f8\0\ua440\0\ua488\0\ua4d0\0\ua518" + + "\0\ua560\0\ua5a8\0\ua5f0\0\ua638\0\ua680\0\ua6c8\0\ua710\0\ua758" + "\0\ua7a0\0\ua7e8\0\u55c8"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[627]; + 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 = "\1\4\1\5\1\6\1\7\1\10\1\11\1\7\1\11" + "\1\12\1\13\1\4\1\14\1\15\1\11\1\16\1\17" + + "\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27" + "\1\30\1\31\1\32\1\33\1\34\1\4\1\35\1\36" + + "\4\7\1\37\1\40\2\4\1\34\1\41\1\4\1\42" + "\1\41\2\34\2\36\1\7\1\43\1\35\1\44\1\45" + + "\1\46\1\41\1\35\1\44\2\4\1\47\1\50\1\51" + "\1\52\1\7\1\53\1\7\1\54\1\55\1\7\1\56" + + "\1\57\11\60\1\61\4\60\1\62\1\63\70\60\14\64" + "\1\65\1\64\1\66\12\64\1\67\42\64\1\70\13\64" + + "\113\0\1\71\2\0\1\71\1\0\1\71\2\0\2\71" + "\4\0\13\71\2\0\1\71\1\0\5\71\16\0\1\71" + "\2\0\1\71\1\0\2\71\2\0\14\71\3\0\6\7" + + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\1\72\2\0\1\73\1\74\1\75\1\73\1\74\1\73" + + "\1\72\1\0\1\73\1\76\1\74\2\0\1\77\4\73" + "\1\100\4\73\1\101\1\73\2\0\1\7\1\0\1\102" + + "\1\101\1\76\1\100\1\7\2\0\1\72\2\0\2\72" + "\5\0\1\73\3\7\1\0\1\7\1\0\2\7\1\72" + "\1\0\2\73\1\76\1\73\1\102\7\73\1\72\2\0" + + "\1\73\2\11\1\73\1\11\1\73\1\72\1\0\1\73" + "\1\76\1\11\2\0\1\77\4\73\1\100\4\73\1\101" + + "\1\73\2\0\1\7\1\0\1\73\1\101\1\76\1\100" + "\1\7\2\0\1\72\2\0\2\72\5\0\1\73\3\7" + "\1\0\1\7\1\0\2\7\1\72\1\0\2\73\1\76" + + "\11\73\3\0\6\7\2\0\3\7\2\0\10\7\1\103" + "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\20\0\1\104\1\105" + + "\4\0\1\106\1\0\1\107\62\0\6\7\2\0\1\110" + "\1\111\1\7\2\0\1\7\1\112\1\7\1\113\1\7" + "\1\114\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\1\110\1\111\1\7\2\0\3\7\1\115\4\7" + "\1\116\1\7\1\117\1\120\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + "\1\121\12\7\3\0\1\7\2\77\1\7\1\77\1\7" + "\2\0\2\7\1\77\2\0\1\122\13\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\2\7" + "\1\123\2\7\1\124\1\125\5\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\1\126\1\127\4\7\1\130\5\7\3\0\6\7\2\0" + "\1\131\2\7\2\0\5\7\1\132\6\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\7\1\133\1\7\1\134\10\7\3\0\6\7" + "\2\0\1\135\2\7\2\0\1\7\1\136\1\137\5\7" + + "\1\140\1\7\1\141\1\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\10\7" + "\1\142\3\7\3\0\6\7\2\0\3\7\2\0\3\7" + + "\1\143\6\7\1\144\1\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\145" + "\1\146\4\7\1\147\5\7\3\0\6\7\2\0\3\7" + + "\2\0\10\7\1\150\3\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\5\7" + "\1\151\1\7\1\152\4\7\3\0\6\7\2\0\1\153" + + "\2\7\2\0\3\7\1\154\7\7\1\155\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\156\13\7\3\0\6\7\2\0\3\7\2\0" + + "\13\7\1\157\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\1\7\1\160\4\7" + "\1\161\5\7\3\0\6\7\2\0\3\7\2\0\3\7" + + "\1\162\1\7\1\163\1\164\4\7\1\165\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\7\1\166\12\7\3\0\6\7\2\0\3\7" + + "\2\0\13\7\1\167\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\1\170\13\7" + "\3\0\6\7\2\0\3\7\2\0\3\7\1\171\1\7" + + "\1\172\5\7\1\173\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\174" + "\12\7\3\0\6\7\2\0\1\7\1\175\1\7\2\0" + + "\6\7\1\176\1\7\1\177\3\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\2\7\1\200\1\201\10\7\37\0\1\36\17\0\2\36" + + "\32\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\1\7\1\122\2\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\12\0\1\202\36\0\1\203" + + "\50\0\1\204\41\0\1\205\36\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\1\7" + "\1\206\2\7\1\41\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\41\1\7\1\0\2\7" + "\2\0\14\7\65\0\1\41\25\0\5\7\1\207\2\0" + + "\1\210\1\211\1\212\2\0\1\7\1\213\1\214\1\215" + "\1\216\1\217\2\7\1\220\1\221\1\7\1\222\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\1\7\1\223\1\7\1\224\10\7\3\0" + "\6\7\2\0\3\7\2\0\3\7\1\225\10\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\1\122\2\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\1\226\2\7\2\0\5\7\1\227\5\7\1\230" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\1\7\1\231\12\7\3\0\6\7" + "\2\0\3\7\2\0\3\7\1\232\1\7\1\233\5\7" + "\1\234\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\1\7\1\235\12\7\3\0" + "\5\7\1\236\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7" + "\1\237\1\7\1\240\6\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\5\7\1\241\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\5\7\1\242\6\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\5\7\1\243\5\7" + + "\1\244\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\11\60\1\0\4\60" + + "\2\0\70\60\16\245\1\0\71\245\17\0\1\246\70\0" + "\14\64\1\0\1\64\1\0\12\64\1\0\42\64\1\0" + + "\13\64\26\0\1\247\4\0\1\250\105\0\1\251\104\0" + "\1\252\64\0\6\71\2\0\3\71\3\0\13\71\2\0" + + "\1\71\1\0\5\71\16\0\1\71\2\0\1\71\1\0" + "\2\71\2\0\14\71\1\72\2\0\7\72\1\0\3\72" + "\3\0\13\72\4\0\4\72\3\0\1\72\2\0\2\72" + + "\5\0\1\72\10\0\1\72\1\0\15\72\2\0\6\73" + "\1\72\1\0\3\73\2\0\1\7\13\73\2\0\1\7" + "\1\0\4\73\1\7\2\0\1\72\2\0\2\72\5\0" + + "\1\73\3\7\1\0\1\7\1\0\2\7\1\72\1\0" + "\14\73\1\72\2\0\1\73\1\74\1\75\1\73\1\74" + "\1\73\1\72\1\0\1\73\1\76\1\74\2\0\1\77" + + "\4\73\1\100\4\73\1\253\1\73\2\0\1\7\1\0" + "\1\73\1\253\1\76\1\100\1\7\2\0\1\72\2\0" + "\2\72\5\0\1\73\3\7\1\0\1\7\1\0\2\7" + + "\1\72\1\0\2\73\1\76\11\73\1\72\2\0\1\73" + "\2\75\1\73\1\75\1\73\1\72\1\0\1\73\1\76" + + "\1\75\2\0\1\77\4\73\1\100\6\73\2\0\1\7" + "\1\0\2\73\1\76\1\100\1\7\2\0\1\72\2\0" + "\2\72\5\0\1\73\3\7\1\0\1\7\1\0\2\7" + + "\1\72\1\0\2\73\1\76\11\73\1\72\2\0\1\73" + "\2\77\1\73\1\77\1\73\1\72\1\0\1\73\1\76" + + "\1\77\2\0\1\7\4\73\1\100\6\73\2\0\1\7" + "\1\0\2\73\1\76\1\100\1\7\2\0\1\72\2\0" + "\2\72\5\0\1\73\3\7\1\0\1\7\1\0\2\7" + + "\1\72\1\0\2\73\1\76\11\73\1\72\2\0\1\73" + "\2\254\1\73\1\254\1\73\1\72\1\0\2\73\1\254" + + "\2\0\1\7\13\73\2\0\1\7\1\0\4\73\1\255" + "\2\0\1\72\2\0\2\72\5\0\1\73\1\7\1\255" + "\1\7\1\0\1\7\1\0\2\7\1\72\1\0\14\73" + + "\1\72\2\0\1\73\4\256\1\73\1\72\1\0\1\73" + "\2\256\2\0\1\7\2\73\3\256\1\73\1\256\4\73" + + "\2\0\1\7\1\0\2\73\2\256\1\7\2\0\1\72" + "\2\0\2\72\5\0\1\73\3\7\1\0\1\7\1\0" + "\2\7\1\72\1\0\2\73\1\256\11\73\3\0\6\7" + + "\2\0\1\257\2\7\2\0\13\7\1\260\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\22\0\1\261\110\0\1\262\111\0\1\263" + + "\65\0\6\7\2\0\3\7\2\0\5\7\1\264\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\13\7\1\265\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\5\7\1\266\6\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\10\7\1\267\3\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\1\7\1\270\1\7\2\0\1\7\1\271" + "\1\272\1\273\1\274\7\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7" + "\1\275\1\276\3\7\1\277\4\7\3\0\6\7\2\0" + "\3\7\2\0\12\7\1\300\1\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\1\7\1\112" + "\12\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\301" + + "\12\7\3\0\6\7\2\0\1\264\2\7\2\0\10\7" + "\1\302\1\7\1\141\1\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\1\303\2\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\12\7\1\304\1\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\4\7\1\305\1\7\1\306" + + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\5\7\1\122\6\7\3\0" + "\6\7\2\0\1\307\2\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\1\7\1\310\12\7\3\0\6\7" + "\2\0\1\311\2\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\312" + "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\3\7\1\122\10\7\3\0" + + "\6\7\2\0\3\7\2\0\10\7\1\122\2\7\1\313" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\5\7\1\314\6\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\1\7\1\315\1\122" + + "\11\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\3\7\1\316\10\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\1\317\2\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\1\7\1\320\3\7\1\321\6\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\2\7" + "\1\322\11\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7" + "\1\122\3\7\1\122\5\7\3\0\6\7\2\0\3\7" + + "\2\0\6\7\1\323\5\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\5\7\1\324\6\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\1\7\1\325\12\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\3\7\1\326\1\7" + "\1\327\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\3\7\1\50\10\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\5\7\1\313\2\0\3\7\2\0" + "\10\7\1\330\3\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\3\7\1\331" + + "\10\7\3\0\6\7\2\0\3\7\2\0\4\7\1\332" + "\7\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\1\7\1\333\12\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\334" + + "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\3\7\1\335\1\7\1\336\6\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\5\7\1\337\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\6\7\1\340\5\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\12\7\1\341\1\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\3\7\1\342\10\7" + + "\3\0\6\7\2\0\1\343\2\7\2\0\13\7\1\344" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\10\7\1\345\3\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\7\1\346\12\7\3\0\6\7\2\0\3\7" + "\2\0\6\7\1\342\5\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\3\7\1\347\10\7\3\0\6\7\2\0\3\7" + "\2\0\11\7\1\350\2\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\10\7" + + "\1\315\3\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\1\122\13\7\3\0\6\7\2\0" + + "\3\7\2\0\12\7\1\351\1\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\352" + + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\6\7\1\353\5\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\354" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\13\7\1\355" + + "\3\0\6\7\2\0\3\7\2\0\6\7\1\303\5\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\1\7\1\356\12\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\3\7\1\357\1\360" + + "\3\7\1\361\3\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\362" + "\12\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\4\7\1\363\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\364\6\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\1\7\1\365\2\7" + "\1\122\1\7\1\366\5\7\2\0\1\7\1\0\4\7" + + "\1\367\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\370" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\2\7\1\371\11\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\46\0\1\372\113\0\1\373\36\0\1\34\14\0" + "\2\34\1\204\24\0\1\34\11\0\2\34\27\0\1\205" + + "\1\374\14\205\2\374\1\205\1\0\34\205\2\374\1\375" + "\27\205\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\1\7\1\35\2\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\1\7\1\376\6\7\1\377\3\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\5\7\1\u0100\6\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\10\7\1\u0101\1\7\1\u0102" + "\1\u0103\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\u0104" + + "\12\7\3\0\6\7\2\0\1\u0105\2\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\1\7\1\u0106\10\7\1\u0107\1\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\10\7\1\u0108\3\7\3\0\5\7\1\u0109\2\0" + "\3\7\2\0\12\7\1\u010a\1\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\1\7\1\u010b\12\7\3\0\6\7\2\0\1\u010c\2\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\1\7\1\u010d\12\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7" + + "\1\u010e\10\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\10\7\1\u010d\3\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\5\7\1\u010f\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\3\7\1\u0110\10\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\1\7\1\u0111" + "\12\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\u0112" + "\12\7\3\0\6\7\2\0\1\u0113\1\u0114\1\7\2\0" + + "\4\7\1\122\5\7\1\317\1\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\1\7\1\u0115" + + "\12\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\5\7\1\u0116" + "\2\0\3\7\2\0\1\7\1\112\4\7\1\u0117\5\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\2\7\1\307\11\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\4\7" + "\1\122\5\7\1\u0118\1\7\3\0\6\7\2\0\1\267" + "\2\7\2\0\6\7\1\u0119\5\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\3\7\1\u011a\10\7\3\0\6\7\2\0\3\7\2\0" + "\10\7\1\122\3\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\10\7\1\u011b\3\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\1\7\1\u011c\12\7\3\0" + + "\6\7\2\0\1\303\2\7\2\0\12\7\1\u011d\1\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\4\7\1\u011e\7\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\6\7\1\122\1\7" + + "\1\u011f\3\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\6\7" + "\1\u011d\5\7\3\0\6\7\2\0\1\u0120\2\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\2\7\1\u0121\11\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\22\0\1\u0122\117\0\1\u0123\106\0\1\u0124\104\0" + "\1\u0125\61\0\1\72\2\0\1\73\2\254\1\73\1\254" + + "\1\73\1\72\1\0\1\73\1\76\1\254\2\0\1\7" + "\13\73\2\0\1\7\1\0\2\73\1\76\1\73\1\7" + "\2\0\1\72\2\0\2\72\5\0\1\73\3\7\1\0" + + "\1\7\1\0\2\7\1\72\1\0\2\73\1\76\11\73" + "\3\0\1\7\2\254\1\7\1\254\1\7\2\0\2\7" + "\1\254\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\1\72" + "\2\0\1\73\4\256\1\73\1\72\1\0\1\73\2\256" + + "\2\0\1\7\2\73\3\256\1\73\1\256\2\73\1\253" + "\1\73\2\0\1\7\1\0\1\73\1\253\2\256\1\7" + "\2\0\1\72\2\0\2\72\5\0\1\73\3\7\1\0" + + "\1\7\1\0\2\7\1\72\1\0\2\73\1\256\11\73" + "\3\0\6\7\2\0\3\7\2\0\5\7\1\u0126\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\10\7\1\u0127\3\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\3\7" + + "\1\u0128\10\7\23\0\1\u0129\113\0\1\104\111\0\1\u012a" + "\61\0\6\7\2\0\3\7\2\0\1\7\1\271\12\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\1\264" + "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\5\7\1\122\6\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\10\7\1\342\3\7\3\0" + + "\6\7\2\0\3\7\2\0\5\7\1\50\6\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\6\7\1\122\5\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\5\7\1\301\4\7\1\u012b" + + "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\2\7\1\122" + "\11\7\3\0\5\7\1\121\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\5\7\1\u012c\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\1\7\1\u012d\12\7\3\0\6\7\2\0\3\7\2\0" + + "\5\7\1\u012e\6\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\1\7\1\337\12\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\3\7\1\271\10\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\2\7\1\u012f\11\7\3\0\6\7\2\0\3\7\2\0" + "\13\7\1\u0130\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + "\1\u0131\12\7\3\0\6\7\2\0\3\7\2\0\14\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\1\7\1\303\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\4\7\1\301\7\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\1\271\2\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\6\7\1\u0132\5\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\4\7\1\122\7\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\10\7\1\271\3\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\12\7\1\122\1\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\122\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\2\7\1\122\11\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7" + "\1\u0133\10\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + "\1\312\12\7\3\0\6\7\2\0\3\7\2\0\6\7" + + "\1\u0134\5\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\12\7\1\u0135\1\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7" + "\1\122\1\7\1\u0136\3\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\5\7\1\303\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\1\7\1\344\12\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\3\7\1\u0137\10\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\1\7\1\u0138\2\7\1\301\7\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\2\7\1\u0139\6\7\1\122\2\7\3\0\6\7" + + "\2\0\3\7\2\0\2\7\1\u013a\11\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\3\7\1\u013b\10\7\3\0\6\7\2\0\3\7" + + "\2\0\12\7\1\342\1\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\5\7\1\u013c\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\122\1\0\4\7\1\u013d\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\12\7\1\122\1\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\1\u0133\2\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\5\7\1\u013e\6\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\4\7\1\u013f\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\u0140\6\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\5\7\1\122\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\1\7\1\u0141\12\7" + + "\3\0\6\7\2\0\3\7\2\0\1\7\1\303\12\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\2\7\1\u0142\11\7" + "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0143\1\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\u0144\6\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0145\1\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0146\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\1\u0147\13\7\3\0\6\7\2\0\3\7\2\0\10\7" + + "\1\u0148\3\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\6\7" + "\1\u0149\5\7\3\0\6\7\2\0\3\7\2\0\6\7" + "\1\u014a\5\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7" + + "\1\u014b\11\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\12\7\1\u0142\1\7\3\0\6\7" + + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\10\7" + "\1\122\3\7\3\0\6\7\2\0\3\7\2\0\2\7" + + "\1\303\11\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\10\7\1\u014c\1\7\1\u014d\1\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\1\u014e" + "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\6\7\1\u014f\5\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\1\7\1\u0150\12\7\3\0" + + "\6\7\2\0\3\7\2\0\10\7\1\u0151\3\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\10\7\1\u0152\3\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\12\7\1\u0153\1\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\1\7\1\310\12\7\47\0\1\u0154\106\0" + + "\1\u0155\44\0\6\7\2\0\3\7\2\0\5\7\1\u0156" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\4\7\1\u0157\7\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\3\7\1\u0158" + + "\10\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u0159" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\5\7\1\u015a\2\0\3\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\12\7\1\u015b\1\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\5\7\1\u015c\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\13\7" + + "\1\u015d\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\1\7\1\u015e\12\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\u015f" + "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\5\7\1\u0160\6\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\1\u0161\2\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\1\7\1\u0162\12\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\3\7\1\u0163\10\7\3\0\6\7\2\0\1\u010d" + "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\212\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\1\u0164\2\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\6\7\1\u010d\5\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\6\7\1\u0165\5\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\1\u0166\13\7\3\0" + "\6\7\2\0\3\7\2\0\2\7\1\u0140\11\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\5\7\1\u0167\6\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\10\7\1\303\3\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\3\7\1\u0168\10\7\3\0\6\7\2\0" + + "\3\7\2\0\1\7\1\320\12\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\7\7\1\332" + + "\4\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\13\7\1\u0169\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + "\1\122\12\7\3\0\6\7\2\0\3\7\2\0\5\7" + "\1\u016a\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\3\7\1\122\10\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\1\7\1\234\1\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\13\7\1\u016b\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u016c" + + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\1\7\1\122\12\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u016d" + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\1\7\1\u016e\12\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\1\7\1\315\12\7\3\0\6\7\2\0" + + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\3\7\1\134" + + "\10\7\2\0\1\u016f\132\0\1\u0122\102\0\1\u0170\111\0" + "\1\u0171\70\0\6\7\2\0\1\7\1\323\1\7\2\0" + + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\6\7\1\u0172\5\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\2\7\1\126" + "\11\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\24\0\1\u0173\115\0" + "\1\u0174\60\0\6\7\2\0\3\7\2\0\13\7\1\u0175" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\4\7\1\342\7\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\7\7\1\u0176\4\7\3\0\6\7\2\0\1\u0177" + "\2\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\4\7\1\u0178\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7" + + "\1\u0179\5\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\10\7\1\273\3\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7" + "\1\u017a\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\6\7" + + "\1\122\5\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\4\7\1\u017b\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\6\7\1\u017c\5\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\1\u017d\2\7\2\0\14\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\6\7\1\u017e\5\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0153\1\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\5\7\1\161\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\1\342\2\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\1\u017f\2\7\2\0" + + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\1\7\1\u0180\1\7\2\0\14\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + "\1\7\1\0\4\7\1\u0181\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\11\7\1\303\2\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\13\7\1\u0182\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\5\7\1\u0183\6\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\1\7\1\u0184\12\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\13\7\1\u0185\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\3\7\1\u0186\1\7\1\u0187\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0188\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\4\7\1\u0189\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7" + + "\2\0\1\7\1\0\4\7\1\u018a\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\122\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\4\7\1\u018b\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\1\7\1\172\12\7\3\0\6\7" + + "\2\0\3\7\2\0\5\7\1\172\6\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7" + + "\1\161\10\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\3\7\1\u018c\10\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\4\7\1\u018d\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\3\7\1\u018e\10\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u018f" + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\5\7\1\u0190\6\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\50\0\1\34\110\0\1\u0154\41\0\6\7\2\0" + + "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u0191" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\u0192\13\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\2\7\1\u0193\11\7\3\0" + "\6\7\2\0\3\7\2\0\12\7\1\u0194\1\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\1\7\1\u0195\12\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\5\7\1\u010d\6\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\1\u0196\2\7" + + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\10\7\1\u0197\3\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7" + "\1\u0198\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + + "\1\u0199\12\7\3\0\6\7\2\0\3\7\2\0\10\7" + "\1\u010f\3\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\1\u019a\2\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\11\7\1\u019b\2\7\3\0\6\7\2\0" + "\3\7\2\0\2\7\1\u019c\11\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\3\7\1\u019d\10\7\3\0\6\7\2\0\3\7\2\0" + "\10\7\1\u019e\3\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\1\u019f\13\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\4\7\1\u0121\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\1\7\1\122\1\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\5\7\1\u01a0\2\0\3\7\2\0\3\7" + + "\1\u01a1\1\7\1\u01a2\6\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\3\7\1\u01a3\10\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u01a4\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\6\7\1\u01a5\5\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\1\7\1\50\12\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\6\7\1\u01a6\5\7\70\0\1\u01a7\20\0\2\u01a8\6\u0170" + "\1\0\1\u01a8\3\u0170\2\0\1\u01a8\13\u0170\1\u01a8\1\0" + + "\1\u01a8\1\0\4\u0170\2\u01a8\2\0\4\u01a8\5\0\1\u01a8" + "\1\0\1\u01a8\1\0\3\u01a8\1\u0170\1\u01a8\1\u0170\1\u01a8" + + "\14\u0170\2\0\1\u016f\16\0\1\u0122\71\0\6\7\2\0" + "\3\7\2\0\5\7\1\u01a9\6\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\25\0\1\104\115\0\1\u01aa\57\0\6\7\2\0" + "\3\7\2\0\4\7\1\u014e\7\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u01ab" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\1\7\1\342\12\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\7\7\1\145\4\7\3\0\6\7\2\0" + + "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u01ac" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\2\7\1\u01ad\11\7\3\0\6\7\2\0\1\7" + "\1\u01ae\1\7\2\0\1\7\1\u01af\5\7\1\u01b0\2\7" + + "\1\u01b1\1\313\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\2\7\1\u01b2\11\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\4\7\1\u01b3\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\4\7\1\u01b4\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\3\7\1\u01b5\10\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7" + "\1\u01b6\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\13\7\1\u01b7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\11\7\1\u01b8" + + "\2\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\10\7\1\361\3\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\3\7\1\234" + "\10\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\2\7\1\u01b9\11\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\342" + "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\10\7\1\u0133\3\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\7\7\1\u01ba\4\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\3\7\1\u01bb" + "\10\7\3\0\6\7\2\0\1\7\1\u01bc\1\7\2\0" + "\10\7\1\u014c\1\7\1\u014d\1\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\4\7\1\u01bd" + "\7\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\1\7\1\u01be\1\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\u01bf" + "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\3\7\1\u01c0\10\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\3\7\1\u01c1\10\7\3\0\6\7\2\0" + "\3\7\2\0\13\7\1\u01c2\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\3\7\1\u01c3\10\7\3\0\6\7\2\0\3\7" + "\2\0\4\7\1\u01c4\7\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\5\7\1\u01c5\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u01c6\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\1\7\1\u01c7\12\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\1\u01c8\13\7\3\0\6\7" + "\2\0\3\7\2\0\4\7\1\u01c9\7\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7" + "\1\u01ca\5\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\1\u010f\2\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\11\7\1\u01cb" + + "\2\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\5\7\1\u01cc\6\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\5\7\1\u01cd\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\13\7\1\u01ce\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\3\7\1\u01cf\10\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\14\7\2\0\1\7\1\0\4\7\1\u01d0\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\4\7" + + "\1\u01d1\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\u01d2" + "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\4\7\1\u01d3\7\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u01d4" + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\5\7\1\u01d5\6\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\2\7\1\u01d6" + + "\1\u01c0\10\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + "\1\u01d7\12\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\3\7\1\122\10\7\70\0\1\u0170" + "\22\0\6\7\2\0\1\234\2\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\30\0\1\u0173\62\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u01d8" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\3\7\1\271\5\7" + "\1\u01d9\2\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\4\7" + "\1\u01da\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\117" + + "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\1\126\13\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\1\7\1\160\4\7\1\161\5\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + + "\1\u0182\12\7\3\0\6\7\2\0\3\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\1\7\1\u01db\12\7\3\0\6\7" + + "\2\0\3\7\2\0\5\7\1\u01dc\6\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\7\1\u0167\12\7\3\0\6\7\2\0\3\7" + + "\2\0\3\7\1\u01dd\10\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01de\3\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\1\7" + "\1\315\1\7\2\0\14\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01df\3\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\1\u01be\13\7\3\0" + + "\6\7\2\0\3\7\2\0\3\7\1\u012c\10\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\5\7\1\336\6\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\5\7\1\u01e0\6\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\13\7\1\u01e1\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + + "\1\u01e2\12\7\3\0\6\7\2\0\3\7\2\0\13\7" + "\1\332\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\4\7\1\u01e3\7\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\1\135\2\7\2\0\14\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\u01e4\6\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\6\7\1\u0133\5\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\313\6\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\7\1\u01e5\12\7\3\0\6\7\2\0\3\7" + + "\2\0\4\7\1\u01e6\7\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\5\7\1\u01e7\6\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\3\7\1\u01e8\10\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\4\7\1\u01e9\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\5\7\1\u01ea\6\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\4\7\1\u01eb\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\14\7" + + "\2\0\1\7\1\0\4\7\1\u01ec\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\10\7\1\u01ed\3\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\1\u01ee\2\7\2\0\14\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\12\7\1\u01ef\1\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01f0\3\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\1\7\1\u01f1\12\7" + "\3\0\6\7\2\0\3\7\2\0\4\7\1\u01f2\7\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\6\7\1\u01f3\5\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\1\u01f4\2\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\1\u01f5\13\7\3\0\6\7" + + "\2\0\1\u01f6\2\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\1\u01f7\2\7\2\0\14\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\3\7\1\u01f8\10\7" + "\3\0\6\7\2\0\3\7\2\0\13\7\1\u01f9\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\3\7\1\u01fa\10\7\3\0" + + "\5\7\1\u0116\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\1\u01fb\2\7\2\0" + + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\10\7\1\u01fc" + "\3\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u01fd" + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\3\7\1\u01fe\10\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u0119" + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\1\u01ff\2\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\10\7\1\u01d5\3\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\u0200\6\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\10\7\1\u0201\3\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\12\7\1\u0202\1\7" + + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\7\7\1\u0203\4\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\2\7\1\u0204\11\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\7\1\u0205\12\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0206\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\1\u0207\2\7\2\0\12\7\1\u0208\1\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\2\7\1\u0209\1\u020a\10\7\3\0" + "\5\7\1\u020b\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\6\7" + "\1\u020c\5\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\5\7\1\u020d\6\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7" + + "\1\u020e\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\2\7" + "\1\u020f\11\7\3\0\6\7\2\0\3\7\2\0\10\7" + "\1\u0210\3\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\1\7" + + "\1\u0211\12\7\3\0\6\7\2\0\3\7\2\0\13\7" + "\1\122\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\303" + "\12\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\1\7\1\273\12\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\1\7\1\u0212" + "\12\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + "\1\7\1\0\4\7\1\u0213\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\u01a2\6\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\6\7\1\164\5\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\3\7\1\u0214\10\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\1\u0215\2\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\5\7\1\u0216\6\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\12\7\1\u0133\1\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\12\7\1\u0217\1\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\1\7\1\172\12\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\14\7\2\0\1\303\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\6\7\1\u0218\5\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u0219" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\3\7\1\u021a\10\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u010c" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\10\7\1\u021b\3\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\2\7\1\u021c" + + "\11\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\5\7\1\u021d\6\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u021e" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\5\7\1\u021f" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\5\7\1\u0220\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\10\7\1\u0221\3\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\4\7\1\u0222\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\4\7\1\u0223\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\4\7" + "\1\u0224\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + "\1\7\1\0\4\7\1\u0225\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0226\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\10\7\1\u0227\3\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\4\7\1\u0133\7\7\3\0" + "\6\7\2\0\3\7\2\0\5\7\1\u0228\6\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\2\7\1\u0229\11\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\1\7\1\u022a\12\7\3\0\6\7\2\0\3\7\2\0" + + "\10\7\1\u022b\3\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\12\7\1\u022c\1\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\5\7\1\u022d\6\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\2\7\1\u022e\11\7\3\0\6\7\2\0\3\7\2\0" + "\12\7\1\u010d\1\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\4\7\1\u022f\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\3\7" + + "\1\u0230\10\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\3\7\1\u0231\10\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\10\7" + "\1\u0232\3\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\7\7\1\u0233\4\7" + "\3\0\6\7\2\0\3\7\2\0\2\7\1\u010d\11\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\6\7\1\u0234\5\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\1\u0235\2\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\10\7\1\u0236\3\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\7\7\1\u0237\4\7\3\0\6\7\2\0\1\7\1\u0238" + "\1\7\2\0\2\7\1\u021c\11\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\12\7\1\u0239" + "\1\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\1\u023a\2\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\6\7\1\u023b\5\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\10\7\1\u023c\3\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\4\7" + "\1\u023d\7\7\3\0\6\7\2\0\3\7\2\0\14\7" + + "\2\0\1\7\1\0\4\7\1\u023e\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\1\u01d5\2\7\2\0\14\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\6\7\1\u023f\5\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\14\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\6\7\1\303\5\7" + + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\4\7\1\u0240\7\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u0241\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\10\7\1\u0242\3\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\6\7\1\u0243\5\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\2\7\1\u0244\11\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\10\7\1\u0230\3\7\3\0" + + "\6\7\2\0\3\7\2\0\5\7\1\u021a\6\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + + "\3\7\1\u010d\10\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\5\7\1\u0245\6\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\3\7\1\u0246\10\7\2\0\1\7\1\0\5\7\14\0" + + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\5\7\1\u0247\6\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\13\7\1\u0248\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + + "\2\0\3\7\2\0\13\7\1\u0249\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u024a" + + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\5\7\1\u024b\6\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\6\7\1\u024c" + "\5\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\13\7\1\172\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\7\7\1\u0133\4\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\14\7\2\0\1\7\1\0\4\7\1\u024d\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\6\7\1\u024e\5\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\3\7\1\u021c\10\7\3\0" + "\6\7\2\0\3\7\2\0\5\7\1\u024f\6\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\14\7\3\0\6\7\2\0\3\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\1\u010d\13\7\3\0\6\7" + + "\2\0\3\7\2\0\3\7\1\u0250\10\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\1\7" + + "\1\u0251\12\7\2\0\1\7\1\0\5\7\14\0\4\7" + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\14\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\3\7" + "\1\u0252\10\7\3\0\6\7\2\0\1\u0253\2\7\2\0" + "\14\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\12\7\1\u0254\1\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\u0255" + "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\1\7\1\u0256\1\7\2\0\14\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\4\7\1\u010f\7\7\3\0\6\7\2\0" + "\3\7\2\0\5\7\1\121\6\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\5\7\1\u01dc" + "\6\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\14\7\2\0\1\7\1\0\4\7\1\u0257" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\11\7\1\u0258\2\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\7\7\1\u0259\4\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\1\7\1\u025a\12\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\u025b\6\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\1\7\1\u025c\12\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\5\7\1\220\6\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\5\7\1\u025d\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\12\7\1\u025e\1\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\4\7\1\u025f\7\7" + + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\12\7\1\u0260\1\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\12\7\1\u0261\1\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + "\2\0\12\7\1\u0262\1\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\1\7\1\u0263\12\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\13\7\1\u0264\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\14\7\3\0" + "\6\7\2\0\3\7\2\0\14\7\2\0\1\7\1\0" + + "\4\7\1\u0265\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\5\7" + "\1\u0266\6\7\2\0\1\7\1\0\5\7\14\0\4\7" + + "\1\0\1\7\1\0\2\7\2\0\14\7\3\0\6\7" + "\2\0\3\7\2\0\12\7\1\u0267\1\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\14\7\3\0\6\7\2\0\3\7\2\0\13\7" + "\1\u0268\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\14\7\2\0\1\7\1\0\5\7\14\0" + "\4\7\1\0\1\7\1\0\2\7\2\0\6\7\1\u010d" + "\5\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + "\2\7\2\0\7\7\1\u0269\4\7\3\0\6\7\2\0" + "\3\7\2\0\2\7\1\u026a\11\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\14\7\2\0" + "\1\7\1\0\5\7\14\0\4\7\1\0\1\7\1\0" + + "\2\7\2\0\1\7\1\222\12\7\3\0\6\7\2\0" + "\3\7\2\0\3\7\1\u026b\10\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + + "\14\7\3\0\6\7\2\0\3\7\2\0\4\7\1\u026c" + "\7\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + + "\3\7\2\0\3\7\1\u026d\10\7\2\0\1\7\1\0" + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\10\7\1\u015b" + + "\3\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\3\7\2\0\5\7\1\u026e\6\7\2\0\1\7\1\0" + + "\5\7\14\0\4\7\1\0\1\7\1\0\2\7\2\0" + "\14\7\3\0\6\7\2\0\3\7\2\0\3\7\1\u026f" + "\10\7\2\0\1\7\1\0\5\7\14\0\4\7\1\0" + + "\1\7\1\0\2\7\2\0\14\7\3\0\6\7\2\0" + "\1\u0270\2\7\2\0\14\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\6\7\1\u025c\5\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7\3\0\6\7\2\0\3\7" + + "\2\0\1\7\1\u0271\12\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + "\2\0\2\7\1\u025d\11\7\3\0\6\7\2\0\3\7" + "\2\0\4\7\1\u0272\7\7\2\0\1\7\1\0\5\7" + + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + "\3\0\6\7\2\0\3\7\2\0\14\7\2\0\1\7" + "\1\0\5\7\14\0\4\7\1\0\1\7\1\0\2\7" + + "\2\0\10\7\1\220\3\7\3\0\6\7\2\0\3\7" + "\2\0\1\7\1\u0159\12\7\2\0\1\7\1\0\5\7" + "\14\0\4\7\1\0\1\7\1\0\2\7\2\0\14\7" + + "\3\0\6\7\2\0\3\7\2\0\5\7\1\u0273\6\7" + "\2\0\1\7\1\0\5\7\14\0\4\7\1\0\1\7" + "\1\0\2\7\2\0\14\7"; + + private static int[] zzUnpackTrans() { + int[] result = new int[43056]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\1\2\0\2\11\10\1\2\11\14\1\1\11\4\1" + "\1\11\20\1\1\11\3\1\1\11\15\1\1\11\3\0" + + "\72\1\4\0\37\1\2\11\4\0\6\1\3\0\106\1" + "\2\0\1\11\45\1\4\0\3\1\2\0\51\1\2\0" + "\31\1\1\0\1\1\1\0\1\1\2\0\62\1\2\0" + + "\1\1\1\0\311\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[627]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public ClojureTokenMaker() { - } - - + public ClojureTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1857,37 +866,39 @@ public class ClojureTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { ";", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { - /*case Token.COMMENT_MULTILINE: - state = MLC; - start = text.offset; - break; - case Token.COMMENT_DOCUMENTATION: - state = DOCCOMMENT; - start = text.offset; - break;*/ + /* + * case Token.COMMENT_MULTILINE: + * state = MLC; + * start = text.offset; + * break; + * case Token.COMMENT_DOCUMENTATION: + * state = DOCCOMMENT; + * start = text.offset; + * break; + */ case Token.LITERAL_STRING_DOUBLE_QUOTE: state = STRING; start = text.offset; @@ -1895,7 +906,6 @@ public class ClojureTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1905,21 +915,18 @@ public class ClojureTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1928,7 +935,8 @@ public class ClojureTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1937,368 +945,386 @@ public class ClojureTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 ClojureTokenMaker(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 ClojureTokenMaker(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 < 164) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 15: { + addToken(Token.PREPROCESSOR); + } + case 26: + break; + case 6: { + addNullToken(); + return firstToken; + } + case 27: + break; + case 19: { + addToken(Token.LITERAL_CHAR); + } + case 28: + break; + case 9: { + addToken(Token.WHITESPACE); + } + case 29: + break; + case 17: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 30: + break; + case 18: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 31: + break; + case 20: { + addToken(Token.RESERVED_WORD); + } + case 32: + break; + case 22: { + addToken(Token.VARIABLE); + } + case 33: + break; + case 8: { + addToken(Token.SEPARATOR); + } + case 34: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 35: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 36: + break; + case 21: { + addToken(Token.FUNCTION); + } + case 37: + break; + case 23: { + addToken(Token.DATA_TYPE); + } + case 38: + break; + case 11: { /* Skip escaped chars. */ + } + case 39: + break; + case 2: { + addToken(Token.ERROR_IDENTIFIER); + } + case 40: + break; + case 24: { + addToken(Token.LITERAL_BOOLEAN); + } + case 41: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 42: + break; + case 25: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 43: + break; + case 16: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 44: + break; + case 7: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 45: + break; + case 3: { + start = zzMarkedPos - 1; + yybegin(EOL_COMMENT); + } + case 46: + break; + case 5: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 47: + break; + case 4: { + addToken(Token.OPERATOR); + } + case 48: + break; + case 13: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 49: + break; + case 10: {} + case 50: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 628: + break; + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 629: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 630: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 ClojureTokenMaker(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 ClojureTokenMaker(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 < 164) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 15: - { addToken(Token.PREPROCESSOR); - } - case 26: break; - case 6: - { addNullToken(); return firstToken; - } - case 27: break; - case 19: - { addToken(Token.LITERAL_CHAR); - } - case 28: break; - case 9: - { addToken(Token.WHITESPACE); - } - case 29: break; - case 17: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 30: break; - case 18: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 31: break; - case 20: - { addToken(Token.RESERVED_WORD); - } - case 32: break; - case 22: - { addToken(Token.VARIABLE); - } - case 33: break; - case 8: - { addToken(Token.SEPARATOR); - } - case 34: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 35: break; - case 14: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 36: break; - case 21: - { addToken(Token.FUNCTION); - } - case 37: break; - case 23: - { addToken(Token.DATA_TYPE); - } - case 38: break; - case 11: - { /* Skip escaped chars. */ - } - case 39: break; - case 2: - { addToken(Token.ERROR_IDENTIFIER); - } - case 40: break; - case 24: - { addToken(Token.LITERAL_BOOLEAN); - } - case 41: break; - case 12: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 42: break; - case 25: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 43: break; - case 16: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 44: break; - case 7: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 45: break; - case 3: - { start = zzMarkedPos-1; yybegin(EOL_COMMENT); - } - case 46: break; - case 5: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 47: break; - case 4: - { addToken(Token.OPERATOR); - } - case 48: break; - case 13: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 49: break; - case 10: - { - } - case 50: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 628: break; - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 629: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 630: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/DTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/DTokenMaker.java index 47619b4..f08585f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/DTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/DTokenMaker.java @@ -1,1363 +1,848 @@ /* The following code was generated by JFlex 1.4.1 on 6/21/15 7:13 PM */ - /* * 09/08/2014 - * * DTokenMaker.java - Scanner for the D programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; +import org.fife.ui.rsyntaxtextarea.TokenTypes; /** - * Scanner for the D programming language.

+ * Scanner for the D programming language. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated DTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated DTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 1.0 * */ - public class DTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int WYSIWYG_STRING_1 = 6; - public static final int EOL_COMMENT = 4; - public static final int NESTABLE_MLC = 3; - public static final int DOCCOMMENT = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 1; - public static final int WYSIWYG_STRING_2 = 7; - public static final int EOL_DOCCOMMENT = 5; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\22\1\11\1\0\1\22\1\20\22\0\1\22\1\60\1\16"+ - "\1\21\1\1\1\60\1\62\1\10\2\65\1\31\1\32\1\53\1\43"+ - "\1\44\1\30\1\4\1\5\2\17\4\7\2\3\1\63\1\53\1\54"+ - "\1\55\1\57\1\61\1\64\1\6\1\34\1\105\1\40\1\42\1\100"+ - "\2\1\1\101\2\1\1\33\1\102\1\104\1\103\1\107\1\1\1\110"+ - "\1\1\1\106\1\37\2\1\1\36\1\111\1\1\1\65\1\12\1\65"+ - "\1\56\1\2\1\27\1\47\1\35\1\24\1\41\1\46\1\15\1\71"+ - "\1\66\1\70\1\1\1\75\1\50\1\72\1\14\1\73\1\67\1\1"+ - "\1\26\1\51\1\45\1\13\1\76\1\23\1\25\1\74\1\77\1\52"+ - "\1\56\1\52\1\61\uff81\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 = - "\10\0\1\1\2\2\2\3\1\4\1\5\3\2\1\6"+ - "\1\1\1\7\4\2\1\10\3\11\2\2\1\11\6\2"+ - "\1\12\1\2\4\11\1\13\6\2\1\14\1\15\4\14"+ - "\1\16\5\14\1\17\3\14\1\20\3\14\1\21\1\22"+ - "\1\23\1\24\1\25\1\1\1\2\2\26\1\27\1\3"+ - "\1\26\1\27\2\26\1\30\2\26\1\4\1\31\1\0"+ - "\1\4\16\2\2\6\1\22\13\2\1\6\1\32\1\2"+ - "\1\33\1\34\1\35\4\2\1\36\24\2\1\0\1\11"+ - "\1\13\4\2\3\36\10\2\3\0\1\37\4\0\1\40"+ - "\1\0\1\41\1\42\4\0\1\1\10\2\1\3\1\27"+ - "\1\0\4\30\1\3\1\4\1\43\1\31\2\4\1\31"+ - "\1\4\11\2\1\36\1\6\1\44\1\6\1\22\12\2"+ - "\2\6\2\2\1\45\1\46\37\2\1\1\6\2\1\47"+ - "\12\2\14\0\1\1\11\2\1\30\2\26\1\43\1\4"+ - "\2\2\1\47\4\2\1\44\1\6\2\2\2\6\1\2"+ - "\1\50\6\2\1\51\13\2\1\1\13\2\1\0\1\52"+ - "\2\0\1\53\2\0\1\54\1\0\1\1\10\2\1\4"+ - "\1\2\1\36\1\2\1\6\1\2\1\6\10\2\1\1"+ - "\12\2\6\0\1\1\6\2\1\4\2\2\1\6\1\2"+ - "\1\6\1\55\2\2\1\1\12\2\1\36\1\6\1\2"+ - "\1\1\21\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[459]; - 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\112\0\224\0\336\0\u0128\0\u0172\0\u01bc\0\u0206"+ - "\0\u0250\0\u029a\0\u02e4\0\u032e\0\u0378\0\u03c2\0\u040c\0\u0456"+ - "\0\u04a0\0\u04ea\0\u0534\0\u040c\0\u057e\0\u05c8\0\u0612\0\u065c"+ - "\0\u06a6\0\u040c\0\u06f0\0\u073a\0\u0784\0\u07ce\0\u0818\0\u0862"+ - "\0\u08ac\0\u08f6\0\u0940\0\u098a\0\u09d4\0\u0a1e\0\u040c\0\u040c"+ - "\0\u0a68\0\u0ab2\0\u040c\0\u0afc\0\u0b46\0\u0b90\0\u0bda\0\u0c24"+ - "\0\u0c6e\0\u0cb8\0\u0d02\0\u0d4c\0\u040c\0\u0d96\0\u0de0\0\u0e2a"+ - "\0\u0e74\0\u040c\0\u0ebe\0\u0f08\0\u0f52\0\u0f9c\0\u0fe6\0\u040c"+ - "\0\u1030\0\u107a\0\u10c4\0\u040c\0\u110e\0\u1158\0\u11a2\0\u040c"+ - "\0\u11ec\0\u040c\0\u1236\0\u040c\0\u1280\0\u12ca\0\u1314\0\u135e"+ - "\0\u1314\0\u1314\0\u13a8\0\u13f2\0\u143c\0\u1486\0\u14d0\0\u151a"+ - "\0\u1564\0\u15ae\0\u15f8\0\u1642\0\u168c\0\u16d6\0\u1720\0\u176a"+ - "\0\u17b4\0\u17fe\0\u1848\0\u1892\0\u18dc\0\u1926\0\u1970\0\u19ba"+ - "\0\u1a04\0\u1a4e\0\u1a98\0\u1ae2\0\u1b2c\0\u1b76\0\u1bc0\0\u1c0a"+ - "\0\u1c54\0\u1c9e\0\u1ce8\0\u1d32\0\u1d7c\0\u1dc6\0\u1e10\0\u1e5a"+ - "\0\u1ea4\0\u1eee\0\u040c\0\u1f38\0\u1f82\0\u1fcc\0\u040c\0\u2016"+ - "\0\u2060\0\u20aa\0\u20f4\0\u213e\0\u2188\0\u21d2\0\u221c\0\u2266"+ - "\0\u22b0\0\u22fa\0\u2344\0\u238e\0\u23d8\0\u2422\0\u246c\0\u24b6"+ - "\0\u2500\0\u254a\0\u2594\0\u25de\0\u2628\0\u2672\0\u26bc\0\u2706"+ - "\0\u073a\0\u2750\0\u279a\0\u27e4\0\u282e\0\u2878\0\u28c2\0\u290c"+ - "\0\u1ce8\0\u029a\0\u2956\0\u29a0\0\u29ea\0\u2a34\0\u2a7e\0\u2ac8"+ - "\0\u2b12\0\u2b5c\0\u2ba6\0\u2bf0\0\u2c3a\0\u040c\0\u2c84\0\u2cce"+ - "\0\u2d18\0\u2d62\0\u040c\0\u2dac\0\u040c\0\u040c\0\u2df6\0\u2e40"+ - "\0\u2e8a\0\u2ed4\0\u2f1e\0\u2f68\0\u2fb2\0\u2ffc\0\u3046\0\u3090"+ - "\0\u30da\0\u3124\0\u316e\0\u31b8\0\u3202\0\u324c\0\u3296\0\u32e0"+ - "\0\u332a\0\u3374\0\u33be\0\u3408\0\u3452\0\u040c\0\u349c\0\u34e6"+ - "\0\u3530\0\u357a\0\u35c4\0\u360e\0\u3658\0\u36a2\0\u36ec\0\u3736"+ - "\0\u3780\0\u37ca\0\u3814\0\u385e\0\u38a8\0\u38f2\0\u393c\0\u040c"+ - "\0\u3986\0\u39d0\0\u3a1a\0\u3a64\0\u213e\0\u3aae\0\u3af8\0\u3b42"+ - "\0\u3b8c\0\u3bd6\0\u3c20\0\u3c6a\0\u3cb4\0\u3cfe\0\u040c\0\u3d48"+ - "\0\u3d92\0\u3ddc\0\u3e26\0\u3e70\0\u3eba\0\u3f04\0\u3f4e\0\u3f98"+ - "\0\u3fe2\0\u402c\0\u4076\0\u40c0\0\u410a\0\u4154\0\u419e\0\u41e8"+ - "\0\u4232\0\u427c\0\u42c6\0\u4310\0\u435a\0\u43a4\0\u43ee\0\u4438"+ - "\0\u4482\0\u44cc\0\u4516\0\u4560\0\u45aa\0\u45f4\0\u463e\0\u4688"+ - "\0\u46d2\0\u471c\0\u4766\0\u47b0\0\u47fa\0\u4844\0\u488e\0\u48d8"+ - "\0\u4922\0\u496c\0\u49b6\0\u4a00\0\u4a4a\0\u4a94\0\u4ade\0\u4b28"+ - "\0\u4b72\0\u4bbc\0\u4c06\0\u4c50\0\u4c9a\0\u4ce4\0\u4d2e\0\u4d78"+ - "\0\u4dc2\0\u4e0c\0\u4e56\0\u4ea0\0\u4eea\0\u4f34\0\u4f7e\0\u4fc8"+ - "\0\u5012\0\u505c\0\u50a6\0\u50f0\0\u513a\0\u5184\0\u51ce\0\u1314"+ - "\0\u5218\0\u33be\0\u040c\0\u5262\0\u52ac\0\u52f6\0\u029a\0\u5340"+ - "\0\u538a\0\u53d4\0\u541e\0\u040c\0\u5468\0\u54b2\0\u54fc\0\u5546"+ - "\0\u5590\0\u55da\0\u040c\0\u5624\0\u566e\0\u56b8\0\u5702\0\u574c"+ - "\0\u5796\0\u029a\0\u57e0\0\u582a\0\u5874\0\u58be\0\u5908\0\u5952"+ - "\0\u599c\0\u59e6\0\u5a30\0\u5a7a\0\u5ac4\0\u5b0e\0\u5b58\0\u5ba2"+ - "\0\u5bec\0\u5c36\0\u5c80\0\u5cca\0\u5d14\0\u5d5e\0\u5da8\0\u5df2"+ - "\0\u5e3c\0\u5e86\0\u5ed0\0\u5f1a\0\u5f64\0\u5fae\0\u5ff8\0\u6042"+ - "\0\u608c\0\u60d6\0\u6120\0\u616a\0\u61b4\0\u61fe\0\u6248\0\u6292"+ - "\0\u62dc\0\u6326\0\u6370\0\u63ba\0\u6404\0\u644e\0\u6498\0\u64e2"+ - "\0\u652c\0\u6576\0\u65c0\0\u660a\0\u6654\0\u669e\0\u66e8\0\u6732"+ - "\0\u677c\0\u67c6\0\u6810\0\u685a\0\u68a4\0\u68ee\0\u6938\0\u6982"+ - "\0\u69cc\0\u6a16\0\u6a60\0\u6aaa\0\u6af4\0\u6b3e\0\u5ed0\0\u6b88"+ - "\0\u5fae\0\u6bd2\0\u608c\0\u6c1c\0\u6c66\0\u6cb0\0\u6cfa\0\u6d44"+ - "\0\u6d8e\0\u6dd8\0\u6e22\0\u6e6c\0\u6eb6\0\u6f00\0\u6f4a\0\u6f94"+ - "\0\u029a\0\u6fde\0\u7028\0\u7072\0\u70bc\0\u7106\0\u7150\0\u719a"+ - "\0\u71e4\0\u722e\0\u7278\0\u72c2\0\u730c\0\u7356\0\u73a0\0\u73ea"+ - "\0\u7434\0\u747e\0\u74c8\0\u7512\0\u755c\0\u75a6\0\u75f0\0\u763a"+ - "\0\u7684\0\u76ce\0\u7718\0\u7762\0\u77ac\0\u77f6\0\u7840\0\u788a"+ - "\0\u78d4\0\u791e\0\u7968"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[459]; - 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 = - "\1\11\1\12\1\13\1\14\1\15\1\14\1\12\1\14"+ - "\1\16\1\17\1\11\1\20\1\21\1\22\1\23\1\14"+ - "\1\24\1\11\1\25\1\26\1\27\1\30\1\31\1\32"+ - "\1\33\1\34\1\35\2\12\1\36\3\12\1\37\1\12"+ - "\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47"+ - "\1\50\1\51\2\34\1\52\1\34\1\53\1\54\1\53"+ - "\1\55\1\47\1\12\1\56\1\57\1\60\1\61\1\62"+ - "\2\12\1\63\13\12\11\64\1\65\3\64\1\66\5\64"+ - "\1\67\5\64\1\70\34\64\1\71\34\64\1\72\3\64"+ - "\1\73\5\64\1\74\5\64\1\75\34\64\1\76\23\64"+ - "\11\77\1\100\3\77\1\66\5\77\1\67\4\77\1\101"+ - "\1\77\1\102\33\77\1\71\23\77\11\103\1\104\3\103"+ - "\1\105\5\103\1\106\42\103\1\107\34\103\1\110\3\103"+ - "\1\73\5\103\1\74\42\103\1\76\23\103\16\111\1\112"+ - "\73\111\27\113\1\114\62\113\10\11\2\0\4\11\1\0"+ - "\1\11\1\0\1\11\1\0\4\11\4\0\10\11\2\0"+ - "\5\11\12\0\1\11\1\0\25\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\1\12\1\116\5\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\2\117\1\120\3\14\1\117"+ - "\1\14\2\0\3\117\1\121\1\0\1\14\1\0\1\117"+ - "\1\0\4\117\4\0\1\122\4\117\2\121\1\123\1\0"+ - "\1\124\1\117\1\123\1\117\1\122\1\117\12\0\1\117"+ - "\1\0\12\117\1\121\13\117\1\125\1\126\2\127\1\117"+ - "\1\127\2\0\3\117\1\121\1\0\1\127\1\0\1\117"+ - "\1\0\2\117\1\130\1\117\4\0\1\122\2\131\1\130"+ - "\1\117\2\121\1\123\1\0\1\124\1\117\1\123\1\117"+ - "\1\122\1\117\12\0\1\117\1\0\12\117\1\121\11\117"+ - "\10\132\1\133\1\134\1\135\77\132\112\0\1\11\7\12"+ - "\2\0\1\115\1\12\1\136\1\12\1\0\1\12\1\0"+ - "\1\11\1\0\1\12\1\137\2\12\4\0\2\12\1\140"+ - "\5\12\2\0\3\12\1\141\1\142\12\0\1\11\1\0"+ - "\2\12\1\143\21\12\1\11\7\12\2\0\1\115\1\144"+ - "\2\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\1\12\1\145\3\12\12\0\1\11\1\0"+ - "\5\12\1\146\16\12\1\11\7\12\2\0\1\115\1\147"+ - "\2\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\2\12\1\150\1\151\1\12\12\0\1\11"+ - "\1\0\2\12\1\152\2\12\1\153\16\12\11\23\1\154"+ - "\1\155\3\23\1\156\73\23\22\0\1\25\67\0\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\1\12\1\157\2\12\4\0\10\12\2\0\4\12"+ - "\1\160\12\0\1\11\1\0\1\161\1\12\1\162\21\12"+ - "\1\11\7\12\2\0\1\115\2\12\1\163\1\0\1\12"+ - "\1\0\1\11\1\0\3\12\1\164\4\0\6\12\1\165"+ - "\1\12\2\0\1\12\1\143\1\166\1\167\1\12\12\0"+ - "\1\11\1\0\1\170\4\12\1\171\16\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\172\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\173\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\12"+ - "\1\174\3\12\12\0\1\11\1\0\24\12\30\0\1\175"+ - "\1\176\1\177\22\0\1\53\111\0\1\53\66\0\1\53"+ - "\22\0\1\53\34\0\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\3\12\1\200\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\5\12\1\201"+ - "\1\202\15\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\1\12\1\157\2\12\4\0"+ - "\10\12\2\0\1\12\1\203\2\12\1\160\12\0\1\11"+ - "\1\0\5\12\1\204\16\12\43\0\1\53\11\0\1\53"+ - "\37\0\3\124\1\0\1\124\7\0\1\124\72\0\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\205\4\0\10\12\2\0\1\12\1\206"+ - "\3\12\12\0\1\11\1\0\1\207\5\12\1\210\15\12"+ - "\1\11\7\12\2\0\1\115\1\12\1\211\1\12\1\0"+ - "\1\12\1\0\1\11\1\0\2\12\1\212\1\12\4\0"+ - "\10\12\2\0\3\12\1\213\1\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\1\214\2\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\2\12\1\215"+ - "\5\12\2\0\3\12\1\216\1\217\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12"+ - "\1\220\2\12\12\0\1\11\1\0\5\12\1\221\16\12"+ - "\1\11\7\12\2\0\1\115\1\222\2\12\1\0\1\12"+ - "\1\0\1\11\1\0\1\223\1\224\2\12\4\0\10\12"+ - "\2\0\1\225\4\12\12\0\1\11\1\0\1\226\1\12"+ - "\1\227\3\12\1\230\15\12\54\0\1\231\1\53\111\0"+ - "\1\53\1\0\1\232\107\0\1\53\4\0\1\53\27\0"+ - "\1\11\2\233\3\11\1\233\1\11\2\0\1\11\3\233"+ - "\1\0\1\11\1\0\1\11\1\0\4\233\4\0\10\233"+ - "\2\0\5\233\12\0\1\11\1\0\24\233\1\11\7\12"+ - "\2\0\1\115\1\234\2\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\235\4\0\10\12\2\0\1\236\1\12"+ - "\1\237\2\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\1\12\1\240\1\241\1\0\1\12\1\0"+ - "\1\11\1\0\3\12\1\164\4\0\6\12\1\165\1\12"+ - "\2\0\4\12\1\242\12\0\1\11\1\0\4\12\1\243"+ - "\17\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\5\12\1\214\16\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\2\12\1\244\2\12\12\0"+ - "\1\11\1\0\2\12\1\245\2\12\1\246\16\12\1\11"+ - "\7\12\2\0\1\115\1\247\2\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\10\12\1\250\13\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\12\1\251\3\12\12\0\1\11"+ - "\1\0\5\12\1\252\16\12\11\64\1\0\3\64\1\0"+ - "\5\64\1\0\5\64\1\0\34\64\1\0\23\64\45\0"+ - "\1\253\22\0\1\254\44\0\1\255\116\0\1\256\126\0"+ - "\1\257\111\0\1\260\22\0\1\261\44\0\1\262\116\0"+ - "\1\263\126\0\1\264\44\0\11\77\1\0\3\77\1\0"+ - "\5\77\1\0\4\77\1\0\1\77\1\0\33\77\1\0"+ - "\23\77\32\0\1\265\107\0\1\266\61\0\11\103\1\0"+ - "\3\103\1\0\5\103\1\0\42\103\1\0\23\103\45\0"+ - "\1\267\22\0\1\270\44\0\1\271\133\0\1\272\44\0"+ - "\16\111\1\0\73\111\27\113\1\0\62\113\10\11\2\0"+ - "\1\11\1\273\2\11\1\0\1\11\1\0\1\11\1\0"+ - "\4\11\4\0\10\11\2\0\5\11\12\0\1\11\1\0"+ - "\25\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\1\274\7\12\2\0\1\275"+ - "\4\12\12\0\1\11\1\0\1\12\1\276\1\12\1\277"+ - "\4\12\1\300\1\12\1\301\1\12\1\302\4\12\1\303"+ - "\2\12\10\117\2\0\4\117\1\0\1\117\1\0\1\117"+ - "\1\0\4\117\4\0\10\117\2\0\5\117\12\0\1\117"+ - "\1\0\26\117\1\120\3\304\1\117\1\304\2\0\4\117"+ - "\1\0\1\304\1\0\1\117\1\0\4\117\4\0\10\117"+ - "\2\0\5\117\12\0\1\117\1\0\27\117\3\305\1\117"+ - "\1\305\2\0\4\117\1\0\1\305\1\0\1\117\1\0"+ - "\4\117\3\0\1\306\10\117\1\306\1\0\5\117\12\0"+ - "\1\117\1\0\27\117\3\124\1\117\1\124\2\0\3\117"+ - "\1\121\1\0\1\124\1\0\1\117\1\0\4\117\4\0"+ - "\5\117\2\121\1\123\2\0\1\117\1\123\3\117\12\0"+ - "\1\117\1\0\12\117\1\121\13\117\1\125\1\117\2\307"+ - "\1\117\1\307\2\0\4\117\1\0\1\307\1\0\1\117"+ - "\1\0\4\117\4\0\10\117\2\0\5\117\12\0\1\117"+ - "\1\0\27\117\3\126\1\117\1\126\2\0\3\117\1\121"+ - "\1\0\1\126\1\0\1\117\1\0\4\117\4\0\5\117"+ - "\2\121\1\123\1\0\1\124\1\117\1\123\3\117\12\0"+ - "\1\117\1\0\12\117\1\121\13\117\1\125\1\126\2\127"+ - "\1\117\1\127\2\0\1\117\1\310\1\117\1\121\1\0"+ - "\1\127\1\0\1\117\1\0\4\117\4\0\1\311\3\117"+ - "\1\310\2\121\1\123\1\0\1\124\1\117\1\123\1\117"+ - "\1\311\1\117\12\0\1\117\1\0\12\117\1\121\14\117"+ - "\5\312\2\0\3\117\1\312\1\0\1\312\1\0\1\117"+ - "\1\0\1\117\1\312\2\117\4\0\1\117\2\312\2\117"+ - "\3\312\2\0\1\117\2\312\2\117\12\0\1\117\1\0"+ - "\12\117\1\312\4\117\1\312\10\117\2\313\2\117\2\0"+ - "\4\117\1\0\1\117\1\0\1\117\1\0\4\117\4\0"+ - "\10\117\2\0\5\117\12\0\1\117\1\0\24\117\10\314"+ - "\1\315\1\0\100\314\23\0\2\316\14\0\1\316\60\0"+ - "\1\315\101\0\4\314\2\317\1\314\1\320\1\321\1\0"+ - "\1\132\1\322\3\132\1\317\6\314\1\132\6\314\1\132"+ - "\7\314\1\132\44\314\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\2\12\1\323\21\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\1\12\1\143"+ - "\3\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\6\12"+ - "\1\202\15\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\5\12\1\221\16\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\1\324\23\12\1\11\7\12\2\0\1\115\1\12"+ - "\1\325\1\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\3\12\1\326"+ - "\1\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\1\242"+ - "\3\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\327"+ - "\4\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\1\12\1\330\1\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\3\12\1\331\1\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\5\12\1\332\16\12\1\11\7\12\2\0\1\115"+ - "\1\12\1\333\1\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\3\12\1\334\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\24\12\12\154\1\335\3\154"+ - "\1\336\77\154\2\23\1\154\2\23\1\0\1\23\1\337"+ - "\4\23\6\154\1\23\6\154\1\23\7\154\1\23\44\154"+ - "\23\0\2\340\14\0\1\340\50\0\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\1\170"+ - "\23\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\341"+ - "\4\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\2\12"+ - "\1\342\21\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\343\4\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\3\12\1\151\1\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\12\1\344\3\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\5\12\1\345\16\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\346\3\12\1\347\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\2\12\1\350\2\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\2\12\1\351\2\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\1\12\1\352\1\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\11\172\1\353\1\354\3\172\1\156\73\172\1\11"+ - "\7\12\2\0\1\115\2\12\1\242\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\1\355\1\12"+ - "\1\356\2\12\12\0\1\11\1\0\24\12\30\0\1\357"+ - "\112\0\1\360\60\0\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\12\1\361\3\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\6\12\1\362\1\12\2\0"+ - "\5\12\12\0\1\11\1\0\5\12\1\356\16\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\1\363\4\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\2\12"+ - "\1\364\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\2\12\1\365\5\12\2\0\3\12\1\366\1\12\12\0"+ - "\1\11\1\0\1\12\1\367\22\12\1\11\7\12\2\0"+ - "\1\115\1\370\2\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\1\371\2\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\6\12\1\242\15\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\4\12\1\372\17\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\3\12\1\373"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\2\12"+ - "\1\374\21\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\1\12\1\375\22\12\1\11"+ - "\7\12\2\0\1\115\1\376\2\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\377\4\12\12\0\1\11\1\0\1\12\1\u0100"+ - "\22\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\4\12"+ - "\1\u0101\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\u0102\4\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\4\12"+ - "\1\u0103\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\2\12"+ - "\1\u0104\21\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\4\12\1\u0105\12\0\1\11\1\0\4\12\1\242\17\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\11\12\1\362\12\12\1\11\7\12\2\0"+ - "\1\115\1\12\1\u0106\1\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\1\12\1\u0107\22\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\2\12\1\u0108\21\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\5\12\1\u0109"+ - "\16\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\3\12\1\u010a\4\0\10\12\2\0"+ - "\2\12\1\u010b\2\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\2\12\1\u010c\2\12"+ - "\12\0\1\11\1\0\5\12\1\u010d\16\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\11\12\1\u010e\12\12\1\11\7\12\2\0\1\115\1\12"+ - "\1\u010f\1\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\55\0\1\53\1\0\1\34\32\0\1\11\7\233\2\0"+ - "\1\u0110\3\233\1\0\1\233\1\0\1\11\1\0\4\233"+ - "\4\0\10\233\2\0\5\233\12\0\1\11\1\0\24\233"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\3\12\1\u0101\4\0\2\12\1\u0111\5\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\2\12\1\u0112\2\12\12\0"+ - "\1\11\1\0\2\12\1\u0113\2\12\1\u0114\16\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\u0115\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\1\12\1\u0116\2\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\1\u0117\4\12"+ - "\12\0\1\11\1\0\5\12\1\u0118\2\12\1\u0119\13\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\1\12\1\u0100\2\12\1\u011a\17\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\1\12\1\u011b\2\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\2\12\1\u011c"+ - "\1\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\6\12\1\u011d\1\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\1\242\4\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\12\1\u011e\3\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\u011f\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\3\12\1\u0120\1\12\12\0\1\11\1\0\2\12"+ - "\1\u0121\21\12\67\0\1\u0122\72\0\1\u0123\64\0\1\u0124"+ - "\133\0\1\u0125\133\0\1\u0126\72\0\1\u0127\64\0\1\u0128"+ - "\133\0\1\u0129\133\0\1\u012a\72\0\1\u012b\64\0\1\u012c"+ - "\133\0\1\u012d\44\0\3\11\5\u012e\2\0\3\11\1\u012e"+ - "\1\0\1\u012e\1\0\1\11\1\0\1\11\1\u012e\2\11"+ - "\4\0\1\11\2\u012e\2\11\3\u012e\2\0\1\11\2\u012e"+ - "\2\11\12\0\1\11\1\0\12\11\1\u012e\4\11\1\u012e"+ - "\5\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\13\12\1\u012f\10\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12"+ - "\1\u0130\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12"+ - "\1\u0131\2\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\4\12\1\u0132\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\12\1\u0133\3\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\4\12\1\u0134\3\12\2\0\5\12"+ - "\12\0\1\11\1\0\13\12\1\u0135\10\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\15\12\1\u0136\6\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\22\12\1\u0137\1\12"+ - "\2\117\1\120\3\304\1\117\1\304\2\0\4\117\1\0"+ - "\1\304\1\0\1\117\1\0\4\117\4\0\1\122\7\117"+ - "\2\0\3\117\1\122\1\117\12\0\1\117\1\0\27\117"+ - "\3\305\1\117\1\305\2\0\3\117\1\121\1\0\1\305"+ - "\1\0\1\117\1\0\4\117\4\0\5\117\2\121\1\117"+ - "\2\0\5\117\12\0\1\117\1\0\12\117\1\121\11\117"+ - "\3\0\3\305\1\0\1\305\7\0\1\305\72\0\2\117"+ - "\1\125\1\117\2\307\1\117\1\307\2\0\1\117\1\310"+ - "\2\117\1\0\1\307\1\0\1\117\1\0\4\117\4\0"+ - "\1\311\3\117\1\310\3\117\2\0\3\117\1\311\1\117"+ - "\12\0\1\117\1\0\34\117\2\0\4\117\1\0\1\117"+ - "\1\0\1\117\1\0\4\117\4\0\1\u0138\7\117\2\0"+ - "\3\117\1\u0138\1\117\12\0\1\117\1\0\34\117\2\0"+ - "\1\117\1\u0138\2\117\1\0\1\117\1\0\1\117\1\0"+ - "\4\117\4\0\4\117\1\u0138\3\117\2\0\5\117\12\0"+ - "\1\117\1\0\26\117\1\u0139\5\312\2\0\1\117\1\310"+ - "\1\117\1\312\1\0\1\312\1\0\1\117\1\0\1\117"+ - "\1\312\2\117\4\0\1\311\2\312\1\117\1\310\3\312"+ - "\2\0\1\117\2\312\1\311\1\117\12\0\1\117\1\0"+ - "\12\117\1\312\4\117\1\312\6\117\1\u013a\1\117\2\313"+ - "\2\117\2\0\4\117\1\0\1\117\1\0\1\117\1\0"+ - "\4\117\4\0\10\117\2\0\5\117\12\0\1\117\1\0"+ - "\24\117\10\314\1\133\1\0\100\314\23\0\2\u013b\14\0"+ - "\1\u013b\50\0\4\314\2\320\1\314\1\320\1\315\1\0"+ - "\5\314\1\320\76\314\2\132\1\314\1\132\1\315\1\0"+ - "\5\314\1\132\72\314\10\0\1\315\12\0\2\316\14\0"+ - "\1\316\50\0\3\314\5\u013c\1\133\1\0\3\314\1\u013c"+ - "\1\314\1\u013c\4\314\1\u013c\7\314\2\u013c\2\314\3\u013c"+ - "\3\314\2\u013c\30\314\1\u013c\4\314\1\u013c\4\314\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\1\u013d\4\12\12\0"+ - "\1\11\1\0\5\12\1\u013e\16\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\5\12"+ - "\1\u010d\16\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\u013f\4\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\3\12\1\242\1\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\1\u0140\23\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\1\12\1\u0141\2\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\4\12\1\371\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\2\12\1\325"+ - "\2\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\2\12\1\u0142\2\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\12\1\u0143\3\12\12\0\1\11\1\0\24\12\11\154"+ - "\1\0\100\154\23\0\2\u0144\14\0\1\u0144\50\0\3\154"+ - "\5\u0145\2\154\1\335\2\154\1\u0145\1\336\1\u0145\4\154"+ - "\1\u0145\7\154\2\u0145\2\154\3\u0145\3\154\2\u0145\30\154"+ - "\1\u0145\4\154\1\u0145\4\154\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\3\12\1\u0146"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\3\12\1\u0101"+ - "\1\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\1\242"+ - "\23\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12"+ - "\1\356\2\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\1\12\1\343\2\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\2\242\3\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\4\12\1\374\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\3\12\1\u013f\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\1\u0147\3\12\1\247"+ - "\12\0\1\11\1\0\24\12\12\353\1\u0148\3\353\1\0"+ - "\77\353\2\172\1\353\2\172\1\0\1\172\1\u0149\4\172"+ - "\6\353\1\172\6\353\1\172\7\353\1\172\44\353\1\11"+ - "\7\12\2\0\1\115\1\u014a\2\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\3\12\1\u013f\1\12\12\0\1\11\1\0\24\12"+ - "\30\0\1\u014b\61\0\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\2\12\1\u014c\2\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\6\12\1\242\15\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\12\1\u013f\3\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\2\12\1\u014d\2\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\1\u014e\2\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\12\1\u014f\3\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\3\12\1\u0150\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\2\12\1\u0151\5\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\12"+ - "\1\u0152\3\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\1\12\1\u0153\22\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\5\12\1\145\16\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\4\12\1\242"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\1\12\1\u0154\3\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\4\12\1\242\17\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\1\12\1\u0155\3\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\5\12\1\u0156\16\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\1\12\1\242"+ - "\3\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\5\12"+ - "\1\242\16\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\u0157\4\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\2\12\1\374\2\12\12\0"+ - "\1\11\1\0\3\12\1\u013e\20\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\12\1\u0156\3\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\3\12\1\u013f\20\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\1\12\1\u0158\3\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\1\346\4\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\1\12\1\u0101\22\12\1\11\7\12\2\0"+ - "\1\115\1\u0159\2\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\2\12\1\221\21\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\u015a\4\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\u015b\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\3\12\1\325\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\1\12\1\u015c\3\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\1\12\1\u015d"+ - "\2\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\10\11\2\0\1\11\1\u015e\2\11\1\0\1\11"+ - "\1\0\1\11\1\0\4\11\4\0\10\11\2\0\5\11"+ - "\12\0\1\11\1\0\25\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\3\12\1\u015a\1\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\3\12\1\u015f\20\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\10\12"+ - "\1\u0160\13\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\u0161\4\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\6\12\1\u0162\1\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\7\12\1\u0163\14\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\1\12\1\u0164"+ - "\3\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\1\247\2\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12"+ - "\1\u0165\2\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\1\u0166\2\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\3\12\1\u0102\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\2\12\1\u013e\21\12\1\11\7\12\2\0\1\115\1\342"+ - "\2\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\u0167\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\4\12\1\u0168\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\2\12\1\u0169\2\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\6\12\1\242\1\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\63\0\1\u016a\74\0\1\u0122\107\0\1\u016b\134\0"+ - "\1\u016c\105\0\1\u016d\74\0\1\u0126\107\0\1\u016e\134\0"+ - "\1\u016f\105\0\1\u0170\74\0\1\u012a\107\0\1\u0171\134\0"+ - "\1\u0172\22\0\3\11\5\u0173\2\0\3\11\1\u0173\1\0"+ - "\1\u0173\1\0\1\11\1\0\1\11\1\u0173\2\11\4\0"+ - "\1\11\2\u0173\2\11\3\u0173\2\0\1\11\2\u0173\2\11"+ - "\12\0\1\11\1\0\12\11\1\u0173\4\11\1\u0173\5\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\16\12\1\u0174\5\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\2\12\1\u0175\2\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\3\12\1\u0176\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\1\u0177"+ - "\23\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\1\12\1\u0178\2\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\16\12\1\u0179\5\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\1\u0174"+ - "\7\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\5\12\1\u017a\2\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\7\12\1\u017b\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\2\117\1\u0139\5\312\2\0\3\117\1\312\1\0\1\312"+ - "\1\0\1\117\1\0\1\117\1\312\2\117\4\0\1\117"+ - "\2\312\2\117\3\312\2\0\1\117\2\312\2\117\12\0"+ - "\1\117\1\0\12\117\1\312\4\117\1\312\4\117\3\314"+ - "\5\u017c\1\133\1\0\3\314\1\u017c\1\314\1\u017c\4\314"+ - "\1\u017c\7\314\2\u017c\2\314\3\u017c\3\314\2\u017c\30\314"+ - "\1\u017c\4\314\1\u017c\4\314\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\1\u017d\4\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\1\12\1\242\1\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12"+ - "\1\373\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\u0168"+ - "\4\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\3\12\1\u017e\1\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\2\12\1\u017f\2\12\12\0\1\11\1\0\24\12\3\154"+ - "\5\u0180\2\154\1\335\2\154\1\u0180\1\336\1\u0180\4\154"+ - "\1\u0180\7\154\2\u0180\2\154\3\u0180\3\154\2\u0180\30\154"+ - "\1\u0180\4\154\1\u0180\4\154\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\2\12\1\221"+ - "\21\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\2\12\1\u0181\21\12\11\353\1\0"+ - "\103\353\5\u0182\2\353\1\u0148\2\353\1\u0182\1\0\1\u0182"+ - "\4\353\1\u0182\7\353\2\u0182\2\353\3\u0182\3\353\2\u0182"+ - "\30\353\1\u0182\4\353\1\u0182\4\353\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12"+ - "\1\u0183\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\7\12\1\242\14\12\1\11\7\12"+ - "\2\0\1\115\1\u0184\2\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\3\12\1\242\20\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\1\u0101\4\12\12\0"+ - "\1\11\1\0\3\12\1\u0160\20\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\12\1\u0185\3\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\3\12\1\363\1\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\3\12\1\u0160\1\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\6\12\1\u0186\1\12\2\0\5\12\12\0\1\11\1\0"+ - "\2\12\1\u0121\2\12\1\u0187\16\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12"+ - "\1\u013e\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\3\12\1\247\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12"+ - "\1\u0188\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\3\12\1\242\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\1\12"+ - "\1\247\2\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\2\12\1\u0189\21\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\1\12\1\u0121\3\12"+ - "\12\0\1\11\1\0\24\12\1\11\1\12\1\325\5\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\1\u018a\23\12\3\11\5\u018b\2\0"+ - "\3\11\1\u018b\1\0\1\u018b\1\0\1\11\1\0\1\11"+ - "\1\u018b\2\11\4\0\1\11\2\u018b\2\11\3\u018b\2\0"+ - "\1\11\2\u018b\2\11\12\0\1\11\1\0\12\11\1\u018b"+ - "\4\11\1\u018b\5\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\4\12\1\u018c\17\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\2\12\1\u018d\2\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\1\12\1\u018e\3\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\2\12\1\u018f\21\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\2\12\1\u0190\2\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\3\12\1\u0191\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\u0192\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\u0193\4\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\3\12\1\u0194\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\2\12\1\u0195\21\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\1\161\4\12"+ - "\12\0\1\11\1\0\24\12\30\0\1\u0196\62\0\1\u016b"+ - "\1\u0197\5\u016b\1\u0197\2\0\3\u016b\1\0\1\u016b\1\0"+ - "\1\u0197\1\0\4\u016b\1\0\1\u016b\2\u0197\10\u016b\2\u0197"+ - "\5\u016b\1\0\1\u0197\1\0\1\u0197\2\0\6\u0197\24\u016b"+ - "\51\0\1\u0122\11\0\1\u016a\56\0\1\u0198\62\0\1\u016e"+ - "\1\u0199\5\u016e\1\u0199\2\0\3\u016e\1\0\1\u016e\1\0"+ - "\1\u0199\1\0\4\u016e\1\0\1\u016e\2\u0199\10\u016e\2\u0199"+ - "\5\u016e\1\0\1\u0199\1\0\1\u0199\2\0\6\u0199\24\u016e"+ - "\51\0\1\u0126\11\0\1\u016d\56\0\1\u019a\62\0\1\u0171"+ - "\1\u019b\5\u0171\1\u019b\2\0\3\u0171\1\0\1\u0171\1\0"+ - "\1\u019b\1\0\4\u0171\1\0\1\u0171\2\u019b\10\u0171\2\u019b"+ - "\5\u0171\1\0\1\u019b\1\0\1\u019b\2\0\6\u019b\24\u0171"+ - "\51\0\1\u012a\11\0\1\u0170\26\0\3\11\5\u019c\2\0"+ - "\3\11\1\u019c\1\0\1\u019c\1\0\1\11\1\0\1\11"+ - "\1\u019c\2\11\4\0\1\11\2\u019c\2\11\3\u019c\2\0"+ - "\1\11\2\u019c\2\11\12\0\1\11\1\0\12\11\1\u019c"+ - "\4\11\1\u019c\5\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\7\12\1\u019d"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\2\12\1\u019e\21\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\2\12\1\u019f\2\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\2\12\1\u010c"+ - "\2\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\u01a0\4\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\17\12\1\u01a1\4\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\4\12\1\u0135\3\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\20\12\1\u01a2\3\12"+ - "\3\314\5\u01a3\1\133\1\0\3\314\1\u01a3\1\314\1\u01a3"+ - "\4\314\1\u01a3\7\314\2\u01a3\2\314\3\u01a3\3\314\2\u01a3"+ - "\30\314\1\u01a3\4\314\1\u01a3\4\314\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\12\1\u01a4\3\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\3\12\1\362\1\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\1\12\1\u01a5\2\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\3\154\5\u01a6\2\154\1\335"+ - "\2\154\1\u01a6\1\336\1\u01a6\4\154\1\u01a6\7\154\2\u01a6"+ - "\2\154\3\u01a6\3\154\2\u01a6\30\154\1\u01a6\4\154\1\u01a6"+ - "\4\154\1\11\7\12\2\0\1\115\1\12\1\u01a7\1\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\3\353\5\u01a8"+ - "\2\353\1\u0148\2\353\1\u01a8\1\0\1\u01a8\4\353\1\u01a8"+ - "\7\353\2\u01a8\2\353\3\u01a8\3\353\2\u01a8\30\353\1\u01a8"+ - "\4\353\1\u01a8\4\353\1\11\7\12\2\0\1\115\1\12"+ - "\1\u01a9\1\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\3\12\1\247"+ - "\1\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\1\12"+ - "\1\u01aa\2\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\1\12\1\u0187\3\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\2\12\1\242\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\2\12\1\u0159\2\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\1\12\1\242\2\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12"+ - "\1\u01ab\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\3\11\5\u01ac\2\0\3\11\1\u01ac\1\0\1\u01ac"+ - "\1\0\1\11\1\0\1\11\1\u01ac\2\11\4\0\1\11"+ - "\2\u01ac\2\11\3\u01ac\2\0\1\11\2\u01ac\2\11\12\0"+ - "\1\11\1\0\12\11\1\u01ac\4\11\1\u01ac\5\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\2\12\1\242\2\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\u0101\4\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\1\12\1\u01ad\2\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\2\12\1\u01ae\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\3\12\1\u0101\20\12\1\11\7\12\2\0"+ - "\1\115\2\12\1\u01af\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\2\12\1\u01b0\21\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\2\12\1\u01b1\2\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\2\12\1\u01b2\21\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\5\12\1\u013e\16\12\30\0\1\u016b\111\0"+ - "\1\u016e\111\0\1\u0171\61\0\3\11\5\12\2\0\3\11"+ - "\1\12\1\0\1\12\1\0\1\11\1\0\1\11\1\12"+ - "\2\11\4\0\1\11\2\12\2\11\3\12\2\0\1\11"+ - "\2\12\2\11\12\0\1\11\1\0\12\11\1\12\4\11"+ - "\1\12\5\11\1\12\1\u01b3\5\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\1\374\4\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\4\12\1\u01b4\17\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\5\12\1\u0158\16\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\20\12\1\u01b5"+ - "\3\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\20\12\1\u01b6\3\12\3\314\5\132"+ - "\1\133\1\0\3\314\1\132\1\314\1\132\4\314\1\132"+ - "\7\314\2\132\2\314\3\132\3\314\2\132\30\314\1\132"+ - "\4\314\1\132\4\314\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\4\12\1\247\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\1\u01b7\23\12\3\154\5\23\2\154\1\335\2\154"+ - "\1\23\1\336\1\23\4\154\1\23\7\154\2\23\2\154"+ - "\3\23\3\154\2\23\30\154\1\23\4\154\1\23\4\154"+ - "\1\11\7\12\2\0\1\115\1\u0101\2\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\3\353\5\u01b8\2\353\1\u0148"+ - "\2\353\1\u01b8\1\0\1\u01b8\4\353\1\u01b8\7\353\2\u01b8"+ - "\2\353\3\u01b8\3\353\2\u01b8\30\353\1\u01b8\4\353\1\u01b8"+ - "\4\353\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12"+ - "\1\u01ad\2\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\5\12\1\u01b9\16\12\3\11\5\u01ba\2\0\3\11\1\u01ba"+ - "\1\0\1\u01ba\1\0\1\11\1\0\1\11\1\u01ba\2\11"+ - "\4\0\1\11\2\u01ba\2\11\3\u01ba\2\0\1\11\2\u01ba"+ - "\2\11\12\0\1\11\1\0\12\11\1\u01ba\4\11\1\u01ba"+ - "\5\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\1\u015b\4\12"+ - "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115"+ - "\2\12\1\u015c\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\2\12\1\u01bb"+ - "\2\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\2\12\1\u01bc\2\12\12\0\1\11"+ - "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\2\12\1\342"+ - "\5\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\6\12\1\u0101\1\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\1\11\1\12\1\242\5\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\12"+ - "\1\u01bd\3\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\13\12\1\u01be\10\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\23\12\1\u01bf\1\11"+ - "\1\12\1\u01c0\5\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12\3\353\5\172\2\353\1\u0148"+ - "\2\353\1\172\1\0\1\172\4\353\1\172\7\353\2\172"+ - "\2\353\3\172\3\353\2\172\30\353\1\172\4\353\1\172"+ - "\4\353\1\11\7\12\2\0\1\115\1\12\1\u01c1\1\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\3\11\5\233"+ - "\2\0\3\11\1\233\1\0\1\233\1\0\1\11\1\0"+ - "\1\11\1\233\2\11\4\0\1\11\2\233\2\11\3\233"+ - "\2\0\1\11\2\233\2\11\12\0\1\11\1\0\12\11"+ - "\1\233\4\11\1\233\5\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\1\12\1\u0101\2\12"+ - "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\1\12\1\247\1\12\1\0"+ - "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0"+ - "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12"+ - "\4\0\10\12\2\0\1\u01c2\4\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\15\12\1\u01c3\6\12\1\11\1\12"+ - "\1\u01c4\5\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\3\12\1\u01c5\4\0"+ - "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11"+ - "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11"+ - "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11"+ - "\1\0\2\12\1\u01c6\21\12\1\11\7\12\2\0\1\115"+ - "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0"+ - "\10\12\2\0\1\12\1\u01c7\3\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\16\12\1\u019d\5\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\12\12\1\u01c8\11\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\12\1\u01c9\3\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0"+ - "\1\11\1\0\11\12\1\u015b\12\12\1\11\7\12\2\0"+ - "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12"+ - "\1\374\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12"+ - "\1\0\1\11\1\0\4\12\4\0\4\12\1\u0134\3\12"+ - "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12"+ - "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0"+ - "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0"+ - "\10\12\1\u01ca\13\12\1\11\7\12\2\0\1\115\3\12"+ - "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12"+ - "\2\0\1\12\1\u01cb\3\12\12\0\1\11\1\0\24\12"+ - "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0"+ - "\1\11\1\0\3\12\1\213\4\0\10\12\2\0\5\12"+ - "\12\0\1\11\1\0\24\12"; - - private static int [] zzUnpackTrans() { - int [] result = new int[31154]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\10\0\6\1\1\11\4\1\1\11\5\1\1\11\14\1"+ - "\2\11\2\1\1\11\11\1\1\11\4\1\1\11\5\1"+ - "\1\11\3\1\1\11\3\1\1\11\1\1\1\11\1\1"+ - "\1\11\17\1\1\0\36\1\1\11\3\1\1\11\31\1"+ - "\1\0\21\1\3\0\1\11\4\0\1\11\1\0\2\11"+ - "\4\0\13\1\1\0\7\1\1\11\21\1\1\11\16\1"+ - "\1\11\62\1\14\0\15\1\1\11\10\1\1\11\6\1"+ - "\1\11\36\1\1\0\1\1\2\0\1\1\2\0\1\1"+ - "\1\0\43\1\6\0\60\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[459]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int WYSIWYG_STRING_1 = 6; + public static final int EOL_COMMENT = 4; + public static final int NESTABLE_MLC = 3; + public static final int DOCCOMMENT = 2; + public static final int YYINITIAL = 0; + public static final int MLC = 1; + public static final int WYSIWYG_STRING_2 = 7; + public static final int EOL_DOCCOMMENT = 5; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\22\1\11\1\0\1\22\1\20\22\0\1\22\1\60\1\16" + + "\1\21\1\1\1\60\1\62\1\10\2\65\1\31\1\32\1\53\1\43" + "\1\44\1\30\1\4\1\5\2\17\4\7\2\3\1\63\1\53\1\54" + + "\1\55\1\57\1\61\1\64\1\6\1\34\1\105\1\40\1\42\1\100" + "\2\1\1\101\2\1\1\33\1\102\1\104\1\103\1\107\1\1\1\110" + + "\1\1\1\106\1\37\2\1\1\36\1\111\1\1\1\65\1\12\1\65" + "\1\56\1\2\1\27\1\47\1\35\1\24\1\41\1\46\1\15\1\71" + + "\1\66\1\70\1\1\1\75\1\50\1\72\1\14\1\73\1\67\1\1" + "\1\26\1\51\1\45\1\13\1\76\1\23\1\25\1\74\1\77\1\52" + + "\1\56\1\52\1\61\uff81\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 = "\10\0\1\1\2\2\2\3\1\4\1\5\3\2\1\6" + "\1\1\1\7\4\2\1\10\3\11\2\2\1\11\6\2" + + "\1\12\1\2\4\11\1\13\6\2\1\14\1\15\4\14" + "\1\16\5\14\1\17\3\14\1\20\3\14\1\21\1\22" + + "\1\23\1\24\1\25\1\1\1\2\2\26\1\27\1\3" + "\1\26\1\27\2\26\1\30\2\26\1\4\1\31\1\0" + "\1\4\16\2\2\6\1\22\13\2\1\6\1\32\1\2" + + "\1\33\1\34\1\35\4\2\1\36\24\2\1\0\1\11" + "\1\13\4\2\3\36\10\2\3\0\1\37\4\0\1\40" + "\1\0\1\41\1\42\4\0\1\1\10\2\1\3\1\27" + + "\1\0\4\30\1\3\1\4\1\43\1\31\2\4\1\31" + "\1\4\11\2\1\36\1\6\1\44\1\6\1\22\12\2" + "\2\6\2\2\1\45\1\46\37\2\1\1\6\2\1\47" + + "\12\2\14\0\1\1\11\2\1\30\2\26\1\43\1\4" + "\2\2\1\47\4\2\1\44\1\6\2\2\2\6\1\2" + "\1\50\6\2\1\51\13\2\1\1\13\2\1\0\1\52" + + "\2\0\1\53\2\0\1\54\1\0\1\1\10\2\1\4" + "\1\2\1\36\1\2\1\6\1\2\1\6\10\2\1\1" + "\12\2\6\0\1\1\6\2\1\4\2\2\1\6\1\2" + + "\1\6\1\55\2\2\1\1\12\2\1\36\1\6\1\2" + "\1\1\21\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[459]; + 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\112\0\224\0\336\0\u0128\0\u0172\0\u01bc\0\u0206" + + "\0\u0250\0\u029a\0\u02e4\0\u032e\0\u0378\0\u03c2\0\u040c\0\u0456" + + "\0\u04a0\0\u04ea\0\u0534\0\u040c\0\u057e\0\u05c8\0\u0612\0\u065c" + + "\0\u06a6\0\u040c\0\u06f0\0\u073a\0\u0784\0\u07ce\0\u0818\0\u0862" + + "\0\u08ac\0\u08f6\0\u0940\0\u098a\0\u09d4\0\u0a1e\0\u040c\0\u040c" + + "\0\u0a68\0\u0ab2\0\u040c\0\u0afc\0\u0b46\0\u0b90\0\u0bda\0\u0c24" + + "\0\u0c6e\0\u0cb8\0\u0d02\0\u0d4c\0\u040c\0\u0d96\0\u0de0\0\u0e2a" + + "\0\u0e74\0\u040c\0\u0ebe\0\u0f08\0\u0f52\0\u0f9c\0\u0fe6\0\u040c" + + "\0\u1030\0\u107a\0\u10c4\0\u040c\0\u110e\0\u1158\0\u11a2\0\u040c" + + "\0\u11ec\0\u040c\0\u1236\0\u040c\0\u1280\0\u12ca\0\u1314\0\u135e" + + "\0\u1314\0\u1314\0\u13a8\0\u13f2\0\u143c\0\u1486\0\u14d0\0\u151a" + + "\0\u1564\0\u15ae\0\u15f8\0\u1642\0\u168c\0\u16d6\0\u1720\0\u176a" + + "\0\u17b4\0\u17fe\0\u1848\0\u1892\0\u18dc\0\u1926\0\u1970\0\u19ba" + + "\0\u1a04\0\u1a4e\0\u1a98\0\u1ae2\0\u1b2c\0\u1b76\0\u1bc0\0\u1c0a" + + "\0\u1c54\0\u1c9e\0\u1ce8\0\u1d32\0\u1d7c\0\u1dc6\0\u1e10\0\u1e5a" + + "\0\u1ea4\0\u1eee\0\u040c\0\u1f38\0\u1f82\0\u1fcc\0\u040c\0\u2016" + + "\0\u2060\0\u20aa\0\u20f4\0\u213e\0\u2188\0\u21d2\0\u221c\0\u2266" + + "\0\u22b0\0\u22fa\0\u2344\0\u238e\0\u23d8\0\u2422\0\u246c\0\u24b6" + + "\0\u2500\0\u254a\0\u2594\0\u25de\0\u2628\0\u2672\0\u26bc\0\u2706" + + "\0\u073a\0\u2750\0\u279a\0\u27e4\0\u282e\0\u2878\0\u28c2\0\u290c" + + "\0\u1ce8\0\u029a\0\u2956\0\u29a0\0\u29ea\0\u2a34\0\u2a7e\0\u2ac8" + + "\0\u2b12\0\u2b5c\0\u2ba6\0\u2bf0\0\u2c3a\0\u040c\0\u2c84\0\u2cce" + + "\0\u2d18\0\u2d62\0\u040c\0\u2dac\0\u040c\0\u040c\0\u2df6\0\u2e40" + + "\0\u2e8a\0\u2ed4\0\u2f1e\0\u2f68\0\u2fb2\0\u2ffc\0\u3046\0\u3090" + + "\0\u30da\0\u3124\0\u316e\0\u31b8\0\u3202\0\u324c\0\u3296\0\u32e0" + + "\0\u332a\0\u3374\0\u33be\0\u3408\0\u3452\0\u040c\0\u349c\0\u34e6" + + "\0\u3530\0\u357a\0\u35c4\0\u360e\0\u3658\0\u36a2\0\u36ec\0\u3736" + + "\0\u3780\0\u37ca\0\u3814\0\u385e\0\u38a8\0\u38f2\0\u393c\0\u040c" + + "\0\u3986\0\u39d0\0\u3a1a\0\u3a64\0\u213e\0\u3aae\0\u3af8\0\u3b42" + + "\0\u3b8c\0\u3bd6\0\u3c20\0\u3c6a\0\u3cb4\0\u3cfe\0\u040c\0\u3d48" + + "\0\u3d92\0\u3ddc\0\u3e26\0\u3e70\0\u3eba\0\u3f04\0\u3f4e\0\u3f98" + + "\0\u3fe2\0\u402c\0\u4076\0\u40c0\0\u410a\0\u4154\0\u419e\0\u41e8" + + "\0\u4232\0\u427c\0\u42c6\0\u4310\0\u435a\0\u43a4\0\u43ee\0\u4438" + + "\0\u4482\0\u44cc\0\u4516\0\u4560\0\u45aa\0\u45f4\0\u463e\0\u4688" + + "\0\u46d2\0\u471c\0\u4766\0\u47b0\0\u47fa\0\u4844\0\u488e\0\u48d8" + + "\0\u4922\0\u496c\0\u49b6\0\u4a00\0\u4a4a\0\u4a94\0\u4ade\0\u4b28" + + "\0\u4b72\0\u4bbc\0\u4c06\0\u4c50\0\u4c9a\0\u4ce4\0\u4d2e\0\u4d78" + + "\0\u4dc2\0\u4e0c\0\u4e56\0\u4ea0\0\u4eea\0\u4f34\0\u4f7e\0\u4fc8" + + "\0\u5012\0\u505c\0\u50a6\0\u50f0\0\u513a\0\u5184\0\u51ce\0\u1314" + + "\0\u5218\0\u33be\0\u040c\0\u5262\0\u52ac\0\u52f6\0\u029a\0\u5340" + + "\0\u538a\0\u53d4\0\u541e\0\u040c\0\u5468\0\u54b2\0\u54fc\0\u5546" + + "\0\u5590\0\u55da\0\u040c\0\u5624\0\u566e\0\u56b8\0\u5702\0\u574c" + + "\0\u5796\0\u029a\0\u57e0\0\u582a\0\u5874\0\u58be\0\u5908\0\u5952" + + "\0\u599c\0\u59e6\0\u5a30\0\u5a7a\0\u5ac4\0\u5b0e\0\u5b58\0\u5ba2" + + "\0\u5bec\0\u5c36\0\u5c80\0\u5cca\0\u5d14\0\u5d5e\0\u5da8\0\u5df2" + + "\0\u5e3c\0\u5e86\0\u5ed0\0\u5f1a\0\u5f64\0\u5fae\0\u5ff8\0\u6042" + + "\0\u608c\0\u60d6\0\u6120\0\u616a\0\u61b4\0\u61fe\0\u6248\0\u6292" + + "\0\u62dc\0\u6326\0\u6370\0\u63ba\0\u6404\0\u644e\0\u6498\0\u64e2" + + "\0\u652c\0\u6576\0\u65c0\0\u660a\0\u6654\0\u669e\0\u66e8\0\u6732" + + "\0\u677c\0\u67c6\0\u6810\0\u685a\0\u68a4\0\u68ee\0\u6938\0\u6982" + + "\0\u69cc\0\u6a16\0\u6a60\0\u6aaa\0\u6af4\0\u6b3e\0\u5ed0\0\u6b88" + + "\0\u5fae\0\u6bd2\0\u608c\0\u6c1c\0\u6c66\0\u6cb0\0\u6cfa\0\u6d44" + + "\0\u6d8e\0\u6dd8\0\u6e22\0\u6e6c\0\u6eb6\0\u6f00\0\u6f4a\0\u6f94" + + "\0\u029a\0\u6fde\0\u7028\0\u7072\0\u70bc\0\u7106\0\u7150\0\u719a" + + "\0\u71e4\0\u722e\0\u7278\0\u72c2\0\u730c\0\u7356\0\u73a0\0\u73ea" + + "\0\u7434\0\u747e\0\u74c8\0\u7512\0\u755c\0\u75a6\0\u75f0\0\u763a" + + "\0\u7684\0\u76ce\0\u7718\0\u7762\0\u77ac\0\u77f6\0\u7840\0\u788a" + "\0\u78d4\0\u791e\0\u7968"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[459]; + 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 = "\1\11\1\12\1\13\1\14\1\15\1\14\1\12\1\14" + "\1\16\1\17\1\11\1\20\1\21\1\22\1\23\1\14" + + "\1\24\1\11\1\25\1\26\1\27\1\30\1\31\1\32" + "\1\33\1\34\1\35\2\12\1\36\3\12\1\37\1\12" + + "\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47" + "\1\50\1\51\2\34\1\52\1\34\1\53\1\54\1\53" + + "\1\55\1\47\1\12\1\56\1\57\1\60\1\61\1\62" + "\2\12\1\63\13\12\11\64\1\65\3\64\1\66\5\64" + + "\1\67\5\64\1\70\34\64\1\71\34\64\1\72\3\64" + "\1\73\5\64\1\74\5\64\1\75\34\64\1\76\23\64" + + "\11\77\1\100\3\77\1\66\5\77\1\67\4\77\1\101" + "\1\77\1\102\33\77\1\71\23\77\11\103\1\104\3\103" + + "\1\105\5\103\1\106\42\103\1\107\34\103\1\110\3\103" + "\1\73\5\103\1\74\42\103\1\76\23\103\16\111\1\112" + + "\73\111\27\113\1\114\62\113\10\11\2\0\4\11\1\0" + "\1\11\1\0\1\11\1\0\4\11\4\0\10\11\2\0" + + "\5\11\12\0\1\11\1\0\25\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + "\1\12\1\116\5\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\24\12\2\117\1\120\3\14\1\117" + + "\1\14\2\0\3\117\1\121\1\0\1\14\1\0\1\117" + "\1\0\4\117\4\0\1\122\4\117\2\121\1\123\1\0" + + "\1\124\1\117\1\123\1\117\1\122\1\117\12\0\1\117" + "\1\0\12\117\1\121\13\117\1\125\1\126\2\127\1\117" + + "\1\127\2\0\3\117\1\121\1\0\1\127\1\0\1\117" + "\1\0\2\117\1\130\1\117\4\0\1\122\2\131\1\130" + + "\1\117\2\121\1\123\1\0\1\124\1\117\1\123\1\117" + "\1\122\1\117\12\0\1\117\1\0\12\117\1\121\11\117" + + "\10\132\1\133\1\134\1\135\77\132\112\0\1\11\7\12" + "\2\0\1\115\1\12\1\136\1\12\1\0\1\12\1\0" + + "\1\11\1\0\1\12\1\137\2\12\4\0\2\12\1\140" + "\5\12\2\0\3\12\1\141\1\142\12\0\1\11\1\0" + + "\2\12\1\143\21\12\1\11\7\12\2\0\1\115\1\144" + "\2\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\1\12\1\145\3\12\12\0\1\11\1\0" + "\5\12\1\146\16\12\1\11\7\12\2\0\1\115\1\147" + + "\2\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\10\12\2\0\2\12\1\150\1\151\1\12\12\0\1\11" + + "\1\0\2\12\1\152\2\12\1\153\16\12\11\23\1\154" + "\1\155\3\23\1\156\73\23\22\0\1\25\67\0\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\1\12\1\157\2\12\4\0\10\12\2\0\4\12" + + "\1\160\12\0\1\11\1\0\1\161\1\12\1\162\21\12" + "\1\11\7\12\2\0\1\115\2\12\1\163\1\0\1\12" + + "\1\0\1\11\1\0\3\12\1\164\4\0\6\12\1\165" + "\1\12\2\0\1\12\1\143\1\166\1\167\1\12\12\0" + + "\1\11\1\0\1\170\4\12\1\171\16\12\1\11\7\12" + "\2\0\1\115\3\12\1\172\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\173\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\12" + "\1\174\3\12\12\0\1\11\1\0\24\12\30\0\1\175" + + "\1\176\1\177\22\0\1\53\111\0\1\53\66\0\1\53" + "\22\0\1\53\34\0\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\3\12\1\200\4\0" + "\10\12\2\0\5\12\12\0\1\11\1\0\5\12\1\201" + + "\1\202\15\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\1\12\1\157\2\12\4\0" + + "\10\12\2\0\1\12\1\203\2\12\1\160\12\0\1\11" + "\1\0\5\12\1\204\16\12\43\0\1\53\11\0\1\53" + + "\37\0\3\124\1\0\1\124\7\0\1\124\72\0\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\3\12\1\205\4\0\10\12\2\0\1\12\1\206" + "\3\12\12\0\1\11\1\0\1\207\5\12\1\210\15\12" + + "\1\11\7\12\2\0\1\115\1\12\1\211\1\12\1\0" + "\1\12\1\0\1\11\1\0\2\12\1\212\1\12\4\0" + + "\10\12\2\0\3\12\1\213\1\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\1\214\2\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\2\12\1\215" + "\5\12\2\0\3\12\1\216\1\217\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12" + + "\1\220\2\12\12\0\1\11\1\0\5\12\1\221\16\12" + "\1\11\7\12\2\0\1\115\1\222\2\12\1\0\1\12" + + "\1\0\1\11\1\0\1\223\1\224\2\12\4\0\10\12" + "\2\0\1\225\4\12\12\0\1\11\1\0\1\226\1\12" + + "\1\227\3\12\1\230\15\12\54\0\1\231\1\53\111\0" + "\1\53\1\0\1\232\107\0\1\53\4\0\1\53\27\0" + + "\1\11\2\233\3\11\1\233\1\11\2\0\1\11\3\233" + "\1\0\1\11\1\0\1\11\1\0\4\233\4\0\10\233" + + "\2\0\5\233\12\0\1\11\1\0\24\233\1\11\7\12" + "\2\0\1\115\1\234\2\12\1\0\1\12\1\0\1\11" + + "\1\0\3\12\1\235\4\0\10\12\2\0\1\236\1\12" + "\1\237\2\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\1\12\1\240\1\241\1\0\1\12\1\0" + "\1\11\1\0\3\12\1\164\4\0\6\12\1\165\1\12" + + "\2\0\4\12\1\242\12\0\1\11\1\0\4\12\1\243" + "\17\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\5\12\1\214\16\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\2\12\1\244\2\12\12\0" + + "\1\11\1\0\2\12\1\245\2\12\1\246\16\12\1\11" + "\7\12\2\0\1\115\1\247\2\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\10\12\1\250\13\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\1\12\1\251\3\12\12\0\1\11" + + "\1\0\5\12\1\252\16\12\11\64\1\0\3\64\1\0" + "\5\64\1\0\5\64\1\0\34\64\1\0\23\64\45\0" + + "\1\253\22\0\1\254\44\0\1\255\116\0\1\256\126\0" + "\1\257\111\0\1\260\22\0\1\261\44\0\1\262\116\0" + + "\1\263\126\0\1\264\44\0\11\77\1\0\3\77\1\0" + "\5\77\1\0\4\77\1\0\1\77\1\0\33\77\1\0" + + "\23\77\32\0\1\265\107\0\1\266\61\0\11\103\1\0" + "\3\103\1\0\5\103\1\0\42\103\1\0\23\103\45\0" + + "\1\267\22\0\1\270\44\0\1\271\133\0\1\272\44\0" + "\16\111\1\0\73\111\27\113\1\0\62\113\10\11\2\0" + + "\1\11\1\273\2\11\1\0\1\11\1\0\1\11\1\0" + "\4\11\4\0\10\11\2\0\5\11\12\0\1\11\1\0" + + "\25\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\1\274\7\12\2\0\1\275" + + "\4\12\12\0\1\11\1\0\1\12\1\276\1\12\1\277" + "\4\12\1\300\1\12\1\301\1\12\1\302\4\12\1\303" + + "\2\12\10\117\2\0\4\117\1\0\1\117\1\0\1\117" + "\1\0\4\117\4\0\10\117\2\0\5\117\12\0\1\117" + + "\1\0\26\117\1\120\3\304\1\117\1\304\2\0\4\117" + "\1\0\1\304\1\0\1\117\1\0\4\117\4\0\10\117" + + "\2\0\5\117\12\0\1\117\1\0\27\117\3\305\1\117" + "\1\305\2\0\4\117\1\0\1\305\1\0\1\117\1\0" + + "\4\117\3\0\1\306\10\117\1\306\1\0\5\117\12\0" + "\1\117\1\0\27\117\3\124\1\117\1\124\2\0\3\117" + + "\1\121\1\0\1\124\1\0\1\117\1\0\4\117\4\0" + "\5\117\2\121\1\123\2\0\1\117\1\123\3\117\12\0" + + "\1\117\1\0\12\117\1\121\13\117\1\125\1\117\2\307" + "\1\117\1\307\2\0\4\117\1\0\1\307\1\0\1\117" + + "\1\0\4\117\4\0\10\117\2\0\5\117\12\0\1\117" + "\1\0\27\117\3\126\1\117\1\126\2\0\3\117\1\121" + + "\1\0\1\126\1\0\1\117\1\0\4\117\4\0\5\117" + "\2\121\1\123\1\0\1\124\1\117\1\123\3\117\12\0" + + "\1\117\1\0\12\117\1\121\13\117\1\125\1\126\2\127" + "\1\117\1\127\2\0\1\117\1\310\1\117\1\121\1\0" + + "\1\127\1\0\1\117\1\0\4\117\4\0\1\311\3\117" + "\1\310\2\121\1\123\1\0\1\124\1\117\1\123\1\117" + + "\1\311\1\117\12\0\1\117\1\0\12\117\1\121\14\117" + "\5\312\2\0\3\117\1\312\1\0\1\312\1\0\1\117" + + "\1\0\1\117\1\312\2\117\4\0\1\117\2\312\2\117" + "\3\312\2\0\1\117\2\312\2\117\12\0\1\117\1\0" + + "\12\117\1\312\4\117\1\312\10\117\2\313\2\117\2\0" + "\4\117\1\0\1\117\1\0\1\117\1\0\4\117\4\0" + + "\10\117\2\0\5\117\12\0\1\117\1\0\24\117\10\314" + "\1\315\1\0\100\314\23\0\2\316\14\0\1\316\60\0" + + "\1\315\101\0\4\314\2\317\1\314\1\320\1\321\1\0" + "\1\132\1\322\3\132\1\317\6\314\1\132\6\314\1\132" + + "\7\314\1\132\44\314\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\5\12\12\0\1\11\1\0\2\12\1\323\21\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\1\12\1\143" + "\3\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\6\12" + + "\1\202\15\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\5\12\1\221\16\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\1\324\23\12\1\11\7\12\2\0\1\115\1\12" + + "\1\325\1\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\3\12\1\326" + + "\1\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\1\242" + + "\3\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\327" + "\4\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\1\12\1\330\1\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\3\12\1\331\1\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\5\12\1\332\16\12\1\11\7\12\2\0\1\115" + + "\1\12\1\333\1\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\3\12\1\334\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\24\12\12\154\1\335\3\154" + "\1\336\77\154\2\23\1\154\2\23\1\0\1\23\1\337" + + "\4\23\6\154\1\23\6\154\1\23\7\154\1\23\44\154" + "\23\0\2\340\14\0\1\340\50\0\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\1\170" + + "\23\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\341" + + "\4\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\2\12" + "\1\342\21\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\1\343\4\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\3\12\1\151\1\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\1\12\1\344\3\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\5\12\1\345\16\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\1\346\3\12\1\347\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\2\12\1\350\2\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\2\12\1\351\2\12" + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + + "\1\12\1\352\1\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\11\172\1\353\1\354\3\172\1\156\73\172\1\11" + "\7\12\2\0\1\115\2\12\1\242\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\1\355\1\12" + "\1\356\2\12\12\0\1\11\1\0\24\12\30\0\1\357" + + "\112\0\1\360\60\0\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\1\12\1\361\3\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\6\12\1\362\1\12\2\0" + "\5\12\12\0\1\11\1\0\5\12\1\356\16\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\1\363\4\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\2\12" + "\1\364\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\2\12\1\365\5\12\2\0\3\12\1\366\1\12\12\0" + "\1\11\1\0\1\12\1\367\22\12\1\11\7\12\2\0" + + "\1\115\1\370\2\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\1\371\2\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\6\12\1\242\15\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\4\12\1\372\17\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\3\12\1\373" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\2\12" + + "\1\374\21\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\1\12\1\375\22\12\1\11" + "\7\12\2\0\1\115\1\376\2\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\1\377\4\12\12\0\1\11\1\0\1\12\1\u0100" + + "\22\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\4\12" + + "\1\u0101\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\1\u0102\4\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\4\12" + "\1\u0103\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\2\12" + + "\1\u0104\21\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\4\12\1\u0105\12\0\1\11\1\0\4\12\1\242\17\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\11\12\1\362\12\12\1\11\7\12\2\0" + + "\1\115\1\12\1\u0106\1\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\1\12\1\u0107\22\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\2\12\1\u0108\21\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\10\12\2\0\5\12\12\0\1\11\1\0\5\12\1\u0109" + + "\16\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\3\12\1\u010a\4\0\10\12\2\0" + + "\2\12\1\u010b\2\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\2\12\1\u010c\2\12" + "\12\0\1\11\1\0\5\12\1\u010d\16\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\11\12\1\u010e\12\12\1\11\7\12\2\0\1\115\1\12" + "\1\u010f\1\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + "\55\0\1\53\1\0\1\34\32\0\1\11\7\233\2\0" + + "\1\u0110\3\233\1\0\1\233\1\0\1\11\1\0\4\233" + "\4\0\10\233\2\0\5\233\12\0\1\11\1\0\24\233" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\3\12\1\u0101\4\0\2\12\1\u0111\5\12" + + "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\2\12\1\u0112\2\12\12\0" + "\1\11\1\0\2\12\1\u0113\2\12\1\u0114\16\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\3\12\1\u0115\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\1\12\1\u0116\2\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\1\u0117\4\12" + "\12\0\1\11\1\0\5\12\1\u0118\2\12\1\u0119\13\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\1\12\1\u0100\2\12\1\u011a\17\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\1\12\1\u011b\2\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\2\12\1\u011c" + "\1\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\6\12\1\u011d\1\12" + + "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\1\242\4\12\12\0\1\11" + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\1\12\1\u011e\3\12\12\0\1\11\1\0\24\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\3\12\1\u011f\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\3\12\1\u0120\1\12\12\0\1\11\1\0\2\12" + "\1\u0121\21\12\67\0\1\u0122\72\0\1\u0123\64\0\1\u0124" + + "\133\0\1\u0125\133\0\1\u0126\72\0\1\u0127\64\0\1\u0128" + "\133\0\1\u0129\133\0\1\u012a\72\0\1\u012b\64\0\1\u012c" + + "\133\0\1\u012d\44\0\3\11\5\u012e\2\0\3\11\1\u012e" + "\1\0\1\u012e\1\0\1\11\1\0\1\11\1\u012e\2\11" + + "\4\0\1\11\2\u012e\2\11\3\u012e\2\0\1\11\2\u012e" + "\2\11\12\0\1\11\1\0\12\11\1\u012e\4\11\1\u012e" + + "\5\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\13\12\1\u012f\10\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12" + + "\1\u0130\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12" + "\1\u0131\2\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\4\12\1\u0132\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\1\12\1\u0133\3\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\4\12\1\u0134\3\12\2\0\5\12" + "\12\0\1\11\1\0\13\12\1\u0135\10\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\15\12\1\u0136\6\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\5\12\12\0\1\11\1\0\22\12\1\u0137\1\12" + "\2\117\1\120\3\304\1\117\1\304\2\0\4\117\1\0" + + "\1\304\1\0\1\117\1\0\4\117\4\0\1\122\7\117" + "\2\0\3\117\1\122\1\117\12\0\1\117\1\0\27\117" + + "\3\305\1\117\1\305\2\0\3\117\1\121\1\0\1\305" + "\1\0\1\117\1\0\4\117\4\0\5\117\2\121\1\117" + + "\2\0\5\117\12\0\1\117\1\0\12\117\1\121\11\117" + "\3\0\3\305\1\0\1\305\7\0\1\305\72\0\2\117" + + "\1\125\1\117\2\307\1\117\1\307\2\0\1\117\1\310" + "\2\117\1\0\1\307\1\0\1\117\1\0\4\117\4\0" + + "\1\311\3\117\1\310\3\117\2\0\3\117\1\311\1\117" + "\12\0\1\117\1\0\34\117\2\0\4\117\1\0\1\117" + + "\1\0\1\117\1\0\4\117\4\0\1\u0138\7\117\2\0" + "\3\117\1\u0138\1\117\12\0\1\117\1\0\34\117\2\0" + + "\1\117\1\u0138\2\117\1\0\1\117\1\0\1\117\1\0" + "\4\117\4\0\4\117\1\u0138\3\117\2\0\5\117\12\0" + + "\1\117\1\0\26\117\1\u0139\5\312\2\0\1\117\1\310" + "\1\117\1\312\1\0\1\312\1\0\1\117\1\0\1\117" + + "\1\312\2\117\4\0\1\311\2\312\1\117\1\310\3\312" + "\2\0\1\117\2\312\1\311\1\117\12\0\1\117\1\0" + + "\12\117\1\312\4\117\1\312\6\117\1\u013a\1\117\2\313" + "\2\117\2\0\4\117\1\0\1\117\1\0\1\117\1\0" + + "\4\117\4\0\10\117\2\0\5\117\12\0\1\117\1\0" + "\24\117\10\314\1\133\1\0\100\314\23\0\2\u013b\14\0" + + "\1\u013b\50\0\4\314\2\320\1\314\1\320\1\315\1\0" + "\5\314\1\320\76\314\2\132\1\314\1\132\1\315\1\0" + + "\5\314\1\132\72\314\10\0\1\315\12\0\2\316\14\0" + "\1\316\50\0\3\314\5\u013c\1\133\1\0\3\314\1\u013c" + + "\1\314\1\u013c\4\314\1\u013c\7\314\2\u013c\2\314\3\u013c" + "\3\314\2\u013c\30\314\1\u013c\4\314\1\u013c\4\314\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\1\u013d\4\12\12\0" + + "\1\11\1\0\5\12\1\u013e\16\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\5\12" + "\1\u010d\16\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\1\u013f\4\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\3\12\1\242\1\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\5\12\12\0\1\11\1\0\1\u0140\23\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\1\12\1\u0141\2\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\10\12\2\0\4\12\1\371\12\0\1\11\1\0\24\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\2\12\1\325" + + "\2\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\2\12\1\u0142\2\12\12\0\1\11" + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\1\12\1\u0143\3\12\12\0\1\11\1\0\24\12\11\154" + + "\1\0\100\154\23\0\2\u0144\14\0\1\u0144\50\0\3\154" + "\5\u0145\2\154\1\335\2\154\1\u0145\1\336\1\u0145\4\154" + + "\1\u0145\7\154\2\u0145\2\154\3\u0145\3\154\2\u0145\30\154" + "\1\u0145\4\154\1\u0145\4\154\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\3\12\1\u0146" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\3\12\1\u0101" + + "\1\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\1\242" + "\23\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12" + "\1\356\2\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\1\12\1\343\2\12\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\2\242\3\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\4\12\1\374\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\3\12\1\u013f\4\0" + "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\1\u0147\3\12\1\247" + + "\12\0\1\11\1\0\24\12\12\353\1\u0148\3\353\1\0" + "\77\353\2\172\1\353\2\172\1\0\1\172\1\u0149\4\172" + + "\6\353\1\172\6\353\1\172\7\353\1\172\44\353\1\11" + "\7\12\2\0\1\115\1\u014a\2\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\3\12\1\u013f\1\12\12\0\1\11\1\0\24\12" + + "\30\0\1\u014b\61\0\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\2\12\1\u014c\2\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\6\12\1\242\15\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\1\12\1\u013f\3\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\2\12\1\u014d\2\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\1\u014e\2\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\1\12\1\u014f\3\12\12\0\1\11\1\0\24\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\3\12\1\u0150\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\2\12\1\u0151\5\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\12" + "\1\u0152\3\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\1\12\1\u0153\22\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\5\12\12\0\1\11\1\0\5\12\1\145\16\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\4\12\1\242" + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\10\12\2\0\1\12\1\u0154\3\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\4\12\1\242\17\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\1\12\1\u0155\3\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\5\12\1\u0156\16\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\1\12\1\242" + + "\3\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\5\12" + "\1\242\16\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\1\u0157\4\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\2\12\1\374\2\12\12\0" + + "\1\11\1\0\3\12\1\u013e\20\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\1\12\1\u0156\3\12\12\0\1\11" + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\5\12\12\0\1\11\1\0\3\12\1\u013f\20\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\1\12\1\u0158\3\12" + + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\1\346\4\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\1\12\1\u0101\22\12\1\11\7\12\2\0" + + "\1\115\1\u0159\2\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\2\12\1\221\21\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\1\u015a\4\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\3\12\1\u015b\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\3\12\1\325\4\0" + "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\1\12\1\u015c\3\12" + + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\1\12\1\u015d" + + "\2\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\10\11\2\0\1\11\1\u015e\2\11\1\0\1\11" + + "\1\0\1\11\1\0\4\11\4\0\10\11\2\0\5\11" + "\12\0\1\11\1\0\25\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\3\12\1\u015a\1\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\3\12\1\u015f\20\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\10\12" + + "\1\u0160\13\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\1\u0161\4\12\12\0\1\11\1\0\24\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\6\12\1\u0162\1\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\7\12\1\u0163\14\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\1\12\1\u0164" + + "\3\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\1\247\2\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12" + "\1\u0165\2\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\1\u0166\2\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\3\12\1\u0102\4\0\10\12" + + "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\2\12\1\u013e\21\12\1\11\7\12\2\0\1\115\1\342" + "\2\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\3\12\1\u0167\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\4\12\1\u0168\12\0\1\11\1\0\24\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\2\12\1\u0169\2\12" + + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\6\12\1\242\1\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\63\0\1\u016a\74\0\1\u0122\107\0\1\u016b\134\0" + + "\1\u016c\105\0\1\u016d\74\0\1\u0126\107\0\1\u016e\134\0" + "\1\u016f\105\0\1\u0170\74\0\1\u012a\107\0\1\u0171\134\0" + + "\1\u0172\22\0\3\11\5\u0173\2\0\3\11\1\u0173\1\0" + "\1\u0173\1\0\1\11\1\0\1\11\1\u0173\2\11\4\0" + + "\1\11\2\u0173\2\11\3\u0173\2\0\1\11\2\u0173\2\11" + "\12\0\1\11\1\0\12\11\1\u0173\4\11\1\u0173\5\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + + "\1\0\16\12\1\u0174\5\12\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\2\12\1\u0175\2\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\3\12\1\u0176\4\0\10\12\2\0" + "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\1\u0177" + + "\23\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\1\12\1\u0178\2\12\4\0\10\12" + + "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\16\12\1\u0179\5\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\1\u0174" + + "\7\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\5\12\1\u017a\2\12\2\0\5\12" + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\7\12\1\u017b\2\0\5\12\12\0\1\11\1\0\24\12" + + "\2\117\1\u0139\5\312\2\0\3\117\1\312\1\0\1\312" + "\1\0\1\117\1\0\1\117\1\312\2\117\4\0\1\117" + + "\2\312\2\117\3\312\2\0\1\117\2\312\2\117\12\0" + "\1\117\1\0\12\117\1\312\4\117\1\312\4\117\3\314" + + "\5\u017c\1\133\1\0\3\314\1\u017c\1\314\1\u017c\4\314" + "\1\u017c\7\314\2\u017c\2\314\3\u017c\3\314\2\u017c\30\314" + + "\1\u017c\4\314\1\u017c\4\314\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\1\u017d\4\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\1\12\1\242\1\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12" + + "\1\373\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\u0168" + "\4\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\3\12\1\u017e\1\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\2\12\1\u017f\2\12\12\0\1\11\1\0\24\12\3\154" + "\5\u0180\2\154\1\335\2\154\1\u0180\1\336\1\u0180\4\154" + + "\1\u0180\7\154\2\u0180\2\154\3\u0180\3\154\2\u0180\30\154" + "\1\u0180\4\154\1\u0180\4\154\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\10\12\2\0\5\12\12\0\1\11\1\0\2\12\1\221" + + "\21\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\2\12\1\u0181\21\12\11\353\1\0" + "\103\353\5\u0182\2\353\1\u0148\2\353\1\u0182\1\0\1\u0182" + + "\4\353\1\u0182\7\353\2\u0182\2\353\3\u0182\3\353\2\u0182" + "\30\353\1\u0182\4\353\1\u0182\4\353\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12" + "\1\u0183\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\7\12\1\242\14\12\1\11\7\12" + "\2\0\1\115\1\u0184\2\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\3\12\1\242\20\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\1\u0101\4\12\12\0" + "\1\11\1\0\3\12\1\u0160\20\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\1\12\1\u0185\3\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\3\12\1\363\1\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\3\12\1\u0160\1\12" + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\6\12\1\u0186\1\12\2\0\5\12\12\0\1\11\1\0" + + "\2\12\1\u0121\2\12\1\u0187\16\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12" + + "\1\u013e\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\3\12\1\247\4\0\10\12\2\0" + "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12" + "\1\u0188\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\3\12\1\242\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\1\12" + + "\1\247\2\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\5\12\12\0\1\11\1\0\2\12\1\u0189\21\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\1\12\1\u0121\3\12" + + "\12\0\1\11\1\0\24\12\1\11\1\12\1\325\5\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\1\u018a\23\12\3\11\5\u018b\2\0" + + "\3\11\1\u018b\1\0\1\u018b\1\0\1\11\1\0\1\11" + "\1\u018b\2\11\4\0\1\11\2\u018b\2\11\3\u018b\2\0" + + "\1\11\2\u018b\2\11\12\0\1\11\1\0\12\11\1\u018b" + "\4\11\1\u018b\5\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\5\12\12\0\1\11\1\0\4\12\1\u018c\17\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\2\12\1\u018d\2\12" + + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\1\12\1\u018e\3\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\2\12\1\u018f\21\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\2\12\1\u0190\2\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\3\12\1\u0191\4\0" + + "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\3\12\1\u0192\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\1\u0193\4\12\12\0\1\11\1\0\24\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\3\12\1\u0194\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\5\12\12\0\1\11\1\0\2\12\1\u0195\21\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\1\161\4\12" + "\12\0\1\11\1\0\24\12\30\0\1\u0196\62\0\1\u016b" + + "\1\u0197\5\u016b\1\u0197\2\0\3\u016b\1\0\1\u016b\1\0" + "\1\u0197\1\0\4\u016b\1\0\1\u016b\2\u0197\10\u016b\2\u0197" + + "\5\u016b\1\0\1\u0197\1\0\1\u0197\2\0\6\u0197\24\u016b" + "\51\0\1\u0122\11\0\1\u016a\56\0\1\u0198\62\0\1\u016e" + + "\1\u0199\5\u016e\1\u0199\2\0\3\u016e\1\0\1\u016e\1\0" + "\1\u0199\1\0\4\u016e\1\0\1\u016e\2\u0199\10\u016e\2\u0199" + + "\5\u016e\1\0\1\u0199\1\0\1\u0199\2\0\6\u0199\24\u016e" + "\51\0\1\u0126\11\0\1\u016d\56\0\1\u019a\62\0\1\u0171" + + "\1\u019b\5\u0171\1\u019b\2\0\3\u0171\1\0\1\u0171\1\0" + "\1\u019b\1\0\4\u0171\1\0\1\u0171\2\u019b\10\u0171\2\u019b" + + "\5\u0171\1\0\1\u019b\1\0\1\u019b\2\0\6\u019b\24\u0171" + "\51\0\1\u012a\11\0\1\u0170\26\0\3\11\5\u019c\2\0" + + "\3\11\1\u019c\1\0\1\u019c\1\0\1\11\1\0\1\11" + "\1\u019c\2\11\4\0\1\11\2\u019c\2\11\3\u019c\2\0" + + "\1\11\2\u019c\2\11\12\0\1\11\1\0\12\11\1\u019c" + "\4\11\1\u019c\5\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\7\12\1\u019d" + "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\2\12\1\u019e\21\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\2\12\1\u019f\2\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\2\12\1\u010c" + "\2\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\1\u01a0\4\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\17\12\1\u01a1\4\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\4\12\1\u0135\3\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\20\12\1\u01a2\3\12" + + "\3\314\5\u01a3\1\133\1\0\3\314\1\u01a3\1\314\1\u01a3" + "\4\314\1\u01a3\7\314\2\u01a3\2\314\3\u01a3\3\314\2\u01a3" + + "\30\314\1\u01a3\4\314\1\u01a3\4\314\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\1\12\1\u01a4\3\12\12\0\1\11" + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\3\12\1\362\1\12\12\0\1\11\1\0\24\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\1\12\1\u01a5\2\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\24\12\3\154\5\u01a6\2\154\1\335" + "\2\154\1\u01a6\1\336\1\u01a6\4\154\1\u01a6\7\154\2\u01a6" + + "\2\154\3\u01a6\3\154\2\u01a6\30\154\1\u01a6\4\154\1\u01a6" + "\4\154\1\11\7\12\2\0\1\115\1\12\1\u01a7\1\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\24\12\3\353\5\u01a8" + + "\2\353\1\u0148\2\353\1\u01a8\1\0\1\u01a8\4\353\1\u01a8" + "\7\353\2\u01a8\2\353\3\u01a8\3\353\2\u01a8\30\353\1\u01a8" + + "\4\353\1\u01a8\4\353\1\11\7\12\2\0\1\115\1\12" + "\1\u01a9\1\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\3\12\1\247" + "\1\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\1\12" + "\1\u01aa\2\12\4\0\10\12\2\0\5\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\1\12\1\u0187\3\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\2\12\1\242\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\2\12\1\u0159\2\12\12\0\1\11\1\0\24\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\1\12\1\242\2\12\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12" + + "\1\u01ab\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\3\11\5\u01ac\2\0\3\11\1\u01ac\1\0\1\u01ac" + + "\1\0\1\11\1\0\1\11\1\u01ac\2\11\4\0\1\11" + "\2\u01ac\2\11\3\u01ac\2\0\1\11\2\u01ac\2\11\12\0" + + "\1\11\1\0\12\11\1\u01ac\4\11\1\u01ac\5\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\2\12\1\242\2\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\1\u0101\4\12\12\0\1\11\1\0\24\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\1\12\1\u01ad\2\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + "\2\12\1\u01ae\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + "\1\11\1\0\3\12\1\u0101\20\12\1\11\7\12\2\0" + + "\1\115\2\12\1\u01af\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\2\12\1\u01b0\21\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\2\12\1\u01b1\2\12\12\0" + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\2\12\1\u01b2\21\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\5\12\1\u013e\16\12\30\0\1\u016b\111\0" + "\1\u016e\111\0\1\u0171\61\0\3\11\5\12\2\0\3\11" + + "\1\12\1\0\1\12\1\0\1\11\1\0\1\11\1\12" + "\2\11\4\0\1\11\2\12\2\11\3\12\2\0\1\11" + + "\2\12\2\11\12\0\1\11\1\0\12\11\1\12\4\11" + "\1\12\5\11\1\12\1\u01b3\5\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\1\374\4\12\12\0\1\11" + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + "\5\12\12\0\1\11\1\0\4\12\1\u01b4\17\12\1\11" + + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + + "\1\0\5\12\1\u0158\16\12\1\11\7\12\2\0\1\115" + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + + "\10\12\2\0\5\12\12\0\1\11\1\0\20\12\1\u01b5" + "\3\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\20\12\1\u01b6\3\12\3\314\5\132" + + "\1\133\1\0\3\314\1\132\1\314\1\132\4\314\1\132" + "\7\314\2\132\2\314\3\132\3\314\2\132\30\314\1\132" + + "\4\314\1\132\4\314\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\4\12\1\247\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\1\u01b7\23\12\3\154\5\23\2\154\1\335\2\154" + + "\1\23\1\336\1\23\4\154\1\23\7\154\2\23\2\154" + "\3\23\3\154\2\23\30\154\1\23\4\154\1\23\4\154" + + "\1\11\7\12\2\0\1\115\1\u0101\2\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\24\12\3\353\5\u01b8\2\353\1\u0148" + "\2\353\1\u01b8\1\0\1\u01b8\4\353\1\u01b8\7\353\2\u01b8" + + "\2\353\3\u01b8\3\353\2\u01b8\30\353\1\u01b8\4\353\1\u01b8" + "\4\353\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\2\12" + "\1\u01ad\2\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\5\12\1\u01b9\16\12\3\11\5\u01ba\2\0\3\11\1\u01ba" + "\1\0\1\u01ba\1\0\1\11\1\0\1\11\1\u01ba\2\11" + + "\4\0\1\11\2\u01ba\2\11\3\u01ba\2\0\1\11\2\u01ba" + "\2\11\12\0\1\11\1\0\12\11\1\u01ba\4\11\1\u01ba" + + "\5\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\1\u015b\4\12" + + "\12\0\1\11\1\0\24\12\1\11\7\12\2\0\1\115" + "\2\12\1\u015c\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\4\12\4\0\10\12\2\0\2\12\1\u01bb" + "\2\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + "\4\0\10\12\2\0\2\12\1\u01bc\2\12\12\0\1\11" + + "\1\0\24\12\1\11\7\12\2\0\1\115\3\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\2\12\1\342" + + "\5\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\6\12\1\u0101\1\12\2\0\5\12" + "\12\0\1\11\1\0\24\12\1\11\1\12\1\242\5\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\1\12" + + "\1\u01bd\3\12\12\0\1\11\1\0\24\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\13\12\1\u01be\10\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\23\12\1\u01bf\1\11" + + "\1\12\1\u01c0\5\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\24\12\3\353\5\172\2\353\1\u0148" + "\2\353\1\172\1\0\1\172\4\353\1\172\7\353\2\172" + + "\2\353\3\172\3\353\2\172\30\353\1\172\4\353\1\172" + "\4\353\1\11\7\12\2\0\1\115\1\12\1\u01c1\1\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\5\12\12\0\1\11\1\0\24\12\3\11\5\233" + + "\2\0\3\11\1\233\1\0\1\233\1\0\1\11\1\0" + "\1\11\1\233\2\11\4\0\1\11\2\233\2\11\3\233" + + "\2\0\1\11\2\233\2\11\12\0\1\11\1\0\12\11" + "\1\233\4\11\1\233\5\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\1\12\1\u0101\2\12" + "\4\0\10\12\2\0\5\12\12\0\1\11\1\0\24\12" + + "\1\11\7\12\2\0\1\115\1\12\1\247\1\12\1\0" + "\1\12\1\0\1\11\1\0\4\12\4\0\10\12\2\0" + + "\5\12\12\0\1\11\1\0\24\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\4\12" + + "\4\0\10\12\2\0\1\u01c2\4\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\15\12\1\u01c3\6\12\1\11\1\12" + + "\1\u01c4\5\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\24\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\3\12\1\u01c5\4\0" + + "\10\12\2\0\5\12\12\0\1\11\1\0\24\12\1\11" + "\7\12\2\0\1\115\3\12\1\0\1\12\1\0\1\11" + + "\1\0\4\12\4\0\10\12\2\0\5\12\12\0\1\11" + "\1\0\2\12\1\u01c6\21\12\1\11\7\12\2\0\1\115" + + "\3\12\1\0\1\12\1\0\1\11\1\0\4\12\4\0" + "\10\12\2\0\1\12\1\u01c7\3\12\12\0\1\11\1\0" + + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + "\1\0\1\11\1\0\4\12\4\0\10\12\2\0\5\12" + + "\12\0\1\11\1\0\16\12\1\u019d\5\12\1\11\7\12" + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\12\12\1\u01c8\11\12\1\11\7\12\2\0\1\115\3\12" + + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + "\2\0\1\12\1\u01c9\3\12\12\0\1\11\1\0\24\12" + + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + "\1\11\1\0\4\12\4\0\10\12\2\0\5\12\12\0" + + "\1\11\1\0\11\12\1\u015b\12\12\1\11\7\12\2\0" + "\1\115\3\12\1\0\1\12\1\0\1\11\1\0\3\12" + + "\1\374\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + "\24\12\1\11\7\12\2\0\1\115\3\12\1\0\1\12" + + "\1\0\1\11\1\0\4\12\4\0\4\12\1\u0134\3\12" + "\2\0\5\12\12\0\1\11\1\0\24\12\1\11\7\12" + + "\2\0\1\115\3\12\1\0\1\12\1\0\1\11\1\0" + "\4\12\4\0\10\12\2\0\5\12\12\0\1\11\1\0" + + "\10\12\1\u01ca\13\12\1\11\7\12\2\0\1\115\3\12" + "\1\0\1\12\1\0\1\11\1\0\4\12\4\0\10\12" + + "\2\0\1\12\1\u01cb\3\12\12\0\1\11\1\0\24\12" + "\1\11\7\12\2\0\1\115\3\12\1\0\1\12\1\0" + + "\1\11\1\0\3\12\1\213\4\0\10\12\2\0\5\12" + "\12\0\1\11\1\0\24\12"; + + private static int[] zzUnpackTrans() { + int[] result = new int[31154]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\10\0\6\1\1\11\4\1\1\11\5\1\1\11\14\1" + "\2\11\2\1\1\11\11\1\1\11\4\1\1\11\5\1" + + "\1\11\3\1\1\11\3\1\1\11\1\1\1\11\1\1" + "\1\11\17\1\1\0\36\1\1\11\3\1\1\11\31\1" + "\1\0\21\1\3\0\1\11\4\0\1\11\1\0\2\11" + + "\4\0\13\1\1\0\7\1\1\11\21\1\1\11\16\1" + "\1\11\62\1\14\0\15\1\1\11\10\1\1\11\6\1" + "\1\11\36\1\1\0\1\1\2\0\1\1\2\0\1\1" + + "\1\0\43\1\6\0\60\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[459]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specific to DTokenMaker; this signals that the user is in - * a nestable multi-line comment. The nested depth is embedded in the + * a nestable multi-line comment. The nested depth is embedded in the * actual end token type. */ - private static final int INTERNAL_IN_NESTABLE_MLC = -(1<<11); - + private static final int INTERNAL_IN_NESTABLE_MLC = -(1 << 11); /** * When in a (possibly) nested MLC, this is the current nested depth. */ private int nestedMlcDepth; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public DTokenMaker() { - } - - + public DTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + private void addNestedMlcEndToken() { addEndToken(INTERNAL_IN_NESTABLE_MLC - nestedMlcDepth); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + @Override public int getClosestStandardTokenTypeForInternalType(int type) { switch (type) { @@ -1366,8 +851,7 @@ public class DTokenMaker extends AbstractJFlexCTokenMaker { } return type; } - - + /** * {@inheritDoc} */ @@ -1375,27 +859,27 @@ public class DTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; nestedMlcDepth = 0; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -1415,7 +899,7 @@ public class DTokenMaker extends AbstractJFlexCTokenMaker { state = NESTABLE_MLC; break; default: - if (initialTokenType<-1024) { + if (initialTokenType < -1024) { int main = -(-initialTokenType & 0xffffff00); switch (main) { default: // Should never happen @@ -1423,13 +907,11 @@ public class DTokenMaker extends AbstractJFlexCTokenMaker { state = NESTABLE_MLC; break; } - nestedMlcDepth = -initialTokenType&0xff; - } - else { + nestedMlcDepth = -initialTokenType & 0xff; + } else { state = YYINITIAL; } } - start = text.offset; s = text; try { @@ -1440,22 +922,20 @@ public class DTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. - * @exception IOException if any I/O-Error occurs. + * @return true if EOF was reached, otherwise + * false. + * @exception IOException + * if any I/O-Error occurs. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1464,7 +944,8 @@ public class DTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1473,477 +954,553 @@ public class DTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 DTokenMaker(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 DTokenMaker(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 < 188) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 14: - { yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 46: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 47: break; - case 41: - { addToken(Token.LITERAL_BOOLEAN); - } - case 48: break; - case 25: - { addToken(Token.ERROR_CHAR); - } - case 49: break; - case 22: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 50: break; - case 4: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 51: break; - case 18: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 52: break; - case 11: - { addToken(Token.ANNOTATION); - } - case 53: break; - case 6: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 54: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 55: break; - case 20: - { addToken(Token.LITERAL_BACKQUOTE); - } - case 56: break; - case 33: - { nestedMlcDepth++; - } - case 57: break; - case 37: - { start = zzMarkedPos-3; yybegin(EOL_DOCCOMMENT); - } - case 58: break; - case 43: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 59: break; - case 35: - { addToken(Token.LITERAL_CHAR); - } - case 60: break; - case 24: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 61: break; - case 28: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 62: break; - case 17: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addNullToken(); return firstToken; - } - case 63: break; - case 7: - { addToken(Token.WHITESPACE); - } - case 64: break; - case 32: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_DOCUMENTATION); - } - case 65: break; - case 39: - { addToken(Token.DATA_TYPE); - } - case 66: break; - case 34: - { System.out.println("... " + nestedMlcDepth); - if (--nestedMlcDepth==0) { - addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); yybegin(YYINITIAL); - } - } - case 67: break; - case 31: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 68: break; - case 21: - { addToken(Token.LITERAL_BACKQUOTE); yybegin(YYINITIAL); - } - case 69: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 70: break; - case 19: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(YYINITIAL); - } - case 71: break; - case 38: - { start = zzMarkedPos-3; yybegin(DOCCOMMENT); - } - case 72: break; - case 15: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addNestedMlcEndToken(); return firstToken; - } - case 73: break; - case 30: - { addToken(Token.RESERVED_WORD); - } - case 74: break; - case 42: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 75: break; - case 29: - { start = zzMarkedPos-2; nestedMlcDepth = 1; yybegin(NESTABLE_MLC); - } - case 76: break; - case 45: - { addToken(Token.RESERVED_WORD_2); - } - case 77: break; - case 16: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 78: break; - case 10: - { addToken(Token.SEPARATOR); - } - case 79: break; - case 5: - { addNullToken(); return firstToken; - } - case 80: break; - case 13: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 81: break; - case 8: - { addToken(Token.LITERAL_BACKQUOTE); yybegin(WYSIWYG_STRING_2); - } - case 82: break; - case 9: - { addToken(Token.OPERATOR); - } - case 83: break; - case 23: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 84: break; - case 26: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(WYSIWYG_STRING_1); - } - case 85: break; - case 44: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 86: break; - case 40: - { addToken(Token.COMMENT_MULTILINE); - } - case 87: break; - case 27: - { start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - case 88: break; - case 36: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 89: break; - case 12: - { - } - case 90: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case WYSIWYG_STRING_1: { - if (firstToken==null) { + + /** + * 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 DTokenMaker(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 DTokenMaker(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 < 188) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 14: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 46: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 47: + break; + case 41: { + addToken(Token.LITERAL_BOOLEAN); + } + case 48: + break; + case 25: { + addToken(Token.ERROR_CHAR); + } + case 49: + break; + case 22: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 50: + break; + case 4: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 51: + break; + case 18: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 52: + break; + case 11: { + addToken(Token.ANNOTATION); + } + case 53: + break; + case 6: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 54: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 55: + break; + case 20: { + addToken(Token.LITERAL_BACKQUOTE); + } + case 56: + break; + case 33: { + nestedMlcDepth++; + } + case 57: + break; + case 37: { + start = zzMarkedPos - 3; + yybegin(EOL_DOCCOMMENT); + } + case 58: + break; + case 43: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 59: + break; + case 35: { + addToken(Token.LITERAL_CHAR); + } + case 60: + break; + case 24: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 61: + break; + case 28: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 62: + break; + case 17: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addNullToken(); + return firstToken; + } + case 63: + break; + case 7: { + addToken(Token.WHITESPACE); + } + case 64: + break; + case 32: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); + } + case 65: + break; + case 39: { + addToken(Token.DATA_TYPE); + } + case 66: + break; + case 34: { + System.out.println("... " + nestedMlcDepth); + if (--nestedMlcDepth == 0) { + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + yybegin(YYINITIAL); + } + } + case 67: + break; + case 31: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 68: + break; + case 21: { + addToken(Token.LITERAL_BACKQUOTE); + yybegin(YYINITIAL); + } + case 69: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 70: + break; + case 19: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(YYINITIAL); + } + case 71: + break; + case 38: { + start = zzMarkedPos - 3; + yybegin(DOCCOMMENT); + } + case 72: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addNestedMlcEndToken(); + return firstToken; + } + case 73: + break; + case 30: { + addToken(Token.RESERVED_WORD); + } + case 74: + break; + case 42: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 75: + break; + case 29: { + start = zzMarkedPos - 2; + nestedMlcDepth = 1; + yybegin(NESTABLE_MLC); + } + case 76: + break; + case 45: { + addToken(Token.RESERVED_WORD_2); + } + case 77: + break; + case 16: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 78: + break; + case 10: { + addToken(Token.SEPARATOR); + } + case 79: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 80: + break; + case 13: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 81: + break; + case 8: { + addToken(Token.LITERAL_BACKQUOTE); + yybegin(WYSIWYG_STRING_2); + } + case 82: + break; + case 9: { + addToken(Token.OPERATOR); + } + case 83: + break; + case 23: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 84: + break; + case 26: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(WYSIWYG_STRING_1); + } + case 85: + break; + case 44: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 86: + break; + case 40: { + addToken(Token.COMMENT_MULTILINE); + } + case 87: + break; + case 27: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 88: + break; + case 36: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 89: + break; + case 12: {} + case 90: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case WYSIWYG_STRING_1: { + if (firstToken == null) { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); } return firstToken; - } - case 460: break; - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 461: break; - case NESTABLE_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addNestedMlcEndToken(); return firstToken; - } - case 462: break; - case DOCCOMMENT: { - yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 463: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 464: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 465: break; - case WYSIWYG_STRING_2: { - if (firstToken==null) { + } + case 460: + break; + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 461: + break; + case NESTABLE_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addNestedMlcEndToken(); + return firstToken; + } + case 462: + break; + case DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 463: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 464: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 465: + break; + case WYSIWYG_STRING_2: { + if (firstToken == null) { addToken(Token.LITERAL_BACKQUOTE); } return firstToken; - } - case 466: break; - case EOL_DOCCOMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addNullToken(); return firstToken; - } - case 467: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 466: + break; + case EOL_DOCCOMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addNullToken(); + return firstToken; + } + case 467: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/DartTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/DartTokenMaker.java index a4f43e7..1a44520 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/DartTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/DartTokenMaker.java @@ -1,1549 +1,968 @@ /* The following code was generated by JFlex 1.4.1 on 6/21/15 7:25 PM */ - /* * 09/01/2014 - * * DartTokenMaker.java - Token parser for Dart. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; +import org.fife.ui.rsyntaxtextarea.TokenTypes; /** - * Scanner for Dart files. Its states could be simplified, but are + * Scanner for Dart files. Its states could be simplified, but are * kept the way they are to keep a degree of similarity (i.e. copy/paste) - * between it and HTML/JSP/PHPTokenMaker. This should cause no difference in - * performance.

+ * between it and HTML/JSP/PHPTokenMaker. This should cause no difference in + * performance. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated DartTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated DartTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 1.0 */ - public class DartTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int JS_STRING = 1; - public static final int JS_CHAR = 2; - public static final int DART_MULTILINE_STRING_DOUBLE = 5; - public static final int JS_EOL_COMMENT = 4; - public static final int YYINITIAL = 0; - public static final int JS_MLC = 3; - public static final int DART_MULTILINE_STRING_SINGLE = 6; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\1\1\2\1\0\1\1\1\11\22\0\1\1\1\35\1\115"+ - "\1\12\1\15\1\35\1\37\1\44\2\43\1\17\1\30\1\27\1\24"+ - "\1\25\1\16\1\5\7\7\2\4\1\40\1\27\1\31\1\32\1\34"+ - "\1\36\1\42\1\75\1\6\1\76\1\77\1\23\1\22\1\3\1\101"+ - "\1\74\1\113\1\3\1\21\1\102\1\73\1\104\1\106\1\107\1\110"+ - "\1\103\1\100\1\114\1\3\1\111\1\20\1\3\1\112\1\43\1\13"+ - "\1\43\1\33\1\14\1\0\1\56\1\57\1\61\1\65\1\54\1\51"+ - "\1\67\1\45\1\52\1\105\1\72\1\53\1\70\1\63\1\62\1\47"+ - "\1\3\1\60\1\50\1\46\1\10\1\71\1\55\1\64\1\66\1\3"+ - "\1\26\1\41\1\26\1\36\uff81\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\2\1\1\2\1\3\1\4\1\5\2\6\1\5"+ - "\2\2\2\7\3\5\1\7\1\5\1\10\1\5\5\7"+ - "\2\2\1\11\37\5\1\12\1\1\1\13\1\14\1\15"+ - "\1\1\1\16\1\17\1\20\1\1\1\21\5\1\1\22"+ - "\3\1\1\23\1\24\1\1\1\25\1\26\1\1\1\2"+ - "\1\27\1\6\1\30\1\27\1\30\1\27\1\31\1\27"+ - "\1\5\4\2\1\32\1\33\5\5\1\0\1\7\1\34"+ - "\1\0\13\5\2\35\21\5\1\35\34\5\1\0\1\36"+ - "\1\37\1\40\1\41\10\0\1\24\1\0\1\26\1\0"+ - "\1\2\1\30\1\0\2\31\1\5\4\2\1\0\7\5"+ - "\1\42\13\5\1\43\17\5\1\43\31\5\1\44\15\5"+ - "\1\45\12\0\1\46\1\47\1\2\1\5\3\2\1\50"+ - "\7\5\1\51\64\5\1\0\1\1\2\0\1\52\2\0"+ - "\1\53\1\2\1\5\3\2\7\5\1\35\50\5\4\0"+ - "\1\2\1\5\3\2\3\5\1\44\6\5\1\54\23\5"+ - "\1\44\3\5\1\44\5\5\1\35\1\2\224\5"; - - private static int [] zzUnpackAction() { - int [] result = new int[616]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /** - * Translates a state to a row index in the transition table - */ - private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); - - private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222"+ - "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u02be\0\u0444"+ - "\0\u0492\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u02be"+ - "\0\u02be\0\u06b4\0\u0702\0\u0750\0\u02be\0\u079e\0\u07ec\0\u083a"+ - "\0\u0888\0\u08d6\0\u0924\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa"+ - "\0\u0af8\0\u0b46\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc\0\u0d1a"+ - "\0\u0d68\0\u0db6\0\u0e04\0\u0e52\0\u0ea0\0\u0eee\0\u0f3c\0\u0f8a"+ - "\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110\0\u115e\0\u11ac\0\u11fa"+ - "\0\u1248\0\u1296\0\u02be\0\u12e4\0\u02be\0\u1332\0\u02be\0\u12e4"+ - "\0\u02be\0\u1380\0\u02be\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506"+ - "\0\u02be\0\u1554\0\u15a2\0\u15f0\0\u02be\0\u163e\0\u168c\0\u02be"+ - "\0\u16da\0\u1728\0\u1776\0\u17c4\0\u17c4\0\u17c4\0\u1812\0\u1860"+ - "\0\u18ae\0\u18fc\0\u194a\0\u1998\0\u19e6\0\u1a34\0\u1a82\0\u1ad0"+ - "\0\u02be\0\u1b1e\0\u1b6c\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u04e0"+ - "\0\u1cf2\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6\0\u1f14"+ - "\0\u1f62\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u030c\0\u2136"+ - "\0\u2184\0\u21d2\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358\0\u23a6"+ - "\0\u23f4\0\u2442\0\u2490\0\u24de\0\u252c\0\u257a\0\u25c8\0\u2616"+ - "\0\u2664\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea\0\u2838\0\u2886"+ - "\0\u28d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u2a5a\0\u2aa8\0\u2af6"+ - "\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca\0\u2d18\0\u2d66"+ - "\0\u2db4\0\u2e02\0\u2e50\0\u2e9e\0\u2eec\0\u2f3a\0\u2f88\0\u02be"+ - "\0\u2fd6\0\u3024\0\u02be\0\u3072\0\u30c0\0\u310e\0\u315c\0\u31aa"+ - "\0\u31f8\0\u3246\0\u3294\0\u02be\0\u32e2\0\u02be\0\u3330\0\u337e"+ - "\0\u33cc\0\u341a\0\u17c4\0\u3468\0\u34b6\0\u3504\0\u3552\0\u35a0"+ - "\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u3726\0\u3774\0\u37c2\0\u3810"+ - "\0\u385e\0\u02be\0\u38ac\0\u38fa\0\u3948\0\u3996\0\u39e4\0\u3a32"+ - "\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54\0\u3ca2"+ - "\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76\0\u3ec4\0\u3f12"+ - "\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098\0\u030c\0\u40e6\0\u4134"+ - "\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4"+ - "\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614"+ - "\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a\0\u47e8\0\u4836\0\u030c"+ - "\0\u4884\0\u48d2\0\u4920\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6"+ - "\0\u4af4\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u02be\0\u4c7a\0\u4cc8"+ - "\0\u4d16\0\u4d64\0\u4db2\0\u4e00\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38"+ - "\0\u02be\0\u02be\0\u4f86\0\u4fd4\0\u5022\0\u5070\0\u50be\0\u02be"+ - "\0\u510c\0\u515a\0\u51a8\0\u51f6\0\u5244\0\u5292\0\u52e0\0\u030c"+ - "\0\u532e\0\u537c\0\u53ca\0\u5418\0\u5466\0\u54b4\0\u5502\0\u5550"+ - "\0\u559e\0\u55ec\0\u563a\0\u5688\0\u56d6\0\u5724\0\u5772\0\u57c0"+ - "\0\u580e\0\u585c\0\u58aa\0\u58f8\0\u5946\0\u5994\0\u59e2\0\u5a30"+ - "\0\u5a7e\0\u5acc\0\u5b1a\0\u5b68\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0"+ - "\0\u5cee\0\u5d3c\0\u5d8a\0\u5dd8\0\u5e26\0\u5e74\0\u5ec2\0\u5f10"+ - "\0\u5f5e\0\u5fac\0\u5ffa\0\u6048\0\u6096\0\u60e4\0\u6132\0\u6180"+ - "\0\u61ce\0\u621c\0\u626a\0\u62b8\0\u3024\0\u02be\0\u6306\0\u6354"+ - "\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da\0\u6528\0\u6576\0\u65c4"+ - "\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u674a\0\u6798\0\u67e6\0\u6834"+ - "\0\u6882\0\u68d0\0\u691e\0\u696c\0\u69ba\0\u6a08\0\u6a56\0\u6aa4"+ - "\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a\0\u6c78\0\u6cc6\0\u6d14"+ - "\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a\0\u6ee8\0\u6f36\0\u6f84"+ - "\0\u6fd2\0\u7020\0\u706e\0\u70bc\0\u710a\0\u7158\0\u71a6\0\u71f4"+ - "\0\u7242\0\u7290\0\u72de\0\u732c\0\u737a\0\u73c8\0\u7416\0\u7464"+ - "\0\u74b2\0\u7500\0\u63a2\0\u754e\0\u648c\0\u759c\0\u75ea\0\u7638"+ - "\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c\0\u785a\0\u78a8"+ - "\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u030c\0\u7a2e\0\u7a7c\0\u7aca"+ - "\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a"+ - "\0\u7d88\0\u7dd6\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c\0\u7faa"+ - "\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc\0\u821a"+ - "\0\u8268\0\u82b6\0\u0222\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c"+ - "\0\u848a\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u8610\0\u865e\0\u86ac"+ - "\0\u86fa\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u88ce\0\u891c"+ - "\0\u896a\0\u89b8\0\u8a06\0\u8a54\0\u8aa2\0\u8af0\0\u8b3e\0\u8b8c"+ - "\0\u8bda\0\u8c28\0\u8c76\0\u8cc4\0\u8d12\0\u8d60\0\u8dae\0\u8dfc"+ - "\0\u8e4a\0\u8e98\0\u8ee6\0\u8f34\0\u8f82\0\u8fd0\0\u901e\0\u906c"+ - "\0\u90ba\0\u9108\0\u9156\0\u91a4\0\u91f2\0\u9240\0\u928e\0\u92dc"+ - "\0\u932a\0\u9378\0\u93c6\0\u9414\0\u9462\0\u94b0\0\u94fe\0\u954c"+ - "\0\u959a\0\u95e8\0\u9636\0\u9684\0\u96d2\0\u9720\0\u976e\0\u97bc"+ - "\0\u980a\0\u780c\0\u9858\0\u98a6\0\u98f4\0\u9942\0\u9990\0\u99de"+ - "\0\u9a2c\0\u9a7a\0\u9ac8\0\u9b16\0\u9b64\0\u9bb2\0\u9c00\0\u9c4e"+ - "\0\u9c9c\0\u9cea\0\u9d38\0\u9d86\0\u9dd4\0\u9e22\0\u9e70\0\u9ebe"+ - "\0\u9f0c\0\u9f5a\0\u9fa8\0\u9ff6\0\ua044\0\ua092\0\ua0e0\0\ua12e"+ - "\0\ua17c\0\ua1ca\0\ua218\0\ua266\0\ua2b4\0\ua302\0\ua350\0\ua39e"+ - "\0\ua3ec\0\ua43a\0\ua488\0\ua4d6\0\ua524\0\ua572\0\ua5c0\0\ua60e"+ - "\0\ua65c\0\ua6aa\0\ua6f8\0\ua746\0\ua794\0\ua7e2\0\ua830\0\ua87e"+ - "\0\ua8cc\0\ua91a\0\ua968\0\ua9b6\0\uaa04\0\uaa52\0\uaaa0\0\uaaee"+ - "\0\uab3c\0\uab8a\0\uabd8\0\uac26\0\uac74\0\uacc2\0\uad10\0\uad5e"+ - "\0\uadac\0\uadfa\0\uae48\0\uae96\0\uaee4\0\uaf32\0\uaf80\0\uafce"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[616]; - 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 = - "\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\14"+ - "\1\13\1\17\1\20\1\10\2\13\1\21\1\22\1\13"+ - "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+ - "\1\33\2\22\1\34\1\22\1\35\1\36\1\35\1\37"+ - "\1\40\1\30\1\41\1\13\1\42\1\13\1\43\1\44"+ - "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54"+ - "\1\55\1\56\1\13\1\57\1\13\1\60\1\13\1\61"+ - "\1\13\1\62\1\63\1\64\1\65\1\66\1\67\1\70"+ - "\1\71\1\72\1\73\1\13\1\74\1\75\1\76\1\77"+ - "\2\13\1\100\1\101\2\102\1\103\10\102\1\104\101\102"+ - "\1\105\2\106\1\107\10\106\1\110\30\106\1\111\51\106"+ - "\2\112\1\113\14\112\1\114\25\112\1\115\3\112\1\116"+ - "\3\112\1\117\40\112\2\120\1\121\42\120\1\122\3\120"+ - "\1\123\3\120\1\124\40\120\2\102\1\125\10\102\1\126"+ - "\101\102\1\127\2\106\1\130\10\106\1\131\30\106\1\132"+ - "\51\106\1\10\2\0\6\10\1\0\4\10\2\0\4\10"+ - "\16\0\1\10\2\0\50\10\2\0\1\11\232\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\50\13\1\0\1\134\2\0\1\134"+ - "\2\14\1\134\1\14\1\134\1\0\4\134\2\0\1\134"+ - "\1\135\1\136\1\137\1\0\1\140\14\0\1\134\2\0"+ - "\4\134\1\136\1\134\1\135\1\137\10\134\1\136\11\134"+ - "\1\136\15\134\1\0\1\134\2\0\1\134\1\141\1\142"+ - "\1\134\1\142\1\134\1\0\4\134\2\0\1\143\1\135"+ - "\1\136\1\137\1\0\1\140\14\0\1\134\2\0\4\134"+ - "\1\136\1\134\1\135\1\137\7\134\1\143\1\136\11\134"+ - "\1\136\15\134\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\11\13"+ - "\1\144\36\13\1\0\1\10\2\0\6\10\1\0\4\10"+ - "\2\0\4\10\16\0\1\10\2\0\3\10\1\145\1\10"+ - "\1\146\1\147\4\10\1\150\34\10\17\0\1\151\1\152"+ - "\12\0\1\35\115\0\1\35\63\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\5\13\1\153\42\13\1\0\1\10\2\0\5\13"+ - "\1\154\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\11\13\1\155\36\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\17\13\1\156\3\13\1\157\24\13\25\0"+ - "\1\35\5\0\1\35\67\0\2\140\1\0\1\140\136\0"+ - "\1\35\1\0\1\35\114\0\1\160\1\35\115\0\1\35"+ - "\1\0\1\161\113\0\1\35\4\0\1\35\110\0\1\35"+ - "\6\0\1\35\54\0\1\10\2\0\1\162\2\10\1\162"+ - "\1\10\1\162\1\0\4\10\2\0\4\162\16\0\1\10"+ - "\2\0\50\162\45\0\1\163\51\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\164\12\13\1\165\5\13\1\166\26\13\1\0"+ - "\1\10\2\0\5\13\1\167\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\1\13\1\170\5\13"+ - "\1\171\1\172\4\13\1\173\32\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\5\13\1\174\3\13\1\175\3\13\1\176"+ - "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\2\177"+ - "\11\13\1\200\4\13\1\201\24\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\5\13\1\202\42\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\6\13\1\203\10\13\1\204\30\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\205\47\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\3\13\1\206\6\13\1\207\35\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\210\1\13"+ - "\1\211\32\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13"+ - "\1\212\40\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13"+ - "\1\213\2\13\1\214\3\13\1\215\32\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\2\13\1\216\45\13\1\0\1\10"+ - "\2\0\5\13\1\217\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\7\13\1\220\40\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\7\13\1\221\5\13\1\222"+ - "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\171"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\176"+ - "\3\13\1\223\32\13\1\0\1\10\2\0\5\13\1\224"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\11\13\1\225\3\13\1\226\32\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\1\13\1\227\1\13\1\230\2\13"+ - "\1\231\7\13\1\232\31\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\3\13\1\233\44\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\6\13\1\234\6\13\1\235\32\13\1\0\1\10"+ - "\2\0\5\13\1\236\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\5\13\1\237\3\13\1\240"+ - "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\5\13\1\241"+ - "\13\13\1\242\26\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\11\13\1\243\36\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\11\13\1\244\36\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\1\13\1\245\5\13\1\246\40\13\1\0\1\10\2\0"+ - "\5\13\1\247\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\12\13\1\250\35\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\11\13\1\251\1\13\1\252\34\13"+ - "\1\0\1\10\2\0\5\13\1\253\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\7\13\1\254\40\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\13\13\1\255\34\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\16\13\1\256\31\13\116\0"+ - "\1\257\2\102\1\0\10\102\1\0\101\102\1\0\2\260"+ - "\1\0\5\260\1\261\53\260\1\262\31\260\2\106\1\0"+ - "\10\106\1\0\30\106\1\0\51\106\2\112\1\0\14\112"+ - "\1\0\25\112\1\0\3\112\1\0\3\112\1\0\40\112"+ - "\16\0\1\263\145\0\1\264\115\0\1\265\3\0\1\266"+ - "\120\0\1\267\40\0\2\120\1\0\42\120\1\0\3\120"+ - "\1\0\3\120\1\0\40\120\46\0\1\270\115\0\1\271"+ - "\3\0\1\272\120\0\1\273\40\0\2\274\1\0\113\274"+ - "\115\0\1\275\2\276\1\0\113\276\44\0\1\277\51\0"+ - "\1\10\2\0\5\10\1\300\1\0\4\10\2\0\4\10"+ - "\16\0\1\10\2\0\50\10\1\0\1\134\2\0\6\134"+ - "\1\0\4\134\2\0\4\134\16\0\1\134\2\0\50\134"+ - "\1\0\1\134\2\0\1\134\2\301\1\134\1\301\1\134"+ - "\1\0\4\134\2\0\4\134\1\302\3\0\1\302\11\0"+ - "\1\134\2\0\50\134\1\0\1\134\2\0\1\134\2\140"+ - "\1\134\1\140\1\134\1\0\4\134\2\0\2\134\1\136"+ - "\1\137\16\0\1\134\2\0\4\134\1\136\2\134\1\137"+ - "\10\134\1\136\11\134\1\136\15\134\1\0\1\134\2\0"+ - "\1\134\2\141\1\134\1\141\1\134\1\0\4\134\2\0"+ - "\2\134\1\136\1\137\1\0\1\140\14\0\1\134\2\0"+ - "\4\134\1\136\2\134\1\137\10\134\1\136\11\134\1\136"+ - "\15\134\1\0\1\134\2\0\1\134\1\141\1\142\1\134"+ - "\1\142\1\134\1\0\4\134\2\0\1\134\1\303\1\136"+ - "\1\137\1\0\1\140\14\0\1\134\2\0\4\134\1\136"+ - "\1\134\1\303\1\137\10\134\1\136\11\134\1\136\15\134"+ - "\1\0\1\134\2\0\1\134\4\304\1\134\1\0\4\134"+ - "\2\0\2\134\2\304\16\0\1\134\2\0\4\134\1\304"+ - "\2\134\1\304\1\134\2\304\1\134\1\304\3\134\1\304"+ - "\7\134\3\304\15\134\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\20\13\1\305\27\13\1\0\1\10\2\0\6\10\1\0"+ - "\4\10\2\0\4\10\16\0\1\10\2\0\15\10\1\306"+ - "\32\10\1\0\1\10\2\0\6\10\1\0\4\10\2\0"+ - "\4\10\16\0\1\10\2\0\23\10\1\307\24\10\1\0"+ - "\1\10\2\0\6\10\1\0\4\10\2\0\4\10\16\0"+ - "\1\10\2\0\5\10\1\310\42\10\1\0\1\10\2\0"+ - "\6\10\1\0\4\10\2\0\4\10\16\0\1\10\2\0"+ - "\7\10\1\311\40\10\20\0\1\312\76\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\3\13\1\313\12\13\1\314\31\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\16\13\1\315\31\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\6\13\1\316\41\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\2\13\1\317\11\13\1\320"+ - "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\2\13\1\321"+ - "\45\13\33\0\1\35\1\0\1\22\61\0\1\10\2\0"+ - "\6\162\1\0\4\10\2\0\4\162\16\0\1\10\2\0"+ - "\50\162\45\0\1\322\51\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\5\13\1\323\5\13\1\324\34\13\1\0\1\10\2\0"+ - "\5\13\1\325\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\21\13\1\177\26\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\2\13\1\326\45\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\2\13\1\327\45\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\11\13\1\330\36\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\1\13\1\177\46\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\5\13\1\331\42\13\1\0\1\10"+ - "\2\0\5\13\1\332\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\50\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\16\13\1\333\31\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\6\13\1\334\5\13\1\335\33\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\13\13\1\177\34\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\336\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\2\13\1\337\45\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\12\13\1\340\35\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\3\13\1\341\44\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\342\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\5\13\1\343\42\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\3\13\1\344\44\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\3\13\1\345\44\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\7\13\1\346\40\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\15\13\1\347\32\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\350\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\11\13\1\351\36\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\352\1\13\1\341"+ - "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\353"+ - "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\354"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\355"+ - "\14\13\1\356\24\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\10\13\1\177\11\13\1\357\25\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\4\13\1\360\43\13\1\0\1\10\2\0"+ - "\5\13\1\361\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\50\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\5\13\1\362\42\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\6\13\1\363\41\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\26\13\1\177\21\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\13\1\364\33\13\1\365\1\366\11\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\7\13\1\367\40\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\15\13\1\370\32\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\6\13\1\371\41\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\372\2\13\1\373"+ - "\13\13\1\374\27\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\3\13\1\375\44\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\15\13\1\376\32\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\6\13\1\377\14\13\1\u0100\24\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\13\13\1\u0101\34\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\3\13\1\u0102\44\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\13\1\u0103\46\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\23\13\1\u0104\24\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\2\13\1\u0105\45\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\3\13\1\u0106\44\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\13\1\u0107\1\u0108\45\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\11\13\1\u0109\1\13\1\u010a\1\13"+ - "\1\u010b\32\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13"+ - "\1\u0108\14\13\1\u010c\31\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\13\1\u010d\46\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\40\13\1\u010e\7\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\13\1\u010f\46\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\15\13\1\u0110\32\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\7\13\1\u0111\40\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\14\13\1\u0112\5\13\1\u0113\25\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\15\13\1\u0114\32\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\3\13\1\u0115\44\13\116\0\1\u0116"+ - "\4\0\4\u0117\12\0\2\u0117\25\0\1\u0117\2\0\1\u0117"+ - "\1\0\2\u0117\1\0\1\u0117\3\0\1\u0117\7\0\3\u0117"+ - "\22\0\4\u0118\12\0\2\u0118\25\0\1\u0118\2\0\1\u0118"+ - "\1\0\2\u0118\1\0\1\u0118\3\0\1\u0118\7\0\3\u0118"+ - "\64\0\1\u0119\116\0\1\u011a\121\0\1\u011b\117\0\1\u011c"+ - "\106\0\1\u011d\116\0\1\u011e\121\0\1\u011f\117\0\1\u0120"+ - "\155\0\1\u0121\44\0\1\u0122\51\0\1\10\2\0\1\10"+ - "\4\u0123\1\10\1\0\4\10\2\0\2\10\2\u0123\16\0"+ - "\1\10\2\0\4\10\1\u0123\2\10\1\u0123\1\10\2\u0123"+ - "\1\10\1\u0123\3\10\1\u0123\7\10\3\u0123\15\10\1\0"+ - "\1\134\2\0\1\134\2\301\1\134\1\301\1\134\1\0"+ - "\4\134\2\0\2\134\1\136\1\134\16\0\1\134\2\0"+ - "\4\134\1\136\13\134\1\136\11\134\1\136\15\134\5\0"+ - "\2\301\1\0\1\301\106\0\1\134\2\0\1\134\4\304"+ - "\1\134\1\0\4\134\2\0\1\134\1\303\2\304\16\0"+ - "\1\134\2\0\4\134\1\304\1\134\1\303\1\304\1\134"+ - "\2\304\1\134\1\304\3\134\1\304\7\134\3\304\15\134"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\26\13\1\u0124\21\13"+ - "\1\0\1\10\2\0\5\10\1\u0125\1\0\4\10\2\0"+ - "\4\10\16\0\1\10\2\0\50\10\1\0\1\10\2\0"+ - "\6\10\1\0\4\10\2\0\4\10\16\0\1\10\2\0"+ - "\2\10\1\u0126\45\10\1\0\1\10\2\0\6\10\1\0"+ - "\4\10\2\0\4\10\16\0\1\10\2\0\12\10\1\u0127"+ - "\35\10\1\0\1\10\2\0\6\10\1\0\4\10\2\0"+ - "\4\10\16\0\1\10\2\0\3\10\1\145\44\10\17\0"+ - "\1\u0128\77\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u0108"+ - "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\25\13\1\u0129"+ - "\22\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\14\13\1\u012a"+ - "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\u012b"+ - "\41\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u012c"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u012d"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u012e"+ - "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\177"+ - "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u012f"+ - "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u0130"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u0131"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\176"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u0132"+ - "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\352"+ - "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0133"+ - "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u0134"+ - "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\325"+ - "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u0135"+ - "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u0136"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\u0137"+ - "\6\13\1\u0138\32\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\13\13\1\u0139\34\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\177\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u013a\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\6\13\1\341\41\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u0138\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\1\13\1\u013b\46\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\11\13\1\u013c\36\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\6\13\1\356\41\13\1\0\1\10\2\0\5\13\1\u013d"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\50\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13"+ - "\1\323\44\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\14\13"+ - "\1\u013e\33\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13"+ - "\1\u013f\1\13\1\171\44\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\13\13\1\u0140\34\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\6\13\1\177\41\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\11\13\1\u0141\36\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\11\13\1\u0142\36\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\12\13\1\u0143\35\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\20\13\1\356\27\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\6\13\1\u0144\41\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\27\13\1\u0145\20\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\15\13\1\u0146\32\13\1\0\1\10\2\0\5\13"+ - "\1\u0147\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\50\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\13\13\1\u0148\34\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\6\13\1\u0149\41\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u014a\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u014b\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\5\13\1\u014c\42\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u014d\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u014e\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\3\13\1\u014f\10\13\1\u0150\33\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\6\13\1\u0151\41\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\2\13\1\u0152\45\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\11\13\1\u012a\36\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\2\13\1\u0153\45\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\u0108\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\u0154\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\u0155\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\u0156\47\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\u0108\13\13\1\u0157\33\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\14\13\1\u0158\33\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\5\13\1\u0159\42\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\2\13\1\u015a\45\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\20\13\1\u015b\27\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\37\13\1\u015c\10\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\u015d\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\13\1\u015e\46\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\17\13\1\u015f\3\13\1\u0160\24\13\1\0"+ - "\1\10\2\0\5\13\1\u0103\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\50\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\7\13\1\u0161\40\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\3\13"+ - "\1\u0162\16\0\1\10\2\0\50\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\16\13\1\u0163\31\13\1\0\1\10\2\0"+ - "\5\13\1\u0164\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\50\13\5\0\4\u0165\12\0\2\u0165"+ - "\25\0\1\u0165\2\0\1\u0165\1\0\2\u0165\1\0\1\u0165"+ - "\3\0\1\u0165\7\0\3\u0165\22\0\4\u0166\12\0\2\u0166"+ - "\25\0\1\u0166\2\0\1\u0166\1\0\2\u0166\1\0\1\u0166"+ - "\3\0\1\u0166\7\0\3\u0166\65\0\1\u0167\106\0\1\u0168"+ - "\131\0\1\u011a\66\0\1\u0169\137\0\1\u016a\106\0\1\u016b"+ - "\131\0\1\u011e\66\0\1\u016c\70\0\1\10\2\0\1\10"+ - "\4\u016d\1\10\1\0\4\10\2\0\2\10\2\u016d\16\0"+ - "\1\10\2\0\4\10\1\u016d\2\10\1\u016d\1\10\2\u016d"+ - "\1\10\1\u016d\3\10\1\u016d\7\10\3\u016d\15\10\1\0"+ - "\1\10\2\0\5\13\1\u016e\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\50\13\1\0\1\10"+ - "\2\0\6\10\1\0\4\10\2\0\4\10\16\0\1\10"+ - "\2\0\13\10\1\u016f\34\10\1\0\1\10\2\0\6\10"+ - "\1\0\4\10\2\0\4\10\16\0\1\10\2\0\15\10"+ - "\1\u0170\32\10\1\0\1\10\2\0\6\10\1\0\4\10"+ - "\2\0\4\10\16\0\1\10\2\0\13\10\1\u0171\34\10"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\7\13\1\u0172\40\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\1\13\1\u0173\46\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\33\13\1\u0174\14\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\14\13\1\u0175\33\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\2\13\1\u012a\45\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\21\13\1\u0176\26\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\10\13\1\177\37\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\20\13\1\u0177\27\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\5\13\1\u0178\42\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\14\13\1\341\33\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\6\13\1\u0179\41\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\15\13\1\u017a\32\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\u017b\34\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\7\13\1\u017c\40\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\171\34\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\11\13\1\u017a\36\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\16\13\1\u017d\31\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\u017e\34\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\25\13\1\177\22\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\u017f\34\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\1\177\47\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\5\13\1\u0180\42\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\11\13\1\u0181\36\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\341\46\13\1\0"+ - "\1\10\2\0\5\13\1\u0182\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\50\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\6\13\1\u0183\41\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\41\13\1\u0184\6\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\23\13\1\u0185\24\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\13\13\1\u0186\34\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\14\13\1\u0187\33\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\11\13\1\u0188\36\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\11\13\1\240\36\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\22\13\1\u0189\25\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\22\13\1\u018a\25\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\16\13\1\u018b\31\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\17\13\1\u018c\30\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\13\13\1\u018d\34\13\1\0\1\10"+ - "\2\0\5\13\1\u018e\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\50\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\25\13\1\u0108\22\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\315\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\11\13\1\u018f\36\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\11\13\1\u0190\36\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\45\13\1\u0191\2\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\3\13\1\u0192"+ - "\16\0\1\10\2\0\50\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\11\13\1\u0193\23\13\1\u0194\1\u0195\11\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\u0108\47\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\25\13\1\u0196\22\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\16\13\1\u0197\31\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\44\13\1\u0198\3\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\41\13\1\u0199\6\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\4\13\1\u019a\43\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\14\13\1\u019b\33\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\7\13\1\u019c\40\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\21\13\1\u0108\26\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\5\13\1\u019d\42\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\5\13\1\u019e\42\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\17\13\1\u019f\30\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\22\13\1\u01a0\25\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\2\13\1\u01a1\45\13\41\0\1\u0168"+ - "\7\0\1\u011a\63\0\1\u01a2\102\0\6\u0169\1\0\1\u01a3"+ - "\1\0\1\u01a3\2\u0169\1\u01a3\4\u0169\2\u01a3\1\0\2\u01a3"+ - "\1\0\1\u01a3\2\0\4\u01a3\1\0\3\u01a3\50\u0169\41\0"+ - "\1\u016b\7\0\1\u011e\63\0\1\u01a4\102\0\6\u016c\1\0"+ - "\1\u01a5\1\0\1\u01a5\2\u016c\1\u01a5\4\u016c\2\u01a5\1\0"+ - "\2\u01a5\1\0\1\u01a5\2\0\4\u01a5\1\0\3\u01a5\50\u016c"+ - "\1\0\1\10\2\0\1\10\4\u01a6\1\10\1\0\4\10"+ - "\2\0\2\10\2\u01a6\16\0\1\10\2\0\4\10\1\u01a6"+ - "\2\10\1\u01a6\1\10\2\u01a6\1\10\1\u01a6\3\10\1\u01a6"+ - "\7\10\3\u01a6\15\10\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\23\13\1\u01a7\24\13\1\0\1\10\2\0\6\10\1\0"+ - "\4\10\2\0\4\10\16\0\1\10\2\0\14\10\1\u01a8"+ - "\33\10\1\0\1\10\2\0\6\10\1\0\4\10\2\0"+ - "\4\10\16\0\1\10\2\0\13\10\1\u01a9\34\10\1\0"+ - "\1\10\2\0\6\10\1\0\4\10\2\0\4\10\16\0"+ - "\1\10\2\0\11\10\1\u01aa\36\10\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\20\13\1\u01ab\27\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\5\13\1\u01ac\42\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\u01ad\47\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\13\1\u01ae\46\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\42\13\1\u01af\5\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\7\13\1\u01b0\40\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\14\13\1\177\33\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\6\13\1\u01b1\41\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\13\13\1\u01b1\34\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\4\13\1\u01b2\43\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\23\13\1\u01b3\24\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\20\13\1\323\27\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\11\13\1\u01b4\36\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\16\13\1\u01b5\31\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\16\13\1\u01b6\31\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\13\1\u01b7\46\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\6\13\1\171\41\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\7\13\1\356\40\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\15\13\1\u01b8\32\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\2\13\1\u01b9\45\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\7\13\1\u01ba\40\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\1\u01bb\47\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\1\13\1\u01bc\10\13\1\u01bd\35\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\11\13\1\u01be\36\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\u01bf\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\5\13\1\u01c0\42\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\37\13\1\u01c1\10\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\13\1\u01c2\46\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\13\13\1\u01c3\34\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\13\13\1\u01c4\34\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\13\1\u01c5\46\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\15\13\1\u01c6\32\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\13\13\1\u01c7\34\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\12\13\1\u01bd\35\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\11\13\1\u019f\36\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\313\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\37\13\1\u01c8\10\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\22\13\1\u01c9\25\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\11\13\1\u01ca\36\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\15\13\1\u01cb\32\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\35\13\1\u01cc\12\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\13\1\u01cd\46\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\13\13\1\u01ce\34\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\3\13\1\u0103\44\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\24\13\1\u01cf\23\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\2\13\1\u0108\45\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\30\13\1\u01d0\17\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\2\13\1\u01d1\45\13\17\0\1\u0169\115\0"+ - "\1\u016c\77\0\1\10\2\0\1\10\4\13\1\10\1\0"+ - "\4\10\2\0\2\10\2\13\16\0\1\10\2\0\4\10"+ - "\1\13\2\10\1\13\1\10\2\13\1\10\1\13\3\10"+ - "\1\13\7\10\3\13\15\10\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\12\13\1\u01d2\35\13\1\0\1\10\2\0\6\10"+ - "\1\0\4\10\2\0\4\10\16\0\1\10\2\0\7\10"+ - "\1\u01d3\40\10\1\0\1\10\2\0\6\10\1\0\4\10"+ - "\2\0\4\10\16\0\1\10\2\0\1\10\1\u01d3\46\10"+ - "\1\0\1\10\2\0\6\10\1\0\4\10\2\0\4\10"+ - "\16\0\1\10\2\0\13\10\1\u01d4\34\10\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\34\13\1\u01d5\13\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\15\13\1\u01ce\32\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\13\13\1\u01d6\34\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\3\13"+ - "\1\u01d7\16\0\1\10\2\0\50\13\1\0\1\10\2\0"+ - "\5\13\1\u01d8\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\50\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\4\13\1\177\43\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\21\13\1\177\26\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\11\13\1\u0133\36\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\7\13\1\u01d9\40\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\14\13\1\171\33\13\1\0\1\10\2\0\5\13"+ - "\1\341\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\50\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\15\13\1\176\32\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\5\13\1\u01da\42\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\6\13\1\u01db\41\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\3\13\1\u01dc\16\0\1\10"+ - "\2\0\50\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\35\13"+ - "\1\u01dd\12\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\15\13"+ - "\1\u01de\32\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13"+ - "\1\u0103\41\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13"+ - "\1\u01df\41\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\13\13"+ - "\1\u01e0\34\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13"+ - "\1\u01b1\46\13\1\0\1\10\2\0\5\13\1\u01e1\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\50\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\5\13\1\u01e2"+ - "\42\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01e3"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u0193"+ - "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\14\13\1\u01e4"+ - "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u0103"+ - "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u01bc"+ - "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\24\13\1\u01e5"+ - "\23\13\1\0\1\10\2\0\3\13\1\u01e6\2\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\3\13\1\u0108\44\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\1\13\1\u01e7\46\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\13\13\1\313\34\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u01e8\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\26\13\1\u01e9\21\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\16\13\1\u0108\31\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u015b\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\13\13\1\u01ea\34\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\15\13\1\u01eb\32\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u01ec\40\13\1\0\1\10\2\0\6\10\1\0"+ - "\4\10\2\0\4\10\16\0\1\10\2\0\21\10\1\u01d3"+ - "\26\10\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u01ed"+ - "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u01ee"+ - "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\17\13\1\u01ef"+ - "\30\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01f0"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u01f1"+ - "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u01f2"+ - "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01f3"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\u01f4"+ - "\41\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01f5"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0108"+ - "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\30\13\1\u01f6"+ - "\15\13\1\u01f7\1\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\32\13\1\u01f8\15\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\1\13\1\u01f9\46\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\15\13\1\u01fa\32\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\30\13\1\u01fb\17\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\1\u01fc\47\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13"+ - "\1\u01fd\40\13\1\0\1\10\2\0\5\13\1\u01fe\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\50\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\14\13\1\u0157"+ - "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\23\13\1\u01ff"+ - "\24\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u0200"+ - "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\22\13\1\u0201"+ - "\25\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0202"+ - "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0203"+ - "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\u0204"+ - "\44\13\1\0\1\10\2\0\5\13\1\u0205\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\50\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\14\13\1\320\33\13"+ - "\1\0\1\10\2\0\5\13\1\u0206\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\323\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\u0207\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\23\13\1\u0208\24\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\7\13\1\u0209\40\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\u020a\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\13\13\1\u020b\1\u020c\33\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\36\13\1\u020d\11\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\5\13\1\u020e\42\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\37\13\1\u020f\10\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\16\13\1\u0155\31\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0210\34\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\7\13\1\u01de\40\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0211\34\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\4\13\1\u0212\43\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\15\13\1\u0213\32\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\1\13\1\u0214\46\13"+ - "\1\0\1\10\2\0\5\13\1\u0215\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\u0216\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\2\13\1\u0217\1\13\16\0\1\10\2\0\50\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\u0218\47\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\22\13\1\u0219\25\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\7\13\1\u021a\40\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\7\13\1\u021b\40\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\7\13\1\u021c\40\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\23\13\1\u021d\24\13\1\0\1\10"+ - "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13"+ - "\16\0\1\10\2\0\1\u021e\47\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\22\13\1\u021f\25\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\14\13\1\u0220\33\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\43\13\1\u0221\4\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\24\13\1\u0222\23\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\4\13\1\u0223\43\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\22\13\1\u0224\25\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\4\13\1\u0225\43\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\4\13\1\u01fc\43\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\13\13\1\u0226\34\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\31\13\1\u0227\16\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\23\13\1\u0228\24\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\7\13\1\u0229\40\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\15\13\1\u022a\32\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\35\13\1\u0194\12\13\1\0\1\10\2\0"+ - "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\1\u0155\47\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\13\13\1\u021a\34\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\16\13\1\u022b\31\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\7\13\1\u022c\40\13\1\0\1\10\2\0\6\13"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\15\13\1\u022d\32\13\1\0\1\10\2\0\5\13"+ - "\1\u022e\1\0\1\10\1\133\2\13\2\0\4\13\16\0"+ - "\1\10\2\0\50\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u022f\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\7\13\1\u0230\40\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\5\13\1\u0231\42\13\1\0\1\10\2\0\6\13\1\0"+ - "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0"+ - "\43\13\1\u0232\4\13\1\0\1\10\2\0\5\13\1\u0233"+ - "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10"+ - "\2\0\50\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13"+ - "\1\u0234\41\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\21\13"+ - "\1\u021a\26\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13"+ - "\1\u0235\41\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13"+ - "\1\u0236\40\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\20\13"+ - "\1\u0237\27\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\13\13"+ - "\1\u0238\34\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13"+ - "\1\u0239\46\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\16\13"+ - "\1\u023a\31\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\20\13"+ - "\1\u021a\27\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\23\13"+ - "\1\u023b\24\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13"+ - "\1\u023c\44\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\22\13"+ - "\1\u023d\25\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13"+ - "\1\u023e\44\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\11\13"+ - "\1\u023f\36\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\23\13"+ - "\1\u0240\24\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\15\13"+ - "\1\u0241\32\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\15\13"+ - "\1\u0242\32\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\16\13"+ - "\1\u0243\31\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\37\13"+ - "\1\u0244\10\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\23\13"+ - "\1\u0245\24\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13"+ - "\1\u022d\40\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13"+ - "\1\u023c\46\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13"+ - "\1\u0246\40\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13"+ - "\1\u021a\44\13\1\0\1\10\2\0\6\13\1\0\1\10"+ - "\1\133\2\13\2\0\3\13\1\u0247\16\0\1\10\2\0"+ - "\50\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\5\13\1\u0248"+ - "\42\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u0249"+ - "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u024a"+ - "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\10\13\1\u021a"+ - "\37\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\u024b"+ - "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u024c"+ - "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\2\13\1\u024d"+ - "\45\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u024e"+ - "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u024e"+ - "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\17\13\1\u024f"+ - "\30\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u0250"+ - "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\22\13\1\u0206"+ - "\25\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u0251"+ - "\31\13\1\0\1\10\2\0\5\13\1\u0252\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\50\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\31\13\1\u0253\16\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\7\13\1\u0254\40\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\1\13\1\u021a\46\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\2\13\1\u021a\45\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\16\13\1\u0255\31\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\1\13\1\u0256\46\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0206\34\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\15\13\1\u0257\32\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0258\34\13"+ - "\1\0\1\10\2\0\3\13\1\u0259\2\13\1\0\1\10"+ - "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\50\13"+ - "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13"+ - "\2\0\4\13\16\0\1\10\2\0\35\13\1\u025a\12\13"+ - "\1\0\1\10\2\0\5\13\1\u0246\1\0\1\10\1\133"+ - "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\11\13\1\u025b\36\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\21\13\1\u025c\26\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\5\13\1\u025d\42\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\u025e\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\45\13\1\u025f\2\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\3\13\1\u0260\44\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\5\13\1\u0261\42\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\7\13\1\u0262\40\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\23\13\1\u0263\24\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\15\13\1\u0264\32\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\13\13\1\u0265\34\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\11\13\1\u0266\36\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\16\13\1\u021a\31\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\15\13\1\u021a\32\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\13\1\u0267\46\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\14\13\1\u0268\33\13\1\0"+ - "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0"+ - "\4\13\16\0\1\10\2\0\1\u021a\47\13\1\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[45084]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\5\0\4\1\1\11\4\1\1\11\10\1\2\11\3\1"+ - "\1\11\45\1\1\11\1\1\1\11\1\1\1\11\1\1"+ - "\1\11\1\1\1\11\5\1\1\11\3\1\1\11\2\1"+ - "\1\11\20\1\1\11\6\1\1\0\2\1\1\0\73\1"+ - "\1\0\1\11\2\1\1\11\10\0\1\11\1\0\1\11"+ - "\1\0\2\1\1\0\7\1\1\0\7\1\1\11\103\1"+ - "\1\11\12\0\2\11\5\1\1\11\74\1\1\0\1\11"+ - "\2\0\1\1\2\0\66\1\4\0\303\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[616]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int JS_STRING = 1; + public static final int JS_CHAR = 2; + public static final int DART_MULTILINE_STRING_DOUBLE = 5; + public static final int JS_EOL_COMMENT = 4; + public static final int YYINITIAL = 0; + public static final int JS_MLC = 3; + public static final int DART_MULTILINE_STRING_SINGLE = 6; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\1\1\2\1\0\1\1\1\11\22\0\1\1\1\35\1\115" + + "\1\12\1\15\1\35\1\37\1\44\2\43\1\17\1\30\1\27\1\24" + "\1\25\1\16\1\5\7\7\2\4\1\40\1\27\1\31\1\32\1\34" + + "\1\36\1\42\1\75\1\6\1\76\1\77\1\23\1\22\1\3\1\101" + "\1\74\1\113\1\3\1\21\1\102\1\73\1\104\1\106\1\107\1\110" + + "\1\103\1\100\1\114\1\3\1\111\1\20\1\3\1\112\1\43\1\13" + "\1\43\1\33\1\14\1\0\1\56\1\57\1\61\1\65\1\54\1\51" + + "\1\67\1\45\1\52\1\105\1\72\1\53\1\70\1\63\1\62\1\47" + "\1\3\1\60\1\50\1\46\1\10\1\71\1\55\1\64\1\66\1\3" + + "\1\26\1\41\1\26\1\36\uff81\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\2\1\1\2\1\3\1\4\1\5\2\6\1\5" + "\2\2\2\7\3\5\1\7\1\5\1\10\1\5\5\7" + + "\2\2\1\11\37\5\1\12\1\1\1\13\1\14\1\15" + "\1\1\1\16\1\17\1\20\1\1\1\21\5\1\1\22" + "\3\1\1\23\1\24\1\1\1\25\1\26\1\1\1\2" + + "\1\27\1\6\1\30\1\27\1\30\1\27\1\31\1\27" + "\1\5\4\2\1\32\1\33\5\5\1\0\1\7\1\34" + "\1\0\13\5\2\35\21\5\1\35\34\5\1\0\1\36" + + "\1\37\1\40\1\41\10\0\1\24\1\0\1\26\1\0" + "\1\2\1\30\1\0\2\31\1\5\4\2\1\0\7\5" + "\1\42\13\5\1\43\17\5\1\43\31\5\1\44\15\5" + + "\1\45\12\0\1\46\1\47\1\2\1\5\3\2\1\50" + "\7\5\1\51\64\5\1\0\1\1\2\0\1\52\2\0" + "\1\53\1\2\1\5\3\2\7\5\1\35\50\5\4\0" + + "\1\2\1\5\3\2\3\5\1\44\6\5\1\54\23\5" + "\1\44\3\5\1\44\5\5\1\35\1\2\224\5"; + + private static int[] zzUnpackAction() { + int[] result = new int[616]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int[] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do + result[j++] = value; + while (--count > 0); + } + return j; + } + + /** + * Translates a state to a row index in the transition table + */ + private static final int[] ZZ_ROWMAP = zzUnpackRowMap(); + private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222" + + "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u02be\0\u0444" + + "\0\u0492\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u02be" + + "\0\u02be\0\u06b4\0\u0702\0\u0750\0\u02be\0\u079e\0\u07ec\0\u083a" + + "\0\u0888\0\u08d6\0\u0924\0\u0972\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa" + + "\0\u0af8\0\u0b46\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc\0\u0d1a" + + "\0\u0d68\0\u0db6\0\u0e04\0\u0e52\0\u0ea0\0\u0eee\0\u0f3c\0\u0f8a" + + "\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110\0\u115e\0\u11ac\0\u11fa" + + "\0\u1248\0\u1296\0\u02be\0\u12e4\0\u02be\0\u1332\0\u02be\0\u12e4" + + "\0\u02be\0\u1380\0\u02be\0\u13ce\0\u141c\0\u146a\0\u14b8\0\u1506" + + "\0\u02be\0\u1554\0\u15a2\0\u15f0\0\u02be\0\u163e\0\u168c\0\u02be" + + "\0\u16da\0\u1728\0\u1776\0\u17c4\0\u17c4\0\u17c4\0\u1812\0\u1860" + + "\0\u18ae\0\u18fc\0\u194a\0\u1998\0\u19e6\0\u1a34\0\u1a82\0\u1ad0" + + "\0\u02be\0\u1b1e\0\u1b6c\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u04e0" + + "\0\u1cf2\0\u1d40\0\u1d8e\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6\0\u1f14" + + "\0\u1f62\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u030c\0\u2136" + + "\0\u2184\0\u21d2\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358\0\u23a6" + + "\0\u23f4\0\u2442\0\u2490\0\u24de\0\u252c\0\u257a\0\u25c8\0\u2616" + + "\0\u2664\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea\0\u2838\0\u2886" + + "\0\u28d4\0\u2922\0\u2970\0\u29be\0\u2a0c\0\u2a5a\0\u2aa8\0\u2af6" + + "\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca\0\u2d18\0\u2d66" + + "\0\u2db4\0\u2e02\0\u2e50\0\u2e9e\0\u2eec\0\u2f3a\0\u2f88\0\u02be" + + "\0\u2fd6\0\u3024\0\u02be\0\u3072\0\u30c0\0\u310e\0\u315c\0\u31aa" + + "\0\u31f8\0\u3246\0\u3294\0\u02be\0\u32e2\0\u02be\0\u3330\0\u337e" + + "\0\u33cc\0\u341a\0\u17c4\0\u3468\0\u34b6\0\u3504\0\u3552\0\u35a0" + + "\0\u35ee\0\u363c\0\u368a\0\u36d8\0\u3726\0\u3774\0\u37c2\0\u3810" + + "\0\u385e\0\u02be\0\u38ac\0\u38fa\0\u3948\0\u3996\0\u39e4\0\u3a32" + + "\0\u3a80\0\u3ace\0\u3b1c\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54\0\u3ca2" + + "\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28\0\u3e76\0\u3ec4\0\u3f12" + + "\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098\0\u030c\0\u40e6\0\u4134" + + "\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4" + + "\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614" + + "\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a\0\u47e8\0\u4836\0\u030c" + + "\0\u4884\0\u48d2\0\u4920\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6" + + "\0\u4af4\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u02be\0\u4c7a\0\u4cc8" + + "\0\u4d16\0\u4d64\0\u4db2\0\u4e00\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38" + + "\0\u02be\0\u02be\0\u4f86\0\u4fd4\0\u5022\0\u5070\0\u50be\0\u02be" + + "\0\u510c\0\u515a\0\u51a8\0\u51f6\0\u5244\0\u5292\0\u52e0\0\u030c" + + "\0\u532e\0\u537c\0\u53ca\0\u5418\0\u5466\0\u54b4\0\u5502\0\u5550" + + "\0\u559e\0\u55ec\0\u563a\0\u5688\0\u56d6\0\u5724\0\u5772\0\u57c0" + + "\0\u580e\0\u585c\0\u58aa\0\u58f8\0\u5946\0\u5994\0\u59e2\0\u5a30" + + "\0\u5a7e\0\u5acc\0\u5b1a\0\u5b68\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0" + + "\0\u5cee\0\u5d3c\0\u5d8a\0\u5dd8\0\u5e26\0\u5e74\0\u5ec2\0\u5f10" + + "\0\u5f5e\0\u5fac\0\u5ffa\0\u6048\0\u6096\0\u60e4\0\u6132\0\u6180" + + "\0\u61ce\0\u621c\0\u626a\0\u62b8\0\u3024\0\u02be\0\u6306\0\u6354" + + "\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da\0\u6528\0\u6576\0\u65c4" + + "\0\u6612\0\u6660\0\u66ae\0\u66fc\0\u674a\0\u6798\0\u67e6\0\u6834" + + "\0\u6882\0\u68d0\0\u691e\0\u696c\0\u69ba\0\u6a08\0\u6a56\0\u6aa4" + + "\0\u6af2\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a\0\u6c78\0\u6cc6\0\u6d14" + + "\0\u6d62\0\u6db0\0\u6dfe\0\u6e4c\0\u6e9a\0\u6ee8\0\u6f36\0\u6f84" + + "\0\u6fd2\0\u7020\0\u706e\0\u70bc\0\u710a\0\u7158\0\u71a6\0\u71f4" + + "\0\u7242\0\u7290\0\u72de\0\u732c\0\u737a\0\u73c8\0\u7416\0\u7464" + + "\0\u74b2\0\u7500\0\u63a2\0\u754e\0\u648c\0\u759c\0\u75ea\0\u7638" + + "\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u780c\0\u785a\0\u78a8" + + "\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u030c\0\u7a2e\0\u7a7c\0\u7aca" + + "\0\u7b18\0\u7b66\0\u7bb4\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a" + + "\0\u7d88\0\u7dd6\0\u7e24\0\u7e72\0\u7ec0\0\u7f0e\0\u7f5c\0\u7faa" + + "\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc\0\u821a" + + "\0\u8268\0\u82b6\0\u0222\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c" + + "\0\u848a\0\u84d8\0\u8526\0\u8574\0\u85c2\0\u8610\0\u865e\0\u86ac" + + "\0\u86fa\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u88ce\0\u891c" + + "\0\u896a\0\u89b8\0\u8a06\0\u8a54\0\u8aa2\0\u8af0\0\u8b3e\0\u8b8c" + + "\0\u8bda\0\u8c28\0\u8c76\0\u8cc4\0\u8d12\0\u8d60\0\u8dae\0\u8dfc" + + "\0\u8e4a\0\u8e98\0\u8ee6\0\u8f34\0\u8f82\0\u8fd0\0\u901e\0\u906c" + + "\0\u90ba\0\u9108\0\u9156\0\u91a4\0\u91f2\0\u9240\0\u928e\0\u92dc" + + "\0\u932a\0\u9378\0\u93c6\0\u9414\0\u9462\0\u94b0\0\u94fe\0\u954c" + + "\0\u959a\0\u95e8\0\u9636\0\u9684\0\u96d2\0\u9720\0\u976e\0\u97bc" + + "\0\u980a\0\u780c\0\u9858\0\u98a6\0\u98f4\0\u9942\0\u9990\0\u99de" + + "\0\u9a2c\0\u9a7a\0\u9ac8\0\u9b16\0\u9b64\0\u9bb2\0\u9c00\0\u9c4e" + + "\0\u9c9c\0\u9cea\0\u9d38\0\u9d86\0\u9dd4\0\u9e22\0\u9e70\0\u9ebe" + + "\0\u9f0c\0\u9f5a\0\u9fa8\0\u9ff6\0\ua044\0\ua092\0\ua0e0\0\ua12e" + + "\0\ua17c\0\ua1ca\0\ua218\0\ua266\0\ua2b4\0\ua302\0\ua350\0\ua39e" + + "\0\ua3ec\0\ua43a\0\ua488\0\ua4d6\0\ua524\0\ua572\0\ua5c0\0\ua60e" + + "\0\ua65c\0\ua6aa\0\ua6f8\0\ua746\0\ua794\0\ua7e2\0\ua830\0\ua87e" + + "\0\ua8cc\0\ua91a\0\ua968\0\ua9b6\0\uaa04\0\uaa52\0\uaaa0\0\uaaee" + + "\0\uab3c\0\uab8a\0\uabd8\0\uac26\0\uac74\0\uacc2\0\uad10\0\uad5e" + + "\0\uadac\0\uadfa\0\uae48\0\uae96\0\uaee4\0\uaf32\0\uaf80\0\uafce"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[616]; + 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 = "\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\14" + "\1\13\1\17\1\20\1\10\2\13\1\21\1\22\1\13" + + "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32" + "\1\33\2\22\1\34\1\22\1\35\1\36\1\35\1\37" + + "\1\40\1\30\1\41\1\13\1\42\1\13\1\43\1\44" + "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54" + + "\1\55\1\56\1\13\1\57\1\13\1\60\1\13\1\61" + "\1\13\1\62\1\63\1\64\1\65\1\66\1\67\1\70" + + "\1\71\1\72\1\73\1\13\1\74\1\75\1\76\1\77" + "\2\13\1\100\1\101\2\102\1\103\10\102\1\104\101\102" + + "\1\105\2\106\1\107\10\106\1\110\30\106\1\111\51\106" + "\2\112\1\113\14\112\1\114\25\112\1\115\3\112\1\116" + + "\3\112\1\117\40\112\2\120\1\121\42\120\1\122\3\120" + "\1\123\3\120\1\124\40\120\2\102\1\125\10\102\1\126" + + "\101\102\1\127\2\106\1\130\10\106\1\131\30\106\1\132" + "\51\106\1\10\2\0\6\10\1\0\4\10\2\0\4\10" + + "\16\0\1\10\2\0\50\10\2\0\1\11\232\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\50\13\1\0\1\134\2\0\1\134" + "\2\14\1\134\1\14\1\134\1\0\4\134\2\0\1\134" + + "\1\135\1\136\1\137\1\0\1\140\14\0\1\134\2\0" + "\4\134\1\136\1\134\1\135\1\137\10\134\1\136\11\134" + + "\1\136\15\134\1\0\1\134\2\0\1\134\1\141\1\142" + "\1\134\1\142\1\134\1\0\4\134\2\0\1\143\1\135" + + "\1\136\1\137\1\0\1\140\14\0\1\134\2\0\4\134" + "\1\136\1\134\1\135\1\137\7\134\1\143\1\136\11\134" + + "\1\136\15\134\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\11\13" + + "\1\144\36\13\1\0\1\10\2\0\6\10\1\0\4\10" + "\2\0\4\10\16\0\1\10\2\0\3\10\1\145\1\10" + + "\1\146\1\147\4\10\1\150\34\10\17\0\1\151\1\152" + "\12\0\1\35\115\0\1\35\63\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\5\13\1\153\42\13\1\0\1\10\2\0\5\13" + + "\1\154\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\11\13\1\155\36\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\17\13\1\156\3\13\1\157\24\13\25\0" + + "\1\35\5\0\1\35\67\0\2\140\1\0\1\140\136\0" + "\1\35\1\0\1\35\114\0\1\160\1\35\115\0\1\35" + + "\1\0\1\161\113\0\1\35\4\0\1\35\110\0\1\35" + "\6\0\1\35\54\0\1\10\2\0\1\162\2\10\1\162" + + "\1\10\1\162\1\0\4\10\2\0\4\162\16\0\1\10" + "\2\0\50\162\45\0\1\163\51\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\1\164\12\13\1\165\5\13\1\166\26\13\1\0" + + "\1\10\2\0\5\13\1\167\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\1\13\1\170\5\13" + + "\1\171\1\172\4\13\1\173\32\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\5\13\1\174\3\13\1\175\3\13\1\176" + "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\2\177" + "\11\13\1\200\4\13\1\201\24\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\5\13\1\202\42\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\6\13\1\203\10\13\1\204\30\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\205\47\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\3\13\1\206\6\13\1\207\35\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\13\13\1\210\1\13" + + "\1\211\32\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13" + + "\1\212\40\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13" + + "\1\213\2\13\1\214\3\13\1\215\32\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\2\13\1\216\45\13\1\0\1\10" + "\2\0\5\13\1\217\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\7\13\1\220\40\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\7\13\1\221\5\13\1\222" + "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\171" + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\176" + "\3\13\1\223\32\13\1\0\1\10\2\0\5\13\1\224" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\11\13\1\225\3\13\1\226\32\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\1\13\1\227\1\13\1\230\2\13" + + "\1\231\7\13\1\232\31\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\3\13\1\233\44\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\6\13\1\234\6\13\1\235\32\13\1\0\1\10" + "\2\0\5\13\1\236\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\5\13\1\237\3\13\1\240" + "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\5\13\1\241" + "\13\13\1\242\26\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\11\13\1\243\36\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\11\13\1\244\36\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\1\13\1\245\5\13\1\246\40\13\1\0\1\10\2\0" + + "\5\13\1\247\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\12\13\1\250\35\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\11\13\1\251\1\13\1\252\34\13" + + "\1\0\1\10\2\0\5\13\1\253\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\7\13\1\254\40\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\13\13\1\255\34\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\16\13\1\256\31\13\116\0" + + "\1\257\2\102\1\0\10\102\1\0\101\102\1\0\2\260" + "\1\0\5\260\1\261\53\260\1\262\31\260\2\106\1\0" + + "\10\106\1\0\30\106\1\0\51\106\2\112\1\0\14\112" + "\1\0\25\112\1\0\3\112\1\0\3\112\1\0\40\112" + + "\16\0\1\263\145\0\1\264\115\0\1\265\3\0\1\266" + "\120\0\1\267\40\0\2\120\1\0\42\120\1\0\3\120" + + "\1\0\3\120\1\0\40\120\46\0\1\270\115\0\1\271" + "\3\0\1\272\120\0\1\273\40\0\2\274\1\0\113\274" + + "\115\0\1\275\2\276\1\0\113\276\44\0\1\277\51\0" + "\1\10\2\0\5\10\1\300\1\0\4\10\2\0\4\10" + + "\16\0\1\10\2\0\50\10\1\0\1\134\2\0\6\134" + "\1\0\4\134\2\0\4\134\16\0\1\134\2\0\50\134" + + "\1\0\1\134\2\0\1\134\2\301\1\134\1\301\1\134" + "\1\0\4\134\2\0\4\134\1\302\3\0\1\302\11\0" + + "\1\134\2\0\50\134\1\0\1\134\2\0\1\134\2\140" + "\1\134\1\140\1\134\1\0\4\134\2\0\2\134\1\136" + + "\1\137\16\0\1\134\2\0\4\134\1\136\2\134\1\137" + "\10\134\1\136\11\134\1\136\15\134\1\0\1\134\2\0" + + "\1\134\2\141\1\134\1\141\1\134\1\0\4\134\2\0" + "\2\134\1\136\1\137\1\0\1\140\14\0\1\134\2\0" + + "\4\134\1\136\2\134\1\137\10\134\1\136\11\134\1\136" + "\15\134\1\0\1\134\2\0\1\134\1\141\1\142\1\134" + + "\1\142\1\134\1\0\4\134\2\0\1\134\1\303\1\136" + "\1\137\1\0\1\140\14\0\1\134\2\0\4\134\1\136" + + "\1\134\1\303\1\137\10\134\1\136\11\134\1\136\15\134" + "\1\0\1\134\2\0\1\134\4\304\1\134\1\0\4\134" + + "\2\0\2\134\2\304\16\0\1\134\2\0\4\134\1\304" + "\2\134\1\304\1\134\2\304\1\134\1\304\3\134\1\304" + + "\7\134\3\304\15\134\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\20\13\1\305\27\13\1\0\1\10\2\0\6\10\1\0" + "\4\10\2\0\4\10\16\0\1\10\2\0\15\10\1\306" + + "\32\10\1\0\1\10\2\0\6\10\1\0\4\10\2\0" + "\4\10\16\0\1\10\2\0\23\10\1\307\24\10\1\0" + + "\1\10\2\0\6\10\1\0\4\10\2\0\4\10\16\0" + "\1\10\2\0\5\10\1\310\42\10\1\0\1\10\2\0" + "\6\10\1\0\4\10\2\0\4\10\16\0\1\10\2\0" + + "\7\10\1\311\40\10\20\0\1\312\76\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\3\13\1\313\12\13\1\314\31\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\16\13\1\315\31\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\6\13\1\316\41\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\2\13\1\317\11\13\1\320" + "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\2\13\1\321" + "\45\13\33\0\1\35\1\0\1\22\61\0\1\10\2\0" + + "\6\162\1\0\4\10\2\0\4\162\16\0\1\10\2\0" + "\50\162\45\0\1\322\51\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\5\13\1\323\5\13\1\324\34\13\1\0\1\10\2\0" + + "\5\13\1\325\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\21\13\1\177\26\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\2\13\1\326\45\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\2\13\1\327\45\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\11\13\1\330\36\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\1\13\1\177\46\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\5\13\1\331\42\13\1\0\1\10" + + "\2\0\5\13\1\332\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\50\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\16\13\1\333\31\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\6\13\1\334\5\13\1\335\33\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\13\13\1\177\34\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\336\46\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\2\13\1\337\45\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\12\13\1\340\35\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\3\13\1\341\44\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\342\46\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\5\13\1\343\42\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\3\13\1\344\44\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\3\13\1\345\44\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\7\13\1\346\40\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\15\13\1\347\32\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\350\46\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\11\13\1\351\36\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\352\1\13\1\341" + + "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\353" + + "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\354" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\355" + + "\14\13\1\356\24\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\10\13\1\177\11\13\1\357\25\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\4\13\1\360\43\13\1\0\1\10\2\0" + "\5\13\1\361\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\50\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\5\13\1\362\42\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\6\13\1\363\41\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\26\13\1\177\21\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\1\13\1\364\33\13\1\365\1\366\11\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\7\13\1\367\40\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\15\13\1\370\32\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\6\13\1\371\41\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\1\13\1\372\2\13\1\373" + "\13\13\1\374\27\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\3\13\1\375\44\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\15\13\1\376\32\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\6\13\1\377\14\13\1\u0100\24\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\13\13\1\u0101\34\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\3\13\1\u0102\44\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\1\13\1\u0103\46\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\23\13\1\u0104\24\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\2\13\1\u0105\45\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\3\13\1\u0106\44\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\1\13\1\u0107\1\u0108\45\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\11\13\1\u0109\1\13\1\u010a\1\13" + + "\1\u010b\32\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13" + + "\1\u0108\14\13\1\u010c\31\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\1\13\1\u010d\46\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\40\13\1\u010e\7\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\1\13\1\u010f\46\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\15\13\1\u0110\32\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\7\13\1\u0111\40\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\14\13\1\u0112\5\13\1\u0113\25\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\15\13\1\u0114\32\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\3\13\1\u0115\44\13\116\0\1\u0116" + "\4\0\4\u0117\12\0\2\u0117\25\0\1\u0117\2\0\1\u0117" + + "\1\0\2\u0117\1\0\1\u0117\3\0\1\u0117\7\0\3\u0117" + "\22\0\4\u0118\12\0\2\u0118\25\0\1\u0118\2\0\1\u0118" + + "\1\0\2\u0118\1\0\1\u0118\3\0\1\u0118\7\0\3\u0118" + "\64\0\1\u0119\116\0\1\u011a\121\0\1\u011b\117\0\1\u011c" + + "\106\0\1\u011d\116\0\1\u011e\121\0\1\u011f\117\0\1\u0120" + "\155\0\1\u0121\44\0\1\u0122\51\0\1\10\2\0\1\10" + + "\4\u0123\1\10\1\0\4\10\2\0\2\10\2\u0123\16\0" + "\1\10\2\0\4\10\1\u0123\2\10\1\u0123\1\10\2\u0123" + + "\1\10\1\u0123\3\10\1\u0123\7\10\3\u0123\15\10\1\0" + "\1\134\2\0\1\134\2\301\1\134\1\301\1\134\1\0" + + "\4\134\2\0\2\134\1\136\1\134\16\0\1\134\2\0" + "\4\134\1\136\13\134\1\136\11\134\1\136\15\134\5\0" + + "\2\301\1\0\1\301\106\0\1\134\2\0\1\134\4\304" + "\1\134\1\0\4\134\2\0\1\134\1\303\2\304\16\0" + + "\1\134\2\0\4\134\1\304\1\134\1\303\1\304\1\134" + "\2\304\1\134\1\304\3\134\1\304\7\134\3\304\15\134" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\26\13\1\u0124\21\13" + + "\1\0\1\10\2\0\5\10\1\u0125\1\0\4\10\2\0" + "\4\10\16\0\1\10\2\0\50\10\1\0\1\10\2\0" + "\6\10\1\0\4\10\2\0\4\10\16\0\1\10\2\0" + + "\2\10\1\u0126\45\10\1\0\1\10\2\0\6\10\1\0" + "\4\10\2\0\4\10\16\0\1\10\2\0\12\10\1\u0127" + + "\35\10\1\0\1\10\2\0\6\10\1\0\4\10\2\0" + "\4\10\16\0\1\10\2\0\3\10\1\145\44\10\17\0" + + "\1\u0128\77\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u0108" + + "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\25\13\1\u0129" + + "\22\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\14\13\1\u012a" + + "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\u012b" + + "\41\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u012c" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u012d" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u012e" + + "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\177" + + "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u012f" + + "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u0130" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u0131" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\176" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u0132" + + "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\352" + + "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0133" + + "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u0134" + + "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\325" + + "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u0135" + + "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u0136" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\u0137" + + "\6\13\1\u0138\32\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\13\13\1\u0139\34\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\177\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u013a\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\6\13\1\341\41\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u0138\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\1\13\1\u013b\46\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\11\13\1\u013c\36\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\6\13\1\356\41\13\1\0\1\10\2\0\5\13\1\u013d" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\50\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13" + + "\1\323\44\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\14\13" + + "\1\u013e\33\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13" + + "\1\u013f\1\13\1\171\44\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\13\13\1\u0140\34\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\6\13\1\177\41\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\11\13\1\u0141\36\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\11\13\1\u0142\36\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\12\13\1\u0143\35\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\20\13\1\356\27\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\6\13\1\u0144\41\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\27\13\1\u0145\20\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\15\13\1\u0146\32\13\1\0\1\10\2\0\5\13" + "\1\u0147\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\50\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\13\13\1\u0148\34\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\6\13\1\u0149\41\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u014a\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u014b\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\5\13\1\u014c\42\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u014d\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u014e\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\3\13\1\u014f\10\13\1\u0150\33\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\6\13\1\u0151\41\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\2\13\1\u0152\45\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\11\13\1\u012a\36\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\2\13\1\u0153\45\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\7\13\1\u0108\40\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\7\13\1\u0154\40\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\7\13\1\u0155\40\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\1\u0156\47\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\1\u0108\13\13\1\u0157\33\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\14\13\1\u0158\33\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\5\13\1\u0159\42\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\2\13\1\u015a\45\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\20\13\1\u015b\27\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\37\13\1\u015c\10\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\7\13\1\u015d\40\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\1\13\1\u015e\46\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\17\13\1\u015f\3\13\1\u0160\24\13\1\0" + "\1\10\2\0\5\13\1\u0103\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\50\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\7\13\1\u0161\40\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\3\13" + + "\1\u0162\16\0\1\10\2\0\50\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\16\13\1\u0163\31\13\1\0\1\10\2\0" + "\5\13\1\u0164\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\50\13\5\0\4\u0165\12\0\2\u0165" + "\25\0\1\u0165\2\0\1\u0165\1\0\2\u0165\1\0\1\u0165" + + "\3\0\1\u0165\7\0\3\u0165\22\0\4\u0166\12\0\2\u0166" + "\25\0\1\u0166\2\0\1\u0166\1\0\2\u0166\1\0\1\u0166" + + "\3\0\1\u0166\7\0\3\u0166\65\0\1\u0167\106\0\1\u0168" + "\131\0\1\u011a\66\0\1\u0169\137\0\1\u016a\106\0\1\u016b" + + "\131\0\1\u011e\66\0\1\u016c\70\0\1\10\2\0\1\10" + "\4\u016d\1\10\1\0\4\10\2\0\2\10\2\u016d\16\0" + + "\1\10\2\0\4\10\1\u016d\2\10\1\u016d\1\10\2\u016d" + "\1\10\1\u016d\3\10\1\u016d\7\10\3\u016d\15\10\1\0" + + "\1\10\2\0\5\13\1\u016e\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\50\13\1\0\1\10" + + "\2\0\6\10\1\0\4\10\2\0\4\10\16\0\1\10" + "\2\0\13\10\1\u016f\34\10\1\0\1\10\2\0\6\10" + + "\1\0\4\10\2\0\4\10\16\0\1\10\2\0\15\10" + "\1\u0170\32\10\1\0\1\10\2\0\6\10\1\0\4\10" + + "\2\0\4\10\16\0\1\10\2\0\13\10\1\u0171\34\10" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\7\13\1\u0172\40\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\1\13\1\u0173\46\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\33\13\1\u0174\14\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\14\13\1\u0175\33\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\2\13\1\u012a\45\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\21\13\1\u0176\26\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\10\13\1\177\37\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\20\13\1\u0177\27\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\5\13\1\u0178\42\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\14\13\1\341\33\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\6\13\1\u0179\41\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\15\13\1\u017a\32\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\13\13\1\u017b\34\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\7\13\1\u017c\40\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\13\13\1\171\34\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\11\13\1\u017a\36\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\16\13\1\u017d\31\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\13\13\1\u017e\34\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\25\13\1\177\22\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\13\13\1\u017f\34\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\1\177\47\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\5\13\1\u0180\42\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\11\13\1\u0181\36\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\1\13\1\341\46\13\1\0" + "\1\10\2\0\5\13\1\u0182\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\50\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\6\13\1\u0183\41\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\41\13\1\u0184\6\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\23\13\1\u0185\24\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\13\13\1\u0186\34\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\14\13\1\u0187\33\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\11\13\1\u0188\36\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\11\13\1\240\36\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\22\13\1\u0189\25\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\22\13\1\u018a\25\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\16\13\1\u018b\31\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\17\13\1\u018c\30\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\13\13\1\u018d\34\13\1\0\1\10" + "\2\0\5\13\1\u018e\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\50\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\25\13\1\u0108\22\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\7\13\1\315\40\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\11\13\1\u018f\36\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\11\13\1\u0190\36\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\45\13\1\u0191\2\13\1\0\1\10\2\0" + "\6\13\1\0\1\10\1\133\2\13\2\0\3\13\1\u0192" + + "\16\0\1\10\2\0\50\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\11\13\1\u0193\23\13\1\u0194\1\u0195\11\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\1\u0108\47\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\25\13\1\u0196\22\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\16\13\1\u0197\31\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\44\13\1\u0198\3\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\41\13\1\u0199\6\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\4\13\1\u019a\43\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\14\13\1\u019b\33\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\7\13\1\u019c\40\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\21\13\1\u0108\26\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\5\13\1\u019d\42\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\5\13\1\u019e\42\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\17\13\1\u019f\30\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\22\13\1\u01a0\25\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\2\13\1\u01a1\45\13\41\0\1\u0168" + "\7\0\1\u011a\63\0\1\u01a2\102\0\6\u0169\1\0\1\u01a3" + + "\1\0\1\u01a3\2\u0169\1\u01a3\4\u0169\2\u01a3\1\0\2\u01a3" + "\1\0\1\u01a3\2\0\4\u01a3\1\0\3\u01a3\50\u0169\41\0" + + "\1\u016b\7\0\1\u011e\63\0\1\u01a4\102\0\6\u016c\1\0" + "\1\u01a5\1\0\1\u01a5\2\u016c\1\u01a5\4\u016c\2\u01a5\1\0" + + "\2\u01a5\1\0\1\u01a5\2\0\4\u01a5\1\0\3\u01a5\50\u016c" + "\1\0\1\10\2\0\1\10\4\u01a6\1\10\1\0\4\10" + + "\2\0\2\10\2\u01a6\16\0\1\10\2\0\4\10\1\u01a6" + "\2\10\1\u01a6\1\10\2\u01a6\1\10\1\u01a6\3\10\1\u01a6" + + "\7\10\3\u01a6\15\10\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\23\13\1\u01a7\24\13\1\0\1\10\2\0\6\10\1\0" + "\4\10\2\0\4\10\16\0\1\10\2\0\14\10\1\u01a8" + + "\33\10\1\0\1\10\2\0\6\10\1\0\4\10\2\0" + "\4\10\16\0\1\10\2\0\13\10\1\u01a9\34\10\1\0" + + "\1\10\2\0\6\10\1\0\4\10\2\0\4\10\16\0" + "\1\10\2\0\11\10\1\u01aa\36\10\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\20\13\1\u01ab\27\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\5\13\1\u01ac\42\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\1\u01ad\47\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\1\13\1\u01ae\46\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\42\13\1\u01af\5\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\7\13\1\u01b0\40\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\14\13\1\177\33\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\6\13\1\u01b1\41\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\13\13\1\u01b1\34\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\4\13\1\u01b2\43\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\23\13\1\u01b3\24\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\20\13\1\323\27\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\11\13\1\u01b4\36\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\16\13\1\u01b5\31\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\16\13\1\u01b6\31\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\1\13\1\u01b7\46\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\6\13\1\171\41\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\7\13\1\356\40\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\15\13\1\u01b8\32\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\2\13\1\u01b9\45\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\7\13\1\u01ba\40\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\1\u01bb\47\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\1\13\1\u01bc\10\13\1\u01bd\35\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\11\13\1\u01be\36\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\7\13\1\u01bf\40\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\5\13\1\u01c0\42\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\37\13\1\u01c1\10\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\1\13\1\u01c2\46\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\13\13\1\u01c3\34\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\13\13\1\u01c4\34\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\1\13\1\u01c5\46\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\15\13\1\u01c6\32\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\13\13\1\u01c7\34\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\12\13\1\u01bd\35\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\11\13\1\u019f\36\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\7\13\1\313\40\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\37\13\1\u01c8\10\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\22\13\1\u01c9\25\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\11\13\1\u01ca\36\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\15\13\1\u01cb\32\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\35\13\1\u01cc\12\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\1\13\1\u01cd\46\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\13\13\1\u01ce\34\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\3\13\1\u0103\44\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\24\13\1\u01cf\23\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\2\13\1\u0108\45\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\30\13\1\u01d0\17\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\2\13\1\u01d1\45\13\17\0\1\u0169\115\0" + + "\1\u016c\77\0\1\10\2\0\1\10\4\13\1\10\1\0" + "\4\10\2\0\2\10\2\13\16\0\1\10\2\0\4\10" + + "\1\13\2\10\1\13\1\10\2\13\1\10\1\13\3\10" + "\1\13\7\10\3\13\15\10\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\12\13\1\u01d2\35\13\1\0\1\10\2\0\6\10" + + "\1\0\4\10\2\0\4\10\16\0\1\10\2\0\7\10" + "\1\u01d3\40\10\1\0\1\10\2\0\6\10\1\0\4\10" + + "\2\0\4\10\16\0\1\10\2\0\1\10\1\u01d3\46\10" + "\1\0\1\10\2\0\6\10\1\0\4\10\2\0\4\10" + + "\16\0\1\10\2\0\13\10\1\u01d4\34\10\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\34\13\1\u01d5\13\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\15\13\1\u01ce\32\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\13\13\1\u01d6\34\13\1\0\1\10" + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\3\13" + + "\1\u01d7\16\0\1\10\2\0\50\13\1\0\1\10\2\0" + "\5\13\1\u01d8\1\0\1\10\1\133\2\13\2\0\4\13" + + "\16\0\1\10\2\0\50\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\4\13\1\177\43\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\21\13\1\177\26\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\11\13\1\u0133\36\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\7\13\1\u01d9\40\13\1\0\1\10\2\0\6\13" + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + + "\2\0\14\13\1\171\33\13\1\0\1\10\2\0\5\13" + "\1\341\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + + "\1\10\2\0\50\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\15\13\1\176\32\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\5\13\1\u01da\42\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\6\13\1\u01db\41\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\3\13\1\u01dc\16\0\1\10" + + "\2\0\50\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\35\13" + + "\1\u01dd\12\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\15\13" + + "\1\u01de\32\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13" + + "\1\u0103\41\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13" + + "\1\u01df\41\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\13\13" + + "\1\u01e0\34\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13" + + "\1\u01b1\46\13\1\0\1\10\2\0\5\13\1\u01e1\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\50\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\5\13\1\u01e2" + + "\42\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01e3" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u0193" + + "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\14\13\1\u01e4" + + "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u0103" + + "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u01bc" + + "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\24\13\1\u01e5" + + "\23\13\1\0\1\10\2\0\3\13\1\u01e6\2\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\3\13\1\u0108\44\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\1\13\1\u01e7\46\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\13\13\1\313\34\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u01e8\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\26\13\1\u01e9\21\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\16\13\1\u0108\31\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u015b\40\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\13\13\1\u01ea\34\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\15\13\1\u01eb\32\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\7\13\1\u01ec\40\13\1\0\1\10\2\0\6\10\1\0" + "\4\10\2\0\4\10\16\0\1\10\2\0\21\10\1\u01d3" + + "\26\10\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u01ed" + + "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u01ee" + + "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\17\13\1\u01ef" + + "\30\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01f0" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u01f1" + + "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u01f2" + + "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01f3" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\6\13\1\u01f4" + + "\41\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u01f5" + + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0108" + + "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\30\13\1\u01f6" + + "\15\13\1\u01f7\1\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\32\13\1\u01f8\15\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\1\13\1\u01f9\46\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\15\13\1\u01fa\32\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\30\13\1\u01fb\17\13\1\0\1\10\2\0\6\13\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\1\u01fc\47\13\1\0\1\10\2\0\6\13\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13" + + "\1\u01fd\40\13\1\0\1\10\2\0\5\13\1\u01fe\1\0" + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + + "\50\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\14\13\1\u0157" + + "\33\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\23\13\1\u01ff" + + "\24\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u0200" + + "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\22\13\1\u0201" + + "\25\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0202" + + "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\13\13\1\u0203" + + "\34\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\u0204" + + "\44\13\1\0\1\10\2\0\5\13\1\u0205\1\0\1\10" + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\50\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\14\13\1\320\33\13" + + "\1\0\1\10\2\0\5\13\1\u0206\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\323\46\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\u0207\46\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\23\13\1\u0208\24\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\7\13\1\u0209\40\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\u020a\46\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\13\13\1\u020b\1\u020c\33\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\36\13\1\u020d\11\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\5\13\1\u020e\42\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\37\13\1\u020f\10\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\16\13\1\u0155\31\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0210\34\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\7\13\1\u01de\40\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0211\34\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\4\13\1\u0212\43\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\15\13\1\u0213\32\13" + + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + "\2\0\4\13\16\0\1\10\2\0\1\13\1\u0214\46\13" + + "\1\0\1\10\2\0\5\13\1\u0215\1\0\1\10\1\133" + "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\13\1\u0216\46\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\2\13\1\u0217\1\13\16\0\1\10\2\0\50\13\1\0" + + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + "\4\13\16\0\1\10\2\0\1\u0218\47\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\22\13\1\u0219\25\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\7\13\1\u021a\40\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\7\13\1\u021b\40\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\7\13\1\u021c\40\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\23\13\1\u021d\24\13\1\0\1\10" + + "\2\0\6\13\1\0\1\10\1\133\2\13\2\0\4\13" + "\16\0\1\10\2\0\1\u021e\47\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\22\13\1\u021f\25\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\14\13\1\u0220\33\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\43\13\1\u0221\4\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\24\13\1\u0222\23\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\4\13\1\u0223\43\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\22\13\1\u0224\25\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\4\13\1\u0225\43\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\4\13\1\u01fc\43\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\13\13\1\u0226\34\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\31\13\1\u0227\16\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\23\13\1\u0228\24\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\7\13\1\u0229\40\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\15\13\1\u022a\32\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\35\13\1\u0194\12\13\1\0\1\10\2\0" + + "\6\13\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\1\u0155\47\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\13\13\1\u021a\34\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\16\13\1\u022b\31\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\7\13\1\u022c\40\13\1\0\1\10\2\0\6\13" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\15\13\1\u022d\32\13\1\0\1\10\2\0\5\13" + + "\1\u022e\1\0\1\10\1\133\2\13\2\0\4\13\16\0" + "\1\10\2\0\50\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\7\13\1\u022f\40\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\7\13\1\u0230\40\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\5\13\1\u0231\42\13\1\0\1\10\2\0\6\13\1\0" + + "\1\10\1\133\2\13\2\0\4\13\16\0\1\10\2\0" + "\43\13\1\u0232\4\13\1\0\1\10\2\0\5\13\1\u0233" + + "\1\0\1\10\1\133\2\13\2\0\4\13\16\0\1\10" + "\2\0\50\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13" + "\1\u0234\41\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\21\13" + "\1\u021a\26\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\6\13" + "\1\u0235\41\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13" + "\1\u0236\40\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\20\13" + "\1\u0237\27\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\13\13" + "\1\u0238\34\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13" + "\1\u0239\46\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\16\13" + "\1\u023a\31\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\20\13" + "\1\u021a\27\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\23\13" + "\1\u023b\24\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13" + "\1\u023c\44\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\22\13" + "\1\u023d\25\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13" + "\1\u023e\44\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\11\13" + "\1\u023f\36\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\23\13" + "\1\u0240\24\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\15\13" + "\1\u0241\32\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\15\13" + "\1\u0242\32\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\16\13" + "\1\u0243\31\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\37\13" + "\1\u0244\10\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\23\13" + "\1\u0245\24\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13" + "\1\u022d\40\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\1\13" + "\1\u023c\46\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\7\13" + "\1\u0246\40\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\3\13" + "\1\u021a\44\13\1\0\1\10\2\0\6\13\1\0\1\10" + + "\1\133\2\13\2\0\3\13\1\u0247\16\0\1\10\2\0" + "\50\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\5\13\1\u0248" + "\42\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u0249" + "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\7\13\1\u024a" + "\40\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\10\13\1\u021a" + "\37\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\3\13\1\u024b" + "\44\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\1\13\1\u024c" + "\46\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\2\13\1\u024d" + "\45\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\11\13\1\u024e" + "\36\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u024e" + "\31\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\17\13\1\u024f" + "\30\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\15\13\1\u0250" + "\32\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\22\13\1\u0206" + "\25\13\1\0\1\10\2\0\6\13\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\16\13\1\u0251" + "\31\13\1\0\1\10\2\0\5\13\1\u0252\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\50\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\31\13\1\u0253\16\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\7\13\1\u0254\40\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\1\13\1\u021a\46\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\2\13\1\u021a\45\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\16\13\1\u0255\31\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\1\13\1\u0256\46\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0206\34\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\15\13\1\u0257\32\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\13\13\1\u0258\34\13" + "\1\0\1\10\2\0\3\13\1\u0259\2\13\1\0\1\10" + + "\1\133\2\13\2\0\4\13\16\0\1\10\2\0\50\13" + "\1\0\1\10\2\0\6\13\1\0\1\10\1\133\2\13" + + "\2\0\4\13\16\0\1\10\2\0\35\13\1\u025a\12\13" + "\1\0\1\10\2\0\5\13\1\u0246\1\0\1\10\1\133" + + "\2\13\2\0\4\13\16\0\1\10\2\0\50\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\11\13\1\u025b\36\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\21\13\1\u025c\26\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\5\13\1\u025d\42\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\1\13\1\u025e\46\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\45\13\1\u025f\2\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\3\13\1\u0260\44\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\5\13\1\u0261\42\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\7\13\1\u0262\40\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\23\13\1\u0263\24\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\15\13\1\u0264\32\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\13\13\1\u0265\34\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\11\13\1\u0266\36\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\16\13\1\u021a\31\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\15\13\1\u021a\32\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\1\13\1\u0267\46\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\14\13\1\u0268\33\13\1\0" + "\1\10\2\0\6\13\1\0\1\10\1\133\2\13\2\0" + + "\4\13\16\0\1\10\2\0\1\u021a\47\13\1\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[45084]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\5\0\4\1\1\11\4\1\1\11\10\1\2\11\3\1" + "\1\11\45\1\1\11\1\1\1\11\1\1\1\11\1\1" + + "\1\11\1\1\1\11\5\1\1\11\3\1\1\11\2\1" + "\1\11\20\1\1\11\6\1\1\0\2\1\1\0\73\1" + "\1\0\1\11\2\1\1\11\10\0\1\11\1\0\1\11" + + "\1\0\2\1\1\0\7\1\1\0\7\1\1\11\103\1" + "\1\11\12\0\2\11\5\1\1\11\74\1\1\0\1\11" + "\2\0\1\1\2\0\66\1\4\0\303\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[616]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specifying we're in a JavaScript multi-line comment. */ - private static final int INTERNAL_IN_JS_MLC = -8; - + private static final int INTERNAL_IN_JS_MLC = -8; /** * Token type specifying we're in an invalid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_INVALID = -10; - + private static final int INTERNAL_IN_JS_STRING_INVALID = -10; /** * Token type specifying we're in a valid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_VALID = -11; - + private static final int INTERNAL_IN_JS_STRING_VALID = -11; /** - * Token type specifying we're in an invalid multi-line JS single-quoted string. + * Token type specifying we're in an invalid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_INVALID = -12; - + private static final int INTERNAL_IN_JS_CHAR_INVALID = -12; /** - * Token type specifying we're in a valid multi-line JS single-quoted string. + * Token type specifying we're in a valid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_VALID = -13; - + private static final int INTERNAL_IN_JS_CHAR_VALID = -13; /** * When in the JS_STRING state, whether the current string is valid. */ private boolean validJSString; - /** * The version of JavaScript being highlighted. */ private static String jsVersion; - /** - * Language state set on JS tokens. Must be 0. + * Language state set on JS tokens. Must be 0. */ - private static final int LANG_INDEX_DEFAULT = 0; - + private static final int LANG_INDEX_DEFAULT = 0; + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public DartTokenMaker() { super(); } - - + static { jsVersion = "1.0"; } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * Returns the closest {@link TokenTypes "standard" token type} for a given * "internal" token type (e.g. one whose value is < 0). */ - @Override + @Override public int getClosestStandardTokenTypeForInternalType(int type) { switch (type) { case INTERNAL_IN_JS_MLC: @@ -1556,8 +975,7 @@ public class DartTokenMaker extends AbstractJFlexCTokenMaker { } return type; } - - + /** * Returns the JavaScript version being highlighted. * @@ -1567,8 +985,7 @@ public class DartTokenMaker extends AbstractJFlexCTokenMaker { public static String getJavaScriptVersion() { return jsVersion; } - - + /** * {@inheritDoc} */ @@ -1576,28 +993,28 @@ public class DartTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; validJSString = true; int languageIndex = LANG_INDEX_DEFAULT; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -1628,7 +1045,6 @@ public class DartTokenMaker extends AbstractJFlexCTokenMaker { state = YYINITIAL; // ??? break; } - setLanguageIndex(languageIndex); start = text.offset; s = text; @@ -1640,48 +1056,45 @@ public class DartTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Returns whether features for a specific JS version should be honored * while highlighting. * - * @param version JavaScript version required + * @param version + * JavaScript version required * @return Whether the JavaScript version is the same or greater than * version required. */ public static boolean isJavaScriptCompatible(String version) { return jsVersion.compareTo(version) >= 0; } - - + /** * Set the supported JavaScript version because some keywords were * introduced on or after this version. * - * @param javaScriptVersion The version of JavaScript to support, such as - * "1.5" or "1.6". + * @param javaScriptVersion + * The version of JavaScript to support, such as + * "1.5" or "1.6". * @see #isJavaScriptCompatible(String) * @see #getJavaScriptVersion() */ public static void setJavaScriptVersion(String javaScriptVersion) { jsVersion = javaScriptVersion; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1690,7 +1103,8 @@ public class DartTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1699,478 +1113,542 @@ public class DartTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 DartTokenMaker(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 DartTokenMaker(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 < 190) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 11: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 45: break; - case 5: - { addToken(Token.IDENTIFIER); - } - case 46: break; - case 41: - { addToken(Token.LITERAL_BOOLEAN); - } - case 47: break; - case 39: - { addToken(start,zzStartRead+2, Token.LITERAL_CHAR); yybegin(YYINITIAL); - } - case 48: break; - case 30: - { /* Skip all escaped chars. */ - } - case 49: break; - case 32: - { /* Invalid latin-1 character \xXX */ validJSString = false; - } - case 50: break; - case 38: - { addToken(start,zzStartRead+2, Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(YYINITIAL); - } - case 51: break; - case 23: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 52: break; - case 17: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 53: break; - case 36: - { addToken(Token.FUNCTION); - } - case 54: break; - case 28: - { addToken(Token.ANNOTATION); - } - case 55: break; - case 2: - { addToken(Token.ERROR_IDENTIFIER); - } - case 56: break; - case 27: - { start = zzMarkedPos-2; yybegin(JS_MLC); - } - case 57: break; - case 13: - { int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 58: break; - case 37: - { start = zzMarkedPos-3; yybegin(DART_MULTILINE_STRING_DOUBLE); - } - case 59: break; - case 16: - { int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 60: break; - case 14: - { addToken(start,zzStartRead-1, Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 61: break; - case 26: - { start = zzMarkedPos-2; yybegin(JS_EOL_COMMENT); - } - case 62: break; - case 20: - { /* Skip escaped chars, handles case: '\"""'. */ - } - case 63: break; - case 34: - { start = zzMarkedPos-3; yybegin(DART_MULTILINE_STRING_SINGLE); - } - case 64: break; - case 25: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 65: break; - case 12: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - addEndToken(INTERNAL_IN_JS_STRING_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_STRING_INVALID); - } + + /** + * 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 DartTokenMaker(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 DartTokenMaker(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 < 190) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 11: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 45: + break; + case 5: { + addToken(Token.IDENTIFIER); + } + case 46: + break; + case 41: { + addToken(Token.LITERAL_BOOLEAN); + } + case 47: + break; + case 39: { + addToken(start, zzStartRead + 2, Token.LITERAL_CHAR); + yybegin(YYINITIAL); + } + case 48: + break; + case 30: { /* Skip all escaped chars. */ + } + case 49: + break; + case 32: { + /* Invalid latin-1 character \xXX */ validJSString = false; + } + case 50: + break; + case 38: { + addToken(start, zzStartRead + 2, Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(YYINITIAL); + } + case 51: + break; + case 23: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 52: + break; + case 17: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 53: + break; + case 36: { + addToken(Token.FUNCTION); + } + case 54: + break; + case 28: { + addToken(Token.ANNOTATION); + } + case 55: + break; + case 2: { + addToken(Token.ERROR_IDENTIFIER); + } + case 56: + break; + case 27: { + start = zzMarkedPos - 2; + yybegin(JS_MLC); + } + case 57: + break; + case 13: { + int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 58: + break; + case 37: { + start = zzMarkedPos - 3; + yybegin(DART_MULTILINE_STRING_DOUBLE); + } + case 59: + break; + case 16: { + int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 60: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 61: + break; + case 26: { + start = zzMarkedPos - 2; + yybegin(JS_EOL_COMMENT); + } + case 62: + break; + case 20: { /* Skip escaped chars, handles case: '\"""'. */ + } + case 63: + break; + case 34: { + start = zzMarkedPos - 3; + yybegin(DART_MULTILINE_STRING_SINGLE); + } + case 64: + break; + case 25: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 65: + break; + case 12: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_IN_JS_STRING_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_STRING_INVALID); + } + return firstToken; + } + case 66: + break; + case 3: { + addToken(Token.WHITESPACE); + } + case 67: + break; + case 35: { + addToken(Token.DATA_TYPE); + } + case 68: + break; + case 33: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 69: + break; + case 15: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_INVALID); + } + return firstToken; + } + case 70: + break; + case 6: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 71: + break; + case 10: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_STRING); + } + case 72: + break; + case 31: { + /* Invalid Unicode character \\uXXXX */ validJSString = false; + } + case 73: + break; + case 22: { /* Skip escaped chars, handles case: "\'''". */ + } + case 74: + break; + case 9: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_CHAR); + } + case 75: + break; + case 29: { + addToken(Token.RESERVED_WORD); + } + case 76: + break; + case 42: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 77: + break; + case 44: { + addToken(Token.RESERVED_WORD_2); + } + case 78: + break; + case 18: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 79: + break; + case 8: { + addToken(Token.SEPARATOR); + } + case 80: + break; + case 4: { + addNullToken(); + return firstToken; + } + case 81: + break; + case 7: { + addToken(Token.OPERATOR); + } + case 82: + break; + case 21: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 83: + break; + case 24: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 84: + break; + case 43: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 85: + break; + case 40: { + addToken(Token.COMMENT_MULTILINE); + } + case 86: + break; + case 1: {} + case 87: + break; + case 19: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 88: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case JS_STRING: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addNullToken(); return firstToken; - } - case 66: break; - case 3: - { addToken(Token.WHITESPACE); - } - case 67: break; - case 35: - { addToken(Token.DATA_TYPE); - } - case 68: break; - case 33: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 69: break; - case 15: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_INVALID); - } + } + case 617: + break; + case JS_CHAR: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addNullToken(); return firstToken; - } - case 70: break; - case 6: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 71: break; - case 10: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_STRING); - } - case 72: break; - case 31: - { /* Invalid Unicode character \\uXXXX */ validJSString = false; - } - case 73: break; - case 22: - { /* Skip escaped chars, handles case: "\'''". */ - } - case 74: break; - case 9: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_CHAR); - } - case 75: break; - case 29: - { addToken(Token.RESERVED_WORD); - } - case 76: break; - case 42: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 77: break; - case 44: - { addToken(Token.RESERVED_WORD_2); - } - case 78: break; - case 18: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 79: break; - case 8: - { addToken(Token.SEPARATOR); - } - case 80: break; - case 4: - { addNullToken(); return firstToken; - } - case 81: break; - case 7: - { addToken(Token.OPERATOR); - } - case 82: break; - case 21: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 83: break; - case 24: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 84: break; - case 43: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 85: break; - case 40: - { addToken(Token.COMMENT_MULTILINE); - } - case 86: break; - case 1: - { - } - case 87: break; - case 19: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 88: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case JS_STRING: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 617: break; - case JS_CHAR: { - addToken(start,zzStartRead-1, Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 618: break; - case DART_MULTILINE_STRING_DOUBLE: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 619: break; - case JS_EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 620: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 621: break; - case JS_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 622: break; - case DART_MULTILINE_STRING_SINGLE: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 623: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 618: + break; + case DART_MULTILINE_STRING_DOUBLE: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 619: + break; + case JS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 620: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 621: + break; + case JS_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 622: + break; + case DART_MULTILINE_STRING_SINGLE: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 623: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/DelphiTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/DelphiTokenMaker.java index f57bf60..5000a04 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/DelphiTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/DelphiTokenMaker.java @@ -1,1129 +1,685 @@ /* The following code was generated by JFlex 1.4.1 on 8/19/09 10:23 AM */ - /* * 7/28/2009 - * * DelphiTokenMaker.java - Scanner for the Delphi programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for the Delphi programming language.

+ * Scanner for the Delphi programming language. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated DelphiTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated DelphiTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class DelphiTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int COMPILER_DIRECTIVE = 3; - public static final int EOL_COMMENT = 5; - public static final int YYINITIAL = 0; - public static final int COMPILER_DIRECTIVE2 = 4; - public static final int MLC = 1; - public static final int MLC2 = 2; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\13\1\12\1\0\1\13\1\7\22\0\1\13\1\42\1\7"+ - "\1\10\1\11\1\42\1\42\1\14\1\17\1\21\1\20\1\27\1\42"+ - "\1\27\1\30\1\22\1\4\7\6\2\3\1\45\1\42\1\44\1\46"+ - "\1\44\1\42\1\43\3\5\1\25\1\26\1\25\5\1\1\24\13\1"+ - "\1\23\2\1\1\41\1\0\1\41\1\44\1\2\1\0\1\36\1\55"+ - "\1\60\1\62\1\34\1\35\1\56\1\47\1\51\1\66\1\67\1\37"+ - "\1\54\1\57\1\61\1\50\1\70\1\32\1\40\1\31\1\33\1\63"+ - "\1\52\1\64\1\53\1\65\1\15\1\7\1\16\1\42\uff81\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 = - "\6\0\1\1\1\2\2\3\1\2\1\4\1\5\1\6"+ - "\1\7\1\10\1\11\1\12\1\11\1\12\11\2\1\12"+ - "\14\2\1\13\1\14\1\15\4\13\1\16\2\13\1\17"+ - "\1\20\1\13\1\21\2\13\1\22\3\13\1\23\1\3"+ - "\1\24\1\23\1\24\1\23\1\25\1\23\1\26\1\27"+ - "\1\30\1\31\3\2\1\32\15\2\1\32\20\2\1\32"+ - "\31\2\1\32\3\2\4\0\1\33\1\34\4\0\1\24"+ - "\1\0\2\25\1\35\22\2\1\36\2\2\1\32\73\2"+ - "\1\32\1\2\10\0\1\37\1\2\1\40\1\36\56\2"+ - "\1\40\2\2\1\36\16\2\2\0\1\41\2\0\1\42"+ - "\13\2\1\32\40\2\1\32\10\2\4\0\10\2\1\36"+ - "\65\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[437]; - 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\71\0\162\0\253\0\344\0\u011d\0\u0156\0\u018f"+ - "\0\u01c8\0\u0201\0\u023a\0\u0273\0\u023a\0\u02ac\0\u02e5\0\u031e"+ - "\0\u0357\0\u023a\0\u023a\0\u0390\0\u03c9\0\u0402\0\u043b\0\u0474"+ - "\0\u04ad\0\u04e6\0\u051f\0\u0558\0\u0591\0\u0156\0\u05ca\0\u0603"+ - "\0\u063c\0\u0675\0\u06ae\0\u06e7\0\u0720\0\u0759\0\u0792\0\u07cb"+ - "\0\u0804\0\u083d\0\u0876\0\u023a\0\u023a\0\u08af\0\u08e8\0\u0921"+ - "\0\u095a\0\u023a\0\u0993\0\u09cc\0\u023a\0\u023a\0\u0a05\0\u023a"+ - "\0\u0a3e\0\u0a77\0\u023a\0\u0ab0\0\u0ae9\0\u0b22\0\u0b5b\0\u0b5b"+ - "\0\u0b5b\0\u0b94\0\u0bcd\0\u0c06\0\u0c3f\0\u0c78\0\u023a\0\u023a"+ - "\0\u0cb1\0\u023a\0\u0cea\0\u0d23\0\u0d5c\0\u018f\0\u0d95\0\u0dce"+ - "\0\u0e07\0\u0e40\0\u0e79\0\u0eb2\0\u0eeb\0\u0f24\0\u0f5d\0\u0f96"+ - "\0\u0fcf\0\u1008\0\u1041\0\u107a\0\u10b3\0\u10ec\0\u1125\0\u115e"+ - "\0\u1197\0\u11d0\0\u1209\0\u1242\0\u127b\0\u12b4\0\u12ed\0\u1326"+ - "\0\u135f\0\u1398\0\u13d1\0\u140a\0\u1443\0\u147c\0\u14b5\0\u14ee"+ - "\0\u1527\0\u1560\0\u1599\0\u15d2\0\u160b\0\u1644\0\u167d\0\u16b6"+ - "\0\u16ef\0\u1728\0\u1761\0\u179a\0\u17d3\0\u180c\0\u1845\0\u187e"+ - "\0\u18b7\0\u18f0\0\u1929\0\u1962\0\u199b\0\u19d4\0\u1a0d\0\u1a46"+ - "\0\u1a7f\0\u1ab8\0\u1af1\0\u1b2a\0\u1b63\0\u1b9c\0\u023a\0\u023a"+ - "\0\u1bd5\0\u1c0e\0\u1c47\0\u1c80\0\u1cb9\0\u1cf2\0\u0b5b\0\u1d2b"+ - "\0\u023a\0\u1d64\0\u1d9d\0\u1dd6\0\u1e0f\0\u1e48\0\u1e81\0\u1eba"+ - "\0\u1ef3\0\u1f2c\0\u1f65\0\u1f9e\0\u1fd7\0\u2010\0\u2049\0\u2082"+ - "\0\u20bb\0\u20f4\0\u212d\0\u018f\0\u2166\0\u219f\0\u21d8\0\u2211"+ - "\0\u224a\0\u2283\0\u22bc\0\u22f5\0\u232e\0\u2367\0\u23a0\0\u23d9"+ - "\0\u2412\0\u244b\0\u2484\0\u24bd\0\u24f6\0\u252f\0\u2568\0\u25a1"+ - "\0\u25da\0\u2613\0\u264c\0\u2685\0\u26be\0\u26f7\0\u2730\0\u2769"+ - "\0\u27a2\0\u27db\0\u2814\0\u284d\0\u2886\0\u28bf\0\u28f8\0\u2931"+ - "\0\u296a\0\u29a3\0\u29dc\0\u2a15\0\u2a4e\0\u2a87\0\u2ac0\0\u2af9"+ - "\0\u2b32\0\u2b6b\0\u2ba4\0\u2bdd\0\u2c16\0\u2c4f\0\u2c88\0\u2cc1"+ - "\0\u2cfa\0\u2d33\0\u2d6c\0\u2da5\0\u2dde\0\u2e17\0\u2e50\0\u2e89"+ - "\0\u2ec2\0\u2efb\0\u2f34\0\u2f6d\0\u2fa6\0\u2fdf\0\u3018\0\u3051"+ - "\0\u308a\0\u30c3\0\u30fc\0\u3135\0\u018f\0\u316e\0\u018f\0\u31a7"+ - "\0\u31e0\0\u3219\0\u3252\0\u328b\0\u32c4\0\u32fd\0\u3336\0\u336f"+ - "\0\u33a8\0\u33e1\0\u341a\0\u3453\0\u348c\0\u34c5\0\u34fe\0\u3537"+ - "\0\u3570\0\u35a9\0\u35e2\0\u361b\0\u3654\0\u368d\0\u36c6\0\u36ff"+ - "\0\u3738\0\u3771\0\u37aa\0\u37e3\0\u381c\0\u3855\0\u388e\0\u38c7"+ - "\0\u3900\0\u3939\0\u3972\0\u39ab\0\u39e4\0\u3a1d\0\u3a56\0\u3a8f"+ - "\0\u3ac8\0\u3b01\0\u3b3a\0\u3b73\0\u3bac\0\u3be5\0\u3c1e\0\u3c57"+ - "\0\u3c90\0\u3cc9\0\u3d02\0\u3d3b\0\u3d74\0\u3dad\0\u3de6\0\u3e1f"+ - "\0\u3e58\0\u3e91\0\u3eca\0\u3f03\0\u3f3c\0\u3f75\0\u3fae\0\u3fe7"+ - "\0\u4020\0\u4059\0\u4092\0\u40cb\0\u4104\0\u413d\0\u4176\0\u41af"+ - "\0\u41e8\0\u4221\0\u425a\0\u4293\0\u42cc\0\u4305\0\u433e\0\u4377"+ - "\0\u43b0\0\u43e9\0\u4422\0\u445b\0\u4494\0\u44cd\0\u4506\0\u453f"+ - "\0\u4578\0\u45b1\0\u45ea\0\u4623\0\u465c\0\u4695\0\u46ce\0\u4707"+ - "\0\u4740\0\u4779\0\u47b2\0\u47eb\0\u4824\0\u485d\0\u4896\0\u48cf"+ - "\0\u4908\0\u4941\0\u497a\0\u49b3\0\u49ec\0\u4a25\0\u4a5e\0\u4a97"+ - "\0\u4ad0\0\u4b09\0\u3eca\0\u4b42\0\u4b7b\0\u4bb4\0\u4bed\0\u4c26"+ - "\0\u4c5f\0\u4c98\0\u4cd1\0\u4d0a\0\u4092\0\u4d43\0\u413d\0\u4d7c"+ - "\0\u4db5\0\u4dee\0\u4e27\0\u4e60\0\u4e99\0\u4ed2\0\u4f0b\0\u1fd7"+ - "\0\u4f44\0\u4f7d\0\u4fb6\0\u4fef\0\u5028\0\u5061\0\u509a\0\u50d3"+ - "\0\u510c\0\u5145\0\u517e\0\u51b7\0\u51f0\0\u5229\0\u5262\0\u529b"+ - "\0\u52d4\0\u530d\0\u5346\0\u537f\0\u53b8\0\u53f1\0\u542a\0\u5463"+ - "\0\u549c\0\u54d5\0\u550e\0\u5547\0\u5580\0\u55b9\0\u55f2\0\u562b"+ - "\0\u5664\0\u569d\0\u56d6\0\u570f\0\u5748\0\u5781\0\u57ba\0\u57f3"+ - "\0\u582c\0\u5865\0\u589e\0\u58d7\0\u5910\0\u5949\0\u5982\0\u59bb"+ - "\0\u59f4\0\u5a2d\0\u5a66\0\u5a9f\0\u5ad8"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[437]; - 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 = - "\1\7\2\10\1\11\1\12\1\10\1\11\1\13\1\14"+ - "\1\10\1\15\1\16\1\17\1\20\1\13\1\21\1\22"+ - "\1\23\1\24\4\10\1\22\1\25\1\26\1\27\1\30"+ - "\1\31\1\32\1\33\1\34\1\35\1\23\1\13\1\36"+ - "\3\22\1\10\1\37\1\40\1\41\1\10\1\42\1\43"+ - "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\4\10"+ - "\12\53\1\54\3\53\1\55\16\53\1\56\11\53\1\57"+ - "\2\53\1\60\16\53\12\61\1\62\5\61\1\63\14\61"+ - "\1\56\11\61\1\57\2\61\1\60\16\61\12\64\1\65"+ - "\3\64\1\66\52\64\12\67\1\70\5\67\1\71\50\67"+ - "\12\72\1\73\22\72\1\74\11\72\1\75\2\72\1\76"+ - "\16\72\7\7\1\0\2\7\11\0\4\7\2\0\10\7"+ - "\2\0\1\7\3\0\23\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\22\10"+ - "\3\77\2\11\1\77\1\11\1\0\2\77\11\0\1\77"+ - "\1\100\1\101\1\102\1\0\1\103\3\77\1\102\1\101"+ - "\1\77\1\100\1\77\2\0\1\77\3\0\13\77\1\101"+ - "\11\77\1\104\1\105\1\77\1\105\1\0\2\77\11\0"+ - "\1\106\1\100\1\101\1\102\1\0\1\103\3\77\1\102"+ - "\1\101\1\77\1\100\1\77\2\0\1\77\3\0\13\77"+ - "\1\101\1\77\1\106\4\77\71\0\3\7\2\14\1\7"+ - "\1\14\1\0\2\7\11\0\4\7\2\0\10\7\2\0"+ - "\1\7\3\0\22\7\13\0\1\16\55\0\14\17\1\107"+ - "\54\17\11\0\1\110\77\0\1\111\72\0\1\112\51\0"+ - "\2\103\1\0\1\103\62\0\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\10\1\113\6\10\2\0"+ - "\1\7\3\0\1\114\3\10\1\115\5\10\1\116\7\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\3\10\1\117\1\10\1\120\2\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\7\10\1\121\2\0\1\7\3\0\10\10\1\122"+ - "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\6\10\1\123\1\10\2\0\1\7\3\0\10\10"+ - "\1\124\4\10\1\125\4\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\2\10\1\126\2\10\1\127"+ - "\2\10\2\0\1\7\3\0\2\10\1\130\7\10\1\131"+ - "\7\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\116\1\132\1\133\4\10\1\134\2\0\1\7"+ - "\3\0\6\10\1\135\13\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\5\10\1\136\2\10\2\0"+ - "\1\7\3\0\2\10\1\137\7\10\1\140\7\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\141"+ - "\2\10\1\142\1\10\1\143\2\10\2\0\1\7\3\0"+ - "\1\144\1\10\1\145\2\10\1\146\14\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\147"+ - "\1\150\2\10\1\151\1\152\1\10\2\0\1\7\3\0"+ - "\12\10\1\153\7\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\4\10\1\116\2\10\1\116\2\0"+ - "\1\7\3\0\5\10\1\154\2\10\1\155\11\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10"+ - "\1\156\6\10\2\0\1\7\3\0\1\157\1\10\1\160"+ - "\7\10\1\161\7\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\3\10\1\162\4\10\2\0\1\7"+ - "\3\0\12\10\1\124\7\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\163\4\10\2\0"+ - "\1\7\3\0\4\10\1\164\5\10\1\165\7\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\12\10\1\166\7\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\167"+ - "\1\10\1\170\2\10\2\0\1\7\3\0\2\10\1\171"+ - "\7\10\1\172\7\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\2\10\1\173\2\10\1\174\1\175"+ - "\1\10\2\0\1\7\3\0\1\176\11\10\1\177\1\200"+ - "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\10\1\116\1\201\1\10\1\116\3\10\2\0"+ - "\1\7\3\0\6\10\1\202\1\10\1\116\3\10\1\203"+ - "\5\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\3\10\1\204\4\10\2\0\1\7\3\0\2\10"+ - "\1\205\1\10\1\206\5\10\1\207\7\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\210"+ - "\2\10\2\0\1\7\3\0\2\10\1\211\17\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\12\10\1\212\7\10\12\53\1\0"+ - "\3\53\1\0\16\53\1\0\11\53\1\0\2\53\1\0"+ - "\16\53\31\0\1\213\17\0\1\214\50\0\1\215\111\0"+ - "\1\216\16\0\12\61\1\0\5\61\1\0\14\61\1\0"+ - "\11\61\1\0\2\61\1\0\16\61\21\0\1\217\47\0"+ - "\12\64\1\0\3\64\1\0\52\64\12\67\1\0\5\67"+ - "\1\0\50\67\21\0\1\220\47\0\12\72\1\0\22\72"+ - "\1\0\11\72\1\0\2\72\1\0\16\72\31\0\1\221"+ - "\17\0\1\222\50\0\1\223\111\0\1\224\16\0\7\77"+ - "\1\0\2\77\11\0\4\77\2\0\10\77\2\0\1\77"+ - "\3\0\25\77\2\225\1\77\1\225\1\0\2\77\11\0"+ - "\4\77\1\226\1\0\10\77\2\0\1\77\3\0\25\77"+ - "\2\103\1\77\1\103\1\0\2\77\11\0\2\77\1\101"+ - "\1\102\2\0\3\77\1\102\1\101\3\77\2\0\1\77"+ - "\3\0\13\77\1\101\11\77\2\104\1\77\1\104\1\0"+ - "\2\77\11\0\2\77\1\101\1\102\1\0\1\103\3\77"+ - "\1\102\1\101\3\77\2\0\1\77\3\0\13\77\1\101"+ - "\11\77\1\104\1\105\1\77\1\105\1\0\2\77\11\0"+ - "\1\77\1\227\1\101\1\102\1\0\1\103\3\77\1\102"+ - "\1\101\1\77\1\227\1\77\2\0\1\77\3\0\13\77"+ - "\1\101\11\77\4\230\1\0\2\77\11\0\2\77\2\230"+ - "\2\0\3\77\3\230\2\77\2\0\1\77\3\0\6\77"+ - "\1\230\2\77\1\230\1\77\1\230\6\77\11\0\1\231"+ - "\57\0\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\2\10\1\232\5\10\2\0\1\7\3\0\4\10"+ - "\1\116\15\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\233\1\10\1\234\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\1\10"+ - "\1\235\20\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\5\10\1\236\1\10\1\237\2\0\1\7"+ - "\3\0\1\10\1\240\1\241\4\10\1\242\1\10\1\243"+ - "\7\10\1\244\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\2\10\1\123"+ - "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\3\10\1\245\4\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\246\6\10\1\247\2\0\1\7\3\0\2\10\1\201"+ - "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\7\10\1\235\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\13\10\1\116\6\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\250\7\10"+ - "\2\0\1\7\3\0\1\10\1\251\7\10\1\252\10\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\10\10\1\253\11\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10"+ - "\1\254\4\10\1\255\1\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\6\10\1\235\1\10\2\0\1\7\3\0\10\10\1\256"+ - "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\10\1\257\6\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\10\1\260\6\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\261"+ - "\7\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\7\10\1\262\2\0"+ - "\1\7\3\0\5\10\1\116\14\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\7\10\1\263\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\6\10"+ - "\1\264\13\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\6\10\1\265"+ - "\13\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\10\10\2\0\1\7\3\0\10\10\1\266\1\267"+ - "\10\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\10\1\270\3\10\1\271\2\10\2\0\1\7"+ - "\3\0\12\10\1\272\1\273\6\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\116\4\10\1\274"+ - "\1\275\1\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\4\10\1\276"+ - "\3\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\10\1\116\4\10"+ - "\1\116\1\10\2\0\1\7\3\0\12\10\1\277\7\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\10\10\1\300\11\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10"+ - "\1\301\2\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\2\10\1\302\7\10\1\303\7\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\6\10\1\304\13\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\7\10\1\305"+ - "\2\0\1\7\3\0\11\10\1\306\10\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\307"+ - "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\2\10\1\310\17\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\1\10\1\311\20\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\312\5\10\1\313\1\10\2\0"+ - "\1\7\3\0\1\314\1\10\1\315\10\10\1\316\6\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\2\10\1\317\17\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\2\10\1\320\17\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\321\7\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\10\1\322\6\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\7\10\1\323\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\10\10\2\0\1\7\3\0\7\10\1\324\12\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\325\7\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\12\10\1\326\7\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\327\7\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\5\10\1\330\2\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\5\10\1\331"+ - "\14\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\6\10\1\254\1\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\116\7\10\2\0\1\7\3\0\13\10\1\332\6\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\10\1\333\6\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10"+ - "\1\334\5\10\1\235\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10"+ - "\1\335\2\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\336"+ - "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\5\10\1\337\2\10\1\340\11\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\341"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\116\7\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\17\10"+ - "\1\342\2\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\3\10\1\343\4\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\4\10\1\344\2\10\1\345\2\0\1\7\3\0"+ - "\1\10\1\346\20\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\7\10\1\347\2\0\1\7\3\0"+ - "\14\10\1\116\5\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\10\10"+ - "\1\350\11\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\2\10\1\351\5\10\2\0\1\7\3\0"+ - "\3\10\1\352\16\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\10\1\353\6\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\354\6\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\10\1\116\6\10\2\0\1\7\3\0\22\10"+ - "\50\0\1\355\57\0\1\356\62\0\1\357\111\0\1\360"+ - "\66\0\1\361\57\0\1\362\62\0\1\363\111\0\1\364"+ - "\16\0\3\77\2\225\1\77\1\225\1\0\2\77\11\0"+ - "\2\77\1\101\1\77\2\0\4\77\1\101\3\77\2\0"+ - "\1\77\3\0\13\77\1\101\6\77\3\0\2\225\1\0"+ - "\1\225\62\0\3\77\4\230\1\0\2\77\11\0\1\77"+ - "\1\227\2\230\2\0\3\77\3\230\1\227\1\77\2\0"+ - "\1\77\3\0\6\77\1\230\2\77\1\230\1\77\1\230"+ - "\6\77\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\3\10\1\365\4\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\3\10\1\366\4\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\10\10\1\116\11\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\116"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\6\10\1\367\1\10"+ - "\2\0\1\7\3\0\13\10\1\370\6\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\2\10\1\371\7\10\1\372\7\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\3\10"+ - "\1\373\4\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\10\10\1\374\11\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\2\10\1\375\17\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\12\10\1\376\7\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\2\10\1\377\5\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\7\10\1\116\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\2\10\1\u0100\17\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10"+ - "\1\u0101\2\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u0102"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\12\10\1\u0103\7\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\u0104\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10"+ - "\1\u0105\10\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\7\10\1\232\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\5\10\1\u0106\2\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\3\10\1\u0107\16\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\u0108"+ - "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\12\10\1\u0109\7\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\u010a\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\u010b\7\10\2\0\1\7\3\0"+ - "\12\10\1\u010c\7\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\3\10\1\u0100\4\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\u010d\6\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\10\10\2\0\1\7\3\0\7\10\1\u010e\12\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\5\10\1\171\2\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\2\10\1\u010f\17\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\u0110\7\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\10\1\u0111\6\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10"+ - "\1\u0112\10\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\6\10\1\u0113\1\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\4\10\1\254\3\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\3\10\1\273\4\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10"+ - "\1\u0114\6\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\7\10\1\u0115\12\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\6\10\1\u0116\1\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\14\10\1\u0117\5\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\u0118\7\10\2\0\1\7\3\0"+ - "\1\10\1\u0119\5\10\1\u011a\1\10\1\u011b\10\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\6\10"+ - "\1\u011c\1\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\11\10\1\267\10\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\20\10\1\u011d\1\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\u011e\7\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\10\10\1\u011f"+ - "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\6\10\1\u0120\1\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\3\10\1\u0121\4\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\2\10\1\u0122\17\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u0123"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\u0124\7\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\3\10\1\u0125\4\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\u0126\7\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\6\10\1\235\1\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\1\116\21\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\13\10\1\u0127\6\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\7\10\1\u0128\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\2\10\1\234"+ - "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\3\10\1\u0127\4\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\6\10\1\u0129\1\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\12\10\1\116\7\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\254"+ - "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\3\10\1\u012a\4\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\u012b\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\10\1\u012c\6\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\13\10\1\u012d"+ - "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\7\10\1\245\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10"+ - "\1\367\6\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\1\10\1\367\20\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\u012e\6\10\1\u012f"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\11\10\1\171\10\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\3\10\1\u0130\4\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\u0131\6\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\5\10\1\u0132\2\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\u0133\7\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u0134"+ - "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\1\10\1\u0135\20\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\5\10\1\u0136\2\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\6\10"+ - "\1\u0115\13\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\10\10\1\166"+ - "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\5\10\1\u0137\2\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\u0138\7\10\2\0\1\7\3\0\22\10\45\0\1\u0139"+ - "\57\0\1\355\104\0\1\u013a\50\0\1\u013b\105\0\1\u013c"+ - "\57\0\1\361\104\0\1\u013d\50\0\1\u013e\40\0\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10"+ - "\1\u013f\2\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\12\10\1\u0140\7\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\13\10\1\u0141\6\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\2\10\1\u0142\5\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\5\10\1\201\2\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\u0143\7\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\7\10\1\u0144\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\124"+ - "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\2\10\1\u0145\17\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\6\10\1\116\1\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\4\10\1\235\3\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\u0146\6\10\2\0\1\7\3\0"+ - "\10\10\1\u0147\11\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\10\1\u0148\6\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\1\10\1\201"+ - "\20\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\u0149\7\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\6\10"+ - "\1\u014a\1\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\u014b"+ - "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\4\10\1\116\15\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\5\10\1\u014c\14\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\5\10"+ - "\1\u014d\14\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\u014e\6\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\6\10\1\u014f\1\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\5\10\1\u0150\2\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\2\10\1\u0151\3\10\1\u0152\13\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\10\10\1\u0153\11\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\2\10\1\u0154\17\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u0155"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\5\10\1\u0156\2\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\124\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\u0157\7\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\6\10\1\u0158\1\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\6\10\1\u0157\1\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10"+ - "\1\u0159\2\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u015a"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\3\10\1\u015b\4\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\10\1\u015c\6\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\3\10\1\u015d\4\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\2\10\1\u015e"+ - "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\3\10\1\124\1\10\1\u015f\2\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\4\10\1\u0160\3\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\u0161\7\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\3\10"+ - "\1\u0162\4\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u0163"+ - "\6\10\2\0\1\7\3\0\7\10\1\u0161\12\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\10\10\1\235\11\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u0164"+ - "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\2\10\1\u0165\17\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\15\10\1\254\4\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\3\10\1\370\4\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\6\10\1\u0152"+ - "\13\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\5\10\1\u015f\2\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\3\10\1\u0166\4\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\7\10"+ - "\1\u0167\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\4\10\1\344\3\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\u0168\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\2\10"+ - "\1\u0169\17\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\5\10\1\u016a\2\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\u016b\7\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\11\10\1\201\10\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u016c"+ - "\4\10\1\u016d\1\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\2\10"+ - "\1\u016e\5\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u016f"+ - "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\3\10\1\u0170\4\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\2\10\1\u0171\17\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\5\10"+ - "\1\u0172\14\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\u0173\6\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\2\10\1\267\5\10\2\0\1\7\3\0\22\10"+ - "\22\0\1\u0174\106\0\1\355\4\0\1\u0139\24\0\1\u013b"+ - "\1\u0175\4\u013b\1\0\1\u0175\1\u013b\2\0\1\u0175\2\0"+ - "\3\u0175\5\u013b\2\u0175\10\u013b\3\u0175\1\0\2\u0175\22\u013b"+ - "\22\0\1\u0176\106\0\1\361\4\0\1\u013c\24\0\1\u013e"+ - "\1\u0177\4\u013e\1\0\1\u0177\1\u013e\2\0\1\u0177\2\0"+ - "\3\u0177\5\u013e\2\u0177\10\u013e\3\u0177\1\0\2\u0177\22\u013e"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\13\10\1\u0178\6\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\10\10\1\u0179\11\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u017a"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\10\1\u017b\6\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\10\1\u017c\6\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\u017d\7\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\10\1\u017e\6\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\10\10\1\267\11\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\13\10\1\u017f\6\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\u0180\7\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\2\10\1\u0181\17\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\6\10\1\u0108\1\10\2\0\1\7"+ - "\3\0\2\10\1\u0182\17\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\10\1\u0155\6\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\5\10\1\u0183\2\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\6\10\1\u0184"+ - "\13\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\5\10\1\u0185\2\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\2\10\1\u0159\5\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10"+ - "\1\u0186\6\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\10\10\1\u0187\11\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\12\10\1\u0188\7\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\7\10\1\116\12\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10"+ - "\1\116\10\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\13\10\1\254"+ - "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\6\10\1\171\1\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\2\10\1\u0151\17\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\3\10"+ - "\1\367\4\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\1\u0189\7\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\11\10\1\u0183\10\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\1\10\1\u018a\6\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\5\10\1\u018b\2\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\10\10\2\0\1\7\3\0\13\10\1\u018c\6\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\7\10\1\u018d\2\0\1\7\3\0\11\10\1\254\10\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\7\10\1\u0189\12\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\12\10\1\u018e\7\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\336"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\5\10\1\u018f\14\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\4\10\1\u0190\3\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\2\10"+ - "\1\u0191\17\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\5\10\1\u0192\2\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\5\10\1\u0193\2\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\1\10\1\u0194\20\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\10\10\1\u0195\11\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\10\10\1\u0196\11\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\2\10\1\u0197\17\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\2\10\1\u0198\17\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\12\10"+ - "\1\u0199\7\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\6\10\1\u019a\1\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\2\10\1\u019b\5\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\11\10\1\u014c\10\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\10\10\1\u019c\2\10\1\254\6\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\2\10\1\u019d\17\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\7\10\1\u019e\12\10\22\0\1\u013b"+ - "\70\0\1\u013e\46\0\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\14\10"+ - "\1\u019f\5\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\6\10\1\u0186\1\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\10\10\2\0\1\7\3\0\10\10\1\u019a\11\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\11\10\1\u01a0\10\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\12\10\1\u01a1\7\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\330"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\3\10\1\u019e\4\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\u01a2\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\12\10"+ - "\1\234\7\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\16\10\1\u01a3"+ - "\3\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\1\u0111\7\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\6\10"+ - "\1\u017d\1\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\11\10\1\u019a\10\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\4\10\1\254\15\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\367\7\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\12\10\1\u01a4"+ - "\7\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\3\10\1\254\4\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\u0108\7\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\5\10\1\116\14\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\2\10\1\u01a5\5\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\1\u0111\21\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\10\1\u01a6\6\10\2\0\1\7\3\0"+ - "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\3\10\1\u01a7\4\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\5\10\1\u01a8\2\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\u0113"+ - "\7\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\6\10\1\u01a9\1\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\10\10\1\367\11\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\5\10\1\u01aa\2\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\11\10\1\u01ab"+ - "\10\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\5\10\1\u01a4\2\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\10\10\1\u019e\11\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10"+ - "\2\0\1\7\3\0\13\10\1\u0189\6\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\u0155"+ - "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\1\254\7\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10"+ - "\1\u01ac\10\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\u01ad\7\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\10\10\2\0\1\7\3\0\11\10\1\254\10\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\7\10"+ - "\1\254\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\5\10\1\212\2\10"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\3\10\1\u01ae\4\10\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\13\10"+ - "\1\u01af\6\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\13\10\1\367"+ - "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\5\10\1\u0105\2\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\6\10\1\367\1\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10"+ - "\1\235\6\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0"+ - "\1\7\3\0\5\10\1\254\14\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\10\10\1\u01b0\11\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0"+ - "\11\10\1\235\10\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\2\10"+ - "\1\u0182\17\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\10\10\2\0\1\7\3\0\11\10\1\u017e"+ - "\10\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10"+ - "\2\0\10\10\2\0\1\7\3\0\4\10\1\367\15\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\52\7\10\2\0\1\7\3\0\22\10\1\7\6\10"+ - "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u01b1"+ - "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\7\10\1\u01b2\2\0"+ - "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10"+ - "\11\0\4\10\2\0\2\10\1\u01b3\5\10\2\0\1\7"+ - "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0"+ - "\4\10\2\0\1\u01b4\7\10\2\0\1\7\3\0\22\10"+ - "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0"+ - "\1\10\1\u0163\6\10\2\0\1\7\3\0\22\10\1\7"+ - "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\u01b5"+ - "\7\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0"+ - "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7"+ - "\3\0\11\10\1\u0189\10\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\5\10\1\u0105\1\10\1\254"+ - "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7"+ - "\1\10\11\0\4\10\2\0\1\10\1\270\6\10\2\0"+ - "\1\7\3\0\22\10"; - - private static int [] zzUnpackTrans() { - int [] result = new int[23313]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\6\0\4\1\1\11\1\1\1\11\4\1\2\11\30\1"+ - "\2\11\4\1\1\11\2\1\2\11\1\1\1\11\2\1"+ - "\1\11\13\1\2\11\1\1\1\11\100\1\4\0\2\11"+ - "\4\0\1\1\1\0\2\1\1\11\123\1\10\0\104\1"+ - "\2\0\1\1\2\0\66\1\4\0\76\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[437]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int COMPILER_DIRECTIVE = 3; + public static final int EOL_COMMENT = 5; + public static final int YYINITIAL = 0; + public static final int COMPILER_DIRECTIVE2 = 4; + public static final int MLC = 1; + public static final int MLC2 = 2; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\13\1\12\1\0\1\13\1\7\22\0\1\13\1\42\1\7" + + "\1\10\1\11\1\42\1\42\1\14\1\17\1\21\1\20\1\27\1\42" + "\1\27\1\30\1\22\1\4\7\6\2\3\1\45\1\42\1\44\1\46" + + "\1\44\1\42\1\43\3\5\1\25\1\26\1\25\5\1\1\24\13\1" + "\1\23\2\1\1\41\1\0\1\41\1\44\1\2\1\0\1\36\1\55" + + "\1\60\1\62\1\34\1\35\1\56\1\47\1\51\1\66\1\67\1\37" + "\1\54\1\57\1\61\1\50\1\70\1\32\1\40\1\31\1\33\1\63" + + "\1\52\1\64\1\53\1\65\1\15\1\7\1\16\1\42\uff81\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 = "\6\0\1\1\1\2\2\3\1\2\1\4\1\5\1\6" + "\1\7\1\10\1\11\1\12\1\11\1\12\11\2\1\12" + + "\14\2\1\13\1\14\1\15\4\13\1\16\2\13\1\17" + "\1\20\1\13\1\21\2\13\1\22\3\13\1\23\1\3" + + "\1\24\1\23\1\24\1\23\1\25\1\23\1\26\1\27" + "\1\30\1\31\3\2\1\32\15\2\1\32\20\2\1\32" + + "\31\2\1\32\3\2\4\0\1\33\1\34\4\0\1\24" + "\1\0\2\25\1\35\22\2\1\36\2\2\1\32\73\2" + "\1\32\1\2\10\0\1\37\1\2\1\40\1\36\56\2" + + "\1\40\2\2\1\36\16\2\2\0\1\41\2\0\1\42" + "\13\2\1\32\40\2\1\32\10\2\4\0\10\2\1\36" + "\65\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[437]; + 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\71\0\162\0\253\0\344\0\u011d\0\u0156\0\u018f" + + "\0\u01c8\0\u0201\0\u023a\0\u0273\0\u023a\0\u02ac\0\u02e5\0\u031e" + + "\0\u0357\0\u023a\0\u023a\0\u0390\0\u03c9\0\u0402\0\u043b\0\u0474" + + "\0\u04ad\0\u04e6\0\u051f\0\u0558\0\u0591\0\u0156\0\u05ca\0\u0603" + + "\0\u063c\0\u0675\0\u06ae\0\u06e7\0\u0720\0\u0759\0\u0792\0\u07cb" + + "\0\u0804\0\u083d\0\u0876\0\u023a\0\u023a\0\u08af\0\u08e8\0\u0921" + + "\0\u095a\0\u023a\0\u0993\0\u09cc\0\u023a\0\u023a\0\u0a05\0\u023a" + + "\0\u0a3e\0\u0a77\0\u023a\0\u0ab0\0\u0ae9\0\u0b22\0\u0b5b\0\u0b5b" + + "\0\u0b5b\0\u0b94\0\u0bcd\0\u0c06\0\u0c3f\0\u0c78\0\u023a\0\u023a" + + "\0\u0cb1\0\u023a\0\u0cea\0\u0d23\0\u0d5c\0\u018f\0\u0d95\0\u0dce" + + "\0\u0e07\0\u0e40\0\u0e79\0\u0eb2\0\u0eeb\0\u0f24\0\u0f5d\0\u0f96" + + "\0\u0fcf\0\u1008\0\u1041\0\u107a\0\u10b3\0\u10ec\0\u1125\0\u115e" + + "\0\u1197\0\u11d0\0\u1209\0\u1242\0\u127b\0\u12b4\0\u12ed\0\u1326" + + "\0\u135f\0\u1398\0\u13d1\0\u140a\0\u1443\0\u147c\0\u14b5\0\u14ee" + + "\0\u1527\0\u1560\0\u1599\0\u15d2\0\u160b\0\u1644\0\u167d\0\u16b6" + + "\0\u16ef\0\u1728\0\u1761\0\u179a\0\u17d3\0\u180c\0\u1845\0\u187e" + + "\0\u18b7\0\u18f0\0\u1929\0\u1962\0\u199b\0\u19d4\0\u1a0d\0\u1a46" + + "\0\u1a7f\0\u1ab8\0\u1af1\0\u1b2a\0\u1b63\0\u1b9c\0\u023a\0\u023a" + + "\0\u1bd5\0\u1c0e\0\u1c47\0\u1c80\0\u1cb9\0\u1cf2\0\u0b5b\0\u1d2b" + + "\0\u023a\0\u1d64\0\u1d9d\0\u1dd6\0\u1e0f\0\u1e48\0\u1e81\0\u1eba" + + "\0\u1ef3\0\u1f2c\0\u1f65\0\u1f9e\0\u1fd7\0\u2010\0\u2049\0\u2082" + + "\0\u20bb\0\u20f4\0\u212d\0\u018f\0\u2166\0\u219f\0\u21d8\0\u2211" + + "\0\u224a\0\u2283\0\u22bc\0\u22f5\0\u232e\0\u2367\0\u23a0\0\u23d9" + + "\0\u2412\0\u244b\0\u2484\0\u24bd\0\u24f6\0\u252f\0\u2568\0\u25a1" + + "\0\u25da\0\u2613\0\u264c\0\u2685\0\u26be\0\u26f7\0\u2730\0\u2769" + + "\0\u27a2\0\u27db\0\u2814\0\u284d\0\u2886\0\u28bf\0\u28f8\0\u2931" + + "\0\u296a\0\u29a3\0\u29dc\0\u2a15\0\u2a4e\0\u2a87\0\u2ac0\0\u2af9" + + "\0\u2b32\0\u2b6b\0\u2ba4\0\u2bdd\0\u2c16\0\u2c4f\0\u2c88\0\u2cc1" + + "\0\u2cfa\0\u2d33\0\u2d6c\0\u2da5\0\u2dde\0\u2e17\0\u2e50\0\u2e89" + + "\0\u2ec2\0\u2efb\0\u2f34\0\u2f6d\0\u2fa6\0\u2fdf\0\u3018\0\u3051" + + "\0\u308a\0\u30c3\0\u30fc\0\u3135\0\u018f\0\u316e\0\u018f\0\u31a7" + + "\0\u31e0\0\u3219\0\u3252\0\u328b\0\u32c4\0\u32fd\0\u3336\0\u336f" + + "\0\u33a8\0\u33e1\0\u341a\0\u3453\0\u348c\0\u34c5\0\u34fe\0\u3537" + + "\0\u3570\0\u35a9\0\u35e2\0\u361b\0\u3654\0\u368d\0\u36c6\0\u36ff" + + "\0\u3738\0\u3771\0\u37aa\0\u37e3\0\u381c\0\u3855\0\u388e\0\u38c7" + + "\0\u3900\0\u3939\0\u3972\0\u39ab\0\u39e4\0\u3a1d\0\u3a56\0\u3a8f" + + "\0\u3ac8\0\u3b01\0\u3b3a\0\u3b73\0\u3bac\0\u3be5\0\u3c1e\0\u3c57" + + "\0\u3c90\0\u3cc9\0\u3d02\0\u3d3b\0\u3d74\0\u3dad\0\u3de6\0\u3e1f" + + "\0\u3e58\0\u3e91\0\u3eca\0\u3f03\0\u3f3c\0\u3f75\0\u3fae\0\u3fe7" + + "\0\u4020\0\u4059\0\u4092\0\u40cb\0\u4104\0\u413d\0\u4176\0\u41af" + + "\0\u41e8\0\u4221\0\u425a\0\u4293\0\u42cc\0\u4305\0\u433e\0\u4377" + + "\0\u43b0\0\u43e9\0\u4422\0\u445b\0\u4494\0\u44cd\0\u4506\0\u453f" + + "\0\u4578\0\u45b1\0\u45ea\0\u4623\0\u465c\0\u4695\0\u46ce\0\u4707" + + "\0\u4740\0\u4779\0\u47b2\0\u47eb\0\u4824\0\u485d\0\u4896\0\u48cf" + + "\0\u4908\0\u4941\0\u497a\0\u49b3\0\u49ec\0\u4a25\0\u4a5e\0\u4a97" + + "\0\u4ad0\0\u4b09\0\u3eca\0\u4b42\0\u4b7b\0\u4bb4\0\u4bed\0\u4c26" + + "\0\u4c5f\0\u4c98\0\u4cd1\0\u4d0a\0\u4092\0\u4d43\0\u413d\0\u4d7c" + + "\0\u4db5\0\u4dee\0\u4e27\0\u4e60\0\u4e99\0\u4ed2\0\u4f0b\0\u1fd7" + + "\0\u4f44\0\u4f7d\0\u4fb6\0\u4fef\0\u5028\0\u5061\0\u509a\0\u50d3" + + "\0\u510c\0\u5145\0\u517e\0\u51b7\0\u51f0\0\u5229\0\u5262\0\u529b" + + "\0\u52d4\0\u530d\0\u5346\0\u537f\0\u53b8\0\u53f1\0\u542a\0\u5463" + + "\0\u549c\0\u54d5\0\u550e\0\u5547\0\u5580\0\u55b9\0\u55f2\0\u562b" + + "\0\u5664\0\u569d\0\u56d6\0\u570f\0\u5748\0\u5781\0\u57ba\0\u57f3" + + "\0\u582c\0\u5865\0\u589e\0\u58d7\0\u5910\0\u5949\0\u5982\0\u59bb" + "\0\u59f4\0\u5a2d\0\u5a66\0\u5a9f\0\u5ad8"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[437]; + 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 = "\1\7\2\10\1\11\1\12\1\10\1\11\1\13\1\14" + "\1\10\1\15\1\16\1\17\1\20\1\13\1\21\1\22" + + "\1\23\1\24\4\10\1\22\1\25\1\26\1\27\1\30" + "\1\31\1\32\1\33\1\34\1\35\1\23\1\13\1\36" + + "\3\22\1\10\1\37\1\40\1\41\1\10\1\42\1\43" + "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\4\10" + + "\12\53\1\54\3\53\1\55\16\53\1\56\11\53\1\57" + "\2\53\1\60\16\53\12\61\1\62\5\61\1\63\14\61" + + "\1\56\11\61\1\57\2\61\1\60\16\61\12\64\1\65" + "\3\64\1\66\52\64\12\67\1\70\5\67\1\71\50\67" + + "\12\72\1\73\22\72\1\74\11\72\1\75\2\72\1\76" + "\16\72\7\7\1\0\2\7\11\0\4\7\2\0\10\7" + "\2\0\1\7\3\0\23\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\22\10" + "\3\77\2\11\1\77\1\11\1\0\2\77\11\0\1\77" + + "\1\100\1\101\1\102\1\0\1\103\3\77\1\102\1\101" + "\1\77\1\100\1\77\2\0\1\77\3\0\13\77\1\101" + + "\11\77\1\104\1\105\1\77\1\105\1\0\2\77\11\0" + "\1\106\1\100\1\101\1\102\1\0\1\103\3\77\1\102" + + "\1\101\1\77\1\100\1\77\2\0\1\77\3\0\13\77" + "\1\101\1\77\1\106\4\77\71\0\3\7\2\14\1\7" + + "\1\14\1\0\2\7\11\0\4\7\2\0\10\7\2\0" + "\1\7\3\0\22\7\13\0\1\16\55\0\14\17\1\107" + + "\54\17\11\0\1\110\77\0\1\111\72\0\1\112\51\0" + "\2\103\1\0\1\103\62\0\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\1\10\1\113\6\10\2\0" + "\1\7\3\0\1\114\3\10\1\115\5\10\1\116\7\10" + + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\3\10\1\117\1\10\1\120\2\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\7\10\1\121\2\0\1\7\3\0\10\10\1\122" + "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\6\10\1\123\1\10\2\0\1\7\3\0\10\10" + "\1\124\4\10\1\125\4\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\2\10\1\126\2\10\1\127" + "\2\10\2\0\1\7\3\0\2\10\1\130\7\10\1\131" + + "\7\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\1\116\1\132\1\133\4\10\1\134\2\0\1\7" + + "\3\0\6\10\1\135\13\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\5\10\1\136\2\10\2\0" + + "\1\7\3\0\2\10\1\137\7\10\1\140\7\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\141" + + "\2\10\1\142\1\10\1\143\2\10\2\0\1\7\3\0" + "\1\144\1\10\1\145\2\10\1\146\14\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\147" + "\1\150\2\10\1\151\1\152\1\10\2\0\1\7\3\0" + + "\12\10\1\153\7\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\4\10\1\116\2\10\1\116\2\0" + + "\1\7\3\0\5\10\1\154\2\10\1\155\11\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10" + + "\1\156\6\10\2\0\1\7\3\0\1\157\1\10\1\160" + "\7\10\1\161\7\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\3\10\1\162\4\10\2\0\1\7" + "\3\0\12\10\1\124\7\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\3\10\1\163\4\10\2\0" + "\1\7\3\0\4\10\1\164\5\10\1\165\7\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + "\2\0\1\7\3\0\12\10\1\166\7\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\167" + + "\1\10\1\170\2\10\2\0\1\7\3\0\2\10\1\171" + "\7\10\1\172\7\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\2\10\1\173\2\10\1\174\1\175" + "\1\10\2\0\1\7\3\0\1\176\11\10\1\177\1\200" + + "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\1\10\1\116\1\201\1\10\1\116\3\10\2\0" + + "\1\7\3\0\6\10\1\202\1\10\1\116\3\10\1\203" + "\5\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\3\10\1\204\4\10\2\0\1\7\3\0\2\10" + "\1\205\1\10\1\206\5\10\1\207\7\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\210" + "\2\10\2\0\1\7\3\0\2\10\1\211\17\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\12\10\1\212\7\10\12\53\1\0" + "\3\53\1\0\16\53\1\0\11\53\1\0\2\53\1\0" + + "\16\53\31\0\1\213\17\0\1\214\50\0\1\215\111\0" + "\1\216\16\0\12\61\1\0\5\61\1\0\14\61\1\0" + + "\11\61\1\0\2\61\1\0\16\61\21\0\1\217\47\0" + "\12\64\1\0\3\64\1\0\52\64\12\67\1\0\5\67" + + "\1\0\50\67\21\0\1\220\47\0\12\72\1\0\22\72" + "\1\0\11\72\1\0\2\72\1\0\16\72\31\0\1\221" + + "\17\0\1\222\50\0\1\223\111\0\1\224\16\0\7\77" + "\1\0\2\77\11\0\4\77\2\0\10\77\2\0\1\77" + + "\3\0\25\77\2\225\1\77\1\225\1\0\2\77\11\0" + "\4\77\1\226\1\0\10\77\2\0\1\77\3\0\25\77" + + "\2\103\1\77\1\103\1\0\2\77\11\0\2\77\1\101" + "\1\102\2\0\3\77\1\102\1\101\3\77\2\0\1\77" + + "\3\0\13\77\1\101\11\77\2\104\1\77\1\104\1\0" + "\2\77\11\0\2\77\1\101\1\102\1\0\1\103\3\77" + + "\1\102\1\101\3\77\2\0\1\77\3\0\13\77\1\101" + "\11\77\1\104\1\105\1\77\1\105\1\0\2\77\11\0" + + "\1\77\1\227\1\101\1\102\1\0\1\103\3\77\1\102" + "\1\101\1\77\1\227\1\77\2\0\1\77\3\0\13\77" + + "\1\101\11\77\4\230\1\0\2\77\11\0\2\77\2\230" + "\2\0\3\77\3\230\2\77\2\0\1\77\3\0\6\77" + + "\1\230\2\77\1\230\1\77\1\230\6\77\11\0\1\231" + "\57\0\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\2\10\1\232\5\10\2\0\1\7\3\0\4\10" + "\1\116\15\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\10\1\233\1\10\1\234\4\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\1\10" + + "\1\235\20\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\5\10\1\236\1\10\1\237\2\0\1\7" + + "\3\0\1\10\1\240\1\241\4\10\1\242\1\10\1\243" + "\7\10\1\244\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\2\10\1\123" + "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\3\10\1\245\4\10\2\0\1\7\3\0\22\10" + + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\1\246\6\10\1\247\2\0\1\7\3\0\2\10\1\201" + "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\7\10\1\235\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + "\2\0\1\7\3\0\13\10\1\116\6\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\1\250\7\10" + "\2\0\1\7\3\0\1\10\1\251\7\10\1\252\10\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\10\10\1\253\11\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10" + + "\1\254\4\10\1\255\1\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\6\10\1\235\1\10\2\0\1\7\3\0\10\10\1\256" + "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\1\10\1\257\6\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\1\10\1\260\6\10\2\0\1\7\3\0\22\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\261" + "\7\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\7\10\1\262\2\0" + + "\1\7\3\0\5\10\1\116\14\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\7\10\1\263\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\6\10" + "\1\264\13\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\6\10\1\265" + + "\13\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\10\10\2\0\1\7\3\0\10\10\1\266\1\267" + + "\10\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\1\10\1\270\3\10\1\271\2\10\2\0\1\7" + + "\3\0\12\10\1\272\1\273\6\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\1\116\4\10\1\274" + + "\1\275\1\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\4\10\1\276" + "\3\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\1\10\1\116\4\10" + "\1\116\1\10\2\0\1\7\3\0\12\10\1\277\7\10" + + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\10\10\2\0\1\7\3\0\10\10\1\300\11\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10" + + "\1\301\2\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + "\1\7\3\0\2\10\1\302\7\10\1\303\7\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + "\2\0\1\7\3\0\6\10\1\304\13\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\7\10\1\305" + + "\2\0\1\7\3\0\11\10\1\306\10\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\307" + "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\2\10\1\310\17\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + + "\1\10\1\311\20\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\1\312\5\10\1\313\1\10\2\0" + + "\1\7\3\0\1\314\1\10\1\315\10\10\1\316\6\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\2\10\1\317\17\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\2\10\1\320\17\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\321\7\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\1\10\1\322\6\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\7\10\1\323\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\10\10\2\0\1\7\3\0\7\10\1\324\12\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\1\325\7\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + "\1\7\3\0\12\10\1\326\7\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\1\327\7\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\5\10\1\330\2\10\2\0\1\7" + + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\5\10\1\331" + "\14\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\6\10\1\254\1\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\1\116\7\10\2\0\1\7\3\0\13\10\1\332\6\10" + + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\1\10\1\333\6\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10" + + "\1\334\5\10\1\235\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10" + "\1\335\2\10\2\0\1\7\3\0\22\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\336" + "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\5\10\1\337\2\10\1\340\11\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\341" + + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\1\116\7\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\17\10" + "\1\342\2\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\3\10\1\343\4\10\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\4\10\1\344\2\10\1\345\2\0\1\7\3\0" + + "\1\10\1\346\20\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\7\10\1\347\2\0\1\7\3\0" + + "\14\10\1\116\5\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\10\10" + + "\1\350\11\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\2\10\1\351\5\10\2\0\1\7\3\0" + + "\3\10\1\352\16\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\1\10\1\353\6\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\10\1\354\6\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\1\10\1\116\6\10\2\0\1\7\3\0\22\10" + + "\50\0\1\355\57\0\1\356\62\0\1\357\111\0\1\360" + "\66\0\1\361\57\0\1\362\62\0\1\363\111\0\1\364" + + "\16\0\3\77\2\225\1\77\1\225\1\0\2\77\11\0" + "\2\77\1\101\1\77\2\0\4\77\1\101\3\77\2\0" + + "\1\77\3\0\13\77\1\101\6\77\3\0\2\225\1\0" + "\1\225\62\0\3\77\4\230\1\0\2\77\11\0\1\77" + + "\1\227\2\230\2\0\3\77\3\230\1\227\1\77\2\0" + "\1\77\3\0\6\77\1\230\2\77\1\230\1\77\1\230" + + "\6\77\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\3\10\1\365\4\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\3\10\1\366\4\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\10\10\1\116\11\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\116" + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\6\10\1\367\1\10" + "\2\0\1\7\3\0\13\10\1\370\6\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\2\10\1\371\7\10\1\372\7\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\3\10" + "\1\373\4\10\2\0\1\7\3\0\22\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + "\1\7\3\0\10\10\1\374\11\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\2\10\1\375\17\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\12\10\1\376\7\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\2\10\1\377\5\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\7\10\1\116\2\0\1\7\3\0\22\10" + + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\10\10\2\0\1\7\3\0\2\10\1\u0100\17\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10" + + "\1\u0101\2\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u0102" + + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\12\10\1\u0103\7\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\3\10\1\u0104\4\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10" + "\1\u0105\10\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\7\10\1\232\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\5\10\1\u0106\2\10\2\0\1\7\3\0\22\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + "\2\0\1\7\3\0\3\10\1\u0107\16\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\u0108" + "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\12\10\1\u0109\7\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\3\10\1\u010a\4\10\2\0" + + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\1\u010b\7\10\2\0\1\7\3\0" + + "\12\10\1\u010c\7\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\3\10\1\u0100\4\10\2\0\1\7" + + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\1\10\1\u010d\6\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\10\10\2\0\1\7\3\0\7\10\1\u010e\12\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\5\10\1\171\2\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\2\10\1\u010f\17\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\u0110\7\10" + + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\1\10\1\u0111\6\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10" + "\1\u0112\10\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\6\10\1\u0113\1\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\4\10\1\254\3\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\3\10\1\273\4\10\2\0\1\7\3\0\22\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10" + "\1\u0114\6\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\7\10\1\u0115\12\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\6\10\1\u0116\1\10" + + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\14\10\1\u0117\5\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\1\u0118\7\10\2\0\1\7\3\0" + "\1\10\1\u0119\5\10\1\u011a\1\10\1\u011b\10\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\6\10" + "\1\u011c\1\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\11\10\1\267\10\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\20\10\1\u011d\1\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\1\u011e\7\10\2\0\1\7" + + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\10\10\1\u011f" + + "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\6\10\1\u0120\1\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\3\10\1\u0121\4\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\2\10\1\u0122\17\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u0123" + + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\1\u0124\7\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\3\10\1\u0125\4\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\u0126\7\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\6\10\1\235\1\10\2\0\1\7\3\0\22\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + "\2\0\1\7\3\0\1\116\21\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\13\10\1\u0127\6\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\7\10\1\u0128\2\0\1\7" + + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\2\10\1\234" + "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\3\10\1\u0127\4\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\6\10\1\u0129\1\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\12\10\1\116\7\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\254" + "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\3\10\1\u012a\4\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\3\10\1\u012b\4\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\1\10\1\u012c\6\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\13\10\1\u012d" + "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\7\10\1\245\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10" + "\1\367\6\10\2\0\1\7\3\0\22\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + "\1\7\3\0\1\10\1\367\20\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\1\u012e\6\10\1\u012f" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\11\10\1\171\10\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\3\10\1\u0130\4\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\10\1\u0131\6\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\5\10\1\u0132\2\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\1\u0133\7\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u0134" + + "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\1\10\1\u0135\20\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\5\10\1\u0136\2\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\6\10" + + "\1\u0115\13\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\10\10\1\166" + + "\11\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\5\10\1\u0137\2\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\1\u0138\7\10\2\0\1\7\3\0\22\10\45\0\1\u0139" + "\57\0\1\355\104\0\1\u013a\50\0\1\u013b\105\0\1\u013c" + + "\57\0\1\361\104\0\1\u013d\50\0\1\u013e\40\0\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10" + + "\1\u013f\2\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\12\10\1\u0140\7\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\13\10\1\u0141\6\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\2\10\1\u0142\5\10\2\0" + + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\5\10\1\201\2\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\u0143\7\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\7\10\1\u0144\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\124" + "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\2\10\1\u0145\17\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\6\10\1\116\1\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\4\10\1\235\3\10\2\0\1\7" + + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\1\10\1\u0146\6\10\2\0\1\7\3\0" + + "\10\10\1\u0147\11\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\1\10\1\u0148\6\10\2\0\1\7" + + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\1\10\1\201" + "\20\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\1\u0149\7\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\6\10" + + "\1\u014a\1\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\u014b" + + "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\4\10\1\116\15\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\5\10\1\u014c\14\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\5\10" + "\1\u014d\14\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\10\1\u014e\6\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\6\10\1\u014f\1\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\5\10\1\u0150\2\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\2\10\1\u0151\3\10\1\u0152\13\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\10\10\1\u0153\11\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\2\10\1\u0154\17\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u0155" + + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\5\10\1\u0156\2\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\3\10\1\124\4\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\1\u0157\7\10\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\6\10\1\u0158\1\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\6\10\1\u0157\1\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\5\10" + + "\1\u0159\2\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u015a" + + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\3\10\1\u015b\4\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\1\10\1\u015c\6\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\3\10\1\u015d\4\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\2\10\1\u015e" + "\17\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\3\10\1\124\1\10\1\u015f\2\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\4\10\1\u0160\3\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\1\u0161\7\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\3\10" + + "\1\u0162\4\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u0163" + + "\6\10\2\0\1\7\3\0\7\10\1\u0161\12\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\10\10\1\235\11\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u0164" + + "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\2\10\1\u0165\17\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\15\10\1\254\4\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\3\10\1\370\4\10\2\0\1\7" + + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\6\10\1\u0152" + + "\13\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\5\10\1\u015f\2\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\3\10\1\u0166\4\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\7\10" + + "\1\u0167\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\4\10\1\344\3\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\3\10\1\u0168\4\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\2\10" + + "\1\u0169\17\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\5\10\1\u016a\2\10\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\1\u016b\7\10\2\0\1\7\3\0\22\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + "\2\0\1\7\3\0\11\10\1\201\10\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u016c" + "\4\10\1\u016d\1\10\2\0\1\7\3\0\22\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\2\10" + "\1\u016e\5\10\2\0\1\7\3\0\22\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\1\10\1\u016f" + "\6\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\3\10\1\u0170\4\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + + "\2\10\1\u0171\17\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\5\10" + + "\1\u0172\14\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\1\10\1\u0173\6\10\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\2\10\1\267\5\10\2\0\1\7\3\0\22\10" + + "\22\0\1\u0174\106\0\1\355\4\0\1\u0139\24\0\1\u013b" + "\1\u0175\4\u013b\1\0\1\u0175\1\u013b\2\0\1\u0175\2\0" + + "\3\u0175\5\u013b\2\u0175\10\u013b\3\u0175\1\0\2\u0175\22\u013b" + "\22\0\1\u0176\106\0\1\361\4\0\1\u013c\24\0\1\u013e" + + "\1\u0177\4\u013e\1\0\1\u0177\1\u013e\2\0\1\u0177\2\0" + "\3\u0177\5\u013e\2\u0177\10\u013e\3\u0177\1\0\2\u0177\22\u013e" + + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\10\10\2\0\1\7\3\0\13\10\1\u0178\6\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + "\2\0\1\7\3\0\10\10\1\u0179\11\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u017a" + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\1\10\1\u017b\6\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\1\10\1\u017c\6\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\1\u017d\7\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\1\10\1\u017e\6\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\10\10\1\267\11\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\13\10\1\u017f\6\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\u0180\7\10" + + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\2\10\1\u0181\17\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\6\10\1\u0108\1\10\2\0\1\7" + "\3\0\2\10\1\u0182\17\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\1\10\1\u0155\6\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\5\10\1\u0183\2\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\6\10\1\u0184" + "\13\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\5\10\1\u0185\2\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\2\10\1\u0159\5\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10" + + "\1\u0186\6\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\10\10\1\u0187\11\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\12\10\1\u0188\7\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + + "\7\10\1\116\12\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10" + + "\1\116\10\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\13\10\1\254" + + "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\6\10\1\171\1\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\2\10\1\u0151\17\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\3\10" + + "\1\367\4\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\1\u0189\7\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\11\10\1\u0183\10\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\1\10\1\u018a\6\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\5\10\1\u018b\2\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\10\10\2\0\1\7\3\0\13\10\1\u018c\6\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\7\10\1\u018d\2\0\1\7\3\0\11\10\1\254\10\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\7\10\1\u0189\12\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\12\10\1\u018e\7\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\336" + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\5\10\1\u018f\14\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\4\10\1\u0190\3\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\2\10" + + "\1\u0191\17\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\5\10\1\u0192\2\10\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\5\10\1\u0193\2\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\1\10\1\u0194\20\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\10\10\1\u0195\11\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\10\10\1\u0196\11\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\2\10\1\u0197\17\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + + "\2\10\1\u0198\17\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\12\10" + + "\1\u0199\7\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\6\10\1\u019a\1\10\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\2\10\1\u019b\5\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\11\10\1\u014c\10\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\10\10\1\u019c\2\10\1\254\6\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\2\10\1\u019d\17\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\7\10\1\u019e\12\10\22\0\1\u013b" + "\70\0\1\u013e\46\0\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\14\10" + "\1\u019f\5\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\6\10\1\u0186\1\10\2\0\1\7\3\0" + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\10\10\2\0\1\7\3\0\10\10\1\u019a\11\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\11\10\1\u01a0\10\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\12\10\1\u01a1\7\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\330" + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\3\10\1\u019e\4\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\3\10\1\u01a2\4\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\12\10" + "\1\234\7\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\16\10\1\u01a3" + "\3\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\1\u0111\7\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\6\10" + + "\1\u017d\1\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\11\10\1\u019a\10\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\4\10\1\254\15\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\1\367\7\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\12\10\1\u01a4" + "\7\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\3\10\1\254\4\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\1\u0108\7\10\2\0\1\7\3\0\22\10\1\7\6\10" + + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + "\1\7\3\0\5\10\1\116\14\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\2\10\1\u01a5\5\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + + "\1\u0111\21\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\1\10\1\u01a6\6\10\2\0\1\7\3\0" + + "\22\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\3\10\1\u01a7\4\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\5\10\1\u01a8\2\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\u0113" + + "\7\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\6\10\1\u01a9\1\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + "\10\10\1\367\11\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\5\10\1\u01aa\2\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\11\10\1\u01ab" + "\10\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\5\10\1\u01a4\2\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\10\10\1\u019e\11\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\10\10" + + "\2\0\1\7\3\0\13\10\1\u0189\6\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\5\10\1\u0155" + + "\2\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\1\254\7\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\11\10" + "\1\u01ac\10\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\u01ad\7\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\10\10\2\0\1\7\3\0\11\10\1\254\10\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\7\10" + "\1\254\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\5\10\1\212\2\10" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\3\10\1\u01ae\4\10\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\13\10" + "\1\u01af\6\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\10\10\2\0\1\7\3\0\13\10\1\367" + "\6\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + + "\2\0\5\10\1\u0105\2\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + "\6\10\1\367\1\10\2\0\1\7\3\0\22\10\1\7" + + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\10" + "\1\235\6\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\10\10\2\0" + + "\1\7\3\0\5\10\1\254\14\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + + "\3\0\10\10\1\u01b0\11\10\1\7\6\10\1\0\1\7" + "\1\10\11\0\4\10\2\0\10\10\2\0\1\7\3\0" + + "\11\10\1\235\10\10\1\7\6\10\1\0\1\7\1\10" + "\11\0\4\10\2\0\10\10\2\0\1\7\3\0\2\10" + + "\1\u0182\17\10\1\7\6\10\1\0\1\7\1\10\11\0" + "\4\10\2\0\10\10\2\0\1\7\3\0\11\10\1\u017e" + + "\10\10\1\7\6\10\1\0\1\7\1\10\11\0\4\10" + "\2\0\10\10\2\0\1\7\3\0\4\10\1\367\15\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\1\52\7\10\2\0\1\7\3\0\22\10\1\7\6\10" + "\1\0\1\7\1\10\11\0\4\10\2\0\3\10\1\u01b1" + "\4\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + + "\1\7\1\10\11\0\4\10\2\0\7\10\1\u01b2\2\0" + "\1\7\3\0\22\10\1\7\6\10\1\0\1\7\1\10" + + "\11\0\4\10\2\0\2\10\1\u01b3\5\10\2\0\1\7" + "\3\0\22\10\1\7\6\10\1\0\1\7\1\10\11\0" + + "\4\10\2\0\1\u01b4\7\10\2\0\1\7\3\0\22\10" + "\1\7\6\10\1\0\1\7\1\10\11\0\4\10\2\0" + + "\1\10\1\u0163\6\10\2\0\1\7\3\0\22\10\1\7" + "\6\10\1\0\1\7\1\10\11\0\4\10\2\0\1\u01b5" + + "\7\10\2\0\1\7\3\0\22\10\1\7\6\10\1\0" + "\1\7\1\10\11\0\4\10\2\0\10\10\2\0\1\7" + "\3\0\11\10\1\u0189\10\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\5\10\1\u0105\1\10\1\254" + "\2\0\1\7\3\0\22\10\1\7\6\10\1\0\1\7" + + "\1\10\11\0\4\10\2\0\1\10\1\270\6\10\2\0" + "\1\7\3\0\22\10"; + + private static int[] zzUnpackTrans() { + int[] result = new int[23313]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\6\0\4\1\1\11\1\1\1\11\4\1\2\11\30\1" + "\2\11\4\1\1\11\2\1\2\11\1\1\1\11\2\1" + + "\1\11\13\1\2\11\1\1\1\11\100\1\4\0\2\11" + "\4\0\1\1\1\0\2\1\1\11\123\1\10\0\104\1" + "\2\0\1\1\2\0\66\1\4\0\76\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[437]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specific to DelphiTokenMaker; denotes a line ending * with an unterminated "(*" comment. */ - public static final int INTERNAL_MLC2 = -1; - + public static final int INTERNAL_MLC2 = -1; /** * Token type specific to DelphiTokenMaker; denotes a line ending * with an unterminated "{$" compiler directive. */ - public static final int INTERNAL_COMPILER_DIRECTIVE = -2; - + public static final int INTERNAL_COMPILER_DIRECTIVE = -2; /** * Token type specific to DelphiTokenMaker; denotes a line ending * with an unterminated "(*$" compiler directive. */ - public static final int INTERNAL_COMPILER_DIRECTIVE2 = -3; - - + public static final int INTERNAL_COMPILER_DIRECTIVE2 = -3; + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public DelphiTokenMaker() { - } - - + public DelphiTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1131,26 +687,26 @@ public class DelphiTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -1173,7 +729,6 @@ public class DelphiTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1183,21 +738,18 @@ public class DelphiTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1206,7 +758,8 @@ public class DelphiTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1215,416 +768,470 @@ public class DelphiTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 DelphiTokenMaker(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 DelphiTokenMaker(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 < 158) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 15: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_COMPILER_DIRECTIVE); + return firstToken; + } + case 35: + break; + case 4: { + addToken(Token.PREPROCESSOR); + } + case 36: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 37: + break; + case 27: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 38: + break; + case 6: { + addToken(Token.WHITESPACE); + } + case 39: + break; + case 21: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 40: + break; + case 20: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 41: + break; + case 26: { + addToken(Token.RESERVED_WORD); + } + case 42: + break; + case 16: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.PREPROCESSOR); + } + case 43: + break; + case 9: { + addToken(Token.SEPARATOR); + } + case 44: + break; + case 17: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_COMPILER_DIRECTIVE2); + return firstToken; + } + case 45: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 46: + break; + case 18: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 47: + break; + case 25: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 48: + break; + case 30: { + addToken(Token.FUNCTION); + } + case 49: + break; + case 7: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 50: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_MLC2); + return firstToken; + } + case 51: + break; + case 32: { + addToken(Token.DATA_TYPE); + } + case 52: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 53: + break; + case 31: { + addToken(Token.LITERAL_BOOLEAN); + } + case 54: + break; + case 22: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 55: + break; + case 34: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 56: + break; + case 29: { + start = zzMarkedPos - 3; + yybegin(COMPILER_DIRECTIVE2); + } + case 57: + break; + case 24: { + start = zzMarkedPos - 2; + yybegin(MLC2); + } + case 58: + break; + case 33: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 59: + break; + case 19: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 60: + break; + case 28: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.PREPROCESSOR); + } + case 61: + break; + case 13: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.COMMENT_MULTILINE); + } + case 62: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 63: + break; + case 10: { + addToken(Token.OPERATOR); + } + case 64: + break; + case 8: { + start = zzMarkedPos - 1; + yybegin(MLC); + } + case 65: + break; + case 23: { + start = zzMarkedPos - 2; + yybegin(COMPILER_DIRECTIVE); + } + case 66: + break; + case 11: {} + case 67: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 68: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case COMPILER_DIRECTIVE: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_COMPILER_DIRECTIVE); + return firstToken; + } + case 438: + break; + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 439: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 440: + break; + case COMPILER_DIRECTIVE2: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_COMPILER_DIRECTIVE2); + return firstToken; + } + case 441: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 442: + break; + case MLC2: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_MLC2); + return firstToken; + } + case 443: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 DelphiTokenMaker(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 DelphiTokenMaker(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 < 158) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 15: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_COMPILER_DIRECTIVE); return firstToken; - } - case 35: break; - case 4: - { addToken(Token.PREPROCESSOR); - } - case 36: break; - case 5: - { addNullToken(); return firstToken; - } - case 37: break; - case 27: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 38: break; - case 6: - { addToken(Token.WHITESPACE); - } - case 39: break; - case 21: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 40: break; - case 20: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 41: break; - case 26: - { addToken(Token.RESERVED_WORD); - } - case 42: break; - case 16: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.PREPROCESSOR); - } - case 43: break; - case 9: - { addToken(Token.SEPARATOR); - } - case 44: break; - case 17: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_COMPILER_DIRECTIVE2); return firstToken; - } - case 45: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 46: break; - case 18: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 47: break; - case 25: - { start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - case 48: break; - case 30: - { addToken(Token.FUNCTION); - } - case 49: break; - case 7: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 50: break; - case 14: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_MLC2); return firstToken; - } - case 51: break; - case 32: - { addToken(Token.DATA_TYPE); - } - case 52: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 53: break; - case 31: - { addToken(Token.LITERAL_BOOLEAN); - } - case 54: break; - case 22: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 55: break; - case 34: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 56: break; - case 29: - { start = zzMarkedPos-3; yybegin(COMPILER_DIRECTIVE2); - } - case 57: break; - case 24: - { start = zzMarkedPos-2; yybegin(MLC2); - } - case 58: break; - case 33: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 59: break; - case 19: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 60: break; - case 28: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.PREPROCESSOR); - } - case 61: break; - case 13: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.COMMENT_MULTILINE); - } - case 62: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 63: break; - case 10: - { addToken(Token.OPERATOR); - } - case 64: break; - case 8: - { start = zzMarkedPos-1; yybegin(MLC); - } - case 65: break; - case 23: - { start = zzMarkedPos-2; yybegin(COMPILER_DIRECTIVE); - } - case 66: break; - case 11: - { - } - case 67: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 68: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case COMPILER_DIRECTIVE: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_COMPILER_DIRECTIVE); return firstToken; - } - case 438: break; - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 439: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 440: break; - case COMPILER_DIRECTIVE2: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_COMPILER_DIRECTIVE2); return firstToken; - } - case 441: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 442: break; - case MLC2: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_MLC2); return firstToken; - } - case 443: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/DockerTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/DockerTokenMaker.java index ce7565c..a251e37 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/DockerTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/DockerTokenMaker.java @@ -1,353 +1,296 @@ /* The following code was generated by JFlex 1.4.1 on 11/25/15 12:02 AM */ - /* * 11/24/2015 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; +import org.fife.ui.rsyntaxtextarea.TokenTypes; /** - * Scanner for Dockerfiles.

+ * Scanner for Dockerfiles. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated DockerTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated DockerTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class DockerTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int STRING = 1; - public static final int CHAR_LITERAL = 2; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\2\1\37\1\0\1\2\23\0\1\2\1\0\1\34\1\36"+ - "\3\0\1\35\5\0\2\1\1\0\12\1\4\0\1\33\2\0\1\4"+ - "\1\14\1\24\1\17\1\10\1\12\1\30\1\1\1\5\1\1\1\27"+ - "\1\16\1\3\1\6\1\13\1\21\1\1\1\11\1\22\1\7\1\15"+ - "\1\23\1\26\1\20\1\25\1\1\1\31\1\40\1\31\1\0\1\1"+ - "\1\0\1\4\1\14\1\24\1\17\1\10\1\12\1\30\1\1\1\5"+ - "\1\1\1\27\1\16\1\3\1\6\1\13\1\21\1\1\1\11\1\22"+ - "\1\7\1\15\1\23\1\26\1\20\1\25\1\1\1\0\1\32\uff83\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 = - "\1\1\2\0\2\1\1\2\14\1\1\3\2\4\1\5"+ - "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\11"+ - "\1\15\1\16\1\17\16\1\1\14\1\17\1\1\1\20"+ - "\41\1"; - - private static int [] zzUnpackAction() { - int [] result = new int[84]; - 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\41\0\102\0\143\0\204\0\245\0\306\0\347"+ - "\0\u0108\0\u0129\0\u014a\0\u016b\0\u018c\0\u01ad\0\u01ce\0\u01ef"+ - "\0\u0210\0\u0231\0\143\0\143\0\u0252\0\143\0\143\0\u0273"+ - "\0\143\0\u0294\0\143\0\143\0\u02b5\0\u02d6\0\143\0\143"+ - "\0\u02f7\0\u0318\0\u0339\0\u035a\0\u037b\0\u039c\0\u03bd\0\u03de"+ - "\0\u03ff\0\u0420\0\u0441\0\u0462\0\u0483\0\u04a4\0\u04c5\0\143"+ - "\0\143\0\u04e6\0\204\0\u0507\0\u0528\0\u0549\0\u056a\0\u058b"+ - "\0\u05ac\0\u05cd\0\u05ee\0\u060f\0\u0630\0\u0651\0\u0672\0\u0693"+ - "\0\u06b4\0\u06d5\0\u06f6\0\u0717\0\u0738\0\u0759\0\u077a\0\u079b"+ - "\0\u07bc\0\u07dd\0\u07fe\0\u081f\0\u0840\0\u0861\0\u0882\0\u08a3"+ - "\0\u08c4\0\u08e5\0\u0906\0\u0927"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[84]; - 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 = - "\1\4\1\5\1\6\1\7\1\10\3\5\1\11\1\12"+ - "\1\13\1\14\1\5\1\15\1\16\3\5\1\17\1\20"+ - "\1\21\1\5\1\22\2\5\1\23\1\24\1\25\1\26"+ - "\1\27\1\30\1\31\1\4\34\32\1\33\2\32\1\34"+ - "\1\35\35\36\1\37\1\36\1\40\1\41\42\0\1\5"+ - "\1\0\26\5\12\0\1\6\37\0\1\5\1\0\1\5"+ - "\1\42\24\5\11\0\1\5\1\0\6\5\1\43\5\5"+ - "\1\44\11\5\11\0\1\5\1\0\3\5\1\45\11\5"+ - "\1\46\10\5\11\0\1\5\1\0\12\5\1\47\13\5"+ - "\11\0\1\5\1\0\6\5\1\50\17\5\11\0\1\5"+ - "\1\0\3\5\1\51\22\5\11\0\1\5\1\0\17\5"+ - "\1\52\6\5\11\0\1\5\1\0\1\5\1\53\24\5"+ - "\11\0\1\5\1\0\4\5\1\54\21\5\11\0\1\5"+ - "\1\0\10\5\1\55\15\5\11\0\1\5\1\0\1\44"+ - "\7\5\1\56\15\5\11\0\1\5\1\0\10\5\1\57"+ - "\15\5\43\0\1\24\5\0\37\30\1\0\1\30\34\32"+ - "\1\0\2\32\2\0\37\60\1\0\1\60\35\36\1\0"+ - "\1\36\2\0\37\61\1\0\1\61\1\0\1\5\1\0"+ - "\2\5\1\62\23\5\11\0\1\5\1\0\25\5\1\63"+ - "\11\0\1\5\1\0\14\5\1\63\11\5\11\0\1\5"+ - "\1\0\4\5\1\64\13\5\1\63\5\5\11\0\1\5"+ - "\1\0\16\5\1\65\7\5\11\0\1\5\1\0\3\5"+ - "\1\63\22\5\11\0\1\5\1\0\10\5\1\66\15\5"+ - "\11\0\1\5\1\0\11\5\1\67\14\5\11\0\1\5"+ - "\1\0\5\5\1\70\20\5\11\0\1\5\1\0\11\5"+ - "\1\71\14\5\11\0\1\5\1\0\10\5\1\72\15\5"+ - "\11\0\1\5\1\0\13\5\1\73\12\5\11\0\1\5"+ - "\1\0\16\5\1\74\7\5\11\0\1\5\1\0\6\5"+ - "\1\75\17\5\11\0\1\5\1\0\3\5\1\76\22\5"+ - "\11\0\1\5\1\0\6\5\1\77\17\5\11\0\1\5"+ - "\1\0\10\5\1\100\15\5\11\0\1\5\1\0\1\63"+ - "\25\5\11\0\1\5\1\0\12\5\1\101\13\5\11\0"+ - "\1\5\1\0\6\5\1\63\17\5\11\0\1\5\1\0"+ - "\5\5\1\102\20\5\11\0\1\5\1\0\16\5\1\103"+ - "\7\5\11\0\1\5\1\0\12\5\1\104\13\5\11\0"+ - "\1\5\1\0\22\5\1\63\3\5\11\0\1\5\1\0"+ - "\24\5\1\105\1\5\11\0\1\5\1\0\4\5\1\106"+ - "\21\5\11\0\1\5\1\0\22\5\1\107\3\5\11\0"+ - "\1\5\1\0\17\5\1\110\6\5\11\0\1\5\1\0"+ - "\2\5\1\111\23\5\11\0\1\5\1\0\13\5\1\63"+ - "\12\5\11\0\1\5\1\0\17\5\1\112\6\5\11\0"+ - "\1\5\1\0\1\110\25\5\11\0\1\5\1\0\14\5"+ - "\1\113\11\5\11\0\1\5\1\0\1\5\1\114\24\5"+ - "\11\0\1\5\1\0\16\5\1\115\7\5\11\0\1\5"+ - "\1\0\5\5\1\63\20\5\11\0\1\5\1\0\13\5"+ - "\1\44\12\5\11\0\1\5\1\0\2\5\1\116\23\5"+ - "\11\0\1\5\1\0\2\5\1\70\23\5\11\0\1\5"+ - "\1\0\2\5\1\117\23\5\11\0\1\5\1\0\10\5"+ - "\1\120\15\5\11\0\1\5\1\0\25\5\1\121\11\0"+ - "\1\5\1\0\3\5\1\52\22\5\11\0\1\5\1\0"+ - "\2\5\1\122\23\5\11\0\1\5\1\0\3\5\1\123"+ - "\22\5\11\0\1\5\1\0\3\5\1\124\22\5\11\0"+ - "\1\5\1\0\1\5\1\102\24\5\11\0\1\5\1\0"+ - "\4\5\1\63\21\5\10\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[2376]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\2\0\1\11\16\1\2\11\1\1\2\11\1\1"+ - "\1\11\1\1\2\11\2\1\2\11\17\1\2\11\43\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[84]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int STRING = 1; + public static final int CHAR_LITERAL = 2; + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\2\1\37\1\0\1\2\23\0\1\2\1\0\1\34\1\36" + + "\3\0\1\35\5\0\2\1\1\0\12\1\4\0\1\33\2\0\1\4" + "\1\14\1\24\1\17\1\10\1\12\1\30\1\1\1\5\1\1\1\27" + + "\1\16\1\3\1\6\1\13\1\21\1\1\1\11\1\22\1\7\1\15" + "\1\23\1\26\1\20\1\25\1\1\1\31\1\40\1\31\1\0\1\1" + + "\1\0\1\4\1\14\1\24\1\17\1\10\1\12\1\30\1\1\1\5" + "\1\1\1\27\1\16\1\3\1\6\1\13\1\21\1\1\1\11\1\22" + + "\1\7\1\15\1\23\1\26\1\20\1\25\1\1\1\0\1\32\uff83\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 = "\1\1\2\0\2\1\1\2\14\1\1\3\2\4\1\5" + "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\11" + + "\1\15\1\16\1\17\16\1\1\14\1\17\1\1\1\20" + "\41\1"; + + private static int[] zzUnpackAction() { + int[] result = new int[84]; + 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\41\0\102\0\143\0\204\0\245\0\306\0\347" + + "\0\u0108\0\u0129\0\u014a\0\u016b\0\u018c\0\u01ad\0\u01ce\0\u01ef" + + "\0\u0210\0\u0231\0\143\0\143\0\u0252\0\143\0\143\0\u0273" + "\0\143\0\u0294\0\143\0\143\0\u02b5\0\u02d6\0\143\0\143" + + "\0\u02f7\0\u0318\0\u0339\0\u035a\0\u037b\0\u039c\0\u03bd\0\u03de" + + "\0\u03ff\0\u0420\0\u0441\0\u0462\0\u0483\0\u04a4\0\u04c5\0\143" + + "\0\143\0\u04e6\0\204\0\u0507\0\u0528\0\u0549\0\u056a\0\u058b" + + "\0\u05ac\0\u05cd\0\u05ee\0\u060f\0\u0630\0\u0651\0\u0672\0\u0693" + + "\0\u06b4\0\u06d5\0\u06f6\0\u0717\0\u0738\0\u0759\0\u077a\0\u079b" + + "\0\u07bc\0\u07dd\0\u07fe\0\u081f\0\u0840\0\u0861\0\u0882\0\u08a3" + "\0\u08c4\0\u08e5\0\u0906\0\u0927"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[84]; + 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 = "\1\4\1\5\1\6\1\7\1\10\3\5\1\11\1\12" + "\1\13\1\14\1\5\1\15\1\16\3\5\1\17\1\20" + + "\1\21\1\5\1\22\2\5\1\23\1\24\1\25\1\26" + "\1\27\1\30\1\31\1\4\34\32\1\33\2\32\1\34" + + "\1\35\35\36\1\37\1\36\1\40\1\41\42\0\1\5" + "\1\0\26\5\12\0\1\6\37\0\1\5\1\0\1\5" + "\1\42\24\5\11\0\1\5\1\0\6\5\1\43\5\5" + + "\1\44\11\5\11\0\1\5\1\0\3\5\1\45\11\5" + "\1\46\10\5\11\0\1\5\1\0\12\5\1\47\13\5" + "\11\0\1\5\1\0\6\5\1\50\17\5\11\0\1\5" + + "\1\0\3\5\1\51\22\5\11\0\1\5\1\0\17\5" + "\1\52\6\5\11\0\1\5\1\0\1\5\1\53\24\5" + "\11\0\1\5\1\0\4\5\1\54\21\5\11\0\1\5" + + "\1\0\10\5\1\55\15\5\11\0\1\5\1\0\1\44" + "\7\5\1\56\15\5\11\0\1\5\1\0\10\5\1\57" + "\15\5\43\0\1\24\5\0\37\30\1\0\1\30\34\32" + + "\1\0\2\32\2\0\37\60\1\0\1\60\35\36\1\0" + "\1\36\2\0\37\61\1\0\1\61\1\0\1\5\1\0" + "\2\5\1\62\23\5\11\0\1\5\1\0\25\5\1\63" + + "\11\0\1\5\1\0\14\5\1\63\11\5\11\0\1\5" + "\1\0\4\5\1\64\13\5\1\63\5\5\11\0\1\5" + "\1\0\16\5\1\65\7\5\11\0\1\5\1\0\3\5" + + "\1\63\22\5\11\0\1\5\1\0\10\5\1\66\15\5" + "\11\0\1\5\1\0\11\5\1\67\14\5\11\0\1\5" + "\1\0\5\5\1\70\20\5\11\0\1\5\1\0\11\5" + + "\1\71\14\5\11\0\1\5\1\0\10\5\1\72\15\5" + "\11\0\1\5\1\0\13\5\1\73\12\5\11\0\1\5" + "\1\0\16\5\1\74\7\5\11\0\1\5\1\0\6\5" + + "\1\75\17\5\11\0\1\5\1\0\3\5\1\76\22\5" + "\11\0\1\5\1\0\6\5\1\77\17\5\11\0\1\5" + "\1\0\10\5\1\100\15\5\11\0\1\5\1\0\1\63" + + "\25\5\11\0\1\5\1\0\12\5\1\101\13\5\11\0" + "\1\5\1\0\6\5\1\63\17\5\11\0\1\5\1\0" + "\5\5\1\102\20\5\11\0\1\5\1\0\16\5\1\103" + + "\7\5\11\0\1\5\1\0\12\5\1\104\13\5\11\0" + "\1\5\1\0\22\5\1\63\3\5\11\0\1\5\1\0" + "\24\5\1\105\1\5\11\0\1\5\1\0\4\5\1\106" + + "\21\5\11\0\1\5\1\0\22\5\1\107\3\5\11\0" + "\1\5\1\0\17\5\1\110\6\5\11\0\1\5\1\0" + "\2\5\1\111\23\5\11\0\1\5\1\0\13\5\1\63" + + "\12\5\11\0\1\5\1\0\17\5\1\112\6\5\11\0" + "\1\5\1\0\1\110\25\5\11\0\1\5\1\0\14\5" + "\1\113\11\5\11\0\1\5\1\0\1\5\1\114\24\5" + + "\11\0\1\5\1\0\16\5\1\115\7\5\11\0\1\5" + "\1\0\5\5\1\63\20\5\11\0\1\5\1\0\13\5" + "\1\44\12\5\11\0\1\5\1\0\2\5\1\116\23\5" + + "\11\0\1\5\1\0\2\5\1\70\23\5\11\0\1\5" + "\1\0\2\5\1\117\23\5\11\0\1\5\1\0\10\5" + "\1\120\15\5\11\0\1\5\1\0\25\5\1\121\11\0" + + "\1\5\1\0\3\5\1\52\22\5\11\0\1\5\1\0" + "\2\5\1\122\23\5\11\0\1\5\1\0\3\5\1\123" + "\22\5\11\0\1\5\1\0\3\5\1\124\22\5\11\0" + + "\1\5\1\0\1\5\1\102\24\5\11\0\1\5\1\0" + "\4\5\1\63\21\5\10\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[2376]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\1\2\0\1\11\16\1\2\11\1\1\2\11\1\1" + "\1\11\1\1\2\11\2\1\2\11\17\1\2\11\43\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[84]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public DockerTokenMaker() { - } - - + public DockerTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -355,43 +298,42 @@ public class DockerTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns whether tokens of the specified type should have "mark * occurrences" enabled for the current programming language. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER || type==Token.RESERVED_WORD; + return type == Token.IDENTIFIER || type == Token.RESERVED_WORD; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = TokenTypes.NULL; - s = text; try { yyreset(zzReader); @@ -401,21 +343,18 @@ public class DockerTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -424,7 +363,8 @@ public class DockerTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -433,332 +373,341 @@ public class DockerTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 DockerTokenMaker(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 DockerTokenMaker(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 < 160) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 16: { + addToken(Token.RESERVED_WORD); + } + case 17: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 18: + break; + case 7: { + addToken(Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 19: + break; + case 2: { + addToken(Token.WHITESPACE); + } + case 20: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 21: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 22: + break; + case 12: { /* Skip escaped chars. */ + } + case 23: + break; + case 4: { + addToken(Token.OPERATOR); + } + case 24: + break; + case 15: { /* + * Skip escaped single quotes only, but this should + * still work. + */ + } + case 25: + break; + case 5: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 26: + break; + case 13: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 27: + break; + case 10: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 28: + break; + case 8: { + addNullToken(); + return firstToken; + } + case 29: + break; + case 9: {} + case 30: + break; + case 3: { + addToken(Token.SEPARATOR); + } + case 31: + break; + case 6: { + start = zzMarkedPos - 1; + yybegin(CHAR_LITERAL); + } + case 32: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 85: + break; + case CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 86: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 87: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 DockerTokenMaker(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 DockerTokenMaker(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 < 160) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 16: - { addToken(Token.RESERVED_WORD); - } - case 17: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 18: break; - case 7: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 19: break; - case 2: - { addToken(Token.WHITESPACE); - } - case 20: break; - case 11: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 21: break; - case 14: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 22: break; - case 12: - { /* Skip escaped chars. */ - } - case 23: break; - case 4: - { addToken(Token.OPERATOR); - } - case 24: break; - case 15: - { /* Skip escaped single quotes only, but this should still work. */ - } - case 25: break; - case 5: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 26: break; - case 13: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 27: break; - case 10: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 28: break; - case 8: - { addNullToken(); return firstToken; - } - case 29: break; - case 9: - { - } - case 30: break; - case 3: - { addToken(Token.SEPARATOR); - } - case 31: break; - case 6: - { start = zzMarkedPos-1; yybegin(CHAR_LITERAL); - } - case 32: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 85: break; - case CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 86: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 87: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/DtdTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/DtdTokenMaker.java index 539cef6..f7eddf7 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/DtdTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/DtdTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 7/9/16 6:48 PM */ - /* * 04/12/2012 - * * DtdTokenMaker.java - Generates tokens for DTD syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -18,390 +15,338 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** * Scanner for DTD files. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated XMLTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated XMLTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 1.0 */ - public class DtdTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int INTAG_START = 2; - public static final int INTAG_ELEMENT = 3; - public static final int YYINITIAL = 0; - public static final int INTAG_ATTLIST = 4; - public static final int COMMENT = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\1\1\2\1\0\1\1\23\0\1\1\1\24\1\3\1\41"+ - "\1\7\1\5\1\5\1\4\5\5\1\25\1\22\1\6\12\7\1\20"+ - "\1\5\1\23\1\5\1\26\2\5\1\34\1\7\1\37\1\40\1\27"+ - "\3\7\1\35\2\7\1\30\1\31\1\32\1\7\1\42\1\44\1\43"+ - "\1\36\1\33\1\45\5\7\1\5\1\0\1\5\1\0\1\5\1\0"+ - "\4\7\1\17\1\14\1\7\1\10\1\15\2\7\1\16\3\7\1\12"+ - "\2\7\1\13\1\11\2\7\1\21\3\7\3\0\1\5\uff81\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\1\3\1\4\1\5\4\4\1\3"+ - "\1\6\2\3\2\7\2\10\2\7\1\11\5\0\2\3"+ - "\1\10\3\7\5\0\1\12\2\3\3\7\1\13\2\0"+ - "\1\14\2\3\3\7\2\0\2\3\1\15\2\7\2\3"+ - "\2\7\1\16\1\17\1\7"; - - private static int [] zzUnpackAction() { - int [] result = new int[70]; - 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\46\0\114\0\162\0\230\0\276\0\344\0\u010a"+ - "\0\u0130\0\u0156\0\u017c\0\u01a2\0\u01c8\0\u01ee\0\u0214\0\u0156"+ - "\0\u023a\0\u0260\0\u0286\0\u02ac\0\u02d2\0\u02f8\0\u031e\0\u0344"+ - "\0\u036a\0\u0390\0\u03b6\0\u03dc\0\u0402\0\u0428\0\u044e\0\u0474"+ - "\0\u0156\0\u049a\0\u04c0\0\u04e6\0\u050c\0\u0532\0\u0558\0\u057e"+ - "\0\u05a4\0\u0156\0\u05ca\0\u05f0\0\u0616\0\u063c\0\u0662\0\u0156"+ - "\0\u0688\0\u06ae\0\u06d4\0\u06fa\0\u0720\0\u0746\0\u076c\0\u0792"+ - "\0\u07b8\0\u06d4\0\u07de\0\u0804\0\u02ac\0\u082a\0\u0850\0\u0876"+ - "\0\u089c\0\u08c2\0\u08e8\0\u0214\0\u0214\0\u090e"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[70]; - 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 = - "\1\6\1\7\21\6\1\10\22\6\2\11\1\12\5\11"+ - "\1\13\3\11\1\14\4\11\1\15\3\11\1\16\20\11"+ - "\1\17\1\7\24\17\1\20\1\21\4\17\1\22\11\17"+ - "\1\23\1\7\24\23\1\20\17\23\1\24\1\7\1\24"+ - "\1\25\1\26\21\24\1\20\10\24\1\27\1\24\1\30"+ - "\4\24\1\6\1\0\21\6\1\0\22\6\1\0\1\7"+ - "\70\0\1\31\21\0\2\11\1\0\5\11\1\0\3\11"+ - "\1\0\4\11\1\0\3\11\1\0\20\11\57\0\1\32"+ - "\45\0\1\33\3\0\1\34\51\0\1\35\51\0\1\36"+ - "\20\0\1\17\1\0\24\17\1\0\20\17\1\0\24\17"+ - "\1\0\1\17\1\37\16\17\1\0\24\17\1\0\4\17"+ - "\1\40\12\17\1\23\1\0\24\23\1\0\17\23\1\24"+ - "\1\0\1\24\2\0\21\24\1\0\17\24\3\25\1\41"+ - "\42\25\4\26\1\41\41\26\1\24\1\0\1\24\2\0"+ - "\21\24\1\0\11\24\1\42\6\24\1\0\1\24\2\0"+ - "\21\24\1\0\6\24\1\43\5\24\1\44\2\24\25\0"+ - "\1\45\31\0\1\46\46\0\1\47\51\0\1\50\50\0"+ - "\1\51\52\0\1\52\17\0\1\17\1\0\24\17\1\0"+ - "\1\53\17\17\1\0\24\17\1\0\4\17\1\54\12\17"+ - "\1\24\1\0\1\24\2\0\21\24\1\0\5\24\1\55"+ - "\12\24\1\0\1\24\2\0\21\24\1\0\2\24\1\56"+ - "\15\24\1\0\1\24\2\0\21\24\1\0\1\57\16\24"+ - "\25\0\1\60\32\0\1\61\53\0\1\62\44\0\1\47"+ - "\50\0\1\63\23\0\1\17\1\0\24\17\1\0\2\17"+ - "\1\64\15\17\1\0\24\17\1\0\1\17\1\65\15\17"+ - "\1\24\1\0\1\24\2\0\21\24\1\0\4\24\1\66"+ - "\13\24\1\0\1\24\2\0\21\24\1\0\13\24\1\67"+ - "\4\24\1\0\1\24\2\0\21\24\1\0\15\24\1\70"+ - "\1\24\13\0\1\47\4\0\1\62\33\0\1\71\43\0"+ - "\2\72\12\63\1\72\1\63\1\72\1\0\2\72\1\0"+ - "\12\63\1\72\4\63\1\17\1\0\24\17\1\0\1\73"+ - "\17\17\1\0\24\17\1\0\6\17\1\74\10\17\1\24"+ - "\1\0\1\24\2\0\21\24\1\0\5\24\1\75\12\24"+ - "\1\0\1\24\2\0\21\24\1\0\1\24\1\76\16\24"+ - "\1\0\1\24\2\0\21\24\1\0\16\24\1\77\6\0"+ - "\1\63\37\0\1\17\1\0\24\17\1\0\3\17\1\100"+ - "\14\17\1\0\24\17\1\0\7\17\1\101\7\17\1\24"+ - "\1\0\1\24\2\0\21\24\1\0\6\24\1\102\11\24"+ - "\1\0\1\24\2\0\21\24\1\0\6\24\1\103\10\24"+ - "\1\17\1\0\24\17\1\0\4\17\1\104\13\17\1\0"+ - "\24\17\1\0\4\17\1\105\12\17\1\24\1\0\1\24"+ - "\2\0\21\24\1\0\1\106\17\24\1\0\1\24\2\0"+ - "\21\24\1\0\14\24\1\102\3\24\1\0\1\24\2\0"+ - "\21\24\1\0\11\24\1\75\5\24"; - - private static int [] zzUnpackTrans() { - int [] result = new int[2356]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\5\0\4\1\1\11\5\1\1\11\11\1\5\0\2\1"+ - "\1\11\3\1\5\0\1\11\5\1\1\11\2\0\6\1"+ - "\2\0\14\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[70]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int INTAG_START = 2; + public static final int INTAG_ELEMENT = 3; + public static final int YYINITIAL = 0; + public static final int INTAG_ATTLIST = 4; + public static final int COMMENT = 1; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\1\1\2\1\0\1\1\23\0\1\1\1\24\1\3\1\41" + + "\1\7\1\5\1\5\1\4\5\5\1\25\1\22\1\6\12\7\1\20" + "\1\5\1\23\1\5\1\26\2\5\1\34\1\7\1\37\1\40\1\27" + + "\3\7\1\35\2\7\1\30\1\31\1\32\1\7\1\42\1\44\1\43" + "\1\36\1\33\1\45\5\7\1\5\1\0\1\5\1\0\1\5\1\0" + + "\4\7\1\17\1\14\1\7\1\10\1\15\2\7\1\16\3\7\1\12" + "\2\7\1\13\1\11\2\7\1\21\3\7\3\0\1\5\uff81\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\1\3\1\4\1\5\4\4\1\3" + "\1\6\2\3\2\7\2\10\2\7\1\11\5\0\2\3" + + "\1\10\3\7\5\0\1\12\2\3\3\7\1\13\2\0" + "\1\14\2\3\3\7\2\0\2\3\1\15\2\7\2\3" + "\2\7\1\16\1\17\1\7"; + + private static int[] zzUnpackAction() { + int[] result = new int[70]; + 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\46\0\114\0\162\0\230\0\276\0\344\0\u010a" + + "\0\u0130\0\u0156\0\u017c\0\u01a2\0\u01c8\0\u01ee\0\u0214\0\u0156" + + "\0\u023a\0\u0260\0\u0286\0\u02ac\0\u02d2\0\u02f8\0\u031e\0\u0344" + + "\0\u036a\0\u0390\0\u03b6\0\u03dc\0\u0402\0\u0428\0\u044e\0\u0474" + + "\0\u0156\0\u049a\0\u04c0\0\u04e6\0\u050c\0\u0532\0\u0558\0\u057e" + + "\0\u05a4\0\u0156\0\u05ca\0\u05f0\0\u0616\0\u063c\0\u0662\0\u0156" + + "\0\u0688\0\u06ae\0\u06d4\0\u06fa\0\u0720\0\u0746\0\u076c\0\u0792" + + "\0\u07b8\0\u06d4\0\u07de\0\u0804\0\u02ac\0\u082a\0\u0850\0\u0876" + "\0\u089c\0\u08c2\0\u08e8\0\u0214\0\u0214\0\u090e"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[70]; + 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 = "\1\6\1\7\21\6\1\10\22\6\2\11\1\12\5\11" + "\1\13\3\11\1\14\4\11\1\15\3\11\1\16\20\11" + + "\1\17\1\7\24\17\1\20\1\21\4\17\1\22\11\17" + "\1\23\1\7\24\23\1\20\17\23\1\24\1\7\1\24" + + "\1\25\1\26\21\24\1\20\10\24\1\27\1\24\1\30" + "\4\24\1\6\1\0\21\6\1\0\22\6\1\0\1\7" + + "\70\0\1\31\21\0\2\11\1\0\5\11\1\0\3\11" + "\1\0\4\11\1\0\3\11\1\0\20\11\57\0\1\32" + + "\45\0\1\33\3\0\1\34\51\0\1\35\51\0\1\36" + "\20\0\1\17\1\0\24\17\1\0\20\17\1\0\24\17" + + "\1\0\1\17\1\37\16\17\1\0\24\17\1\0\4\17" + "\1\40\12\17\1\23\1\0\24\23\1\0\17\23\1\24" + + "\1\0\1\24\2\0\21\24\1\0\17\24\3\25\1\41" + "\42\25\4\26\1\41\41\26\1\24\1\0\1\24\2\0" + + "\21\24\1\0\11\24\1\42\6\24\1\0\1\24\2\0" + "\21\24\1\0\6\24\1\43\5\24\1\44\2\24\25\0" + + "\1\45\31\0\1\46\46\0\1\47\51\0\1\50\50\0" + "\1\51\52\0\1\52\17\0\1\17\1\0\24\17\1\0" + + "\1\53\17\17\1\0\24\17\1\0\4\17\1\54\12\17" + "\1\24\1\0\1\24\2\0\21\24\1\0\5\24\1\55" + + "\12\24\1\0\1\24\2\0\21\24\1\0\2\24\1\56" + "\15\24\1\0\1\24\2\0\21\24\1\0\1\57\16\24" + + "\25\0\1\60\32\0\1\61\53\0\1\62\44\0\1\47" + "\50\0\1\63\23\0\1\17\1\0\24\17\1\0\2\17" + + "\1\64\15\17\1\0\24\17\1\0\1\17\1\65\15\17" + "\1\24\1\0\1\24\2\0\21\24\1\0\4\24\1\66" + + "\13\24\1\0\1\24\2\0\21\24\1\0\13\24\1\67" + "\4\24\1\0\1\24\2\0\21\24\1\0\15\24\1\70" + + "\1\24\13\0\1\47\4\0\1\62\33\0\1\71\43\0" + "\2\72\12\63\1\72\1\63\1\72\1\0\2\72\1\0" + + "\12\63\1\72\4\63\1\17\1\0\24\17\1\0\1\73" + "\17\17\1\0\24\17\1\0\6\17\1\74\10\17\1\24" + + "\1\0\1\24\2\0\21\24\1\0\5\24\1\75\12\24" + "\1\0\1\24\2\0\21\24\1\0\1\24\1\76\16\24" + + "\1\0\1\24\2\0\21\24\1\0\16\24\1\77\6\0" + "\1\63\37\0\1\17\1\0\24\17\1\0\3\17\1\100" + + "\14\17\1\0\24\17\1\0\7\17\1\101\7\17\1\24" + "\1\0\1\24\2\0\21\24\1\0\6\24\1\102\11\24" + + "\1\0\1\24\2\0\21\24\1\0\6\24\1\103\10\24" + "\1\17\1\0\24\17\1\0\4\17\1\104\13\17\1\0" + + "\24\17\1\0\4\17\1\105\12\17\1\24\1\0\1\24" + "\2\0\21\24\1\0\1\106\17\24\1\0\1\24\2\0" + + "\21\24\1\0\14\24\1\102\3\24\1\0\1\24\2\0" + "\21\24\1\0\11\24\1\75\5\24"; + + private static int[] zzUnpackTrans() { + int[] result = new int[2356]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\5\0\4\1\1\11\5\1\1\11\11\1\5\0\2\1" + "\1\11\3\1\5\0\1\11\5\1\1\11\2\0\6\1" + + "\2\0\14\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[70]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specific to XMLTokenMaker denoting a line ending with an * unclosed XML tag; thus a new line is beginning still inside of the tag. */ - public static final int INTERNAL_INTAG_START = -1; - + public static final int INTERNAL_INTAG_START = -1; /** * Token type specific to XMLTokenMaker denoting a line ending with an * unclosed DOCTYPE element. */ - public static final int INTERNAL_INTAG_ELEMENT = -2; - + public static final int INTERNAL_INTAG_ELEMENT = -2; /** * Token type specific to XMLTokenMaker denoting a line ending with an * unclosed, locally-defined DTD in a DOCTYPE element. */ - public static final int INTERNAL_INTAG_ATTLIST = -3; - + public static final int INTERNAL_INTAG_ATTLIST = -3; /** * Token type specific to XMLTokenMaker denoting a line ending with an - * unclosed comment. The state to return to when this comment ends is + * unclosed comment. The state to return to when this comment ends is * embedded in the token type as well. */ - public static final int INTERNAL_IN_COMMENT = -(1<<11); - + public static final int INTERNAL_IN_COMMENT = -(1 << 11); /** - * The state we were in prior to the current one. This is used to know + * The state we were in prior to the current one. This is used to know * what state to resume after an MLC ends. */ private int prevState; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public DtdTokenMaker() { - } - - + public DtdTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * Always returns false, as you never want "mark occurrences" * working in XML files. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @@ -409,27 +354,27 @@ public class DtdTokenMaker extends AbstractJFlexTokenMaker { public boolean getMarkOccurrencesOfTokenType(int type) { return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; prevState = YYINITIAL; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -443,7 +388,8 @@ public class DtdTokenMaker extends AbstractJFlexTokenMaker { state = INTAG_ATTLIST; break; default: - if (initialTokenType<-1024) { // INTERNAL_IN_COMMENT - prevState + if (initialTokenType < -1024) { // INTERNAL_IN_COMMENT - + // prevState int main = -(-initialTokenType & 0xffffff00); switch (main) { default: // Should never happen @@ -451,13 +397,11 @@ public class DtdTokenMaker extends AbstractJFlexTokenMaker { state = COMMENT; break; } - prevState = -initialTokenType&0xff; - } - else { // Shouldn't happen + prevState = -initialTokenType & 0xff; + } else { // Shouldn't happen state = YYINITIAL; } } - start = text.offset; s = text; try { @@ -468,21 +412,18 @@ public class DtdTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -491,7 +432,8 @@ public class DtdTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -500,336 +442,353 @@ public class DtdTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 DtdTokenMaker(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 DtdTokenMaker(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 < 138) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 3: { + addToken(Token.IDENTIFIER); + } + case 16: + break; + case 2: { + addToken(Token.WHITESPACE); + } + case 17: + break; + case 1: { + /* Not really valid */ addToken(Token.IDENTIFIER); + } + case 18: + break; + case 12: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 19: + break; + case 9: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(INTAG_START); + } + case 20: + break; + case 6: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(YYINITIAL); + } + case 21: + break; + case 10: { + int temp = zzMarkedPos; + addToken(start, zzStartRead + 2, Token.MARKUP_COMMENT); + start = temp; + yybegin(prevState); + } + case 22: + break; + case 11: { + start = zzStartRead; + prevState = zzLexicalState; + yybegin(COMMENT); + } + case 23: + break; + case 7: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 24: + break; + case 15: { + addToken(Token.MARKUP_TAG_NAME); + yybegin(INTAG_ATTLIST); + } + case 25: + break; + case 14: { + addToken(Token.MARKUP_TAG_NAME); + yybegin(INTAG_ELEMENT); + } + case 26: + break; + case 13: { + addToken(Token.MARKUP_PROCESSING_INSTRUCTION); + } + case 27: + break; + case 4: {} + case 28: + break; + case 5: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_COMMENT - prevState); + return firstToken; + } + case 29: + break; + case 8: { + addToken(Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 30: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case INTAG_START: { + addEndToken(INTERNAL_INTAG_START); + return firstToken; + } + case 71: + break; + case INTAG_ELEMENT: { + addEndToken(INTERNAL_INTAG_ELEMENT); + return firstToken; + } + case 72: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 73: + break; + case INTAG_ATTLIST: { + addEndToken(INTERNAL_INTAG_ATTLIST); + return firstToken; + } + case 74: + break; + case COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_COMMENT - prevState); + return firstToken; + } + case 75: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 DtdTokenMaker(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 DtdTokenMaker(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 < 138) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 3: - { addToken(Token.IDENTIFIER); - } - case 16: break; - case 2: - { addToken(Token.WHITESPACE); - } - case 17: break; - case 1: - { /* Not really valid */ addToken(Token.IDENTIFIER); - } - case 18: break; - case 12: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 19: break; - case 9: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(INTAG_START); - } - case 20: break; - case 6: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(YYINITIAL); - } - case 21: break; - case 10: - { int temp = zzMarkedPos; addToken(start,zzStartRead+2, Token.MARKUP_COMMENT); start = temp; yybegin(prevState); - } - case 22: break; - case 11: - { start = zzStartRead; prevState = zzLexicalState; yybegin(COMMENT); - } - case 23: break; - case 7: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 24: break; - case 15: - { addToken(Token.MARKUP_TAG_NAME); yybegin(INTAG_ATTLIST); - } - case 25: break; - case 14: - { addToken(Token.MARKUP_TAG_NAME); yybegin(INTAG_ELEMENT); - } - case 26: break; - case 13: - { addToken(Token.MARKUP_PROCESSING_INSTRUCTION); - } - case 27: break; - case 4: - { - } - case 28: break; - case 5: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_COMMENT - prevState); return firstToken; - } - case 29: break; - case 8: - { addToken(Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 30: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case INTAG_START: { - addEndToken(INTERNAL_INTAG_START); return firstToken; - } - case 71: break; - case INTAG_ELEMENT: { - addEndToken(INTERNAL_INTAG_ELEMENT); return firstToken; - } - case 72: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 73: break; - case INTAG_ATTLIST: { - addEndToken(INTERNAL_INTAG_ATTLIST); return firstToken; - } - case 74: break; - case COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_COMMENT - prevState); return firstToken; - } - case 75: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/FortranTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/FortranTokenMaker.java index df04357..1dc85e7 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/FortranTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/FortranTokenMaker.java @@ -1,579 +1,426 @@ /* The following code was generated by JFlex 1.4.1 on 10/16/06 10:31 AM */ - /* * 03/23/2005 - * * FortranTokenMaker.java - Scanner for the Fortran programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * Scanner for the Fortran programming language. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated FortranTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated FortranTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.4 * */ - public class FortranTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int STRING = 1; - public static final int YYINITIAL = 0; - public static final int CHAR = 2; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\2\1\1\1\0\1\2\23\0\1\2\1\5\1\10\1\0"+ - "\1\6\1\0\1\14\1\11\2\0\1\3\3\0\1\16\1\15\1\45"+ - "\1\50\1\51\7\6\2\0\1\12\1\13\1\12\2\0\1\25\1\37"+ - "\1\7\1\4\1\22\1\31\1\21\1\41\1\33\1\46\1\42\1\17"+ - "\1\36\1\24\1\26\1\35\1\23\1\27\1\32\1\20\1\30\1\6"+ - "\1\44\1\40\1\43\1\47\4\0\1\6\1\0\1\25\1\37\1\34"+ - "\1\4\1\22\1\31\1\21\1\41\1\33\1\46\1\42\1\17\1\36"+ - "\1\24\1\26\1\35\1\23\1\27\1\32\1\20\1\30\1\6\1\44"+ - "\1\40\1\43\1\47\uff85\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 = - "\1\0\2\1\1\2\1\3\1\4\1\5\1\6\1\7"+ - "\1\2\1\5\1\10\1\11\1\12\1\2\1\12\24\2"+ - "\1\1\1\13\1\14\1\1\1\15\1\16\7\2\1\17"+ - "\20\2\7\0\41\2\1\17\27\2\1\17\10\2\1\17"+ - "\3\2\4\0\2\17\3\2\2\17\20\2\1\17\10\2"+ - "\2\17\3\2\1\17\2\2\1\17\6\2\1\17\2\0"+ - "\3\2\1\17\4\2\1\17\26\2\1\0\20\2\1\20"+ - "\12\2\1\17"; - - private static int [] zzUnpackAction() { - int [] result = new int[257]; - 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\52\0\124\0\176\0\176\0\250\0\176\0\322"+ - "\0\176\0\374\0\u0126\0\176\0\176\0\u0150\0\u0150\0\176"+ - "\0\u017a\0\u01a4\0\u01ce\0\u01f8\0\u0222\0\u024c\0\u0276\0\u02a0"+ - "\0\u02ca\0\u02f4\0\u031e\0\u0348\0\u0372\0\u0126\0\u039c\0\u03c6"+ - "\0\u03f0\0\u041a\0\u0444\0\u046e\0\u0498\0\176\0\176\0\u04c2"+ - "\0\176\0\176\0\u04ec\0\u0516\0\u0540\0\u056a\0\u0594\0\u05be"+ - "\0\u05e8\0\u0612\0\u063c\0\u0666\0\u0690\0\u06ba\0\u06e4\0\u070e"+ - "\0\u0738\0\u0762\0\u078c\0\u07b6\0\u07e0\0\u080a\0\u0834\0\u085e"+ - "\0\u0888\0\u08b2\0\u08dc\0\u0906\0\u0930\0\u095a\0\u0984\0\u09ae"+ - "\0\u09d8\0\u0a02\0\u0a2c\0\u0a56\0\u0a80\0\u0aaa\0\u0ad4\0\u0afe"+ - "\0\u0b28\0\u0b52\0\u0b7c\0\u0ba6\0\u0bd0\0\u0bfa\0\u0c24\0\u0c4e"+ - "\0\u0c78\0\u0ca2\0\u0ccc\0\u0cf6\0\u0d20\0\u0d4a\0\u0d74\0\u0d9e"+ - "\0\u0dc8\0\u0df2\0\u0e1c\0\u0e46\0\u0e70\0\u0e9a\0\u0ec4\0\u0eee"+ - "\0\u0f18\0\u0f42\0\u0f6c\0\u0f96\0\u0fc0\0\u0fea\0\u1014\0\u103e"+ - "\0\u1068\0\u1092\0\u10bc\0\u10e6\0\u1110\0\u113a\0\u1164\0\u118e"+ - "\0\u11b8\0\u11e2\0\u120c\0\u1236\0\u1260\0\u128a\0\u12b4\0\u12de"+ - "\0\u1308\0\u1332\0\u135c\0\u1386\0\u13b0\0\u13da\0\u1404\0\u142e"+ - "\0\u1458\0\u1482\0\u14ac\0\u14d6\0\u1500\0\u152a\0\u1554\0\u157e"+ - "\0\u15a8\0\u15d2\0\u15fc\0\374\0\u1626\0\u1650\0\u167a\0\u16a4"+ - "\0\u16ce\0\u16f8\0\u1722\0\u174c\0\u1776\0\u17a0\0\u17ca\0\u17f4"+ - "\0\u181e\0\u1848\0\u1872\0\u189c\0\u18c6\0\u18f0\0\u191a\0\u1944"+ - "\0\u196e\0\u1998\0\u19c2\0\u19ec\0\u1a16\0\u1a40\0\u1a6a\0\u16f8"+ - "\0\u1a94\0\u1abe\0\u1ae8\0\u1b12\0\u1b3c\0\u1b66\0\u1b90\0\u1bba"+ - "\0\u1be4\0\u1c0e\0\u1c38\0\u174c\0\u1c62\0\u1c8c\0\u1cb6\0\u1ce0"+ - "\0\u1d0a\0\u1d34\0\u1d5e\0\u1d88\0\u1db2\0\u1ddc\0\u1e06\0\u1e30"+ - "\0\u1e5a\0\u1e84\0\u1eae\0\u1ed8\0\u1f02\0\u1f2c\0\u1b12\0\u1f56"+ - "\0\u1f80\0\u1faa\0\u1fd4\0\u1ffe\0\u2028\0\u2052\0\u207c\0\u20a6"+ - "\0\u20d0\0\u20fa\0\u2124\0\u214e\0\u2178\0\u21a2\0\u21cc\0\u21f6"+ - "\0\u2220\0\u224a\0\u2274\0\u229e\0\u22c8\0\u22f2\0\u231c\0\u2346"+ - "\0\u2370\0\u239a\0\u23c4\0\u23ee\0\u2418\0\u2442\0\u246c\0\u2496"+ - "\0\u24c0\0\u24ea\0\u2514\0\u253e\0\u2568\0\176\0\u2592\0\u25bc"+ - "\0\u25e6\0\u2610\0\u263a\0\u2664\0\u268e\0\u26b8\0\u26e2\0\u270c"+ - "\0\u13da"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[257]; - 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 = - "\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13"+ - "\1\14\1\15\1\16\1\17\1\20\1\17\1\21\1\22"+ - "\1\23\1\24\1\25\1\12\1\26\1\27\1\30\1\31"+ - "\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41"+ - "\2\12\1\42\1\12\1\43\2\12\1\44\2\12\1\45"+ - "\1\46\6\45\1\47\41\45\1\50\1\51\7\50\1\52"+ - "\40\50\54\0\1\6\53\0\1\53\1\0\1\12\1\54"+ - "\7\0\1\55\1\56\1\12\1\57\1\12\1\60\1\61"+ - "\1\62\1\63\1\12\1\64\1\65\1\66\1\54\1\67"+ - "\1\70\1\71\12\12\4\0\1\12\1\0\2\12\7\0"+ - "\33\12\4\0\1\12\1\0\1\12\1\72\7\0\1\73"+ - "\2\12\1\74\2\12\1\75\1\76\3\12\1\77\1\12"+ - "\1\72\1\12\1\100\2\12\1\101\1\12\1\102\6\12"+ - "\13\0\1\20\55\0\1\103\1\104\1\103\1\105\1\0"+ - "\1\106\1\107\1\110\2\0\1\111\24\0\1\12\1\0"+ - "\2\12\7\0\1\112\1\12\1\112\1\113\3\12\1\114"+ - "\23\12\4\0\1\12\1\0\2\12\7\0\6\12\1\115"+ - "\1\12\1\116\11\12\1\117\10\12\4\0\1\12\1\0"+ - "\2\12\7\0\7\12\1\120\23\12\4\0\1\12\1\0"+ - "\2\12\7\0\1\121\4\12\1\122\13\12\1\123\11\12"+ - "\4\0\1\12\1\0\2\12\7\0\7\12\1\124\4\12"+ - "\1\125\16\12\4\0\1\12\1\0\1\12\1\72\7\0"+ - "\1\126\1\127\3\12\1\60\5\12\1\130\1\131\1\72"+ - "\1\12\1\132\1\133\12\12\4\0\1\12\1\0\2\12"+ - "\7\0\16\12\1\117\14\12\4\0\1\12\1\0\2\12"+ - "\7\0\3\12\1\134\27\12\4\0\1\12\1\0\2\12"+ - "\7\0\13\12\1\135\17\12\4\0\1\12\1\0\2\12"+ - "\7\0\1\136\6\12\1\137\1\12\1\140\21\12\4\0"+ - "\1\12\1\0\2\12\7\0\1\12\1\141\1\12\1\142"+ - "\1\143\1\144\3\12\1\145\2\12\1\146\16\12\4\0"+ - "\1\147\1\0\1\12\1\150\7\0\5\12\1\151\1\152"+ - "\3\12\1\153\1\154\1\12\1\150\1\12\1\155\13\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\156\1\12"+ - "\1\157\22\12\4\0\1\12\1\0\2\12\7\0\6\12"+ - "\1\160\1\161\4\12\1\162\16\12\4\0\1\12\1\0"+ - "\2\12\7\0\6\12\1\163\24\12\4\0\1\12\1\0"+ - "\2\12\7\0\14\12\1\164\16\12\4\0\1\12\1\0"+ - "\2\12\7\0\10\12\1\165\11\12\1\166\10\12\4\0"+ - "\1\12\1\0\2\12\7\0\3\12\1\167\27\12\1\45"+ - "\1\0\6\45\1\0\41\45\1\50\1\0\7\50\1\0"+ - "\40\50\4\0\1\12\1\0\2\12\7\0\14\12\1\170"+ - "\16\12\4\0\1\12\1\0\2\12\7\0\7\12\1\171"+ - "\7\12\1\100\13\12\4\0\1\12\1\0\2\12\7\0"+ - "\7\12\1\172\23\12\4\0\1\12\1\0\2\12\7\0"+ - "\6\12\1\115\24\12\4\0\1\12\1\0\2\12\7\0"+ - "\6\12\1\173\3\12\1\174\6\12\1\175\11\12\4\0"+ - "\1\12\1\0\2\12\7\0\14\12\1\125\16\12\4\0"+ - "\1\12\1\0\1\12\1\72\7\0\1\12\1\176\11\12"+ - "\1\130\1\12\1\72\2\12\1\133\12\12\4\0\1\12"+ - "\1\0\2\12\7\0\11\12\1\177\21\12\4\0\1\12"+ - "\1\0\2\12\7\0\3\12\1\200\27\12\4\0\1\12"+ - "\1\0\2\12\7\0\1\201\32\12\4\0\1\12\1\0"+ - "\2\12\7\0\4\12\1\143\7\12\1\146\16\12\4\0"+ - "\1\12\1\0\2\12\7\0\5\12\1\202\11\12\1\203"+ - "\13\12\4\0\1\12\1\0\2\12\7\0\10\12\1\204"+ - "\22\12\4\0\1\12\1\0\2\12\7\0\6\12\1\205"+ - "\1\206\4\12\1\207\16\12\4\0\1\12\1\0\2\12"+ - "\7\0\1\135\32\12\4\0\1\12\1\0\2\12\7\0"+ - "\7\12\1\133\23\12\4\0\1\12\1\0\2\12\7\0"+ - "\7\12\1\210\23\12\4\0\1\12\1\0\2\12\7\0"+ - "\14\12\1\211\16\12\4\0\1\12\1\0\2\12\7\0"+ - "\1\212\12\12\1\135\4\12\1\133\12\12\4\0\1\12"+ - "\1\0\2\12\7\0\5\12\1\213\5\12\1\214\3\12"+ - "\1\215\13\12\4\0\1\12\1\0\2\12\7\0\4\12"+ - "\1\143\7\12\1\113\16\12\4\0\1\12\1\0\2\12"+ - "\7\0\16\12\1\216\14\12\4\0\1\12\1\0\2\12"+ - "\7\0\6\12\1\217\24\12\4\0\1\12\1\0\1\12"+ - "\1\71\7\0\15\12\1\71\15\12\20\0\1\220\1\0"+ - "\1\220\56\0\1\221\45\0\1\220\50\0\1\220\53\0"+ - "\1\222\54\0\1\220\47\0\1\223\30\0\1\12\1\0"+ - "\2\12\7\0\1\12\1\224\1\12\1\224\27\12\4\0"+ - "\1\12\1\0\2\12\7\0\5\12\1\224\25\12\4\0"+ - "\1\12\1\0\2\12\7\0\2\12\1\225\30\12\4\0"+ - "\1\12\1\0\2\12\7\0\5\12\1\214\25\12\4\0"+ - "\1\12\1\0\2\12\7\0\6\12\1\226\24\12\4\0"+ - "\1\12\1\0\2\12\7\0\3\12\1\113\27\12\4\0"+ - "\1\12\1\0\2\12\7\0\1\12\1\227\31\12\4\0"+ - "\1\12\1\0\2\12\7\0\13\12\1\230\17\12\4\0"+ - "\1\231\1\0\2\12\7\0\33\12\4\0\1\12\1\0"+ - "\2\12\7\0\14\12\1\202\1\12\1\232\14\12\4\0"+ - "\1\12\1\0\2\12\7\0\5\12\1\135\25\12\4\0"+ - "\1\12\1\0\2\12\7\0\5\12\1\202\25\12\4\0"+ - "\1\12\1\0\2\12\7\0\1\233\6\12\1\172\23\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\234\24\12"+ - "\4\0\1\12\1\0\2\12\7\0\14\12\1\113\16\12"+ - "\4\0\1\12\1\0\2\12\7\0\5\12\1\202\11\12"+ - "\1\235\13\12\4\0\1\12\1\0\2\12\7\0\6\12"+ - "\1\236\1\206\4\12\1\237\16\12\4\0\1\12\1\0"+ - "\2\12\7\0\13\12\1\224\17\12\4\0\1\12\1\0"+ - "\2\12\7\0\1\12\1\240\4\12\1\241\16\12\1\42"+ - "\5\12\4\0\1\12\1\0\2\12\7\0\3\12\1\224"+ - "\27\12\4\0\1\12\1\0\2\12\7\0\7\12\1\242"+ - "\23\12\4\0\1\12\1\0\2\12\7\0\10\12\1\243"+ - "\22\12\4\0\1\12\1\0\2\12\7\0\5\12\1\244"+ - "\25\12\4\0\1\12\1\0\2\12\7\0\7\12\1\175"+ - "\23\12\4\0\1\12\1\0\2\12\7\0\1\245\32\12"+ - "\4\0\1\12\1\0\2\12\7\0\10\12\1\202\22\12"+ - "\4\0\1\12\1\0\2\12\7\0\2\12\1\212\30\12"+ - "\4\0\1\12\1\0\2\12\7\0\20\12\1\246\12\12"+ - "\4\0\1\12\1\0\2\12\7\0\2\12\1\113\2\12"+ - "\1\214\25\12\4\0\1\12\1\0\2\12\7\0\5\12"+ - "\1\60\6\12\1\247\16\12\4\0\1\12\1\0\2\12"+ - "\7\0\22\12\1\250\10\12\4\0\1\251\1\0\1\12"+ - "\1\252\7\0\1\12\1\253\2\12\1\254\10\12\1\252"+ - "\15\12\4\0\1\12\1\0\2\12\7\0\20\12\1\133"+ - "\12\12\4\0\1\12\1\0\2\12\7\0\14\12\1\255"+ - "\16\12\4\0\1\12\1\0\2\12\7\0\14\12\1\256"+ - "\16\12\4\0\1\12\1\0\2\12\7\0\6\12\1\257"+ - "\7\12\1\260\14\12\4\0\1\12\1\0\2\12\7\0"+ - "\10\12\1\261\1\32\21\12\4\0\1\12\1\0\2\12"+ - "\7\0\3\12\1\262\3\12\1\263\4\12\1\125\16\12"+ - "\4\0\1\12\1\0\2\12\7\0\21\12\1\264\11\12"+ - "\4\0\1\265\1\0\2\12\7\0\33\12\4\0\1\12"+ - "\1\0\2\12\7\0\5\12\1\264\25\12\4\0\1\12"+ - "\1\0\1\12\1\266\7\0\15\12\1\266\15\12\4\0"+ - "\1\12\1\0\2\12\7\0\5\12\1\206\25\12\4\0"+ - "\1\12\1\0\2\12\7\0\14\12\1\267\16\12\4\0"+ - "\1\12\1\0\2\12\7\0\3\12\1\270\10\12\1\71"+ - "\16\12\4\0\1\12\1\0\2\12\7\0\21\12\1\202"+ - "\11\12\4\0\1\12\1\0\2\12\7\0\17\12\1\224"+ - "\13\12\4\0\1\12\1\0\2\12\7\0\13\12\1\214"+ - "\17\12\4\0\1\12\1\0\2\12\7\0\2\12\1\271"+ - "\30\12\4\0\1\12\1\0\2\12\7\0\1\272\32\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\273\24\12"+ - "\4\0\1\12\1\0\2\12\7\0\16\12\1\224\14\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\274\24\12"+ - "\4\0\1\12\1\0\2\12\7\0\20\12\1\71\12\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\212\24\12"+ - "\4\0\1\12\1\0\2\12\7\0\7\12\1\275\23\12"+ - "\4\0\1\12\1\0\2\12\7\0\1\12\1\224\31\12"+ - "\4\0\1\12\1\0\2\12\7\0\3\12\1\276\27\12"+ - "\4\0\1\12\1\0\2\12\7\0\7\12\1\206\23\12"+ - "\4\0\1\12\1\0\2\12\7\0\21\12\1\277\11\12"+ - "\4\0\1\224\1\0\2\12\7\0\33\12\4\0\1\12"+ - "\1\0\2\12\7\0\5\12\1\277\25\12\4\0\1\12"+ - "\1\0\2\12\7\0\2\12\1\224\10\12\1\135\17\12"+ - "\4\0\1\12\1\0\2\12\7\0\1\300\32\12\4\0"+ - "\1\12\1\0\2\12\7\0\1\224\32\12\4\0\1\12"+ - "\1\0\2\12\7\0\1\12\1\301\25\12\1\257\3\12"+ - "\4\0\1\12\1\0\2\12\7\0\22\12\1\224\10\12"+ - "\4\0\1\12\1\0\2\12\7\0\16\12\1\302\14\12"+ - "\4\0\1\12\1\0\2\12\7\0\1\255\32\12\4\0"+ - "\1\12\1\0\2\12\7\0\10\12\1\303\22\12\16\0"+ - "\1\20\63\0\1\304\25\0\1\220\64\0\1\305\36\0"+ - "\1\12\1\0\2\12\7\0\14\12\1\306\14\12\1\307"+ - "\1\12\4\0\1\12\1\0\2\12\7\0\5\12\1\310"+ - "\25\12\4\0\1\12\1\0\2\12\7\0\7\12\1\224"+ - "\23\12\4\0\1\12\1\0\2\12\7\0\3\12\1\311"+ - "\27\12\4\0\1\227\1\0\2\12\7\0\12\12\1\312"+ - "\1\12\1\313\16\12\4\0\1\12\1\0\2\12\7\0"+ - "\1\314\32\12\4\0\1\12\1\0\2\12\7\0\7\12"+ - "\1\315\23\12\4\0\1\12\1\0\2\12\7\0\5\12"+ - "\1\316\25\12\4\0\1\12\1\0\2\12\7\0\6\12"+ - "\1\257\24\12\4\0\1\12\1\0\2\12\7\0\21\12"+ - "\1\317\11\12\4\0\1\12\1\0\2\12\7\0\5\12"+ - "\1\317\25\12\4\0\1\12\1\0\2\12\7\0\11\12"+ - "\1\320\21\12\4\0\1\224\1\0\2\12\7\0\1\224"+ - "\32\12\4\0\1\12\1\0\2\12\7\0\6\12\1\202"+ - "\1\321\23\12\4\0\1\12\1\0\2\12\7\0\6\12"+ - "\1\322\10\12\1\275\13\12\4\0\1\12\1\0\1\12"+ - "\1\323\7\0\15\12\1\323\15\12\4\0\1\12\1\0"+ - "\2\12\7\0\3\12\1\324\27\12\4\0\1\12\1\0"+ - "\2\12\7\0\10\12\1\325\22\12\4\0\1\12\1\0"+ - "\2\12\7\0\5\12\1\202\11\12\1\224\13\12\4\0"+ - "\1\12\1\0\2\12\7\0\6\12\1\321\24\12\4\0"+ - "\1\12\1\0\2\12\7\0\3\12\1\255\27\12\4\0"+ - "\1\12\1\0\2\12\7\0\1\326\32\12\4\0\1\12"+ - "\1\0\2\12\7\0\3\12\1\327\27\12\4\0\1\12"+ - "\1\0\2\12\7\0\11\12\1\330\21\12\4\0\1\12"+ - "\1\0\2\12\7\0\21\12\1\224\11\12\4\0\1\12"+ - "\1\0\2\12\7\0\2\12\1\113\30\12\4\0\1\12"+ - "\1\0\2\12\7\0\2\12\1\224\30\12\4\0\1\12"+ - "\1\0\2\12\7\0\6\12\1\331\24\12\4\0\1\12"+ - "\1\0\1\12\1\332\7\0\15\12\1\332\15\12\4\0"+ - "\1\12\1\0\2\12\7\0\2\12\1\333\30\12\4\0"+ - "\1\12\1\0\2\12\7\0\26\12\1\224\2\12\1\224"+ - "\1\12\4\0\1\12\1\0\2\12\7\0\11\12\1\334"+ - "\21\12\4\0\1\12\1\0\2\12\7\0\23\12\1\335"+ - "\7\12\4\0\1\12\1\0\2\12\7\0\1\12\1\135"+ - "\31\12\4\0\1\12\1\0\2\12\7\0\10\12\1\135"+ - "\22\12\4\0\1\12\1\0\2\12\7\0\31\12\1\307"+ - "\1\12\4\0\1\12\1\0\2\12\7\0\1\336\32\12"+ - "\4\0\1\12\1\0\2\12\7\0\11\12\1\337\21\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\202\24\12"+ - "\4\0\1\12\1\0\2\12\7\0\5\12\1\340\25\12"+ - "\4\0\1\12\1\0\2\12\7\0\31\12\1\224\1\12"+ - "\4\0\1\12\1\0\2\12\7\0\14\12\1\341\16\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\342\5\12"+ - "\1\343\16\12\4\0\1\12\1\0\2\12\7\0\1\251"+ - "\32\12\4\0\1\12\1\0\2\12\7\0\6\12\1\344"+ - "\24\12\22\0\1\345\61\0\1\304\23\0\1\12\1\0"+ - "\1\12\1\200\7\0\15\12\1\200\15\12\4\0\1\12"+ - "\1\0\2\12\7\0\26\12\1\224\4\12\4\0\1\12"+ - "\1\0\2\12\7\0\13\12\1\346\17\12\4\0\1\12"+ - "\1\0\2\12\7\0\14\12\1\313\10\12\1\347\5\12"+ - "\4\0\1\12\1\0\2\12\7\0\14\12\1\71\16\12"+ - "\4\0\1\12\1\0\2\12\7\0\12\12\1\224\20\12"+ - "\4\0\1\12\1\0\2\12\7\0\14\12\1\350\16\12"+ - "\4\0\1\12\1\0\1\12\1\351\7\0\15\12\1\351"+ - "\15\12\4\0\1\12\1\0\2\12\7\0\32\12\1\224"+ - "\4\0\1\12\1\0\2\12\7\0\10\12\1\113\22\12"+ - "\4\0\1\12\1\0\2\12\7\0\10\12\1\224\22\12"+ - "\4\0\1\12\1\0\2\12\7\0\1\212\32\12\4\0"+ - "\1\12\1\0\2\12\7\0\1\12\1\352\31\12\4\0"+ - "\1\12\1\0\1\12\1\202\7\0\15\12\1\202\15\12"+ - "\4\0\1\12\1\0\2\12\7\0\7\12\1\353\23\12"+ - "\4\0\1\12\1\0\2\12\7\0\11\12\1\354\21\12"+ - "\4\0\1\12\1\0\2\12\7\0\2\12\1\355\30\12"+ - "\4\0\1\12\1\0\2\12\7\0\14\12\1\270\16\12"+ - "\4\0\1\12\1\0\2\12\7\0\17\12\1\356\13\12"+ - "\4\0\1\12\1\0\2\12\7\0\14\12\1\340\16\12"+ - "\4\0\1\12\1\0\2\12\7\0\10\12\1\357\22\12"+ - "\4\0\1\12\1\0\2\12\7\0\1\360\32\12\4\0"+ - "\1\12\1\0\2\12\7\0\13\12\1\361\17\12\4\0"+ - "\1\12\1\0\2\12\7\0\7\12\1\362\23\12\4\0"+ - "\1\12\1\0\2\12\7\0\1\202\32\12\4\0\1\12"+ - "\1\0\2\12\7\0\13\12\1\352\17\12\4\0\1\12"+ - "\1\0\2\12\7\0\5\12\1\257\25\12\4\0\1\12"+ - "\1\0\2\12\7\0\14\12\1\363\16\12\4\0\1\12"+ - "\1\0\2\12\7\0\5\12\1\364\25\12\4\0\1\12"+ - "\1\0\1\12\1\365\7\0\15\12\1\365\15\12\16\0"+ - "\1\366\37\0\1\12\1\0\2\12\7\0\12\12\1\355"+ - "\20\12\4\0\1\12\1\0\2\12\7\0\22\12\1\367"+ - "\10\12\4\0\1\12\1\0\1\12\1\370\7\0\15\12"+ - "\1\370\15\12\4\0\1\12\1\0\2\12\7\0\6\12"+ - "\1\371\24\12\4\0\1\12\1\0\2\12\7\0\14\12"+ - "\1\372\16\12\4\0\1\12\1\0\2\12\7\0\11\12"+ - "\1\373\21\12\4\0\1\135\1\0\2\12\7\0\33\12"+ - "\4\0\1\12\1\0\2\12\7\0\3\12\1\321\27\12"+ - "\4\0\1\12\1\0\2\12\7\0\3\12\1\365\27\12"+ - "\4\0\1\12\1\0\2\12\7\0\6\12\1\170\24\12"+ - "\4\0\1\12\1\0\2\12\7\0\3\12\1\224\3\12"+ - "\1\224\23\12\4\0\1\12\1\0\2\12\7\0\16\12"+ - "\1\374\14\12\4\0\1\12\1\0\1\12\1\375\7\0"+ - "\15\12\1\375\15\12\4\0\1\12\1\0\2\12\7\0"+ - "\5\12\1\133\25\12\4\0\1\12\1\0\2\12\7\0"+ - "\11\12\1\135\21\12\4\0\1\12\1\0\2\12\7\0"+ - "\1\12\1\355\31\12\4\0\1\12\1\0\2\12\7\0"+ - "\3\12\1\270\27\12\4\0\1\12\1\0\2\12\7\0"+ - "\14\12\1\202\16\12\4\0\1\12\1\0\2\12\7\0"+ - "\1\12\1\376\31\12\4\0\1\12\1\0\2\12\7\0"+ - "\7\12\1\113\23\12\4\0\1\12\1\0\2\12\7\0"+ - "\1\12\1\377\31\12\4\0\1\12\1\0\2\12\7\0"+ - "\6\12\1\u0100\24\12\4\0\1\12\1\0\2\12\7\0"+ - "\6\12\1\267\24\12\4\0\1\12\1\0\2\12\7\0"+ - "\3\12\1\u0101\2\12\1\177\24\12\4\0\1\12\1\0"+ - "\2\12\7\0\14\12\1\124\16\12\4\0\1\12\1\0"+ - "\1\12\1\135\7\0\15\12\1\135\15\12"; - - private static int [] zzUnpackTrans() { - int [] result = new int[10038]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\2\1\2\11\1\1\1\11\1\1\1\11\2\1"+ - "\2\11\2\1\1\11\25\1\2\11\1\1\2\11\30\1"+ - "\7\0\106\1\4\0\60\1\2\0\37\1\1\0\20\1"+ - "\1\11\13\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[257]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int STRING = 1; + public static final int YYINITIAL = 0; + public static final int CHAR = 2; /** - * Constructor. We must have this here as there is no default, + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\2\1\1\1\0\1\2\23\0\1\2\1\5\1\10\1\0" + + "\1\6\1\0\1\14\1\11\2\0\1\3\3\0\1\16\1\15\1\45" + "\1\50\1\51\7\6\2\0\1\12\1\13\1\12\2\0\1\25\1\37" + + "\1\7\1\4\1\22\1\31\1\21\1\41\1\33\1\46\1\42\1\17" + "\1\36\1\24\1\26\1\35\1\23\1\27\1\32\1\20\1\30\1\6" + + "\1\44\1\40\1\43\1\47\4\0\1\6\1\0\1\25\1\37\1\34" + "\1\4\1\22\1\31\1\21\1\41\1\33\1\46\1\42\1\17\1\36" + + "\1\24\1\26\1\35\1\23\1\27\1\32\1\20\1\30\1\6\1\44" + "\1\40\1\43\1\47\uff85\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 = "\1\0\2\1\1\2\1\3\1\4\1\5\1\6\1\7" + "\1\2\1\5\1\10\1\11\1\12\1\2\1\12\24\2" + + "\1\1\1\13\1\14\1\1\1\15\1\16\7\2\1\17" + "\20\2\7\0\41\2\1\17\27\2\1\17\10\2\1\17" + "\3\2\4\0\2\17\3\2\2\17\20\2\1\17\10\2" + + "\2\17\3\2\1\17\2\2\1\17\6\2\1\17\2\0" + "\3\2\1\17\4\2\1\17\26\2\1\0\20\2\1\20" + "\12\2\1\17"; + + private static int[] zzUnpackAction() { + int[] result = new int[257]; + 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\52\0\124\0\176\0\176\0\250\0\176\0\322" + + "\0\176\0\374\0\u0126\0\176\0\176\0\u0150\0\u0150\0\176" + "\0\u017a\0\u01a4\0\u01ce\0\u01f8\0\u0222\0\u024c\0\u0276\0\u02a0" + + "\0\u02ca\0\u02f4\0\u031e\0\u0348\0\u0372\0\u0126\0\u039c\0\u03c6" + + "\0\u03f0\0\u041a\0\u0444\0\u046e\0\u0498\0\176\0\176\0\u04c2" + + "\0\176\0\176\0\u04ec\0\u0516\0\u0540\0\u056a\0\u0594\0\u05be" + + "\0\u05e8\0\u0612\0\u063c\0\u0666\0\u0690\0\u06ba\0\u06e4\0\u070e" + + "\0\u0738\0\u0762\0\u078c\0\u07b6\0\u07e0\0\u080a\0\u0834\0\u085e" + + "\0\u0888\0\u08b2\0\u08dc\0\u0906\0\u0930\0\u095a\0\u0984\0\u09ae" + + "\0\u09d8\0\u0a02\0\u0a2c\0\u0a56\0\u0a80\0\u0aaa\0\u0ad4\0\u0afe" + + "\0\u0b28\0\u0b52\0\u0b7c\0\u0ba6\0\u0bd0\0\u0bfa\0\u0c24\0\u0c4e" + + "\0\u0c78\0\u0ca2\0\u0ccc\0\u0cf6\0\u0d20\0\u0d4a\0\u0d74\0\u0d9e" + + "\0\u0dc8\0\u0df2\0\u0e1c\0\u0e46\0\u0e70\0\u0e9a\0\u0ec4\0\u0eee" + + "\0\u0f18\0\u0f42\0\u0f6c\0\u0f96\0\u0fc0\0\u0fea\0\u1014\0\u103e" + + "\0\u1068\0\u1092\0\u10bc\0\u10e6\0\u1110\0\u113a\0\u1164\0\u118e" + + "\0\u11b8\0\u11e2\0\u120c\0\u1236\0\u1260\0\u128a\0\u12b4\0\u12de" + + "\0\u1308\0\u1332\0\u135c\0\u1386\0\u13b0\0\u13da\0\u1404\0\u142e" + + "\0\u1458\0\u1482\0\u14ac\0\u14d6\0\u1500\0\u152a\0\u1554\0\u157e" + + "\0\u15a8\0\u15d2\0\u15fc\0\374\0\u1626\0\u1650\0\u167a\0\u16a4" + + "\0\u16ce\0\u16f8\0\u1722\0\u174c\0\u1776\0\u17a0\0\u17ca\0\u17f4" + + "\0\u181e\0\u1848\0\u1872\0\u189c\0\u18c6\0\u18f0\0\u191a\0\u1944" + + "\0\u196e\0\u1998\0\u19c2\0\u19ec\0\u1a16\0\u1a40\0\u1a6a\0\u16f8" + + "\0\u1a94\0\u1abe\0\u1ae8\0\u1b12\0\u1b3c\0\u1b66\0\u1b90\0\u1bba" + + "\0\u1be4\0\u1c0e\0\u1c38\0\u174c\0\u1c62\0\u1c8c\0\u1cb6\0\u1ce0" + + "\0\u1d0a\0\u1d34\0\u1d5e\0\u1d88\0\u1db2\0\u1ddc\0\u1e06\0\u1e30" + + "\0\u1e5a\0\u1e84\0\u1eae\0\u1ed8\0\u1f02\0\u1f2c\0\u1b12\0\u1f56" + + "\0\u1f80\0\u1faa\0\u1fd4\0\u1ffe\0\u2028\0\u2052\0\u207c\0\u20a6" + + "\0\u20d0\0\u20fa\0\u2124\0\u214e\0\u2178\0\u21a2\0\u21cc\0\u21f6" + + "\0\u2220\0\u224a\0\u2274\0\u229e\0\u22c8\0\u22f2\0\u231c\0\u2346" + + "\0\u2370\0\u239a\0\u23c4\0\u23ee\0\u2418\0\u2442\0\u246c\0\u2496" + + "\0\u24c0\0\u24ea\0\u2514\0\u253e\0\u2568\0\176\0\u2592\0\u25bc" + + "\0\u25e6\0\u2610\0\u263a\0\u2664\0\u268e\0\u26b8\0\u26e2\0\u270c" + "\0\u13da"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[257]; + 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 = "\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13" + "\1\14\1\15\1\16\1\17\1\20\1\17\1\21\1\22" + + "\1\23\1\24\1\25\1\12\1\26\1\27\1\30\1\31" + "\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41" + + "\2\12\1\42\1\12\1\43\2\12\1\44\2\12\1\45" + "\1\46\6\45\1\47\41\45\1\50\1\51\7\50\1\52" + + "\40\50\54\0\1\6\53\0\1\53\1\0\1\12\1\54" + "\7\0\1\55\1\56\1\12\1\57\1\12\1\60\1\61" + + "\1\62\1\63\1\12\1\64\1\65\1\66\1\54\1\67" + "\1\70\1\71\12\12\4\0\1\12\1\0\2\12\7\0" + + "\33\12\4\0\1\12\1\0\1\12\1\72\7\0\1\73" + "\2\12\1\74\2\12\1\75\1\76\3\12\1\77\1\12" + + "\1\72\1\12\1\100\2\12\1\101\1\12\1\102\6\12" + "\13\0\1\20\55\0\1\103\1\104\1\103\1\105\1\0" + + "\1\106\1\107\1\110\2\0\1\111\24\0\1\12\1\0" + "\2\12\7\0\1\112\1\12\1\112\1\113\3\12\1\114" + + "\23\12\4\0\1\12\1\0\2\12\7\0\6\12\1\115" + "\1\12\1\116\11\12\1\117\10\12\4\0\1\12\1\0" + + "\2\12\7\0\7\12\1\120\23\12\4\0\1\12\1\0" + "\2\12\7\0\1\121\4\12\1\122\13\12\1\123\11\12" + + "\4\0\1\12\1\0\2\12\7\0\7\12\1\124\4\12" + "\1\125\16\12\4\0\1\12\1\0\1\12\1\72\7\0" + + "\1\126\1\127\3\12\1\60\5\12\1\130\1\131\1\72" + "\1\12\1\132\1\133\12\12\4\0\1\12\1\0\2\12" + + "\7\0\16\12\1\117\14\12\4\0\1\12\1\0\2\12" + "\7\0\3\12\1\134\27\12\4\0\1\12\1\0\2\12" + + "\7\0\13\12\1\135\17\12\4\0\1\12\1\0\2\12" + "\7\0\1\136\6\12\1\137\1\12\1\140\21\12\4\0" + + "\1\12\1\0\2\12\7\0\1\12\1\141\1\12\1\142" + "\1\143\1\144\3\12\1\145\2\12\1\146\16\12\4\0" + + "\1\147\1\0\1\12\1\150\7\0\5\12\1\151\1\152" + "\3\12\1\153\1\154\1\12\1\150\1\12\1\155\13\12" + + "\4\0\1\12\1\0\2\12\7\0\6\12\1\156\1\12" + "\1\157\22\12\4\0\1\12\1\0\2\12\7\0\6\12" + + "\1\160\1\161\4\12\1\162\16\12\4\0\1\12\1\0" + "\2\12\7\0\6\12\1\163\24\12\4\0\1\12\1\0" + + "\2\12\7\0\14\12\1\164\16\12\4\0\1\12\1\0" + "\2\12\7\0\10\12\1\165\11\12\1\166\10\12\4\0" + + "\1\12\1\0\2\12\7\0\3\12\1\167\27\12\1\45" + "\1\0\6\45\1\0\41\45\1\50\1\0\7\50\1\0" + + "\40\50\4\0\1\12\1\0\2\12\7\0\14\12\1\170" + "\16\12\4\0\1\12\1\0\2\12\7\0\7\12\1\171" + + "\7\12\1\100\13\12\4\0\1\12\1\0\2\12\7\0" + "\7\12\1\172\23\12\4\0\1\12\1\0\2\12\7\0" + + "\6\12\1\115\24\12\4\0\1\12\1\0\2\12\7\0" + "\6\12\1\173\3\12\1\174\6\12\1\175\11\12\4\0" + + "\1\12\1\0\2\12\7\0\14\12\1\125\16\12\4\0" + "\1\12\1\0\1\12\1\72\7\0\1\12\1\176\11\12" + + "\1\130\1\12\1\72\2\12\1\133\12\12\4\0\1\12" + "\1\0\2\12\7\0\11\12\1\177\21\12\4\0\1\12" + + "\1\0\2\12\7\0\3\12\1\200\27\12\4\0\1\12" + "\1\0\2\12\7\0\1\201\32\12\4\0\1\12\1\0" + + "\2\12\7\0\4\12\1\143\7\12\1\146\16\12\4\0" + "\1\12\1\0\2\12\7\0\5\12\1\202\11\12\1\203" + + "\13\12\4\0\1\12\1\0\2\12\7\0\10\12\1\204" + "\22\12\4\0\1\12\1\0\2\12\7\0\6\12\1\205" + + "\1\206\4\12\1\207\16\12\4\0\1\12\1\0\2\12" + "\7\0\1\135\32\12\4\0\1\12\1\0\2\12\7\0" + + "\7\12\1\133\23\12\4\0\1\12\1\0\2\12\7\0" + "\7\12\1\210\23\12\4\0\1\12\1\0\2\12\7\0" + + "\14\12\1\211\16\12\4\0\1\12\1\0\2\12\7\0" + "\1\212\12\12\1\135\4\12\1\133\12\12\4\0\1\12" + + "\1\0\2\12\7\0\5\12\1\213\5\12\1\214\3\12" + "\1\215\13\12\4\0\1\12\1\0\2\12\7\0\4\12" + + "\1\143\7\12\1\113\16\12\4\0\1\12\1\0\2\12" + "\7\0\16\12\1\216\14\12\4\0\1\12\1\0\2\12" + + "\7\0\6\12\1\217\24\12\4\0\1\12\1\0\1\12" + "\1\71\7\0\15\12\1\71\15\12\20\0\1\220\1\0" + + "\1\220\56\0\1\221\45\0\1\220\50\0\1\220\53\0" + "\1\222\54\0\1\220\47\0\1\223\30\0\1\12\1\0" + + "\2\12\7\0\1\12\1\224\1\12\1\224\27\12\4\0" + "\1\12\1\0\2\12\7\0\5\12\1\224\25\12\4\0" + + "\1\12\1\0\2\12\7\0\2\12\1\225\30\12\4\0" + "\1\12\1\0\2\12\7\0\5\12\1\214\25\12\4\0" + + "\1\12\1\0\2\12\7\0\6\12\1\226\24\12\4\0" + "\1\12\1\0\2\12\7\0\3\12\1\113\27\12\4\0" + + "\1\12\1\0\2\12\7\0\1\12\1\227\31\12\4\0" + "\1\12\1\0\2\12\7\0\13\12\1\230\17\12\4\0" + + "\1\231\1\0\2\12\7\0\33\12\4\0\1\12\1\0" + "\2\12\7\0\14\12\1\202\1\12\1\232\14\12\4\0" + + "\1\12\1\0\2\12\7\0\5\12\1\135\25\12\4\0" + "\1\12\1\0\2\12\7\0\5\12\1\202\25\12\4\0" + + "\1\12\1\0\2\12\7\0\1\233\6\12\1\172\23\12" + "\4\0\1\12\1\0\2\12\7\0\6\12\1\234\24\12" + + "\4\0\1\12\1\0\2\12\7\0\14\12\1\113\16\12" + "\4\0\1\12\1\0\2\12\7\0\5\12\1\202\11\12" + + "\1\235\13\12\4\0\1\12\1\0\2\12\7\0\6\12" + "\1\236\1\206\4\12\1\237\16\12\4\0\1\12\1\0" + + "\2\12\7\0\13\12\1\224\17\12\4\0\1\12\1\0" + "\2\12\7\0\1\12\1\240\4\12\1\241\16\12\1\42" + + "\5\12\4\0\1\12\1\0\2\12\7\0\3\12\1\224" + "\27\12\4\0\1\12\1\0\2\12\7\0\7\12\1\242" + + "\23\12\4\0\1\12\1\0\2\12\7\0\10\12\1\243" + "\22\12\4\0\1\12\1\0\2\12\7\0\5\12\1\244" + + "\25\12\4\0\1\12\1\0\2\12\7\0\7\12\1\175" + "\23\12\4\0\1\12\1\0\2\12\7\0\1\245\32\12" + + "\4\0\1\12\1\0\2\12\7\0\10\12\1\202\22\12" + "\4\0\1\12\1\0\2\12\7\0\2\12\1\212\30\12" + + "\4\0\1\12\1\0\2\12\7\0\20\12\1\246\12\12" + "\4\0\1\12\1\0\2\12\7\0\2\12\1\113\2\12" + + "\1\214\25\12\4\0\1\12\1\0\2\12\7\0\5\12" + "\1\60\6\12\1\247\16\12\4\0\1\12\1\0\2\12" + + "\7\0\22\12\1\250\10\12\4\0\1\251\1\0\1\12" + "\1\252\7\0\1\12\1\253\2\12\1\254\10\12\1\252" + + "\15\12\4\0\1\12\1\0\2\12\7\0\20\12\1\133" + "\12\12\4\0\1\12\1\0\2\12\7\0\14\12\1\255" + + "\16\12\4\0\1\12\1\0\2\12\7\0\14\12\1\256" + "\16\12\4\0\1\12\1\0\2\12\7\0\6\12\1\257" + + "\7\12\1\260\14\12\4\0\1\12\1\0\2\12\7\0" + "\10\12\1\261\1\32\21\12\4\0\1\12\1\0\2\12" + + "\7\0\3\12\1\262\3\12\1\263\4\12\1\125\16\12" + "\4\0\1\12\1\0\2\12\7\0\21\12\1\264\11\12" + + "\4\0\1\265\1\0\2\12\7\0\33\12\4\0\1\12" + "\1\0\2\12\7\0\5\12\1\264\25\12\4\0\1\12" + + "\1\0\1\12\1\266\7\0\15\12\1\266\15\12\4\0" + "\1\12\1\0\2\12\7\0\5\12\1\206\25\12\4\0" + + "\1\12\1\0\2\12\7\0\14\12\1\267\16\12\4\0" + "\1\12\1\0\2\12\7\0\3\12\1\270\10\12\1\71" + + "\16\12\4\0\1\12\1\0\2\12\7\0\21\12\1\202" + "\11\12\4\0\1\12\1\0\2\12\7\0\17\12\1\224" + + "\13\12\4\0\1\12\1\0\2\12\7\0\13\12\1\214" + "\17\12\4\0\1\12\1\0\2\12\7\0\2\12\1\271" + + "\30\12\4\0\1\12\1\0\2\12\7\0\1\272\32\12" + "\4\0\1\12\1\0\2\12\7\0\6\12\1\273\24\12" + + "\4\0\1\12\1\0\2\12\7\0\16\12\1\224\14\12" + "\4\0\1\12\1\0\2\12\7\0\6\12\1\274\24\12" + + "\4\0\1\12\1\0\2\12\7\0\20\12\1\71\12\12" + "\4\0\1\12\1\0\2\12\7\0\6\12\1\212\24\12" + + "\4\0\1\12\1\0\2\12\7\0\7\12\1\275\23\12" + "\4\0\1\12\1\0\2\12\7\0\1\12\1\224\31\12" + + "\4\0\1\12\1\0\2\12\7\0\3\12\1\276\27\12" + "\4\0\1\12\1\0\2\12\7\0\7\12\1\206\23\12" + + "\4\0\1\12\1\0\2\12\7\0\21\12\1\277\11\12" + "\4\0\1\224\1\0\2\12\7\0\33\12\4\0\1\12" + + "\1\0\2\12\7\0\5\12\1\277\25\12\4\0\1\12" + "\1\0\2\12\7\0\2\12\1\224\10\12\1\135\17\12" + + "\4\0\1\12\1\0\2\12\7\0\1\300\32\12\4\0" + "\1\12\1\0\2\12\7\0\1\224\32\12\4\0\1\12" + + "\1\0\2\12\7\0\1\12\1\301\25\12\1\257\3\12" + "\4\0\1\12\1\0\2\12\7\0\22\12\1\224\10\12" + + "\4\0\1\12\1\0\2\12\7\0\16\12\1\302\14\12" + "\4\0\1\12\1\0\2\12\7\0\1\255\32\12\4\0" + + "\1\12\1\0\2\12\7\0\10\12\1\303\22\12\16\0" + "\1\20\63\0\1\304\25\0\1\220\64\0\1\305\36\0" + + "\1\12\1\0\2\12\7\0\14\12\1\306\14\12\1\307" + "\1\12\4\0\1\12\1\0\2\12\7\0\5\12\1\310" + + "\25\12\4\0\1\12\1\0\2\12\7\0\7\12\1\224" + "\23\12\4\0\1\12\1\0\2\12\7\0\3\12\1\311" + + "\27\12\4\0\1\227\1\0\2\12\7\0\12\12\1\312" + "\1\12\1\313\16\12\4\0\1\12\1\0\2\12\7\0" + + "\1\314\32\12\4\0\1\12\1\0\2\12\7\0\7\12" + "\1\315\23\12\4\0\1\12\1\0\2\12\7\0\5\12" + + "\1\316\25\12\4\0\1\12\1\0\2\12\7\0\6\12" + "\1\257\24\12\4\0\1\12\1\0\2\12\7\0\21\12" + + "\1\317\11\12\4\0\1\12\1\0\2\12\7\0\5\12" + "\1\317\25\12\4\0\1\12\1\0\2\12\7\0\11\12" + + "\1\320\21\12\4\0\1\224\1\0\2\12\7\0\1\224" + "\32\12\4\0\1\12\1\0\2\12\7\0\6\12\1\202" + + "\1\321\23\12\4\0\1\12\1\0\2\12\7\0\6\12" + "\1\322\10\12\1\275\13\12\4\0\1\12\1\0\1\12" + + "\1\323\7\0\15\12\1\323\15\12\4\0\1\12\1\0" + "\2\12\7\0\3\12\1\324\27\12\4\0\1\12\1\0" + + "\2\12\7\0\10\12\1\325\22\12\4\0\1\12\1\0" + "\2\12\7\0\5\12\1\202\11\12\1\224\13\12\4\0" + + "\1\12\1\0\2\12\7\0\6\12\1\321\24\12\4\0" + "\1\12\1\0\2\12\7\0\3\12\1\255\27\12\4\0" + + "\1\12\1\0\2\12\7\0\1\326\32\12\4\0\1\12" + "\1\0\2\12\7\0\3\12\1\327\27\12\4\0\1\12" + + "\1\0\2\12\7\0\11\12\1\330\21\12\4\0\1\12" + "\1\0\2\12\7\0\21\12\1\224\11\12\4\0\1\12" + + "\1\0\2\12\7\0\2\12\1\113\30\12\4\0\1\12" + "\1\0\2\12\7\0\2\12\1\224\30\12\4\0\1\12" + + "\1\0\2\12\7\0\6\12\1\331\24\12\4\0\1\12" + "\1\0\1\12\1\332\7\0\15\12\1\332\15\12\4\0" + + "\1\12\1\0\2\12\7\0\2\12\1\333\30\12\4\0" + "\1\12\1\0\2\12\7\0\26\12\1\224\2\12\1\224" + + "\1\12\4\0\1\12\1\0\2\12\7\0\11\12\1\334" + "\21\12\4\0\1\12\1\0\2\12\7\0\23\12\1\335" + + "\7\12\4\0\1\12\1\0\2\12\7\0\1\12\1\135" + "\31\12\4\0\1\12\1\0\2\12\7\0\10\12\1\135" + + "\22\12\4\0\1\12\1\0\2\12\7\0\31\12\1\307" + "\1\12\4\0\1\12\1\0\2\12\7\0\1\336\32\12" + + "\4\0\1\12\1\0\2\12\7\0\11\12\1\337\21\12" + "\4\0\1\12\1\0\2\12\7\0\6\12\1\202\24\12" + + "\4\0\1\12\1\0\2\12\7\0\5\12\1\340\25\12" + "\4\0\1\12\1\0\2\12\7\0\31\12\1\224\1\12" + + "\4\0\1\12\1\0\2\12\7\0\14\12\1\341\16\12" + "\4\0\1\12\1\0\2\12\7\0\6\12\1\342\5\12" + + "\1\343\16\12\4\0\1\12\1\0\2\12\7\0\1\251" + "\32\12\4\0\1\12\1\0\2\12\7\0\6\12\1\344" + + "\24\12\22\0\1\345\61\0\1\304\23\0\1\12\1\0" + "\1\12\1\200\7\0\15\12\1\200\15\12\4\0\1\12" + + "\1\0\2\12\7\0\26\12\1\224\4\12\4\0\1\12" + "\1\0\2\12\7\0\13\12\1\346\17\12\4\0\1\12" + + "\1\0\2\12\7\0\14\12\1\313\10\12\1\347\5\12" + "\4\0\1\12\1\0\2\12\7\0\14\12\1\71\16\12" + + "\4\0\1\12\1\0\2\12\7\0\12\12\1\224\20\12" + "\4\0\1\12\1\0\2\12\7\0\14\12\1\350\16\12" + + "\4\0\1\12\1\0\1\12\1\351\7\0\15\12\1\351" + "\15\12\4\0\1\12\1\0\2\12\7\0\32\12\1\224" + + "\4\0\1\12\1\0\2\12\7\0\10\12\1\113\22\12" + "\4\0\1\12\1\0\2\12\7\0\10\12\1\224\22\12" + + "\4\0\1\12\1\0\2\12\7\0\1\212\32\12\4\0" + "\1\12\1\0\2\12\7\0\1\12\1\352\31\12\4\0" + + "\1\12\1\0\1\12\1\202\7\0\15\12\1\202\15\12" + "\4\0\1\12\1\0\2\12\7\0\7\12\1\353\23\12" + + "\4\0\1\12\1\0\2\12\7\0\11\12\1\354\21\12" + "\4\0\1\12\1\0\2\12\7\0\2\12\1\355\30\12" + + "\4\0\1\12\1\0\2\12\7\0\14\12\1\270\16\12" + "\4\0\1\12\1\0\2\12\7\0\17\12\1\356\13\12" + + "\4\0\1\12\1\0\2\12\7\0\14\12\1\340\16\12" + "\4\0\1\12\1\0\2\12\7\0\10\12\1\357\22\12" + + "\4\0\1\12\1\0\2\12\7\0\1\360\32\12\4\0" + "\1\12\1\0\2\12\7\0\13\12\1\361\17\12\4\0" + + "\1\12\1\0\2\12\7\0\7\12\1\362\23\12\4\0" + "\1\12\1\0\2\12\7\0\1\202\32\12\4\0\1\12" + + "\1\0\2\12\7\0\13\12\1\352\17\12\4\0\1\12" + "\1\0\2\12\7\0\5\12\1\257\25\12\4\0\1\12" + + "\1\0\2\12\7\0\14\12\1\363\16\12\4\0\1\12" + "\1\0\2\12\7\0\5\12\1\364\25\12\4\0\1\12" + + "\1\0\1\12\1\365\7\0\15\12\1\365\15\12\16\0" + "\1\366\37\0\1\12\1\0\2\12\7\0\12\12\1\355" + + "\20\12\4\0\1\12\1\0\2\12\7\0\22\12\1\367" + "\10\12\4\0\1\12\1\0\1\12\1\370\7\0\15\12" + + "\1\370\15\12\4\0\1\12\1\0\2\12\7\0\6\12" + "\1\371\24\12\4\0\1\12\1\0\2\12\7\0\14\12" + + "\1\372\16\12\4\0\1\12\1\0\2\12\7\0\11\12" + "\1\373\21\12\4\0\1\135\1\0\2\12\7\0\33\12" + + "\4\0\1\12\1\0\2\12\7\0\3\12\1\321\27\12" + "\4\0\1\12\1\0\2\12\7\0\3\12\1\365\27\12" + + "\4\0\1\12\1\0\2\12\7\0\6\12\1\170\24\12" + "\4\0\1\12\1\0\2\12\7\0\3\12\1\224\3\12" + + "\1\224\23\12\4\0\1\12\1\0\2\12\7\0\16\12" + "\1\374\14\12\4\0\1\12\1\0\1\12\1\375\7\0" + + "\15\12\1\375\15\12\4\0\1\12\1\0\2\12\7\0" + "\5\12\1\133\25\12\4\0\1\12\1\0\2\12\7\0" + + "\11\12\1\135\21\12\4\0\1\12\1\0\2\12\7\0" + "\1\12\1\355\31\12\4\0\1\12\1\0\2\12\7\0" + + "\3\12\1\270\27\12\4\0\1\12\1\0\2\12\7\0" + "\14\12\1\202\16\12\4\0\1\12\1\0\2\12\7\0" + + "\1\12\1\376\31\12\4\0\1\12\1\0\2\12\7\0" + "\7\12\1\113\23\12\4\0\1\12\1\0\2\12\7\0" + + "\1\12\1\377\31\12\4\0\1\12\1\0\2\12\7\0" + "\6\12\1\u0100\24\12\4\0\1\12\1\0\2\12\7\0" + + "\6\12\1\267\24\12\4\0\1\12\1\0\2\12\7\0" + "\3\12\1\u0101\2\12\1\177\24\12\4\0\1\12\1\0" + + "\2\12\7\0\14\12\1\124\16\12\4\0\1\12\1\0" + "\1\12\1\135\7\0\15\12\1\135\15\12"; + + private static int[] zzUnpackTrans() { + int[] result = new int[10038]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\2\1\2\11\1\1\1\11\1\1\1\11\2\1" + "\2\11\2\1\1\11\25\1\2\11\1\1\2\11\30\1" + + "\7\0\106\1\4\0\60\1\2\0\37\1\1\0\20\1" + "\1\11\13\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[257]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. We must have this here as there is no default, * no-parameter constructor generated by JFlex. */ public FortranTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -581,26 +428,26 @@ public class FortranTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "!", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -615,7 +462,6 @@ public class FortranTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -625,21 +471,18 @@ public class FortranTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -648,7 +491,8 @@ public class FortranTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -657,354 +501,364 @@ public class FortranTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 FortranTokenMaker(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 FortranTokenMaker(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 < 168) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 15: - { addToken(Token.RESERVED_WORD); - } - case 17: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 18: break; - case 4: - { addToken(Token.WHITESPACE); - } - case 19: break; - case 11: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 20: break; - case 13: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 21: break; - case 10: - { addToken(Token.OPERATOR); - } - case 22: break; - case 5: - { // Since we change zzStartRead, we have the unfortunate - // side-effect of not being able to use the '^' operator. - // So we must check whether we're really at the beginning + + /** + * 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 FortranTokenMaker(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 FortranTokenMaker(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 < 168) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 15: { + addToken(Token.RESERVED_WORD); + } + case 17: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 18: + break; + case 4: { + addToken(Token.WHITESPACE); + } + case 19: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 20: + break; + case 13: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 21: + break; + case 10: { + addToken(Token.OPERATOR); + } + case 22: + break; + case 5: { // Since we change zzStartRead, we have the + // unfortunate + // side-effect of not being able to use the '^' + // operator. + // So we must check whether we're really at the + // beginning // of the line ourselves... - if (zzStartRead==s.offset) { - addToken(zzStartRead,zzEndRead, Token.COMMENT_EOL); + if (zzStartRead == s.offset) { + addToken(zzStartRead, zzEndRead, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } else { + addToken(Token.IDENTIFIER); + } + } + case 23: + break; + case 16: { + addToken(Token.LITERAL_BOOLEAN); + } + case 24: + break; + case 8: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 25: + break; + case 7: { + addToken(zzStartRead, zzEndRead, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 26: + break; + case 6: { // Since we change zzStartRead, we have the + // unfortunate + // side-effect of not being able to use the '^' + // operator. + // So we must check whether we're really at the + // beginning + // of the line ourselves... + if (zzStartRead == s.offset) { + addToken(zzStartRead, zzEndRead, Token.COMMENT_DOCUMENTATION); + addNullToken(); + return firstToken; + } else { + addToken(Token.IDENTIFIER); + } + } + case 27: + break; + case 9: { + start = zzMarkedPos - 1; + yybegin(CHAR); + } + case 28: + break; + case 14: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 29: + break; + case 12: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 30: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 31: + break; + case 1: {} + case 32: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 258: + break; + case YYINITIAL: { addNullToken(); return firstToken; } - else { - addToken(Token.IDENTIFIER); - } - } - case 23: break; - case 16: - { addToken(Token.LITERAL_BOOLEAN); - } - case 24: break; - case 8: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 25: break; - case 7: - { addToken(zzStartRead,zzEndRead, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 26: break; - case 6: - { // Since we change zzStartRead, we have the unfortunate - // side-effect of not being able to use the '^' operator. - // So we must check whether we're really at the beginning - // of the line ourselves... - if (zzStartRead==s.offset) { - addToken(zzStartRead,zzEndRead, Token.COMMENT_DOCUMENTATION); - addNullToken(); + case 259: + break; + case CHAR: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); return firstToken; } - else { - addToken(Token.IDENTIFIER); - } - } - case 27: break; - case 9: - { start = zzMarkedPos-1; yybegin(CHAR); - } - case 28: break; - case 14: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 29: break; - case 12: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 30: break; - case 3: - { addNullToken(); return firstToken; - } - case 31: break; - case 1: - { - } - case 32: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 258: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 259: break; - case CHAR: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 260: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + case 260: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java index c8cfbdf..20db8e6 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java @@ -1,4976 +1,2733 @@ /* The following code was generated by JFlex 1.4.1 on 6/21/15 6:49 PM */ - /* * 09/28/2007 - * * GroovyTokenMaker.java - Scanner for the Groovy programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for the Groovy programming language.

+ * Scanner for the Groovy programming language. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated GroovyTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated GroovyTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class GroovyTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 3; - public static final int MULTILINE_STRING_DOUBLE = 4; - public static final int DOCCOMMENT = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 1; - public static final int STRING_DOUBLE = 6; - public static final int MULTILINE_STRING_SINGLE = 5; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\22\1\21\1\0\1\22\1\16\22\0\1\22\1\53\1\13"+ - "\1\17\1\20\1\53\1\55\1\10\2\44\1\24\1\46\1\45\1\33"+ - "\1\34\1\23\1\4\1\5\2\7\1\123\1\7\1\122\1\7\2\3"+ - "\1\56\1\45\1\47\1\50\1\52\1\54\1\100\1\102\1\26\1\6"+ - "\1\67\1\32\1\31\1\117\1\110\1\105\1\125\1\1\1\25\1\112"+ - "\1\113\1\114\1\116\1\121\1\74\1\103\1\106\1\107\1\111\1\120"+ - "\1\30\1\1\1\124\1\44\1\12\1\44\1\51\1\2\1\0\1\40"+ - "\1\27\1\63\1\61\1\37\1\15\1\72\1\57\1\65\1\115\1\75"+ - "\1\41\1\66\1\14\1\60\1\62\1\104\1\36\1\42\1\35\1\11"+ - "\1\71\1\70\1\64\1\73\1\101\1\76\1\51\1\77\1\43\uff81\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 = - "\4\0\2\1\1\0\1\2\1\3\2\4\1\3\1\5"+ - "\1\3\1\6\2\3\1\2\1\7\1\10\2\11\5\3"+ - "\1\11\7\3\1\11\1\12\1\3\6\11\13\3\1\13"+ - "\16\3\2\1\1\14\5\1\1\15\10\1\1\16\3\1"+ - "\1\17\2\1\1\20\2\1\1\21\1\22\1\23\1\24"+ - "\1\25\1\2\2\26\1\27\1\4\1\26\1\27\2\26"+ - "\1\30\2\26\5\3\1\5\1\31\1\5\1\0\1\3"+ - "\1\0\7\3\2\0\1\32\1\33\1\11\37\3\1\34"+ - "\12\3\2\0\1\11\3\3\1\34\7\3\3\34\1\35"+ - "\22\3\1\13\57\3\2\0\1\36\4\0\1\37\2\0"+ - "\1\40\22\0\1\17\1\0\1\41\2\0\1\21\1\23"+ - "\1\2\1\4\1\27\1\0\2\30\1\4\1\30\10\3"+ - "\1\31\1\42\1\5\1\43\1\5\1\0\1\35\1\3"+ - "\1\44\5\3\1\45\1\46\65\3\1\34\13\3\1\47"+ - "\30\3\1\2\54\3\1\35\24\3\37\0\1\50\2\0"+ - "\1\51\1\2\2\26\12\3\1\43\1\5\1\0\4\3"+ - "\1\35\1\52\1\35\3\3\1\35\5\3\1\35\2\3"+ - "\1\47\4\3\2\35\6\3\1\53\5\3\1\35\54\3"+ - "\1\2\56\3\1\0\31\3\2\0\1\54\2\0\1\55"+ - "\15\0\1\56\12\0\1\57\1\0\1\41\1\2\2\3"+ - "\1\35\11\3\1\5\1\0\1\34\42\3\1\34\20\3"+ - "\1\35\24\3\1\2\11\3\1\35\31\3\1\35\11\3"+ - "\1\0\31\3\36\0\1\2\15\3\1\5\1\0\4\3"+ - "\1\35\5\3\1\35\27\3\1\60\31\3\1\35\1\2"+ - "\11\3\1\35\30\3\1\35\13\3\1\0\2\3\1\35"+ - "\10\3\1\35\12\3\23\0\14\3\1\0\2\3\1\0"+ - "\3\3\1\0\45\3\1\35\2\3\1\2\43\3\1\0"+ - "\14\3\1\0\23\3\1\35\6\3\5\0\1\56\4\0"+ - "\1\35\14\3\4\0\3\3\2\0\102\3\2\0\11\3"+ - "\1\0\20\3\1\35\12\3\12\0\4\3\1\35\6\3"+ - "\4\0\3\3\1\0\3\3\1\35\10\3\1\35\11\3"+ - "\1\35\47\3\2\0\10\3\1\35\27\3\5\0\4\3"+ - "\1\0\2\3\1\35\2\3\4\0\1\3\1\0\3\3"+ - "\1\0\57\3\2\0\32\3\5\0\3\3\2\0\3\3"+ - "\4\0\3\3\1\0\1\35\14\3\1\35\10\3\1\35"+ - "\5\3\1\35\12\3\2\0\15\3\1\35\5\3\2\0"+ - "\2\3\2\0\3\3\4\0\3\3\1\0\10\3\1\35"+ - "\3\3\1\0\1\3\1\35\2\3\1\35\2\3\1\0"+ - "\1\35\15\3\1\0\14\3\1\35\3\3\1\35\5\3"+ - "\2\0\2\3\3\0\2\3\1\0\2\3\1\35\10\3"+ - "\1\0\2\3\2\0\12\3\1\0\23\3\2\0\1\3"+ - "\2\0\2\3\1\0\5\3\1\35\1\3\1\0\2\3"+ - "\2\0\12\3\1\0\14\3\1\35\2\3\2\0\1\3"+ - "\2\0\2\3\1\0\4\3\1\0\1\3\1\0\1\3"+ - "\5\0\11\3\1\0\11\3\1\0\2\3\1\0\1\3"+ - "\2\0\1\3\1\0\2\3\1\0\1\3\5\0\10\3"+ - "\1\0\6\3\1\0\1\3\3\0\1\3\1\0\1\3"+ - "\1\0\1\3\5\0\5\3\1\0\3\3\1\35\1\3"+ - "\1\0\1\35\4\0\1\3\1\0\1\3\1\0\1\3"+ - "\4\0\3\3\1\0\3\3\1\0\1\35\4\0\1\3"+ - "\1\0\1\3\4\0\2\3\1\0\2\3\6\0\1\3"+ - "\1\0\1\3\4\0\1\3\7\0\1\3\1\0\1\3"+ - "\30\0\1\35\37\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[2058]; - 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\126\0\254\0\u0102\0\u0158\0\u01ae\0\u0204\0\u025a"+ - "\0\u02b0\0\u0306\0\u035c\0\u03b2\0\u0408\0\u045e\0\u04b4\0\u050a"+ - "\0\u0560\0\u05b6\0\u05b6\0\u060c\0\u0662\0\u06b8\0\u070e\0\u0764"+ - "\0\u07ba\0\u0810\0\u0866\0\u08bc\0\u0912\0\u0968\0\u09be\0\u0a14"+ - "\0\u0a6a\0\u0ac0\0\u0b16\0\u0b6c\0\u05b6\0\u05b6\0\u0bc2\0\u0c18"+ - "\0\u0c6e\0\u0cc4\0\u05b6\0\u0d1a\0\u0d70\0\u0dc6\0\u0e1c\0\u0e72"+ - "\0\u0ec8\0\u0f1e\0\u0f74\0\u0fca\0\u1020\0\u1076\0\u10cc\0\u1122"+ - "\0\u1178\0\u11ce\0\u1224\0\u127a\0\u12d0\0\u1326\0\u137c\0\u13d2"+ - "\0\u1428\0\u147e\0\u14d4\0\u152a\0\u1580\0\u15d6\0\u162c\0\u1682"+ - "\0\u05b6\0\u16d8\0\u172e\0\u1784\0\u17da\0\u1830\0\u05b6\0\u1886"+ - "\0\u18dc\0\u1932\0\u1988\0\u19de\0\u1a34\0\u1a8a\0\u1ae0\0\u05b6"+ - "\0\u1b36\0\u1b8c\0\u1be2\0\u1c38\0\u1c8e\0\u1ce4\0\u05b6\0\u1d3a"+ - "\0\u1d90\0\u1de6\0\u05b6\0\u1e3c\0\u05b6\0\u05b6\0\u1e92\0\u1ee8"+ - "\0\u1f3e\0\u1ee8\0\u1ee8\0\u1f94\0\u1fea\0\u2040\0\u2096\0\u20ec"+ - "\0\u2142\0\u2198\0\u21ee\0\u2244\0\u229a\0\u22f0\0\u2346\0\u239c"+ - "\0\u23f2\0\u2448\0\u249e\0\u24f4\0\u254a\0\u25a0\0\u25f6\0\u264c"+ - "\0\u26a2\0\u26f8\0\u274e\0\u27a4\0\u27fa\0\u2850\0\u05b6\0\u28a6"+ - "\0\u27fa\0\u28fc\0\u2952\0\u29a8\0\u29fe\0\u2a54\0\u2aaa\0\u2b00"+ - "\0\u2b56\0\u2bac\0\u2c02\0\u2c58\0\u2cae\0\u2d04\0\u2d5a\0\u2db0"+ - "\0\u2e06\0\u2e5c\0\u2eb2\0\u2f08\0\u2f5e\0\u2fb4\0\u300a\0\u3060"+ - "\0\u30b6\0\u310c\0\u3162\0\u31b8\0\u320e\0\u3264\0\u32ba\0\u3310"+ - "\0\u3366\0\u33bc\0\u3412\0\u3468\0\u34be\0\u3514\0\u356a\0\u35c0"+ - "\0\u3616\0\u366c\0\u36c2\0\u3718\0\u06b8\0\u376e\0\u37c4\0\u381a"+ - "\0\u3870\0\u38c6\0\u391c\0\u3972\0\u39c8\0\u3a1e\0\u3a74\0\u3aca"+ - "\0\u3b20\0\u3b76\0\u02b0\0\u3bcc\0\u3c22\0\u3c78\0\u3cce\0\u3d24"+ - "\0\u3d7a\0\u3dd0\0\u3e26\0\u3e7c\0\u3ed2\0\u3f28\0\u3f7e\0\u3fd4"+ - "\0\u402a\0\u4080\0\u40d6\0\u412c\0\u4182\0\u41d8\0\u422e\0\u4284"+ - "\0\u42da\0\u4330\0\u4386\0\u43dc\0\u4432\0\u4488\0\u44de\0\u4534"+ - "\0\u458a\0\u45e0\0\u4636\0\u468c\0\u46e2\0\u4738\0\u478e\0\u47e4"+ - "\0\u483a\0\u4890\0\u48e6\0\u493c\0\u4992\0\u49e8\0\u4a3e\0\u4a94"+ - "\0\u4aea\0\u4b40\0\u4b96\0\u4bec\0\u4c42\0\u4c98\0\u4cee\0\u4d44"+ - "\0\u4d9a\0\u4df0\0\u4e46\0\u4e9c\0\u4ef2\0\u4f48\0\u4f9e\0\u4ff4"+ - "\0\u504a\0\u50a0\0\u50f6\0\u514c\0\u51a2\0\u51f8\0\u524e\0\u52a4"+ - "\0\u52fa\0\u05b6\0\u5350\0\u53a6\0\u53fc\0\u5452\0\u05b6\0\u54a8"+ - "\0\u54fe\0\u05b6\0\u5554\0\u55aa\0\u5600\0\u5656\0\u56ac\0\u5702"+ - "\0\u5758\0\u57ae\0\u5804\0\u585a\0\u58b0\0\u5906\0\u595c\0\u59b2"+ - "\0\u5a08\0\u5a5e\0\u5ab4\0\u5b0a\0\u05b6\0\u5b60\0\u5bb6\0\u5c0c"+ - "\0\u5c62\0\u05b6\0\u05b6\0\u5cb8\0\u5d0e\0\u5d64\0\u5dba\0\u5e10"+ - "\0\u1ee8\0\u5e66\0\u5ebc\0\u5f12\0\u5f68\0\u5fbe\0\u6014\0\u606a"+ - "\0\u60c0\0\u6116\0\u616c\0\u05b6\0\u05b6\0\u61c2\0\u249e\0\u6218"+ - "\0\u626e\0\u02b0\0\u62c4\0\u05b6\0\u631a\0\u6370\0\u63c6\0\u641c"+ - "\0\u6472\0\u05b6\0\u64c8\0\u651e\0\u6574\0\u65ca\0\u6620\0\u6676"+ - "\0\u66cc\0\u6722\0\u6778\0\u67ce\0\u6824\0\u687a\0\u68d0\0\u6926"+ - "\0\u697c\0\u69d2\0\u6a28\0\u6a7e\0\u6ad4\0\u6b2a\0\u6b80\0\u6bd6"+ - "\0\u6c2c\0\u6c82\0\u6cd8\0\u6d2e\0\u6d84\0\u6dda\0\u6e30\0\u6e86"+ - "\0\u6edc\0\u6f32\0\u6f88\0\u6fde\0\u7034\0\u708a\0\u70e0\0\u7136"+ - "\0\u718c\0\u71e2\0\u7238\0\u728e\0\u72e4\0\u733a\0\u7390\0\u73e6"+ - "\0\u743c\0\u7492\0\u74e8\0\u753e\0\u7594\0\u75ea\0\u7640\0\u7696"+ - "\0\u76ec\0\u7742\0\u7798\0\u77ee\0\u7844\0\u789a\0\u78f0\0\u7946"+ - "\0\u799c\0\u79f2\0\u7a48\0\u7a9e\0\u7af4\0\u7b4a\0\u7ba0\0\u7bf6"+ - "\0\u7c4c\0\u7ca2\0\u7cf8\0\u7d4e\0\u7da4\0\u7dfa\0\u7e50\0\u7ea6"+ - "\0\u7efc\0\u7f52\0\u7fa8\0\u7ffe\0\u8054\0\u80aa\0\u8100\0\u8156"+ - "\0\u81ac\0\u8202\0\u8258\0\u82ae\0\u8304\0\u835a\0\u83b0\0\u8406"+ - "\0\u845c\0\u84b2\0\u8508\0\u855e\0\u85b4\0\u860a\0\u8660\0\u86b6"+ - "\0\u870c\0\u8762\0\u87b8\0\u880e\0\u8864\0\u88ba\0\u8910\0\u8966"+ - "\0\u89bc\0\u8a12\0\u8a68\0\u8abe\0\u8b14\0\u8b6a\0\u8bc0\0\u8c16"+ - "\0\u8c6c\0\u8cc2\0\u8d18\0\u8d6e\0\u8dc4\0\u8e1a\0\u8e70\0\u8ec6"+ - "\0\u8f1c\0\u8f72\0\u8fc8\0\u901e\0\u9074\0\u90ca\0\u9120\0\u9176"+ - "\0\u91cc\0\u9222\0\u9278\0\u92ce\0\u9324\0\u937a\0\u93d0\0\u9426"+ - "\0\u947c\0\u94d2\0\u9528\0\u957e\0\u95d4\0\u962a\0\u9680\0\u96d6"+ - "\0\u972c\0\u9782\0\u97d8\0\u982e\0\u9884\0\u98da\0\u9930\0\u9986"+ - "\0\u99dc\0\u9a32\0\u9a88\0\u9ade\0\u9b34\0\u9b8a\0\u9be0\0\u9c36"+ - "\0\u9c8c\0\u9ce2\0\u9d38\0\u9d8e\0\u9de4\0\u9e3a\0\u9e90\0\u9ee6"+ - "\0\u9f3c\0\u9f92\0\u9fe8\0\ua03e\0\ua094\0\ua0ea\0\ua140\0\ua196"+ - "\0\ua1ec\0\ua242\0\ua298\0\ua2ee\0\ua344\0\ua39a\0\u05b6\0\ua3f0"+ - "\0\ua446\0\u05b6\0\ua49c\0\u5e66\0\ua4f2\0\ua548\0\ua59e\0\ua5f4"+ - "\0\ua64a\0\ua6a0\0\ua6f6\0\ua74c\0\ua7a2\0\ua7f8\0\ua84e\0\u05b6"+ - "\0\ua8a4\0\ua8fa\0\ua950\0\ua9a6\0\ua9fc\0\uaa52\0\uaaa8\0\u05b6"+ - "\0\uaafe\0\uab54\0\uabaa\0\uac00\0\uac56\0\uacac\0\uad02\0\uad58"+ - "\0\uadae\0\uae04\0\uae5a\0\uaeb0\0\uaf06\0\u02b0\0\uaf5c\0\uafb2"+ - "\0\ub008\0\ub05e\0\ub0b4\0\ub10a\0\ub160\0\ub1b6\0\ub20c\0\ub262"+ - "\0\ub2b8\0\ub30e\0\u02b0\0\ub364\0\ub3ba\0\ub410\0\ub466\0\ub4bc"+ - "\0\ub512\0\ub568\0\ub5be\0\ub614\0\ub66a\0\ub6c0\0\ub716\0\ub76c"+ - "\0\ub7c2\0\ub818\0\ub86e\0\ub8c4\0\ub91a\0\ub970\0\ub9c6\0\uba1c"+ - "\0\uba72\0\ubac8\0\ubb1e\0\ubb74\0\ubbca\0\ubc20\0\ubc76\0\ubccc"+ - "\0\ubd22\0\ubd78\0\ubdce\0\ube24\0\ube7a\0\ubed0\0\ubf26\0\ubf7c"+ - "\0\ubfd2\0\uc028\0\uc07e\0\uc0d4\0\uc12a\0\uc180\0\uc1d6\0\uc22c"+ - "\0\uc282\0\uc2d8\0\uc32e\0\uc384\0\uc3da\0\uc430\0\uc486\0\uc4dc"+ - "\0\uc532\0\uc588\0\uc5de\0\uc634\0\uc68a\0\uc6e0\0\uc736\0\uc78c"+ - "\0\uc7e2\0\uc838\0\uc88e\0\uc8e4\0\uc93a\0\uc990\0\uc9e6\0\uca3c"+ - "\0\uca92\0\ucae8\0\ucb3e\0\ucb94\0\ucbea\0\ucc40\0\ucc96\0\uccec"+ - "\0\ucd42\0\ucd98\0\ucdee\0\uce44\0\uce9a\0\ucef0\0\ucf46\0\ucf9c"+ - "\0\ucff2\0\ud048\0\ud09e\0\ud0f4\0\ud14a\0\ud1a0\0\ud1f6\0\ud24c"+ - "\0\ud2a2\0\ud2f8\0\ud34e\0\ud3a4\0\ud3fa\0\ud450\0\ud4a6\0\ud4fc"+ - "\0\ud552\0\ud5a8\0\ud5fe\0\ud654\0\ud6aa\0\ud700\0\ud756\0\ud7ac"+ - "\0\ud802\0\ud858\0\ud8ae\0\ud904\0\ud95a\0\ud9b0\0\uda06\0\uda5c"+ - "\0\udab2\0\udb08\0\udb5e\0\udbb4\0\udc0a\0\udc60\0\udcb6\0\udd0c"+ - "\0\udd62\0\uddb8\0\ude0e\0\ude64\0\udeba\0\udf10\0\udf66\0\udfbc"+ - "\0\ue012\0\ue068\0\ue0be\0\ue114\0\ue16a\0\ue1c0\0\ue216\0\ue26c"+ - "\0\ue2c2\0\u05b6\0\ue318\0\ue36e\0\ue3c4\0\ue41a\0\ue470\0\ue4c6"+ - "\0\ue51c\0\ue572\0\ue5c8\0\ue61e\0\ue674\0\ue6ca\0\u05b6\0\ue720"+ - "\0\ue776\0\ue7cc\0\ue822\0\ue878\0\ue8ce\0\ue924\0\ue97a\0\ue9d0"+ - "\0\uea26\0\uea7c\0\uead2\0\ueb28\0\ueb7e\0\uebd4\0\uec2a\0\uec80"+ - "\0\uecd6\0\ued2c\0\ued82\0\uedd8\0\uee2e\0\uee84\0\ueeda\0\uef30"+ - "\0\uef86\0\uefdc\0\uf032\0\uf088\0\uf0de\0\uf134\0\uf18a\0\uf1e0"+ - "\0\uf236\0\uf28c\0\uf2e2\0\uf338\0\uf38e\0\uf3e4\0\uf43a\0\uf490"+ - "\0\uf4e6\0\uf53c\0\uf592\0\uf5e8\0\uf63e\0\uf694\0\uf6ea\0\uf740"+ - "\0\uf796\0\u6e30\0\uf7ec\0\uf842\0\uf898\0\uf8ee\0\uf944\0\uf99a"+ - "\0\uf9f0\0\ufa46\0\ufa9c\0\ufaf2\0\ufb48\0\ufb9e\0\ufbf4\0\ufc4a"+ - "\0\ufca0\0\ufcf6\0\ufd4c\0\ufda2\0\ufdf8\0\ufe4e\0\ufea4\0\ufefa"+ - "\0\uff50\0\uffa6\0\ufffc\1\122\1\250\1\376\1\u0154\1\u01aa"+ - "\1\u0200\1\u0256\1\u02ac\1\u0302\1\u0358\1\u03ae\1\u0404\1\u045a"+ - "\1\u04b0\1\u0506\1\u055c\1\u05b2\1\u0608\1\u065e\1\u06b4\1\u070a"+ - "\1\u0760\1\u07b6\1\u080c\1\u0862\1\u08b8\1\u090e\1\u0964\1\u09ba"+ - "\1\u0a10\1\u0a66\1\u0abc\1\u0b12\1\u0b68\1\u0bbe\1\u0c14\1\u0c6a"+ - "\1\u0cc0\1\u0d16\1\u0d6c\1\u0dc2\1\u0e18\1\u0e6e\1\u0ec4\1\u0f1a"+ - "\1\u0f70\1\u0fc6\1\u101c\1\u1072\1\u10c8\1\u111e\1\u1174\1\u11ca"+ - "\1\u1220\1\u1276\1\u12cc\1\u1322\1\u1378\1\u13ce\1\u1424\1\u147a"+ - "\1\u14d0\1\u1526\1\u157c\1\u15d2\1\u1628\1\u167e\1\u16d4\1\u172a"+ - "\1\u1780\1\u17d6\1\u182c\1\u1882\1\u18d8\1\u192e\1\u1984\1\u19da"+ - "\1\u1a30\1\u1a86\1\u1adc\1\u1b32\1\u1b88\1\u1bde\1\u1c34\1\u1c8a"+ - "\0\udd62\1\u1ce0\0\ude64\1\u1d36\1\u1d8c\1\u1de2\1\u1e38\1\u1e8e"+ - "\1\u1ee4\1\u1f3a\1\u1f90\1\u1fe6\1\u203c\1\u2092\1\u20e8\1\u213e"+ - "\1\u2194\1\u21ea\1\u2240\1\u2296\1\u22ec\1\u2342\1\u2398\1\u23ee"+ - "\1\u2444\1\u249a\1\u24f0\0\ue674\1\u2546\1\u259c\1\u25f2\1\u2648"+ - "\1\u269e\1\u26f4\1\u274a\1\u27a0\1\u27f6\1\u284c\1\u28a2\1\u28f8"+ - "\1\u294e\1\u29a4\1\u29fa\1\u2a50\1\u2aa6\1\u2afc\1\u2b52\1\u2ba8"+ - "\1\u2bfe\1\u2c54\1\u2caa\1\u2d00\1\u2d56\1\u2dac\0\u3bcc\1\u2e02"+ - "\1\u2e58\1\u2eae\1\u2f04\1\u2f5a\1\u2fb0\1\u3006\1\u305c\1\u30b2"+ - "\1\u3108\1\u315e\1\u31b4\1\u320a\1\u3260\1\u32b6\1\u330c\1\u3362"+ - "\1\u33b8\1\u340e\1\u3464\1\u34ba\1\u3510\1\u3566\1\u35bc\0\u02b0"+ - "\1\u3612\1\u3668\1\u36be\1\u3714\1\u376a\1\u37c0\1\u3816\1\u386c"+ - "\1\u38c2\1\u3918\1\u396e\1\u39c4\1\u3a1a\1\u3a70\1\u3ac6\1\u3b1c"+ - "\1\u3b72\1\u3bc8\1\u3c1e\1\u3c74\1\u3cca\1\u3d20\1\u3d76\1\u3dcc"+ - "\1\u3e22\1\u3e78\1\u3ece\1\u3f24\1\u3f7a\1\u3fd0\1\u4026\1\u407c"+ - "\1\u40d2\1\u4128\1\u417e\1\u41d4\1\u422a\1\u4280\1\u42d6\1\u432c"+ - "\1\u4382\1\u43d8\1\u442e\1\u4484\1\u44da\1\u4530\1\u4586\1\u45dc"+ - "\1\u4632\1\u4688\1\u46de\1\u4734\1\u478a\1\u47e0\1\u4836\1\u488c"+ - "\1\u48e2\1\u4938\1\u498e\1\u49e4\1\u4a3a\1\u4a90\1\u4ae6\1\u4b3c"+ - "\1\u4b92\1\u4be8\1\u4c3e\1\u4c94\1\u4cea\1\u4d40\1\u4d96\1\u4dec"+ - "\1\u4e42\1\u4e98\1\u4eee\1\u4f44\1\u4f9a\1\u4ff0\1\u5046\1\u509c"+ - "\1\u50f2\1\u5148\1\u519e\1\u51f4\1\u524a\1\u52a0\1\u52f6\1\u534c"+ - "\1\u53a2\1\u53f8\1\u544e\1\u54a4\1\u54fa\1\u5550\1\u55a6\1\u55fc"+ - "\1\u5652\1\u56a8\1\u56fe\1\u5754\1\u57aa\1\u5800\1\u5856\1\u58ac"+ - "\1\u5902\1\u5958\1\u59ae\1\u5a04\1\u5a5a\1\u5ab0\1\u5b06\1\u5b5c"+ - "\1\u5bb2\1\u5c08\1\u5c5e\1\u5cb4\1\u5d0a\1\u5d60\1\u5db6\1\u5e0c"+ - "\1\u5e62\1\u5eb8\1\u5f0e\1\u5f64\1\u5fba\1\u6010\1\u6066\1\u60bc"+ - "\1\u6112\1\u6168\1\u61be\1\u6214\1\u626a\1\u62c0\1\u6316\1\u636c"+ - "\1\u63c2\1\u6418\1\u646e\1\u64c4\1\u651a\1\u6570\1\u65c6\1\u661c"+ - "\1\u6672\1\u66c8\1\u671e\1\u6774\1\u67ca\1\u6820\1\u6876\1\u68cc"+ - "\1\u6922\1\u6978\1\u69ce\1\u6a24\1\u6a7a\1\u6ad0\1\u6b26\1\u6b7c"+ - "\1\u6bd2\1\u6c28\1\u6c7e\1\u6cd4\1\u6d2a\1\u6d80\1\u6dd6\1\u6e2c"+ - "\1\u6e82\1\u6ed8\1\u6f2e\1\u6f84\1\u6fda\1\u7030\1\u7086\1\u70dc"+ - "\1\u7132\1\u7188\1\u71de\1\u7234\1\u728a\1\u72e0\1\u7336\1\u738c"+ - "\1\u73e2\1\u7438\1\u748e\1\u74e4\1\u753a\1\u7590\1\u75e6\1\u763c"+ - "\1\u7692\1\u76e8\1\u773e\1\u7794\1\u77ea\1\u7840\1\u7896\1\u78ec"+ - "\1\u7942\1\u7998\1\u79ee\1\u7a44\1\u7a9a\1\u7af0\1\u7b46\1\u7b9c"+ - "\1\u7bf2\1\u7c48\1\u7c9e\1\u7cf4\1\u7d4a\1\u7da0\1\u7df6\1\u7e4c"+ - "\1\u7ea2\1\u7ef8\1\u7f4e\1\u7fa4\1\u7ffa\1\u4f9a\1\u8050\1\u80a6"+ - "\1\u80fc\1\u8152\1\u81a8\1\u81fe\1\u8254\1\u82aa\1\u8300\1\u8356"+ - "\1\u83ac\1\u8402\1\u8458\1\u84ae\1\u8504\1\u855a\1\u85b0\1\u8606"+ - "\1\u865c\1\u86b2\1\u8708\1\u875e\1\u87b4\1\u880a\1\u8860\1\u88b6"+ - "\1\u890c\1\u8962\1\u89b8\1\u8a0e\1\u8a64\1\u8aba\1\u8b10\1\u8b66"+ - "\1\u8bbc\1\u8c12\1\u8c68\1\u8cbe\1\u8d14\1\u8d6a\1\u8dc0\1\u8e16"+ - "\1\u8e6c\1\u8ec2\1\u8f18\1\u8f6e\1\u8fc4\1\u901a\1\u9070\1\u90c6"+ - "\1\u911c\1\u9172\1\u91c8\1\u921e\1\u9274\1\u92ca\1\u9320\1\u9376"+ - "\1\u93cc\1\u9422\1\u9478\1\u94ce\1\u9524\1\u957a\1\u95d0\1\u9626"+ - "\1\u967c\1\u96d2\1\u9728\1\u977e\1\u97d4\1\u982a\1\u9880\1\u98d6"+ - "\1\u992c\1\u9982\1\u99d8\1\u9a2e\1\u9a84\1\u9ada\1\u9b30\1\u9b86"+ - "\1\u9bdc\1\u9c32\1\u9c88\1\u9cde\1\u9d34\1\u9d8a\1\u9de0\1\u9e36"+ - "\1\u9e8c\1\u9ee2\1\u9f38\1\u9f8e\1\u9fe4\1\ua03a\1\ua090\1\ua0e6"+ - "\1\ua13c\1\ua192\1\ua1e8\1\ua23e\1\ua294\1\ua2ea\1\ua340\1\ua396"+ - "\1\ua3ec\1\ua442\1\ua498\1\ua4ee\1\ua544\1\ua59a\1\ua5f0\1\ua646"+ - "\1\ua69c\1\ua6f2\1\ua748\1\ua79e\1\ua7f4\1\ua84a\1\ua8a0\1\ua8f6"+ - "\1\ua94c\1\ua9a2\1\ua9f8\1\uaa4e\1\uaaa4\1\uaafa\1\uab50\1\uaba6"+ - "\1\uabfc\1\uac52\1\uaca8\1\uacfe\1\uad54\1\uadaa\1\uae00\1\uae56"+ - "\1\uaeac\1\uaf02\1\uaf58\1\uafae\1\ub004\1\ub05a\1\ub0b0\1\ub106"+ - "\1\ub15c\1\ub1b2\1\ub208\1\ub25e\1\ub2b4\1\ub30a\1\ub360\1\ub3b6"+ - "\1\ub40c\1\ub462\1\ub4b8\1\ub50e\1\ub564\1\ub5ba\1\ub610\1\ub666"+ - "\1\ub6bc\1\ub712\1\ub768\1\ub7be\1\ub814\1\ub86a\1\ub8c0\1\ub916"+ - "\1\ub96c\1\ub9c2\1\uba18\1\uba6e\1\ubac4\1\ubb1a\1\ubb70\1\ubbc6"+ - "\1\ubc1c\1\ubc72\1\ubcc8\1\ubd1e\1\ubd74\1\ubdca\1\ube20\1\ube76"+ - "\1\ubecc\1\ubf22\1\ubf78\1\ubfce\1\uc024\1\uc07a\1\uc0d0\1\uc126"+ - "\1\uc17c\1\uc1d2\1\uc228\1\uc27e\1\uc2d4\1\uc32a\1\uc380\1\uc3d6"+ - "\1\uc42c\1\uc482\1\uc4d8\1\uc52e\1\uc584\1\uc5da\1\uc630\1\uc686"+ - "\1\uc6dc\1\uc732\1\uc788\1\uc7de\1\uc834\1\uc88a\1\uc8e0\1\uc3d6"+ - "\1\uc936\1\uc98c\1\uc9e2\1\uca38\1\uca8e\1\ucae4\1\ucb3a\1\ucb90"+ - "\1\ucbe6\1\ucc3c\1\ucc92\1\ucce8\1\ucd3e\1\ucd94\1\ucdea\1\uce40"+ - "\1\uce96\1\uceec\1\ucf42\1\ucf98\1\ucfee\1\ud044\1\ud09a\1\ud0f0"+ - "\1\ud146\1\ud19c\1\ud1f2\1\ud248\1\ud29e\1\ud2f4\1\ud34a\1\ud3a0"+ - "\1\ud3f6\1\ud44c\1\ud4a2\1\ud4f8\1\ud54e\1\ud5a4\1\ud5fa\1\ud650"+ - "\1\ud6a6\1\ud6fc\1\ud752\1\ud7a8\1\ud7fe\1\ud854\1\ud8aa\1\ud900"+ - "\1\ud956\0\u05b6\1\ud9ac\1\uda02\1\uda58\1\udaae\1\udb04\1\udb5a"+ - "\1\udbb0\1\udc06\1\udc5c\1\udcb2\1\udd08\1\udd5e\1\uddb4\1\ude0a"+ - "\1\ude60\1\udeb6\1\udf0c\1\udf62\1\udfb8\1\ue00e\1\ue064\1\ue0ba"+ - "\1\ue110\1\ue166\1\ue1bc\1\ue212\1\ue268\1\ue2be\1\ue314\1\ue36a"+ - "\1\ue3c0\1\ue416\1\ue46c\1\ue4c2\1\ue518\1\u9cde\1\ue56e\1\ue5c4"+ - "\1\ue61a\1\ue670\1\ue6c6\1\ue71c\1\ue772\1\ue7c8\1\ue81e\1\ue874"+ - "\1\ue8ca\1\ue920\1\ue976\1\ue9cc\1\uea22\1\uea78\1\ueace\1\ueb24"+ - "\1\ueb7a\1\uebd0\1\uec26\1\uec7c\1\uecd2\1\ued28\1\ued7e\1\uedd4"+ - "\1\uee2a\1\uee80\1\ueed6\1\uef2c\1\uef82\1\uefd8\1\uf02e\1\uf084"+ - "\1\uf0da\1\uf130\1\uf186\1\uf1dc\1\uf232\1\uf288\1\uf2de\1\uf334"+ - "\1\uf38a\1\uf3e0\1\uf436\1\uf48c\1\uf4e2\1\uf538\1\uf58e\1\uf5e4"+ - "\1\uf63a\1\uf690\1\uf6e6\1\uf73c\1\uf792\1\uf7e8\1\uf83e\1\uf894"+ - "\1\uf8ea\1\uf940\1\uf996\1\uf9ec\1\ufa42\1\ufa98\1\ufaee\1\ufb44"+ - "\1\ufb9a\1\ufbf0\1\ufc46\1\ufc9c\1\ufcf2\1\ufd48\1\ufd9e\1\ufdf4"+ - "\1\ufe4a\1\ufea0\1\ufef6\1\uff4c\1\uffa2\1\ufff8\2\116\2\244"+ - "\2\372\2\u0150\2\u01a6\2\u01fc\2\u0252\2\u02a8\2\u02fe\2\u0354"+ - "\2\u03aa\2\u0400\2\u0456\2\u04ac\2\u0502\2\u0558\2\u05ae\2\u0604"+ - "\2\u065a\2\u06b0\2\u0706\2\u075c\2\u07b2\2\u0808\2\u085e\2\u08b4"+ - "\2\u090a\2\u0960\2\u09b6\2\u0a0c\2\u0a62\2\u0ab8\2\u0b0e\2\u0b64"+ - "\2\u0bba\2\u0c10\2\u0c66\2\u0cbc\2\u0d12\2\u0d68\2\u0dbe\2\u0e14"+ - "\2\u0e6a\2\u0ec0\2\u0f16\2\u0f6c\2\u0fc2\2\u1018\2\u106e\2\u10c4"+ - "\2\u111a\2\u1170\2\u11c6\2\u121c\2\u1272\2\u12c8\2\u131e\2\u1374"+ - "\2\u13ca\2\u1420\2\u1476\2\u14cc\2\u1522\2\u1578\2\u15ce\2\u1624"+ - "\2\u167a\2\u16d0\2\u1726\2\u177c\2\u17d2\2\u1828\2\u187e\2\u18d4"+ - "\2\u192a\2\u1980\2\u19d6\2\u1a2c\2\u1a82\2\u1ad8\2\u1b2e\2\u1b84"+ - "\2\u1bda\2\u1c30\2\u1c86\2\u1cdc\2\u1d32\2\u1d88\2\u1dde\2\u1e34"+ - "\2\u1e8a\2\u1ee0\2\u1f36\2\u1f8c\2\u1fe2\2\u2038\2\u208e\2\u20e4"+ - "\2\u213a\2\u2190\2\u21e6\2\u223c\2\u2292\2\u22e8\2\u233e\2\u2394"+ - "\2\u23ea\2\u2440\2\u2496\2\u24ec\2\u2542\2\u2598\2\u25ee\2\u2644"+ - "\2\u269a\2\u26f0\2\u2746\2\u279c\2\u27f2\1\ua396\2\u2848\2\u289e"+ - "\2\u28f4\2\u294a\2\u29a0\2\u29f6\2\u2a4c\2\u2aa2\2\u2af8\2\u2b4e"+ - "\2\u2ba4\2\u2bfa\2\u2c50\2\u2ca6\2\u2cfc\2\u2d52\2\u2da8\2\u2dfe"+ - "\2\u2e54\2\u2eaa\2\u2f00\2\u2f56\2\u2fac\2\u3002\2\u3058\2\u30ae"+ - "\2\u3104\2\u315a\2\u31b0\2\u3206\2\u325c\2\u32b2\2\u3308\2\u335e"+ - "\2\u33b4\2\u340a\2\u3460\2\u34b6\2\u350c\2\u3562\2\u35b8\2\u360e"+ - "\2\u3664\2\u36ba\2\u3710\2\u3766\2\u37bc\2\u3812\2\u3868\2\u38be"+ - "\2\u3914\2\u396a\2\u39c0\2\u3a16\2\u3a6c\2\u3ac2\2\u3b18\2\u3b6e"+ - "\2\u3bc4\2\u3c1a\2\u3c70\2\u3cc6\2\u3d1c\2\u3d72\2\u3dc8\2\u3e1e"+ - "\2\u3e74\2\u3eca\2\u3f20\2\u3f76\2\u3fcc\2\u4022\2\u4078\2\u40ce"+ - "\2\u4124\2\u417a\2\u41d0\2\u4226\2\u427c\2\u42d2\2\u4328\2\u437e"+ - "\2\u43d4\2\u442a\2\u4480\2\u44d6\2\u452c\2\u4582\2\u45d8\2\u462e"+ - "\2\u4684\2\u46da\2\u4730\2\u4786\2\u47dc\2\u4832\2\u4888\2\u48de"+ - "\2\u4934\2\u498a\2\u49e0\2\u4a36\2\u4a8c\2\u4ae2\2\u4b38\2\u4b8e"+ - "\2\u4be4\2\u4c3a\2\u4c90\2\u4ce6\2\u4d3c\2\u4d92\2\u4de8\2\u4e3e"+ - "\2\u4e94\2\u4eea\2\u4f40\2\u4f96\2\u4fec\2\u5042\2\u5098\2\u50ee"+ - "\2\u5144\2\u519a\2\u51f0\2\u5246\2\u529c\2\u52f2\2\u5348\2\u539e"+ - "\2\u53f4\2\u544a\2\u54a0\2\u54f6\2\u554c\2\u55a2\2\u55f8\2\u564e"+ - "\2\u56a4\2\u56fa\2\u5750\2\u57a6\2\u57fc\2\u5852\2\u58a8\2\u58fe"+ - "\2\u5954\2\u59aa\2\u5a00\2\u5a56\2\u5aac\2\u5b02\2\u5b58\2\u5bae"+ - "\2\u5c04\2\u5c5a\2\u5cb0\2\u5d06\2\u5d5c\2\u5db2\2\u5e08\2\u5e5e"+ - "\2\u5eb4\2\u5f0a\2\u5f60\2\u5fb6\2\u600c\2\u6062\2\u60b8\2\u610e"+ - "\2\u6164\2\u61ba\2\u6210\2\u6266\2\u62bc\2\u6312\2\u6368\2\u63be"+ - "\2\u6414\2\u646a\2\u64c0\2\u6516\2\u656c\2\u65c2\2\u6618\2\u666e"+ - "\2\u66c4\2\u671a\2\u6770\2\u67c6\2\u681c\2\u6872\2\u68c8\2\u691e"+ - "\2\u6974\2\u69ca\2\u6a20\2\u6a76\2\u6acc\2\u6b22\2\u6b78\2\u6bce"+ - "\2\u6c24\2\u6c7a\2\u6cd0\2\u6d26\2\u6d7c\2\u6dd2\2\u6e28\2\u6e7e"+ - "\2\u6ed4\2\u6f2a\2\u6f80\2\u6fd6\2\u702c\2\u7082\2\u70d8\2\u712e"+ - "\2\u7184\2\u71da\2\u7230\2\u7286\2\u72dc\2\u7332\2\u7388\2\u73de"+ - "\2\u7434\2\u748a\2\u74e0\2\u7536\2\u758c\2\u75e2\2\u7638\2\u768e"+ - "\2\u76e4\2\u773a\2\u7790\2\u77e6\2\u783c\2\u7892\2\u78e8\2\u793e"+ - "\2\u7994\2\u79ea\2\u7a40\2\u7a96\2\u7aec\2\u7b42\2\u7b98\2\u7bee"+ - "\2\u7c44\2\u7c9a\2\u7cf0\2\u7d46\2\u7d9c\2\u7df2\2\u7e48\2\u7e9e"+ - "\2\u7ef4\2\u7f4a\2\u7fa0\2\u7ff6\2\u804c\2\u80a2\2\u80f8\2\u814e"+ - "\2\u81a4\2\u81fa\2\u8250\2\u82a6\2\u82fc\2\u8352\2\u83a8\2\u83fe"+ - "\2\u8454\2\u84aa\2\u8500\2\u8556\2\u85ac\2\u8602\2\u8658\2\u86ae"+ - "\2\u8704\2\u875a\2\u87b0\2\u8806\2\u885c\2\u88b2\2\u8908\2\u895e"+ - "\2\u89b4\2\u8a0a\2\u8a60\2\u8ab6\2\u8b0c\2\u8b62\2\u8bb8\2\u8c0e"+ - "\2\u8c64\2\u8cba\2\u8d10\2\u8d66\2\u8dbc\2\u8e12\2\u8e68\2\u8ebe"+ - "\2\u8f14\2\u8f6a\2\u8fc0\2\u9016\2\u906c\2\u90c2\2\u9118\2\u916e"+ - "\2\u91c4\2\u921a\2\u9270\2\u92c6\2\u931c\2\u9372\2\u93c8\2\u941e"+ - "\2\u9474\2\u94ca\2\u9520\2\u9576\2\u95cc\2\u9622\2\u9678\2\u96ce"+ - "\2\u9724\2\u977a\2\u97d0\2\u9826\2\u987c\2\u98d2\2\u9928\2\u997e"+ - "\2\u99d4\2\u9a2a\2\u9a80\2\u9ad6\2\u9b2c\2\u9b82\2\u9bd8\2\u9c2e"+ - "\2\u9c84\2\u9cda\2\u9d30\2\u9d86\2\u9ddc\2\u9e32\2\u9e88\2\u9ede"+ - "\2\u9f34\2\u9f8a\2\u9fe0\2\ua036\2\ua08c\2\ua0e2\2\ua138\2\ua18e"+ - "\2\ua1e4\2\ua23a"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[2058]; - 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 = - "\1\10\2\11\1\12\1\13\1\12\1\14\1\12\1\15"+ - "\1\16\1\10\1\17\1\20\1\21\1\22\1\10\1\11"+ - "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\11"+ - "\1\32\1\33\1\34\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\26\1\52\1\26\1\53\1\54\1\53\1\55\1\11"+ - "\1\56\1\57\1\60\1\11\1\61\1\62\1\63\1\64"+ - "\1\65\1\66\1\11\1\67\1\11\2\45\1\70\1\11"+ - "\1\71\1\72\1\11\1\73\1\74\1\75\1\76\1\77"+ - "\1\100\1\101\1\102\1\11\1\103\1\104\1\105\1\106"+ - "\2\12\2\11\15\107\1\110\3\107\1\111\2\107\1\112"+ - "\32\107\1\113\10\107\1\114\35\107\15\115\1\116\3\115"+ - "\1\117\2\115\1\120\22\115\1\121\7\115\1\122\10\115"+ - "\1\123\5\115\1\124\1\115\1\125\25\115\15\126\1\127"+ - "\3\126\1\130\35\126\1\131\10\126\1\132\35\126\12\133"+ - "\1\134\1\135\4\133\1\136\1\137\104\133\10\140\1\141"+ - "\1\140\1\142\6\140\1\143\104\140\12\133\1\144\1\145"+ - "\4\133\1\136\1\146\104\133\10\10\1\0\2\10\1\0"+ - "\2\10\1\0\2\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\27\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\2\150\1\151\3\12"+ - "\1\150\1\12\1\0\2\150\1\0\1\150\1\152\1\0"+ - "\2\150\4\0\1\153\3\150\1\152\1\154\1\0\1\155"+ - "\2\150\1\154\1\150\1\153\1\150\14\0\2\150\1\152"+ - "\5\150\1\152\6\150\2\0\22\150\2\12\4\150\1\156"+ - "\1\157\2\160\1\150\1\160\1\0\2\150\1\0\1\150"+ - "\1\152\1\0\2\150\4\0\1\153\2\161\1\162\1\152"+ - "\1\154\1\0\1\155\2\150\1\154\1\150\1\153\1\150"+ - "\14\0\2\150\1\152\2\150\1\162\2\150\1\152\6\150"+ - "\2\0\22\150\2\160\2\150\1\10\7\11\1\0\1\163"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\164\1\165\1\11\14\0\1\166\1\167"+ - "\15\11\2\0\1\10\25\11\10\170\1\171\1\170\1\172"+ - "\6\170\1\173\104\170\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\174\14\0\17\11\2\0\1\10\25\11\13\0"+ - "\1\175\112\0\1\10\7\11\1\0\1\176\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\177\1\200\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\201\1\202"+ - "\1\11\14\0\1\11\1\203\4\11\1\204\10\11\2\0"+ - "\1\10\25\11\150\0\1\24\103\0\12\205\1\206\10\205"+ - "\1\207\1\210\23\205\1\211\55\205\50\0\1\53\55\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\212\4\11\1\213\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\214\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\215\2\11\14\0"+ - "\1\11\1\216\4\11\1\217\5\11\1\220\2\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\221\4\11\14\0\1\11\1\222\12\11\1\223\2\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\224\1\11\14\0\1\11\1\225\4\11\1\226"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\227\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\230\4\11\14\0\5\11\1\231"+ - "\1\11\1\232\2\11\1\233\4\11\2\0\1\10\13\11"+ - "\1\234\11\11\33\0\1\53\14\0\1\53\60\0\3\155"+ - "\1\0\1\155\112\0\2\155\2\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\235\1\236\3\11\14\0\1\237"+ - "\1\240\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\241\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\242\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\243\1\244\1\11\14\0\5\11\1\245\4\11"+ - "\1\246\4\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\247\1\11\1\0\1\10\1\11"+ - "\4\0\2\11\1\250\3\11\2\0\5\11\1\251\14\0"+ - "\2\11\1\252\14\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\253\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\254\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\255\1\11\1\256\1\11\1\257\1\11\14\0\1\260"+ - "\2\11\1\261\5\11\1\262\2\11\1\263\2\11\2\0"+ - "\1\10\25\11\23\0\1\264\150\0\1\53\1\0\1\53"+ - "\124\0\1\265\1\53\120\0\1\53\4\0\1\53\125\0"+ - "\1\53\1\0\1\266\123\0\1\53\4\0\1\53\50\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\267\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\270\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\271\3\11\14\0\1\11\1\272"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\273"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\274\1\11\1\275\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\276\1\277\1\11\14\0\1\300\1\301\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\302\1\303\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\304\4\11\1\305\14\0\2\11\1\306\4\11"+ - "\1\307\7\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\310\3\11\14\0\6\11\1\311"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\312"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\313\1\314\2\11\14\0\1\11\1\315"+ - "\4\11\1\316\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\317\5\11\1\320"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\321\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\322"+ - "\1\323\3\11\14\0\1\11\1\324\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\325\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\326"+ - "\1\327\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\2\330\3\10\1\330\1\10\1\0\1\330\1\10\1\0"+ - "\2\330\1\0\1\10\1\330\4\0\6\330\2\0\6\330"+ - "\14\0\17\330\2\0\1\10\21\330\2\10\2\330\1\10"+ - "\7\11\1\0\1\331\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\2\11\1\332\3\11\2\0\1\11\1\333"+ - "\3\11\1\334\14\0\3\11\1\335\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\336\1\11"+ - "\1\337\3\11\14\0\1\340\1\341\1\11\1\342\1\343"+ - "\1\11\1\344\5\11\1\345\2\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\346\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\347\3\11"+ - "\1\350\1\11\14\0\2\11\1\351\14\11\2\0\1\10"+ - "\13\11\1\352\11\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\353\4\11\14\0\1\354\1\355\4\11\1\356"+ - "\5\11\1\357\2\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\360\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\5\11\1\361\1\362\16\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\363\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\364\3\11\14\0\1\11\1\365\4\11\1\366\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\367\2\11\14\0\6\11\1\370\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\371\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\372\1\373\2\11\14\0\1\11\1\374\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\375\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\2\11\1\376\3\11"+ - "\2\0\6\11\14\0\3\11\1\377\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u0100\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0101"+ - "\1\11\1\u0102\2\11\14\0\6\11\1\u0103\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u0104\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0105\1\u0106\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\u0107\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\15\107\1\0\3\107\1\0\2\107\1\0\32\107\1\0"+ - "\10\107\1\0\35\107\35\0\1\u0108\27\0\1\u0109\63\0"+ - "\1\u010a\137\0\1\u010b\160\0\1\u010c\35\0\15\115\1\0"+ - "\3\115\1\0\2\115\1\0\22\115\1\0\7\115\1\0"+ - "\10\115\1\0\5\115\1\0\1\115\1\0\25\115\35\0"+ - "\1\u010d\27\0\1\u010e\63\0\1\u010f\103\0\1\u0110\4\0"+ - "\1\u0110\2\0\1\u0110\2\0\2\u0110\5\0\1\u0111\1\0"+ - "\6\u0110\2\0\6\u0110\7\0\1\u0112\4\0\17\u0110\3\0"+ - "\21\u0110\2\0\2\u0110\35\0\1\u0113\160\0\1\u0114\135\0"+ - "\1\u0115\62\0\1\u0116\1\u0117\1\u0118\1\u0119\1\0\1\u011a"+ - "\15\0\1\u011b\1\u011c\1\u011d\1\u011e\1\0\1\u011f\3\0"+ - "\1\u0120\34\0\15\126\1\0\3\126\1\0\35\126\1\0"+ - "\10\126\1\0\35\126\35\0\1\u0121\27\0\1\u0122\75\0"+ - "\1\u0123\160\0\1\u0124\35\0\12\133\2\0\4\133\2\0"+ - "\104\133\21\u0125\1\0\104\u0125\13\0\1\u0126\113\0\2\u0127"+ - "\3\0\1\u0127\2\0\1\u0127\2\0\2\u0127\2\0\1\u0127"+ - "\4\0\6\u0127\2\0\6\u0127\14\0\17\u0127\1\u0128\2\0"+ - "\21\u0127\2\0\2\u0127\10\140\1\0\1\140\1\0\6\140"+ - "\1\0\104\140\10\0\1\u0129\115\0\21\u012a\1\0\104\u012a"+ - "\21\u012b\1\0\104\u012b\10\10\1\0\1\u012c\1\10\1\0"+ - "\2\10\1\0\2\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\26\10\10\150\1\0\2\150\1\0\2\150"+ - "\1\0\2\150\4\0\6\150\2\0\6\150\14\0\17\150"+ - "\2\0\30\150\1\151\3\u012d\1\150\1\u012d\1\0\2\150"+ - "\1\0\2\150\1\0\2\150\4\0\6\150\2\0\6\150"+ - "\14\0\17\150\2\0\22\150\2\u012d\5\150\3\u012e\1\150"+ - "\1\u012e\1\0\2\150\1\0\2\150\1\0\2\150\4\0"+ - "\6\150\1\u012f\1\0\6\150\3\0\1\u012f\10\0\17\150"+ - "\2\0\22\150\2\u012e\5\150\3\155\1\150\1\155\1\0"+ - "\2\150\1\0\1\150\1\152\1\0\2\150\4\0\4\150"+ - "\1\152\1\154\2\0\2\150\1\154\3\150\14\0\2\150"+ - "\1\152\5\150\1\152\6\150\2\0\22\150\2\155\4\150"+ - "\1\156\1\150\2\u0130\1\150\1\u0130\1\0\2\150\1\0"+ - "\2\150\1\0\2\150\4\0\6\150\2\0\6\150\14\0"+ - "\17\150\2\0\22\150\2\u0130\5\150\3\157\1\150\1\157"+ - "\1\0\2\150\1\0\1\150\1\152\1\0\2\150\4\0"+ - "\4\150\1\152\1\154\1\0\1\155\2\150\1\154\3\150"+ - "\14\0\2\150\1\152\5\150\1\152\6\150\2\0\22\150"+ - "\2\157\4\150\1\156\1\157\2\160\1\150\1\160\1\0"+ - "\2\150\1\0\1\150\1\152\1\0\2\150\4\0\1\u0131"+ - "\3\150\1\152\1\154\1\0\1\155\2\150\1\154\1\150"+ - "\1\u0131\1\150\14\0\2\150\1\152\5\150\1\152\6\150"+ - "\2\0\22\150\2\160\6\150\2\u0132\2\150\1\0\2\150"+ - "\1\0\2\150\1\0\2\150\4\0\6\150\2\0\6\150"+ - "\14\0\17\150\2\0\31\150\5\u0133\1\0\2\150\1\0"+ - "\1\150\1\u0133\1\0\2\150\4\0\1\150\2\u0133\1\150"+ - "\2\u0133\2\0\2\150\2\u0133\2\150\14\0\2\150\1\u0133"+ - "\1\150\1\u0133\3\150\1\u0133\6\150\2\0\2\150\1\u0133"+ - "\17\150\2\u0133\2\150\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u0134\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\4\11\1\u0135\1\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0136\2\11\14\0\1\11\1\u0137"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u0138\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0139"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u013a\1\11\14\0\7\11\1\u013b\7\11\2\0\1\10"+ - "\25\11\10\170\1\u013c\1\170\1\172\6\170\1\173\104\170"+ - "\10\0\1\u013d\115\0\4\u013e\2\170\1\u013e\1\170\1\u013f"+ - "\1\u0140\4\170\3\u013e\1\0\5\u013e\1\170\5\u013e\2\170"+ - "\63\u013e\2\170\2\u013e\10\173\1\u013c\1\173\1\u0141\113\173"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0142\3\11"+ - "\14\0\6\11\1\u0143\10\11\2\0\1\10\25\11\13\0"+ - "\1\u0144\112\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u0145\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\11\11\1\303"+ - "\5\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0146\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\4\11\1\u0147\1\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u0148\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\303\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u0149\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\12\205\1\206\10\205\1\u014a\123\205"+ - "\1\0\104\205\24\0\1\u014b\101\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u014c\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\4\11\1\u014d\12\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\u014e\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\u014f\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u0150"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\u0151\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u0152\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0153\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0154\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0155\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u0156\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0157\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0158\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u0159\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u015a\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u015b\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u015c\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u015d\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u015e"+ - "\5\11\14\0\4\11\1\u015f\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11"+ - "\1\u0160\13\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0161\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\4\11\1\u0162\1\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\u0163\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u0164\2\11\14\0"+ - "\14\11\1\303\2\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u0165\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u0166\4\11\14\0\6\11\1\u0167\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\2\11\1\u0168\22\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0169\4\11\1\u016a\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u016b\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\4\11\1\u016c\12\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u016d\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u016e\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u016f\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11"+ - "\1\u0142\2\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u0170\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\1\11\1\u0171\4\11\2\0"+ - "\5\11\1\u0172\14\0\17\11\2\0\1\10\5\11\1\u0173"+ - "\17\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\2\11\1\u0174\14\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u0175\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u0176\13\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0177\1\11\1\u0178"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0179\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\322\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u017a"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u017b\2\11\1\u017c\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u017d\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u017e\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\12\205\1\206\10\205\2\0"+ - "\101\205\50\0\1\53\1\0\1\26\53\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u017f\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\7\11\1\u0180\7\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\11\1\u0181\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0182\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\2\11\1\u0183\3\11\2\0\1\u0184\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u0185\4\11\1\u0186\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\4\11\1\u0187\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0188\4\11\1\u016d"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0189\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u018a\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u018b\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\4\11\1\u018c\1\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u018d\4\11\1\u018e\14\0\12\11\1\u018f"+ - "\4\11\2\0\1\10\14\11\1\u0190\10\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u0191\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\5\11\1\u0192\1\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0193\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\3\11\1\u0194\13\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0195"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\5\11\1\u0196\11\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\3\11\1\u0197\13\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\3\11\1\u0198\21\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0199\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u019a\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u019b\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u019c\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u019d\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u019e\1\11\14\0\6\11\1\u019f\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0180"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u01a0\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u01a1"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u01a2\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u01a3\1\11\1\u01a4\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u01a5\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\330\1\0\1\330"+ - "\1\u01a6\1\0\2\330\1\0\1\10\1\330\4\0\6\330"+ - "\2\0\6\330\14\0\17\330\2\0\1\10\25\330\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u01a7\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u01a8\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u01a9\4\11\14\0"+ - "\6\11\1\u01aa\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u01ab\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u01ac\13\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u01ad\1\11\1\u01ae"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0142\1\u01af\4\11\14\0\4\11"+ - "\1\u01b0\12\11\2\0\1\10\3\11\1\u01b1\21\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u01b2"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u01b3\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u01b4"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u01b5\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\7\11\1\u01b6\7\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u01b7\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u01b8"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u01b9\4\11\1\u01ba\14\0\1\u01bb\1\11"+ - "\1\u01bc\1\u01bd\1\u01be\5\11\1\u01bf\4\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u01c0"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\4\11\1\u01c1\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u01c2\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\5\11\1\u01c3\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u01c4\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u01c5"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u01c6\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\7\11\1\u01c7\7\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11"+ - "\1\u01c8\13\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u01c9\14\0\4\11\1\u01ca\11\11"+ - "\1\u01cb\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\4\11"+ - "\1\u01cc\1\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\4\11\1\u01cd\20\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u01ce\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u01cf\4\11\14\0\4\11\1\u01d0\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u01d1\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u01d2\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u019d\5\11\14\0\3\11\1\u01d3\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u01d4"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u01d5\1\11\14\0\7\11\1\u01d6"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\13\11\1\u01d7\3\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\12\11\1\u01d8\4\11\2\0\1\10\25\11\1\10\5\11"+ - "\1\u01d9\1\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u01da\5\11\14\0"+ - "\17\11\2\0\1\10\2\11\1\u01db\22\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u01dc\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11"+ - "\1\u01dd\14\0\17\11\2\0\1\10\14\11\1\u01de\10\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u01df\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\u01e0\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u01e1\4\11\1\u01e2\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u01e3"+ - "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\3\11\1\u01e4\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u01e5"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u01e6\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u01e7\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0198\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\62\0\1\u01e8\104\0"+ - "\1\u01e9\121\0\1\u01ea\160\0\1\u01eb\117\0\1\u01ec\104\0"+ - "\1\u01ed\64\0\52\u0110\1\u0112\53\u0110\1\0\1\u0110\4\0"+ - "\1\u0110\2\0\1\u0110\2\0\2\u0110\7\0\6\u0110\2\0"+ - "\6\u0110\7\0\1\u0112\4\0\17\u0110\3\0\21\u0110\2\0"+ - "\2\u0110\35\0\1\u01ee\160\0\1\u01ef\76\0\1\u01f0\17\0"+ - "\1\u01f1\1\0\1\u01f2\1\0\1\u01f3\3\0\1\u01f4\45\0"+ - "\1\u01f5\45\0\1\u01f6\1\u01f7\104\0\1\u01f8\152\0\1\u01f9"+ - "\52\0\1\u01fa\153\0\1\u01fb\25\0\1\u01fc\67\0\1\u01fd"+ - "\135\0\1\u01fe\126\0\1\u01ff\125\0\1\u0200\101\0\1\u0201"+ - "\150\0\1\u0202\150\0\1\u0203\104\0\1\u0204\121\0\1\u0205"+ - "\160\0\1\u0206\50\0\1\u0207\113\0\7\u0127\1\0\1\u0127"+ - "\1\u0208\1\0\2\u0127\2\0\1\u0127\4\0\6\u0127\2\0"+ - "\6\u0127\14\0\17\u0127\3\0\25\u0127\77\u0209\1\0\26\u0209"+ - "\10\0\1\u020a\115\0\3\10\5\u020b\1\0\2\10\1\0"+ - "\1\10\1\u020b\1\0\2\10\4\0\1\10\2\u020b\1\10"+ - "\2\u020b\2\0\2\10\2\u020b\2\10\14\0\2\10\1\u020b"+ - "\1\10\1\u020b\3\10\1\u020b\6\10\2\0\2\10\1\u020b"+ - "\17\10\2\u020b\2\10\2\150\1\151\3\u012d\1\150\1\u012d"+ - "\1\0\2\150\1\0\2\150\1\0\2\150\4\0\1\153"+ - "\5\150\2\0\4\150\1\153\1\150\14\0\17\150\2\0"+ - "\22\150\2\u012d\5\150\3\u012e\1\150\1\u012e\1\0\2\150"+ - "\1\0\1\150\1\152\1\0\2\150\4\0\4\150\1\152"+ - "\1\150\2\0\6\150\14\0\2\150\1\152\5\150\1\152"+ - "\6\150\2\0\22\150\2\u012e\2\150\3\0\3\u012e\1\0"+ - "\1\u012e\112\0\2\u012e\2\0\2\150\1\156\1\150\2\u0130"+ - "\1\150\1\u0130\1\0\2\150\1\0\2\150\1\0\2\150"+ - "\4\0\1\u0131\5\150\2\0\4\150\1\u0131\1\150\14\0"+ - "\17\150\2\0\22\150\2\u0130\4\150\1\u020c\1\150\2\u0132"+ - "\2\150\1\0\2\150\1\0\2\150\1\0\2\150\4\0"+ - "\6\150\2\0\6\150\14\0\17\150\2\0\30\150\1\u020d"+ - "\5\u0133\1\0\2\150\1\0\1\150\1\u0133\1\0\2\150"+ - "\4\0\1\u0131\2\u0133\1\150\2\u0133\2\0\2\150\2\u0133"+ - "\1\u0131\1\150\14\0\2\150\1\u0133\1\150\1\u0133\3\150"+ - "\1\u0133\6\150\2\0\2\150\1\u0133\17\150\2\u0133\2\150"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u020e\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u020f\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11"+ - "\1\u0210\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u0211\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u0212\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u0213\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0214\14\0"+ - "\4\11\1\u0215\12\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\4\11\1\u0216\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\3\11\1\u0217\13\11\2\0\1\10\25\11"+ - "\10\u013e\1\u0218\10\u013e\1\0\107\u013e\5\u0219\1\u0218\4\u013e"+ - "\1\u0219\3\u013e\1\0\4\u013e\2\u0219\1\u013e\2\u0219\4\u013e"+ - "\2\u0219\20\u013e\1\u0219\1\u013e\1\u0219\3\u013e\1\u0219\12\u013e"+ - "\1\u0219\17\u013e\2\u0219\2\u013e\4\0\2\173\1\0\2\173"+ - "\1\u021a\4\173\11\0\1\173\5\0\2\173\63\0\2\173"+ - "\2\0\1\10\7\11\1\0\1\11\1\147\1\0\1\u021b"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\303\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u021c\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u0163\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u021d\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u021e\2\11"+ - "\14\0\2\11\1\u021f\14\11\2\0\1\10\25\11\23\0"+ - "\1\u0220\102\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\13\11\1\u0221\3\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u0222\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0223\3\11\14\0\16\11\1\u0224\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0225"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\11\1\u0226\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0227\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0228\3\11\1\u0229\1\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11"+ - "\1\u022a\22\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u022b\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u022c\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u022d\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u022e"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u022f\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u0230\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0231"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0232\1\11\1\u0233\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\7\11\1\u0234\7\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u0235"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0236\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0237"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0238\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u0239\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\5\11\1\u023a\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u023b\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u023c\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\303\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u023d"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\303\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u023e\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\u023f"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\3\11\1\u0240"+ - "\13\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\7\11\1\303\7\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\u0241\16\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\303\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0242\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\247\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0243\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u0244\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0245\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\14\11\1\u0246\2\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\2\11\1\u0247\22\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\13\11\1\u022e\3\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\203"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0248\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u0249\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\11\11\1\u024a\13\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u021d\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u024b\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0230\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u0188\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u024c"+ - "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\15\11\1\u024d"+ - "\7\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\3\11\1\u0142\13\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u024e\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\2\11\1\u024f"+ - "\3\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\4\11\1\u0249\1\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\11"+ - "\1\u0230\23\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0250"+ - "\5\11\14\0\3\11\1\u0251\13\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0252\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\12\11\1\u0253\4\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\16\11\1\u0254\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\4\11\1\u0255\12\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u0167\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u022e\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0256\4\11\1\u0165"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u0190\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0257\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0258\5\11\14\0\3\11"+ - "\1\u0190\13\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u0259\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u025a\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u025b\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u025c\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u025d"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u025e\1\11\14\0\1\11\1\u0245"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u025f\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u0260\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\4\11\1\u0261\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0262\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u0142\1\u0263\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\2\11"+ - "\1\u0264\3\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0265\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u016d\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\u0142\16\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0266\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\2\11\1\303\14\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\1\11\1\u0230\7\11\1\u0267\3\11\1\u0268"+ - "\7\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\303\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u0269\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u026a\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\2\11\1\u026b\14\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u026c\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\2\11\1\u026d\14\11\2\0"+ - "\1\10\25\11\10\10\1\0\1\u026e\1\10\1\0\2\10"+ - "\1\0\2\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\27\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u026f\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0270\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u0271\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0272\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0273\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0274\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0275\3\11\14\0\6\11\1\u0276"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u0277\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u0278\3\11\1\u0279\4\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\u027a\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u027b\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u0230\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u027c\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u027d"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u027e\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11"+ - "\1\u027f\13\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\4\11\1\u0280\12\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0281"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u0282\3\11\14\0\17\11"+ - "\2\0\1\10\2\11\1\u0283\22\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0284\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0285"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u0286\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0287\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0288\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u0289\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u028a\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\11\1\u028b\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u028c\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\u028d\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\230\4\11\14\0"+ - "\5\11\1\u028e\11\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u028f\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0290\3\11\14\0\1\11\1\u0291\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\11\11\1\u0292\13\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u0293\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0294\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u0295\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0296"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\u0297\16\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u0298\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\10\11\1\u0299\6\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\10\11\1\u0142\6\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\u029a"+ - "\16\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u029b\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u015d\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\2\11\1\u0142\14\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u029c"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\1\0\1\u029d\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11"+ - "\1\u029e\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\4\11\1\u029f\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\2\11\1\u02a0"+ - "\3\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u02a1\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u02a2\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u02a3\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\1\11\1\u02a4\1\u02a5\22\11\1\10\7\11\1\0"+ - "\1\u02a6\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11"+ - "\1\u02a7\13\11\2\0\1\10\13\11\1\u02a8\11\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u02a9\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u02aa\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u02ab\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\u02ac\16\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u02ad\1\u02ae\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u02af\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u02b0\5\11\1\u02b1\7\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\16\11"+ - "\1\u02b2\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u02b3\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\13\11\1\u02b4\3\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u02b5\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\16\11\1\u02b6\2\0\1\10\25\11\56\0\1\u02b7"+ - "\106\0\1\u01e8\150\0\1\u02b8\77\0\1\u02b9\147\0\1\u02ba"+ - "\106\0\1\u01ec\150\0\1\u02bb\77\0\1\u02bc\156\0\1\u02bd"+ - "\120\0\1\u02be\125\0\1\u02bf\61\0\1\u02c0\151\0\1\u02c1"+ - "\122\0\1\u02c2\126\0\1\u02c3\150\0\1\u02c4\101\0\1\u02c5"+ - "\130\0\1\u02c6\22\0\1\u02c7\77\0\1\u02c8\126\0\1\u02c9"+ - "\1\u02ca\102\0\1\u02cb\153\0\1\u02cc\145\0\1\u02cd\101\0"+ - "\1\u02ce\124\0\1\u02cf\125\0\1\u02d0\23\0\1\u02d1\102\0"+ - "\1\u02d2\145\0\1\u02d3\106\0\1\u0203\150\0\1\u02d4\77\0"+ - "\1\u02d5\102\0\1\u02d6\114\0\77\u0209\1\u02d7\26\u0209\3\10"+ - "\5\u02d8\1\0\2\10\1\0\1\10\1\u02d8\1\0\2\10"+ - "\4\0\1\10\2\u02d8\1\10\2\u02d8\2\0\2\10\2\u02d8"+ - "\2\10\14\0\2\10\1\u02d8\1\10\1\u02d8\3\10\1\u02d8"+ - "\6\10\2\0\2\10\1\u02d8\17\10\2\u02d8\2\10\2\150"+ - "\1\u020d\5\u0133\1\0\2\150\1\0\1\150\1\u0133\1\0"+ - "\2\150\4\0\1\150\2\u0133\1\150\2\u0133\2\0\2\150"+ - "\2\u0133\2\150\14\0\2\150\1\u0133\1\150\1\u0133\3\150"+ - "\1\u0133\6\150\2\0\2\150\1\u0133\17\150\2\u0133\2\150"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u02d9\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u02da\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u02db"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u02dc\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0269\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\5\11\1\u02dd\1\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u02de"+ - "\2\11\14\0\17\11\2\0\1\10\1\11\1\u02df\1\u02e0"+ - "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u02e1\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\u02e2\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u02e3"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u01c0\2\11\14\0\6\11"+ - "\1\u02e4\10\11\2\0\1\10\25\11\3\u013e\5\u02e5\1\u0218"+ - "\4\u013e\1\u02e5\3\u013e\1\0\4\u013e\2\u02e5\1\u013e\2\u02e5"+ - "\4\u013e\2\u02e5\20\u013e\1\u02e5\1\u013e\1\u02e5\3\u013e\1\u02e5"+ - "\12\u013e\1\u02e5\17\u013e\2\u02e5\2\u013e\3\0\5\u02e6\5\0"+ - "\1\u02e6\10\0\2\u02e6\1\0\2\u02e6\4\0\2\u02e6\20\0"+ - "\1\u02e6\1\0\1\u02e6\3\0\1\u02e6\12\0\1\u02e6\17\0"+ - "\2\u02e6\2\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\13\11\1\303\3\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\12\11\1\u016d"+ - "\4\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u022e\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\4\11\1\u02e7\1\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\1\u02e8\5\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\1\11\1\u02e9\2\11\1\u02ea\20\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11"+ - "\1\u0283\22\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u02eb\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\12\11\1\u02ec\12\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u02ed\1\u02ee\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\15\11\1\u02ef\1\11\2\0\1\10\4\11\1\u02f0"+ - "\20\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u02f1"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\21\11\1\u02f2\3\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u02f3\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u02f4\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0230\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\1\11\1\u02f5\23\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\16\11\1\303\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u02f6\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\u0269\16\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u0142\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u02f7\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u02f8\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u02f9"+ - "\1\11\1\0\1\10\1\11\4\0\4\11\1\u02fa\1\11"+ - "\2\0\6\11\14\0\10\11\1\u02fb\4\11\1\u02fc\1\11"+ - "\2\0\1\10\4\11\1\u02fd\5\11\1\u02fe\1\u02ff\1\11"+ - "\1\u0300\1\11\1\u0301\5\11\1\10\5\11\1\u0302\1\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u0303\3\11\14\0\17\11"+ - "\2\0\1\10\2\11\1\u022a\6\11\1\u0304\13\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0142\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u0305\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\3\11\1\u0306\13\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\14\11\1\u0307\2\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u0308\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\5\11\1\u028e"+ - "\11\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\u0309\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\11\11"+ - "\1\u030a\5\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u030b\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u030c\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u030d"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\17\11\1\u030e"+ - "\5\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u030f"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u0310\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u0311\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0165\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\3\11\1\u0262\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\u0312\16\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\4\11\1\u0313\12\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u0314\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\310\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u0315\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\u0316"+ - "\16\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u0317\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u0318\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0157\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0319"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u031a\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u031b\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u031c\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u031d\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\303\16\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u031e\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u031f\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u0320\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\16\11\1\u0321\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u0230\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u01d0\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11"+ - "\1\u0262\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0322\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0323\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\5\11\1\u0324\1\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\303\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0325\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0142\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\4\11\1\u0326\6\11\1\u0327"+ - "\11\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0328"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0329\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\317\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u032a\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u032b\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u032c"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u032d\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0235\1\u032c\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u032e\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u032f\15\11\2\0\1\10"+ - "\25\11\3\10\5\u0330\1\0\2\10\1\0\1\10\1\u0330"+ - "\1\0\2\10\4\0\1\10\2\u0330\1\10\2\u0330\2\0"+ - "\2\10\2\u0330\2\10\14\0\2\10\1\u0330\1\10\1\u0330"+ - "\3\10\1\u0330\6\10\2\0\2\10\1\u0330\17\10\2\u0330"+ - "\3\10\5\11\1\u0331\1\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u0332\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\14\11\1\u0333\2\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\u0334\16\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u0335\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0336\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u0337\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0338"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\4\11\1\u0339\12\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\16\11\1\u033a"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u033b\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u033c\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u033d\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u033e\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u033f\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0340\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0341\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0342\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\4\11\1\u0343\1\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u0344\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u0345\4\11\14\0\13\11\1\u0341\3\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u0346\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0347\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u0348\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\5\11\1\u0349"+ - "\11\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u034a\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11"+ - "\1\u034b\7\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u034c\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u034d\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u034e"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\13\11\1\u034f\3\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0350\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\4\11\1\u0351\12\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\2\11\1\u022a\6\11\1\u0304"+ - "\13\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0352"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\11\11\1\u0269\5\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u0353\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0354\4\11"+ - "\14\0\17\11\2\0\1\10\23\11\1\u0355\1\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\12\11\1\u0356\12\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\3\11\1\u0357\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0358\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0359\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u035a\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u035b\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0269\5\11\14\0\17\11\2\0\1\10\2\11"+ - "\1\u022a\6\11\1\u0304\13\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\11\1\u035c\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\u035d\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\32\0\1\u035e\73\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u035f\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\15\11\1\u0360\7\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0361\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0362\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\13\11\1\u0363\3\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0364\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\4\11\1\u0365\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0366\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\4\11\1\u0367\12\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u0368\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\11\1\u0369\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u036a"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\4\11\1\u036b\12\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u036c\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\2\11\1\u036d\3\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u036e\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u036f\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0370\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u0371\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0372\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0373\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\2\11\1\u0374\14\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u0375"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0376\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\7\11\1\u0377\15\11\23\0\1\u0378"+ - "\144\0\1\u01e8\13\0\1\u02b7\50\0\1\u02b9\1\u0379\5\u02b9"+ - "\1\u0379\1\u02b9\2\0\2\u02b9\1\0\1\u0379\1\u02b9\2\0"+ - "\1\u02b9\1\u0379\6\u02b9\2\u0379\6\u02b9\4\u0379\1\0\1\u0379"+ - "\2\0\4\u0379\17\u02b9\2\0\1\u0379\25\u02b9\23\0\1\u037a"+ - "\144\0\1\u01ec\13\0\1\u02ba\50\0\1\u02bc\1\u037b\5\u02bc"+ - "\1\u037b\1\u02bc\2\0\2\u02bc\1\0\1\u037b\1\u02bc\2\0"+ - "\1\u02bc\1\u037b\6\u02bc\2\u037b\6\u02bc\4\u037b\1\0\1\u037b"+ - "\2\0\4\u037b\17\u02bc\2\0\1\u037b\25\u02bc\14\0\1\u037c"+ - "\20\0\1\u037d\153\0\1\u037e\123\0\1\u037f\123\0\1\u0380"+ - "\107\0\1\u0381\144\0\1\u0382\104\0\1\u0383\20\0\1\u0384"+ - "\125\0\1\u02ca\56\0\1\u0385\202\0\1\u0386\76\0\1\u0387"+ - "\1\0\1\u0388\143\0\1\u0389\133\0\1\u038a\123\0\1\u038b"+ - "\122\0\1\u038c\103\0\1\u038d\127\0\1\u038e\124\0\1\u038f"+ - "\125\0\1\u0390\125\0\1\u0391\130\0\1\u0392\106\0\1\u0393"+ - "\144\0\1\u0203\13\0\1\u02d3\50\0\1\u02d5\1\u0394\5\u02d5"+ - "\1\u0394\1\u02d5\2\0\2\u02d5\1\0\1\u0394\1\u02d5\2\0"+ - "\1\u02d5\1\u0394\6\u02d5\2\u0394\6\u02d5\4\u0394\1\0\1\u0394"+ - "\2\0\4\u0394\17\u02d5\2\0\1\u0394\25\u02d5\3\0\5\u0395"+ - "\5\0\1\u0395\10\0\2\u0395\1\0\2\u0395\4\0\2\u0395"+ - "\20\0\1\u0395\1\0\1\u0395\3\0\1\u0395\12\0\1\u0395"+ - "\17\0\2\u0395\2\0\3\10\5\u0396\1\0\2\10\1\0"+ - "\1\10\1\u0396\1\0\2\10\4\0\1\10\2\u0396\1\10"+ - "\2\u0396\2\0\2\10\2\u0396\2\10\14\0\2\10\1\u0396"+ - "\1\10\1\u0396\3\10\1\u0396\6\10\2\0\2\10\1\u0396"+ - "\17\10\2\u0396\3\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u0397\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\2\11\1\u0398\14\11"+ - "\2\0\1\10\25\11\1\10\5\11\1\u0399\1\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\1\u039a\3\11\1\u039b\1\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\10\11\1\u039c\1\11\1\u02fe\12\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u032c\2\11\14\0"+ - "\17\11\2\0\1\10\12\11\1\u039d\12\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u039e\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\4\11\1\u039f\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u03a0\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u03a1\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u0262\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u03a2\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u03a3\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0341"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\3\u013e\5\u03a4"+ - "\1\u0218\4\u013e\1\u03a4\3\u013e\1\0\4\u013e\2\u03a4\1\u013e"+ - "\2\u03a4\4\u013e\2\u03a4\20\u013e\1\u03a4\1\u013e\1\u03a4\3\u013e"+ - "\1\u03a4\12\u013e\1\u03a4\17\u013e\2\u03a4\2\u013e\3\0\5\u03a5"+ - "\5\0\1\u03a5\10\0\2\u03a5\1\0\2\u03a5\4\0\2\u03a5"+ - "\20\0\1\u03a5\1\0\1\u03a5\3\0\1\u03a5\12\0\1\u03a5"+ - "\17\0\2\u03a5\2\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u03a6\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u03a7\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u03a8\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u03a9\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u03aa\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u03ab\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\2\11\1\u03ac\14\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\13\11\1\u03ad\3\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u03ae\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u03af\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u01e4"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\22\11\1\u03b0\2\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u03b1\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u03b2\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u03b3\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u03b4"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u03b5\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u0374\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u03b6\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u03b7\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u03b8"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u03b9\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\u03ba\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u03bb"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\u03bc"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u03bd\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u03be\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u03bf\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u03c0\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u0180\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u03c1\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u03c2\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\2\11\1\u03c3\22\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\1\u03c4\5\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\13\11\1\u03c5\11\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u03c6\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u03c7\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u03c8\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03c9"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u03ca\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\2\11\1\u0167\14\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u03cb\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0229\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u03cc\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u03cd\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\303\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u03ce\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u03cf"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u03d0\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u0165\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u03d1\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u03d2\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\11\1\u0142\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u03b2\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u016d\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\13\11\1\u016d\3\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03d3"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\11\1\u03d4\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03d5"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u03d6\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u03d7\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u03d8"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u03d9\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\4\11\1\u03da\12\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u03db\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u03dc\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0221\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u03dd\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u03de\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u03df\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\2\11\1\u02e1\3\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\7\11\1\u03e0\7\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u03e1\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u03e2"+ - "\7\11\2\0\1\10\25\11\3\10\5\u03e3\1\0\2\10"+ - "\1\0\1\10\1\u03e3\1\0\2\10\4\0\1\10\2\u03e3"+ - "\1\10\2\u03e3\2\0\2\10\2\u03e3\2\10\14\0\2\10"+ - "\1\u03e3\1\10\1\u03e3\3\10\1\u03e3\6\10\2\0\2\10"+ - "\1\u03e3\17\10\2\u03e3\3\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u03e4\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u03e5\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\1\u03e6\5\11\2\0\5\11\1\u0142\14\0\10\11\1\u03e7"+ - "\6\11\2\0\1\10\2\11\1\u03e8\1\11\1\u03e9\20\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11"+ - "\1\u03ea\7\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u03eb\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\2\11\1\u0269\14\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\7\11\1\u03ec\7\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\13\11\1\u03ed\3\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u03ee\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\5\11\1\u03ef"+ - "\5\11\1\u03f0\11\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u03f1\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u03f2\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u03f3\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u03f4\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\2\11\1\u028f\14\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u03f5\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0235\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u03f6\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u03f7\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0142"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u03f8\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u03f9\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\7\11\1\u03fa\7\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u03fb\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u03fc\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\13\11\1\u03fd\11\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11"+ - "\1\u03fe\6\11\1\u03ff\13\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\3\11\1\u0400\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u0401\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\2\11\1\u02e1\3\11\2\0\1\u015d\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u0402\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0403"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0404\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0405\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11"+ - "\1\u0406\14\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u0407\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\5\11\1\u0408\17\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0409\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u040a\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11"+ - "\1\u040b\13\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u040c\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\4\11\1\u040d\12\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\11\11\1\u040e"+ - "\5\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u040f\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11"+ - "\1\u0410\2\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0411\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\14\0\1\u0412\111\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u0413\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u0414\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u0415\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u0416\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0417\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u0418\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0419\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u041a\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\u041b\16\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u041c\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\11\11\1\u041d\13\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\12\11\1\u026b"+ - "\4\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u041e\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u041f\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u0420\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0421"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u0422\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\2\11\1\u0423\14\11\1\u0301"+ - "\5\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u0424\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0425\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\13\11\1\u0262\3\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\15\11\1\u02fc"+ - "\1\11\2\0\1\10\4\11\1\u02fd\6\11\1\u02ff\3\11"+ - "\1\u0301\5\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u0426\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0142\4\11\14\0"+ - "\17\11\2\0\1\10\1\11\1\u0427\23\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0428\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\23\0\1\u02b9\125\0\1\u02bc\177\0"+ - "\1\u0429\67\0\1\u042a\162\0\1\u042b\70\0\1\u0429\125\0"+ - "\1\u042c\77\0\1\u037f\152\0\1\u042d\127\0\1\u042e\155\0"+ - "\1\u042f\73\0\1\u0430\151\0\1\u0431\125\0\1\u0432\54\0"+ - "\1\u0433\174\0\1\u0434\105\0\1\u0435\124\0\1\u02ca\127\0"+ - "\1\u0436\123\0\1\u0437\154\0\1\u02ca\131\0\1\u0438\71\0"+ - "\1\u0439\153\0\1\u02ca\126\0\1\u043a\63\0\1\u02d5\105\0"+ - "\5\u043b\5\0\1\u043b\10\0\2\u043b\1\0\2\u043b\4\0"+ - "\2\u043b\20\0\1\u043b\1\0\1\u043b\3\0\1\u043b\12\0"+ - "\1\u043b\17\0\2\u043b\2\0\3\10\5\11\1\0\2\10"+ - "\1\0\1\10\1\11\1\0\2\10\4\0\1\10\2\11"+ - "\1\10\2\11\2\0\2\10\2\11\2\10\14\0\2\10"+ - "\1\11\1\10\1\11\3\10\1\11\6\10\2\0\2\10"+ - "\1\11\17\10\2\11\3\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\4\11\1\247\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u043c\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u043d\2\11\14\0\6\11\1\u043e"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u03b9\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u043f\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0440\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u0441\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0442\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0443\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0444\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\3\11"+ - "\1\u0445\21\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u0446\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0447\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\3\u013e\5\170\1\u0218\4\u013e\1\170"+ - "\3\u013e\1\0\4\u013e\2\170\1\u013e\2\170\4\u013e\2\170"+ - "\20\u013e\1\170\1\u013e\1\170\3\u013e\1\170\12\u013e\1\170"+ - "\17\u013e\2\170\2\u013e\3\0\5\u0448\5\0\1\u0448\10\0"+ - "\2\u0448\1\0\2\u0448\4\0\2\u0448\20\0\1\u0448\1\0"+ - "\1\u0448\3\0\1\u0448\12\0\1\u0448\17\0\2\u0448\2\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11"+ - "\1\303\2\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u0449\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0142"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\2\11\1\u044a\14\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\1\0"+ - "\1\u044b\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u044c"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\1\u03e6"+ - "\5\11\2\0\6\11\14\0\17\11\2\0\1\10\7\11"+ - "\1\u044d\15\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0410\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u044e\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\1\0"+ - "\1\u044f\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0450\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u0142\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0451\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u022e\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\4\11\1\u0452\1\11\2\0"+ - "\1\u0453\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0454"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0455\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u0456"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0457\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u0458\13\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0459\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u03ba\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u045a\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u0455\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u045b"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u045c\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u045d\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u045e"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u045f\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0460\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\2\11\1\u0461\3\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0462\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u0463\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\2\11\1\u0464\14\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0465\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u0165\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0466\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\11\1\u0467\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\11"+ - "\1\u0142\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u0468\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u0469\13\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u046a\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u03a6\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\u016d\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u046b\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u046c"+ - "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\11\11\1\u046d"+ - "\13\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\247\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u046e\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u046f\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u0470\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\3\11\1\u0471\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u03db\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u0472\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0473"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\3\11\1\u0474\13\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0475\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u0476\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\11"+ - "\1\u0477\23\11\3\10\5\u0478\1\0\2\10\1\0\1\10"+ - "\1\u0478\1\0\2\10\4\0\1\10\2\u0478\1\10\2\u0478"+ - "\2\0\2\10\2\u0478\2\10\14\0\2\10\1\u0478\1\10"+ - "\1\u0478\3\10\1\u0478\6\10\2\0\2\10\1\u0478\17\10"+ - "\2\u0478\3\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u0479\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\4\11\1\u047a\12\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u047b\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\313\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u047c\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u047d"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u047e\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u047f\10\11\2\0\1\10\25\11\1\10"+ - "\5\11\1\u0480\1\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\5\11\1\u0481\17\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\1\11\1\u0482\4\11\2\0\6\11\14\0\15\11"+ - "\1\u02fc\1\11\2\0\1\10\4\11\1\u03e9\1\u0481\11\11"+ - "\1\u0301\4\11\1\u0483\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\11\11\1\u0484\13\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0485\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\12\11\1\u0486\4\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u0487\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u0488\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0489\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u048a\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u048b\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\5\11\1\u048c\17\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u048d"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u048e\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u048f\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\7\11\1\u0490\7\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0491\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0492\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u0493\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0494\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0495\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0496\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\2\11\1\u0497\14\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0498"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0499\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u049a\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\3\11\1\u045c\13\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\1\u049b\5\11\1\0"+ - "\1\u049c\6\11\14\0\10\11\1\u049d\6\11\2\0\1\10"+ - "\16\11\1\u049e\6\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\14\11\1\u049f\2\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u04a0\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u0262\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u04a1\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u04a2\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11"+ - "\1\u04a3\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\16\11\1\u04a4\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u04a5\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u04a6\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\5\11\1\u04a7"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\4\11\1\u04a8\1\11\14\0"+ - "\17\11\2\0\1\10\25\11\35\0\1\u04a9\70\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\13\11\1\u04aa"+ - "\3\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u04ab\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\4\11\1\u04ac\1\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\12\11\1\u04ad\4\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\2\11\1\u04ae"+ - "\3\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\5\11\1\u04af\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u04b0\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u04b1\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\4\11\1\u04b2\1\u04b3\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\11\11\1\u04b4\13\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11"+ - "\1\u04b5\22\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u04b6\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u0142\14\0\17\11"+ - "\2\0\1\10\2\11\1\u04b7\1\11\1\u04b8\6\11\1\u04b9"+ - "\11\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u04ba"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\4\11\1\u04bb\12\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u04bc\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u04bd\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u04be\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u04bf\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u04c0\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u04c1\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\2\11\1\u04c2\3\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11"+ - "\1\u04c3\14\0\17\11\2\0\1\10\25\11\77\u0429\1\u02ca"+ - "\26\u0429\36\0\1\u04c4\147\0\1\u04c5\103\0\1\u04c6\154\0"+ - "\1\u04c7\121\0\1\u04c8\106\0\1\u02ca\77\0\1\u02ca\152\0"+ - "\1\u038b\121\0\1\u0392\151\0\1\u038b\102\0\1\u02ca\130\0"+ - "\1\u04c9\123\0\1\u04ca\151\0\1\u04cb\122\0\1\u04cc\61\0"+ - "\1\u04c7\171\0\1\u0430\50\0\5\u04cd\5\0\1\u04cd\10\0"+ - "\2\u04cd\1\0\2\u04cd\4\0\2\u04cd\20\0\1\u04cd\1\0"+ - "\1\u04cd\3\0\1\u04cd\12\0\1\u04cd\17\0\2\u04cd\2\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u04ce\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u04cf\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u04d0"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u04d1\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u0198\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u04d2\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\12\11\1\u04d3\4\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u04d4"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u04d5\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u04d6\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u04d7\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u04d8\10\11\2\0\1\10\25\11"+ - "\3\0\5\173\5\0\1\173\10\0\2\173\1\0\2\173"+ - "\4\0\2\173\20\0\1\173\1\0\1\173\3\0\1\173"+ - "\12\0\1\173\17\0\2\173\2\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u04d9\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u04da"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\6\0\1\u04db"+ - "\16\0\1\u04dc\1\u04dd\2\0\1\u04de\74\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\2\11\1\u04df\3\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u04e0\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u04e1\15\11\2\0\1\10\25\11\32\0\1\u04e2\34\0"+ - "\1\u04e3\36\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u04e4\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u04e5\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u04e6\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u04e7"+ - "\1\u04e8\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u04e9\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0341\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u04ea\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\2\11\1\u0341\14\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u04eb\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\4\11\1\u04ec\1\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\7\11\1\u04ed\7\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u04ee\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u04ef\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\4\11\1\u04f0\1\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u04f1\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u04f2"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u04f3\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\14\11\1\u0190\10\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u0165\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\13\11\1\u0142\3\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\5\11\1\u04f4\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\u04f5\16\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11"+ - "\1\u04f6\14\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\3\11\1\303\13\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u04f7\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u04f8\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u019f\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u016d\12\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u04f9\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u04fa\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u04fb\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u04fc\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u04fd\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u04fe\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u016f\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\5\11\1\u0324\1\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\15\11"+ - "\1\u04ff\7\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0500\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\5\11\1\u023a\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\15\11\1\u0300\7\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0501\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\4\11\1\u0502\12\11\2\0\1\10\25\11\3\10"+ - "\5\330\1\0\2\10\1\0\1\10\1\330\1\0\2\10"+ - "\4\0\1\10\2\330\1\10\2\330\2\0\2\10\2\330"+ - "\2\10\14\0\2\10\1\330\1\10\1\330\3\10\1\330"+ - "\6\10\2\0\2\10\1\330\17\10\2\330\3\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u0212\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0503"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u0230\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u0504\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u01bc"+ - "\14\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0505\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u0506\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u0507\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u0508\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\u0509\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u050a\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\320\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u050b\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u050c"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\1\u050d\24\11\1\10\5\11\1\u050e\1\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\1\u039a"+ - "\5\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11"+ - "\1\u050f\2\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0510\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u0511\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u0512"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0513\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0410"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\3\11\1\u0514\13\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u0515\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0516\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0517\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0518"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u0519\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u051a\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u051b\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\5\11\1\u051c\1\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\13\11"+ - "\1\u051d\1\11\1\u051e\7\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u051f\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\4\11\1\u0520\1\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\1\11\1\u0521\1\u0522"+ - "\2\11\1\u0523\3\11\1\u0524\13\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\14\11\1\u02b6\2\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u0525\15\11\2\0\1\10\25\11\103\0"+ - "\1\u0526\3\0\1\u0527\16\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0484\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0528"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\1\u0529\5\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11"+ - "\1\u052a\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\15\11\1\u052b\7\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u052c\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u052d"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u052e\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\4\11\1\u052f\1\u04a7\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\230\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\11\11\1\u0530\13\11"+ - "\36\0\1\u0531\67\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u0532"+ - "\1\11\2\0\6\11\14\0\15\11\1\u0533\1\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u0534\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0535\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0536\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\4\11\1\u01c4\1\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\10\11\1\u0537\6\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\12\11\1\u0538\4\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u0539\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u053a\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u053b"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u053c\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u053d\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u053e"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u053f\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0540\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\u0541"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\4\11\1\u0542\1\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\16\11\1\u0543\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0544\5\11\1\u0545\2\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\1\11\1\u0546\4\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u0547\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\14\11\1\u0548\2\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\12\11\1\u0549\4\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u054a\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u054b\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\u054c\16\11\2\0\1\10"+ - "\25\11\40\0\1\u054d\145\0\1\u054e\132\0\1\u054f\100\0"+ - "\1\u0550\127\0\1\u0551\114\0\1\u0552\35\0\1\u0553\73\0"+ - "\1\u038b\130\0\1\u0554\123\0\1\u0555\72\0\5\u0127\5\0"+ - "\1\u0127\10\0\2\u0127\1\0\2\u0127\4\0\2\u0127\20\0"+ - "\1\u0127\1\0\1\u0127\3\0\1\u0127\12\0\1\u0127\17\0"+ - "\2\u0127\2\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\1\0\1\u0556"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0162\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\4\11\1\u0557\12\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0558"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\2\11\1\u0559"+ - "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u055a"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u055b\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\14\11\1\u055c\2\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u055d\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u055e\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u055f\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\4\11\1\u0560\20\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\5\11\1\u0561\11\11\2\0\1\10\25\11"+ - "\40\0\1\u0562\125\0\1\u0563\76\0\1\u0564\201\0\1\u0565"+ - "\40\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0566"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u0567\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u0568\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\14\0\1\u0569\150\0"+ - "\1\u0569\66\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u056a\13\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\14\11\1\u056b"+ - "\2\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u056c\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u056d"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\2\11\1\u056e\3\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u02fa"+ - "\1\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u056f\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0570\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u0571\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0572\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u0573\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u0574"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u0575\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0576"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\4\11\1\u0577\12\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0578"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\5\11\1\u0579\17\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\4\11\1\u057a\20\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u057b\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u057c\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u03d7\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u057d"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u057e\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0167\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\u0142\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u057f\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0580\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0581"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u0582\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\1\11\1\u0583"+ - "\4\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11"+ - "\1\u0584\12\11\2\0\1\10\25\11\1\10\5\11\1\u0585"+ - "\1\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\1\u03e6\5\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\2\11\1\u0586\6\11\1\u0587\6\11\1\106"+ - "\4\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0538"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0588\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\u0410\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0589\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\16\11\1\u058a\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u058b"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u058c\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u027e\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\4\11\1\u058d\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u058e\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u058f\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u0590\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\5\11\1\u023a\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\11\11\1\u0591\13\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\4\11"+ - "\1\u02fd\20\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0592"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\7\11\1\u0593\7\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0594\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0595\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u0596\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0597"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\2\11\1\u0598\3\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\13\11\1\u0599\11\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u059a\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\7\11\1\u059b\7\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u059c\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\4\11\1\u059d\1\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\2\11"+ - "\1\u059e\3\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u059f"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\2\11\1\u05a0\14\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u05a1\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u05a2\4\11"+ - "\14\0\4\11\1\u05a3\12\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u05a4\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\u05a5\16\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u05a6"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u05a7\12\11\2\0\1\10"+ - "\25\11\35\0\1\u05a8\104\0\1\u05a9\111\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u05aa\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u05ab\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\16\11"+ - "\1\u0142\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u05ac\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u05ad\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u05ae\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\2\11\1\u05af\14\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u05b0"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u05b1\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\73\0\1\u05b2\32\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u05b3\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05b4"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u05b5\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u05b6\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\1\11\1\u05b7\23\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u05b8\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0162"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\4\11\1\u05b9\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u05ba\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u05bb\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u05bc\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u05bd"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u05be\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u05bf\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11"+ - "\1\u05c0\13\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u05c1\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\1\u05c2\5\11\2\0\6\11"+ - "\14\0\10\11\1\u05c3\6\11\2\0\1\10\4\11\1\u05c4"+ - "\20\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\15\11\1\u02fc\1\11\2\0\1\10\4\11\1\u02fd\20\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u04fc\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\15\11\1\u02ef\1\11\2\0"+ - "\1\10\15\11\1\u0300\7\11\1\10\7\11\1\0\1\u05c5"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u05c6\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\20\11\1\106"+ - "\4\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05c7"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u05c8\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u05c9\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\11\11\1\u0304\13\11\41\0\1\u0429\121\0\1\u0429"+ - "\125\0\1\u05ca\131\0\1\u02ca\124\0\1\u05cb\152\0\1\u05cc"+ - "\100\0\1\u05cd\122\0\1\u05ce\163\0\1\u02ca\60\0\1\u04dd"+ - "\77\0\1\10\7\11\1\0\1\u05cf\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u05d0\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u05d1\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u05d2\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\1\0\1\u05d3\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\15\11\1\u02fc\1\11\2\0"+ - "\1\10\17\11\1\u0301\5\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u05d4\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u05d5\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u05d6\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u05d7\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\10\11\1\u05d8"+ - "\2\11\1\u03ce\11\11\35\0\1\u05d9\104\0\1\u05da\176\0"+ - "\1\u05db\101\0\1\u05dc\64\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u0543\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\u028f\16\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u05dd\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\63\0\1\u05de\42\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\11\11"+ - "\1\u05df\13\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\4\11\1\u02fd\6\11\1\u02ff"+ - "\11\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\13\11\1\u05e0\3\11\2\0\1\10\25\11\1\10\5\11"+ - "\1\u05e1\1\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\1\0\1\u05e2\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u05e3\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u05e4\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\2\11\1\u0423\22\11\1\10\7\11\1\0\1\u05e5\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u05e6\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u05e7\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u03b2"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\1\u0269\24\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\4\11\1\u05e8\20\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\16\11\1\u0162\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05e9"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0142\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\u05ea\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\11\11\1\u05eb"+ - "\5\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\1\u046a\24\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\303"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\u05ec\16\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\4\11\1\u05ed\1\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u05ee\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u05ef"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\u05f0\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05f1"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u05f2\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u05f3\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u05f4\1\u05f5"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\4\11\1\u0162\12\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u05f6\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u05f7\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\11\1\u05f8\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0457"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u05f9\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\11\1\u05fa\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\2\11\1\u05fb\3\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u05fc\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u05fd\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u05fe\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u05ff\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u0162"+ - "\14\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0600\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\14\11\1\u0601\2\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0602\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u0603\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\11\1\u0604\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u0605\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0606\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\2\11\1\u0607\3\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u0608\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\14\11\1\u0609\10\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u060a\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\1\u060b\5\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u060c\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\13\11\1\u060d\3\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u060e"+ - "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u060f\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0610"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u0611\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u03a8\2\11\14\0\17\11\2\0\1\10\25\11\40\0"+ - "\1\u0612\150\0\1\u0613\42\0\1\10\7\11\1\0\1\u0180"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u0614\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0615\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0616\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0617\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\4\11\1\u0618\20\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0619\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u061a\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u061b"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u061c\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u061d\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u061e"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u061f\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\11"+ - "\1\u0620\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u0621\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u0622\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0623"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\u0624\16\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0625\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u035c\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0626\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\u0627\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u0628\13\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u03c7"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u0629\2\11\14\0\1\11\1\u062a\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\u0230\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u062b"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u0344\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\4\11\1\u062c\20\11\1\10\5\11"+ - "\1\u062d\1\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u0513\5\11\14\0\17\11\2\0\1\10\25\11\67\0"+ - "\1\u062e\53\0\1\u062f\147\0\1\u0630\123\0\1\u0631\127\0"+ - "\1\u0632\66\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u0633\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0410\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\3\11\1\u0634\13\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0635\14\0"+ - "\17\11\2\0\1\10\25\11\103\0\1\u0636\3\0\1\u0637"+ - "\16\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\4\11\1\u0262\12\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\11\11\1\u0638\13\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\2\11\1\u0639\14\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u063a\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\37\0\1\u063b\160\0"+ - "\1\u063c\74\0\1\u063d\121\0\1\u063e\70\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\4\11\1\u063f\12\11"+ - "\2\0\1\10\25\11\60\0\1\u063d\45\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u05f4\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u0640\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\4\11\1\u0641\1\11\14\0"+ - "\17\11\2\0\1\10\25\11\26\0\1\u0642\77\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u0643\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\3\11\1\u01d0\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0594"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u04ef\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0644"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u0645\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0646"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\2\11\1\u0647\14\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u0648\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u01d1\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u0649\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11"+ - "\1\u064a\13\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u0544\10\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u064b\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u064c\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u064d\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0142\5\11\14\0\17\11"+ - "\2\0\1\10\3\11\1\u064e\21\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u064f\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"; - - private static final String ZZ_TRANS_PACKED_1 = - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\3\11\1\u0650\13\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\u0651\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0652"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0653\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\5\11\1\u0654\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\4\11\1\u0655\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u0656\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u0657"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u0658\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0659\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\23\11"+ - "\1\u0355\1\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\2\11\1\u065a\14\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\2\11\1\u065b\22\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u065c\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u065d"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\1\11\1\u065e\4\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\7\11\1\u065f\7\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0660\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0661\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u0662"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0663\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\3\11\1\u0664\13\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u0665"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\7\11\1\u0666\7\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u05bb\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0667\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0538\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u0668\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u0669\10\11\2\0\1\10\25\11\35\0"+ - "\1\u066a\130\0\1\u066b\65\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u066c\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0623\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\2\11\1\u066d\14\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\2\11\1\u066e\14\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\13\11\1\u0162\11\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\7\11\1\u066f\7\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\u0670"+ - "\16\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\7\11\1\u0671\7\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\11\1\u0672\15\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u0162\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u04cf\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0673\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\4\11\1\u0674\1\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\1\u0675\24\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\2\11\1\352\14\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u0676\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u0622\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u0677\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u0678\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u0679\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u067a\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u067b\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u032c\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u067c\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u067d"+ - "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u067e\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\60\0\1\u067f\104\0\1\u0680\127\0"+ - "\1\u0632\124\0\1\u02ca\146\0\1\u02ca\44\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0681\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\3\11\1\u04c2\13\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0682\10\11\2\0\1\10\25\11\11\0\1\u0683\130\0"+ - "\1\u0684\111\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u0685\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u0686\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0687\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\72\0\1\u0688\44\0\1\u0689\175\0\1\u068a\103\0"+ - "\1\u068b\66\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u068c\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\5\11\1\u068d\1\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u068e\15\11\2\0\1\10"+ - "\25\11\65\0\1\u068f\40\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\4\11"+ - "\1\u0690\1\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0294\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\4\11"+ - "\1\u0691\20\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0692\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u0693\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\7\11\1\u0694"+ - "\15\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0695"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u0696\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\2\11\1\u0697\14\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0698\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0699\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\u069a\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\u069b\16\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\1\0\1\u069c\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\3\11\1\u05c9\13\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u069d\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u069e\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u069f\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u06a0\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u06a1\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u06a2\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u06a3\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\1\0\1\u06a4\5\11\1\u06a5\14\0\15\11\1\u06a6\1\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\5\11\1\u023a"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\4\11\1\u0618"+ - "\20\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u06a7\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u06a8\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\5\11\1\u06a9\17\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u06aa"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\15\11\1\u02fc\1\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\4\11\1\u06ab\12\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u06ac\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u0162\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u04cf"+ - "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u06ad\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\4\11\1\u06ae\12\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u06af\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\5\11\1\u06b0\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u06b1\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u06b2\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\37\0\1\u05b2\77\0\1\u06b3\114\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u06b4\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\5\11\1\u06b5\1\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\5\11"+ - "\1\u06b6\2\0\6\11\14\0\17\11\2\0\1\10\13\11"+ - "\1\u06b7\11\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\1\u06b8\5\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u06b9\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u06ba\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u06bb\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\u06bc\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u06bd\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u06be\15\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u06bf\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u04cf\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\7\11\1\u06c0\7\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11"+ - "\1\u06c1\7\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11"+ - "\1\u06c2\5\11\1\u06c3\14\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u06c4\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0162\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\2\11\1\u06c5\14\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u06c6\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\4\11\1\u06c7\1\11\14\0"+ - "\17\11\2\0\1\10\25\11\63\0\1\u0429\77\0\1\u0555"+ - "\70\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u06c8"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u06c9\15\11"+ - "\2\0\1\10\25\11\27\0\1\u06ca\163\0\1\u06cb\40\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11"+ - "\1\u06cc\14\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\5\11\1\u06cd\11\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u0544\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\60\0\1\u04a9\105\0"+ - "\1\u06ce\124\0\1\u06cf\124\0\1\u06d0\67\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\1\11\1\u06d1\4\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u06d2\15\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0513\14\0"+ - "\17\11\2\0\1\10\25\11\72\0\1\u06d3\33\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\4\11\1\u06d4\1\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\1\u06d5\1\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\11\1\u06d6\4\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\5\11\1\u0142\11\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\1\11\1\u06d7\15\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u06d8"+ - "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u06d9\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u06da"+ - "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\4\11\1\u06db\1\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\2\11\1\u06dc\3\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u06dd\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u06de\15\11\2\0"+ - "\1\10\25\11\103\0\1\u06df\22\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\u0341"+ - "\24\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u06e0"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\11\11\1\u0410\5\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\15\11\1\u0300\7\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\13\11"+ - "\1\u06e1\3\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\13\11\1\u0341\3\11\2\0"+ - "\1\10\25\11\114\0\1\u06e2\11\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\1\0\1\u06e3\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u06e4"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u06e5\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\352\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\1\u06e6\16\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u06e7\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\u0162\16\11\2\0"+ - "\1\10\25\11\1\10\5\11\1\u06e8\1\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u06e9\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u06ea\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u06eb\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\352\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\2\11\1\u06ec\14\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u06ed\15\11"+ - "\2\0\1\10\25\11\72\0\1\u06ee\33\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u06ef\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11"+ - "\1\u06f0\1\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u06f1\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\3\11\1\u06f2\13\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u06f3\10\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u06f4\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03ad"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u06f5\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u06f6"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\14\11\1\u06f7\2\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\u06f8\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\2\11\1\u06ea\3\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\17\11\1\u0301\5\11"+ - "\1\10\5\11\1\u06f9\1\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\4\11\1\u06fa\1\u023a"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\u06fb\5\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u06fc\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\2\11\1\u06fd\22\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u06fe\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u06ff\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\2\11\1\u0700\3\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u0701\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0162"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\42\0\1\u0702\146\0"+ - "\1\u0703\42\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u0704\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\13\11\1\u03ce\11\11\72\0\1\u0705\71\0\1\u05b2"+ - "\154\0\1\u0706\40\0\1\10\7\11\1\0\1\u0707\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\u0708\1\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\67\0\1\u0709\36\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u070a\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u070b\10\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\15\11\1\u070c\7\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u052a\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u070d"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u070e\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u070f\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u02e1"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u045c\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0710"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\2\11\1\u0410\14\11\2\0"+ - "\1\10\25\11\65\0\1\u0711\40\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\7\11\1\u0712\7\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\u0713\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\15\0\1\u0714\212\0"+ - "\1\u0715\23\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u0716\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u0717\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u0718\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u0719\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u071a\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u071b\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\4\11\1\u0538\1\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\5\11\1\u071c\1\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u071d"+ - "\1\u023a\2\0\6\11\14\0\17\11\2\0\1\10\15\11"+ - "\1\u071e\1\11\1\u071f\5\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\2\11\1\u0522"+ - "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u06ec"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\57\0\1\u0720"+ - "\46\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0721"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0722\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\4\11\1\u0723\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0724\3\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\1\u0725\1\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\5\11\1\u02dd\1\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u071d"+ - "\1\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\1\11\1\u0726\15\11\1\u071f\5\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u0538"+ - "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\2\11\1\u0727"+ - "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u06de"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u03d9\1\11\14\0\1\11\1\u0728"+ - "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u0729\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u072a"+ - "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\4\11\1\u072b\1\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\u072c\5\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u072d\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\3\11\1\u072e\2\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u072f"+ - "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u035c\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\37\0\1\u0730\146\0\1\u0731\45\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\1\11\1\u0732\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\37\0\1\u0733\102\0\1\u0734\111\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u0735\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\12\11\1\u0736\4\11\2\0\1\10\25\11"+ - "\37\0\1\u0737\66\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\13\11\1\u04fc\3\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0738\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\11\1\u0739\4\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u073a\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\14\11\1\u073b\2\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\1\0\1\u073c"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\u073d\5\11\14\0\17\11\2\0"+ - "\1\10\25\11\66\0\1\u073e\37\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\2\11\1\u05c4\3\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u073f\4\11\14\0\17\11\2\0\1\10\25\11\25\0"+ - "\1\u0740\41\0\1\u0741\15\0\1\u0742\10\0\1\u0743\36\0"+ - "\1\u0744\76\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\2\11\1\u0745\14\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u0746"+ - "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0747\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\2\11\1\u0662\14\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0748\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u0749\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u074a\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u074b\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11"+ - "\1\u074c\4\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u074d"+ - "\10\11\2\0\1\10\25\11\35\0\1\u074e\70\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\1\11\1\u0662\4\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\u074f\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u0750\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u0751\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\16\11\1\u0410\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u05a2\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u0752\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0753\1\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0754\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0755"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0756\10\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u0757\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\1\0\1\u0758\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\1\u0759\5\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11"+ - "\1\u075a\14\11\2\0\1\10\25\11\35\0\1\u05b2\151\0"+ - "\1\u075b\44\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\6\11\1\u075c\10\11\2\0\1\10\25\11\74\0"+ - "\1\u075d\123\0\1\u075e\33\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\2\11\1\u02e1\14\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u075f"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\63\0\1\u0760"+ - "\42\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\6\11\1\u0761\10\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0762\15\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u071d"+ - "\1\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\10\11\1\u05d8\14\11\6\0\1\u0763\117\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11"+ - "\1\u0764\10\11\2\0\1\10\25\11\62\0\1\u0765\43\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0335\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\60\0\1\u0766\125\0"+ - "\1\u0767\61\0\1\u0730\147\0\1\u0768\131\0\1\u0769\63\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11"+ - "\1\u0344\15\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u076a\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u076b"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\5\11\1\u076c\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u076d\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u0442\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11"+ - "\1\u076e\14\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\3\11\1\u076f\2\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11"+ - "\1\u0770\3\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u0771"+ - "\14\11\2\0\1\10\25\11\32\0\1\u0772\73\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\5\11\1\u0773\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\2\11\1\u0774\14\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0775\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\u0538"+ - "\24\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u0776"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\4\11\1\u01d1\1\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11"+ - "\1\u0777\2\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u03c0"+ - "\14\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\2\11\1\u0778\3\11\14\0\17\11\2\0\1\10"+ - "\25\11\74\0\1\u0779\31\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\1\11\1\u077a\15\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0235"+ - "\2\11\14\0\17\11\2\0\1\10\25\11\37\0\1\u077b"+ - "\66\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\4\11\1\u0751\12\11\2\0\1\10\25\11\40\0\1\u077c"+ - "\177\0\1\u077d\13\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\1\11\1\u077e\4\11\14\0\17\11\2\0\1\10\25\11"+ - "\65\0\1\u077f\40\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\3\11\1\u0780\2\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\5\11"+ - "\1\247\11\11\2\0\1\10\25\11\60\0\1\u0781\45\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0782\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\41\0\1\u0783\100\0"+ - "\1\u0784\122\0\1\u0785\201\0\1\u0786\75\0\1\u0787\70\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u0788\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\2\11\1\u0789\14\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u078a"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u04a6\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u078b"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\13\11\1\u0662\3\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\4\11\1\u078c\12\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\1\u06ab\5\11\14\0"+ - "\17\11\2\0\1\10\25\11\64\0\1\u078d\41\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0"+ - "\1\10\10\11\1\u078e\14\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\6\11\1\u078f\10\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0635\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\u0790\5\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\7\11\1\u0791\7\11\2\0\1\10\25\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\3\11\1\u0792\2\11\14\0\17\11"+ - "\2\0\1\10\25\11\37\0\1\u0793\66\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u0794\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\26\0\1\u0795\54\0\1\u0796\36\0"+ - "\1\u0797\171\0\1\u0798\45\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\5\11\1\u0799\14\0\17\11\2\0\1\10\25\11"+ - "\66\0\1\u079a\37\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u079b\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\14\0\1\u079c\111\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\4\11\1\u079d\1\11\14\0\17\11\2\0\1\10\25\11"+ - "\37\0\1\u079e\160\0\1\u05b2\62\0\1\u079f\164\0\1\u07a0"+ - "\75\0\1\u07a1\67\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\6\11\1\u07a2\10\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\1\u049b\5\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\5\11\1\u07a3\1\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\17\11\2\0\1\10\15\11\1\u07a4\7\11\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\6\11\1\u05d2\10\11"+ - "\2\0\1\10\25\11\63\0\1\u07a5\42\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\2\11\1\u07a6\3\11\14\0\17\11"+ - "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\1\u07a7\1\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10"+ - "\1\11\4\0\6\11\2\0\3\11\1\u07a8\2\11\14\0"+ - "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\1\0\1\u07a9\6\11\14\0\17\11\2\0\1\10\25\11"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11"+ - "\1\u07aa\7\11\2\0\1\10\25\11\61\0\1\u07ab\44\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\1\0\1\u07ac\6\11\14\0"+ - "\17\11\2\0\1\10\25\11\41\0\1\u07ad\147\0\1\u07ae"+ - "\134\0\1\u066a\114\0\1\u066a\44\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u07af\10\11\2\0"+ - "\1\10\25\11\40\0\1\u07b0\65\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u07b1\10\11\2\0"+ - "\1\10\25\11\35\0\1\u07b2\70\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\1\u03e6\5\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\25\11\32\0\1\u035e\52\0\1\u07b3\61\0\1\u066a\151\0"+ - "\1\u07b4\100\0\1\u07b5\65\0\1\10\7\11\1\0\1\11"+ - "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11"+ - "\2\0\6\11\14\0\4\11\1\u04fc\12\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0"+ - "\1\u07b6\16\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\1\11\1\u07b7\15\11\2\0"+ - "\1\10\25\11\37\0\1\u07b8\66\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\1\11\1\u07b9\4\11\14\0\17\11\2\0"+ - "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11"+ - "\14\0\13\11\1\u0162\3\11\2\0\1\10\25\11\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u07ba\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\117\0\1\u07bb\6\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\1\0\1\u07bc\6\11\14\0\17\11\2\0"+ - "\1\10\25\11\65\0\1\u07bd\154\0\1\u07be\71\0\1\u07bf"+ - "\103\0\1\u07c0\67\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\1\11\1\u07c1\15\11\2\0\1\10\25\11"+ - "\41\0\1\u07c2\64\0\1\10\7\11\1\0\1\11\1\147"+ - "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\1\u07c3\24\11\36\0"+ - "\1\u07c4\155\0\1\u07c5\74\0\1\u07c6\153\0\1\u07c7\42\0"+ - "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\3\11\1\u07c8\2\11"+ - "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\6\11\14\0\6\11\1\u0676\10\11\2\0"+ - "\1\10\25\11\62\0\1\u07c9\43\0\1\10\7\11\1\0"+ - "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0"+ - "\6\11\2\0\5\11\1\u03eb\14\0\17\11\2\0\1\10"+ - "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\1\u04fc\5\11"+ - "\14\0\17\11\2\0\1\10\25\11\37\0\1\u07ca\204\0"+ - "\1\u07cb\45\0\1\u07cc\104\0\1\u07cd\173\0\1\u07ce\127\0"+ - "\1\u07cf\40\0\1\10\7\11\1\0\1\11\1\147\1\0"+ - "\1\u07d0\1\11\1\0\1\10\1\11\4\0\6\11\2\0"+ - "\6\11\14\0\17\11\2\0\1\10\25\11\25\0\1\u07d1"+ - "\100\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11"+ - "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u07d2"+ - "\3\11\14\0\17\11\2\0\1\10\25\11\60\0\1\u07d3"+ - "\133\0\1\u07d4\124\0\1\u07d5\75\0\1\u07d6\70\0\1\10"+ - "\7\11\1\0\1\11\1\147\1\0\1\u02ee\1\11\1\0"+ - "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11"+ - "\2\0\1\10\25\11\35\0\1\u07d7\125\0\1\u07d8\101\0"+ - "\1\u07ca\153\0\1\u07d9\113\0\1\u0740\41\0\1\u0741\15\0"+ - "\1\u0742\115\0\1\u05b2\112\0\1\u0730\43\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10"+ - "\11\11\1\u03ff\13\11\40\0\1\u07da\65\0\1\10\7\11"+ - "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11"+ - "\4\0\6\11\2\0\1\11\1\u0410\4\11\14\0\17\11"+ - "\2\0\1\10\25\11\41\0\1\u05b2\75\0\1\u07db\205\0"+ - "\1\u066a\61\0\1\u07dc\41\0\1\u07dd\13\0\1\u07de\1\0"+ - "\1\u07df\105\0\1\u07e0\71\0\1\u07e1\157\0\1\u07e2\135\0"+ - "\1\u07e3\67\0\1\u07e4\150\0\1\u07e5\125\0\1\u07e6\127\0"+ - "\1\u07e7\57\0\1\u07e8\171\0\1\u07e9\132\0\1\u07ea\75\0"+ - "\1\u07eb\150\0\1\u07ec\105\0\1\u07ed\101\0\1\u07ee\122\0"+ - "\1\u07ef\155\0\1\u07f0\121\0\1\u07f1\104\0\1\u07f2\150\0"+ - "\1\u07f3\122\0\1\u07f4\102\0\1\u07f5\143\0\1\u07f6\170\0"+ - "\1\u07f1\62\0\1\u07f7\163\0\1\u07f8\143\0\1\u07de\132\0"+ - "\1\u07f9\56\0\1\u07fa\172\0\1\u07fb\54\0\1\u07fc\131\0"+ - "\1\u07fd\125\0\1\u07fe\121\0\1\u07ff\130\0\1\u0800\146\0"+ - "\1\u05b2\137\0\1\u0801\63\0\1\u0802\133\0\1\u029d\125\0"+ - "\1\u07f1\125\0\1\u0803\102\0\1\u0804\173\0\1\u066a\123\0"+ - "\1\u0805\103\0\1\u0806\150\0\1\u0807\102\0\1\u0808\127\0"+ - "\1\u0809\126\0\1\u068a\152\0\1\u05b2\74\0\1\u080a\150\0"+ - "\1\u06cf\45\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[172688]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\4\0\2\1\1\0\12\1\2\11\21\1\2\11\4\1"+ - "\1\11\35\1\1\11\5\1\1\11\10\1\1\11\6\1"+ - "\1\11\3\1\1\11\1\1\2\11\24\1\1\0\1\1"+ - "\1\0\7\1\2\0\1\11\54\1\2\0\122\1\2\0"+ - "\1\11\4\0\1\11\2\0\1\11\22\0\1\11\1\0"+ - "\1\1\2\0\2\11\3\1\1\0\14\1\2\11\3\1"+ - "\1\0\2\1\1\11\5\1\1\11\235\1\37\0\1\11"+ - "\2\0\1\11\15\1\1\11\1\1\1\0\5\1\1\11"+ - "\174\1\1\0\31\1\2\0\1\1\2\0\1\1\15\0"+ - "\1\11\12\0\1\1\1\0\1\11\16\1\1\0\167\1"+ - "\1\0\31\1\36\0\17\1\1\0\154\1\1\0\26\1"+ - "\23\0\14\1\1\0\2\1\1\0\3\1\1\0\114\1"+ - "\1\0\14\1\1\0\32\1\5\0\1\1\4\0\15\1"+ - "\4\0\3\1\2\0\102\1\2\0\11\1\1\0\33\1"+ - "\12\0\13\1\4\0\3\1\1\0\76\1\2\0\10\1"+ - "\1\11\27\1\5\0\4\1\1\0\5\1\4\0\1\1"+ - "\1\0\3\1\1\0\57\1\2\0\32\1\5\0\3\1"+ - "\2\0\3\1\4\0\3\1\1\0\47\1\2\0\23\1"+ - "\2\0\2\1\2\0\3\1\4\0\3\1\1\0\14\1"+ - "\1\0\7\1\1\0\16\1\1\0\26\1\2\0\2\1"+ - "\3\0\2\1\1\0\13\1\1\0\2\1\2\0\12\1"+ - "\1\0\23\1\2\0\1\1\2\0\2\1\1\0\7\1"+ - "\1\0\2\1\2\0\12\1\1\0\17\1\2\0\1\1"+ - "\2\0\2\1\1\0\4\1\1\0\1\1\1\0\1\1"+ - "\5\0\11\1\1\0\11\1\1\0\2\1\1\0\1\1"+ - "\2\0\1\1\1\0\2\1\1\0\1\1\5\0\10\1"+ - "\1\0\6\1\1\0\1\1\3\0\1\1\1\0\1\1"+ - "\1\0\1\1\5\0\5\1\1\0\5\1\1\0\1\1"+ - "\4\0\1\1\1\0\1\1\1\0\1\1\4\0\3\1"+ - "\1\0\3\1\1\0\1\1\4\0\1\1\1\0\1\1"+ - "\4\0\2\1\1\0\2\1\6\0\1\1\1\0\1\1"+ - "\4\0\1\1\7\0\1\1\1\0\1\1\30\0\1\1"+ - "\37\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[2058]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 3; + public static final int MULTILINE_STRING_DOUBLE = 4; + public static final int DOCCOMMENT = 2; + public static final int YYINITIAL = 0; + public static final int MLC = 1; + public static final int STRING_DOUBLE = 6; + public static final int MULTILINE_STRING_SINGLE = 5; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\22\1\21\1\0\1\22\1\16\22\0\1\22\1\53\1\13" + + "\1\17\1\20\1\53\1\55\1\10\2\44\1\24\1\46\1\45\1\33" + "\1\34\1\23\1\4\1\5\2\7\1\123\1\7\1\122\1\7\2\3" + + "\1\56\1\45\1\47\1\50\1\52\1\54\1\100\1\102\1\26\1\6" + "\1\67\1\32\1\31\1\117\1\110\1\105\1\125\1\1\1\25\1\112" + + "\1\113\1\114\1\116\1\121\1\74\1\103\1\106\1\107\1\111\1\120" + "\1\30\1\1\1\124\1\44\1\12\1\44\1\51\1\2\1\0\1\40" + + "\1\27\1\63\1\61\1\37\1\15\1\72\1\57\1\65\1\115\1\75" + "\1\41\1\66\1\14\1\60\1\62\1\104\1\36\1\42\1\35\1\11" + + "\1\71\1\70\1\64\1\73\1\101\1\76\1\51\1\77\1\43\uff81\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 = "\4\0\2\1\1\0\1\2\1\3\2\4\1\3\1\5" + "\1\3\1\6\2\3\1\2\1\7\1\10\2\11\5\3" + + "\1\11\7\3\1\11\1\12\1\3\6\11\13\3\1\13" + "\16\3\2\1\1\14\5\1\1\15\10\1\1\16\3\1" + "\1\17\2\1\1\20\2\1\1\21\1\22\1\23\1\24" + + "\1\25\1\2\2\26\1\27\1\4\1\26\1\27\2\26" + "\1\30\2\26\5\3\1\5\1\31\1\5\1\0\1\3" + "\1\0\7\3\2\0\1\32\1\33\1\11\37\3\1\34" + + "\12\3\2\0\1\11\3\3\1\34\7\3\3\34\1\35" + "\22\3\1\13\57\3\2\0\1\36\4\0\1\37\2\0" + "\1\40\22\0\1\17\1\0\1\41\2\0\1\21\1\23" + + "\1\2\1\4\1\27\1\0\2\30\1\4\1\30\10\3" + "\1\31\1\42\1\5\1\43\1\5\1\0\1\35\1\3" + "\1\44\5\3\1\45\1\46\65\3\1\34\13\3\1\47" + + "\30\3\1\2\54\3\1\35\24\3\37\0\1\50\2\0" + "\1\51\1\2\2\26\12\3\1\43\1\5\1\0\4\3" + "\1\35\1\52\1\35\3\3\1\35\5\3\1\35\2\3" + + "\1\47\4\3\2\35\6\3\1\53\5\3\1\35\54\3" + "\1\2\56\3\1\0\31\3\2\0\1\54\2\0\1\55" + "\15\0\1\56\12\0\1\57\1\0\1\41\1\2\2\3" + + "\1\35\11\3\1\5\1\0\1\34\42\3\1\34\20\3" + "\1\35\24\3\1\2\11\3\1\35\31\3\1\35\11\3" + "\1\0\31\3\36\0\1\2\15\3\1\5\1\0\4\3" + + "\1\35\5\3\1\35\27\3\1\60\31\3\1\35\1\2" + "\11\3\1\35\30\3\1\35\13\3\1\0\2\3\1\35" + "\10\3\1\35\12\3\23\0\14\3\1\0\2\3\1\0" + + "\3\3\1\0\45\3\1\35\2\3\1\2\43\3\1\0" + "\14\3\1\0\23\3\1\35\6\3\5\0\1\56\4\0" + "\1\35\14\3\4\0\3\3\2\0\102\3\2\0\11\3" + + "\1\0\20\3\1\35\12\3\12\0\4\3\1\35\6\3" + "\4\0\3\3\1\0\3\3\1\35\10\3\1\35\11\3" + "\1\35\47\3\2\0\10\3\1\35\27\3\5\0\4\3" + + "\1\0\2\3\1\35\2\3\4\0\1\3\1\0\3\3" + "\1\0\57\3\2\0\32\3\5\0\3\3\2\0\3\3" + "\4\0\3\3\1\0\1\35\14\3\1\35\10\3\1\35" + + "\5\3\1\35\12\3\2\0\15\3\1\35\5\3\2\0" + "\2\3\2\0\3\3\4\0\3\3\1\0\10\3\1\35" + "\3\3\1\0\1\3\1\35\2\3\1\35\2\3\1\0" + + "\1\35\15\3\1\0\14\3\1\35\3\3\1\35\5\3" + "\2\0\2\3\3\0\2\3\1\0\2\3\1\35\10\3" + "\1\0\2\3\2\0\12\3\1\0\23\3\2\0\1\3" + + "\2\0\2\3\1\0\5\3\1\35\1\3\1\0\2\3" + "\2\0\12\3\1\0\14\3\1\35\2\3\2\0\1\3" + "\2\0\2\3\1\0\4\3\1\0\1\3\1\0\1\3" + + "\5\0\11\3\1\0\11\3\1\0\2\3\1\0\1\3" + "\2\0\1\3\1\0\2\3\1\0\1\3\5\0\10\3" + "\1\0\6\3\1\0\1\3\3\0\1\3\1\0\1\3" + + "\1\0\1\3\5\0\5\3\1\0\3\3\1\35\1\3" + "\1\0\1\35\4\0\1\3\1\0\1\3\1\0\1\3" + "\4\0\3\3\1\0\3\3\1\0\1\35\4\0\1\3" + + "\1\0\1\3\4\0\2\3\1\0\2\3\6\0\1\3" + "\1\0\1\3\4\0\1\3\7\0\1\3\1\0\1\3" + "\30\0\1\35\37\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[2058]; + 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\126\0\254\0\u0102\0\u0158\0\u01ae\0\u0204\0\u025a" + + "\0\u02b0\0\u0306\0\u035c\0\u03b2\0\u0408\0\u045e\0\u04b4\0\u050a" + + "\0\u0560\0\u05b6\0\u05b6\0\u060c\0\u0662\0\u06b8\0\u070e\0\u0764" + + "\0\u07ba\0\u0810\0\u0866\0\u08bc\0\u0912\0\u0968\0\u09be\0\u0a14" + + "\0\u0a6a\0\u0ac0\0\u0b16\0\u0b6c\0\u05b6\0\u05b6\0\u0bc2\0\u0c18" + + "\0\u0c6e\0\u0cc4\0\u05b6\0\u0d1a\0\u0d70\0\u0dc6\0\u0e1c\0\u0e72" + + "\0\u0ec8\0\u0f1e\0\u0f74\0\u0fca\0\u1020\0\u1076\0\u10cc\0\u1122" + + "\0\u1178\0\u11ce\0\u1224\0\u127a\0\u12d0\0\u1326\0\u137c\0\u13d2" + + "\0\u1428\0\u147e\0\u14d4\0\u152a\0\u1580\0\u15d6\0\u162c\0\u1682" + + "\0\u05b6\0\u16d8\0\u172e\0\u1784\0\u17da\0\u1830\0\u05b6\0\u1886" + + "\0\u18dc\0\u1932\0\u1988\0\u19de\0\u1a34\0\u1a8a\0\u1ae0\0\u05b6" + + "\0\u1b36\0\u1b8c\0\u1be2\0\u1c38\0\u1c8e\0\u1ce4\0\u05b6\0\u1d3a" + + "\0\u1d90\0\u1de6\0\u05b6\0\u1e3c\0\u05b6\0\u05b6\0\u1e92\0\u1ee8" + + "\0\u1f3e\0\u1ee8\0\u1ee8\0\u1f94\0\u1fea\0\u2040\0\u2096\0\u20ec" + + "\0\u2142\0\u2198\0\u21ee\0\u2244\0\u229a\0\u22f0\0\u2346\0\u239c" + + "\0\u23f2\0\u2448\0\u249e\0\u24f4\0\u254a\0\u25a0\0\u25f6\0\u264c" + + "\0\u26a2\0\u26f8\0\u274e\0\u27a4\0\u27fa\0\u2850\0\u05b6\0\u28a6" + + "\0\u27fa\0\u28fc\0\u2952\0\u29a8\0\u29fe\0\u2a54\0\u2aaa\0\u2b00" + + "\0\u2b56\0\u2bac\0\u2c02\0\u2c58\0\u2cae\0\u2d04\0\u2d5a\0\u2db0" + + "\0\u2e06\0\u2e5c\0\u2eb2\0\u2f08\0\u2f5e\0\u2fb4\0\u300a\0\u3060" + + "\0\u30b6\0\u310c\0\u3162\0\u31b8\0\u320e\0\u3264\0\u32ba\0\u3310" + + "\0\u3366\0\u33bc\0\u3412\0\u3468\0\u34be\0\u3514\0\u356a\0\u35c0" + + "\0\u3616\0\u366c\0\u36c2\0\u3718\0\u06b8\0\u376e\0\u37c4\0\u381a" + + "\0\u3870\0\u38c6\0\u391c\0\u3972\0\u39c8\0\u3a1e\0\u3a74\0\u3aca" + + "\0\u3b20\0\u3b76\0\u02b0\0\u3bcc\0\u3c22\0\u3c78\0\u3cce\0\u3d24" + + "\0\u3d7a\0\u3dd0\0\u3e26\0\u3e7c\0\u3ed2\0\u3f28\0\u3f7e\0\u3fd4" + + "\0\u402a\0\u4080\0\u40d6\0\u412c\0\u4182\0\u41d8\0\u422e\0\u4284" + + "\0\u42da\0\u4330\0\u4386\0\u43dc\0\u4432\0\u4488\0\u44de\0\u4534" + + "\0\u458a\0\u45e0\0\u4636\0\u468c\0\u46e2\0\u4738\0\u478e\0\u47e4" + + "\0\u483a\0\u4890\0\u48e6\0\u493c\0\u4992\0\u49e8\0\u4a3e\0\u4a94" + + "\0\u4aea\0\u4b40\0\u4b96\0\u4bec\0\u4c42\0\u4c98\0\u4cee\0\u4d44" + + "\0\u4d9a\0\u4df0\0\u4e46\0\u4e9c\0\u4ef2\0\u4f48\0\u4f9e\0\u4ff4" + + "\0\u504a\0\u50a0\0\u50f6\0\u514c\0\u51a2\0\u51f8\0\u524e\0\u52a4" + + "\0\u52fa\0\u05b6\0\u5350\0\u53a6\0\u53fc\0\u5452\0\u05b6\0\u54a8" + + "\0\u54fe\0\u05b6\0\u5554\0\u55aa\0\u5600\0\u5656\0\u56ac\0\u5702" + + "\0\u5758\0\u57ae\0\u5804\0\u585a\0\u58b0\0\u5906\0\u595c\0\u59b2" + + "\0\u5a08\0\u5a5e\0\u5ab4\0\u5b0a\0\u05b6\0\u5b60\0\u5bb6\0\u5c0c" + + "\0\u5c62\0\u05b6\0\u05b6\0\u5cb8\0\u5d0e\0\u5d64\0\u5dba\0\u5e10" + + "\0\u1ee8\0\u5e66\0\u5ebc\0\u5f12\0\u5f68\0\u5fbe\0\u6014\0\u606a" + + "\0\u60c0\0\u6116\0\u616c\0\u05b6\0\u05b6\0\u61c2\0\u249e\0\u6218" + + "\0\u626e\0\u02b0\0\u62c4\0\u05b6\0\u631a\0\u6370\0\u63c6\0\u641c" + + "\0\u6472\0\u05b6\0\u64c8\0\u651e\0\u6574\0\u65ca\0\u6620\0\u6676" + + "\0\u66cc\0\u6722\0\u6778\0\u67ce\0\u6824\0\u687a\0\u68d0\0\u6926" + + "\0\u697c\0\u69d2\0\u6a28\0\u6a7e\0\u6ad4\0\u6b2a\0\u6b80\0\u6bd6" + + "\0\u6c2c\0\u6c82\0\u6cd8\0\u6d2e\0\u6d84\0\u6dda\0\u6e30\0\u6e86" + + "\0\u6edc\0\u6f32\0\u6f88\0\u6fde\0\u7034\0\u708a\0\u70e0\0\u7136" + + "\0\u718c\0\u71e2\0\u7238\0\u728e\0\u72e4\0\u733a\0\u7390\0\u73e6" + + "\0\u743c\0\u7492\0\u74e8\0\u753e\0\u7594\0\u75ea\0\u7640\0\u7696" + + "\0\u76ec\0\u7742\0\u7798\0\u77ee\0\u7844\0\u789a\0\u78f0\0\u7946" + + "\0\u799c\0\u79f2\0\u7a48\0\u7a9e\0\u7af4\0\u7b4a\0\u7ba0\0\u7bf6" + + "\0\u7c4c\0\u7ca2\0\u7cf8\0\u7d4e\0\u7da4\0\u7dfa\0\u7e50\0\u7ea6" + + "\0\u7efc\0\u7f52\0\u7fa8\0\u7ffe\0\u8054\0\u80aa\0\u8100\0\u8156" + + "\0\u81ac\0\u8202\0\u8258\0\u82ae\0\u8304\0\u835a\0\u83b0\0\u8406" + + "\0\u845c\0\u84b2\0\u8508\0\u855e\0\u85b4\0\u860a\0\u8660\0\u86b6" + + "\0\u870c\0\u8762\0\u87b8\0\u880e\0\u8864\0\u88ba\0\u8910\0\u8966" + + "\0\u89bc\0\u8a12\0\u8a68\0\u8abe\0\u8b14\0\u8b6a\0\u8bc0\0\u8c16" + + "\0\u8c6c\0\u8cc2\0\u8d18\0\u8d6e\0\u8dc4\0\u8e1a\0\u8e70\0\u8ec6" + + "\0\u8f1c\0\u8f72\0\u8fc8\0\u901e\0\u9074\0\u90ca\0\u9120\0\u9176" + + "\0\u91cc\0\u9222\0\u9278\0\u92ce\0\u9324\0\u937a\0\u93d0\0\u9426" + + "\0\u947c\0\u94d2\0\u9528\0\u957e\0\u95d4\0\u962a\0\u9680\0\u96d6" + + "\0\u972c\0\u9782\0\u97d8\0\u982e\0\u9884\0\u98da\0\u9930\0\u9986" + + "\0\u99dc\0\u9a32\0\u9a88\0\u9ade\0\u9b34\0\u9b8a\0\u9be0\0\u9c36" + + "\0\u9c8c\0\u9ce2\0\u9d38\0\u9d8e\0\u9de4\0\u9e3a\0\u9e90\0\u9ee6" + + "\0\u9f3c\0\u9f92\0\u9fe8\0\ua03e\0\ua094\0\ua0ea\0\ua140\0\ua196" + + "\0\ua1ec\0\ua242\0\ua298\0\ua2ee\0\ua344\0\ua39a\0\u05b6\0\ua3f0" + + "\0\ua446\0\u05b6\0\ua49c\0\u5e66\0\ua4f2\0\ua548\0\ua59e\0\ua5f4" + + "\0\ua64a\0\ua6a0\0\ua6f6\0\ua74c\0\ua7a2\0\ua7f8\0\ua84e\0\u05b6" + + "\0\ua8a4\0\ua8fa\0\ua950\0\ua9a6\0\ua9fc\0\uaa52\0\uaaa8\0\u05b6" + + "\0\uaafe\0\uab54\0\uabaa\0\uac00\0\uac56\0\uacac\0\uad02\0\uad58" + + "\0\uadae\0\uae04\0\uae5a\0\uaeb0\0\uaf06\0\u02b0\0\uaf5c\0\uafb2" + + "\0\ub008\0\ub05e\0\ub0b4\0\ub10a\0\ub160\0\ub1b6\0\ub20c\0\ub262" + + "\0\ub2b8\0\ub30e\0\u02b0\0\ub364\0\ub3ba\0\ub410\0\ub466\0\ub4bc" + + "\0\ub512\0\ub568\0\ub5be\0\ub614\0\ub66a\0\ub6c0\0\ub716\0\ub76c" + + "\0\ub7c2\0\ub818\0\ub86e\0\ub8c4\0\ub91a\0\ub970\0\ub9c6\0\uba1c" + + "\0\uba72\0\ubac8\0\ubb1e\0\ubb74\0\ubbca\0\ubc20\0\ubc76\0\ubccc" + + "\0\ubd22\0\ubd78\0\ubdce\0\ube24\0\ube7a\0\ubed0\0\ubf26\0\ubf7c" + + "\0\ubfd2\0\uc028\0\uc07e\0\uc0d4\0\uc12a\0\uc180\0\uc1d6\0\uc22c" + + "\0\uc282\0\uc2d8\0\uc32e\0\uc384\0\uc3da\0\uc430\0\uc486\0\uc4dc" + + "\0\uc532\0\uc588\0\uc5de\0\uc634\0\uc68a\0\uc6e0\0\uc736\0\uc78c" + + "\0\uc7e2\0\uc838\0\uc88e\0\uc8e4\0\uc93a\0\uc990\0\uc9e6\0\uca3c" + + "\0\uca92\0\ucae8\0\ucb3e\0\ucb94\0\ucbea\0\ucc40\0\ucc96\0\uccec" + + "\0\ucd42\0\ucd98\0\ucdee\0\uce44\0\uce9a\0\ucef0\0\ucf46\0\ucf9c" + + "\0\ucff2\0\ud048\0\ud09e\0\ud0f4\0\ud14a\0\ud1a0\0\ud1f6\0\ud24c" + + "\0\ud2a2\0\ud2f8\0\ud34e\0\ud3a4\0\ud3fa\0\ud450\0\ud4a6\0\ud4fc" + + "\0\ud552\0\ud5a8\0\ud5fe\0\ud654\0\ud6aa\0\ud700\0\ud756\0\ud7ac" + + "\0\ud802\0\ud858\0\ud8ae\0\ud904\0\ud95a\0\ud9b0\0\uda06\0\uda5c" + + "\0\udab2\0\udb08\0\udb5e\0\udbb4\0\udc0a\0\udc60\0\udcb6\0\udd0c" + + "\0\udd62\0\uddb8\0\ude0e\0\ude64\0\udeba\0\udf10\0\udf66\0\udfbc" + + "\0\ue012\0\ue068\0\ue0be\0\ue114\0\ue16a\0\ue1c0\0\ue216\0\ue26c" + + "\0\ue2c2\0\u05b6\0\ue318\0\ue36e\0\ue3c4\0\ue41a\0\ue470\0\ue4c6" + + "\0\ue51c\0\ue572\0\ue5c8\0\ue61e\0\ue674\0\ue6ca\0\u05b6\0\ue720" + + "\0\ue776\0\ue7cc\0\ue822\0\ue878\0\ue8ce\0\ue924\0\ue97a\0\ue9d0" + + "\0\uea26\0\uea7c\0\uead2\0\ueb28\0\ueb7e\0\uebd4\0\uec2a\0\uec80" + + "\0\uecd6\0\ued2c\0\ued82\0\uedd8\0\uee2e\0\uee84\0\ueeda\0\uef30" + + "\0\uef86\0\uefdc\0\uf032\0\uf088\0\uf0de\0\uf134\0\uf18a\0\uf1e0" + + "\0\uf236\0\uf28c\0\uf2e2\0\uf338\0\uf38e\0\uf3e4\0\uf43a\0\uf490" + + "\0\uf4e6\0\uf53c\0\uf592\0\uf5e8\0\uf63e\0\uf694\0\uf6ea\0\uf740" + + "\0\uf796\0\u6e30\0\uf7ec\0\uf842\0\uf898\0\uf8ee\0\uf944\0\uf99a" + + "\0\uf9f0\0\ufa46\0\ufa9c\0\ufaf2\0\ufb48\0\ufb9e\0\ufbf4\0\ufc4a" + + "\0\ufca0\0\ufcf6\0\ufd4c\0\ufda2\0\ufdf8\0\ufe4e\0\ufea4\0\ufefa" + + "\0\uff50\0\uffa6\0\ufffc\1\122\1\250\1\376\1\u0154\1\u01aa" + + "\1\u0200\1\u0256\1\u02ac\1\u0302\1\u0358\1\u03ae\1\u0404\1\u045a" + + "\1\u04b0\1\u0506\1\u055c\1\u05b2\1\u0608\1\u065e\1\u06b4\1\u070a" + + "\1\u0760\1\u07b6\1\u080c\1\u0862\1\u08b8\1\u090e\1\u0964\1\u09ba" + + "\1\u0a10\1\u0a66\1\u0abc\1\u0b12\1\u0b68\1\u0bbe\1\u0c14\1\u0c6a" + + "\1\u0cc0\1\u0d16\1\u0d6c\1\u0dc2\1\u0e18\1\u0e6e\1\u0ec4\1\u0f1a" + + "\1\u0f70\1\u0fc6\1\u101c\1\u1072\1\u10c8\1\u111e\1\u1174\1\u11ca" + + "\1\u1220\1\u1276\1\u12cc\1\u1322\1\u1378\1\u13ce\1\u1424\1\u147a" + + "\1\u14d0\1\u1526\1\u157c\1\u15d2\1\u1628\1\u167e\1\u16d4\1\u172a" + + "\1\u1780\1\u17d6\1\u182c\1\u1882\1\u18d8\1\u192e\1\u1984\1\u19da" + + "\1\u1a30\1\u1a86\1\u1adc\1\u1b32\1\u1b88\1\u1bde\1\u1c34\1\u1c8a" + + "\0\udd62\1\u1ce0\0\ude64\1\u1d36\1\u1d8c\1\u1de2\1\u1e38\1\u1e8e" + + "\1\u1ee4\1\u1f3a\1\u1f90\1\u1fe6\1\u203c\1\u2092\1\u20e8\1\u213e" + + "\1\u2194\1\u21ea\1\u2240\1\u2296\1\u22ec\1\u2342\1\u2398\1\u23ee" + + "\1\u2444\1\u249a\1\u24f0\0\ue674\1\u2546\1\u259c\1\u25f2\1\u2648" + + "\1\u269e\1\u26f4\1\u274a\1\u27a0\1\u27f6\1\u284c\1\u28a2\1\u28f8" + + "\1\u294e\1\u29a4\1\u29fa\1\u2a50\1\u2aa6\1\u2afc\1\u2b52\1\u2ba8" + + "\1\u2bfe\1\u2c54\1\u2caa\1\u2d00\1\u2d56\1\u2dac\0\u3bcc\1\u2e02" + + "\1\u2e58\1\u2eae\1\u2f04\1\u2f5a\1\u2fb0\1\u3006\1\u305c\1\u30b2" + + "\1\u3108\1\u315e\1\u31b4\1\u320a\1\u3260\1\u32b6\1\u330c\1\u3362" + + "\1\u33b8\1\u340e\1\u3464\1\u34ba\1\u3510\1\u3566\1\u35bc\0\u02b0" + + "\1\u3612\1\u3668\1\u36be\1\u3714\1\u376a\1\u37c0\1\u3816\1\u386c" + + "\1\u38c2\1\u3918\1\u396e\1\u39c4\1\u3a1a\1\u3a70\1\u3ac6\1\u3b1c" + + "\1\u3b72\1\u3bc8\1\u3c1e\1\u3c74\1\u3cca\1\u3d20\1\u3d76\1\u3dcc" + + "\1\u3e22\1\u3e78\1\u3ece\1\u3f24\1\u3f7a\1\u3fd0\1\u4026\1\u407c" + + "\1\u40d2\1\u4128\1\u417e\1\u41d4\1\u422a\1\u4280\1\u42d6\1\u432c" + + "\1\u4382\1\u43d8\1\u442e\1\u4484\1\u44da\1\u4530\1\u4586\1\u45dc" + + "\1\u4632\1\u4688\1\u46de\1\u4734\1\u478a\1\u47e0\1\u4836\1\u488c" + + "\1\u48e2\1\u4938\1\u498e\1\u49e4\1\u4a3a\1\u4a90\1\u4ae6\1\u4b3c" + + "\1\u4b92\1\u4be8\1\u4c3e\1\u4c94\1\u4cea\1\u4d40\1\u4d96\1\u4dec" + + "\1\u4e42\1\u4e98\1\u4eee\1\u4f44\1\u4f9a\1\u4ff0\1\u5046\1\u509c" + + "\1\u50f2\1\u5148\1\u519e\1\u51f4\1\u524a\1\u52a0\1\u52f6\1\u534c" + + "\1\u53a2\1\u53f8\1\u544e\1\u54a4\1\u54fa\1\u5550\1\u55a6\1\u55fc" + + "\1\u5652\1\u56a8\1\u56fe\1\u5754\1\u57aa\1\u5800\1\u5856\1\u58ac" + + "\1\u5902\1\u5958\1\u59ae\1\u5a04\1\u5a5a\1\u5ab0\1\u5b06\1\u5b5c" + + "\1\u5bb2\1\u5c08\1\u5c5e\1\u5cb4\1\u5d0a\1\u5d60\1\u5db6\1\u5e0c" + + "\1\u5e62\1\u5eb8\1\u5f0e\1\u5f64\1\u5fba\1\u6010\1\u6066\1\u60bc" + + "\1\u6112\1\u6168\1\u61be\1\u6214\1\u626a\1\u62c0\1\u6316\1\u636c" + + "\1\u63c2\1\u6418\1\u646e\1\u64c4\1\u651a\1\u6570\1\u65c6\1\u661c" + + "\1\u6672\1\u66c8\1\u671e\1\u6774\1\u67ca\1\u6820\1\u6876\1\u68cc" + + "\1\u6922\1\u6978\1\u69ce\1\u6a24\1\u6a7a\1\u6ad0\1\u6b26\1\u6b7c" + + "\1\u6bd2\1\u6c28\1\u6c7e\1\u6cd4\1\u6d2a\1\u6d80\1\u6dd6\1\u6e2c" + + "\1\u6e82\1\u6ed8\1\u6f2e\1\u6f84\1\u6fda\1\u7030\1\u7086\1\u70dc" + + "\1\u7132\1\u7188\1\u71de\1\u7234\1\u728a\1\u72e0\1\u7336\1\u738c" + + "\1\u73e2\1\u7438\1\u748e\1\u74e4\1\u753a\1\u7590\1\u75e6\1\u763c" + + "\1\u7692\1\u76e8\1\u773e\1\u7794\1\u77ea\1\u7840\1\u7896\1\u78ec" + + "\1\u7942\1\u7998\1\u79ee\1\u7a44\1\u7a9a\1\u7af0\1\u7b46\1\u7b9c" + + "\1\u7bf2\1\u7c48\1\u7c9e\1\u7cf4\1\u7d4a\1\u7da0\1\u7df6\1\u7e4c" + + "\1\u7ea2\1\u7ef8\1\u7f4e\1\u7fa4\1\u7ffa\1\u4f9a\1\u8050\1\u80a6" + + "\1\u80fc\1\u8152\1\u81a8\1\u81fe\1\u8254\1\u82aa\1\u8300\1\u8356" + + "\1\u83ac\1\u8402\1\u8458\1\u84ae\1\u8504\1\u855a\1\u85b0\1\u8606" + + "\1\u865c\1\u86b2\1\u8708\1\u875e\1\u87b4\1\u880a\1\u8860\1\u88b6" + + "\1\u890c\1\u8962\1\u89b8\1\u8a0e\1\u8a64\1\u8aba\1\u8b10\1\u8b66" + + "\1\u8bbc\1\u8c12\1\u8c68\1\u8cbe\1\u8d14\1\u8d6a\1\u8dc0\1\u8e16" + + "\1\u8e6c\1\u8ec2\1\u8f18\1\u8f6e\1\u8fc4\1\u901a\1\u9070\1\u90c6" + + "\1\u911c\1\u9172\1\u91c8\1\u921e\1\u9274\1\u92ca\1\u9320\1\u9376" + + "\1\u93cc\1\u9422\1\u9478\1\u94ce\1\u9524\1\u957a\1\u95d0\1\u9626" + + "\1\u967c\1\u96d2\1\u9728\1\u977e\1\u97d4\1\u982a\1\u9880\1\u98d6" + + "\1\u992c\1\u9982\1\u99d8\1\u9a2e\1\u9a84\1\u9ada\1\u9b30\1\u9b86" + + "\1\u9bdc\1\u9c32\1\u9c88\1\u9cde\1\u9d34\1\u9d8a\1\u9de0\1\u9e36" + + "\1\u9e8c\1\u9ee2\1\u9f38\1\u9f8e\1\u9fe4\1\ua03a\1\ua090\1\ua0e6" + + "\1\ua13c\1\ua192\1\ua1e8\1\ua23e\1\ua294\1\ua2ea\1\ua340\1\ua396" + + "\1\ua3ec\1\ua442\1\ua498\1\ua4ee\1\ua544\1\ua59a\1\ua5f0\1\ua646" + + "\1\ua69c\1\ua6f2\1\ua748\1\ua79e\1\ua7f4\1\ua84a\1\ua8a0\1\ua8f6" + + "\1\ua94c\1\ua9a2\1\ua9f8\1\uaa4e\1\uaaa4\1\uaafa\1\uab50\1\uaba6" + + "\1\uabfc\1\uac52\1\uaca8\1\uacfe\1\uad54\1\uadaa\1\uae00\1\uae56" + + "\1\uaeac\1\uaf02\1\uaf58\1\uafae\1\ub004\1\ub05a\1\ub0b0\1\ub106" + + "\1\ub15c\1\ub1b2\1\ub208\1\ub25e\1\ub2b4\1\ub30a\1\ub360\1\ub3b6" + + "\1\ub40c\1\ub462\1\ub4b8\1\ub50e\1\ub564\1\ub5ba\1\ub610\1\ub666" + + "\1\ub6bc\1\ub712\1\ub768\1\ub7be\1\ub814\1\ub86a\1\ub8c0\1\ub916" + + "\1\ub96c\1\ub9c2\1\uba18\1\uba6e\1\ubac4\1\ubb1a\1\ubb70\1\ubbc6" + + "\1\ubc1c\1\ubc72\1\ubcc8\1\ubd1e\1\ubd74\1\ubdca\1\ube20\1\ube76" + + "\1\ubecc\1\ubf22\1\ubf78\1\ubfce\1\uc024\1\uc07a\1\uc0d0\1\uc126" + + "\1\uc17c\1\uc1d2\1\uc228\1\uc27e\1\uc2d4\1\uc32a\1\uc380\1\uc3d6" + + "\1\uc42c\1\uc482\1\uc4d8\1\uc52e\1\uc584\1\uc5da\1\uc630\1\uc686" + + "\1\uc6dc\1\uc732\1\uc788\1\uc7de\1\uc834\1\uc88a\1\uc8e0\1\uc3d6" + + "\1\uc936\1\uc98c\1\uc9e2\1\uca38\1\uca8e\1\ucae4\1\ucb3a\1\ucb90" + + "\1\ucbe6\1\ucc3c\1\ucc92\1\ucce8\1\ucd3e\1\ucd94\1\ucdea\1\uce40" + + "\1\uce96\1\uceec\1\ucf42\1\ucf98\1\ucfee\1\ud044\1\ud09a\1\ud0f0" + + "\1\ud146\1\ud19c\1\ud1f2\1\ud248\1\ud29e\1\ud2f4\1\ud34a\1\ud3a0" + + "\1\ud3f6\1\ud44c\1\ud4a2\1\ud4f8\1\ud54e\1\ud5a4\1\ud5fa\1\ud650" + + "\1\ud6a6\1\ud6fc\1\ud752\1\ud7a8\1\ud7fe\1\ud854\1\ud8aa\1\ud900" + + "\1\ud956\0\u05b6\1\ud9ac\1\uda02\1\uda58\1\udaae\1\udb04\1\udb5a" + + "\1\udbb0\1\udc06\1\udc5c\1\udcb2\1\udd08\1\udd5e\1\uddb4\1\ude0a" + + "\1\ude60\1\udeb6\1\udf0c\1\udf62\1\udfb8\1\ue00e\1\ue064\1\ue0ba" + + "\1\ue110\1\ue166\1\ue1bc\1\ue212\1\ue268\1\ue2be\1\ue314\1\ue36a" + + "\1\ue3c0\1\ue416\1\ue46c\1\ue4c2\1\ue518\1\u9cde\1\ue56e\1\ue5c4" + + "\1\ue61a\1\ue670\1\ue6c6\1\ue71c\1\ue772\1\ue7c8\1\ue81e\1\ue874" + + "\1\ue8ca\1\ue920\1\ue976\1\ue9cc\1\uea22\1\uea78\1\ueace\1\ueb24" + + "\1\ueb7a\1\uebd0\1\uec26\1\uec7c\1\uecd2\1\ued28\1\ued7e\1\uedd4" + + "\1\uee2a\1\uee80\1\ueed6\1\uef2c\1\uef82\1\uefd8\1\uf02e\1\uf084" + + "\1\uf0da\1\uf130\1\uf186\1\uf1dc\1\uf232\1\uf288\1\uf2de\1\uf334" + + "\1\uf38a\1\uf3e0\1\uf436\1\uf48c\1\uf4e2\1\uf538\1\uf58e\1\uf5e4" + + "\1\uf63a\1\uf690\1\uf6e6\1\uf73c\1\uf792\1\uf7e8\1\uf83e\1\uf894" + + "\1\uf8ea\1\uf940\1\uf996\1\uf9ec\1\ufa42\1\ufa98\1\ufaee\1\ufb44" + + "\1\ufb9a\1\ufbf0\1\ufc46\1\ufc9c\1\ufcf2\1\ufd48\1\ufd9e\1\ufdf4" + + "\1\ufe4a\1\ufea0\1\ufef6\1\uff4c\1\uffa2\1\ufff8\2\116\2\244" + + "\2\372\2\u0150\2\u01a6\2\u01fc\2\u0252\2\u02a8\2\u02fe\2\u0354" + + "\2\u03aa\2\u0400\2\u0456\2\u04ac\2\u0502\2\u0558\2\u05ae\2\u0604" + + "\2\u065a\2\u06b0\2\u0706\2\u075c\2\u07b2\2\u0808\2\u085e\2\u08b4" + + "\2\u090a\2\u0960\2\u09b6\2\u0a0c\2\u0a62\2\u0ab8\2\u0b0e\2\u0b64" + + "\2\u0bba\2\u0c10\2\u0c66\2\u0cbc\2\u0d12\2\u0d68\2\u0dbe\2\u0e14" + + "\2\u0e6a\2\u0ec0\2\u0f16\2\u0f6c\2\u0fc2\2\u1018\2\u106e\2\u10c4" + + "\2\u111a\2\u1170\2\u11c6\2\u121c\2\u1272\2\u12c8\2\u131e\2\u1374" + + "\2\u13ca\2\u1420\2\u1476\2\u14cc\2\u1522\2\u1578\2\u15ce\2\u1624" + + "\2\u167a\2\u16d0\2\u1726\2\u177c\2\u17d2\2\u1828\2\u187e\2\u18d4" + + "\2\u192a\2\u1980\2\u19d6\2\u1a2c\2\u1a82\2\u1ad8\2\u1b2e\2\u1b84" + + "\2\u1bda\2\u1c30\2\u1c86\2\u1cdc\2\u1d32\2\u1d88\2\u1dde\2\u1e34" + + "\2\u1e8a\2\u1ee0\2\u1f36\2\u1f8c\2\u1fe2\2\u2038\2\u208e\2\u20e4" + + "\2\u213a\2\u2190\2\u21e6\2\u223c\2\u2292\2\u22e8\2\u233e\2\u2394" + + "\2\u23ea\2\u2440\2\u2496\2\u24ec\2\u2542\2\u2598\2\u25ee\2\u2644" + + "\2\u269a\2\u26f0\2\u2746\2\u279c\2\u27f2\1\ua396\2\u2848\2\u289e" + + "\2\u28f4\2\u294a\2\u29a0\2\u29f6\2\u2a4c\2\u2aa2\2\u2af8\2\u2b4e" + + "\2\u2ba4\2\u2bfa\2\u2c50\2\u2ca6\2\u2cfc\2\u2d52\2\u2da8\2\u2dfe" + + "\2\u2e54\2\u2eaa\2\u2f00\2\u2f56\2\u2fac\2\u3002\2\u3058\2\u30ae" + + "\2\u3104\2\u315a\2\u31b0\2\u3206\2\u325c\2\u32b2\2\u3308\2\u335e" + + "\2\u33b4\2\u340a\2\u3460\2\u34b6\2\u350c\2\u3562\2\u35b8\2\u360e" + + "\2\u3664\2\u36ba\2\u3710\2\u3766\2\u37bc\2\u3812\2\u3868\2\u38be" + + "\2\u3914\2\u396a\2\u39c0\2\u3a16\2\u3a6c\2\u3ac2\2\u3b18\2\u3b6e" + + "\2\u3bc4\2\u3c1a\2\u3c70\2\u3cc6\2\u3d1c\2\u3d72\2\u3dc8\2\u3e1e" + + "\2\u3e74\2\u3eca\2\u3f20\2\u3f76\2\u3fcc\2\u4022\2\u4078\2\u40ce" + + "\2\u4124\2\u417a\2\u41d0\2\u4226\2\u427c\2\u42d2\2\u4328\2\u437e" + + "\2\u43d4\2\u442a\2\u4480\2\u44d6\2\u452c\2\u4582\2\u45d8\2\u462e" + + "\2\u4684\2\u46da\2\u4730\2\u4786\2\u47dc\2\u4832\2\u4888\2\u48de" + + "\2\u4934\2\u498a\2\u49e0\2\u4a36\2\u4a8c\2\u4ae2\2\u4b38\2\u4b8e" + + "\2\u4be4\2\u4c3a\2\u4c90\2\u4ce6\2\u4d3c\2\u4d92\2\u4de8\2\u4e3e" + + "\2\u4e94\2\u4eea\2\u4f40\2\u4f96\2\u4fec\2\u5042\2\u5098\2\u50ee" + + "\2\u5144\2\u519a\2\u51f0\2\u5246\2\u529c\2\u52f2\2\u5348\2\u539e" + + "\2\u53f4\2\u544a\2\u54a0\2\u54f6\2\u554c\2\u55a2\2\u55f8\2\u564e" + + "\2\u56a4\2\u56fa\2\u5750\2\u57a6\2\u57fc\2\u5852\2\u58a8\2\u58fe" + + "\2\u5954\2\u59aa\2\u5a00\2\u5a56\2\u5aac\2\u5b02\2\u5b58\2\u5bae" + + "\2\u5c04\2\u5c5a\2\u5cb0\2\u5d06\2\u5d5c\2\u5db2\2\u5e08\2\u5e5e" + + "\2\u5eb4\2\u5f0a\2\u5f60\2\u5fb6\2\u600c\2\u6062\2\u60b8\2\u610e" + + "\2\u6164\2\u61ba\2\u6210\2\u6266\2\u62bc\2\u6312\2\u6368\2\u63be" + + "\2\u6414\2\u646a\2\u64c0\2\u6516\2\u656c\2\u65c2\2\u6618\2\u666e" + + "\2\u66c4\2\u671a\2\u6770\2\u67c6\2\u681c\2\u6872\2\u68c8\2\u691e" + + "\2\u6974\2\u69ca\2\u6a20\2\u6a76\2\u6acc\2\u6b22\2\u6b78\2\u6bce" + + "\2\u6c24\2\u6c7a\2\u6cd0\2\u6d26\2\u6d7c\2\u6dd2\2\u6e28\2\u6e7e" + + "\2\u6ed4\2\u6f2a\2\u6f80\2\u6fd6\2\u702c\2\u7082\2\u70d8\2\u712e" + + "\2\u7184\2\u71da\2\u7230\2\u7286\2\u72dc\2\u7332\2\u7388\2\u73de" + + "\2\u7434\2\u748a\2\u74e0\2\u7536\2\u758c\2\u75e2\2\u7638\2\u768e" + + "\2\u76e4\2\u773a\2\u7790\2\u77e6\2\u783c\2\u7892\2\u78e8\2\u793e" + + "\2\u7994\2\u79ea\2\u7a40\2\u7a96\2\u7aec\2\u7b42\2\u7b98\2\u7bee" + + "\2\u7c44\2\u7c9a\2\u7cf0\2\u7d46\2\u7d9c\2\u7df2\2\u7e48\2\u7e9e" + + "\2\u7ef4\2\u7f4a\2\u7fa0\2\u7ff6\2\u804c\2\u80a2\2\u80f8\2\u814e" + + "\2\u81a4\2\u81fa\2\u8250\2\u82a6\2\u82fc\2\u8352\2\u83a8\2\u83fe" + + "\2\u8454\2\u84aa\2\u8500\2\u8556\2\u85ac\2\u8602\2\u8658\2\u86ae" + + "\2\u8704\2\u875a\2\u87b0\2\u8806\2\u885c\2\u88b2\2\u8908\2\u895e" + + "\2\u89b4\2\u8a0a\2\u8a60\2\u8ab6\2\u8b0c\2\u8b62\2\u8bb8\2\u8c0e" + + "\2\u8c64\2\u8cba\2\u8d10\2\u8d66\2\u8dbc\2\u8e12\2\u8e68\2\u8ebe" + + "\2\u8f14\2\u8f6a\2\u8fc0\2\u9016\2\u906c\2\u90c2\2\u9118\2\u916e" + + "\2\u91c4\2\u921a\2\u9270\2\u92c6\2\u931c\2\u9372\2\u93c8\2\u941e" + + "\2\u9474\2\u94ca\2\u9520\2\u9576\2\u95cc\2\u9622\2\u9678\2\u96ce" + + "\2\u9724\2\u977a\2\u97d0\2\u9826\2\u987c\2\u98d2\2\u9928\2\u997e" + + "\2\u99d4\2\u9a2a\2\u9a80\2\u9ad6\2\u9b2c\2\u9b82\2\u9bd8\2\u9c2e" + + "\2\u9c84\2\u9cda\2\u9d30\2\u9d86\2\u9ddc\2\u9e32\2\u9e88\2\u9ede" + + "\2\u9f34\2\u9f8a\2\u9fe0\2\ua036\2\ua08c\2\ua0e2\2\ua138\2\ua18e" + "\2\ua1e4\2\ua23a"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[2058]; + 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 = "\1\10\2\11\1\12\1\13\1\12\1\14\1\12\1\15" + "\1\16\1\10\1\17\1\20\1\21\1\22\1\10\1\11" + + "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\11" + "\1\32\1\33\1\34\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\26\1\52\1\26\1\53\1\54\1\53\1\55\1\11" + + "\1\56\1\57\1\60\1\11\1\61\1\62\1\63\1\64" + "\1\65\1\66\1\11\1\67\1\11\2\45\1\70\1\11" + + "\1\71\1\72\1\11\1\73\1\74\1\75\1\76\1\77" + "\1\100\1\101\1\102\1\11\1\103\1\104\1\105\1\106" + + "\2\12\2\11\15\107\1\110\3\107\1\111\2\107\1\112" + "\32\107\1\113\10\107\1\114\35\107\15\115\1\116\3\115" + + "\1\117\2\115\1\120\22\115\1\121\7\115\1\122\10\115" + "\1\123\5\115\1\124\1\115\1\125\25\115\15\126\1\127" + + "\3\126\1\130\35\126\1\131\10\126\1\132\35\126\12\133" + "\1\134\1\135\4\133\1\136\1\137\104\133\10\140\1\141" + + "\1\140\1\142\6\140\1\143\104\140\12\133\1\144\1\145" + "\4\133\1\136\1\146\104\133\10\10\1\0\2\10\1\0" + + "\2\10\1\0\2\10\4\0\6\10\2\0\6\10\14\0" + "\17\10\2\0\27\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\2\150\1\151\3\12" + "\1\150\1\12\1\0\2\150\1\0\1\150\1\152\1\0" + + "\2\150\4\0\1\153\3\150\1\152\1\154\1\0\1\155" + "\2\150\1\154\1\150\1\153\1\150\14\0\2\150\1\152" + + "\5\150\1\152\6\150\2\0\22\150\2\12\4\150\1\156" + "\1\157\2\160\1\150\1\160\1\0\2\150\1\0\1\150" + + "\1\152\1\0\2\150\4\0\1\153\2\161\1\162\1\152" + "\1\154\1\0\1\155\2\150\1\154\1\150\1\153\1\150" + + "\14\0\2\150\1\152\2\150\1\162\2\150\1\152\6\150" + "\2\0\22\150\2\160\2\150\1\10\7\11\1\0\1\163" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\164\1\165\1\11\14\0\1\166\1\167" + + "\15\11\2\0\1\10\25\11\10\170\1\171\1\170\1\172" + "\6\170\1\173\104\170\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\5\11\1\174\14\0\17\11\2\0\1\10\25\11\13\0" + + "\1\175\112\0\1\10\7\11\1\0\1\176\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\177\1\200\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\201\1\202" + "\1\11\14\0\1\11\1\203\4\11\1\204\10\11\2\0" + + "\1\10\25\11\150\0\1\24\103\0\12\205\1\206\10\205" + "\1\207\1\210\23\205\1\211\55\205\50\0\1\53\55\0" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + + "\1\212\4\11\1\213\10\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\214\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\215\2\11\14\0" + "\1\11\1\216\4\11\1\217\5\11\1\220\2\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\221\4\11\14\0\1\11\1\222\12\11\1\223\2\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\224\1\11\14\0\1\11\1\225\4\11\1\226" + + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\1\227\1\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\230\4\11\14\0\5\11\1\231" + "\1\11\1\232\2\11\1\233\4\11\2\0\1\10\13\11" + + "\1\234\11\11\33\0\1\53\14\0\1\53\60\0\3\155" + "\1\0\1\155\112\0\2\155\2\0\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\11\1\235\1\236\3\11\14\0\1\237" + + "\1\240\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\241\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\242\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\3\11\1\243\1\244\1\11\14\0\5\11\1\245\4\11" + + "\1\246\4\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\247\1\11\1\0\1\10\1\11" + + "\4\0\2\11\1\250\3\11\2\0\5\11\1\251\14\0" + "\2\11\1\252\14\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\253\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\254\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\255\1\11\1\256\1\11\1\257\1\11\14\0\1\260" + "\2\11\1\261\5\11\1\262\2\11\1\263\2\11\2\0" + + "\1\10\25\11\23\0\1\264\150\0\1\53\1\0\1\53" + "\124\0\1\265\1\53\120\0\1\53\4\0\1\53\125\0" + + "\1\53\1\0\1\266\123\0\1\53\4\0\1\53\50\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\267\2\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\270\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\271\3\11\14\0\1\11\1\272" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\273" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\274\1\11\1\275\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\3\11\1\276\1\277\1\11\14\0\1\300\1\301\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\1\302\1\303\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\304\4\11\1\305\14\0\2\11\1\306\4\11" + "\1\307\7\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\310\3\11\14\0\6\11\1\311" + + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\312" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\313\1\314\2\11\14\0\1\11\1\315" + "\4\11\1\316\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\317\5\11\1\320" + + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\1\11\1\321\15\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\322" + "\1\323\3\11\14\0\1\11\1\324\15\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\325\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\326" + + "\1\327\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\2\330\3\10\1\330\1\10\1\0\1\330\1\10\1\0" + + "\2\330\1\0\1\10\1\330\4\0\6\330\2\0\6\330" + "\14\0\17\330\2\0\1\10\21\330\2\10\2\330\1\10" + + "\7\11\1\0\1\331\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\2\11\1\332\3\11\2\0\1\11\1\333" + + "\3\11\1\334\14\0\3\11\1\335\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\336\1\11" + "\1\337\3\11\14\0\1\340\1\341\1\11\1\342\1\343" + + "\1\11\1\344\5\11\1\345\2\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\346\1\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\347\3\11" + "\1\350\1\11\14\0\2\11\1\351\14\11\2\0\1\10" + + "\13\11\1\352\11\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\11\1\353\4\11\14\0\1\354\1\355\4\11\1\356" + "\5\11\1\357\2\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\360\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\5\11\1\361\1\362\16\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\363\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\364\3\11\14\0\1\11\1\365\4\11\1\366\10\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\367\2\11\14\0\6\11\1\370\10\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\371\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\372\1\373\2\11\14\0\1\11\1\374\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\375\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\2\11\1\376\3\11" + + "\2\0\6\11\14\0\3\11\1\377\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u0100\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0101" + "\1\11\1\u0102\2\11\14\0\6\11\1\u0103\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u0104\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u0105\1\u0106\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\u0107\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\15\107\1\0\3\107\1\0\2\107\1\0\32\107\1\0" + "\10\107\1\0\35\107\35\0\1\u0108\27\0\1\u0109\63\0" + + "\1\u010a\137\0\1\u010b\160\0\1\u010c\35\0\15\115\1\0" + "\3\115\1\0\2\115\1\0\22\115\1\0\7\115\1\0" + + "\10\115\1\0\5\115\1\0\1\115\1\0\25\115\35\0" + "\1\u010d\27\0\1\u010e\63\0\1\u010f\103\0\1\u0110\4\0" + + "\1\u0110\2\0\1\u0110\2\0\2\u0110\5\0\1\u0111\1\0" + "\6\u0110\2\0\6\u0110\7\0\1\u0112\4\0\17\u0110\3\0" + + "\21\u0110\2\0\2\u0110\35\0\1\u0113\160\0\1\u0114\135\0" + "\1\u0115\62\0\1\u0116\1\u0117\1\u0118\1\u0119\1\0\1\u011a" + + "\15\0\1\u011b\1\u011c\1\u011d\1\u011e\1\0\1\u011f\3\0" + "\1\u0120\34\0\15\126\1\0\3\126\1\0\35\126\1\0" + + "\10\126\1\0\35\126\35\0\1\u0121\27\0\1\u0122\75\0" + "\1\u0123\160\0\1\u0124\35\0\12\133\2\0\4\133\2\0" + + "\104\133\21\u0125\1\0\104\u0125\13\0\1\u0126\113\0\2\u0127" + "\3\0\1\u0127\2\0\1\u0127\2\0\2\u0127\2\0\1\u0127" + + "\4\0\6\u0127\2\0\6\u0127\14\0\17\u0127\1\u0128\2\0" + "\21\u0127\2\0\2\u0127\10\140\1\0\1\140\1\0\6\140" + + "\1\0\104\140\10\0\1\u0129\115\0\21\u012a\1\0\104\u012a" + "\21\u012b\1\0\104\u012b\10\10\1\0\1\u012c\1\10\1\0" + + "\2\10\1\0\2\10\4\0\6\10\2\0\6\10\14\0" + "\17\10\2\0\26\10\10\150\1\0\2\150\1\0\2\150" + + "\1\0\2\150\4\0\6\150\2\0\6\150\14\0\17\150" + "\2\0\30\150\1\151\3\u012d\1\150\1\u012d\1\0\2\150" + + "\1\0\2\150\1\0\2\150\4\0\6\150\2\0\6\150" + "\14\0\17\150\2\0\22\150\2\u012d\5\150\3\u012e\1\150" + + "\1\u012e\1\0\2\150\1\0\2\150\1\0\2\150\4\0" + "\6\150\1\u012f\1\0\6\150\3\0\1\u012f\10\0\17\150" + + "\2\0\22\150\2\u012e\5\150\3\155\1\150\1\155\1\0" + "\2\150\1\0\1\150\1\152\1\0\2\150\4\0\4\150" + + "\1\152\1\154\2\0\2\150\1\154\3\150\14\0\2\150" + "\1\152\5\150\1\152\6\150\2\0\22\150\2\155\4\150" + + "\1\156\1\150\2\u0130\1\150\1\u0130\1\0\2\150\1\0" + "\2\150\1\0\2\150\4\0\6\150\2\0\6\150\14\0" + + "\17\150\2\0\22\150\2\u0130\5\150\3\157\1\150\1\157" + "\1\0\2\150\1\0\1\150\1\152\1\0\2\150\4\0" + + "\4\150\1\152\1\154\1\0\1\155\2\150\1\154\3\150" + "\14\0\2\150\1\152\5\150\1\152\6\150\2\0\22\150" + + "\2\157\4\150\1\156\1\157\2\160\1\150\1\160\1\0" + "\2\150\1\0\1\150\1\152\1\0\2\150\4\0\1\u0131" + + "\3\150\1\152\1\154\1\0\1\155\2\150\1\154\1\150" + "\1\u0131\1\150\14\0\2\150\1\152\5\150\1\152\6\150" + + "\2\0\22\150\2\160\6\150\2\u0132\2\150\1\0\2\150" + "\1\0\2\150\1\0\2\150\4\0\6\150\2\0\6\150" + + "\14\0\17\150\2\0\31\150\5\u0133\1\0\2\150\1\0" + "\1\150\1\u0133\1\0\2\150\4\0\1\150\2\u0133\1\150" + + "\2\u0133\2\0\2\150\2\u0133\2\150\14\0\2\150\1\u0133" + "\1\150\1\u0133\3\150\1\u0133\6\150\2\0\2\150\1\u0133" + + "\17\150\2\u0133\2\150\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\11\1\u0134\4\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\4\11\1\u0135\1\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\3\11\1\u0136\2\11\14\0\1\11\1\u0137" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u0138\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0139" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + "\1\u013a\1\11\14\0\7\11\1\u013b\7\11\2\0\1\10" + + "\25\11\10\170\1\u013c\1\170\1\172\6\170\1\173\104\170" + "\10\0\1\u013d\115\0\4\u013e\2\170\1\u013e\1\170\1\u013f" + + "\1\u0140\4\170\3\u013e\1\0\5\u013e\1\170\5\u013e\2\170" + "\63\u013e\2\170\2\u013e\10\173\1\u013c\1\173\1\u0141\113\173" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0142\3\11" + + "\14\0\6\11\1\u0143\10\11\2\0\1\10\25\11\13\0" + "\1\u0144\112\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + "\1\u0145\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\11\11\1\303" + + "\5\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0146\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\4\11\1\u0147\1\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u0148\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\303\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\1\u0149\1\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\12\205\1\206\10\205\1\u014a\123\205" + + "\1\0\104\205\24\0\1\u014b\101\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\u014c\1\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\4\11\1\u014d\12\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\1\u014e\1\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\5\11\1\u014f\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u0150" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\5\11\1\u0151\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u0152\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u0153\5\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0154\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0155\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\1\11\1\u0156\15\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u0157\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0158\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\1\11\1\u0159\15\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u015a\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\u015b\1\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\u015c\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u015d\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u015e" + "\5\11\14\0\4\11\1\u015f\12\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11" + + "\1\u0160\13\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0161\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\4\11\1\u0162\1\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\u0163\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u0164\2\11\14\0" + + "\14\11\1\303\2\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u0165\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + "\1\u0166\4\11\14\0\6\11\1\u0167\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\2\11\1\u0168\22\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u0169\4\11\1\u016a\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u016b\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\4\11\1\u016c\12\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\5\11\1\u016d\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u016e\5\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\2\11\1\u016f\3\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11" + + "\1\u0142\2\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\5\11\1\u0170\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\1\11\1\u0171\4\11\2\0" + "\5\11\1\u0172\14\0\17\11\2\0\1\10\5\11\1\u0173" + + "\17\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\2\11\1\u0174\14\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\1\u0175\1\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\3\11\1\u0176\13\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\11\1\u0177\1\11\1\u0178" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u0179\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\322\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u017a" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u017b\2\11\1\u017c\1\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\6\11\1\u017d\10\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u017e\1\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\12\205\1\206\10\205\2\0" + "\101\205\50\0\1\53\1\0\1\26\53\0\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\5\11\1\u017f\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\7\11\1\u0180\7\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\1\11\1\u0181\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0182\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\2\11\1\u0183\3\11\2\0\1\u0184\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\1\11\1\u0185\4\11\1\u0186\10\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\4\11\1\u0187\12\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u0188\4\11\1\u016d" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u0189\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u018a\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u018b\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\4\11\1\u018c\1\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u018d\4\11\1\u018e\14\0\12\11\1\u018f" + "\4\11\2\0\1\10\14\11\1\u0190\10\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u0191\3\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\5\11\1\u0192\1\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0193\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\3\11\1\u0194\13\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0195" + + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\5\11\1\u0196\11\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\3\11\1\u0197\13\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\3\11\1\u0198\21\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u0199\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u019a\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\4\11\1\u019b\12\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\6\11\1\u019c\10\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u019d\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + "\1\u019e\1\11\14\0\6\11\1\u019f\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0180" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u01a0\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u01a1" + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\u01a2\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u01a3\1\11\1\u01a4\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u01a5\1\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\330\1\0\1\330" + + "\1\u01a6\1\0\2\330\1\0\1\10\1\330\4\0\6\330" + "\2\0\6\330\14\0\17\330\2\0\1\10\25\330\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u01a7\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\5\11\1\u01a8\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u01a9\4\11\14\0" + "\6\11\1\u01aa\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\5\11\1\u01ab\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\3\11\1\u01ac\13\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u01ad\1\11\1\u01ae" + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u0142\1\u01af\4\11\14\0\4\11" + + "\1\u01b0\12\11\2\0\1\10\3\11\1\u01b1\21\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u01b2" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\11\1\u01b3\4\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u01b4" + + "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u01b5\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\7\11\1\u01b6\7\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u01b7\1\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u01b8" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u01b9\4\11\1\u01ba\14\0\1\u01bb\1\11" + "\1\u01bc\1\u01bd\1\u01be\5\11\1\u01bf\4\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u01c0" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\4\11\1\u01c1\1\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\2\11\1\u01c2\3\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\5\11\1\u01c3\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u01c4\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u01c5" + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u01c6\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\7\11\1\u01c7\7\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11" + "\1\u01c8\13\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\5\11\1\u01c9\14\0\4\11\1\u01ca\11\11" + + "\1\u01cb\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\4\11" + + "\1\u01cc\1\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\4\11\1\u01cd\20\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\5\11\1\u01ce\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u01cf\4\11\14\0\4\11\1\u01d0\12\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u01d1\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\11\1\u01d2\4\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\u019d\5\11\14\0\3\11\1\u01d3\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u01d4" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\u01d5\1\11\14\0\7\11\1\u01d6" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\13\11\1\u01d7\3\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\12\11\1\u01d8\4\11\2\0\1\10\25\11\1\10\5\11" + + "\1\u01d9\1\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u01da\5\11\14\0" + + "\17\11\2\0\1\10\2\11\1\u01db\22\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u01dc\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11" + "\1\u01dd\14\0\17\11\2\0\1\10\14\11\1\u01de\10\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u01df\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\5\11\1\u01e0\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u01e1\4\11\1\u01e2\10\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u01e3" + + "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\3\11\1\u01e4\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u01e5" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u01e6\10\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u01e7\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0198\3\11" + "\14\0\17\11\2\0\1\10\25\11\62\0\1\u01e8\104\0" + + "\1\u01e9\121\0\1\u01ea\160\0\1\u01eb\117\0\1\u01ec\104\0" + "\1\u01ed\64\0\52\u0110\1\u0112\53\u0110\1\0\1\u0110\4\0" + + "\1\u0110\2\0\1\u0110\2\0\2\u0110\7\0\6\u0110\2\0" + "\6\u0110\7\0\1\u0112\4\0\17\u0110\3\0\21\u0110\2\0" + + "\2\u0110\35\0\1\u01ee\160\0\1\u01ef\76\0\1\u01f0\17\0" + "\1\u01f1\1\0\1\u01f2\1\0\1\u01f3\3\0\1\u01f4\45\0" + + "\1\u01f5\45\0\1\u01f6\1\u01f7\104\0\1\u01f8\152\0\1\u01f9" + "\52\0\1\u01fa\153\0\1\u01fb\25\0\1\u01fc\67\0\1\u01fd" + + "\135\0\1\u01fe\126\0\1\u01ff\125\0\1\u0200\101\0\1\u0201" + "\150\0\1\u0202\150\0\1\u0203\104\0\1\u0204\121\0\1\u0205" + + "\160\0\1\u0206\50\0\1\u0207\113\0\7\u0127\1\0\1\u0127" + "\1\u0208\1\0\2\u0127\2\0\1\u0127\4\0\6\u0127\2\0" + + "\6\u0127\14\0\17\u0127\3\0\25\u0127\77\u0209\1\0\26\u0209" + "\10\0\1\u020a\115\0\3\10\5\u020b\1\0\2\10\1\0" + + "\1\10\1\u020b\1\0\2\10\4\0\1\10\2\u020b\1\10" + "\2\u020b\2\0\2\10\2\u020b\2\10\14\0\2\10\1\u020b" + + "\1\10\1\u020b\3\10\1\u020b\6\10\2\0\2\10\1\u020b" + "\17\10\2\u020b\2\10\2\150\1\151\3\u012d\1\150\1\u012d" + + "\1\0\2\150\1\0\2\150\1\0\2\150\4\0\1\153" + "\5\150\2\0\4\150\1\153\1\150\14\0\17\150\2\0" + + "\22\150\2\u012d\5\150\3\u012e\1\150\1\u012e\1\0\2\150" + "\1\0\1\150\1\152\1\0\2\150\4\0\4\150\1\152" + + "\1\150\2\0\6\150\14\0\2\150\1\152\5\150\1\152" + "\6\150\2\0\22\150\2\u012e\2\150\3\0\3\u012e\1\0" + + "\1\u012e\112\0\2\u012e\2\0\2\150\1\156\1\150\2\u0130" + "\1\150\1\u0130\1\0\2\150\1\0\2\150\1\0\2\150" + + "\4\0\1\u0131\5\150\2\0\4\150\1\u0131\1\150\14\0" + "\17\150\2\0\22\150\2\u0130\4\150\1\u020c\1\150\2\u0132" + + "\2\150\1\0\2\150\1\0\2\150\1\0\2\150\4\0" + "\6\150\2\0\6\150\14\0\17\150\2\0\30\150\1\u020d" + + "\5\u0133\1\0\2\150\1\0\1\150\1\u0133\1\0\2\150" + "\4\0\1\u0131\2\u0133\1\150\2\u0133\2\0\2\150\2\u0133" + + "\1\u0131\1\150\14\0\2\150\1\u0133\1\150\1\u0133\3\150" + "\1\u0133\6\150\2\0\2\150\1\u0133\17\150\2\u0133\2\150" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u020e\4\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u020f\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11" + "\1\u0210\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\u0211\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\5\11\1\u0212\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\11\1\u0213\4\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0214\14\0" + "\4\11\1\u0215\12\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\4\11\1\u0216\1\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\3\11\1\u0217\13\11\2\0\1\10\25\11" + "\10\u013e\1\u0218\10\u013e\1\0\107\u013e\5\u0219\1\u0218\4\u013e" + + "\1\u0219\3\u013e\1\0\4\u013e\2\u0219\1\u013e\2\u0219\4\u013e" + + "\2\u0219\20\u013e\1\u0219\1\u013e\1\u0219\3\u013e\1\u0219\12\u013e" + "\1\u0219\17\u013e\2\u0219\2\u013e\4\0\2\173\1\0\2\173" + + "\1\u021a\4\173\11\0\1\173\5\0\2\173\63\0\2\173" + "\2\0\1\10\7\11\1\0\1\11\1\147\1\0\1\u021b" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\303\1\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\6\11\1\u021c\10\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\5\11\1\u0163\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\3\11\1\u021d\2\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u021e\2\11" + + "\14\0\2\11\1\u021f\14\11\2\0\1\10\25\11\23\0" + "\1\u0220\102\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\13\11\1\u0221\3\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u0222\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u0223\3\11\14\0\16\11\1\u0224\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0225" + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\11\1\u0226\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u0227\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u0228\3\11\1\u0229\1\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11" + + "\1\u022a\22\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u022b\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u022c\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\4\11\1\u022d\1\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u022e" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u022f\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u0230\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0231" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0232\1\11\1\u0233\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\7\11\1\u0234\7\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u0235" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u0236\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0237" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u0238\5\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\1\u0239\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\5\11\1\u023a\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u023b\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u023c\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\303\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u023d" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\5\11\1\303\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u023e\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\u023f" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\3\11\1\u0240" + "\13\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\7\11\1\303\7\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\1\u0241\16\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\303\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u0242\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\11\1\247\4\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0243\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u0244\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u0245\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\14\11\1\u0246\2\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\2\11\1\u0247\22\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\13\11\1\u022e\3\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\203" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0248\10\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u0249\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\11\11\1\u024a\13\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u021d\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u024b\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0230\10\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\u0188\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u024c" + "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\15\11\1\u024d" + + "\7\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\3\11\1\u0142\13\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u024e\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\2\11\1\u024f" + "\3\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\4\11\1\u0249\1\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\11" + "\1\u0230\23\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0250" + "\5\11\14\0\3\11\1\u0251\13\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0252\1\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\12\11\1\u0253\4\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\16\11\1\u0254\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\4\11\1\u0255\12\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\5\11\1\u0167\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\11\1\u022e\4\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\u0256\4\11\1\u0165" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\u0190\1\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u0257\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u0258\5\11\14\0\3\11" + "\1\u0190\13\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u0259\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u025a\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u025b\4\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u025c\2\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u025d" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\4\11\1\u025e\1\11\14\0\1\11\1\u0245" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u025f\2\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\6\11\1\u0260\10\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\4\11\1\u0261\1\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0262\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u0142\1\u0263\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\2\11" + + "\1\u0264\3\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0265\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\u016d\1\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\1\u0142\16\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u0266\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\2\11\1\303\14\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\1\11\1\u0230\7\11\1\u0267\3\11\1\u0268" + "\7\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\303\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\u0269\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u026a\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\2\11\1\u026b\14\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u026c\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\2\11\1\u026d\14\11\2\0" + + "\1\10\25\11\10\10\1\0\1\u026e\1\10\1\0\2\10" + "\1\0\2\10\4\0\6\10\2\0\6\10\14\0\17\10" + + "\2\0\27\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\1\11\1\u026f\15\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u0270\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u0271\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u0272\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u0273\3\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0274\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u0275\3\11\14\0\6\11\1\u0276" + + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\4\11\1\u0277\12\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u0278\3\11\1\u0279\4\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\u027a\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u027b\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\11\1\u0230\4\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u027c\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u027d" + + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\1\u027e\1\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11" + "\1\u027f\13\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\4\11\1\u0280\12\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0281" + + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u0282\3\11\14\0\17\11" + "\2\0\1\10\2\11\1\u0283\22\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u0284\5\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0285" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u0286\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u0287\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0288\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u0289\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u028a\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\1\11\1\u028b\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u028c\3\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\1\u028d\1\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\230\4\11\14\0" + "\5\11\1\u028e\11\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u028f\3\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u0290\3\11\14\0\1\11\1\u0291\15\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\11\11\1\u0292\13\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\2\11\1\u0293\3\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u0294\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u0295\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0296" + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\u0297\16\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\1\u0298\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\10\11\1\u0299\6\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\10\11\1\u0142\6\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\u029a" + + "\16\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\6\11\1\u029b\10\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u015d\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\2\11\1\u0142\14\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u029c" + + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\1\0\1\u029d\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11" + "\1\u029e\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\4\11\1\u029f\1\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\2\11\1\u02a0" + + "\3\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u02a1\2\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u02a2\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + + "\1\u02a3\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\1\11\1\u02a4\1\u02a5\22\11\1\10\7\11\1\0" + + "\1\u02a6\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11" + + "\1\u02a7\13\11\2\0\1\10\13\11\1\u02a8\11\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\2\11\1\u02a9\3\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u02aa\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\6\11\1\u02ab\10\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\1\u02ac\16\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\3\11\1\u02ad\1\u02ae\12\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u02af\1\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\1\11\1\u02b0\5\11\1\u02b1\7\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\16\11" + "\1\u02b2\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u02b3\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\13\11\1\u02b4\3\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u02b5\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\16\11\1\u02b6\2\0\1\10\25\11\56\0\1\u02b7" + + "\106\0\1\u01e8\150\0\1\u02b8\77\0\1\u02b9\147\0\1\u02ba" + "\106\0\1\u01ec\150\0\1\u02bb\77\0\1\u02bc\156\0\1\u02bd" + + "\120\0\1\u02be\125\0\1\u02bf\61\0\1\u02c0\151\0\1\u02c1" + "\122\0\1\u02c2\126\0\1\u02c3\150\0\1\u02c4\101\0\1\u02c5" + + "\130\0\1\u02c6\22\0\1\u02c7\77\0\1\u02c8\126\0\1\u02c9" + "\1\u02ca\102\0\1\u02cb\153\0\1\u02cc\145\0\1\u02cd\101\0" + + "\1\u02ce\124\0\1\u02cf\125\0\1\u02d0\23\0\1\u02d1\102\0" + "\1\u02d2\145\0\1\u02d3\106\0\1\u0203\150\0\1\u02d4\77\0" + + "\1\u02d5\102\0\1\u02d6\114\0\77\u0209\1\u02d7\26\u0209\3\10" + "\5\u02d8\1\0\2\10\1\0\1\10\1\u02d8\1\0\2\10" + + "\4\0\1\10\2\u02d8\1\10\2\u02d8\2\0\2\10\2\u02d8" + "\2\10\14\0\2\10\1\u02d8\1\10\1\u02d8\3\10\1\u02d8" + + "\6\10\2\0\2\10\1\u02d8\17\10\2\u02d8\2\10\2\150" + "\1\u020d\5\u0133\1\0\2\150\1\0\1\150\1\u0133\1\0" + + "\2\150\4\0\1\150\2\u0133\1\150\2\u0133\2\0\2\150" + "\2\u0133\2\150\14\0\2\150\1\u0133\1\150\1\u0133\3\150" + + "\1\u0133\6\150\2\0\2\150\1\u0133\17\150\2\u0133\2\150" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u02d9\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\1\u02da\1\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u02db" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u02dc\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u0269\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\5\11\1\u02dd\1\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u02de" + + "\2\11\14\0\17\11\2\0\1\10\1\11\1\u02df\1\u02e0" + "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\u02e1\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\u02e2\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u02e3" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u01c0\2\11\14\0\6\11" + "\1\u02e4\10\11\2\0\1\10\25\11\3\u013e\5\u02e5\1\u0218" + + "\4\u013e\1\u02e5\3\u013e\1\0\4\u013e\2\u02e5\1\u013e\2\u02e5" + + "\4\u013e\2\u02e5\20\u013e\1\u02e5\1\u013e\1\u02e5\3\u013e\1\u02e5" + + "\12\u013e\1\u02e5\17\u013e\2\u02e5\2\u013e\3\0\5\u02e6\5\0" + "\1\u02e6\10\0\2\u02e6\1\0\2\u02e6\4\0\2\u02e6\20\0" + + "\1\u02e6\1\0\1\u02e6\3\0\1\u02e6\12\0\1\u02e6\17\0" + "\2\u02e6\2\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\13\11\1\303\3\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\12\11\1\u016d" + + "\4\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u022e\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\4\11\1\u02e7\1\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\1\u02e8\5\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\1\11\1\u02e9\2\11\1\u02ea\20\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11" + "\1\u0283\22\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + "\1\u02eb\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\12\11\1\u02ec\12\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u02ed\1\u02ee\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\15\11\1\u02ef\1\11\2\0\1\10\4\11\1\u02f0" + + "\20\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u02f1" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\21\11\1\u02f2\3\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\5\11\1\u02f3\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\2\11\1\u02f4\3\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u0230\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\1\11\1\u02f5\23\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\16\11\1\303\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u02f6\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\u0269\16\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u0142\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u02f7\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u02f8\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u02f9" + + "\1\11\1\0\1\10\1\11\4\0\4\11\1\u02fa\1\11" + "\2\0\6\11\14\0\10\11\1\u02fb\4\11\1\u02fc\1\11" + + "\2\0\1\10\4\11\1\u02fd\5\11\1\u02fe\1\u02ff\1\11" + "\1\u0300\1\11\1\u0301\5\11\1\10\5\11\1\u0302\1\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u0303\3\11\14\0\17\11" + + "\2\0\1\10\2\11\1\u022a\6\11\1\u0304\13\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u0142\4\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\11\1\u0305\4\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\3\11\1\u0306\13\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\14\11\1\u0307\2\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u0308\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\5\11\1\u028e" + + "\11\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\5\11\1\u0309\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\11\11" + "\1\u030a\5\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\11\1\u030b\4\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u030c\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u030d" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\17\11\1\u030e" + + "\5\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u030f" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u0310\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\1\11\1\u0311\15\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\11\1\u0165\4\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\3\11\1\u0262\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\u0312\16\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\4\11\1\u0313\12\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\6\11\1\u0314\10\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\2\11\1\310\3\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\1\u0315\1\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\u0316" + + "\16\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u0317\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u0318\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\4\11\1\u0157\1\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0319" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u031a\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u031b\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u031c\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u031d\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\303\16\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u031e\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u031f\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u0320\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\16\11\1\u0321\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + + "\1\u0230\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u01d0\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11" + "\1\u0262\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u0322\5\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u0323\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\5\11\1\u0324\1\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\1\303\1\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u0325\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0142\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\4\11\1\u0326\6\11\1\u0327" + + "\11\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0328" + + "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0329\10\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\317\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\2\11\1\u032a\3\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u032b\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u032c" + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u032d\10\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u0235\1\u032c\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u032e\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\11\1\u032f\15\11\2\0\1\10" + + "\25\11\3\10\5\u0330\1\0\2\10\1\0\1\10\1\u0330" + "\1\0\2\10\4\0\1\10\2\u0330\1\10\2\u0330\2\0" + + "\2\10\2\u0330\2\10\14\0\2\10\1\u0330\1\10\1\u0330" + "\3\10\1\u0330\6\10\2\0\2\10\1\u0330\17\10\2\u0330" + + "\3\10\5\11\1\u0331\1\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u0332\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\14\11\1\u0333\2\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\u0334\16\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\11\1\u0335\4\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0336\1\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u0337\2\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0338" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\4\11\1\u0339\12\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\16\11\1\u033a" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\3\11\1\u033b\2\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u033c\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u033d\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u033e\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\2\11\1\u033f\3\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0340\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0341\1\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\4\11\1\u0342\1\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\4\11\1\u0343\1\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u0344\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\11\1\u0345\4\11\14\0\13\11\1\u0341\3\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\u0346\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u0347\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + "\1\u0348\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\5\11\1\u0349" + + "\11\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u034a\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11" + "\1\u034b\7\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\u034c\1\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u034d\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u034e" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\13\11\1\u034f\3\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0350\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\4\11\1\u0351\12\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\2\11\1\u022a\6\11\1\u0304" + + "\13\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0352" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\11\11\1\u0269\5\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\3\11\1\u0353\2\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0354\4\11" + + "\14\0\17\11\2\0\1\10\23\11\1\u0355\1\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\12\11\1\u0356\12\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\3\11\1\u0357\13\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0358\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0359\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\1\11\1\u035a\15\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u035b\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0269\5\11\14\0\17\11\2\0\1\10\2\11" + "\1\u022a\6\11\1\u0304\13\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\1\11\1\u035c\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\u035d\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\32\0\1\u035e\73\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u035f\10\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\15\11\1\u0360\7\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0361\3\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u0362\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\13\11\1\u0363\3\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\3\11\1\u0364\2\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\4\11\1\u0365\12\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0366\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\4\11\1\u0367\12\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\u0368\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\11\1\u0369\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u036a" + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\4\11\1\u036b\12\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\1\11\1\u036c\15\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\2\11\1\u036d\3\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u036e\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u036f\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u0370\5\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\11\1\u0371\4\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u0372\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u0373\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\2\11\1\u0374\14\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u0375" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u0376\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\7\11\1\u0377\15\11\23\0\1\u0378" + + "\144\0\1\u01e8\13\0\1\u02b7\50\0\1\u02b9\1\u0379\5\u02b9" + "\1\u0379\1\u02b9\2\0\2\u02b9\1\0\1\u0379\1\u02b9\2\0" + + "\1\u02b9\1\u0379\6\u02b9\2\u0379\6\u02b9\4\u0379\1\0\1\u0379" + "\2\0\4\u0379\17\u02b9\2\0\1\u0379\25\u02b9\23\0\1\u037a" + + "\144\0\1\u01ec\13\0\1\u02ba\50\0\1\u02bc\1\u037b\5\u02bc" + "\1\u037b\1\u02bc\2\0\2\u02bc\1\0\1\u037b\1\u02bc\2\0" + + "\1\u02bc\1\u037b\6\u02bc\2\u037b\6\u02bc\4\u037b\1\0\1\u037b" + "\2\0\4\u037b\17\u02bc\2\0\1\u037b\25\u02bc\14\0\1\u037c" + + "\20\0\1\u037d\153\0\1\u037e\123\0\1\u037f\123\0\1\u0380" + "\107\0\1\u0381\144\0\1\u0382\104\0\1\u0383\20\0\1\u0384" + + "\125\0\1\u02ca\56\0\1\u0385\202\0\1\u0386\76\0\1\u0387" + "\1\0\1\u0388\143\0\1\u0389\133\0\1\u038a\123\0\1\u038b" + + "\122\0\1\u038c\103\0\1\u038d\127\0\1\u038e\124\0\1\u038f" + "\125\0\1\u0390\125\0\1\u0391\130\0\1\u0392\106\0\1\u0393" + + "\144\0\1\u0203\13\0\1\u02d3\50\0\1\u02d5\1\u0394\5\u02d5" + "\1\u0394\1\u02d5\2\0\2\u02d5\1\0\1\u0394\1\u02d5\2\0" + + "\1\u02d5\1\u0394\6\u02d5\2\u0394\6\u02d5\4\u0394\1\0\1\u0394" + "\2\0\4\u0394\17\u02d5\2\0\1\u0394\25\u02d5\3\0\5\u0395" + + "\5\0\1\u0395\10\0\2\u0395\1\0\2\u0395\4\0\2\u0395" + "\20\0\1\u0395\1\0\1\u0395\3\0\1\u0395\12\0\1\u0395" + + "\17\0\2\u0395\2\0\3\10\5\u0396\1\0\2\10\1\0" + "\1\10\1\u0396\1\0\2\10\4\0\1\10\2\u0396\1\10" + + "\2\u0396\2\0\2\10\2\u0396\2\10\14\0\2\10\1\u0396" + "\1\10\1\u0396\3\10\1\u0396\6\10\2\0\2\10\1\u0396" + + "\17\10\2\u0396\3\10\7\11\1\0\1\11\1\147\1\0" + "\1\u0397\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\2\11\1\u0398\14\11" + "\2\0\1\10\25\11\1\10\5\11\1\u0399\1\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\1\u039a\3\11\1\u039b\1\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\10\11\1\u039c\1\11\1\u02fe\12\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u032c\2\11\14\0" + "\17\11\2\0\1\10\12\11\1\u039d\12\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u039e\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\4\11\1\u039f\12\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u03a0\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u03a1\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + + "\1\u0262\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u03a2\4\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\4\11\1\u03a3\12\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0341" + + "\1\11\14\0\17\11\2\0\1\10\25\11\3\u013e\5\u03a4" + "\1\u0218\4\u013e\1\u03a4\3\u013e\1\0\4\u013e\2\u03a4\1\u013e" + + "\2\u03a4\4\u013e\2\u03a4\20\u013e\1\u03a4\1\u013e\1\u03a4\3\u013e" + + "\1\u03a4\12\u013e\1\u03a4\17\u013e\2\u03a4\2\u013e\3\0\5\u03a5" + "\5\0\1\u03a5\10\0\2\u03a5\1\0\2\u03a5\4\0\2\u03a5" + + "\20\0\1\u03a5\1\0\1\u03a5\3\0\1\u03a5\12\0\1\u03a5" + "\17\0\2\u03a5\2\0\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\u03a6\1\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u03a7\2\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\4\11\1\u03a8\1\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\u03a9\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u03aa\3\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u03ab\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\2\11\1\u03ac\14\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\13\11\1\u03ad\3\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u03ae\3\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u03af\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u01e4" + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\22\11\1\u03b0\2\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\u03b1\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u03b2\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\11\1\u03b3\4\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u03b4" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u03b5\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + "\1\u0374\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u03b6\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\6\11\1\u03b7\10\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u03b8" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u03b9\3\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\1\u03ba\1\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u03bb" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\u03bc" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\2\11\1\u03bd\3\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u03be\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\u03bf\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\11\1\u03c0\4\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u0180\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u03c1\1\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u03c2\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\2\11\1\u03c3\22\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\1\u03c4\5\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\13\11\1\u03c5\11\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\6\11\1\u03c6\10\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u03c7\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\u03c8\1\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03c9" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u03ca\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\2\11\1\u0167\14\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u03cb\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\4\11\1\u0229\1\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\u03cc\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u03cd\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + "\1\303\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u03ce\5\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u03cf" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u03d0\15\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\u0165\1\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + + "\1\u03d1\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u03d2\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\11\1\u0142\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\u03b2\1\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u016d\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\13\11\1\u016d\3\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03d3" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\1\11\1\u03d4\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03d5" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u03d6\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\6\11\1\u03d7\10\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u03d8" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u03d9\1\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\4\11\1\u03da\12\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\u03db\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\u03dc\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0221\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\1\11\1\u03dd\15\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u03de\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\1\11\1\u03df\15\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\2\11\1\u02e1\3\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\7\11\1\u03e0\7\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u03e1\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u03e2" + "\7\11\2\0\1\10\25\11\3\10\5\u03e3\1\0\2\10" + + "\1\0\1\10\1\u03e3\1\0\2\10\4\0\1\10\2\u03e3" + "\1\10\2\u03e3\2\0\2\10\2\u03e3\2\10\14\0\2\10" + + "\1\u03e3\1\10\1\u03e3\3\10\1\u03e3\6\10\2\0\2\10" + "\1\u03e3\17\10\2\u03e3\3\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\u03e4\1\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u03e5\2\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\1\u03e6\5\11\2\0\5\11\1\u0142\14\0\10\11\1\u03e7" + "\6\11\2\0\1\10\2\11\1\u03e8\1\11\1\u03e9\20\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11" + + "\1\u03ea\7\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u03eb\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\2\11\1\u0269\14\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\7\11\1\u03ec\7\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\13\11\1\u03ed\3\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\u03ee\5\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\5\11\1\u03ef" + + "\5\11\1\u03f0\11\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\4\11\1\u03f1\1\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + "\1\u03f2\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u03f3\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\1\u03f4\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\2\11\1\u028f\14\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\2\11\1\u03f5\3\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0235\3\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u03f6\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u03f7\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0142" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\1\u03f8\1\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u03f9\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\7\11\1\u03fa\7\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u03fb\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\6\11\1\u03fc\10\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\13\11\1\u03fd\11\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11" + + "\1\u03fe\6\11\1\u03ff\13\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\3\11\1\u0400\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u0401\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\2\11\1\u02e1\3\11\2\0\1\u015d\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u0402\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0403" + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0404\10\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u0405\3\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11" + "\1\u0406\14\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\1\u0407\1\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\5\11\1\u0408\17\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0409\15\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\1\11\1\u040a\15\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11" + + "\1\u040b\13\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\6\11\1\u040c\10\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\4\11\1\u040d\12\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\11\11\1\u040e" + + "\5\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u040f\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11" + "\1\u0410\2\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\3\11\1\u0411\2\11\14\0\17\11\2\0" + + "\1\10\25\11\14\0\1\u0412\111\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\u0413\1\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\u0414\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\11\1\u0415\4\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\6\11\1\u0416\10\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0417\2\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\5\11\1\u0418\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0419\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u041a\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\1\u041b\16\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u041c\5\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\11\11\1\u041d\13\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\12\11\1\u026b" + "\4\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u041e\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u041f\1\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u0420\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0421" + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\5\11\1\u0422\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\2\11\1\u0423\14\11\1\u0301" + "\5\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u0424\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u0425\5\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\13\11\1\u0262\3\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\15\11\1\u02fc" + "\1\11\2\0\1\10\4\11\1\u02fd\6\11\1\u02ff\3\11" + + "\1\u0301\5\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u0426\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u0142\4\11\14\0" + "\17\11\2\0\1\10\1\11\1\u0427\23\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\3\11\1\u0428\2\11\14\0\17\11" + + "\2\0\1\10\25\11\23\0\1\u02b9\125\0\1\u02bc\177\0" + "\1\u0429\67\0\1\u042a\162\0\1\u042b\70\0\1\u0429\125\0" + + "\1\u042c\77\0\1\u037f\152\0\1\u042d\127\0\1\u042e\155\0" + "\1\u042f\73\0\1\u0430\151\0\1\u0431\125\0\1\u0432\54\0" + + "\1\u0433\174\0\1\u0434\105\0\1\u0435\124\0\1\u02ca\127\0" + "\1\u0436\123\0\1\u0437\154\0\1\u02ca\131\0\1\u0438\71\0" + + "\1\u0439\153\0\1\u02ca\126\0\1\u043a\63\0\1\u02d5\105\0" + "\5\u043b\5\0\1\u043b\10\0\2\u043b\1\0\2\u043b\4\0" + + "\2\u043b\20\0\1\u043b\1\0\1\u043b\3\0\1\u043b\12\0" + "\1\u043b\17\0\2\u043b\2\0\3\10\5\11\1\0\2\10" + + "\1\0\1\10\1\11\1\0\2\10\4\0\1\10\2\11" + "\1\10\2\11\2\0\2\10\2\11\2\10\14\0\2\10" + + "\1\11\1\10\1\11\3\10\1\11\6\10\2\0\2\10" + "\1\11\17\10\2\11\3\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\4\11\1\247\12\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u043c\2\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u043d\2\11\14\0\6\11\1\u043e" + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\11\1\u03b9\15\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\1\11\1\u043f\15\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u0440\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\1\11\1\u0441\15\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0442\1\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0443\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0444\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\3\11" + + "\1\u0445\21\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u0446\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u0447\5\11\14\0\17\11" + "\2\0\1\10\25\11\3\u013e\5\170\1\u0218\4\u013e\1\170" + + "\3\u013e\1\0\4\u013e\2\170\1\u013e\2\170\4\u013e\2\170" + "\20\u013e\1\170\1\u013e\1\170\3\u013e\1\170\12\u013e\1\170" + + "\17\u013e\2\170\2\u013e\3\0\5\u0448\5\0\1\u0448\10\0" + "\2\u0448\1\0\2\u0448\4\0\2\u0448\20\0\1\u0448\1\0" + + "\1\u0448\3\0\1\u0448\12\0\1\u0448\17\0\2\u0448\2\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11" + "\1\303\2\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\5\11\1\u0449\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0142" + + "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\2\11\1\u044a\14\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\1\0" + "\1\u044b\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u044c" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\1\u03e6" + + "\5\11\2\0\6\11\14\0\17\11\2\0\1\10\7\11" + "\1\u044d\15\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u0410\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\5\11\1\u044e\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\1\0" + + "\1\u044f\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u0450\4\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\1\u0142\1\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0451\4\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\u022e\1\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\4\11\1\u0452\1\11\2\0" + "\1\u0453\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0454" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u0455\1\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u0456" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\3\11\1\u0457\2\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\3\11\1\u0458\13\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u0459\5\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u03ba\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\11\1\u045a\4\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\6\11\1\u0455\10\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u045b" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\3\11\1\u045c\2\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u045d\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u045e" + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u045f\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u0460\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\2\11\1\u0461\3\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u0462\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u0463\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\2\11\1\u0464\14\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\u0465\5\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\4\11\1\u0165\12\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0466\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\11\1\u0467\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\11" + + "\1\u0142\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u0468\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\3\11\1\u0469\13\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u046a\5\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u03a6\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\u016d\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u046b\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u046c" + "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\11\11\1\u046d" + + "\13\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\247\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u046e\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u046f\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u0470\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\3\11\1\u0471\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u03db\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\1\u0472\1\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0473" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\3\11\1\u0474\13\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\2\11\1\u0475\3\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + + "\1\u0476\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\11" + "\1\u0477\23\11\3\10\5\u0478\1\0\2\10\1\0\1\10" + + "\1\u0478\1\0\2\10\4\0\1\10\2\u0478\1\10\2\u0478" + "\2\0\2\10\2\u0478\2\10\14\0\2\10\1\u0478\1\10" + + "\1\u0478\3\10\1\u0478\6\10\2\0\2\10\1\u0478\17\10" + "\2\u0478\3\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\u0479\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\4\11\1\u047a\12\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\6\11\1\u047b\10\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\313\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u047c\5\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u047d" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u047e\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\6\11\1\u047f\10\11\2\0\1\10\25\11\1\10" + + "\5\11\1\u0480\1\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\5\11\1\u0481\17\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\1\11\1\u0482\4\11\2\0\6\11\14\0\15\11" + "\1\u02fc\1\11\2\0\1\10\4\11\1\u03e9\1\u0481\11\11" + + "\1\u0301\4\11\1\u0483\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\11\11\1\u0484\13\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0485\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\12\11\1\u0486\4\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\6\11\1\u0487\10\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\2\11\1\u0488\3\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u0489\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + + "\1\u048a\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u048b\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\5\11\1\u048c\17\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u048d" + + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u048e\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u048f\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\7\11\1\u0490\7\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0491\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u0492\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u0493\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u0494\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u0495\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u0496\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\2\11\1\u0497\14\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0498" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u0499\1\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u049a\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\3\11\1\u045c\13\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\1\u049b\5\11\1\0" + + "\1\u049c\6\11\14\0\10\11\1\u049d\6\11\2\0\1\10" + "\16\11\1\u049e\6\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\14\11\1\u049f\2\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u04a0\2\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\u0262\1\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u04a1\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u04a2\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11" + + "\1\u04a3\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\16\11\1\u04a4\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\u04a5\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\3\11\1\u04a6\2\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\5\11\1\u04a7" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\4\11\1\u04a8\1\11\14\0" + "\17\11\2\0\1\10\25\11\35\0\1\u04a9\70\0\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\13\11\1\u04aa" + + "\3\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\6\11\1\u04ab\10\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\4\11\1\u04ac\1\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\12\11\1\u04ad\4\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\2\11\1\u04ae" + + "\3\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\5\11\1\u04af\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\6\11\1\u04b0\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\6\11\1\u04b1\10\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\4\11\1\u04b2\1\u04b3\2\0\6\11\14\0\17\11" + "\2\0\1\10\11\11\1\u04b4\13\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11" + + "\1\u04b5\22\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u04b6\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\5\11\1\u0142\14\0\17\11" + "\2\0\1\10\2\11\1\u04b7\1\11\1\u04b8\6\11\1\u04b9" + + "\11\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u04ba" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\4\11\1\u04bb\12\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u04bc\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\5\11\1\u04bd\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\u04be\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u04bf\5\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\6\11\1\u04c0\10\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u04c1\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\2\11\1\u04c2\3\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11" + "\1\u04c3\14\0\17\11\2\0\1\10\25\11\77\u0429\1\u02ca" + + "\26\u0429\36\0\1\u04c4\147\0\1\u04c5\103\0\1\u04c6\154\0" + "\1\u04c7\121\0\1\u04c8\106\0\1\u02ca\77\0\1\u02ca\152\0" + + "\1\u038b\121\0\1\u0392\151\0\1\u038b\102\0\1\u02ca\130\0" + "\1\u04c9\123\0\1\u04ca\151\0\1\u04cb\122\0\1\u04cc\61\0" + + "\1\u04c7\171\0\1\u0430\50\0\5\u04cd\5\0\1\u04cd\10\0" + "\2\u04cd\1\0\2\u04cd\4\0\2\u04cd\20\0\1\u04cd\1\0" + + "\1\u04cd\3\0\1\u04cd\12\0\1\u04cd\17\0\2\u04cd\2\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u04ce\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\5\11\1\u04cf\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u04d0" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\11\1\u04d1\4\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\u0198\1\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u04d2\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\12\11\1\u04d3\4\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u04d4" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\3\11\1\u04d5\2\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u04d6\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u04d7\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\6\11\1\u04d8\10\11\2\0\1\10\25\11" + + "\3\0\5\173\5\0\1\173\10\0\2\173\1\0\2\173" + "\4\0\2\173\20\0\1\173\1\0\1\173\3\0\1\173" + + "\12\0\1\173\17\0\2\173\2\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u04d9\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u04da" + "\3\11\14\0\17\11\2\0\1\10\25\11\6\0\1\u04db" + + "\16\0\1\u04dc\1\u04dd\2\0\1\u04de\74\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\2\11\1\u04df\3\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\3\11\1\u04e0\2\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + + "\1\u04e1\15\11\2\0\1\10\25\11\32\0\1\u04e2\34\0" + "\1\u04e3\36\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u04e4\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\3\11\1\u04e5\2\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u04e6\1\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u04e7" + "\1\u04e8\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\2\11\1\u04e9\3\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0341\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + "\1\u04ea\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\2\11\1\u0341\14\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\u04eb\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\4\11\1\u04ec\1\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\7\11\1\u04ed\7\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\5\11\1\u04ee\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\u04ef\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\4\11\1\u04f0\1\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\11\1\u04f1\15\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u04f2" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u04f3\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\14\11\1\u0190\10\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u0165\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\13\11\1\u0142\3\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\5\11\1\u04f4\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\u04f5\16\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11" + + "\1\u04f6\14\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\3\11\1\303\13\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\u04f7\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u04f8\3\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u019f\3\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + "\1\u016d\12\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u04f9\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u04fa\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\1\u04fb\1\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\5\11\1\u04fc\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u04fd\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u04fe\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u016f\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\5\11\1\u0324\1\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\15\11" + + "\1\u04ff\7\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u0500\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\5\11\1\u023a\2\0\6\11\14\0\17\11" + "\2\0\1\10\15\11\1\u0300\7\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u0501\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\4\11\1\u0502\12\11\2\0\1\10\25\11\3\10" + "\5\330\1\0\2\10\1\0\1\10\1\330\1\0\2\10" + + "\4\0\1\10\2\330\1\10\2\330\2\0\2\10\2\330" + "\2\10\14\0\2\10\1\330\1\10\1\330\3\10\1\330" + + "\6\10\2\0\2\10\1\330\17\10\2\330\3\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u0212\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0503" + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\5\11\1\u0230\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\1\11\1\u0504\15\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u01bc" + "\14\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u0505\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + + "\1\u0506\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\1\11\1\u0507\15\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\1\11\1\u0508\15\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\u0509\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\1\11\1\u050a\15\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\320\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u050b\2\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u050c" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\1\u050d\24\11\1\10\5\11\1\u050e\1\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\1\u039a" + "\5\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\14\11" + + "\1\u050f\2\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0510\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u0511\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u0512" + + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u0513\1\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0410" + "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\3\11\1\u0514\13\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u0515\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + "\1\u0516\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\3\11\1\u0517\2\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0518" + + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\11\1\u0519\4\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\5\11\1\u051a\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u051b\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\5\11\1\u051c\1\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\13\11" + "\1\u051d\1\11\1\u051e\7\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u051f\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\4\11\1\u0520\1\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\1\11\1\u0521\1\u0522" + "\2\11\1\u0523\3\11\1\u0524\13\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\14\11\1\u02b6\2\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\1\11\1\u0525\15\11\2\0\1\10\25\11\103\0" + "\1\u0526\3\0\1\u0527\16\0\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u0484\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0528" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\1\u0529\5\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\5\11" + "\1\u052a\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\15\11\1\u052b\7\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\11\1\u052c\4\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u052d" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u052e\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\4\11\1\u052f\1\u04a7\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\11\1\230\4\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\11\11\1\u0530\13\11" + + "\36\0\1\u0531\67\0\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u0532" + + "\1\11\2\0\6\11\14\0\15\11\1\u0533\1\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\u0534\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0535\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u0536\3\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\4\11\1\u01c4\1\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\10\11\1\u0537\6\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\12\11\1\u0538\4\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u0539\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\6\11\1\u053a\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u053b" + + "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u053c\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u053d\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u053e" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u053f\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0540\1\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\u0541" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\4\11\1\u0542\1\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\16\11\1\u0543\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + "\1\u0544\5\11\1\u0545\2\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\1\11\1\u0546\4\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u0547\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\14\11\1\u0548\2\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\12\11\1\u0549\4\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u054a\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u054b\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\u054c\16\11\2\0\1\10" + + "\25\11\40\0\1\u054d\145\0\1\u054e\132\0\1\u054f\100\0" + "\1\u0550\127\0\1\u0551\114\0\1\u0552\35\0\1\u0553\73\0" + + "\1\u038b\130\0\1\u0554\123\0\1\u0555\72\0\5\u0127\5\0" + "\1\u0127\10\0\2\u0127\1\0\2\u0127\4\0\2\u0127\20\0" + + "\1\u0127\1\0\1\u0127\3\0\1\u0127\12\0\1\u0127\17\0" + "\2\u0127\2\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\1\0\1\u0556" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u0162\5\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\4\11\1\u0557\12\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0558" + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\2\11\1\u0559" + + "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u055a" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\11\1\u055b\4\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\14\11\1\u055c\2\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u055d\3\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\u055e\1\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\u055f\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\4\11\1\u0560\20\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\5\11\1\u0561\11\11\2\0\1\10\25\11" + "\40\0\1\u0562\125\0\1\u0563\76\0\1\u0564\201\0\1\u0565" + + "\40\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0566" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u0567\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\u0568\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\14\0\1\u0569\150\0" + + "\1\u0569\66\0\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\3\11\1\u056a\13\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\14\11\1\u056b" + "\2\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u056c\2\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u056d" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\2\11\1\u056e\3\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u02fa" + "\1\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u056f\4\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u0570\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\u0571\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0572\10\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\u0573\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u0574" + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\6\11\1\u0575\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0576" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\4\11\1\u0577\12\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0578" + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\5\11\1\u0579\17\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\4\11\1\u057a\20\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u057b\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u057c\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u03d7\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u057d" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u057e\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u0167\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\5\11\1\u0142\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u057f\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u0580\5\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0581" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\11\1\u0582\4\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\1\11\1\u0583" + "\4\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\4\11" + + "\1\u0584\12\11\2\0\1\10\25\11\1\10\5\11\1\u0585" + "\1\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\1\u03e6\5\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\2\11\1\u0586\6\11\1\u0587\6\11\1\106" + + "\4\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0538" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0588\10\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\1\u0410\1\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\11\1\u0589\4\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\16\11\1\u058a\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u058b" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u058c\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u027e\10\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\4\11\1\u058d\12\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u058e\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\3\11\1\u058f\2\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\1\11\1\u0590\15\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\5\11\1\u023a\2\0\6\11\14\0\17\11" + "\2\0\1\10\11\11\1\u0591\13\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\4\11" + + "\1\u02fd\20\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u0592" + + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\7\11\1\u0593\7\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\2\11\1\u0594\3\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u0595\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u0596\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0597" + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\2\11\1\u0598\3\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\13\11\1\u0599\11\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u059a\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\7\11\1\u059b\7\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\6\11\1\u059c\10\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\4\11\1\u059d\1\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\2\11" + "\1\u059e\3\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u059f" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\2\11\1\u05a0\14\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\1\11\1\u05a1\15\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u05a2\4\11" + + "\14\0\4\11\1\u05a3\12\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\u05a4\5\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\1\u05a5\16\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u05a6" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\4\11\1\u05a7\12\11\2\0\1\10" + "\25\11\35\0\1\u05a8\104\0\1\u05a9\111\0\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u05aa\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\6\11\1\u05ab\10\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\16\11" + "\1\u0142\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\11\1\u05ac\4\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u05ad\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\6\11\1\u05ae\10\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\2\11\1\u05af\14\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u05b0" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u05b1\2\11\14\0\17\11\2\0\1\10" + "\25\11\73\0\1\u05b2\32\0\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\11\1\u05b3\15\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05b4" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u05b5\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + "\1\u05b6\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\1\11\1\u05b7\23\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u05b8\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0162" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\4\11\1\u05b9\1\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u05ba\3\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u05bb\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u05bc\5\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u05bd" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u05be\15\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\11\1\u05bf\4\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11" + + "\1\u05c0\13\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u05c1\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\1\u05c2\5\11\2\0\6\11" + "\14\0\10\11\1\u05c3\6\11\2\0\1\10\4\11\1\u05c4" + + "\20\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\15\11\1\u02fc\1\11\2\0\1\10\4\11\1\u02fd\20\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u04fc\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\15\11\1\u02ef\1\11\2\0" + + "\1\10\15\11\1\u0300\7\11\1\10\7\11\1\0\1\u05c5" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\2\11\1\u05c6\3\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\20\11\1\106" + + "\4\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05c7" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\1\u05c8\1\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + "\1\u05c9\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\11\11\1\u0304\13\11\41\0\1\u0429\121\0\1\u0429" + "\125\0\1\u05ca\131\0\1\u02ca\124\0\1\u05cb\152\0\1\u05cc" + + "\100\0\1\u05cd\122\0\1\u05ce\163\0\1\u02ca\60\0\1\u04dd" + "\77\0\1\10\7\11\1\0\1\u05cf\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u05d0\2\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\u05d1\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u05d2\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\1\0\1\u05d3\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\15\11\1\u02fc\1\11\2\0" + + "\1\10\17\11\1\u0301\5\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\1\u05d4\1\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\u05d5\5\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\1\u05d6\1\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u05d7\1\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\10\11\1\u05d8" + "\2\11\1\u03ce\11\11\35\0\1\u05d9\104\0\1\u05da\176\0" + + "\1\u05db\101\0\1\u05dc\64\0\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u0543\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\u028f\16\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\11\1\u05dd\4\11\14\0\17\11\2\0" + + "\1\10\25\11\63\0\1\u05de\42\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\11\11" + "\1\u05df\13\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\4\11\1\u02fd\6\11\1\u02ff" + + "\11\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\13\11\1\u05e0\3\11\2\0\1\10\25\11\1\10\5\11" + "\1\u05e1\1\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\1\0\1\u05e2\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\4\11\1\u05e3\1\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\6\11\1\u05e4\10\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\2\11\1\u0423\22\11\1\10\7\11\1\0\1\u05e5\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\5\11\1\u05e6\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u05e7\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u03b2" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\1\u0269\24\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\4\11\1\u05e8\20\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\16\11\1\u0162\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05e9" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0142\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\1\u05ea\1\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\11\11\1\u05eb" + "\5\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\1\u046a\24\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\303" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\1\u05ec\16\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\4\11\1\u05ed\1\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u05ee\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u05ef" + + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\u05f0\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u05f1" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u05f2\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u05f3\3\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u05f4\1\u05f5" + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\4\11\1\u0162\12\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\1\11\1\u05f6\4\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u05f7\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\1\11\1\u05f8\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u0457" + + "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u05f9\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\1\11\1\u05fa\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\2\11\1\u05fb\3\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\1\u05fc\1\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u05fd\2\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u05fe\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u05ff\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u0162" + "\14\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u0600\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\14\11\1\u0601\2\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u0602\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + "\1\u0603\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\11\1\u0604\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u0605\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0606\2\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\2\11\1\u0607\3\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u0608\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\14\11\1\u0609\10\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\11\1\u060a\15\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\1\u060b\5\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u060c\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\13\11\1\u060d\3\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u060e" + + "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u060f\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0610" + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\u0611\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u03a8\2\11\14\0\17\11\2\0\1\10\25\11\40\0" + "\1\u0612\150\0\1\u0613\42\0\1\10\7\11\1\0\1\u0180" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\5\11\1\u0614\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\2\11\1\u0615\3\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0616\3\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u0617\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\4\11\1\u0618\20\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u0619\4\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\4\11\1\u061a\12\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u061b" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u061c\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u061d\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u061e" + + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u061f\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\11" + + "\1\u0620\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u0621\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + + "\1\u0622\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u0623" + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\u0624\16\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0625\3\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u035c\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u0626\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\u0627\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\3\11\1\u0628\13\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u03c7" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u0629\2\11\14\0\1\11\1\u062a\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\1\u0230\1\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u062b" + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\3\11\1\u0344\2\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\4\11\1\u062c\20\11\1\10\5\11" + "\1\u062d\1\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u0513\5\11\14\0\17\11\2\0\1\10\25\11\67\0" + + "\1\u062e\53\0\1\u062f\147\0\1\u0630\123\0\1\u0631\127\0" + "\1\u0632\66\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + "\1\u0633\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u0410\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\3\11\1\u0634\13\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0635\14\0" + "\17\11\2\0\1\10\25\11\103\0\1\u0636\3\0\1\u0637" + + "\16\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\4\11\1\u0262\12\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\11\11\1\u0638\13\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\2\11\1\u0639\14\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u063a\2\11" + + "\14\0\17\11\2\0\1\10\25\11\37\0\1\u063b\160\0" + "\1\u063c\74\0\1\u063d\121\0\1\u063e\70\0\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\4\11\1\u063f\12\11" + + "\2\0\1\10\25\11\60\0\1\u063d\45\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u05f4\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\5\11\1\u0640\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\4\11\1\u0641\1\11\14\0" + + "\17\11\2\0\1\10\25\11\26\0\1\u0642\77\0\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\2\11\1\u0643\3\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\3\11\1\u01d0\13\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0594" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\5\11\1\u04ef\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0644" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\1\u0645\1\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0646" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\2\11\1\u0647\14\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\u0648\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u01d1\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\1\11\1\u0649\15\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\3\11" + "\1\u064a\13\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u0544\10\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\1\u064b\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u064c\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + "\1\u064d\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u0142\5\11\14\0\17\11" + + "\2\0\1\10\3\11\1\u064e\21\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u064f\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11"; + private static final String ZZ_TRANS_PACKED_1 = "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\3\11\1\u0650\13\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\u0651\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0652" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0653\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\5\11\1\u0654\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\4\11\1\u0655\1\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\4\11\1\u0656\1\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\11\1\u0657" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\1\u0658\1\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0659\4\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\23\11" + "\1\u0355\1\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\2\11\1\u065a\14\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\2\11\1\u065b\22\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\6\11\1\u065c\10\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u065d" + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\1\11\1\u065e\4\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\7\11\1\u065f\7\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\u0660\5\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\4\11\1\u0661\1\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u0662" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0663\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\3\11\1\u0664\13\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u0665" + + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\7\11\1\u0666\7\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u05bb\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u0667\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0538\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u0668\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\6\11\1\u0669\10\11\2\0\1\10\25\11\35\0" + + "\1\u066a\130\0\1\u066b\65\0\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u066c\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0623\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\2\11\1\u066d\14\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\2\11\1\u066e\14\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\13\11\1\u0162\11\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\7\11\1\u066f\7\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\u0670" + + "\16\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\7\11\1\u0671\7\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\11\1\u0672\15\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\11\1\u0162\4\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u04cf\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u0673\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\4\11\1\u0674\1\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\1\u0675\24\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\2\11\1\352\14\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\2\11\1\u0676\3\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + + "\1\u0622\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u0677\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + "\1\u0678\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u0679\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u067a\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u067b\5\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\u032c\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\u067c\1\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\u067d" + + "\5\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u067e\2\11\14\0\17\11" + "\2\0\1\10\25\11\60\0\1\u067f\104\0\1\u0680\127\0" + + "\1\u0632\124\0\1\u02ca\146\0\1\u02ca\44\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u0681\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\3\11\1\u04c2\13\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u0682\10\11\2\0\1\10\25\11\11\0\1\u0683\130\0" + "\1\u0684\111\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\1\11\1\u0685\15\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\2\11\1\u0686\3\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u0687\1\11\14\0\17\11\2\0\1\10" + "\25\11\72\0\1\u0688\44\0\1\u0689\175\0\1\u068a\103\0" + + "\1\u068b\66\0\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u068c\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\5\11\1\u068d\1\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\11\1\u068e\15\11\2\0\1\10" + + "\25\11\65\0\1\u068f\40\0\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\4\11" + + "\1\u0690\1\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0294\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\4\11" + + "\1\u0691\20\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u0692\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\2\11\1\u0693\3\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\7\11\1\u0694" + + "\15\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u0695" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u0696\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\2\11\1\u0697\14\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0698\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u0699\1\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\u069a\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\1\u069b\16\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\1\0\1\u069c\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\3\11\1\u05c9\13\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u069d\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\11\1\u069e\4\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\4\11\1\u069f\1\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u06a0\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u06a1\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\6\11\1\u06a2\10\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u06a3\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\1\0\1\u06a4\5\11\1\u06a5\14\0\15\11\1\u06a6\1\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\5\11\1\u023a" + + "\2\0\6\11\14\0\17\11\2\0\1\10\4\11\1\u0618" + "\20\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u06a7\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u06a8\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\5\11\1\u06a9\17\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\1\11\1\u06aa" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\15\11\1\u02fc\1\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\4\11\1\u06ab\12\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\2\11\1\u06ac\3\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\5\11\1\u0162\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u04cf" + + "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\2\11\1\u06ad\3\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\4\11\1\u06ae\12\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\3\11\1\u06af\2\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\5\11\1\u06b0\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u06b1\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u06b2\5\11\14\0\17\11\2\0\1\10\25\11" + + "\37\0\1\u05b2\77\0\1\u06b3\114\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\2\11\1\u06b4\3\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\5\11\1\u06b5\1\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\5\11" + "\1\u06b6\2\0\6\11\14\0\17\11\2\0\1\10\13\11" + + "\1\u06b7\11\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\1\u06b8\5\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u06b9\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\6\11\1\u06ba\10\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u06bb\2\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\u06bc\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u06bd\2\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u06be\15\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u06bf\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\1\u04cf\1\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\7\11\1\u06c0\7\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11" + + "\1\u06c1\7\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\2\11" + "\1\u06c2\5\11\1\u06c3\14\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\u06c4\5\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0162\2\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\2\11\1\u06c5\14\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u06c6\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\4\11\1\u06c7\1\11\14\0" + + "\17\11\2\0\1\10\25\11\63\0\1\u0429\77\0\1\u0555" + "\70\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u06c8" + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u06c9\15\11" + + "\2\0\1\10\25\11\27\0\1\u06ca\163\0\1\u06cb\40\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11" + "\1\u06cc\14\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\5\11\1\u06cd\11\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\u0544\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\60\0\1\u04a9\105\0" + "\1\u06ce\124\0\1\u06cf\124\0\1\u06d0\67\0\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\1\11\1\u06d1\4\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\1\11\1\u06d2\15\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\5\11\1\u0513\14\0" + "\17\11\2\0\1\10\25\11\72\0\1\u06d3\33\0\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\4\11\1\u06d4\1\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\1\u06d5\1\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\1\11\1\u06d6\4\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\5\11\1\u0142\11\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\1\11\1\u06d7\15\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\7\11\1\u06d8" + "\7\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\1\11\1\u06d9\4\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\4\11\1\u06da" + + "\1\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\4\11\1\u06db\1\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\2\11\1\u06dc\3\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u06dd\3\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\1\11\1\u06de\15\11\2\0" + "\1\10\25\11\103\0\1\u06df\22\0\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\u0341" + + "\24\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u06e0" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\11\11\1\u0410\5\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\15\11\1\u0300\7\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\13\11" + + "\1\u06e1\3\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\13\11\1\u0341\3\11\2\0" + "\1\10\25\11\114\0\1\u06e2\11\0\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\1\0\1\u06e3\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u06e4" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u06e5\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\1\352\1\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\1\u06e6\16\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u06e7\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\1\u0162\16\11\2\0" + "\1\10\25\11\1\10\5\11\1\u06e8\1\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\11\1\u06e9\4\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u06ea\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u06eb\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\5\11\1\352\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\2\11\1\u06ec\14\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u06ed\15\11" + "\2\0\1\10\25\11\72\0\1\u06ee\33\0\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\u06ef\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\4\11" + + "\1\u06f0\1\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\1\u06f1\1\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\3\11\1\u06f2\13\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u06f3\10\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u06f4\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u03ad" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u06f5\5\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u06f6" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\14\11\1\u06f7\2\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\u06f8\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\2\11\1\u06ea\3\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\17\11\2\0\1\10\17\11\1\u0301\5\11" + "\1\10\5\11\1\u06f9\1\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\4\11\1\u06fa\1\u023a" + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\u06fb\5\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u06fc\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\2\11\1\u06fd\22\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u06fe\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u06ff\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\2\11\1\u0700\3\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\6\11\1\u0701\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0162" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\42\0\1\u0702\146\0" + "\1\u0703\42\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\6\11\1\u0704\10\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\13\11\1\u03ce\11\11\72\0\1\u0705\71\0\1\u05b2" + "\154\0\1\u0706\40\0\1\10\7\11\1\0\1\u0707\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\1\u0708\1\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\25\11\67\0\1\u0709\36\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u070a\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\6\11\1\u070b\10\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + + "\1\10\15\11\1\u070c\7\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\1\11\1\u052a\15\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u070d" + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u070e\5\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + + "\1\u070f\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u02e1" + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\4\11\1\u045c\12\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u0710" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\2\11\1\u0410\14\11\2\0" + "\1\10\25\11\65\0\1\u0711\40\0\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\7\11\1\u0712\7\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\u0713\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\15\0\1\u0714\212\0" + "\1\u0715\23\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\u0716\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\u0717\5\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u0718\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\1\u0719\1\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\u071a\1\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u071b\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\4\11\1\u0538\1\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\5\11\1\u071c\1\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u071d" + "\1\u023a\2\0\6\11\14\0\17\11\2\0\1\10\15\11" + + "\1\u071e\1\11\1\u071f\5\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\2\11\1\u0522" + "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u06ec" + "\4\11\14\0\17\11\2\0\1\10\25\11\57\0\1\u0720" + + "\46\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0721" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u0722\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\4\11\1\u0723\12\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\2\11\1\u0724\3\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\1\u0725\1\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\5\11\1\u02dd\1\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u071d" + "\1\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\1\11\1\u0726\15\11\1\u071f\5\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\4\11\1\u0538" + "\12\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\17\11\2\0\1\10\2\11\1\u0727" + + "\22\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u06de" + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\4\11\1\u03d9\1\11\14\0\1\11\1\u0728" + "\15\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\6\11\1\u0729\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\11\1\u072a" + + "\4\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\4\11\1\u072b\1\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\u072c\5\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\1\11\1\u072d\4\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\3\11\1\u072e\2\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\1\u072f" + + "\1\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\1\u035c\5\11\14\0\17\11\2\0\1\10" + + "\25\11\37\0\1\u0730\146\0\1\u0731\45\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\1\11\1\u0732\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\25\11\37\0\1\u0733\102\0\1\u0734\111\0\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u0735\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\12\11\1\u0736\4\11\2\0\1\10\25\11" + "\37\0\1\u0737\66\0\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\13\11\1\u04fc\3\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u0738\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\11\1\u0739\4\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u073a\5\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\14\11\1\u073b\2\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\1\0\1\u073c" + + "\6\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\u073d\5\11\14\0\17\11\2\0" + "\1\10\25\11\66\0\1\u073e\37\0\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\2\11\1\u05c4\3\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + + "\1\u073f\4\11\14\0\17\11\2\0\1\10\25\11\25\0" + "\1\u0740\41\0\1\u0741\15\0\1\u0742\10\0\1\u0743\36\0" + + "\1\u0744\76\0\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\2\11\1\u0745\14\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u0746" + "\10\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u0747\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\2\11\1\u0662\14\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\3\11\1\u0748\2\11\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\6\11\1\u0749\10\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + + "\1\u074a\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\4\11\1\u074b\1\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\1\11" + "\1\u074c\4\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\6\11\1\u074d" + + "\10\11\2\0\1\10\25\11\35\0\1\u074e\70\0\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\1\11\1\u0662\4\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\5\11\1\u074f\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + + "\1\u0750\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u0751\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\16\11\1\u0410\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\11\1\u05a2\4\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\6\11\1\u0752\10\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\1\u0753\1\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u0754\3\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u0755" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u0756\10\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\11\1\u0757\4\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\1\0\1\u0758\6\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\1\u0759\5\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11" + "\1\u075a\14\11\2\0\1\10\25\11\35\0\1\u05b2\151\0" + + "\1\u075b\44\0\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + + "\14\0\6\11\1\u075c\10\11\2\0\1\10\25\11\74\0" + "\1\u075d\123\0\1\u075e\33\0\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\2\11\1\u02e1\14\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u075f" + + "\3\11\14\0\17\11\2\0\1\10\25\11\63\0\1\u0760" + "\42\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\6\11\1\u0761\10\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\1\11\1\u0762\15\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\4\11\1\u071d" + + "\1\11\2\0\6\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + "\2\0\1\10\10\11\1\u05d8\14\11\6\0\1\u0763\117\0" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\6\11" + + "\1\u0764\10\11\2\0\1\10\25\11\62\0\1\u0765\43\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0335\2\11" + "\14\0\17\11\2\0\1\10\25\11\60\0\1\u0766\125\0" + + "\1\u0767\61\0\1\u0730\147\0\1\u0768\131\0\1\u0769\63\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\1\11" + "\1\u0344\15\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\5\11\1\u076a\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u076b" + + "\2\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\5\11\1\u076c\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u076d\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u0442\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\2\11" + + "\1\u076e\14\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\3\11\1\u076f\2\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\2\11" + "\1\u0770\3\11\14\0\17\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u0771" + + "\14\11\2\0\1\10\25\11\32\0\1\u0772\73\0\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\5\11\1\u0773\14\0\17\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\2\11\1\u0774\14\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0775\2\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\17\11\2\0\1\10\1\u0538" + "\24\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u0776" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\4\11\1\u01d1\1\11\14\0\17\11\2\0" + + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\3\11" + + "\1\u0777\2\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\2\11\1\u03c0" + "\14\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\2\11\1\u0778\3\11\14\0\17\11\2\0\1\10" + + "\25\11\74\0\1\u0779\31\0\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\1\11\1\u077a\15\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\3\11\1\u0235" + "\2\11\14\0\17\11\2\0\1\10\25\11\37\0\1\u077b" + + "\66\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\4\11\1\u0751\12\11\2\0\1\10\25\11\40\0\1\u077c" + "\177\0\1\u077d\13\0\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\1\11\1\u077e\4\11\14\0\17\11\2\0\1\10\25\11" + + "\65\0\1\u077f\40\0\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\3\11\1\u0780\2\11\14\0\17\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\5\11" + "\1\247\11\11\2\0\1\10\25\11\60\0\1\u0781\45\0" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u0782\2\11" + + "\14\0\17\11\2\0\1\10\25\11\41\0\1\u0783\100\0" + "\1\u0784\122\0\1\u0785\201\0\1\u0786\75\0\1\u0787\70\0" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u0788\5\11\14\0" + + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\2\11\1\u0789\14\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\5\11\1\u078a" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\5\11\1\u04a6\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u078b" + + "\3\11\14\0\17\11\2\0\1\10\25\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\13\11\1\u0662\3\11" + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\4\11\1\u078c\12\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\1\u06ab\5\11\14\0" + + "\17\11\2\0\1\10\25\11\64\0\1\u078d\41\0\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\6\11\14\0\17\11\2\0" + "\1\10\10\11\1\u078e\14\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\2\0\6\11\14\0\6\11\1\u078f\10\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u0635\5\11" + + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\u0790\5\11\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\7\11\1\u0791\7\11\2\0\1\10\25\11\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\3\11\1\u0792\2\11\14\0\17\11" + + "\2\0\1\10\25\11\37\0\1\u0793\66\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\1\11\1\u0794\4\11\14\0\17\11" + "\2\0\1\10\25\11\26\0\1\u0795\54\0\1\u0796\36\0" + + "\1\u0797\171\0\1\u0798\45\0\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\5\11\1\u0799\14\0\17\11\2\0\1\10\25\11" + "\66\0\1\u079a\37\0\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\4\11\1\u079b\1\11\14\0\17\11\2\0\1\10\25\11" + + "\14\0\1\u079c\111\0\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\4\11\1\u079d\1\11\14\0\17\11\2\0\1\10\25\11" + "\37\0\1\u079e\160\0\1\u05b2\62\0\1\u079f\164\0\1\u07a0" + + "\75\0\1\u07a1\67\0\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\6\11\1\u07a2\10\11\2\0\1\10\25\11" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\1\u049b\5\11\2\0\6\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\5\11\1\u07a3\1\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + + "\17\11\2\0\1\10\15\11\1\u07a4\7\11\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\6\11\1\u05d2\10\11" + "\2\0\1\10\25\11\63\0\1\u07a5\42\0\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\2\11\1\u07a6\3\11\14\0\17\11" + + "\2\0\1\10\25\11\1\10\7\11\1\0\1\11\1\147" + "\1\0\1\u07a7\1\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\17\11\2\0\1\10\25\11\1\10" + "\7\11\1\0\1\11\1\147\1\0\2\11\1\0\1\10" + + "\1\11\4\0\6\11\2\0\3\11\1\u07a8\2\11\14\0" + "\17\11\2\0\1\10\25\11\1\10\7\11\1\0\1\11" + + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + "\1\0\1\u07a9\6\11\14\0\17\11\2\0\1\10\25\11" + + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\7\11" + + "\1\u07aa\7\11\2\0\1\10\25\11\61\0\1\u07ab\44\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\1\0\1\u07ac\6\11\14\0" + "\17\11\2\0\1\10\25\11\41\0\1\u07ad\147\0\1\u07ae" + + "\134\0\1\u066a\114\0\1\u066a\44\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\6\11\14\0\6\11\1\u07af\10\11\2\0" + "\1\10\25\11\40\0\1\u07b0\65\0\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u07b1\10\11\2\0" + + "\1\10\25\11\35\0\1\u07b2\70\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\1\u03e6\5\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\25\11\32\0\1\u035e\52\0\1\u07b3\61\0\1\u066a\151\0" + + "\1\u07b4\100\0\1\u07b5\65\0\1\10\7\11\1\0\1\11" + "\1\147\1\0\2\11\1\0\1\10\1\11\4\0\6\11" + + "\2\0\6\11\14\0\4\11\1\u04fc\12\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\6\11\14\0" + "\1\u07b6\16\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\1\11\1\u07b7\15\11\2\0" + + "\1\10\25\11\37\0\1\u07b8\66\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\1\11\1\u07b9\4\11\14\0\17\11\2\0" + "\1\10\25\11\1\10\7\11\1\0\1\11\1\147\1\0" + + "\2\11\1\0\1\10\1\11\4\0\6\11\2\0\6\11" + "\14\0\13\11\1\u0162\3\11\2\0\1\10\25\11\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u07ba\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\117\0\1\u07bb\6\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\1\0\1\u07bc\6\11\14\0\17\11\2\0" + "\1\10\25\11\65\0\1\u07bd\154\0\1\u07be\71\0\1\u07bf" + + "\103\0\1\u07c0\67\0\1\10\7\11\1\0\1\11\1\147" + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + + "\6\11\14\0\1\11\1\u07c1\15\11\2\0\1\10\25\11" + "\41\0\1\u07c2\64\0\1\10\7\11\1\0\1\11\1\147" + + "\1\0\2\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\1\u07c3\24\11\36\0" + + "\1\u07c4\155\0\1\u07c5\74\0\1\u07c6\153\0\1\u07c7\42\0" + "\1\10\7\11\1\0\1\11\1\147\1\0\2\11\1\0" + + "\1\10\1\11\4\0\6\11\2\0\3\11\1\u07c8\2\11" + "\14\0\17\11\2\0\1\10\25\11\1\10\7\11\1\0" + + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + "\6\11\2\0\6\11\14\0\6\11\1\u0676\10\11\2\0" + + "\1\10\25\11\62\0\1\u07c9\43\0\1\10\7\11\1\0" + "\1\11\1\147\1\0\2\11\1\0\1\10\1\11\4\0" + + "\6\11\2\0\5\11\1\u03eb\14\0\17\11\2\0\1\10" + "\25\11\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + + "\1\0\1\10\1\11\4\0\6\11\2\0\1\u04fc\5\11" + "\14\0\17\11\2\0\1\10\25\11\37\0\1\u07ca\204\0" + + "\1\u07cb\45\0\1\u07cc\104\0\1\u07cd\173\0\1\u07ce\127\0" + "\1\u07cf\40\0\1\10\7\11\1\0\1\11\1\147\1\0" + + "\1\u07d0\1\11\1\0\1\10\1\11\4\0\6\11\2\0" + "\6\11\14\0\17\11\2\0\1\10\25\11\25\0\1\u07d1" + + "\100\0\1\10\7\11\1\0\1\11\1\147\1\0\2\11" + "\1\0\1\10\1\11\4\0\6\11\2\0\2\11\1\u07d2" + + "\3\11\14\0\17\11\2\0\1\10\25\11\60\0\1\u07d3" + "\133\0\1\u07d4\124\0\1\u07d5\75\0\1\u07d6\70\0\1\10" + + "\7\11\1\0\1\11\1\147\1\0\1\u02ee\1\11\1\0" + "\1\10\1\11\4\0\6\11\2\0\6\11\14\0\17\11" + + "\2\0\1\10\25\11\35\0\1\u07d7\125\0\1\u07d8\101\0" + "\1\u07ca\153\0\1\u07d9\113\0\1\u0740\41\0\1\u0741\15\0" + + "\1\u0742\115\0\1\u05b2\112\0\1\u0730\43\0\1\10\7\11" + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + + "\4\0\6\11\2\0\6\11\14\0\17\11\2\0\1\10" + "\11\11\1\u03ff\13\11\40\0\1\u07da\65\0\1\10\7\11" + + "\1\0\1\11\1\147\1\0\2\11\1\0\1\10\1\11" + "\4\0\6\11\2\0\1\11\1\u0410\4\11\14\0\17\11" + + "\2\0\1\10\25\11\41\0\1\u05b2\75\0\1\u07db\205\0" + "\1\u066a\61\0\1\u07dc\41\0\1\u07dd\13\0\1\u07de\1\0" + + "\1\u07df\105\0\1\u07e0\71\0\1\u07e1\157\0\1\u07e2\135\0" + "\1\u07e3\67\0\1\u07e4\150\0\1\u07e5\125\0\1\u07e6\127\0" + + "\1\u07e7\57\0\1\u07e8\171\0\1\u07e9\132\0\1\u07ea\75\0" + "\1\u07eb\150\0\1\u07ec\105\0\1\u07ed\101\0\1\u07ee\122\0" + + "\1\u07ef\155\0\1\u07f0\121\0\1\u07f1\104\0\1\u07f2\150\0" + "\1\u07f3\122\0\1\u07f4\102\0\1\u07f5\143\0\1\u07f6\170\0" + + "\1\u07f1\62\0\1\u07f7\163\0\1\u07f8\143\0\1\u07de\132\0" + "\1\u07f9\56\0\1\u07fa\172\0\1\u07fb\54\0\1\u07fc\131\0" + + "\1\u07fd\125\0\1\u07fe\121\0\1\u07ff\130\0\1\u0800\146\0" + "\1\u05b2\137\0\1\u0801\63\0\1\u0802\133\0\1\u029d\125\0" + + "\1\u07f1\125\0\1\u0803\102\0\1\u0804\173\0\1\u066a\123\0" + "\1\u0805\103\0\1\u0806\150\0\1\u0807\102\0\1\u0808\127\0" + + "\1\u0809\126\0\1\u068a\152\0\1\u05b2\74\0\1\u080a\150\0" + "\1\u06cf\45\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[172688]; + int offset = 0; + offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\2\1\1\0\12\1\2\11\21\1\2\11\4\1" + "\1\11\35\1\1\11\5\1\1\11\10\1\1\11\6\1" + + "\1\11\3\1\1\11\1\1\2\11\24\1\1\0\1\1" + "\1\0\7\1\2\0\1\11\54\1\2\0\122\1\2\0" + "\1\11\4\0\1\11\2\0\1\11\22\0\1\11\1\0" + + "\1\1\2\0\2\11\3\1\1\0\14\1\2\11\3\1" + "\1\0\2\1\1\11\5\1\1\11\235\1\37\0\1\11" + "\2\0\1\11\15\1\1\11\1\1\1\0\5\1\1\11" + + "\174\1\1\0\31\1\2\0\1\1\2\0\1\1\15\0" + "\1\11\12\0\1\1\1\0\1\11\16\1\1\0\167\1" + "\1\0\31\1\36\0\17\1\1\0\154\1\1\0\26\1" + + "\23\0\14\1\1\0\2\1\1\0\3\1\1\0\114\1" + "\1\0\14\1\1\0\32\1\5\0\1\1\4\0\15\1" + "\4\0\3\1\2\0\102\1\2\0\11\1\1\0\33\1" + + "\12\0\13\1\4\0\3\1\1\0\76\1\2\0\10\1" + "\1\11\27\1\5\0\4\1\1\0\5\1\4\0\1\1" + "\1\0\3\1\1\0\57\1\2\0\32\1\5\0\3\1" + + "\2\0\3\1\4\0\3\1\1\0\47\1\2\0\23\1" + "\2\0\2\1\2\0\3\1\4\0\3\1\1\0\14\1" + "\1\0\7\1\1\0\16\1\1\0\26\1\2\0\2\1" + + "\3\0\2\1\1\0\13\1\1\0\2\1\2\0\12\1" + "\1\0\23\1\2\0\1\1\2\0\2\1\1\0\7\1" + "\1\0\2\1\2\0\12\1\1\0\17\1\2\0\1\1" + + "\2\0\2\1\1\0\4\1\1\0\1\1\1\0\1\1" + "\5\0\11\1\1\0\11\1\1\0\2\1\1\0\1\1" + "\2\0\1\1\1\0\2\1\1\0\1\1\5\0\10\1" + + "\1\0\6\1\1\0\1\1\3\0\1\1\1\0\1\1" + "\1\0\1\1\5\0\5\1\1\0\5\1\1\0\1\1" + "\4\0\1\1\1\0\1\1\1\0\1\1\4\0\3\1" + + "\1\0\3\1\1\0\1\1\4\0\1\1\1\0\1\1" + "\4\0\2\1\1\0\2\1\6\0\1\1\1\0\1\1" + "\4\0\1\1\7\0\1\1\1\0\1\1\30\0\1\1" + "\37\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[2058]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public GroovyTokenMaker() { - } - - + public GroovyTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -4978,26 +2735,26 @@ public class GroovyTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -5020,7 +2777,6 @@ public class GroovyTokenMaker extends AbstractJFlexCTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -5030,46 +2786,35 @@ public class GroovyTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Returns whether a regular expression token can follow the specified * token. * - * @param t The token to check, which may be null. + * @param t + * The token to check, which may be null. * @return Whether a regular expression token may follow this one. */ private static final boolean regexCanFollow(Token t) { char ch; - return t==null || - //t.isOperator() || - (t.length()==1 && ( - (ch=t.charAt(0))=='=' || - ch=='(' || - ch==',' || - ch=='?' || - ch==':' || - ch=='[' - )) || + return t == null || + // t.isOperator() || + (t.length() == 1 && ((ch = t.charAt(0)) == '=' || ch == '(' || ch == ',' || ch == '?' || ch == ':' || ch == '[')) || /* Operators "==", "===", "!=", "!==", etc. */ - (t.getType()==Token.OPERATOR && - ((ch=t.charAt(t.length()-1))=='=' || ch=='~')); + (t.getType() == Token.OPERATOR && ((ch = t.charAt(t.length() - 1)) == '=' || ch == '~')); } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -5078,7 +2823,8 @@ public class GroovyTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -5087,496 +2833,573 @@ public class GroovyTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 GroovyTokenMaker(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 GroovyTokenMaker(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 < 200) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 21: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 49: break; - case 3: - { addToken(Token.IDENTIFIER); - } - case 50: break; - case 43: - { addToken(Token.LITERAL_BOOLEAN); - } - case 51: break; - case 6: - { start = zzMarkedPos-1; yybegin(STRING_DOUBLE); - } - case 52: break; - case 36: - { start = zzMarkedPos-3; yybegin(MULTILINE_STRING_DOUBLE); - } - case 53: break; - case 13: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 54: break; - case 35: - { addToken(Token.ERROR_CHAR); - } - case 55: break; - case 22: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 56: break; - case 5: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 57: break; - case 11: - { addToken(Token.ANNOTATION); - } - case 58: break; - case 29: - { addToken(Token.FUNCTION); - } - case 59: break; - case 34: - { start = zzMarkedPos-3; yybegin(MULTILINE_STRING_SINGLE); - } - case 60: break; - case 2: - { addToken(Token.ERROR_IDENTIFIER); - } - case 61: break; - case 37: - { boolean highlightedAsRegex = false; - if (zzBuffer[zzStartRead]=='~' || firstToken==null) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - else { - // If this is *likely* to be a regex, based on - // the previous token, highlight it as such. - Token t = firstToken.getLastNonCommentNonWhitespaceToken(); - if (regexCanFollow(t)) { - addToken(Token.REGEX); - highlightedAsRegex = true; + + /** + * 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 GroovyTokenMaker(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 GroovyTokenMaker(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 < 200) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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; } } - // If it doesn't *appear* to be a regex, highlight it as - // individual tokens. - if (!highlightedAsRegex) { - int temp = zzStartRead + 1; - addToken(zzStartRead, zzStartRead, Token.OPERATOR); - zzStartRead = zzCurrentPos = zzMarkedPos = temp; + } + // store back cached position + zzMarkedPos = zzMarkedPosL; + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 21: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; } - } - case 62: break; - case 41: - { yybegin(YYINITIAL); addToken(start,zzStartRead+2, Token.LITERAL_CHAR); - } - case 63: break; - case 46: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 64: break; - case 32: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.PREPROCESSOR); start = zzMarkedPos; - } - case 65: break; - case 45: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 66: break; - case 15: - { /* Skip escaped chars, handles case: '\"""'. */ - } - case 67: break; - case 25: - { addToken(Token.LITERAL_CHAR); - } - case 68: break; - case 19: - { /* Skip escaped chars. */ - } - case 69: break; - case 40: - { yybegin(YYINITIAL); addToken(start,zzStartRead+2, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 70: break; - case 24: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 71: break; - case 27: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 72: break; - case 8: - { addToken(Token.WHITESPACE); - } - case 73: break; - case 31: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_DOCUMENTATION); - } - case 74: break; - case 39: - { addToken(Token.DATA_TYPE); - } - case 75: break; - case 30: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 76: break; - case 4: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 77: break; - case 33: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 78: break; - case 20: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 79: break; - case 17: - { /* Skip escaped chars, handles case: "\'''". */ - } - case 80: break; - case 38: - { start = zzMarkedPos-3; yybegin(DOCCOMMENT); - } - case 81: break; - case 28: - { addToken(Token.RESERVED_WORD); - } - case 82: break; - case 44: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 83: break; - case 48: - { addToken(Token.RESERVED_WORD_2); - } - case 84: break; - case 14: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 85: break; - case 10: - { addToken(Token.SEPARATOR); - } - case 86: break; - case 7: - { addNullToken(); return firstToken; - } - case 87: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 88: break; - case 9: - { addToken(Token.OPERATOR); - } - case 89: break; - case 18: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 90: break; - case 23: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 91: break; - case 47: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 92: break; - case 42: - { addToken(Token.COMMENT_MULTILINE); - } - case 93: break; - case 26: - { start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - case 94: break; - case 1: - { - } - case 95: break; - case 16: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 96: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 2059: break; - case MULTILINE_STRING_DOUBLE: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 2060: break; - case DOCCOMMENT: { - yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 2061: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 2062: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 2063: break; - case STRING_DOUBLE: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); return firstToken; - } - case 2064: break; - case MULTILINE_STRING_SINGLE: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 2065: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + case 49: + break; + case 3: { + addToken(Token.IDENTIFIER); + } + case 50: + break; + case 43: { + addToken(Token.LITERAL_BOOLEAN); + } + case 51: + break; + case 6: { + start = zzMarkedPos - 1; + yybegin(STRING_DOUBLE); + } + case 52: + break; + case 36: { + start = zzMarkedPos - 3; + yybegin(MULTILINE_STRING_DOUBLE); + } + case 53: + break; + case 13: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 54: + break; + case 35: { + addToken(Token.ERROR_CHAR); + } + case 55: + break; + case 22: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 56: + break; + case 5: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 57: + break; + case 11: { + addToken(Token.ANNOTATION); + } + case 58: + break; + case 29: { + addToken(Token.FUNCTION); + } + case 59: + break; + case 34: { + start = zzMarkedPos - 3; + yybegin(MULTILINE_STRING_SINGLE); + } + case 60: + break; + case 2: { + addToken(Token.ERROR_IDENTIFIER); + } + case 61: + break; + case 37: { + boolean highlightedAsRegex = false; + if (zzBuffer[zzStartRead] == '~' || firstToken == null) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } else { + // If this is *likely* to be a regex, based on + // the previous token, highlight it as such. + Token t = firstToken.getLastNonCommentNonWhitespaceToken(); + if (regexCanFollow(t)) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } + } + // If it doesn't *appear* to be a regex, highlight it as + // individual tokens. + if (!highlightedAsRegex) { + int temp = zzStartRead + 1; + addToken(zzStartRead, zzStartRead, Token.OPERATOR); + zzStartRead = zzCurrentPos = zzMarkedPos = temp; + } + } + case 62: + break; + case 41: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 2, Token.LITERAL_CHAR); + } + case 63: + break; + case 46: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 64: + break; + case 32: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.PREPROCESSOR); + start = zzMarkedPos; + } + case 65: + break; + case 45: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 66: + break; + case 15: { /* Skip escaped chars, handles case: '\"""'. */ + } + case 67: + break; + case 25: { + addToken(Token.LITERAL_CHAR); + } + case 68: + break; + case 19: { /* Skip escaped chars. */ + } + case 69: + break; + case 40: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 2, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 70: + break; + case 24: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 71: + break; + case 27: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 72: + break; + case 8: { + addToken(Token.WHITESPACE); + } + case 73: + break; + case 31: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); + } + case 74: + break; + case 39: { + addToken(Token.DATA_TYPE); + } + case 75: + break; + case 30: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 76: + break; + case 4: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 77: + break; + case 33: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 78: + break; + case 20: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 79: + break; + case 17: { /* Skip escaped chars, handles case: "\'''". */ + } + case 80: + break; + case 38: { + start = zzMarkedPos - 3; + yybegin(DOCCOMMENT); + } + case 81: + break; + case 28: { + addToken(Token.RESERVED_WORD); + } + case 82: + break; + case 44: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 83: + break; + case 48: { + addToken(Token.RESERVED_WORD_2); + } + case 84: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 85: + break; + case 10: { + addToken(Token.SEPARATOR); + } + case 86: + break; + case 7: { + addNullToken(); + return firstToken; + } + case 87: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 88: + break; + case 9: { + addToken(Token.OPERATOR); + } + case 89: + break; + case 18: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 90: + break; + case 23: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 91: + break; + case 47: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 92: + break; + case 42: { + addToken(Token.COMMENT_MULTILINE); + } + case 93: + break; + case 26: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 94: + break; + case 1: {} + case 95: + break; + case 16: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 96: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 2059: + break; + case MULTILINE_STRING_DOUBLE: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 2060: + break; + case DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 2061: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 2062: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 2063: + break; + case STRING_DOUBLE: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + return firstToken; + } + case 2064: + break; + case MULTILINE_STRING_SINGLE: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 2065: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/HTMLTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/HTMLTokenMaker.java index cb3d106..3f7927a 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/HTMLTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/HTMLTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 12/30/16 12:26 AM */ - /* * 01/24/2005 - * * HTMLTokenMaker.java - Generates tokens for HTML syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -21,2037 +18,1256 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** * Scanner for HTML 5 files. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated HTMLTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated HTMLTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.9 */ - public class HTMLTokenMaker extends AbstractMarkupTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int INATTR_SINGLE_SCRIPT = 10; - public static final int JS_CHAR = 16; - public static final int CSS_STRING = 22; - public static final int JS_MLC = 17; - public static final int CSS_CHAR_LITERAL = 23; - public static final int INTAG_SCRIPT = 8; - public static final int JS_TEMPLATE_LITERAL_EXPR = 26; - public static final int CSS_PROPERTY = 20; - public static final int CSS_C_STYLE_COMMENT = 24; - public static final int CSS = 19; - public static final int CSS_VALUE = 21; - public static final int COMMENT = 1; - public static final int INATTR_DOUBLE_SCRIPT = 9; - public static final int PI = 2; - public static final int JAVASCRIPT = 14; - public static final int INTAG = 4; - public static final int INTAG_CHECK_TAG_NAME = 5; - public static final int INATTR_SINGLE_STYLE = 13; - public static final int DTD = 3; - public static final int JS_EOL_COMMENT = 18; - public static final int INATTR_DOUBLE_STYLE = 12; - public static final int INATTR_SINGLE = 7; - public static final int JS_TEMPLATE_LITERAL = 25; - public static final int YYINITIAL = 0; - public static final int INATTR_DOUBLE = 6; - public static final int JS_STRING = 15; - public static final int INTAG_STYLE = 11; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\4\1\2\1\0\1\1\1\33\22\0\1\4\1\51\1\7"+ - "\1\34\1\36\1\50\1\5\1\110\1\105\1\104\1\37\1\42\1\45"+ - "\1\31\1\43\1\10\1\25\6\125\1\27\2\24\1\53\1\6\1\3"+ - "\1\46\1\17\1\52\1\103\1\112\1\26\1\12\1\116\1\22\1\41"+ - "\1\120\1\124\1\14\1\126\1\121\1\21\1\115\1\114\1\113\1\15"+ - "\1\122\1\13\1\11\1\16\1\117\1\123\1\23\1\40\1\20\1\23"+ - "\1\107\1\35\1\107\1\47\1\30\1\130\1\71\1\102\1\66\1\70"+ - "\1\76\1\73\1\57\1\65\1\56\1\126\1\100\1\67\1\77\1\64"+ - "\1\62\1\75\1\122\1\61\1\72\1\63\1\32\1\101\1\111\1\106"+ - "\1\74\1\127\1\60\1\55\1\44\1\54\uff81\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 = - "\6\0\2\1\1\0\2\1\1\0\2\1\7\0\1\2"+ - "\5\0\2\2\1\3\1\4\1\5\1\6\1\1\1\7"+ - "\5\1\1\10\2\1\1\11\1\12\2\13\1\14\1\15"+ - "\1\16\1\17\1\20\1\21\1\22\1\23\2\21\2\23"+ - "\3\21\2\23\5\21\1\23\3\21\1\23\1\1\1\24"+ - "\1\1\1\25\1\15\1\26\1\27\1\30\1\31\1\32"+ - "\1\33\1\34\1\35\1\36\2\17\1\2\1\37\1\17"+ - "\2\2\1\17\2\40\1\17\1\2\1\35\2\17\1\2"+ - "\1\41\1\35\17\2\1\42\2\2\1\43\1\1\1\44"+ - "\1\45\1\46\1\1\1\47\1\50\1\51\1\1\1\52"+ - "\6\1\1\53\4\1\1\54\1\55\1\54\1\56\1\54"+ - "\1\57\1\54\1\60\1\61\1\54\1\62\1\63\1\64"+ - "\2\63\1\65\1\63\1\66\1\67\1\70\1\71\1\70"+ - "\1\72\2\2\1\40\1\2\2\70\1\73\1\74\1\75"+ - "\1\76\1\77\1\100\1\101\1\1\1\102\2\1\1\103"+ - "\1\104\1\105\1\106\1\1\1\107\1\1\1\110\1\4"+ - "\2\111\1\112\1\113\1\6\5\0\1\114\31\21\1\23"+ - "\1\21\1\23\2\21\1\23\44\21\1\115\3\0\1\116"+ - "\1\0\1\117\1\17\1\35\1\2\1\17\1\120\1\40"+ - "\1\120\2\121\1\120\1\122\1\120\1\2\1\65\1\2"+ - "\1\65\17\2\1\65\34\2\1\123\1\124\1\125\1\0"+ - "\1\126\12\0\1\127\1\130\15\0\1\131\1\40\5\0"+ - "\1\40\1\0\1\77\1\132\1\133\1\134\1\135\2\111"+ - "\1\0\1\136\4\0\13\21\1\23\64\21\1\0\1\137"+ - "\1\0\1\35\1\2\1\121\1\0\2\122\1\2\1\57"+ - "\23\2\1\140\40\2\41\0\2\111\1\141\2\0\1\142"+ - "\22\21\1\23\5\21\1\23\12\21\1\0\1\143\1\35"+ - "\10\2\1\144\6\2\1\57\16\2\1\145\1\2\1\146"+ - "\4\2\1\0\1\1\3\0\1\147\3\0\1\150\6\0"+ - "\1\65\15\0\2\111\2\0\11\21\1\23\12\21\1\0"+ - "\1\35\7\2\1\65\10\2\1\65\6\2\24\0\1\111"+ - "\1\151\12\21\1\0\1\35\5\2\1\152\12\2\14\0"+ - "\1\153\3\21\1\0\10\2\10\0\1\21\1\0\3\2"+ - "\2\0\1\154\4\0\1\21\1\155\1\2\1\156\1\157"+ - "\6\0\1\160"; - - private static int [] zzUnpackAction() { - int [] result = new int[819]; - 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\131\0\262\0\u010b\0\u0164\0\u01bd\0\u0216\0\u026f"+ - "\0\u02c8\0\u0321\0\u037a\0\u03d3\0\u042c\0\u0485\0\u04de\0\u0537"+ - "\0\u0590\0\u05e9\0\u0642\0\u069b\0\u06f4\0\u074d\0\u07a6\0\u07ff"+ - "\0\u0858\0\u08b1\0\u090a\0\u0963\0\u09bc\0\u0a15\0\u0a6e\0\u0ac7"+ - "\0\u0b20\0\u0b79\0\u0a15\0\u0bd2\0\u0c2b\0\u0c84\0\u0cdd\0\u0d36"+ - "\0\u0a15\0\u0d8f\0\u0de8\0\u0a15\0\u0a15\0\u0e41\0\u0e9a\0\u0a15"+ - "\0\u0ef3\0\u0a15\0\u0a15\0\u0a15\0\u0f4c\0\u0a15\0\u0fa5\0\u0ffe"+ - "\0\u1057\0\u10b0\0\u1109\0\u1162\0\u11bb\0\u1214\0\u126d\0\u12c6"+ - "\0\u131f\0\u1378\0\u13d1\0\u142a\0\u1483\0\u14dc\0\u1535\0\u158e"+ - "\0\u15e7\0\u0f4c\0\u1640\0\u0a15\0\u1699\0\u0a15\0\u16f2\0\u0a15"+ - "\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u174b\0\u0a15"+ - "\0\u17a4\0\u17fd\0\u0a15\0\u0a15\0\u1856\0\u18af\0\u1908\0\u1961"+ - "\0\u19ba\0\u1a13\0\u1a6c\0\u1ac5\0\u0a15\0\u1b1e\0\u1b77\0\u1bd0"+ - "\0\u0a15\0\u1c29\0\u1c82\0\u1cdb\0\u1d34\0\u1d8d\0\u1de6\0\u1e3f"+ - "\0\u1e98\0\u1ef1\0\u1f4a\0\u1fa3\0\u1ffc\0\u2055\0\u20ae\0\u2107"+ - "\0\u2160\0\u0a15\0\u21b9\0\u2212\0\u0a15\0\u226b\0\u0a15\0\u0a15"+ - "\0\u22c4\0\u231d\0\u0a15\0\u22c4\0\u0a15\0\u2376\0\u0a15\0\u23cf"+ - "\0\u2428\0\u2481\0\u24da\0\u2533\0\u258c\0\u0a15\0\u25e5\0\u263e"+ - "\0\u2697\0\u26f0\0\u0a15\0\u0a15\0\u2749\0\u0a15\0\u27a2\0\u27fb"+ - "\0\u2854\0\u28ad\0\u0a15\0\u2906\0\u0a15\0\u0a15\0\u0a15\0\u2749"+ - "\0\u27a2\0\u295f\0\u29b8\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u2749"+ - "\0\u0a15\0\u2a11\0\u2a6a\0\u2ac3\0\u2b1c\0\u2b75\0\u2bce\0\u0a15"+ - "\0\u0a15\0\u0a15\0\u0a15\0\u2c27\0\u0a15\0\u0a15\0\u2c80\0\u0a15"+ - "\0\u2cd9\0\u2d32\0\u0a15\0\u22c4\0\u2d8b\0\u0a15\0\u2de4\0\u0a15"+ - "\0\u2e3d\0\u0a15\0\u2e96\0\u2eef\0\u2f48\0\u2fa1\0\u0a15\0\u0a15"+ - "\0\u2ffa\0\u3053\0\u30ac\0\u3105\0\u315e\0\u0a15\0\u31b7\0\u3210"+ - "\0\u3269\0\u32c2\0\u331b\0\u3374\0\u33cd\0\u3426\0\u347f\0\u34d8"+ - "\0\u3531\0\u358a\0\u35e3\0\u363c\0\u3695\0\u36ee\0\u3747\0\u37a0"+ - "\0\u37f9\0\u3852\0\u38ab\0\u3904\0\u395d\0\u39b6\0\u3a0f\0\u3a68"+ - "\0\u3ac1\0\u3b1a\0\u3b73\0\u3bcc\0\u3c25\0\u3c7e\0\u3cd7\0\u3d30"+ - "\0\u3d89\0\u3de2\0\u3e3b\0\u3e94\0\u3eed\0\u3f46\0\u3f9f\0\u3ff8"+ - "\0\u4051\0\u40aa\0\u4103\0\u415c\0\u41b5\0\u420e\0\u4267\0\u42c0"+ - "\0\u4319\0\u4372\0\u43cb\0\u4424\0\u447d\0\u44d6\0\u452f\0\u4588"+ - "\0\u45e1\0\u463a\0\u4693\0\u46ec\0\u4745\0\u479e\0\u47f7\0\u4850"+ - "\0\u48a9\0\u0a15\0\u1b1e\0\u4902\0\u495b\0\u0a15\0\u49b4\0\u4a0d"+ - "\0\u495b\0\u4a66\0\u4abf\0\u4b18\0\u4b71\0\u4b71\0\u4bca\0\u4b71"+ - "\0\u4c23\0\u4c7c\0\u4cd5\0\u4d2e\0\u4d87\0\u4de0\0\u4e39\0\u18af"+ - "\0\u4e92\0\u4eeb\0\u4f44\0\u4f9d\0\u4ff6\0\u504f\0\u50a8\0\u5101"+ - "\0\u515a\0\u51b3\0\u520c\0\u5265\0\u52be\0\u5317\0\u5370\0\u53c9"+ - "\0\u5422\0\u547b\0\u54d4\0\u552d\0\u5586\0\u55df\0\u5638\0\u5691"+ - "\0\u56ea\0\u5743\0\u579c\0\u57f5\0\u584e\0\u58a7\0\u5900\0\u5959"+ - "\0\u59b2\0\u5a0b\0\u5a64\0\u5abd\0\u5b16\0\u5b6f\0\u5bc8\0\u5c21"+ - "\0\u5c7a\0\u5cd3\0\u5d2c\0\u5d85\0\u0a15\0\u5dde\0\u5e37\0\u5e90"+ - "\0\u0a15\0\u5ee9\0\u5f42\0\u5f9b\0\u5ff4\0\u604d\0\u60a6\0\u60ff"+ - "\0\u6158\0\u61b1\0\u620a\0\u0a15\0\u6263\0\u62bc\0\u6315\0\u636e"+ - "\0\u63c7\0\u6420\0\u6479\0\u64d2\0\u652b\0\u6584\0\u65dd\0\u6636"+ - "\0\u668f\0\u66e8\0\u6741\0\u0a15\0\u679a\0\u67f3\0\u684c\0\u68a5"+ - "\0\u68fe\0\u2b75\0\u6957\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u2e96"+ - "\0\u69b0\0\u6a09\0\u6a62\0\u0a15\0\u6abb\0\u6b14\0\u6b6d\0\u6bc6"+ - "\0\u6c1f\0\u6c78\0\u6cd1\0\u6d2a\0\u6d83\0\u6ddc\0\u6e35\0\u6e8e"+ - "\0\u6ee7\0\u6f40\0\u6f99\0\u6ff2\0\u704b\0\u70a4\0\u70fd\0\u7156"+ - "\0\u71af\0\u7208\0\u7261\0\u72ba\0\u7313\0\u736c\0\u73c5\0\u741e"+ - "\0\u7477\0\u74d0\0\u7529\0\u7582\0\u75db\0\u7634\0\u3b1a\0\u768d"+ - "\0\u76e6\0\u773f\0\u7798\0\u77f1\0\u784a\0\u78a3\0\u78fc\0\u7955"+ - "\0\u79ae\0\u7a07\0\u7a60\0\u7ab9\0\u7b12\0\u7b6b\0\u12c6\0\u7bc4"+ - "\0\u7c1d\0\u7c76\0\u7ccf\0\u7d28\0\u7d81\0\u7dda\0\u7e33\0\u7e8c"+ - "\0\u7ee5\0\u7f3e\0\u7f97\0\u7ff0\0\u8049\0\u80a2\0\u80fb\0\u8154"+ - "\0\u81ad\0\u8206\0\u825f\0\u82b8\0\u8311\0\u836a\0\u83c3\0\u4b71"+ - "\0\u841c\0\u8475\0\u84ce\0\u8527\0\u8580\0\u85d9\0\u8632\0\u868b"+ - "\0\u86e4\0\u873d\0\u8796\0\u87ef\0\u8848\0\u88a1\0\u88fa\0\u8953"+ - "\0\u89ac\0\u8a05\0\u8a5e\0\u8ab7\0\u8b10\0\u8b69\0\u18af\0\u8bc2"+ - "\0\u8c1b\0\u8c74\0\u8ccd\0\u8d26\0\u8d7f\0\u8dd8\0\u8e31\0\u8e8a"+ - "\0\u8ee3\0\u8f3c\0\u8f95\0\u8fee\0\u9047\0\u90a0\0\u90f9\0\u9152"+ - "\0\u91ab\0\u9204\0\u925d\0\u92b6\0\u930f\0\u9368\0\u93c1\0\u941a"+ - "\0\u9473\0\u94cc\0\u9525\0\u957e\0\u95d7\0\u9630\0\u9689\0\u96e2"+ - "\0\u973b\0\u9794\0\u97ed\0\u9846\0\u989f\0\u98f8\0\u9951\0\u99aa"+ - "\0\u9a03\0\u9a5c\0\u9ab5\0\u9b0e\0\u9b67\0\u9bc0\0\u9c19\0\u9c72"+ - "\0\u9ccb\0\u9d24\0\u9d7d\0\u9dd6\0\u9e2f\0\u9e88\0\u9ee1\0\u9f3a"+ - "\0\u9f93\0\u9fec\0\ua045\0\ua09e\0\ua0f7\0\ua150\0\ua1a9\0\ua202"+ - "\0\ua25b\0\ua2b4\0\u0a15\0\ua30d\0\ua366\0\ua3bf\0\ua418\0\ua471"+ - "\0\ua4ca\0\ua523\0\ua57c\0\ua5d5\0\ua62e\0\ua687\0\ua6e0\0\ua739"+ - "\0\ua792\0\ua7eb\0\ua844\0\ua89d\0\ua8f6\0\ua94f\0\ua9a8\0\uaa01"+ - "\0\uaa5a\0\uaab3\0\uab0c\0\uab65\0\u3c25\0\uabbe\0\u7529\0\uac17"+ - "\0\uac70\0\uacc9\0\uad22\0\uad7b\0\uadd4\0\uae2d\0\uae86\0\uaedf"+ - "\0\uaf38\0\uaf91\0\u0a15\0\uafea\0\ub043\0\ub09c\0\ub0f5\0\ub14e"+ - "\0\ub1a7\0\ub200\0\ub259\0\ub2b2\0\u18af\0\ub30b\0\ub364\0\ub3bd"+ - "\0\ub416\0\ub46f\0\ub4c8\0\u18af\0\ub521\0\ub57a\0\ub5d3\0\ub62c"+ - "\0\ub685\0\ub6de\0\ub737\0\ub790\0\ub7e9\0\ub842\0\ub89b\0\ub8f4"+ - "\0\ub94d\0\ub9a6\0\u18af\0\ub9ff\0\u18af\0\uba58\0\ubab1\0\ubb0a"+ - "\0\ubb63\0\u5e37\0\u0a15\0\ubbbc\0\ubc15\0\ubc6e\0\ubcc7\0\ubd20"+ - "\0\ubd79\0\ubdd2\0\ube2b\0\ube84\0\ubedd\0\ubf36\0\ubf8f\0\ubfe8"+ - "\0\uc041\0\u0a15\0\uc09a\0\uc0f3\0\uc14c\0\uc1a5\0\uc1fe\0\uc257"+ - "\0\uc2b0\0\uc309\0\uc362\0\uc3bb\0\uc414\0\uc46d\0\uc4c6\0\uc51f"+ - "\0\uc578\0\uc5d1\0\ua3bf\0\uc62a\0\uc683\0\uc6dc\0\uc735\0\uc78e"+ - "\0\uc7e7\0\uc840\0\uc899\0\uc8f2\0\uc94b\0\uc94b\0\uc9a4\0\uc9fd"+ - "\0\uca56\0\ucaaf\0\ucb08\0\ucb61\0\ucbba\0\ucc13\0\ucc6c\0\uccc5"+ - "\0\ucd1e\0\ucd77\0\ucdd0\0\uce29\0\uce82\0\ucedb\0\ucf34\0\ucf8d"+ - "\0\u87ef\0\ucfe6\0\ud03f\0\ud098\0\ud0f1\0\ud14a\0\ud1a3\0\ud1fc"+ - "\0\ud255\0\ud2ae\0\ud307\0\ud360\0\ud3b9\0\ud412\0\ud46b\0\ud4c4"+ - "\0\ud51d\0\ud576\0\ubcc7\0\ud5cf\0\ud628\0\ube2b\0\ud681\0\ud6da"+ - "\0\ud733\0\ud78c\0\ud7e5\0\ud83e\0\ud897\0\ud8f0\0\ud949\0\ud9a2"+ - "\0\ud9fb\0\uda54\0\udaad\0\udb06\0\udb5f\0\u2f48\0\udbb8\0\udc11"+ - "\0\udc6a\0\udcc3\0\udd1c\0\udd75\0\uddce\0\ude27\0\ude80\0\uded9"+ - "\0\udf32\0\udf8b\0\udfe4\0\ue03d\0\ue096\0\ue0ef\0\ue148\0\u18af"+ - "\0\ue1a1\0\ue1fa\0\ue253\0\ue2ac\0\ue305\0\ue35e\0\ue3b7\0\ue410"+ - "\0\ue469\0\ue4c2\0\ue51b\0\ue574\0\ue5cd\0\ue626\0\ue67f\0\ue6d8"+ - "\0\ue731\0\ue78a\0\ue7e3\0\ue83c\0\ue895\0\ue8ee\0\u2f48\0\ue947"+ - "\0\ue9a0\0\ue9f9\0\uea52\0\ueaab\0\ueb04\0\ueb5d\0\uebb6\0\uec0f"+ - "\0\uec68\0\uecc1\0\ued1a\0\ued73\0\uedcc\0\uee25\0\uee7e\0\ueed7"+ - "\0\uef30\0\uef89\0\uefe2\0\uf03b\0\uf094\0\uf0ed\0\uf146\0\uf19f"+ - "\0\uf1f8\0\uf251\0\u0a15\0\uf2aa\0\uf303\0\uf35c\0\uf3b5\0\uf40e"+ - "\0\u0a15\0\uf467\0\u0a15\0\u0a15\0\uf4c0\0\uf519\0\uf572\0\uf5cb"+ - "\0\uf624\0\uf67d\0\u0a15"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[819]; - 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 = - "\1\34\1\35\1\36\1\37\1\40\1\41\123\34\2\42"+ - "\1\43\26\42\1\44\33\42\1\45\5\42\1\46\15\42"+ - "\1\47\17\42\2\50\1\51\47\50\1\52\56\50\2\53"+ - "\1\54\14\53\1\55\111\53\1\56\1\57\1\0\1\56"+ - "\1\40\2\56\1\60\1\61\6\56\1\62\26\56\1\63"+ - "\41\56\1\64\20\56\2\65\1\0\1\65\1\66\2\65"+ - "\2\66\1\67\1\70\1\71\1\72\1\73\1\74\1\66"+ - "\1\65\1\75\1\76\3\65\1\77\3\65\1\100\6\65"+ - "\1\101\4\65\1\66\7\65\1\72\2\65\1\71\1\102"+ - "\1\74\1\103\1\104\1\70\1\75\1\105\1\106\1\67"+ - "\1\101\1\65\1\73\1\76\1\107\1\110\1\111\1\77"+ - "\5\65\1\66\1\65\1\106\1\102\1\103\1\107\1\105"+ - "\1\100\1\65\1\110\1\112\1\111\1\104\4\65\7\113"+ - "\1\114\121\113\110\115\1\114\20\115\1\56\1\57\1\0"+ - "\1\56\1\40\2\56\1\116\1\117\6\56\1\120\26\56"+ - "\1\63\41\56\1\121\20\56\7\113\1\122\121\113\110\115"+ - "\1\122\20\115\1\56\1\57\1\0\1\56\1\40\2\56"+ - "\1\123\1\117\6\56\1\124\26\56\1\63\41\56\1\125"+ - "\20\56\7\113\1\126\121\113\110\115\1\126\20\115\1\127"+ - "\1\40\1\130\1\131\1\40\1\132\1\133\1\134\1\135"+ - "\3\136\1\137\2\136\1\140\4\136\1\141\1\142\1\136"+ - "\1\141\1\136\1\143\1\144\1\145\2\127\1\136\1\146"+ - "\2\136\1\147\1\150\1\151\1\133\4\146\3\63\1\152"+ - "\1\153\1\154\1\151\1\155\1\136\1\156\1\157\1\136"+ - "\1\160\1\161\1\162\1\163\1\164\1\165\1\136\1\166"+ - "\1\167\2\136\1\170\1\171\1\127\2\151\1\136\1\151"+ - "\1\172\1\173\2\136\1\174\10\136\1\141\2\136\1\175"+ - "\2\176\1\177\4\176\1\200\25\176\1\201\73\176\2\202"+ - "\1\203\32\202\1\204\52\202\1\205\20\202\2\206\1\207"+ - "\1\210\33\206\1\211\25\206\1\212\5\206\1\213\15\206"+ - "\1\214\17\206\2\215\1\216\1\217\61\215\1\220\5\215"+ - "\1\221\15\215\1\222\17\215\1\223\1\40\1\224\1\225"+ - "\1\40\1\223\1\151\1\226\1\227\6\230\1\63\4\230"+ - "\2\223\1\230\1\223\3\230\1\223\1\231\1\223\1\63"+ - "\3\230\1\63\1\230\1\223\1\133\2\63\3\223\1\232"+ - "\2\63\2\230\1\233\22\230\1\234\2\151\1\230\1\151"+ - "\1\235\14\230\1\223\2\230\1\223\1\236\1\40\1\237"+ - "\1\240\1\40\3\236\1\241\6\242\1\236\4\242\2\236"+ - "\1\242\1\236\3\242\4\236\1\243\2\242\2\236\1\244"+ - "\6\236\1\245\2\236\2\242\1\236\22\242\3\236\1\242"+ - "\2\236\14\242\1\236\2\242\1\236\1\246\1\40\1\247"+ - "\1\250\1\40\1\246\1\251\1\226\1\252\6\253\1\246"+ - "\4\253\2\254\1\253\1\254\1\253\1\255\1\253\1\246"+ - "\1\256\1\253\2\246\2\253\1\246\1\133\1\244\1\133"+ - "\3\246\1\257\4\246\2\253\1\246\22\253\1\246\1\260"+ - "\1\261\1\253\1\246\1\235\14\253\1\254\2\253\1\246"+ - "\2\176\1\262\4\176\1\263\25\176\1\264\73\176\2\202"+ - "\1\265\32\202\1\264\52\202\1\266\20\202\2\267\1\270"+ - "\34\267\1\271\25\267\1\212\5\267\1\213\15\267\1\214"+ - "\17\267\2\272\1\273\32\272\1\274\1\275\71\272\1\276"+ - "\2\277\1\300\33\277\1\301\5\277\1\302\64\277\2\34"+ - "\4\0\124\34\1\35\2\0\1\40\1\0\123\34\141\0"+ - "\1\303\1\304\5\305\1\0\10\305\2\0\1\305\5\0"+ - "\2\305\7\0\1\306\1\307\3\0\2\305\1\0\11\305"+ - "\1\304\10\305\3\0\1\305\2\0\17\305\2\0\1\40"+ - "\2\0\1\40\124\0\4\41\1\0\1\41\1\310\122\41"+ - "\2\42\1\0\26\42\1\0\33\42\1\0\5\42\1\0"+ - "\15\42\1\0\17\42\31\0\1\311\162\0\1\312\123\0"+ - "\1\313\4\0\1\314\156\0\1\315\17\0\2\50\1\0"+ - "\47\50\1\0\56\50\17\0\1\316\111\0\2\53\1\0"+ - "\14\53\1\0\111\53\2\56\1\0\1\56\1\0\2\56"+ - "\2\0\6\56\1\0\26\56\1\0\41\56\1\0\21\56"+ - "\1\57\1\0\1\56\1\40\2\56\2\0\6\56\1\0"+ - "\26\56\1\0\41\56\1\0\20\56\17\0\1\62\111\0"+ - "\2\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\41\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\1\65\1\317\2\65\1\320\1\321\1\0"+ - "\2\65\1\322\7\65\1\323\13\65\1\0\13\65\1\324"+ - "\1\321\2\65\1\317\2\65\1\325\3\65\1\320\1\322"+ - "\1\326\10\65\1\0\1\65\1\325\1\324\1\65\1\326"+ - "\1\65\1\323\13\65\1\0\1\65\1\0\2\65\2\0"+ - "\3\65\1\327\2\65\1\0\2\65\1\330\23\65\1\0"+ - "\7\65\1\327\3\65\1\331\6\65\1\332\4\65\1\330"+ - "\11\65\1\0\1\65\1\332\1\331\17\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\12\65\1\333\13\65"+ - "\1\0\41\65\1\0\6\65\1\333\13\65\1\0\1\65"+ - "\1\0\2\65\2\0\1\334\5\65\1\0\1\65\1\335"+ - "\17\65\1\336\4\65\1\0\15\65\1\337\2\65\1\335"+ - "\2\65\1\334\1\336\3\65\1\340\10\65\1\0\3\65"+ - "\1\337\1\340\15\65\1\0\1\65\1\0\2\65\2\0"+ - "\2\65\1\341\3\65\1\0\1\65\1\342\24\65\1\0"+ - "\12\65\1\341\5\65\1\342\1\65\1\343\16\65\1\0"+ - "\1\65\1\343\20\65\1\0\1\65\1\0\2\65\2\0"+ - "\2\65\1\112\1\344\1\65\1\112\1\0\2\65\1\345"+ - "\3\65\1\346\12\65\1\347\4\65\1\0\7\65\1\344"+ - "\2\65\1\112\1\65\1\112\1\65\1\350\2\65\1\112"+ - "\1\351\1\65\1\347\2\65\1\345\3\65\1\346\5\65"+ - "\1\0\1\65\1\351\3\65\1\112\5\65\1\350\6\65"+ - "\1\0\1\65\1\0\2\65\2\0\3\65\1\352\2\65"+ - "\1\0\2\65\1\353\23\65\1\0\7\65\1\352\12\65"+ - "\1\354\4\65\1\353\11\65\1\0\1\65\1\354\20\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\30\65\1\355\1\65\1\356\6\65\1\0\4\65"+ - "\1\355\5\65\1\356\7\65\1\0\1\65\1\0\2\65"+ - "\2\0\2\65\1\112\1\340\2\65\1\0\1\65\1\357"+ - "\10\65\1\360\13\65\1\0\7\65\1\340\1\361\1\65"+ - "\1\112\1\362\4\65\1\357\1\363\1\364\16\65\1\0"+ - "\1\65\1\364\1\362\2\65\1\363\1\360\1\361\12\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\1\65"+ - "\1\112\24\65\1\0\20\65\1\112\20\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\2\65\1\365\1\366"+ - "\2\65\1\0\26\65\1\0\7\65\1\366\2\65\1\365"+ - "\1\367\25\65\1\0\2\65\1\367\17\65\1\0\1\65"+ - "\1\0\2\65\2\0\4\65\1\370\1\65\1\0\1\65"+ - "\1\112\4\65\1\371\3\65\1\372\13\65\1\0\20\65"+ - "\1\112\5\65\1\370\4\65\1\371\5\65\1\0\6\65"+ - "\1\372\13\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\2\65\1\373\23\65\1\0\13\65\1\374\6\65"+ - "\1\375\4\65\1\373\11\65\1\0\1\65\1\375\1\374"+ - "\17\65\1\0\1\65\1\0\2\65\2\0\2\65\1\112"+ - "\2\65\1\376\1\0\2\65\1\377\23\65\1\0\12\65"+ - "\1\112\1\65\1\376\12\65\1\377\11\65\1\0\14\65"+ - "\1\112\5\65\1\0\1\65\1\0\2\65\2\0\3\65"+ - "\1\u0100\1\65\1\112\1\0\1\65\1\112\1\u0101\16\65"+ - "\1\u0102\4\65\1\0\7\65\1\u0100\4\65\1\112\3\65"+ - "\2\112\1\u0103\1\65\1\u0102\2\65\1\u0101\11\65\1\0"+ - "\1\65\1\u0103\3\65\1\112\14\65\1\0\1\65\1\0"+ - "\2\65\2\0\1\u0104\1\u0105\1\u0106\1\65\1\u0107\1\65"+ - "\1\0\6\65\1\u0108\3\65\1\u0109\13\65\1\0\12\65"+ - "\1\u0106\4\65\1\u0105\1\65\1\u010a\1\65\1\u0104\2\65"+ - "\1\u0107\4\65\1\u0108\5\65\1\0\5\65\1\u010a\1\u0109"+ - "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\2\65\1\u010b\7\65\1\u010c\13\65\1\0\22\65\1\u010d"+ - "\4\65\1\u010b\11\65\1\0\1\65\1\u010d\4\65\1\u010c"+ - "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\2\65\1\u010e\3\65\1\u010f\17\65\1\0\27\65\1\u010e"+ - "\3\65\1\u010f\5\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\3\65\1\u0110\2\65\1\0\26\65\1\0"+ - "\7\65\1\u0110\12\65\1\u0111\16\65\1\0\1\65\1\u0111"+ - "\16\65\7\113\1\0\121\113\110\115\1\0\20\115\17\0"+ - "\1\u0112\111\0\1\127\10\0\6\127\1\0\11\127\1\0"+ - "\1\127\1\0\3\127\1\0\2\127\14\0\2\127\1\0"+ - "\23\127\2\0\1\127\2\0\17\127\4\0\1\u0113\4\0"+ - "\1\u0114\35\0\1\63\67\0\1\63\40\0\1\63\62\0"+ - "\10\u0115\1\u0116\24\u0115\1\u0117\1\u0115\1\u0118\6\u0115\1\u0119"+ - "\62\u0115\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\3\136\1\u011b\16\136\1\127\2\0\1\136\2\0\17\136"+ - "\20\0\1\u011c\26\0\1\63\62\0\1\u011d\10\0\6\u011d"+ - "\1\0\1\u011d\1\u011e\1\u011f\1\u011d\2\141\1\u011d\1\141"+ - "\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u0120"+ - "\1\0\1\u0121\12\0\2\u011d\1\0\6\u011d\1\u011e\1\u0120"+ - "\2\u011d\1\u0120\2\u011d\1\u011f\5\u011d\2\0\1\u011d\2\0"+ - "\5\u011d\1\u0120\6\u011d\1\141\2\u011d\1\0\1\u011d\10\0"+ - "\6\u011d\1\0\1\u011d\1\u011e\1\u011f\1\u011d\1\u0122\1\u0123"+ - "\1\u011d\1\u0123\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0"+ - "\1\u0124\1\u0120\1\0\1\u0121\12\0\2\u011d\1\0\6\u011d"+ - "\1\u011e\1\u0120\2\u011d\1\u0120\2\u011d\1\u011f\5\u011d\2\0"+ - "\1\u0124\2\0\5\u011d\1\u0120\6\u011d\1\u0123\2\u011d\32\0"+ - "\1\63\14\0\1\63\62\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\3\136\1\u0125\16\136\1\127"+ - "\2\0\1\136\2\0\17\136\47\0\1\63\124\0\1\63"+ - "\3\0\1\63\106\0\2\u0121\1\0\1\u0121\75\0\1\u0121"+ - "\51\0\1\63\6\0\1\63\53\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\3\136\1\u0126\5\136"+ - "\1\u0127\1\u0128\3\136\1\u0129\3\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\1\136\1\u012a\20\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\15\136\1\u012b\4\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\1\u012c\3\136\1\u012d"+ - "\6\136\1\u012e\6\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u012f"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\10\136\1\u0130\4\136\1\u0131\4\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\1\136\1\u0132\2\136\1\u0133"+ - "\1\136\1\u0134\1\136\1\u0135\11\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\1\136\1\u0136\13\136\1\u0137\4\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\1\136\1\u0138"+ - "\13\136\1\u0139\4\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\21\136\1\u013a\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u013b"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\2\136\1\u013c\1\136\1\u013d\6\136\1\u013e\6\136"+ - "\1\127\2\0\1\136\2\0\1\u013f\16\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\u0140\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\1\u0141\1\136\1\0"+ - "\1\136\1\u0142\4\136\1\u0143\1\136\1\u0144\11\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\u0145\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\1\u0146\7\136\1\u0147"+ - "\11\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136"+ - "\1\u0148\2\136\1\u0149\1\136\1\u014a\1\u014b\6\136\1\u014c"+ - "\1\136\1\127\2\0\1\u014d\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\1\136"+ - "\1\u014e\6\136\1\u0142\11\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\1\u014f\1\u0150\11\136\1\u0151\6\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\1\u0152\1\136\1\0\4\136\1\u0153"+ - "\15\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136"+ - "\1\u0154\11\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\2\176\1\0\4\176\1\0\25\176\1\0\73\176\2\u0155"+ - "\1\0\27\u0155\1\u0156\53\u0155\1\u0157\22\u0155\2\202\1\0"+ - "\32\202\1\0\52\202\1\0\20\202\2\206\2\0\33\206"+ - "\1\0\25\206\1\0\5\206\1\0\15\206\1\0\17\206"+ - "\10\0\1\u0158\130\0\1\u0159\203\0\1\u015a\123\0\1\u015b"+ - "\4\0\1\u015c\156\0\1\u015d\17\0\2\215\2\0\61\215"+ - "\1\0\5\215\1\0\15\215\1\0\17\215\10\0\1\u015e"+ - "\203\0\1\u015f\123\0\1\u0160\4\0\1\u0161\156\0\1\u0162"+ - "\27\0\1\u0163\157\0\1\u0164\102\0\6\230\1\0\13\230"+ - "\5\0\2\230\1\0\1\230\12\0\2\230\1\0\22\230"+ - "\3\0\1\230\2\0\17\230\12\0\6\u0165\1\0\4\u0165"+ - "\2\0\1\u0165\1\0\3\u0165\4\0\3\u0165\1\0\1\u0165"+ - "\12\0\2\u0165\1\0\22\u0165\3\0\1\u0165\2\0\14\u0165"+ - "\1\0\2\u0165\54\0\1\u0166\5\0\1\u0167\1\u0168\1\u0169"+ - "\1\u016a\1\u016b\1\u016c\1\u016d\1\u016e\1\u016f\1\0\1\u0170"+ - "\2\0\1\u0171\2\0\1\u0172\40\0\6\u0173\1\0\4\u0173"+ - "\2\0\1\u0173\1\0\3\u0173\4\0\3\u0173\1\0\1\u0173"+ - "\12\0\2\u0173\1\0\22\u0173\3\0\1\u0173\2\0\14\u0173"+ - "\1\0\2\u0173\12\0\6\242\1\0\13\242\5\0\2\242"+ - "\14\0\2\242\1\0\22\242\3\0\1\242\2\0\17\242"+ - "\12\0\6\242\1\0\4\242\2\0\1\242\1\0\3\242"+ - "\5\0\2\242\14\0\2\242\1\0\22\242\3\0\1\242"+ - "\2\0\14\242\1\0\2\242\11\0\7\253\1\0\4\253"+ - "\2\0\1\253\1\0\3\253\2\0\1\253\1\0\1\u0164"+ - "\2\253\14\0\2\253\1\0\22\253\2\0\1\261\1\253"+ - "\2\0\14\253\1\0\2\253\11\0\7\253\1\0\4\253"+ - "\2\0\1\253\1\0\3\253\2\0\1\253\2\0\2\253"+ - "\14\0\2\253\1\0\22\253\2\0\1\261\1\253\2\0"+ - "\14\253\1\0\2\253\25\0\2\254\1\0\1\254\13\0"+ - "\1\254\4\0\1\u0174\5\0\1\u0175\7\0\1\u0176\3\0"+ - "\1\u0174\2\0\1\u0177\1\u0178\1\u0179\25\0\1\254\13\0"+ - "\7\253\1\0\4\253\2\254\1\253\1\254\3\253\2\0"+ - "\1\253\2\0\2\253\14\0\2\253\1\0\22\253\2\0"+ - "\1\261\1\253\2\0\14\253\1\254\2\253\13\0\1\u017a"+ - "\7\0\1\u017a\1\0\4\u017a\11\0\1\u017a\24\0\1\u017a"+ - "\1\0\2\u017a\1\0\1\u017a\2\0\1\u017a\3\0\1\u017a"+ - "\7\0\1\u017a\3\0\1\u017a\6\0\1\u017a\61\0\1\u017b"+ - "\52\0\2\u017c\1\0\126\u017c\2\267\1\0\34\267\1\0"+ - "\25\267\1\0\5\267\1\0\15\267\1\0\17\267\10\0"+ - "\1\u017d\120\0\2\272\1\0\32\272\2\0\71\272\61\0"+ - "\1\u017e\50\0\2\277\1\0\33\277\1\0\5\277\1\0"+ - "\64\277\60\0\1\u017f\61\0\6\u0180\1\0\10\u0180\2\0"+ - "\1\u0180\5\0\2\u0180\14\0\2\u0180\1\0\22\u0180\3\0"+ - "\1\u0180\2\0\17\u0180\12\0\1\305\1\u0181\3\305\1\u0182"+ - "\1\0\10\305\2\0\1\305\5\0\2\305\14\0\2\305"+ - "\1\0\2\305\1\u0182\2\305\1\u0181\14\305\3\0\1\305"+ - "\2\0\17\305\12\0\6\305\1\0\10\305\2\0\1\305"+ - "\5\0\2\305\14\0\2\305\1\0\22\305\3\0\1\305"+ - "\2\0\17\305\32\0\1\u0183\116\0\1\u0184\174\0\1\u0185"+ - "\134\0\1\u0186\136\0\1\u0187\144\0\1\u0188\17\0\2\65"+ - "\1\0\1\65\1\0\2\65\2\0\2\65\1\u0189\3\65"+ - "\1\0\26\65\1\0\12\65\1\u0189\26\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\22\65\1\u018a\16\65\1\0\1\65\1\u018a\20\65"+ - "\1\0\1\65\1\0\2\65\2\0\2\65\1\u018b\3\65"+ - "\1\0\1\333\25\65\1\0\12\65\1\u018b\12\65\1\333"+ - "\13\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\1\65\1\u018c\1\u018d\3\65\1\0\1\65\1\u018e\24\65"+ - "\1\0\12\65\1\u018d\4\65\1\u018c\1\u018e\20\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\4\65\1\112"+ - "\1\65\1\0\6\65\1\112\17\65\1\0\26\65\1\112"+ - "\4\65\1\112\5\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\12\65\1\u018f\13\65\1\0"+ - "\41\65\1\0\6\65\1\u018f\13\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\30\65\1\u0190"+ - "\10\65\1\0\4\65\1\u0190\15\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\22\65\1\u0191"+ - "\16\65\1\0\1\65\1\u0191\20\65\1\0\1\65\1\0"+ - "\2\65\2\0\5\65\1\u0192\1\0\26\65\1\0\14\65"+ - "\1\u0192\24\65\1\0\22\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\26\65\1\0\15\65\1\u0193\23\65"+ - "\1\0\3\65\1\u0193\16\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\1\65\1\u0194\24\65\1\0\20\65"+ - "\1\u0194\1\u0192\6\65\1\u0195\10\65\1\0\4\65\1\u0195"+ - "\1\u0192\14\65\1\0\1\65\1\0\2\65\2\0\4\65"+ - "\1\u018c\1\65\1\0\26\65\1\0\15\65\1\u0196\10\65"+ - "\1\u018c\12\65\1\0\3\65\1\u0196\16\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\1\65\1\u0192\24\65"+ - "\1\0\20\65\1\u0192\20\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\3\65\1\u0197\2\65\1\0\26\65"+ - "\1\0\7\65\1\u0197\31\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65"+ - "\1\u0198\16\65\1\0\1\65\1\u0198\20\65\1\0\1\65"+ - "\1\0\2\65\2\0\2\65\1\u0199\3\65\1\0\26\65"+ - "\1\0\12\65\1\u0199\26\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\1\112\3\65\1\u019a\1\65\1\0"+ - "\26\65\1\0\23\65\1\112\2\65\1\u019a\12\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\10\65\1\112\30\65\1\0\7\65\1\112"+ - "\12\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\2\65\1\112\23\65\1\0\13\65\1\u019b\13\65\1\112"+ - "\11\65\1\0\2\65\1\u019b\17\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\22\65\1\u019c"+ - "\16\65\1\0\1\65\1\u019c\20\65\1\0\1\65\1\0"+ - "\2\65\2\0\2\65\1\u019d\3\65\1\0\26\65\1\0"+ - "\12\65\1\u019d\26\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\5\65\1\333\1\0\26\65\1\0\14\65"+ - "\1\333\13\65\1\u0192\10\65\1\0\4\65\1\u0192\15\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\20\65"+ - "\1\u019e\5\65\1\0\37\65\1\u019e\1\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\13\65\1\362\25\65\1\0\2\65\1\362\17\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\13\65\1\u019f\25\65\1\0\2\65\1\u019f\17\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\2\65"+ - "\1\u01a0\23\65\1\0\27\65\1\u01a0\11\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\6\65"+ - "\1\333\17\65\1\0\33\65\1\333\5\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\15\65\1\u01a1\23\65\1\0\3\65\1\u01a1\16\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\10\65\1\u01a2\30\65\1\0\7\65\1\u01a2\12\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\1\u01a3"+ - "\5\65\1\u01a4\17\65\1\0\25\65\1\u01a3\5\65\1\u01a4"+ - "\5\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\6\65\1\u01a5\17\65\1\0\33\65\1\u01a5"+ - "\5\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\2\65\1\u01a6\23\65\1\0\27\65\1\u01a6"+ - "\11\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\3\65\1\u01a7\2\65\1\0\26\65\1\0\7\65\1\u01a7"+ - "\3\65\1\u01a8\25\65\1\0\2\65\1\u01a8\17\65\1\0"+ - "\1\65\1\0\2\65\2\0\5\65\1\u01a9\1\0\26\65"+ - "\1\0\14\65\1\u01a9\24\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\1\u01aa\5\65\1\0\26\65\1\0"+ - "\23\65\1\u01aa\15\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\21\65\1\u01ab"+ - "\17\65\1\0\5\65\1\u01ab\14\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\13\65\1\112"+ - "\25\65\1\0\2\65\1\112\17\65\1\0\1\65\1\0"+ - "\2\65\2\0\1\u01ac\5\65\1\0\26\65\1\0\23\65"+ - "\1\u01ac\15\65\1\0\22\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\26\65\1\0\22\65\1\u01ad\16\65"+ - "\1\0\1\65\1\u01ad\20\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\2\65\1\u01ae\23\65\1\0\10\65"+ - "\1\u01af\16\65\1\u01ae\11\65\1\0\7\65\1\u01af\12\65"+ - "\1\0\1\65\1\0\2\65\2\0\2\65\1\u01b0\3\65"+ - "\1\0\26\65\1\0\12\65\1\u01b0\1\u0193\1\65\1\u01b1"+ - "\23\65\1\0\2\65\1\u0193\1\u01b1\16\65\1\0\1\65"+ - "\1\0\2\65\2\0\5\65\1\u01b2\1\0\26\65\1\0"+ - "\14\65\1\u01b2\24\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\41\65\1\0"+ - "\15\65\1\u018e\4\65\1\0\1\65\1\0\2\65\2\0"+ - "\5\65\1\u01b3\1\0\26\65\1\0\14\65\1\u01b3\24\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\1\u01b1"+ - "\5\65\1\0\26\65\1\0\23\65\1\u01b1\15\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\1\u01b4\5\65"+ - "\1\0\1\65\1\335\1\u01b5\3\65\1\u0111\12\65\1\u01b6"+ - "\4\65\1\0\20\65\1\335\2\65\1\u01b4\1\u01b6\2\65"+ - "\1\u01b5\3\65\1\u0111\5\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\32\65"+ - "\1\112\6\65\1\0\12\65\1\112\7\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\30\65"+ - "\1\u01b7\10\65\1\0\4\65\1\u01b7\15\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65"+ - "\1\u01b8\16\65\1\0\1\65\1\u01b8\20\65\1\0\1\65"+ - "\1\0\2\65\2\0\2\65\1\112\3\65\1\0\26\65"+ - "\1\0\12\65\1\112\7\65\1\u01b9\7\65\1\112\6\65"+ - "\1\0\1\65\1\u01b9\10\65\1\112\7\65\1\0\1\65"+ - "\1\0\2\65\2\0\5\65\1\u01ba\1\0\1\65\1\112"+ - "\24\65\1\0\14\65\1\u01ba\3\65\1\112\20\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\15\65\1\112\23\65\1\0\3\65\1\112"+ - "\16\65\1\0\1\65\1\0\2\65\2\0\5\65\1\u01bb"+ - "\1\0\26\65\1\0\14\65\1\u01bb\24\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\3\65\1\u01bc\2\65"+ - "\1\0\26\65\1\0\7\65\1\u01bc\31\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\2\65\1\u01bd\3\65"+ - "\1\0\26\65\1\0\12\65\1\u01bd\26\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\5\65\1\u01be\1\0"+ - "\2\65\1\u01bf\23\65\1\0\14\65\1\u01be\12\65\1\u01bf"+ - "\11\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\4\65\1\u01c0\1\65\1\0\26\65\1\0\26\65\1\u01c0"+ - "\12\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\6\65\1\u0111\17\65\1\0\33\65\1\u0111"+ - "\5\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\26\65\1\0\21\65\1\u01c1\17\65\1\0"+ - "\5\65\1\u01c1\14\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\26\65\1\0\21\65\1\u01c2\17\65\1\0"+ - "\5\65\1\u01c2\14\65\1\0\1\65\1\0\2\65\2\0"+ - "\5\65\1\u01c3\1\0\26\65\1\0\14\65\1\u01c3\1\u01c4"+ - "\23\65\1\0\3\65\1\u01c4\16\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\1\65\1\u01c5\24\65\1\0"+ - "\20\65\1\u01c5\20\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\2\65\1\u01c6\1\65\1\112\1\65\1\0"+ - "\26\65\1\0\12\65\1\u01c6\13\65\1\112\12\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\1\u01c7\25\65\1\0\25\65\1\u01c7\13\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\21\65\1\112\17\65\1\0\5\65\1\112\14\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\21\65\1\u01c8\17\65\1\0\5\65\1\u01c8\14\65"+ - "\1\0\1\65\1\0\2\65\2\0\2\65\1\112\3\65"+ - "\1\0\26\65\1\0\12\65\1\112\26\65\1\0\20\65"+ - "\11\0\1\u01c9\60\0\1\u01c9\36\0\10\u0115\1\u01ca\24\u0115"+ - "\1\u0117\75\u0115\1\0\126\u0115\37\0\1\u01cb\71\0\1\127"+ - "\10\0\6\127\1\0\11\127\1\0\1\u01cc\1\0\3\127"+ - "\1\0\2\127\14\0\2\127\1\0\23\127\2\0\1\127"+ - "\2\0\17\127\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\12\136\1\u01cd\7\136\1\127\2\0"+ - "\1\136\2\0\17\136\20\0\1\146\26\0\1\63\62\0"+ - "\1\u011d\10\0\6\u011d\1\0\11\u011d\1\0\1\u011d\1\0"+ - "\3\u011d\1\0\2\u011d\14\0\2\u011d\1\0\23\u011d\2\0"+ - "\1\u011d\2\0\17\u011d\1\0\1\u011d\10\0\6\u011d\1\0"+ - "\4\u011d\2\u01ce\1\u011d\1\u01ce\1\u011d\1\u01cf\1\u011d\1\0"+ - "\3\u011d\1\0\2\u011d\1\u01cf\13\0\2\u011d\1\0\23\u011d"+ - "\2\0\1\u011d\2\0\14\u011d\1\u01ce\2\u011d\1\0\1\u011d"+ - "\10\0\6\u011d\1\0\2\u011d\1\u011f\1\u011d\2\u0121\1\u011d"+ - "\1\u0121\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d"+ - "\1\u0120\14\0\2\u011d\1\0\7\u011d\1\u0120\2\u011d\1\u0120"+ - "\2\u011d\1\u011f\5\u011d\2\0\1\u011d\2\0\5\u011d\1\u0120"+ - "\6\u011d\1\u0121\2\u011d\1\0\1\u011d\10\0\6\u011d\1\0"+ - "\2\u011d\1\u011f\1\u011d\2\u0122\1\u011d\1\u0122\1\u011d\1\0"+ - "\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u0120\1\0\1\u0121"+ - "\12\0\2\u011d\1\0\7\u011d\1\u0120\2\u011d\1\u0120\2\u011d"+ - "\1\u011f\5\u011d\2\0\1\u011d\2\0\5\u011d\1\u0120\6\u011d"+ - "\1\u0122\2\u011d\1\0\1\u011d\10\0\6\u011d\1\0\1\u011d"+ - "\1\u01d0\1\u011f\1\u011d\1\u0122\1\u0123\1\u011d\1\u0123\1\u011d"+ - "\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u0120\1\0"+ - "\1\u0121\12\0\2\u011d\1\0\6\u011d\1\u01d0\1\u0120\2\u011d"+ - "\1\u0120\2\u011d\1\u011f\5\u011d\2\0\1\u011d\2\0\5\u011d"+ - "\1\u0120\6\u011d\1\u0123\2\u011d\1\0\1\u011d\10\0\1\u011d"+ - "\1\u01d1\4\u011d\1\0\2\u011d\1\u01d1\1\u011d\4\u01d1\1\u011d"+ - "\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u01d1\14\0"+ - "\2\u011d\1\0\5\u011d\1\u01d1\1\u011d\2\u01d1\1\u011d\1\u01d1"+ - "\2\u011d\1\u01d1\3\u011d\1\u01d1\1\u011d\2\0\1\u011d\2\0"+ - "\1\u011d\1\u01d1\3\u011d\1\u01d1\6\u011d\1\u01d1\2\u011d\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\15\136\1\u01d2\4\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\2\136\1\u01d3\6\136\1\u01d4\10\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\1\136\1\u01d5\14\0\2\136\1\0\22\136\1\127\2\0"+ - "\1\136\2\0\3\136\1\u01d6\13\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\14\136\1\u01d7"+ - "\5\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\2\136"+ - "\1\u01d8\17\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\2\136\1\u01d9\17\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u01da"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\10\136\1\u01db\2\136\1\u0128\6\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\1\u01dc\1\136\1\0\1\u01dd\21\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\14\136\1\u01de\5\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\6\136\1\u01df"+ - "\13\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\2\136"+ - "\1\u01e0\17\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\22\136\1\127\2\0\1\136\2\0\1\u0128\16\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\3\136\1\u01e1\16\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\10\136\1\u01e2\11\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\10\136\1\u01e3\11\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\2\136\1\u01e4\6\136\1\u01e5\10\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\3\136\1\u01e6"+ - "\16\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\2\136"+ - "\1\u01e7\17\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\u01e8\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\6\136"+ - "\1\u01e9\3\136\1\u01ea\6\136\1\u01eb\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\11\136\1\u01ec\10\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\14\136\1\u01ed\5\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\10\136\1\u01ee\11\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\1\136\1\u01ef"+ - "\20\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136"+ - "\1\u01f0\16\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u01f1\1\136"+ - "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\3\136\1\u01f2\16\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\3\136\1\u01f3\16\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\1\u0128\21\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\1\136\1\u01f4\20\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\6\136\1\u01f5\13\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\21\136\1\u01f6\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\1\u01f7\1\136\1\0\1\136\1\u01f8\20\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\1\u01f9\4\136"+ - "\1\u01fa\14\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\u01fb\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\11\136"+ - "\1\u01e5\10\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\5\136\1\u01fc\14\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\5\136\1\u01fd\14\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\10\136\1\u01fe\11\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\2\136\1\u01ff\11\136\1\u0200\5\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\1\u0201\1\136\1\0\6\136"+ - "\1\u0202\13\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\15\136\1\u0203\4\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\1\136\1\u0204\20\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\2\136\1\u0205\17\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\2\136\1\u0206\17\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\1\u0207\1\136\1\0\22\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\22\136\1\127\2\0\1\136"+ - "\2\0\3\136\1\u0128\13\136\13\0\1\u0208\7\0\1\u0208"+ - "\1\0\4\u0208\11\0\1\u0208\24\0\1\u0208\1\0\2\u0208"+ - "\1\0\1\u0208\2\0\1\u0208\3\0\1\u0208\7\0\1\u0208"+ - "\3\0\1\u0208\6\0\1\u0208\15\0\1\u0209\7\0\1\u0209"+ - "\1\0\4\u0209\11\0\1\u0209\24\0\1\u0209\1\0\2\u0209"+ - "\1\0\1\u0209\2\0\1\u0209\3\0\1\u0209\7\0\1\u0209"+ - "\3\0\1\u0209\6\0\1\u0209\14\0\1\u020a\60\0\1\u020a"+ - "\121\0\1\u020b\134\0\1\u020c\136\0\1\u020d\144\0\1\u020e"+ - "\30\0\1\u020f\60\0\1\u020f\121\0\1\u0210\134\0\1\u0211"+ - "\136\0\1\u0212\144\0\1\u0213\30\0\1\u0214\60\0\1\u0214"+ - "\47\0\6\u0165\1\0\13\u0165\5\0\2\u0165\1\0\1\u0165"+ - "\12\0\2\u0165\1\0\22\u0165\3\0\1\u0165\2\0\17\u0165"+ - "\72\0\1\u0215\1\0\1\u0216\6\0\1\u0217\110\0\1\u0218"+ - "\132\0\1\u0219\135\0\1\u021a\121\0\1\u021b\1\u021c\127\0"+ - "\1\u021d\133\0\1\u021e\121\0\1\u021f\12\0\1\u0220\115\0"+ - "\1\u0221\140\0\1\u0222\120\0\1\u0223\3\0\1\u0224\132\0"+ - "\1\u0225\12\0\1\u0226\107\0\1\u0227\63\0\6\u0173\1\0"+ - "\13\u0173\5\0\2\u0173\1\0\1\u0173\12\0\2\u0173\1\0"+ - "\22\u0173\3\0\1\u0173\2\0\17\u0173\65\0\1\u0174\143\0"+ - "\1\u0174\114\0\1\u0174\2\0\1\u0174\17\0\1\u0174\121\0"+ - "\1\u0174\6\0\1\u0174\114\0\1\u0174\4\0\1\u0174\130\0"+ - "\1\u0228\42\0\2\305\1\u0229\3\305\1\0\10\305\2\0"+ - "\1\305\5\0\2\305\14\0\2\305\1\0\1\u0229\21\305"+ - "\3\0\1\305\2\0\17\305\12\0\6\305\1\0\1\u022a"+ - "\7\305\2\0\1\305\5\0\2\305\14\0\2\305\1\0"+ - "\13\305\1\u022a\6\305\3\0\1\305\2\0\17\305\32\0"+ - "\1\u022b\174\0\1\u022c\131\0\1\u0187\105\0\1\u022d\120\0"+ - "\1\u022e\65\0\2\65\1\0\1\65\1\0\2\65\2\0"+ - "\3\65\1\u022f\2\65\1\0\26\65\1\0\7\65\1\u022f"+ - "\31\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0"+ - "\1\65\1\u01a3\4\65\1\0\26\65\1\0\15\65\1\112"+ - "\1\65\1\u01a3\21\65\1\0\3\65\1\112\16\65\1\0"+ - "\1\65\1\0\2\65\2\0\3\65\1\u0230\2\65\1\0"+ - "\26\65\1\0\7\65\1\u0230\3\65\1\u0231\25\65\1\0"+ - "\2\65\1\u0231\17\65\1\0\1\65\1\0\2\65\2\0"+ - "\5\65\1\u0232\1\0\26\65\1\0\14\65\1\u0232\24\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\26\65\1\0\32\65\1\u01a3\6\65\1\0\12\65"+ - "\1\u01a3\7\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\2\65\1\u0233\23\65\1\0\27\65\1\u0233\11\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\2\65"+ - "\1\u0234\3\65\1\0\26\65\1\0\12\65\1\u0234\26\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\4\65"+ - "\1\112\1\65\1\0\26\65\1\0\26\65\1\112\12\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\1\65\1\u01b7\24\65\1\0\20\65\1\u01b7\20\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\2\65\1\112\23\65\1\0\27\65\1\112\11\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\5\65"+ - "\1\u01a3\1\0\26\65\1\0\14\65\1\u01a3\24\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\10\65\1\u0235\30\65\1\0\7\65\1\u0235"+ - "\12\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\30\65\1\u0236\10\65\1\0\4\65\1\u0236"+ - "\15\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\32\65\1\u0237\6\65\1\0\12\65\1\u0237"+ - "\7\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\15\65\1\u0238\23\65\1\0\3\65\1\u0238"+ - "\16\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\1\u01a3\25\65\1\0\25\65\1\u01a3\13\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\22\65\1\u0239\16\65\1\0\1\65\1\u0239\20\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\12\65"+ - "\1\u01b1\13\65\1\0\41\65\1\0\6\65\1\u01b1\13\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\10\65\1\u01c2\30\65\1\0\7\65\1\u01c2\12\65"+ - "\1\0\1\65\1\0\2\65\2\0\3\65\1\u023a\2\65"+ - "\1\0\26\65\1\0\7\65\1\u023a\31\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\22\65\1\u01b0\16\65\1\0\1\65\1\u01b0\20\65"+ - "\1\0\1\65\1\0\2\65\2\0\5\65\1\u023b\1\0"+ - "\26\65\1\0\14\65\1\u023b\24\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\13\65\1\u01b1\25\65\1\0\2\65\1\u01b1\17\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\22\65\1\u010f\16\65\1\0\1\65\1\u010f\20\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\31\65\1\112\7\65\1\0\10\65\1\112\11\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u023c"+ - "\23\65\1\0\27\65\1\u023c\11\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u0111"+ - "\23\65\1\0\27\65\1\u0111\11\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u01b7"+ - "\23\65\1\0\27\65\1\u01b7\11\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u010f"+ - "\23\65\1\0\27\65\1\u010f\11\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\15\65\1\u023d\23\65\1\0\3\65\1\u023d\16\65\1\0"+ - "\1\65\1\0\2\65\2\0\1\65\1\u023e\4\65\1\0"+ - "\26\65\1\0\17\65\1\u023e\21\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\5\65\1\u023f\1\0\26\65"+ - "\1\0\14\65\1\u023f\24\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\13\65"+ - "\1\u0240\25\65\1\0\2\65\1\u0240\17\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\1\112\25\65\1\0"+ - "\25\65\1\112\13\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\2\65\1\u0241\23\65\1\0"+ - "\27\65\1\u0241\11\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\30\65\1\u0242"+ - "\10\65\1\0\4\65\1\u0242\15\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\1\65\1\u0243\24\65\1\0"+ - "\20\65\1\u0243\20\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\12\65\1\u0244\13\65\1\0"+ - "\41\65\1\0\6\65\1\u0244\13\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\30\65\1\112"+ - "\10\65\1\0\4\65\1\112\15\65\1\0\1\65\1\0"+ - "\2\65\2\0\5\65\1\112\1\0\26\65\1\0\14\65"+ - "\1\112\24\65\1\0\22\65\1\0\1\65\1\0\2\65"+ - "\2\0\3\65\1\u023f\2\65\1\0\26\65\1\0\7\65"+ - "\1\u023f\1\u0235\30\65\1\0\7\65\1\u0235\12\65\1\0"+ - "\1\65\1\0\2\65\2\0\4\65\1\u019a\1\65\1\0"+ - "\26\65\1\0\26\65\1\u019a\12\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\1\65\1\317\4\65\1\0"+ - "\26\65\1\0\17\65\1\317\21\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\30\65\1\u0245\10\65\1\0\4\65\1\u0245\15\65\1\0"+ - "\1\65\1\0\2\65\2\0\2\65\1\u0246\3\65\1\0"+ - "\26\65\1\0\12\65\1\u0246\26\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\21\65\1\u0247\17\65\1\0\5\65\1\u0247\14\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\1\65\1\u0248"+ - "\24\65\1\0\20\65\1\u0248\20\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\22\65\1\u0249\16\65\1\0\1\65\1\u0249\20\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\22\65\1\u024a\16\65\1\0\1\65\1\u024a\20\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\21\65\1\u0192\17\65\1\0\5\65\1\u0192\14\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\13\65\1\u024b\25\65\1\0\2\65\1\u024b\17\65\1\0"+ - "\1\65\1\0\2\65\2\0\3\65\1\u024c\2\65\1\0"+ - "\26\65\1\0\7\65\1\u024c\31\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\22\65\1\112\16\65\1\0\1\65\1\112\20\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\1\65\1\u024d"+ - "\24\65\1\0\20\65\1\u024d\20\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\3\65\1\363\2\65\1\0"+ - "\26\65\1\0\7\65\1\363\31\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\2\65\1\u024e\3\65\1\0"+ - "\26\65\1\0\12\65\1\u024e\26\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u0111"+ - "\23\65\1\0\22\65\1\112\4\65\1\u0111\11\65\1\0"+ - "\1\65\1\112\20\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\12\65\1\112\13\65\1\0\41\65\1\0"+ - "\6\65\1\112\13\65\1\0\1\65\1\0\2\65\2\0"+ - "\5\65\1\u024f\1\0\26\65\1\0\14\65\1\u024f\24\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\26\65\1\0\31\65\1\112\7\65\1\0\10\65"+ - "\1\112\1\u0250\10\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\26\65\1\0\10\65\1\u0251\30\65\1\0"+ - "\7\65\1\u0251\12\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\2\65\1\363\23\65\1\0\27\65\1\363"+ - "\11\65\1\0\20\65\12\0\1\u0252\53\0\1\u0252\120\0"+ - "\2\u01ca\17\0\1\u01ca\41\0\1\u0253\120\0\1\127\10\0"+ - "\1\127\1\u0254\4\127\1\0\2\127\1\u0254\1\127\4\u0254"+ - "\1\127\1\0\1\127\1\0\3\127\1\0\1\127\1\u0254"+ - "\14\0\2\127\1\0\5\127\1\u0254\1\127\2\u0254\1\127"+ - "\1\u0254\2\127\1\u0254\3\127\1\u0254\1\127\2\0\1\127"+ - "\2\0\1\127\1\u0254\3\127\1\u0254\6\127\1\u0254\2\127"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u0255"+ - "\1\136\1\0\22\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\u011d\10\0\6\u011d\1\0\4\u011d\2\u01ce\1\u011d"+ - "\1\u01ce\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d"+ - "\1\u0120\14\0\2\u011d\1\0\7\u011d\1\u0120\2\u011d\1\u0120"+ - "\10\u011d\2\0\1\u011d\2\0\5\u011d\1\u0120\6\u011d\1\u01ce"+ - "\2\u011d\25\0\2\u01ce\1\0\1\u01ce\75\0\1\u01ce\3\0"+ - "\1\u011d\10\0\1\u011d\1\u01d1\4\u011d\1\0\1\u011d\1\u01d0"+ - "\1\u01d1\1\u011d\4\u01d1\1\u011d\1\0\1\u011d\1\0\3\u011d"+ - "\1\0\1\u011d\1\u01d1\14\0\2\u011d\1\0\5\u011d\1\u01d1"+ - "\1\u01d0\2\u01d1\1\u011d\1\u01d1\2\u011d\1\u01d1\3\u011d\1\u01d1"+ - "\1\u011d\2\0\1\u011d\2\0\1\u011d\1\u01d1\3\u011d\1\u01d1"+ - "\6\u011d\1\u01d1\2\u011d\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\11\136\1\u014b\10\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\15\136\1\u0256\4\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\2\136\1\u0257"+ - "\17\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\1\u0258\1\136\1\0"+ - "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136"+ - "\1\u0259\11\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\1\136\1\u025a\4\136\1\u025b\13\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\1\136\1\u0128\20\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\u025c\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\22\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\15\136\1\u025d\4\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\3\136\1\u025e\16\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\11\136\1\u0128\10\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\1\136\1\u025f"+ - "\20\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\15\136"+ - "\1\u0260\4\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\6\136\1\u0128\13\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u0261"+ - "\1\136\1\0\22\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\2\136\1\u0262\6\136\1\u0263\10\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\1\u0264\21\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\11\136\1\u01dc\10\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\5\136\1\u0206\14\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\15\136\1\u0128"+ - "\4\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\1\136\1\u0264\1\0"+ - "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\21\136"+ - "\1\u0265\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\15\136"+ - "\1\u0266\4\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\10\136\1\u0267\11\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u0268"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\2\136\1\u0269\17\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\15\136\1\u0142\4\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\2\136\1\u026a\17\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\1\u026b\21\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\5\136\1\u026c\14\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\2\136\1\u01e4\17\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\5\136\1\u026d\14\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\10\136\1\u026e"+ - "\11\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136"+ - "\1\u026b\11\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\11\136\1\u01da\10\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\6\136\1\u026a\13\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\20\136\1\u026f\1\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\2\136\1\u0270\17\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\11\136\1\u0271\10\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\17\136\1\u0272\2\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\16\136\1\u0128"+ - "\3\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\4\136"+ - "\1\u0273\15\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\10\136\1\u0274\11\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\6\136\1\u0275\13\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\15\136\1\u0276\4\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\1\136\1\u025a\20\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\7\136\1\u0128\12\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\10\136\1\u0277\11\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\10\136\1\u0278"+ - "\11\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\6\136"+ - "\1\u0279\13\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\15\136\1\u0264\4\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\4\136\1\u0128\15\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\6\136\1\u01e5\13\136\1\127\2\0\1\136"+ - "\2\0\17\136\13\0\1\u027a\7\0\1\u027a\1\0\4\u027a"+ - "\11\0\1\u027a\24\0\1\u027a\1\0\2\u027a\1\0\1\u027a"+ - "\2\0\1\u027a\3\0\1\u027a\7\0\1\u027a\3\0\1\u027a"+ - "\6\0\1\u027a\15\0\1\u027b\7\0\1\u027b\1\0\4\u027b"+ - "\11\0\1\u027b\24\0\1\u027b\1\0\2\u027b\1\0\1\u027b"+ - "\2\0\1\u027b\3\0\1\u027b\7\0\1\u027b\3\0\1\u027b"+ - "\6\0\1\u027b\15\0\1\u027c\53\0\1\u027c\137\0\1\u027d"+ - "\131\0\1\u020d\105\0\1\u027e\120\0\1\u027f\77\0\1\u0280"+ - "\53\0\1\u0280\137\0\1\u0281\131\0\1\u0212\105\0\1\u0282"+ - "\120\0\1\u0283\103\0\1\u0284\44\0\1\u0284\140\0\1\u0285"+ - "\113\0\1\u0286\150\0\1\u0287\114\0\1\u021b\135\0\1\u0288"+ - "\122\0\1\u0289\132\0\1\u028a\132\0\1\u028b\144\0\1\u028c"+ - "\125\0\1\u028d\116\0\1\u028e\130\0\1\u028f\5\0\1\u0290"+ - "\130\0\1\u0225\121\0\1\u0291\126\0\1\u0292\135\0\1\u0293"+ - "\133\0\1\u0294\134\0\1\u0295\125\0\1\u0296\133\0\1\u0297"+ - "\44\0\3\305\1\u0298\2\305\1\0\10\305\2\0\1\305"+ - "\5\0\2\305\14\0\1\u0298\1\305\1\0\22\305\3\0"+ - "\1\305\2\0\17\305\12\0\6\305\1\0\1\305\1\u0299"+ - "\6\305\2\0\1\305\5\0\2\305\14\0\2\305\1\0"+ - "\6\305\1\u0299\13\305\3\0\1\305\2\0\17\305\54\0"+ - "\1\u022d\16\0\1\u0187\46\0\1\u029a\125\0\2\u029b\1\0"+ - "\7\u022e\1\0\10\u022e\2\u029b\1\u022e\1\0\1\u029b\1\0"+ - "\1\u022e\1\u029b\2\u022e\2\u029b\1\0\2\u029b\1\0\5\u029b"+ - "\1\0\2\u022e\1\0\22\u022e\3\u029b\1\u022e\2\u029b\17\u022e"+ - "\1\0\2\65\1\0\1\65\1\0\2\65\2\0\4\65"+ - "\1\u01b1\1\65\1\0\26\65\1\0\26\65\1\u01b1\12\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\26\65\1\0\31\65\1\u0192\7\65\1\0\10\65"+ - "\1\u0192\11\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\26\65\1\0\15\65\1\340\23\65\1\0\3\65"+ - "\1\340\16\65\1\0\1\65\1\0\2\65\2\0\3\65"+ - "\1\u023f\2\65\1\0\26\65\1\0\7\65\1\u023f\31\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\1\65"+ - "\1\u01b1\4\65\1\0\26\65\1\0\17\65\1\u01b1\21\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\1\65"+ - "\1\u0192\4\65\1\0\26\65\1\0\17\65\1\u0192\21\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\2\65"+ - "\1\u029c\3\65\1\0\26\65\1\0\12\65\1\u029c\26\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\2\65\1\u029d\23\65\1\0\22\65\1\u023c\4\65"+ - "\1\u029d\11\65\1\0\1\65\1\u023c\20\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65"+ - "\1\u029e\16\65\1\0\1\65\1\u029e\20\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\21\65"+ - "\1\u029f\17\65\1\0\5\65\1\u029f\14\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\30\65"+ - "\1\u0192\10\65\1\0\4\65\1\u0192\15\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\15\65"+ - "\1\u02a0\23\65\1\0\3\65\1\u02a0\16\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65"+ - "\1\u02a1\16\65\1\0\1\65\1\u02a1\20\65\1\0\1\65"+ - "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\15\65"+ - "\1\u010f\23\65\1\0\3\65\1\u010f\16\65\1\0\1\65"+ - "\1\0\2\65\2\0\5\65\1\u02a2\1\0\26\65\1\0"+ - "\14\65\1\u02a2\24\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\31\65\1\u02a3"+ - "\7\65\1\0\10\65\1\u02a3\11\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\13\65\1\u0102"+ - "\25\65\1\0\2\65\1\u0102\17\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\12\65\1\u023c\13\65\1\0"+ - "\41\65\1\0\6\65\1\u023c\13\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\21\65\1\u02a4\4\65\1\0"+ - "\24\65\1\u02a4\14\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\2\65\1\u02a5\23\65\1\0"+ - "\27\65\1\u02a5\11\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\21\65\1\u02a6"+ - "\17\65\1\0\5\65\1\u02a6\14\65\1\0\1\65\1\0"+ - "\2\65\2\0\2\65\1\u0192\3\65\1\0\26\65\1\0"+ - "\12\65\1\u0192\26\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\22\65\1\u02a7"+ - "\16\65\1\0\1\65\1\u02a7\20\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\13\65\1\340"+ - "\25\65\1\0\2\65\1\340\17\65\1\0\1\65\1\0"+ - "\2\65\2\0\3\65\1\u02a8\2\65\1\0\26\65\1\0"+ - "\7\65\1\u02a8\31\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\5\65\1\u02a9\1\0\1\65\1\u02aa\24\65"+ - "\1\0\10\65\1\u02ab\3\65\1\u02a9\3\65\1\u02aa\20\65"+ - "\1\0\7\65\1\u02ab\12\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\26\65\1\0\15\65\1\u02ac\23\65"+ - "\1\0\3\65\1\u02ac\16\65\1\0\1\65\1\0\2\65"+ - "\2\0\1\65\1\333\4\65\1\0\26\65\1\0\17\65"+ - "\1\333\21\65\1\0\22\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\2\65\1\u01b1\23\65\1\0\27\65"+ - "\1\u01b1\11\65\1\0\22\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\2\65\1\u02ad\23\65\1\0\27\65"+ - "\1\u02ad\11\65\1\0\22\65\1\0\1\65\1\0\2\65"+ - "\2\0\3\65\1\u02ae\2\65\1\0\26\65\1\0\7\65"+ - "\1\u02ae\31\65\1\0\22\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\12\65\1\u02af\13\65\1\0\41\65"+ - "\1\0\6\65\1\u02af\13\65\1\0\1\65\1\0\2\65"+ - "\2\0\6\65\1\0\2\65\1\u0102\23\65\1\0\27\65"+ - "\1\u0102\11\65\1\0\20\65\13\0\1\u02b0\45\0\1\u02b0"+ - "\47\0\1\127\10\0\1\127\1\u02b1\4\127\1\0\2\127"+ - "\1\u02b1\1\127\4\u02b1\1\127\1\0\1\127\1\0\3\127"+ - "\1\0\1\127\1\u02b1\14\0\2\127\1\0\5\127\1\u02b1"+ - "\1\127\2\u02b1\1\127\1\u02b1\2\127\1\u02b1\3\127\1\u02b1"+ - "\1\127\2\0\1\127\2\0\1\127\1\u02b1\3\127\1\u02b1"+ - "\6\127\1\u02b1\2\127\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\3\136\1\u02b2\16\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\1\u02b3\21\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\10\136\1\u02b4\11\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\3\136\1\u02b5"+ - "\16\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\22\136"+ - "\1\127\2\0\1\136\2\0\3\136\1\u0275\13\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\1\u0263\21\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\15\136\1\u02b6\4\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\1\u02b7\21\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\11\136\1\u02b8\10\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\22\136\1\127\2\0\1\136\2\0\1\u02b9"+ - "\16\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\1\136\1\u02ba\20\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\20\136\1\u01e5\1\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\1\u02bb\1\136\1\0\22\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\2\136\1\u0128\17\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\6\136\1\u0205\13\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\2\136\1\u01e5"+ - "\17\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\u02bc\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\22\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\1\136\1\u02bd\1\0\22\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\1\u02be\21\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\1\u02bf\1\136\1\0\22\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\2\136\1\u0264"+ - "\17\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\4\136"+ - "\1\u02c0\15\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\2\136\1\u02c1\17\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\6\136\1\u02c2\13\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\10\136\1\u0266\11\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\15\136\1\u02c3\4\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\15\136\1\u02c4\4\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\10\136\1\u02c5\11\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\14\136\1\u02c6"+ - "\5\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136"+ - "\1\u02c7\16\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\2\136\1\u0153\17\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\17\136\1\u0128\2\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\15\136\1\u02c8\4\136\1\127\2\0\1\136"+ - "\2\0\17\136\14\0\1\u02c9\45\0\1\u02c9\122\0\1\u027e"+ - "\16\0\1\u020d\46\0\1\u02ca\125\0\2\u02cb\1\0\7\u027f"+ - "\1\0\10\u027f\2\u02cb\1\u027f\1\0\1\u02cb\1\0\1\u027f"+ - "\1\u02cb\2\u027f\2\u02cb\1\0\2\u02cb\1\0\5\u02cb\1\0"+ - "\2\u027f\1\0\22\u027f\3\u02cb\1\u027f\2\u02cb\17\u027f\14\0"+ - "\1\u02cc\45\0\1\u02cc\122\0\1\u0282\16\0\1\u0212\46\0"+ - "\1\u02cd\125\0\2\u02ce\1\0\7\u0283\1\0\10\u0283\2\u02ce"+ - "\1\u0283\1\0\1\u02ce\1\0\1\u0283\1\u02ce\2\u0283\2\u02ce"+ - "\1\0\2\u02ce\1\0\5\u02ce\1\0\2\u0283\1\0\22\u0283"+ - "\3\u02ce\1\u0283\2\u02ce\17\u0283\21\0\1\u02cf\53\0\1\u02cf"+ - "\117\0\1\u028c\126\0\1\u02d0\142\0\1\u02d1\131\0\1\u02d2"+ - "\113\0\1\u02d3\102\0\1\u02d4\175\0\1\u02d5\120\0\1\u02d6"+ - "\142\0\1\u028a\107\0\1\u028a\134\0\1\u02d2\123\0\1\u02d7"+ - "\144\0\1\u0290\70\0\1\u02d8\200\0\1\u02d9\111\0\1\u02da"+ - "\123\0\1\u02db\134\0\1\u02dc\57\0\4\305\1\u02dd\1\305"+ - "\1\0\10\305\2\0\1\305\5\0\2\305\14\0\2\305"+ - "\1\0\14\305\1\u02dd\5\305\3\0\1\305\2\0\17\305"+ - "\12\0\6\305\1\0\2\305\1\u02de\5\305\2\0\1\305"+ - "\5\0\2\305\14\0\2\305\1\0\15\305\1\u02de\4\305"+ - "\3\0\1\305\2\0\17\305\11\0\1\u022e\120\0\2\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\13\65\1\u02df\25\65\1\0\2\65\1\u02df\17\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65"+ - "\1\0\15\65\1\u01b1\23\65\1\0\3\65\1\u01b1\16\65"+ - "\1\0\1\65\1\0\2\65\2\0\1\112\5\65\1\0"+ - "\26\65\1\0\23\65\1\112\15\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u02e0"+ - "\23\65\1\0\27\65\1\u02e0\11\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\5\65\1\u02e1\1\0\26\65"+ - "\1\0\14\65\1\u02e1\24\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\2\65\1\u02e2\3\65\1\0\26\65"+ - "\1\0\12\65\1\u02e2\26\65\1\0\22\65\1\0\1\65"+ - "\1\0\2\65\2\0\1\u02e3\5\65\1\0\26\65\1\0"+ - "\23\65\1\u02e3\15\65\1\0\22\65\1\0\1\65\1\0"+ - "\2\65\2\0\6\65\1\0\26\65\1\0\41\65\1\0"+ - "\11\65\1\u02e4\10\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\26\65\1\0\13\65\1\u029d\25\65\1\0"+ - "\2\65\1\u029d\17\65\1\0\1\65\1\0\2\65\2\0"+ - "\1\u024d\5\65\1\0\26\65\1\0\23\65\1\u024d\15\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\26\65\1\0\30\65\1\u02e5\10\65\1\0\4\65"+ - "\1\u02e5\15\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\1\65\1\u029e\24\65\1\0\20\65\1\u029e\20\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\2\65\1\u02e6\23\65\1\0\27\65\1\u02e6\11\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\3\65"+ - "\1\373\2\65\1\0\26\65\1\0\7\65\1\373\31\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\2\65"+ - "\1\u02e7\3\65\1\0\26\65\1\0\12\65\1\u02e7\26\65"+ - "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65"+ - "\1\0\1\u01b0\25\65\1\0\25\65\1\u01b0\13\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\1\u029e\5\65"+ - "\1\0\26\65\1\0\23\65\1\u029e\15\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\1\65\1\u02e8\4\65"+ - "\1\0\26\65\1\0\17\65\1\u02e8\21\65\1\0\22\65"+ - "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\2\65"+ - "\1\u0192\23\65\1\0\27\65\1\u0192\11\65\1\0\20\65"+ - "\14\0\1\u02e9\41\0\1\u02e9\52\0\1\127\10\0\1\127"+ - "\1\u02ea\4\127\1\0\2\127\1\u02ea\1\127\4\u02ea\1\127"+ - "\1\0\1\127\1\0\3\127\1\0\1\127\1\u02ea\14\0"+ - "\2\127\1\0\5\127\1\u02ea\1\127\2\u02ea\1\127\1\u02ea"+ - "\2\127\1\u02ea\3\127\1\u02ea\1\127\2\0\1\127\2\0"+ - "\1\127\1\u02ea\3\127\1\u02ea\6\127\1\u02ea\2\127\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u02eb\1\136"+ - "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\12\136\1\u02ec\7\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\3\136\1\u02ed\16\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\1\u02ee\1\136\1\0\22\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\16\136\1\u02ef\3\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\3\136\1\u02f0\16\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\1\u02f1\1\136\1\0\22\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\12\136\1\u0128\7\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\3\136\1\u02f2\16\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\6\136\1\u0263"+ - "\13\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\1\136\1\u01ed\1\0"+ - "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136"+ - "\1\u02f3\11\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\5\136\1\u0128\14\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\1\u02f4\21\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u02f5"+ - "\1\136\1\0\22\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\6\136\1\u02f6\13\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\5\136\1\u02f7\14\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\3\136\1\u02f8\2\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\1\136\1\u02f9\14\0\2\136\1\0\22\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\1\136\1\u01e5\1\0\22\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\15\136\1\u0275\4\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\7\136\1\u01dc"+ - "\12\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136"+ - "\1\u02fa\11\136\1\127\2\0\1\136\2\0\17\136\15\0"+ - "\1\u02fb\41\0\1\u02fb\62\0\1\u027f\134\0\1\u02fc\41\0"+ - "\1\u02fc\62\0\1\u0283\141\0\1\u02fd\45\0\1\u02fd\133\0"+ - "\1\u02fe\120\0\1\u02ff\77\0\1\u0300\175\0\1\u021b\114\0"+ - "\1\u0301\3\0\1\u0302\1\u0303\122\0\1\u028a\147\0\1\u0304"+ - "\131\0\1\u0305\121\0\1\u028a\125\0\1\u0304\135\0\1\u028a"+ - "\117\0\1\u0304\126\0\1\u0306\60\0\5\305\1\u0307\1\0"+ - "\10\305\2\0\1\305\5\0\2\305\14\0\2\305\1\0"+ - "\2\305\1\u0307\17\305\3\0\1\305\2\0\17\305\1\0"+ - "\2\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\12\65\1\u0190\13\65\1\0\41\65\1\0\6\65\1\u0190"+ - "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\20\65\1\112\5\65\1\0\37\65\1\112\1\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\2\65\1\u0308\23\65\1\0\27\65\1\u0308\11\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\2\65\1\u01bf\23\65\1\0\27\65\1\u01bf\11\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\13\65\1\324\25\65\1\0\2\65\1\324"+ - "\17\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\12\65\1\u0309\13\65\1\0\41\65\1\0\6\65\1\u0309"+ - "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\2\65\1\u029e\23\65\1\0\27\65\1\u029e\11\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\30\65\1\u030a\10\65\1\0\4\65\1\u030a"+ - "\15\65\1\0\1\65\1\0\2\65\2\0\3\65\1\u010f"+ - "\2\65\1\0\26\65\1\0\7\65\1\u010f\31\65\1\0"+ - "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\26\65\1\0\13\65\1\u01b7\25\65\1\0\2\65\1\u01b7"+ - "\15\65\15\0\1\u030b\57\0\1\u030b\33\0\1\127\10\0"+ - "\1\127\1\136\4\127\1\0\2\127\1\136\1\127\4\136"+ - "\1\127\1\0\1\127\1\0\3\127\1\0\1\127\1\136"+ - "\14\0\2\127\1\0\5\127\1\136\1\127\2\136\1\127"+ - "\1\136\2\127\1\136\3\127\1\136\1\127\2\0\1\127"+ - "\2\0\1\127\1\136\3\127\1\136\6\127\1\136\2\127"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\2\136\1\u02f6\17\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\10\136\1\u030c\11\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\5\136\1\u01de\14\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\2\136\1\u02c6\17\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\15\136\1\u030d\4\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\15\136\1\u030e"+ - "\4\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\u01e5\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\22\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\5\136\1\u0263"+ - "\14\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\1\136"+ - "\1\u030f\20\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\1\136\1\u0310\20\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\13\136\1\u0128\6\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\2\136\1\u0311\17\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\3\136\1\u0312\16\136\1\127\2\0"+ - "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\6\136\1\u0313\13\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\3\136\1\u0264\16\136"+ - "\1\127\2\0\1\136\2\0\17\136\16\0\1\u0314\57\0"+ - "\1\u0314\50\0\1\u0315\57\0\1\u0315\55\0\1\u0316\53\0"+ - "\1\u0316\115\0\1\u0317\126\0\1\u0305\131\0\1\u0301\3\0"+ - "\1\u0302\135\0\1\u0318\122\0\1\u0319\134\0\1\u0292\135\0"+ - "\1\u031a\130\0\1\u028a\115\0\1\u031b\45\0\2\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\20\65\1\u01b1"+ - "\5\65\1\0\37\65\1\u01b1\1\65\1\0\22\65\1\0"+ - "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0"+ - "\13\65\1\327\25\65\1\0\2\65\1\327\17\65\1\0"+ - "\1\65\1\0\2\65\2\0\4\65\1\u031c\1\65\1\0"+ - "\26\65\1\0\26\65\1\u031c\12\65\1\0\20\65\16\0"+ - "\1\u031d\44\0\1\u031d\45\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\5\136\1\u01e5\14\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\3\136\1\u031e\16\136"+ - "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0"+ - "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a"+ - "\1\136\1\0\2\136\14\0\2\136\1\0\3\136\1\u0263"+ - "\16\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127"+ - "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127"+ - "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136"+ - "\1\u031f\16\136\1\127\2\0\1\136\2\0\17\136\1\0"+ - "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0"+ - "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0"+ - "\3\136\1\u0128\16\136\1\127\2\0\1\136\2\0\17\136"+ - "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136"+ - "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136"+ - "\1\0\15\136\1\u0201\4\136\1\127\2\0\1\136\2\0"+ - "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0"+ - "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0"+ - "\2\136\1\0\2\136\1\u0275\17\136\1\127\2\0\1\136"+ - "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\1\136\1\u0320\20\136\1\127\2\0"+ - "\1\136\2\0\17\136\17\0\1\u0321\44\0\1\u0321\63\0"+ - "\1\u0322\44\0\1\u0322\64\0\1\u0323\142\0\1\u0324\130\0"+ - "\1\u0325\155\0\1\u0326\142\0\1\u028a\131\0\1\u0327\37\0"+ - "\2\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0"+ - "\1\65\1\u0328\24\65\1\0\20\65\1\u0328\20\65\1\0"+ - "\20\65\17\0\1\u0329\111\0\1\127\10\0\6\136\1\0"+ - "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0"+ - "\2\136\14\0\2\136\1\0\2\136\1\u01dc\17\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\1\u032a\1\136\1\0\22\136\1\127"+ - "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136"+ - "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136"+ - "\1\0\2\136\14\0\2\136\1\0\10\136\1\u0312\11\136"+ - "\1\127\2\0\1\136\2\0\17\136\20\0\1\u032b\130\0"+ - "\1\u032c\200\0\1\u032d\124\0\1\u032e\134\0\1\u031a\125\0"+ - "\1\u032f\44\0\2\65\1\0\1\65\1\0\2\65\2\0"+ - "\6\65\1\0\26\65\1\0\22\65\1\327\16\65\1\0"+ - "\1\65\1\327\16\65\1\127\10\0\6\136\1\0\11\136"+ - "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136"+ - "\14\0\2\136\1\0\22\136\1\127\2\0\1\136\2\0"+ - "\16\136\1\u0311\57\0\1\u0330\17\0\1\u0331\126\0\1\u0332"+ - "\117\0\1\u0333\131\0\1\u0305\127\0\1\u0285\142\0\1\u0305"+ - "\33\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[63190]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\6\0\2\1\1\0\2\1\1\0\2\1\7\0\1\1"+ - "\5\0\2\1\1\11\4\1\1\11\5\1\1\11\2\1"+ - "\2\11\2\1\1\11\1\1\3\11\1\1\1\11\25\1"+ - "\1\11\1\1\1\11\1\1\7\11\1\1\1\11\2\1"+ - "\2\11\10\1\1\11\3\1\1\11\20\1\1\11\2\1"+ - "\1\11\1\1\2\11\2\1\1\11\1\1\1\11\1\1"+ - "\1\11\6\1\1\11\4\1\2\11\1\1\1\11\4\1"+ - "\1\11\1\1\3\11\4\1\4\11\1\1\1\11\6\1"+ - "\4\11\1\1\2\11\1\1\1\11\2\1\1\11\2\1"+ - "\1\11\1\1\1\11\1\1\1\11\4\1\2\11\5\0"+ - "\1\11\103\1\1\11\3\0\1\11\1\0\75\1\1\11"+ - "\2\1\1\0\1\11\12\0\1\11\1\1\15\0\1\1"+ - "\1\11\5\0\1\1\1\0\4\11\3\1\1\0\1\11"+ - "\4\0\100\1\1\0\1\1\1\0\3\1\1\0\70\1"+ - "\41\0\2\1\1\11\2\0\44\1\1\0\1\11\46\1"+ - "\1\0\1\11\3\0\1\1\3\0\1\1\6\0\1\11"+ - "\15\0\2\1\2\0\24\1\1\0\30\1\24\0\14\1"+ - "\1\0\21\1\14\0\4\1\1\0\10\1\10\0\1\1"+ - "\1\0\3\1\2\0\1\11\4\0\1\1\1\11\1\1"+ - "\2\11\6\0\1\11"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[819]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int INATTR_SINGLE_SCRIPT = 10; + public static final int JS_CHAR = 16; + public static final int CSS_STRING = 22; + public static final int JS_MLC = 17; + public static final int CSS_CHAR_LITERAL = 23; + public static final int INTAG_SCRIPT = 8; + public static final int JS_TEMPLATE_LITERAL_EXPR = 26; + public static final int CSS_PROPERTY = 20; + public static final int CSS_C_STYLE_COMMENT = 24; + public static final int CSS = 19; + public static final int CSS_VALUE = 21; + public static final int COMMENT = 1; + public static final int INATTR_DOUBLE_SCRIPT = 9; + public static final int PI = 2; + public static final int JAVASCRIPT = 14; + public static final int INTAG = 4; + public static final int INTAG_CHECK_TAG_NAME = 5; + public static final int INATTR_SINGLE_STYLE = 13; + public static final int DTD = 3; + public static final int JS_EOL_COMMENT = 18; + public static final int INATTR_DOUBLE_STYLE = 12; + public static final int INATTR_SINGLE = 7; + public static final int JS_TEMPLATE_LITERAL = 25; + public static final int YYINITIAL = 0; + public static final int INATTR_DOUBLE = 6; + public static final int JS_STRING = 15; + public static final int INTAG_STYLE = 11; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\4\1\2\1\0\1\1\1\33\22\0\1\4\1\51\1\7" + + "\1\34\1\36\1\50\1\5\1\110\1\105\1\104\1\37\1\42\1\45" + "\1\31\1\43\1\10\1\25\6\125\1\27\2\24\1\53\1\6\1\3" + + "\1\46\1\17\1\52\1\103\1\112\1\26\1\12\1\116\1\22\1\41" + "\1\120\1\124\1\14\1\126\1\121\1\21\1\115\1\114\1\113\1\15" + + "\1\122\1\13\1\11\1\16\1\117\1\123\1\23\1\40\1\20\1\23" + "\1\107\1\35\1\107\1\47\1\30\1\130\1\71\1\102\1\66\1\70" + + "\1\76\1\73\1\57\1\65\1\56\1\126\1\100\1\67\1\77\1\64" + "\1\62\1\75\1\122\1\61\1\72\1\63\1\32\1\101\1\111\1\106" + + "\1\74\1\127\1\60\1\55\1\44\1\54\uff81\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 = "\6\0\2\1\1\0\2\1\1\0\2\1\7\0\1\2" + "\5\0\2\2\1\3\1\4\1\5\1\6\1\1\1\7" + + "\5\1\1\10\2\1\1\11\1\12\2\13\1\14\1\15" + "\1\16\1\17\1\20\1\21\1\22\1\23\2\21\2\23" + + "\3\21\2\23\5\21\1\23\3\21\1\23\1\1\1\24" + "\1\1\1\25\1\15\1\26\1\27\1\30\1\31\1\32" + + "\1\33\1\34\1\35\1\36\2\17\1\2\1\37\1\17" + "\2\2\1\17\2\40\1\17\1\2\1\35\2\17\1\2" + "\1\41\1\35\17\2\1\42\2\2\1\43\1\1\1\44" + + "\1\45\1\46\1\1\1\47\1\50\1\51\1\1\1\52" + "\6\1\1\53\4\1\1\54\1\55\1\54\1\56\1\54" + + "\1\57\1\54\1\60\1\61\1\54\1\62\1\63\1\64" + "\2\63\1\65\1\63\1\66\1\67\1\70\1\71\1\70" + + "\1\72\2\2\1\40\1\2\2\70\1\73\1\74\1\75" + "\1\76\1\77\1\100\1\101\1\1\1\102\2\1\1\103" + + "\1\104\1\105\1\106\1\1\1\107\1\1\1\110\1\4" + "\2\111\1\112\1\113\1\6\5\0\1\114\31\21\1\23" + + "\1\21\1\23\2\21\1\23\44\21\1\115\3\0\1\116" + "\1\0\1\117\1\17\1\35\1\2\1\17\1\120\1\40" + + "\1\120\2\121\1\120\1\122\1\120\1\2\1\65\1\2" + "\1\65\17\2\1\65\34\2\1\123\1\124\1\125\1\0" + + "\1\126\12\0\1\127\1\130\15\0\1\131\1\40\5\0" + "\1\40\1\0\1\77\1\132\1\133\1\134\1\135\2\111" + + "\1\0\1\136\4\0\13\21\1\23\64\21\1\0\1\137" + "\1\0\1\35\1\2\1\121\1\0\2\122\1\2\1\57" + + "\23\2\1\140\40\2\41\0\2\111\1\141\2\0\1\142" + "\22\21\1\23\5\21\1\23\12\21\1\0\1\143\1\35" + + "\10\2\1\144\6\2\1\57\16\2\1\145\1\2\1\146" + "\4\2\1\0\1\1\3\0\1\147\3\0\1\150\6\0" + + "\1\65\15\0\2\111\2\0\11\21\1\23\12\21\1\0" + "\1\35\7\2\1\65\10\2\1\65\6\2\24\0\1\111" + + "\1\151\12\21\1\0\1\35\5\2\1\152\12\2\14\0" + "\1\153\3\21\1\0\10\2\10\0\1\21\1\0\3\2" + + "\2\0\1\154\4\0\1\21\1\155\1\2\1\156\1\157" + "\6\0\1\160"; + + private static int[] zzUnpackAction() { + int[] result = new int[819]; + 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\131\0\262\0\u010b\0\u0164\0\u01bd\0\u0216\0\u026f" + + "\0\u02c8\0\u0321\0\u037a\0\u03d3\0\u042c\0\u0485\0\u04de\0\u0537" + + "\0\u0590\0\u05e9\0\u0642\0\u069b\0\u06f4\0\u074d\0\u07a6\0\u07ff" + + "\0\u0858\0\u08b1\0\u090a\0\u0963\0\u09bc\0\u0a15\0\u0a6e\0\u0ac7" + + "\0\u0b20\0\u0b79\0\u0a15\0\u0bd2\0\u0c2b\0\u0c84\0\u0cdd\0\u0d36" + + "\0\u0a15\0\u0d8f\0\u0de8\0\u0a15\0\u0a15\0\u0e41\0\u0e9a\0\u0a15" + + "\0\u0ef3\0\u0a15\0\u0a15\0\u0a15\0\u0f4c\0\u0a15\0\u0fa5\0\u0ffe" + + "\0\u1057\0\u10b0\0\u1109\0\u1162\0\u11bb\0\u1214\0\u126d\0\u12c6" + + "\0\u131f\0\u1378\0\u13d1\0\u142a\0\u1483\0\u14dc\0\u1535\0\u158e" + + "\0\u15e7\0\u0f4c\0\u1640\0\u0a15\0\u1699\0\u0a15\0\u16f2\0\u0a15" + + "\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u174b\0\u0a15" + + "\0\u17a4\0\u17fd\0\u0a15\0\u0a15\0\u1856\0\u18af\0\u1908\0\u1961" + + "\0\u19ba\0\u1a13\0\u1a6c\0\u1ac5\0\u0a15\0\u1b1e\0\u1b77\0\u1bd0" + + "\0\u0a15\0\u1c29\0\u1c82\0\u1cdb\0\u1d34\0\u1d8d\0\u1de6\0\u1e3f" + + "\0\u1e98\0\u1ef1\0\u1f4a\0\u1fa3\0\u1ffc\0\u2055\0\u20ae\0\u2107" + + "\0\u2160\0\u0a15\0\u21b9\0\u2212\0\u0a15\0\u226b\0\u0a15\0\u0a15" + + "\0\u22c4\0\u231d\0\u0a15\0\u22c4\0\u0a15\0\u2376\0\u0a15\0\u23cf" + + "\0\u2428\0\u2481\0\u24da\0\u2533\0\u258c\0\u0a15\0\u25e5\0\u263e" + + "\0\u2697\0\u26f0\0\u0a15\0\u0a15\0\u2749\0\u0a15\0\u27a2\0\u27fb" + + "\0\u2854\0\u28ad\0\u0a15\0\u2906\0\u0a15\0\u0a15\0\u0a15\0\u2749" + + "\0\u27a2\0\u295f\0\u29b8\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u2749" + + "\0\u0a15\0\u2a11\0\u2a6a\0\u2ac3\0\u2b1c\0\u2b75\0\u2bce\0\u0a15" + + "\0\u0a15\0\u0a15\0\u0a15\0\u2c27\0\u0a15\0\u0a15\0\u2c80\0\u0a15" + + "\0\u2cd9\0\u2d32\0\u0a15\0\u22c4\0\u2d8b\0\u0a15\0\u2de4\0\u0a15" + + "\0\u2e3d\0\u0a15\0\u2e96\0\u2eef\0\u2f48\0\u2fa1\0\u0a15\0\u0a15" + + "\0\u2ffa\0\u3053\0\u30ac\0\u3105\0\u315e\0\u0a15\0\u31b7\0\u3210" + + "\0\u3269\0\u32c2\0\u331b\0\u3374\0\u33cd\0\u3426\0\u347f\0\u34d8" + + "\0\u3531\0\u358a\0\u35e3\0\u363c\0\u3695\0\u36ee\0\u3747\0\u37a0" + + "\0\u37f9\0\u3852\0\u38ab\0\u3904\0\u395d\0\u39b6\0\u3a0f\0\u3a68" + + "\0\u3ac1\0\u3b1a\0\u3b73\0\u3bcc\0\u3c25\0\u3c7e\0\u3cd7\0\u3d30" + + "\0\u3d89\0\u3de2\0\u3e3b\0\u3e94\0\u3eed\0\u3f46\0\u3f9f\0\u3ff8" + + "\0\u4051\0\u40aa\0\u4103\0\u415c\0\u41b5\0\u420e\0\u4267\0\u42c0" + + "\0\u4319\0\u4372\0\u43cb\0\u4424\0\u447d\0\u44d6\0\u452f\0\u4588" + + "\0\u45e1\0\u463a\0\u4693\0\u46ec\0\u4745\0\u479e\0\u47f7\0\u4850" + + "\0\u48a9\0\u0a15\0\u1b1e\0\u4902\0\u495b\0\u0a15\0\u49b4\0\u4a0d" + + "\0\u495b\0\u4a66\0\u4abf\0\u4b18\0\u4b71\0\u4b71\0\u4bca\0\u4b71" + + "\0\u4c23\0\u4c7c\0\u4cd5\0\u4d2e\0\u4d87\0\u4de0\0\u4e39\0\u18af" + + "\0\u4e92\0\u4eeb\0\u4f44\0\u4f9d\0\u4ff6\0\u504f\0\u50a8\0\u5101" + + "\0\u515a\0\u51b3\0\u520c\0\u5265\0\u52be\0\u5317\0\u5370\0\u53c9" + + "\0\u5422\0\u547b\0\u54d4\0\u552d\0\u5586\0\u55df\0\u5638\0\u5691" + + "\0\u56ea\0\u5743\0\u579c\0\u57f5\0\u584e\0\u58a7\0\u5900\0\u5959" + + "\0\u59b2\0\u5a0b\0\u5a64\0\u5abd\0\u5b16\0\u5b6f\0\u5bc8\0\u5c21" + + "\0\u5c7a\0\u5cd3\0\u5d2c\0\u5d85\0\u0a15\0\u5dde\0\u5e37\0\u5e90" + + "\0\u0a15\0\u5ee9\0\u5f42\0\u5f9b\0\u5ff4\0\u604d\0\u60a6\0\u60ff" + + "\0\u6158\0\u61b1\0\u620a\0\u0a15\0\u6263\0\u62bc\0\u6315\0\u636e" + + "\0\u63c7\0\u6420\0\u6479\0\u64d2\0\u652b\0\u6584\0\u65dd\0\u6636" + + "\0\u668f\0\u66e8\0\u6741\0\u0a15\0\u679a\0\u67f3\0\u684c\0\u68a5" + + "\0\u68fe\0\u2b75\0\u6957\0\u0a15\0\u0a15\0\u0a15\0\u0a15\0\u2e96" + + "\0\u69b0\0\u6a09\0\u6a62\0\u0a15\0\u6abb\0\u6b14\0\u6b6d\0\u6bc6" + + "\0\u6c1f\0\u6c78\0\u6cd1\0\u6d2a\0\u6d83\0\u6ddc\0\u6e35\0\u6e8e" + + "\0\u6ee7\0\u6f40\0\u6f99\0\u6ff2\0\u704b\0\u70a4\0\u70fd\0\u7156" + + "\0\u71af\0\u7208\0\u7261\0\u72ba\0\u7313\0\u736c\0\u73c5\0\u741e" + + "\0\u7477\0\u74d0\0\u7529\0\u7582\0\u75db\0\u7634\0\u3b1a\0\u768d" + + "\0\u76e6\0\u773f\0\u7798\0\u77f1\0\u784a\0\u78a3\0\u78fc\0\u7955" + + "\0\u79ae\0\u7a07\0\u7a60\0\u7ab9\0\u7b12\0\u7b6b\0\u12c6\0\u7bc4" + + "\0\u7c1d\0\u7c76\0\u7ccf\0\u7d28\0\u7d81\0\u7dda\0\u7e33\0\u7e8c" + + "\0\u7ee5\0\u7f3e\0\u7f97\0\u7ff0\0\u8049\0\u80a2\0\u80fb\0\u8154" + + "\0\u81ad\0\u8206\0\u825f\0\u82b8\0\u8311\0\u836a\0\u83c3\0\u4b71" + + "\0\u841c\0\u8475\0\u84ce\0\u8527\0\u8580\0\u85d9\0\u8632\0\u868b" + + "\0\u86e4\0\u873d\0\u8796\0\u87ef\0\u8848\0\u88a1\0\u88fa\0\u8953" + + "\0\u89ac\0\u8a05\0\u8a5e\0\u8ab7\0\u8b10\0\u8b69\0\u18af\0\u8bc2" + + "\0\u8c1b\0\u8c74\0\u8ccd\0\u8d26\0\u8d7f\0\u8dd8\0\u8e31\0\u8e8a" + + "\0\u8ee3\0\u8f3c\0\u8f95\0\u8fee\0\u9047\0\u90a0\0\u90f9\0\u9152" + + "\0\u91ab\0\u9204\0\u925d\0\u92b6\0\u930f\0\u9368\0\u93c1\0\u941a" + + "\0\u9473\0\u94cc\0\u9525\0\u957e\0\u95d7\0\u9630\0\u9689\0\u96e2" + + "\0\u973b\0\u9794\0\u97ed\0\u9846\0\u989f\0\u98f8\0\u9951\0\u99aa" + + "\0\u9a03\0\u9a5c\0\u9ab5\0\u9b0e\0\u9b67\0\u9bc0\0\u9c19\0\u9c72" + + "\0\u9ccb\0\u9d24\0\u9d7d\0\u9dd6\0\u9e2f\0\u9e88\0\u9ee1\0\u9f3a" + + "\0\u9f93\0\u9fec\0\ua045\0\ua09e\0\ua0f7\0\ua150\0\ua1a9\0\ua202" + + "\0\ua25b\0\ua2b4\0\u0a15\0\ua30d\0\ua366\0\ua3bf\0\ua418\0\ua471" + + "\0\ua4ca\0\ua523\0\ua57c\0\ua5d5\0\ua62e\0\ua687\0\ua6e0\0\ua739" + + "\0\ua792\0\ua7eb\0\ua844\0\ua89d\0\ua8f6\0\ua94f\0\ua9a8\0\uaa01" + + "\0\uaa5a\0\uaab3\0\uab0c\0\uab65\0\u3c25\0\uabbe\0\u7529\0\uac17" + + "\0\uac70\0\uacc9\0\uad22\0\uad7b\0\uadd4\0\uae2d\0\uae86\0\uaedf" + + "\0\uaf38\0\uaf91\0\u0a15\0\uafea\0\ub043\0\ub09c\0\ub0f5\0\ub14e" + + "\0\ub1a7\0\ub200\0\ub259\0\ub2b2\0\u18af\0\ub30b\0\ub364\0\ub3bd" + + "\0\ub416\0\ub46f\0\ub4c8\0\u18af\0\ub521\0\ub57a\0\ub5d3\0\ub62c" + + "\0\ub685\0\ub6de\0\ub737\0\ub790\0\ub7e9\0\ub842\0\ub89b\0\ub8f4" + + "\0\ub94d\0\ub9a6\0\u18af\0\ub9ff\0\u18af\0\uba58\0\ubab1\0\ubb0a" + + "\0\ubb63\0\u5e37\0\u0a15\0\ubbbc\0\ubc15\0\ubc6e\0\ubcc7\0\ubd20" + + "\0\ubd79\0\ubdd2\0\ube2b\0\ube84\0\ubedd\0\ubf36\0\ubf8f\0\ubfe8" + + "\0\uc041\0\u0a15\0\uc09a\0\uc0f3\0\uc14c\0\uc1a5\0\uc1fe\0\uc257" + + "\0\uc2b0\0\uc309\0\uc362\0\uc3bb\0\uc414\0\uc46d\0\uc4c6\0\uc51f" + + "\0\uc578\0\uc5d1\0\ua3bf\0\uc62a\0\uc683\0\uc6dc\0\uc735\0\uc78e" + + "\0\uc7e7\0\uc840\0\uc899\0\uc8f2\0\uc94b\0\uc94b\0\uc9a4\0\uc9fd" + + "\0\uca56\0\ucaaf\0\ucb08\0\ucb61\0\ucbba\0\ucc13\0\ucc6c\0\uccc5" + + "\0\ucd1e\0\ucd77\0\ucdd0\0\uce29\0\uce82\0\ucedb\0\ucf34\0\ucf8d" + + "\0\u87ef\0\ucfe6\0\ud03f\0\ud098\0\ud0f1\0\ud14a\0\ud1a3\0\ud1fc" + + "\0\ud255\0\ud2ae\0\ud307\0\ud360\0\ud3b9\0\ud412\0\ud46b\0\ud4c4" + + "\0\ud51d\0\ud576\0\ubcc7\0\ud5cf\0\ud628\0\ube2b\0\ud681\0\ud6da" + + "\0\ud733\0\ud78c\0\ud7e5\0\ud83e\0\ud897\0\ud8f0\0\ud949\0\ud9a2" + + "\0\ud9fb\0\uda54\0\udaad\0\udb06\0\udb5f\0\u2f48\0\udbb8\0\udc11" + + "\0\udc6a\0\udcc3\0\udd1c\0\udd75\0\uddce\0\ude27\0\ude80\0\uded9" + + "\0\udf32\0\udf8b\0\udfe4\0\ue03d\0\ue096\0\ue0ef\0\ue148\0\u18af" + + "\0\ue1a1\0\ue1fa\0\ue253\0\ue2ac\0\ue305\0\ue35e\0\ue3b7\0\ue410" + + "\0\ue469\0\ue4c2\0\ue51b\0\ue574\0\ue5cd\0\ue626\0\ue67f\0\ue6d8" + + "\0\ue731\0\ue78a\0\ue7e3\0\ue83c\0\ue895\0\ue8ee\0\u2f48\0\ue947" + + "\0\ue9a0\0\ue9f9\0\uea52\0\ueaab\0\ueb04\0\ueb5d\0\uebb6\0\uec0f" + + "\0\uec68\0\uecc1\0\ued1a\0\ued73\0\uedcc\0\uee25\0\uee7e\0\ueed7" + + "\0\uef30\0\uef89\0\uefe2\0\uf03b\0\uf094\0\uf0ed\0\uf146\0\uf19f" + + "\0\uf1f8\0\uf251\0\u0a15\0\uf2aa\0\uf303\0\uf35c\0\uf3b5\0\uf40e" + + "\0\u0a15\0\uf467\0\u0a15\0\u0a15\0\uf4c0\0\uf519\0\uf572\0\uf5cb" + "\0\uf624\0\uf67d\0\u0a15"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[819]; + 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 = "\1\34\1\35\1\36\1\37\1\40\1\41\123\34\2\42" + + "\1\43\26\42\1\44\33\42\1\45\5\42\1\46\15\42" + "\1\47\17\42\2\50\1\51\47\50\1\52\56\50\2\53" + + "\1\54\14\53\1\55\111\53\1\56\1\57\1\0\1\56" + "\1\40\2\56\1\60\1\61\6\56\1\62\26\56\1\63" + + "\41\56\1\64\20\56\2\65\1\0\1\65\1\66\2\65" + "\2\66\1\67\1\70\1\71\1\72\1\73\1\74\1\66" + + "\1\65\1\75\1\76\3\65\1\77\3\65\1\100\6\65" + "\1\101\4\65\1\66\7\65\1\72\2\65\1\71\1\102" + + "\1\74\1\103\1\104\1\70\1\75\1\105\1\106\1\67" + "\1\101\1\65\1\73\1\76\1\107\1\110\1\111\1\77" + + "\5\65\1\66\1\65\1\106\1\102\1\103\1\107\1\105" + "\1\100\1\65\1\110\1\112\1\111\1\104\4\65\7\113" + + "\1\114\121\113\110\115\1\114\20\115\1\56\1\57\1\0" + "\1\56\1\40\2\56\1\116\1\117\6\56\1\120\26\56" + + "\1\63\41\56\1\121\20\56\7\113\1\122\121\113\110\115" + "\1\122\20\115\1\56\1\57\1\0\1\56\1\40\2\56" + + "\1\123\1\117\6\56\1\124\26\56\1\63\41\56\1\125" + "\20\56\7\113\1\126\121\113\110\115\1\126\20\115\1\127" + + "\1\40\1\130\1\131\1\40\1\132\1\133\1\134\1\135" + "\3\136\1\137\2\136\1\140\4\136\1\141\1\142\1\136" + + "\1\141\1\136\1\143\1\144\1\145\2\127\1\136\1\146" + "\2\136\1\147\1\150\1\151\1\133\4\146\3\63\1\152" + + "\1\153\1\154\1\151\1\155\1\136\1\156\1\157\1\136" + "\1\160\1\161\1\162\1\163\1\164\1\165\1\136\1\166" + + "\1\167\2\136\1\170\1\171\1\127\2\151\1\136\1\151" + "\1\172\1\173\2\136\1\174\10\136\1\141\2\136\1\175" + + "\2\176\1\177\4\176\1\200\25\176\1\201\73\176\2\202" + "\1\203\32\202\1\204\52\202\1\205\20\202\2\206\1\207" + + "\1\210\33\206\1\211\25\206\1\212\5\206\1\213\15\206" + "\1\214\17\206\2\215\1\216\1\217\61\215\1\220\5\215" + + "\1\221\15\215\1\222\17\215\1\223\1\40\1\224\1\225" + "\1\40\1\223\1\151\1\226\1\227\6\230\1\63\4\230" + + "\2\223\1\230\1\223\3\230\1\223\1\231\1\223\1\63" + "\3\230\1\63\1\230\1\223\1\133\2\63\3\223\1\232" + + "\2\63\2\230\1\233\22\230\1\234\2\151\1\230\1\151" + "\1\235\14\230\1\223\2\230\1\223\1\236\1\40\1\237" + + "\1\240\1\40\3\236\1\241\6\242\1\236\4\242\2\236" + "\1\242\1\236\3\242\4\236\1\243\2\242\2\236\1\244" + + "\6\236\1\245\2\236\2\242\1\236\22\242\3\236\1\242" + "\2\236\14\242\1\236\2\242\1\236\1\246\1\40\1\247" + + "\1\250\1\40\1\246\1\251\1\226\1\252\6\253\1\246" + "\4\253\2\254\1\253\1\254\1\253\1\255\1\253\1\246" + + "\1\256\1\253\2\246\2\253\1\246\1\133\1\244\1\133" + "\3\246\1\257\4\246\2\253\1\246\22\253\1\246\1\260" + + "\1\261\1\253\1\246\1\235\14\253\1\254\2\253\1\246" + "\2\176\1\262\4\176\1\263\25\176\1\264\73\176\2\202" + + "\1\265\32\202\1\264\52\202\1\266\20\202\2\267\1\270" + "\34\267\1\271\25\267\1\212\5\267\1\213\15\267\1\214" + + "\17\267\2\272\1\273\32\272\1\274\1\275\71\272\1\276" + "\2\277\1\300\33\277\1\301\5\277\1\302\64\277\2\34" + + "\4\0\124\34\1\35\2\0\1\40\1\0\123\34\141\0" + "\1\303\1\304\5\305\1\0\10\305\2\0\1\305\5\0" + + "\2\305\7\0\1\306\1\307\3\0\2\305\1\0\11\305" + "\1\304\10\305\3\0\1\305\2\0\17\305\2\0\1\40" + + "\2\0\1\40\124\0\4\41\1\0\1\41\1\310\122\41" + "\2\42\1\0\26\42\1\0\33\42\1\0\5\42\1\0" + + "\15\42\1\0\17\42\31\0\1\311\162\0\1\312\123\0" + "\1\313\4\0\1\314\156\0\1\315\17\0\2\50\1\0" + + "\47\50\1\0\56\50\17\0\1\316\111\0\2\53\1\0" + "\14\53\1\0\111\53\2\56\1\0\1\56\1\0\2\56" + + "\2\0\6\56\1\0\26\56\1\0\41\56\1\0\21\56" + "\1\57\1\0\1\56\1\40\2\56\2\0\6\56\1\0" + + "\26\56\1\0\41\56\1\0\20\56\17\0\1\62\111\0" + "\2\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\26\65\1\0\41\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\1\65\1\317\2\65\1\320\1\321\1\0" + + "\2\65\1\322\7\65\1\323\13\65\1\0\13\65\1\324" + "\1\321\2\65\1\317\2\65\1\325\3\65\1\320\1\322" + + "\1\326\10\65\1\0\1\65\1\325\1\324\1\65\1\326" + "\1\65\1\323\13\65\1\0\1\65\1\0\2\65\2\0" + + "\3\65\1\327\2\65\1\0\2\65\1\330\23\65\1\0" + "\7\65\1\327\3\65\1\331\6\65\1\332\4\65\1\330" + + "\11\65\1\0\1\65\1\332\1\331\17\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\12\65\1\333\13\65" + + "\1\0\41\65\1\0\6\65\1\333\13\65\1\0\1\65" + "\1\0\2\65\2\0\1\334\5\65\1\0\1\65\1\335" + + "\17\65\1\336\4\65\1\0\15\65\1\337\2\65\1\335" + "\2\65\1\334\1\336\3\65\1\340\10\65\1\0\3\65" + + "\1\337\1\340\15\65\1\0\1\65\1\0\2\65\2\0" + "\2\65\1\341\3\65\1\0\1\65\1\342\24\65\1\0" + + "\12\65\1\341\5\65\1\342\1\65\1\343\16\65\1\0" + "\1\65\1\343\20\65\1\0\1\65\1\0\2\65\2\0" + + "\2\65\1\112\1\344\1\65\1\112\1\0\2\65\1\345" + "\3\65\1\346\12\65\1\347\4\65\1\0\7\65\1\344" + + "\2\65\1\112\1\65\1\112\1\65\1\350\2\65\1\112" + "\1\351\1\65\1\347\2\65\1\345\3\65\1\346\5\65" + + "\1\0\1\65\1\351\3\65\1\112\5\65\1\350\6\65" + "\1\0\1\65\1\0\2\65\2\0\3\65\1\352\2\65" + + "\1\0\2\65\1\353\23\65\1\0\7\65\1\352\12\65" + "\1\354\4\65\1\353\11\65\1\0\1\65\1\354\20\65" + + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + "\1\0\30\65\1\355\1\65\1\356\6\65\1\0\4\65" + + "\1\355\5\65\1\356\7\65\1\0\1\65\1\0\2\65" + "\2\0\2\65\1\112\1\340\2\65\1\0\1\65\1\357" + + "\10\65\1\360\13\65\1\0\7\65\1\340\1\361\1\65" + "\1\112\1\362\4\65\1\357\1\363\1\364\16\65\1\0" + + "\1\65\1\364\1\362\2\65\1\363\1\360\1\361\12\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\1\65" + + "\1\112\24\65\1\0\20\65\1\112\20\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\2\65\1\365\1\366" + + "\2\65\1\0\26\65\1\0\7\65\1\366\2\65\1\365" + "\1\367\25\65\1\0\2\65\1\367\17\65\1\0\1\65" + + "\1\0\2\65\2\0\4\65\1\370\1\65\1\0\1\65" + "\1\112\4\65\1\371\3\65\1\372\13\65\1\0\20\65" + + "\1\112\5\65\1\370\4\65\1\371\5\65\1\0\6\65" + "\1\372\13\65\1\0\1\65\1\0\2\65\2\0\6\65" + + "\1\0\2\65\1\373\23\65\1\0\13\65\1\374\6\65" + "\1\375\4\65\1\373\11\65\1\0\1\65\1\375\1\374" + + "\17\65\1\0\1\65\1\0\2\65\2\0\2\65\1\112" + "\2\65\1\376\1\0\2\65\1\377\23\65\1\0\12\65" + + "\1\112\1\65\1\376\12\65\1\377\11\65\1\0\14\65" + "\1\112\5\65\1\0\1\65\1\0\2\65\2\0\3\65" + + "\1\u0100\1\65\1\112\1\0\1\65\1\112\1\u0101\16\65" + "\1\u0102\4\65\1\0\7\65\1\u0100\4\65\1\112\3\65" + + "\2\112\1\u0103\1\65\1\u0102\2\65\1\u0101\11\65\1\0" + "\1\65\1\u0103\3\65\1\112\14\65\1\0\1\65\1\0" + + "\2\65\2\0\1\u0104\1\u0105\1\u0106\1\65\1\u0107\1\65" + "\1\0\6\65\1\u0108\3\65\1\u0109\13\65\1\0\12\65" + + "\1\u0106\4\65\1\u0105\1\65\1\u010a\1\65\1\u0104\2\65" + "\1\u0107\4\65\1\u0108\5\65\1\0\5\65\1\u010a\1\u0109" + + "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\2\65\1\u010b\7\65\1\u010c\13\65\1\0\22\65\1\u010d" + + "\4\65\1\u010b\11\65\1\0\1\65\1\u010d\4\65\1\u010c" + "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\2\65\1\u010e\3\65\1\u010f\17\65\1\0\27\65\1\u010e" + "\3\65\1\u010f\5\65\1\0\22\65\1\0\1\65\1\0" + + "\2\65\2\0\3\65\1\u0110\2\65\1\0\26\65\1\0" + "\7\65\1\u0110\12\65\1\u0111\16\65\1\0\1\65\1\u0111" + + "\16\65\7\113\1\0\121\113\110\115\1\0\20\115\17\0" + "\1\u0112\111\0\1\127\10\0\6\127\1\0\11\127\1\0" + + "\1\127\1\0\3\127\1\0\2\127\14\0\2\127\1\0" + "\23\127\2\0\1\127\2\0\17\127\4\0\1\u0113\4\0" + + "\1\u0114\35\0\1\63\67\0\1\63\40\0\1\63\62\0" + "\10\u0115\1\u0116\24\u0115\1\u0117\1\u0115\1\u0118\6\u0115\1\u0119" + + "\62\u0115\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\3\136\1\u011b\16\136\1\127\2\0\1\136\2\0\17\136" + + "\20\0\1\u011c\26\0\1\63\62\0\1\u011d\10\0\6\u011d" + "\1\0\1\u011d\1\u011e\1\u011f\1\u011d\2\141\1\u011d\1\141" + + "\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u0120" + "\1\0\1\u0121\12\0\2\u011d\1\0\6\u011d\1\u011e\1\u0120" + + "\2\u011d\1\u0120\2\u011d\1\u011f\5\u011d\2\0\1\u011d\2\0" + "\5\u011d\1\u0120\6\u011d\1\141\2\u011d\1\0\1\u011d\10\0" + + "\6\u011d\1\0\1\u011d\1\u011e\1\u011f\1\u011d\1\u0122\1\u0123" + "\1\u011d\1\u0123\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0" + + "\1\u0124\1\u0120\1\0\1\u0121\12\0\2\u011d\1\0\6\u011d" + "\1\u011e\1\u0120\2\u011d\1\u0120\2\u011d\1\u011f\5\u011d\2\0" + + "\1\u0124\2\0\5\u011d\1\u0120\6\u011d\1\u0123\2\u011d\32\0" + "\1\63\14\0\1\63\62\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\3\136\1\u0125\16\136\1\127" + + "\2\0\1\136\2\0\17\136\47\0\1\63\124\0\1\63" + "\3\0\1\63\106\0\2\u0121\1\0\1\u0121\75\0\1\u0121" + + "\51\0\1\63\6\0\1\63\53\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\3\136\1\u0126\5\136" + "\1\u0127\1\u0128\3\136\1\u0129\3\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\1\136\1\u012a\20\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\15\136\1\u012b\4\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\1\u012c\3\136\1\u012d" + "\6\136\1\u012e\6\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u012f" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\10\136\1\u0130\4\136\1\u0131\4\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\1\136\1\u0132\2\136\1\u0133" + + "\1\136\1\u0134\1\136\1\u0135\11\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\1\136\1\u0136\13\136\1\u0137\4\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\1\136\1\u0138" + "\13\136\1\u0139\4\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\21\136\1\u013a\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u013b" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\2\136\1\u013c\1\136\1\u013d\6\136\1\u013e\6\136" + + "\1\127\2\0\1\136\2\0\1\u013f\16\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\u0140\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\1\u0141\1\136\1\0" + "\1\136\1\u0142\4\136\1\u0143\1\136\1\u0144\11\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\u0145\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\1\u0146\7\136\1\u0147" + "\11\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136" + + "\1\u0148\2\136\1\u0149\1\136\1\u014a\1\u014b\6\136\1\u014c" + "\1\136\1\127\2\0\1\u014d\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\1\136" + + "\1\u014e\6\136\1\u0142\11\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\1\u014f\1\u0150\11\136\1\u0151\6\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\1\u0152\1\136\1\0\4\136\1\u0153" + "\15\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136" + + "\1\u0154\11\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\2\176\1\0\4\176\1\0\25\176\1\0\73\176\2\u0155" + + "\1\0\27\u0155\1\u0156\53\u0155\1\u0157\22\u0155\2\202\1\0" + "\32\202\1\0\52\202\1\0\20\202\2\206\2\0\33\206" + + "\1\0\25\206\1\0\5\206\1\0\15\206\1\0\17\206" + "\10\0\1\u0158\130\0\1\u0159\203\0\1\u015a\123\0\1\u015b" + + "\4\0\1\u015c\156\0\1\u015d\17\0\2\215\2\0\61\215" + "\1\0\5\215\1\0\15\215\1\0\17\215\10\0\1\u015e" + + "\203\0\1\u015f\123\0\1\u0160\4\0\1\u0161\156\0\1\u0162" + "\27\0\1\u0163\157\0\1\u0164\102\0\6\230\1\0\13\230" + + "\5\0\2\230\1\0\1\230\12\0\2\230\1\0\22\230" + "\3\0\1\230\2\0\17\230\12\0\6\u0165\1\0\4\u0165" + + "\2\0\1\u0165\1\0\3\u0165\4\0\3\u0165\1\0\1\u0165" + "\12\0\2\u0165\1\0\22\u0165\3\0\1\u0165\2\0\14\u0165" + + "\1\0\2\u0165\54\0\1\u0166\5\0\1\u0167\1\u0168\1\u0169" + "\1\u016a\1\u016b\1\u016c\1\u016d\1\u016e\1\u016f\1\0\1\u0170" + + "\2\0\1\u0171\2\0\1\u0172\40\0\6\u0173\1\0\4\u0173" + "\2\0\1\u0173\1\0\3\u0173\4\0\3\u0173\1\0\1\u0173" + + "\12\0\2\u0173\1\0\22\u0173\3\0\1\u0173\2\0\14\u0173" + "\1\0\2\u0173\12\0\6\242\1\0\13\242\5\0\2\242" + + "\14\0\2\242\1\0\22\242\3\0\1\242\2\0\17\242" + "\12\0\6\242\1\0\4\242\2\0\1\242\1\0\3\242" + + "\5\0\2\242\14\0\2\242\1\0\22\242\3\0\1\242" + "\2\0\14\242\1\0\2\242\11\0\7\253\1\0\4\253" + + "\2\0\1\253\1\0\3\253\2\0\1\253\1\0\1\u0164" + "\2\253\14\0\2\253\1\0\22\253\2\0\1\261\1\253" + + "\2\0\14\253\1\0\2\253\11\0\7\253\1\0\4\253" + "\2\0\1\253\1\0\3\253\2\0\1\253\2\0\2\253" + + "\14\0\2\253\1\0\22\253\2\0\1\261\1\253\2\0" + "\14\253\1\0\2\253\25\0\2\254\1\0\1\254\13\0" + + "\1\254\4\0\1\u0174\5\0\1\u0175\7\0\1\u0176\3\0" + "\1\u0174\2\0\1\u0177\1\u0178\1\u0179\25\0\1\254\13\0" + + "\7\253\1\0\4\253\2\254\1\253\1\254\3\253\2\0" + "\1\253\2\0\2\253\14\0\2\253\1\0\22\253\2\0" + + "\1\261\1\253\2\0\14\253\1\254\2\253\13\0\1\u017a" + "\7\0\1\u017a\1\0\4\u017a\11\0\1\u017a\24\0\1\u017a" + + "\1\0\2\u017a\1\0\1\u017a\2\0\1\u017a\3\0\1\u017a" + "\7\0\1\u017a\3\0\1\u017a\6\0\1\u017a\61\0\1\u017b" + + "\52\0\2\u017c\1\0\126\u017c\2\267\1\0\34\267\1\0" + "\25\267\1\0\5\267\1\0\15\267\1\0\17\267\10\0" + + "\1\u017d\120\0\2\272\1\0\32\272\2\0\71\272\61\0" + "\1\u017e\50\0\2\277\1\0\33\277\1\0\5\277\1\0" + + "\64\277\60\0\1\u017f\61\0\6\u0180\1\0\10\u0180\2\0" + "\1\u0180\5\0\2\u0180\14\0\2\u0180\1\0\22\u0180\3\0" + + "\1\u0180\2\0\17\u0180\12\0\1\305\1\u0181\3\305\1\u0182" + "\1\0\10\305\2\0\1\305\5\0\2\305\14\0\2\305" + + "\1\0\2\305\1\u0182\2\305\1\u0181\14\305\3\0\1\305" + "\2\0\17\305\12\0\6\305\1\0\10\305\2\0\1\305" + + "\5\0\2\305\14\0\2\305\1\0\22\305\3\0\1\305" + "\2\0\17\305\32\0\1\u0183\116\0\1\u0184\174\0\1\u0185" + + "\134\0\1\u0186\136\0\1\u0187\144\0\1\u0188\17\0\2\65" + "\1\0\1\65\1\0\2\65\2\0\2\65\1\u0189\3\65" + + "\1\0\26\65\1\0\12\65\1\u0189\26\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\22\65\1\u018a\16\65\1\0\1\65\1\u018a\20\65" + "\1\0\1\65\1\0\2\65\2\0\2\65\1\u018b\3\65" + + "\1\0\1\333\25\65\1\0\12\65\1\u018b\12\65\1\333" + "\13\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + + "\1\65\1\u018c\1\u018d\3\65\1\0\1\65\1\u018e\24\65" + "\1\0\12\65\1\u018d\4\65\1\u018c\1\u018e\20\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\4\65\1\112" + "\1\65\1\0\6\65\1\112\17\65\1\0\26\65\1\112" + + "\4\65\1\112\5\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\12\65\1\u018f\13\65\1\0" + + "\41\65\1\0\6\65\1\u018f\13\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\30\65\1\u0190" + + "\10\65\1\0\4\65\1\u0190\15\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\22\65\1\u0191" + + "\16\65\1\0\1\65\1\u0191\20\65\1\0\1\65\1\0" + "\2\65\2\0\5\65\1\u0192\1\0\26\65\1\0\14\65" + + "\1\u0192\24\65\1\0\22\65\1\0\1\65\1\0\2\65" + "\2\0\6\65\1\0\26\65\1\0\15\65\1\u0193\23\65" + + "\1\0\3\65\1\u0193\16\65\1\0\1\65\1\0\2\65" + "\2\0\6\65\1\0\1\65\1\u0194\24\65\1\0\20\65" + + "\1\u0194\1\u0192\6\65\1\u0195\10\65\1\0\4\65\1\u0195" + "\1\u0192\14\65\1\0\1\65\1\0\2\65\2\0\4\65" + + "\1\u018c\1\65\1\0\26\65\1\0\15\65\1\u0196\10\65" + "\1\u018c\12\65\1\0\3\65\1\u0196\16\65\1\0\1\65" + + "\1\0\2\65\2\0\6\65\1\0\1\65\1\u0192\24\65" + "\1\0\20\65\1\u0192\20\65\1\0\22\65\1\0\1\65" + + "\1\0\2\65\2\0\3\65\1\u0197\2\65\1\0\26\65" + "\1\0\7\65\1\u0197\31\65\1\0\22\65\1\0\1\65" + + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65" + "\1\u0198\16\65\1\0\1\65\1\u0198\20\65\1\0\1\65" + + "\1\0\2\65\2\0\2\65\1\u0199\3\65\1\0\26\65" + "\1\0\12\65\1\u0199\26\65\1\0\22\65\1\0\1\65" + + "\1\0\2\65\2\0\1\112\3\65\1\u019a\1\65\1\0" + "\26\65\1\0\23\65\1\112\2\65\1\u019a\12\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\26\65\1\0\10\65\1\112\30\65\1\0\7\65\1\112" + + "\12\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\2\65\1\112\23\65\1\0\13\65\1\u019b\13\65\1\112" + + "\11\65\1\0\2\65\1\u019b\17\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\22\65\1\u019c" + + "\16\65\1\0\1\65\1\u019c\20\65\1\0\1\65\1\0" + "\2\65\2\0\2\65\1\u019d\3\65\1\0\26\65\1\0" + + "\12\65\1\u019d\26\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\5\65\1\333\1\0\26\65\1\0\14\65" + + "\1\333\13\65\1\u0192\10\65\1\0\4\65\1\u0192\15\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\20\65" + + "\1\u019e\5\65\1\0\37\65\1\u019e\1\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\13\65\1\362\25\65\1\0\2\65\1\362\17\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\13\65\1\u019f\25\65\1\0\2\65\1\u019f\17\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\2\65" + + "\1\u01a0\23\65\1\0\27\65\1\u01a0\11\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\6\65" + + "\1\333\17\65\1\0\33\65\1\333\5\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\15\65\1\u01a1\23\65\1\0\3\65\1\u01a1\16\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\10\65\1\u01a2\30\65\1\0\7\65\1\u01a2\12\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\1\u01a3" + + "\5\65\1\u01a4\17\65\1\0\25\65\1\u01a3\5\65\1\u01a4" + "\5\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\6\65\1\u01a5\17\65\1\0\33\65\1\u01a5" + "\5\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\2\65\1\u01a6\23\65\1\0\27\65\1\u01a6" + "\11\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + + "\3\65\1\u01a7\2\65\1\0\26\65\1\0\7\65\1\u01a7" + "\3\65\1\u01a8\25\65\1\0\2\65\1\u01a8\17\65\1\0" + + "\1\65\1\0\2\65\2\0\5\65\1\u01a9\1\0\26\65" + "\1\0\14\65\1\u01a9\24\65\1\0\22\65\1\0\1\65" + + "\1\0\2\65\2\0\1\u01aa\5\65\1\0\26\65\1\0" + "\23\65\1\u01aa\15\65\1\0\22\65\1\0\1\65\1\0" + + "\2\65\2\0\6\65\1\0\26\65\1\0\21\65\1\u01ab" + "\17\65\1\0\5\65\1\u01ab\14\65\1\0\1\65\1\0" + + "\2\65\2\0\6\65\1\0\26\65\1\0\13\65\1\112" + "\25\65\1\0\2\65\1\112\17\65\1\0\1\65\1\0" + + "\2\65\2\0\1\u01ac\5\65\1\0\26\65\1\0\23\65" + "\1\u01ac\15\65\1\0\22\65\1\0\1\65\1\0\2\65" + + "\2\0\6\65\1\0\26\65\1\0\22\65\1\u01ad\16\65" + "\1\0\1\65\1\u01ad\20\65\1\0\1\65\1\0\2\65" + + "\2\0\6\65\1\0\2\65\1\u01ae\23\65\1\0\10\65" + "\1\u01af\16\65\1\u01ae\11\65\1\0\7\65\1\u01af\12\65" + + "\1\0\1\65\1\0\2\65\2\0\2\65\1\u01b0\3\65" + "\1\0\26\65\1\0\12\65\1\u01b0\1\u0193\1\65\1\u01b1" + + "\23\65\1\0\2\65\1\u0193\1\u01b1\16\65\1\0\1\65" + "\1\0\2\65\2\0\5\65\1\u01b2\1\0\26\65\1\0" + + "\14\65\1\u01b2\24\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\41\65\1\0" + + "\15\65\1\u018e\4\65\1\0\1\65\1\0\2\65\2\0" + "\5\65\1\u01b3\1\0\26\65\1\0\14\65\1\u01b3\24\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\1\u01b1" + "\5\65\1\0\26\65\1\0\23\65\1\u01b1\15\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\1\u01b4\5\65" + "\1\0\1\65\1\335\1\u01b5\3\65\1\u0111\12\65\1\u01b6" + + "\4\65\1\0\20\65\1\335\2\65\1\u01b4\1\u01b6\2\65" + "\1\u01b5\3\65\1\u0111\5\65\1\0\22\65\1\0\1\65" + + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\32\65" + "\1\112\6\65\1\0\12\65\1\112\7\65\1\0\1\65" + + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\30\65" + "\1\u01b7\10\65\1\0\4\65\1\u01b7\15\65\1\0\1\65" + + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65" + "\1\u01b8\16\65\1\0\1\65\1\u01b8\20\65\1\0\1\65" + + "\1\0\2\65\2\0\2\65\1\112\3\65\1\0\26\65" + "\1\0\12\65\1\112\7\65\1\u01b9\7\65\1\112\6\65" + + "\1\0\1\65\1\u01b9\10\65\1\112\7\65\1\0\1\65" + "\1\0\2\65\2\0\5\65\1\u01ba\1\0\1\65\1\112" + + "\24\65\1\0\14\65\1\u01ba\3\65\1\112\20\65\1\0" + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\26\65\1\0\15\65\1\112\23\65\1\0\3\65\1\112" + "\16\65\1\0\1\65\1\0\2\65\2\0\5\65\1\u01bb" + + "\1\0\26\65\1\0\14\65\1\u01bb\24\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\3\65\1\u01bc\2\65" + + "\1\0\26\65\1\0\7\65\1\u01bc\31\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\2\65\1\u01bd\3\65" + + "\1\0\26\65\1\0\12\65\1\u01bd\26\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\5\65\1\u01be\1\0" + + "\2\65\1\u01bf\23\65\1\0\14\65\1\u01be\12\65\1\u01bf" + "\11\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + + "\4\65\1\u01c0\1\65\1\0\26\65\1\0\26\65\1\u01c0" + "\12\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\6\65\1\u0111\17\65\1\0\33\65\1\u0111" + "\5\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\26\65\1\0\21\65\1\u01c1\17\65\1\0" + "\5\65\1\u01c1\14\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\26\65\1\0\21\65\1\u01c2\17\65\1\0" + "\5\65\1\u01c2\14\65\1\0\1\65\1\0\2\65\2\0" + + "\5\65\1\u01c3\1\0\26\65\1\0\14\65\1\u01c3\1\u01c4" + "\23\65\1\0\3\65\1\u01c4\16\65\1\0\1\65\1\0" + + "\2\65\2\0\6\65\1\0\1\65\1\u01c5\24\65\1\0" + "\20\65\1\u01c5\20\65\1\0\22\65\1\0\1\65\1\0" + + "\2\65\2\0\2\65\1\u01c6\1\65\1\112\1\65\1\0" + "\26\65\1\0\12\65\1\u01c6\13\65\1\112\12\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\1\u01c7\25\65\1\0\25\65\1\u01c7\13\65\1\0\22\65" + + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + "\1\0\21\65\1\112\17\65\1\0\5\65\1\112\14\65" + + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + "\1\0\21\65\1\u01c8\17\65\1\0\5\65\1\u01c8\14\65" + + "\1\0\1\65\1\0\2\65\2\0\2\65\1\112\3\65" + "\1\0\26\65\1\0\12\65\1\112\26\65\1\0\20\65" + + "\11\0\1\u01c9\60\0\1\u01c9\36\0\10\u0115\1\u01ca\24\u0115" + "\1\u0117\75\u0115\1\0\126\u0115\37\0\1\u01cb\71\0\1\127" + + "\10\0\6\127\1\0\11\127\1\0\1\u01cc\1\0\3\127" + "\1\0\2\127\14\0\2\127\1\0\23\127\2\0\1\127" + + "\2\0\17\127\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\12\136\1\u01cd\7\136\1\127\2\0" + "\1\136\2\0\17\136\20\0\1\146\26\0\1\63\62\0" + + "\1\u011d\10\0\6\u011d\1\0\11\u011d\1\0\1\u011d\1\0" + "\3\u011d\1\0\2\u011d\14\0\2\u011d\1\0\23\u011d\2\0" + + "\1\u011d\2\0\17\u011d\1\0\1\u011d\10\0\6\u011d\1\0" + "\4\u011d\2\u01ce\1\u011d\1\u01ce\1\u011d\1\u01cf\1\u011d\1\0" + + "\3\u011d\1\0\2\u011d\1\u01cf\13\0\2\u011d\1\0\23\u011d" + "\2\0\1\u011d\2\0\14\u011d\1\u01ce\2\u011d\1\0\1\u011d" + + "\10\0\6\u011d\1\0\2\u011d\1\u011f\1\u011d\2\u0121\1\u011d" + "\1\u0121\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d" + + "\1\u0120\14\0\2\u011d\1\0\7\u011d\1\u0120\2\u011d\1\u0120" + "\2\u011d\1\u011f\5\u011d\2\0\1\u011d\2\0\5\u011d\1\u0120" + + "\6\u011d\1\u0121\2\u011d\1\0\1\u011d\10\0\6\u011d\1\0" + "\2\u011d\1\u011f\1\u011d\2\u0122\1\u011d\1\u0122\1\u011d\1\0" + + "\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u0120\1\0\1\u0121" + "\12\0\2\u011d\1\0\7\u011d\1\u0120\2\u011d\1\u0120\2\u011d" + + "\1\u011f\5\u011d\2\0\1\u011d\2\0\5\u011d\1\u0120\6\u011d" + "\1\u0122\2\u011d\1\0\1\u011d\10\0\6\u011d\1\0\1\u011d" + + "\1\u01d0\1\u011f\1\u011d\1\u0122\1\u0123\1\u011d\1\u0123\1\u011d" + "\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u0120\1\0" + + "\1\u0121\12\0\2\u011d\1\0\6\u011d\1\u01d0\1\u0120\2\u011d" + "\1\u0120\2\u011d\1\u011f\5\u011d\2\0\1\u011d\2\0\5\u011d" + + "\1\u0120\6\u011d\1\u0123\2\u011d\1\0\1\u011d\10\0\1\u011d" + "\1\u01d1\4\u011d\1\0\2\u011d\1\u01d1\1\u011d\4\u01d1\1\u011d" + + "\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d\1\u01d1\14\0" + "\2\u011d\1\0\5\u011d\1\u01d1\1\u011d\2\u01d1\1\u011d\1\u01d1" + + "\2\u011d\1\u01d1\3\u011d\1\u01d1\1\u011d\2\0\1\u011d\2\0" + "\1\u011d\1\u01d1\3\u011d\1\u01d1\6\u011d\1\u01d1\2\u011d\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\15\136\1\u01d2\4\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\2\136\1\u01d3\6\136\1\u01d4\10\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\1\136\1\u01d5\14\0\2\136\1\0\22\136\1\127\2\0" + "\1\136\2\0\3\136\1\u01d6\13\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\14\136\1\u01d7" + + "\5\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\2\136" + "\1\u01d8\17\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\2\136\1\u01d9\17\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u01da" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\10\136\1\u01db\2\136\1\u0128\6\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\1\u01dc\1\136\1\0\1\u01dd\21\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\14\136\1\u01de\5\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\6\136\1\u01df" + "\13\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\2\136" + + "\1\u01e0\17\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\22\136\1\127\2\0\1\136\2\0\1\u0128\16\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\3\136\1\u01e1\16\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\10\136\1\u01e2\11\136\1\127\2\0\1\136\2\0" + + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\10\136\1\u01e3\11\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\2\136\1\u01e4\6\136\1\u01e5\10\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\3\136\1\u01e6" + "\16\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\2\136" + + "\1\u01e7\17\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\u01e8\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\6\136" + + "\1\u01e9\3\136\1\u01ea\6\136\1\u01eb\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\11\136\1\u01ec\10\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\2\136\1\0\14\136\1\u01ed\5\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\10\136\1\u01ee\11\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\1\136\1\u01ef" + "\20\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136" + + "\1\u01f0\16\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u01f1\1\136" + "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\3\136\1\u01f2\16\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\3\136\1\u01f3\16\136\1\127\2\0\1\136\2\0" + + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\1\u0128\21\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\1\136\1\u01f4\20\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\6\136\1\u01f5\13\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\21\136\1\u01f6\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\1\u01f7\1\136\1\0\1\136\1\u01f8\20\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\1\u01f9\4\136" + + "\1\u01fa\14\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\u01fb\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\11\136" + + "\1\u01e5\10\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\5\136\1\u01fc\14\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\5\136\1\u01fd\14\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\10\136\1\u01fe\11\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\2\136\1\u01ff\11\136\1\u0200\5\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\1\u0201\1\136\1\0\6\136" + + "\1\u0202\13\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\15\136\1\u0203\4\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\1\136\1\u0204\20\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\2\136\1\u0205\17\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\2\136\1\u0206\17\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\1\u0207\1\136\1\0\22\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\2\136\1\0\22\136\1\127\2\0\1\136" + "\2\0\3\136\1\u0128\13\136\13\0\1\u0208\7\0\1\u0208" + + "\1\0\4\u0208\11\0\1\u0208\24\0\1\u0208\1\0\2\u0208" + "\1\0\1\u0208\2\0\1\u0208\3\0\1\u0208\7\0\1\u0208" + + "\3\0\1\u0208\6\0\1\u0208\15\0\1\u0209\7\0\1\u0209" + "\1\0\4\u0209\11\0\1\u0209\24\0\1\u0209\1\0\2\u0209" + + "\1\0\1\u0209\2\0\1\u0209\3\0\1\u0209\7\0\1\u0209" + "\3\0\1\u0209\6\0\1\u0209\14\0\1\u020a\60\0\1\u020a" + + "\121\0\1\u020b\134\0\1\u020c\136\0\1\u020d\144\0\1\u020e" + "\30\0\1\u020f\60\0\1\u020f\121\0\1\u0210\134\0\1\u0211" + + "\136\0\1\u0212\144\0\1\u0213\30\0\1\u0214\60\0\1\u0214" + "\47\0\6\u0165\1\0\13\u0165\5\0\2\u0165\1\0\1\u0165" + + "\12\0\2\u0165\1\0\22\u0165\3\0\1\u0165\2\0\17\u0165" + "\72\0\1\u0215\1\0\1\u0216\6\0\1\u0217\110\0\1\u0218" + + "\132\0\1\u0219\135\0\1\u021a\121\0\1\u021b\1\u021c\127\0" + "\1\u021d\133\0\1\u021e\121\0\1\u021f\12\0\1\u0220\115\0" + + "\1\u0221\140\0\1\u0222\120\0\1\u0223\3\0\1\u0224\132\0" + "\1\u0225\12\0\1\u0226\107\0\1\u0227\63\0\6\u0173\1\0" + + "\13\u0173\5\0\2\u0173\1\0\1\u0173\12\0\2\u0173\1\0" + "\22\u0173\3\0\1\u0173\2\0\17\u0173\65\0\1\u0174\143\0" + + "\1\u0174\114\0\1\u0174\2\0\1\u0174\17\0\1\u0174\121\0" + "\1\u0174\6\0\1\u0174\114\0\1\u0174\4\0\1\u0174\130\0" + + "\1\u0228\42\0\2\305\1\u0229\3\305\1\0\10\305\2\0" + "\1\305\5\0\2\305\14\0\2\305\1\0\1\u0229\21\305" + + "\3\0\1\305\2\0\17\305\12\0\6\305\1\0\1\u022a" + "\7\305\2\0\1\305\5\0\2\305\14\0\2\305\1\0" + + "\13\305\1\u022a\6\305\3\0\1\305\2\0\17\305\32\0" + "\1\u022b\174\0\1\u022c\131\0\1\u0187\105\0\1\u022d\120\0" + + "\1\u022e\65\0\2\65\1\0\1\65\1\0\2\65\2\0" + "\3\65\1\u022f\2\65\1\0\26\65\1\0\7\65\1\u022f" + + "\31\65\1\0\22\65\1\0\1\65\1\0\2\65\2\0" + "\1\65\1\u01a3\4\65\1\0\26\65\1\0\15\65\1\112" + + "\1\65\1\u01a3\21\65\1\0\3\65\1\112\16\65\1\0" + "\1\65\1\0\2\65\2\0\3\65\1\u0230\2\65\1\0" + + "\26\65\1\0\7\65\1\u0230\3\65\1\u0231\25\65\1\0" + "\2\65\1\u0231\17\65\1\0\1\65\1\0\2\65\2\0" + + "\5\65\1\u0232\1\0\26\65\1\0\14\65\1\u0232\24\65" + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + + "\1\0\26\65\1\0\32\65\1\u01a3\6\65\1\0\12\65" + "\1\u01a3\7\65\1\0\1\65\1\0\2\65\2\0\6\65" + + "\1\0\2\65\1\u0233\23\65\1\0\27\65\1\u0233\11\65" + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\2\65" + + "\1\u0234\3\65\1\0\26\65\1\0\12\65\1\u0234\26\65" + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\4\65" + + "\1\112\1\65\1\0\26\65\1\0\26\65\1\112\12\65" + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + + "\1\0\1\65\1\u01b7\24\65\1\0\20\65\1\u01b7\20\65" + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + + "\1\0\2\65\1\112\23\65\1\0\27\65\1\112\11\65" + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\5\65" + + "\1\u01a3\1\0\26\65\1\0\14\65\1\u01a3\24\65\1\0" + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\26\65\1\0\10\65\1\u0235\30\65\1\0\7\65\1\u0235" + "\12\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\26\65\1\0\30\65\1\u0236\10\65\1\0\4\65\1\u0236" + "\15\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\26\65\1\0\32\65\1\u0237\6\65\1\0\12\65\1\u0237" + "\7\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\26\65\1\0\15\65\1\u0238\23\65\1\0\3\65\1\u0238" + "\16\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\1\u01a3\25\65\1\0\25\65\1\u01a3\13\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\22\65\1\u0239\16\65\1\0\1\65\1\u0239\20\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\12\65" + + "\1\u01b1\13\65\1\0\41\65\1\0\6\65\1\u01b1\13\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\10\65\1\u01c2\30\65\1\0\7\65\1\u01c2\12\65" + "\1\0\1\65\1\0\2\65\2\0\3\65\1\u023a\2\65" + + "\1\0\26\65\1\0\7\65\1\u023a\31\65\1\0\22\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\22\65\1\u01b0\16\65\1\0\1\65\1\u01b0\20\65" + "\1\0\1\65\1\0\2\65\2\0\5\65\1\u023b\1\0" + + "\26\65\1\0\14\65\1\u023b\24\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\13\65\1\u01b1\25\65\1\0\2\65\1\u01b1\17\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\22\65\1\u010f\16\65\1\0\1\65\1\u010f\20\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\31\65\1\112\7\65\1\0\10\65\1\112\11\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u023c" + + "\23\65\1\0\27\65\1\u023c\11\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u0111" + + "\23\65\1\0\27\65\1\u0111\11\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u01b7" + + "\23\65\1\0\27\65\1\u01b7\11\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u010f" + + "\23\65\1\0\27\65\1\u010f\11\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\15\65\1\u023d\23\65\1\0\3\65\1\u023d\16\65\1\0" + "\1\65\1\0\2\65\2\0\1\65\1\u023e\4\65\1\0" + + "\26\65\1\0\17\65\1\u023e\21\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\5\65\1\u023f\1\0\26\65" + + "\1\0\14\65\1\u023f\24\65\1\0\22\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\13\65" + + "\1\u0240\25\65\1\0\2\65\1\u0240\17\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\1\112\25\65\1\0" + + "\25\65\1\112\13\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\2\65\1\u0241\23\65\1\0" + + "\27\65\1\u0241\11\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\30\65\1\u0242" + + "\10\65\1\0\4\65\1\u0242\15\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\1\65\1\u0243\24\65\1\0" + + "\20\65\1\u0243\20\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\12\65\1\u0244\13\65\1\0" + + "\41\65\1\0\6\65\1\u0244\13\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\30\65\1\112" + + "\10\65\1\0\4\65\1\112\15\65\1\0\1\65\1\0" + "\2\65\2\0\5\65\1\112\1\0\26\65\1\0\14\65" + + "\1\112\24\65\1\0\22\65\1\0\1\65\1\0\2\65" + "\2\0\3\65\1\u023f\2\65\1\0\26\65\1\0\7\65" + + "\1\u023f\1\u0235\30\65\1\0\7\65\1\u0235\12\65\1\0" + "\1\65\1\0\2\65\2\0\4\65\1\u019a\1\65\1\0" + + "\26\65\1\0\26\65\1\u019a\12\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\1\65\1\317\4\65\1\0" + + "\26\65\1\0\17\65\1\317\21\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\30\65\1\u0245\10\65\1\0\4\65\1\u0245\15\65\1\0" + "\1\65\1\0\2\65\2\0\2\65\1\u0246\3\65\1\0" + + "\26\65\1\0\12\65\1\u0246\26\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\21\65\1\u0247\17\65\1\0\5\65\1\u0247\14\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\1\65\1\u0248" + + "\24\65\1\0\20\65\1\u0248\20\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\22\65\1\u0249\16\65\1\0\1\65\1\u0249\20\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\22\65\1\u024a\16\65\1\0\1\65\1\u024a\20\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\21\65\1\u0192\17\65\1\0\5\65\1\u0192\14\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\13\65\1\u024b\25\65\1\0\2\65\1\u024b\17\65\1\0" + "\1\65\1\0\2\65\2\0\3\65\1\u024c\2\65\1\0" + + "\26\65\1\0\7\65\1\u024c\31\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\22\65\1\112\16\65\1\0\1\65\1\112\20\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\1\65\1\u024d" + + "\24\65\1\0\20\65\1\u024d\20\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\3\65\1\363\2\65\1\0" + + "\26\65\1\0\7\65\1\363\31\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\2\65\1\u024e\3\65\1\0" + + "\26\65\1\0\12\65\1\u024e\26\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u0111" + + "\23\65\1\0\22\65\1\112\4\65\1\u0111\11\65\1\0" + "\1\65\1\112\20\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\12\65\1\112\13\65\1\0\41\65\1\0" + "\6\65\1\112\13\65\1\0\1\65\1\0\2\65\2\0" + + "\5\65\1\u024f\1\0\26\65\1\0\14\65\1\u024f\24\65" + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + + "\1\0\26\65\1\0\31\65\1\112\7\65\1\0\10\65" + "\1\112\1\u0250\10\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\26\65\1\0\10\65\1\u0251\30\65\1\0" + "\7\65\1\u0251\12\65\1\0\1\65\1\0\2\65\2\0" + + "\6\65\1\0\2\65\1\363\23\65\1\0\27\65\1\363" + "\11\65\1\0\20\65\12\0\1\u0252\53\0\1\u0252\120\0" + + "\2\u01ca\17\0\1\u01ca\41\0\1\u0253\120\0\1\127\10\0" + "\1\127\1\u0254\4\127\1\0\2\127\1\u0254\1\127\4\u0254" + + "\1\127\1\0\1\127\1\0\3\127\1\0\1\127\1\u0254" + "\14\0\2\127\1\0\5\127\1\u0254\1\127\2\u0254\1\127" + + "\1\u0254\2\127\1\u0254\3\127\1\u0254\1\127\2\0\1\127" + "\2\0\1\127\1\u0254\3\127\1\u0254\6\127\1\u0254\2\127" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u0255" + + "\1\136\1\0\22\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\u011d\10\0\6\u011d\1\0\4\u011d\2\u01ce\1\u011d" + + "\1\u01ce\1\u011d\1\0\1\u011d\1\0\3\u011d\1\0\1\u011d" + "\1\u0120\14\0\2\u011d\1\0\7\u011d\1\u0120\2\u011d\1\u0120" + + "\10\u011d\2\0\1\u011d\2\0\5\u011d\1\u0120\6\u011d\1\u01ce" + "\2\u011d\25\0\2\u01ce\1\0\1\u01ce\75\0\1\u01ce\3\0" + + "\1\u011d\10\0\1\u011d\1\u01d1\4\u011d\1\0\1\u011d\1\u01d0" + "\1\u01d1\1\u011d\4\u01d1\1\u011d\1\0\1\u011d\1\0\3\u011d" + + "\1\0\1\u011d\1\u01d1\14\0\2\u011d\1\0\5\u011d\1\u01d1" + "\1\u01d0\2\u01d1\1\u011d\1\u01d1\2\u011d\1\u01d1\3\u011d\1\u01d1" + + "\1\u011d\2\0\1\u011d\2\0\1\u011d\1\u01d1\3\u011d\1\u01d1" + "\6\u011d\1\u01d1\2\u011d\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\11\136\1\u014b\10\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\15\136\1\u0256\4\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\2\136\1\u0257" + + "\17\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\1\u0258\1\136\1\0" + "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136" + + "\1\u0259\11\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\1\136\1\u025a\4\136\1\u025b\13\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\1\136\1\u0128\20\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\u025c\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\22\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\15\136\1\u025d\4\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\3\136\1\u025e\16\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\11\136\1\u0128\10\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\1\136\1\u025f" + + "\20\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\15\136" + "\1\u0260\4\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\6\136\1\u0128\13\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u0261" + "\1\136\1\0\22\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\2\136\1\u0262\6\136\1\u0263\10\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\1\u0264\21\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\2\136\1\0\11\136\1\u01dc\10\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\5\136\1\u0206\14\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\15\136\1\u0128" + "\4\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\1\136\1\u0264\1\0" + + "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\21\136" + "\1\u0265\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\15\136" + + "\1\u0266\4\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\10\136\1\u0267\11\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\u0268" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\2\136\1\u0269\17\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\15\136\1\u0142\4\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\2\136\1\u026a\17\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\1\u026b\21\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\5\136\1\u026c\14\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\2\136\1\0\2\136\1\u01e4\17\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\5\136\1\u026d\14\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\10\136\1\u026e" + "\11\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136" + + "\1\u026b\11\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\11\136\1\u01da\10\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\6\136\1\u026a\13\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\20\136\1\u026f\1\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\2\136\1\u0270\17\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\11\136\1\u0271\10\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\17\136\1\u0272\2\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\16\136\1\u0128" + + "\3\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\4\136" + "\1\u0273\15\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\10\136\1\u0274\11\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\6\136\1\u0275\13\136\1\127\2\0\1\136\2\0" + + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\15\136\1\u0276\4\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\1\136\1\u025a\20\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\2\136\1\0\7\136\1\u0128\12\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\10\136\1\u0277\11\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\10\136\1\u0278" + "\11\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\6\136" + + "\1\u0279\13\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\15\136\1\u0264\4\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\4\136\1\u0128\15\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\6\136\1\u01e5\13\136\1\127\2\0\1\136" + + "\2\0\17\136\13\0\1\u027a\7\0\1\u027a\1\0\4\u027a" + "\11\0\1\u027a\24\0\1\u027a\1\0\2\u027a\1\0\1\u027a" + + "\2\0\1\u027a\3\0\1\u027a\7\0\1\u027a\3\0\1\u027a" + "\6\0\1\u027a\15\0\1\u027b\7\0\1\u027b\1\0\4\u027b" + + "\11\0\1\u027b\24\0\1\u027b\1\0\2\u027b\1\0\1\u027b" + "\2\0\1\u027b\3\0\1\u027b\7\0\1\u027b\3\0\1\u027b" + + "\6\0\1\u027b\15\0\1\u027c\53\0\1\u027c\137\0\1\u027d" + "\131\0\1\u020d\105\0\1\u027e\120\0\1\u027f\77\0\1\u0280" + + "\53\0\1\u0280\137\0\1\u0281\131\0\1\u0212\105\0\1\u0282" + "\120\0\1\u0283\103\0\1\u0284\44\0\1\u0284\140\0\1\u0285" + + "\113\0\1\u0286\150\0\1\u0287\114\0\1\u021b\135\0\1\u0288" + "\122\0\1\u0289\132\0\1\u028a\132\0\1\u028b\144\0\1\u028c" + + "\125\0\1\u028d\116\0\1\u028e\130\0\1\u028f\5\0\1\u0290" + "\130\0\1\u0225\121\0\1\u0291\126\0\1\u0292\135\0\1\u0293" + + "\133\0\1\u0294\134\0\1\u0295\125\0\1\u0296\133\0\1\u0297" + "\44\0\3\305\1\u0298\2\305\1\0\10\305\2\0\1\305" + + "\5\0\2\305\14\0\1\u0298\1\305\1\0\22\305\3\0" + "\1\305\2\0\17\305\12\0\6\305\1\0\1\305\1\u0299" + + "\6\305\2\0\1\305\5\0\2\305\14\0\2\305\1\0" + "\6\305\1\u0299\13\305\3\0\1\305\2\0\17\305\54\0" + + "\1\u022d\16\0\1\u0187\46\0\1\u029a\125\0\2\u029b\1\0" + "\7\u022e\1\0\10\u022e\2\u029b\1\u022e\1\0\1\u029b\1\0" + + "\1\u022e\1\u029b\2\u022e\2\u029b\1\0\2\u029b\1\0\5\u029b" + "\1\0\2\u022e\1\0\22\u022e\3\u029b\1\u022e\2\u029b\17\u022e" + + "\1\0\2\65\1\0\1\65\1\0\2\65\2\0\4\65" + "\1\u01b1\1\65\1\0\26\65\1\0\26\65\1\u01b1\12\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + "\1\0\26\65\1\0\31\65\1\u0192\7\65\1\0\10\65" + + "\1\u0192\11\65\1\0\1\65\1\0\2\65\2\0\6\65" + "\1\0\26\65\1\0\15\65\1\340\23\65\1\0\3\65" + + "\1\340\16\65\1\0\1\65\1\0\2\65\2\0\3\65" + "\1\u023f\2\65\1\0\26\65\1\0\7\65\1\u023f\31\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\1\65" + "\1\u01b1\4\65\1\0\26\65\1\0\17\65\1\u01b1\21\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\1\65" + "\1\u0192\4\65\1\0\26\65\1\0\17\65\1\u0192\21\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\2\65" + "\1\u029c\3\65\1\0\26\65\1\0\12\65\1\u029c\26\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + "\1\0\2\65\1\u029d\23\65\1\0\22\65\1\u023c\4\65" + + "\1\u029d\11\65\1\0\1\65\1\u023c\20\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65" + + "\1\u029e\16\65\1\0\1\65\1\u029e\20\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\21\65" + + "\1\u029f\17\65\1\0\5\65\1\u029f\14\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\30\65" + + "\1\u0192\10\65\1\0\4\65\1\u0192\15\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\15\65" + + "\1\u02a0\23\65\1\0\3\65\1\u02a0\16\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\22\65" + + "\1\u02a1\16\65\1\0\1\65\1\u02a1\20\65\1\0\1\65" + "\1\0\2\65\2\0\6\65\1\0\26\65\1\0\15\65" + + "\1\u010f\23\65\1\0\3\65\1\u010f\16\65\1\0\1\65" + "\1\0\2\65\2\0\5\65\1\u02a2\1\0\26\65\1\0" + + "\14\65\1\u02a2\24\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\31\65\1\u02a3" + + "\7\65\1\0\10\65\1\u02a3\11\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\13\65\1\u0102" + + "\25\65\1\0\2\65\1\u0102\17\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\12\65\1\u023c\13\65\1\0" + + "\41\65\1\0\6\65\1\u023c\13\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\21\65\1\u02a4\4\65\1\0" + + "\24\65\1\u02a4\14\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\2\65\1\u02a5\23\65\1\0" + + "\27\65\1\u02a5\11\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\21\65\1\u02a6" + + "\17\65\1\0\5\65\1\u02a6\14\65\1\0\1\65\1\0" + "\2\65\2\0\2\65\1\u0192\3\65\1\0\26\65\1\0" + + "\12\65\1\u0192\26\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\22\65\1\u02a7" + + "\16\65\1\0\1\65\1\u02a7\20\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\13\65\1\340" + + "\25\65\1\0\2\65\1\340\17\65\1\0\1\65\1\0" + "\2\65\2\0\3\65\1\u02a8\2\65\1\0\26\65\1\0" + + "\7\65\1\u02a8\31\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\5\65\1\u02a9\1\0\1\65\1\u02aa\24\65" + + "\1\0\10\65\1\u02ab\3\65\1\u02a9\3\65\1\u02aa\20\65" + "\1\0\7\65\1\u02ab\12\65\1\0\1\65\1\0\2\65" + + "\2\0\6\65\1\0\26\65\1\0\15\65\1\u02ac\23\65" + "\1\0\3\65\1\u02ac\16\65\1\0\1\65\1\0\2\65" + + "\2\0\1\65\1\333\4\65\1\0\26\65\1\0\17\65" + "\1\333\21\65\1\0\22\65\1\0\1\65\1\0\2\65" + + "\2\0\6\65\1\0\2\65\1\u01b1\23\65\1\0\27\65" + "\1\u01b1\11\65\1\0\22\65\1\0\1\65\1\0\2\65" + + "\2\0\6\65\1\0\2\65\1\u02ad\23\65\1\0\27\65" + "\1\u02ad\11\65\1\0\22\65\1\0\1\65\1\0\2\65" + + "\2\0\3\65\1\u02ae\2\65\1\0\26\65\1\0\7\65" + "\1\u02ae\31\65\1\0\22\65\1\0\1\65\1\0\2\65" + + "\2\0\6\65\1\0\12\65\1\u02af\13\65\1\0\41\65" + "\1\0\6\65\1\u02af\13\65\1\0\1\65\1\0\2\65" + + "\2\0\6\65\1\0\2\65\1\u0102\23\65\1\0\27\65" + "\1\u0102\11\65\1\0\20\65\13\0\1\u02b0\45\0\1\u02b0" + + "\47\0\1\127\10\0\1\127\1\u02b1\4\127\1\0\2\127" + "\1\u02b1\1\127\4\u02b1\1\127\1\0\1\127\1\0\3\127" + + "\1\0\1\127\1\u02b1\14\0\2\127\1\0\5\127\1\u02b1" + "\1\127\2\u02b1\1\127\1\u02b1\2\127\1\u02b1\3\127\1\u02b1" + + "\1\127\2\0\1\127\2\0\1\127\1\u02b1\3\127\1\u02b1" + "\6\127\1\u02b1\2\127\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\3\136\1\u02b2\16\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\1\u02b3\21\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\10\136\1\u02b4\11\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\3\136\1\u02b5" + "\16\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\22\136" + + "\1\127\2\0\1\136\2\0\3\136\1\u0275\13\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\1\u0263\21\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\15\136\1\u02b6\4\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\1\u02b7\21\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\11\136\1\u02b8\10\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\22\136\1\127\2\0\1\136\2\0\1\u02b9" + + "\16\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\1\136\1\u02ba\20\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\20\136\1\u01e5\1\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\1\u02bb\1\136\1\0\22\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\2\136\1\u0128\17\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\6\136\1\u0205\13\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\2\136\1\u01e5" + + "\17\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\u02bc\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\22\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\1\136\1\u02bd\1\0\22\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\1\u02be\21\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\1\u02bf\1\136\1\0\22\136" + + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + + "\1\136\1\0\2\136\14\0\2\136\1\0\2\136\1\u0264" + "\17\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\4\136" + + "\1\u02c0\15\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\2\136\1\u02c1\17\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\6\136\1\u02c2\13\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\10\136\1\u0266\11\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\15\136\1\u02c3\4\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\15\136\1\u02c4\4\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\10\136\1\u02c5\11\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\14\136\1\u02c6" + + "\5\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136" + "\1\u02c7\16\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\2\136\1\u0153\17\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\17\136\1\u0128\2\136\1\127\2\0\1\136\2\0" + + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\15\136\1\u02c8\4\136\1\127\2\0\1\136" + "\2\0\17\136\14\0\1\u02c9\45\0\1\u02c9\122\0\1\u027e" + + "\16\0\1\u020d\46\0\1\u02ca\125\0\2\u02cb\1\0\7\u027f" + "\1\0\10\u027f\2\u02cb\1\u027f\1\0\1\u02cb\1\0\1\u027f" + + "\1\u02cb\2\u027f\2\u02cb\1\0\2\u02cb\1\0\5\u02cb\1\0" + "\2\u027f\1\0\22\u027f\3\u02cb\1\u027f\2\u02cb\17\u027f\14\0" + + "\1\u02cc\45\0\1\u02cc\122\0\1\u0282\16\0\1\u0212\46\0" + "\1\u02cd\125\0\2\u02ce\1\0\7\u0283\1\0\10\u0283\2\u02ce" + + "\1\u0283\1\0\1\u02ce\1\0\1\u0283\1\u02ce\2\u0283\2\u02ce" + "\1\0\2\u02ce\1\0\5\u02ce\1\0\2\u0283\1\0\22\u0283" + + "\3\u02ce\1\u0283\2\u02ce\17\u0283\21\0\1\u02cf\53\0\1\u02cf" + "\117\0\1\u028c\126\0\1\u02d0\142\0\1\u02d1\131\0\1\u02d2" + + "\113\0\1\u02d3\102\0\1\u02d4\175\0\1\u02d5\120\0\1\u02d6" + "\142\0\1\u028a\107\0\1\u028a\134\0\1\u02d2\123\0\1\u02d7" + + "\144\0\1\u0290\70\0\1\u02d8\200\0\1\u02d9\111\0\1\u02da" + "\123\0\1\u02db\134\0\1\u02dc\57\0\4\305\1\u02dd\1\305" + + "\1\0\10\305\2\0\1\305\5\0\2\305\14\0\2\305" + "\1\0\14\305\1\u02dd\5\305\3\0\1\305\2\0\17\305" + + "\12\0\6\305\1\0\2\305\1\u02de\5\305\2\0\1\305" + "\5\0\2\305\14\0\2\305\1\0\15\305\1\u02de\4\305" + + "\3\0\1\305\2\0\17\305\11\0\1\u022e\120\0\2\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\13\65\1\u02df\25\65\1\0\2\65\1\u02df\17\65" + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\26\65" + + "\1\0\15\65\1\u01b1\23\65\1\0\3\65\1\u01b1\16\65" + "\1\0\1\65\1\0\2\65\2\0\1\112\5\65\1\0" + + "\26\65\1\0\23\65\1\112\15\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\2\65\1\u02e0" + + "\23\65\1\0\27\65\1\u02e0\11\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\5\65\1\u02e1\1\0\26\65" + + "\1\0\14\65\1\u02e1\24\65\1\0\22\65\1\0\1\65" + "\1\0\2\65\2\0\2\65\1\u02e2\3\65\1\0\26\65" + + "\1\0\12\65\1\u02e2\26\65\1\0\22\65\1\0\1\65" + "\1\0\2\65\2\0\1\u02e3\5\65\1\0\26\65\1\0" + + "\23\65\1\u02e3\15\65\1\0\22\65\1\0\1\65\1\0" + "\2\65\2\0\6\65\1\0\26\65\1\0\41\65\1\0" + + "\11\65\1\u02e4\10\65\1\0\1\65\1\0\2\65\2\0" + "\6\65\1\0\26\65\1\0\13\65\1\u029d\25\65\1\0" + + "\2\65\1\u029d\17\65\1\0\1\65\1\0\2\65\2\0" + "\1\u024d\5\65\1\0\26\65\1\0\23\65\1\u024d\15\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + "\1\0\26\65\1\0\30\65\1\u02e5\10\65\1\0\4\65" + + "\1\u02e5\15\65\1\0\1\65\1\0\2\65\2\0\6\65" + "\1\0\1\65\1\u029e\24\65\1\0\20\65\1\u029e\20\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + "\1\0\2\65\1\u02e6\23\65\1\0\27\65\1\u02e6\11\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\3\65" + "\1\373\2\65\1\0\26\65\1\0\7\65\1\373\31\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\2\65" + "\1\u02e7\3\65\1\0\26\65\1\0\12\65\1\u02e7\26\65" + + "\1\0\22\65\1\0\1\65\1\0\2\65\2\0\6\65" + "\1\0\1\u01b0\25\65\1\0\25\65\1\u01b0\13\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\1\u029e\5\65" + "\1\0\26\65\1\0\23\65\1\u029e\15\65\1\0\22\65" + + "\1\0\1\65\1\0\2\65\2\0\1\65\1\u02e8\4\65" + "\1\0\26\65\1\0\17\65\1\u02e8\21\65\1\0\22\65" + + "\1\0\1\65\1\0\2\65\2\0\6\65\1\0\2\65" + "\1\u0192\23\65\1\0\27\65\1\u0192\11\65\1\0\20\65" + + "\14\0\1\u02e9\41\0\1\u02e9\52\0\1\127\10\0\1\127" + "\1\u02ea\4\127\1\0\2\127\1\u02ea\1\127\4\u02ea\1\127" + + "\1\0\1\127\1\0\3\127\1\0\1\127\1\u02ea\14\0" + "\2\127\1\0\5\127\1\u02ea\1\127\2\u02ea\1\127\1\u02ea" + + "\2\127\1\u02ea\3\127\1\u02ea\1\127\2\0\1\127\2\0" + "\1\127\1\u02ea\3\127\1\u02ea\6\127\1\u02ea\2\127\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u02eb\1\136" + + "\1\0\22\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\12\136\1\u02ec\7\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\3\136\1\u02ed\16\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\1\u02ee\1\136\1\0\22\136\1\127\2\0\1\136\2\0" + + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\16\136\1\u02ef\3\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\3\136\1\u02f0\16\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\1\u02f1\1\136\1\0\22\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\12\136\1\u0128\7\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\3\136\1\u02f2\16\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\6\136\1\u0263" + + "\13\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\1\136\1\u01ed\1\0" + "\22\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136" + + "\1\u02f3\11\136\1\127\2\0\1\136\2\0\17\136\1\0" + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + "\5\136\1\u0128\14\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\1\u02f4\21\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\1\u02f5" + "\1\136\1\0\22\136\1\127\2\0\1\136\2\0\17\136" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\6\136\1\u02f6\13\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\5\136\1\u02f7\14\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\3\136\1\u02f8\2\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\1\136\1\u02f9\14\0\2\136\1\0\22\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\1\136\1\u01e5\1\0\22\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\15\136\1\u0275\4\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\7\136\1\u01dc" + + "\12\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\10\136" + "\1\u02fa\11\136\1\127\2\0\1\136\2\0\17\136\15\0" + + "\1\u02fb\41\0\1\u02fb\62\0\1\u027f\134\0\1\u02fc\41\0" + "\1\u02fc\62\0\1\u0283\141\0\1\u02fd\45\0\1\u02fd\133\0" + + "\1\u02fe\120\0\1\u02ff\77\0\1\u0300\175\0\1\u021b\114\0" + "\1\u0301\3\0\1\u0302\1\u0303\122\0\1\u028a\147\0\1\u0304" + + "\131\0\1\u0305\121\0\1\u028a\125\0\1\u0304\135\0\1\u028a" + "\117\0\1\u0304\126\0\1\u0306\60\0\5\305\1\u0307\1\0" + + "\10\305\2\0\1\305\5\0\2\305\14\0\2\305\1\0" + "\2\305\1\u0307\17\305\3\0\1\305\2\0\17\305\1\0" + + "\2\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\12\65\1\u0190\13\65\1\0\41\65\1\0\6\65\1\u0190" + + "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\20\65\1\112\5\65\1\0\37\65\1\112\1\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\2\65\1\u0308\23\65\1\0\27\65\1\u0308\11\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\2\65\1\u01bf\23\65\1\0\27\65\1\u01bf\11\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\26\65\1\0\13\65\1\324\25\65\1\0\2\65\1\324" + + "\17\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\12\65\1\u0309\13\65\1\0\41\65\1\0\6\65\1\u0309" + + "\13\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\2\65\1\u029e\23\65\1\0\27\65\1\u029e\11\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\26\65\1\0\30\65\1\u030a\10\65\1\0\4\65\1\u030a" + + "\15\65\1\0\1\65\1\0\2\65\2\0\3\65\1\u010f" + "\2\65\1\0\26\65\1\0\7\65\1\u010f\31\65\1\0" + + "\22\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + "\26\65\1\0\13\65\1\u01b7\25\65\1\0\2\65\1\u01b7" + + "\15\65\15\0\1\u030b\57\0\1\u030b\33\0\1\127\10\0" + "\1\127\1\136\4\127\1\0\2\127\1\136\1\127\4\136" + + "\1\127\1\0\1\127\1\0\3\127\1\0\1\127\1\136" + "\14\0\2\127\1\0\5\127\1\136\1\127\2\136\1\127" + + "\1\136\2\127\1\136\3\127\1\136\1\127\2\0\1\127" + "\2\0\1\127\1\136\3\127\1\136\6\127\1\136\2\127" + + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + + "\1\0\2\136\1\u02f6\17\136\1\127\2\0\1\136\2\0" + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + "\2\136\1\0\10\136\1\u030c\11\136\1\127\2\0\1\136" + + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\5\136\1\u01de\14\136\1\127\2\0" + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\2\136\1\u02c6\17\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\15\136\1\u030d\4\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\15\136\1\u030e" + + "\4\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\u01e5\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\22\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\5\136\1\u0263" + + "\14\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\1\136" + "\1\u030f\20\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\1\136\1\u0310\20\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\13\136\1\u0128\6\136\1\127\2\0\1\136\2\0" + + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\2\136\1\u0311\17\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\3\136\1\u0312\16\136\1\127\2\0" + + "\1\136\2\0\17\136\1\0\1\127\10\0\6\136\1\0" + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + + "\2\136\14\0\2\136\1\0\6\136\1\u0313\13\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\3\136\1\u0264\16\136" + + "\1\127\2\0\1\136\2\0\17\136\16\0\1\u0314\57\0" + "\1\u0314\50\0\1\u0315\57\0\1\u0315\55\0\1\u0316\53\0" + + "\1\u0316\115\0\1\u0317\126\0\1\u0305\131\0\1\u0301\3\0" + "\1\u0302\135\0\1\u0318\122\0\1\u0319\134\0\1\u0292\135\0" + + "\1\u031a\130\0\1\u028a\115\0\1\u031b\45\0\2\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\20\65\1\u01b1" + + "\5\65\1\0\37\65\1\u01b1\1\65\1\0\22\65\1\0" + "\1\65\1\0\2\65\2\0\6\65\1\0\26\65\1\0" + + "\13\65\1\327\25\65\1\0\2\65\1\327\17\65\1\0" + "\1\65\1\0\2\65\2\0\4\65\1\u031c\1\65\1\0" + + "\26\65\1\0\26\65\1\u031c\12\65\1\0\20\65\16\0" + "\1\u031d\44\0\1\u031d\45\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\5\136\1\u01e5\14\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\2\136\1\0\3\136\1\u031e\16\136" + "\1\127\2\0\1\136\2\0\17\136\1\0\1\127\10\0" + + "\6\136\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a" + "\1\136\1\0\2\136\14\0\2\136\1\0\3\136\1\u0263" + + "\16\136\1\127\2\0\1\136\2\0\17\136\1\0\1\127" + "\10\0\6\136\1\0\11\136\1\0\1\136\1\0\1\127" + + "\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0\3\136" + "\1\u031f\16\136\1\127\2\0\1\136\2\0\17\136\1\0" + + "\1\127\10\0\6\136\1\0\11\136\1\0\1\136\1\0" + "\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136\1\0" + + "\3\136\1\u0128\16\136\1\127\2\0\1\136\2\0\17\136" + "\1\0\1\127\10\0\6\136\1\0\11\136\1\0\1\136" + + "\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0\2\136" + "\1\0\15\136\1\u0201\4\136\1\127\2\0\1\136\2\0" + + "\17\136\1\0\1\127\10\0\6\136\1\0\11\136\1\0" + "\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136\14\0" + + "\2\136\1\0\2\136\1\u0275\17\136\1\127\2\0\1\136" + "\2\0\17\136\1\0\1\127\10\0\6\136\1\0\11\136" + + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + "\14\0\2\136\1\0\1\136\1\u0320\20\136\1\127\2\0" + + "\1\136\2\0\17\136\17\0\1\u0321\44\0\1\u0321\63\0" + "\1\u0322\44\0\1\u0322\64\0\1\u0323\142\0\1\u0324\130\0" + + "\1\u0325\155\0\1\u0326\142\0\1\u028a\131\0\1\u0327\37\0" + "\2\65\1\0\1\65\1\0\2\65\2\0\6\65\1\0" + + "\1\65\1\u0328\24\65\1\0\20\65\1\u0328\20\65\1\0" + "\20\65\17\0\1\u0329\111\0\1\127\10\0\6\136\1\0" + + "\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0" + "\2\136\14\0\2\136\1\0\2\136\1\u01dc\17\136\1\127" + + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + + "\1\0\2\136\14\0\1\u032a\1\136\1\0\22\136\1\127" + "\2\0\1\136\2\0\17\136\1\0\1\127\10\0\6\136" + + "\1\0\11\136\1\0\1\136\1\0\1\127\1\u011a\1\136" + "\1\0\2\136\14\0\2\136\1\0\10\136\1\u0312\11\136" + + "\1\127\2\0\1\136\2\0\17\136\20\0\1\u032b\130\0" + "\1\u032c\200\0\1\u032d\124\0\1\u032e\134\0\1\u031a\125\0" + + "\1\u032f\44\0\2\65\1\0\1\65\1\0\2\65\2\0" + "\6\65\1\0\26\65\1\0\22\65\1\327\16\65\1\0" + + "\1\65\1\327\16\65\1\127\10\0\6\136\1\0\11\136" + "\1\0\1\136\1\0\1\127\1\u011a\1\136\1\0\2\136" + + "\14\0\2\136\1\0\22\136\1\127\2\0\1\136\2\0" + "\16\136\1\u0311\57\0\1\u0330\17\0\1\u0331\126\0\1\u0332" + + "\117\0\1\u0333\131\0\1\u0305\127\0\1\u0285\142\0\1\u0305" + "\33\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[63190]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\6\0\2\1\1\0\2\1\1\0\2\1\7\0\1\1" + "\5\0\2\1\1\11\4\1\1\11\5\1\1\11\2\1" + + "\2\11\2\1\1\11\1\1\3\11\1\1\1\11\25\1" + "\1\11\1\1\1\11\1\1\7\11\1\1\1\11\2\1" + "\2\11\10\1\1\11\3\1\1\11\20\1\1\11\2\1" + + "\1\11\1\1\2\11\2\1\1\11\1\1\1\11\1\1" + "\1\11\6\1\1\11\4\1\2\11\1\1\1\11\4\1" + "\1\11\1\1\3\11\4\1\4\11\1\1\1\11\6\1" + + "\4\11\1\1\2\11\1\1\1\11\2\1\1\11\2\1" + "\1\11\1\1\1\11\1\1\1\11\4\1\2\11\5\0" + "\1\11\103\1\1\11\3\0\1\11\1\0\75\1\1\11" + + "\2\1\1\0\1\11\12\0\1\11\1\1\15\0\1\1" + "\1\11\5\0\1\1\1\0\4\11\3\1\1\0\1\11" + "\4\0\100\1\1\0\1\1\1\0\3\1\1\0\70\1" + + "\41\0\2\1\1\11\2\0\44\1\1\0\1\11\46\1" + "\1\0\1\11\3\0\1\1\3\0\1\1\6\0\1\11" + "\15\0\2\1\2\0\24\1\1\0\30\1\24\0\14\1" + + "\1\0\21\1\14\0\4\1\1\0\10\1\10\0\1\1" + "\1\0\3\1\2\0\1\11\4\0\1\1\1\11\1\1" + "\2\11\6\0\1\11"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[819]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Type specific to XMLTokenMaker denoting a line ending with an unclosed * double-quote attribute. */ - public static final int INTERNAL_ATTR_DOUBLE = -1; - - + public static final int INTERNAL_ATTR_DOUBLE = -1; /** * Type specific to XMLTokenMaker denoting a line ending with an unclosed * single-quote attribute. */ - public static final int INTERNAL_ATTR_SINGLE = -2; - - + public static final int INTERNAL_ATTR_SINGLE = -2; /** * Token type specific to HTMLTokenMaker; this signals that the user has * ended a line with an unclosed HTML tag; thus a new line is beginning * still inside of the tag. */ - public static final int INTERNAL_INTAG = -3; - + public static final int INTERNAL_INTAG = -3; /** * Token type specific to HTMLTokenMaker; this signals that the user has * ended a line with an unclosed <script> tag. */ - public static final int INTERNAL_INTAG_SCRIPT = -4; - + public static final int INTERNAL_INTAG_SCRIPT = -4; /** * Token type specifying we're in a double-qouted attribute in a * script tag. */ public static final int INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT = -5; - /** * Token type specifying we're in a single-qouted attribute in a * script tag. */ public static final int INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT = -6; - /** * Token type specific to HTMLTokenMaker; this signals that the user has * ended a line with an unclosed <style> tag. */ - public static final int INTERNAL_INTAG_STYLE = -7; - + public static final int INTERNAL_INTAG_STYLE = -7; /** * Token type specifying we're in a double-qouted attribute in a * style tag. */ public static final int INTERNAL_ATTR_DOUBLE_QUOTE_STYLE = -8; - /** * Token type specifying we're in a single-qouted attribute in a * style tag. */ public static final int INTERNAL_ATTR_SINGLE_QUOTE_STYLE = -9; - /** * Token type specifying we're in JavaScript. */ - public static final int INTERNAL_IN_JS = -10; - + public static final int INTERNAL_IN_JS = -10; /** * Token type specifying we're in a JavaScript multiline comment. */ - public static final int INTERNAL_IN_JS_MLC = -11; - + public static final int INTERNAL_IN_JS_MLC = -11; /** * Token type specifying we're in an invalid multi-line JS string. */ - public static final int INTERNAL_IN_JS_STRING_INVALID = -12; - + public static final int INTERNAL_IN_JS_STRING_INVALID = -12; /** * Token type specifying we're in a valid multi-line JS string. */ - public static final int INTERNAL_IN_JS_STRING_VALID = -13; - + public static final int INTERNAL_IN_JS_STRING_VALID = -13; /** - * Token type specifying we're in an invalid multi-line JS single-quoted string. + * Token type specifying we're in an invalid multi-line JS single-quoted + * string. */ - public static final int INTERNAL_IN_JS_CHAR_INVALID = -14; - + public static final int INTERNAL_IN_JS_CHAR_INVALID = -14; /** - * Token type specifying we're in a valid multi-line JS single-quoted string. + * Token type specifying we're in a valid multi-line JS single-quoted + * string. */ - public static final int INTERNAL_IN_JS_CHAR_VALID = -15; - + public static final int INTERNAL_IN_JS_CHAR_VALID = -15; /** * Internal type denoting a line ending in CSS. */ - public static final int INTERNAL_CSS = -16; - + public static final int INTERNAL_CSS = -16; /** * Internal type denoting a line ending in a CSS property. */ - public static final int INTERNAL_CSS_PROPERTY = -17; - + public static final int INTERNAL_CSS_PROPERTY = -17; /** * Internal type denoting a line ending in a CSS property value. */ - public static final int INTERNAL_CSS_VALUE = -18; - + public static final int INTERNAL_CSS_VALUE = -18; /** * Token type specifying we're in a valid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID = -23; - /** * Token type specifying we're in an invalid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID = -24; - /** * Internal type denoting line ending in a CSS double-quote string. * The state to return to is embedded in the actual end token type. */ - public static final int INTERNAL_CSS_STRING = -(1<<11); - + public static final int INTERNAL_CSS_STRING = -(1 << 11); /** * Internal type denoting line ending in a CSS single-quote string. * The state to return to is embedded in the actual end token type. */ - public static final int INTERNAL_CSS_CHAR = -(2<<11); - + public static final int INTERNAL_CSS_CHAR = -(2 << 11); /** * Internal type denoting line ending in a CSS multi-line comment. * The state to return to is embedded in the actual end token type. */ - public static final int INTERNAL_CSS_MLC = -(3<<11); - + public static final int INTERNAL_CSS_MLC = -(3 << 11); /** * The state previous CSS-related state we were in before going into a CSS * string, multi-line comment, etc. */ private int cssPrevState; - /** * Whether closing markup tags are automatically completed for HTML. */ private static boolean completeCloseTags; - /** * When in the JS_STRING state, whether the current string is valid. */ private boolean validJSString; - /** - * Language state set on HTML tokens. Must be 0. + * Language state set on HTML tokens. Must be 0. */ private static final int LANG_INDEX_DEFAULT = 0; - /** * Language state set on JavaScript tokens. */ private static final int LANG_INDEX_JS = 1; - /** * Language state set on CSS tokens. */ private static final int LANG_INDEX_CSS = 2; - private Stack varDepths; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public HTMLTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -2059,10 +1275,9 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { protected OccurrenceMarker createOccurrenceMarker() { return new HtmlOccurrenceMarker(); } - - + /** - * Sets whether markup close tags should be completed. You might not want + * Sets whether markup close tags should be completed. You might not want * this to be the case, since some tags in standard HTML aren't usually * closed. * @@ -2073,14 +1288,12 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { public boolean getCompleteCloseTags() { return completeCloseTags; } - - + @Override public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex) { - return languageIndex==LANG_INDEX_CSS || languageIndex==LANG_INDEX_JS; + return languageIndex == LANG_INDEX_CSS || languageIndex == LANG_INDEX_JS; } - - + /** * {@inheritDoc} */ @@ -2095,58 +1308,57 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { return new String[] { "" }; } } - - + /** * Returns Token.MARKUP_TAG_NAME. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.MARKUP_TAG_NAME; + return type == Token.MARKUP_TAG_NAME; } - - + /** * Overridden to handle newlines in JS and CSS differently than those in * markup. */ @Override public boolean getShouldIndentNextLineAfter(Token token) { - int languageIndex = token==null ? 0 : token.getLanguageIndex(); + int languageIndex = token == null ? 0 : token.getLanguageIndex(); if (getCurlyBracesDenoteCodeBlocks(languageIndex)) { - if (token!=null && token.length()==1) { + if (token != null && token.length() == 1) { char ch = token.charAt(0); - return ch=='{' || ch=='('; + return ch == '{' || ch == '('; } } return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; cssPrevState = CSS; // Shouldn't be necessary int languageIndex = 0; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -2237,7 +1449,7 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { languageIndex = LANG_INDEX_JS; break; default: - if (initialTokenType<-1024) { + if (initialTokenType < -1024) { int main = -(-initialTokenType & 0xffffff00); switch (main) { default: // Should never happen @@ -2251,15 +1463,13 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { state = CSS_C_STYLE_COMMENT; break; } - cssPrevState = -initialTokenType&0xff; + cssPrevState = -initialTokenType & 0xff; languageIndex = LANG_INDEX_CSS; - } - else { + } else { state = Token.NULL; } break; } - setLanguageIndex(languageIndex); start = text.offset; s = text; @@ -2271,34 +1481,31 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** - * Sets whether markup close tags should be completed. You might not want + * Sets whether markup close tags should be completed. You might not want * this to be the case, since some tags in standard HTML aren't usually * closed. * - * @param complete Whether closing markup tags are completed. + * @param complete + * Whether closing markup tags are completed. * @see #getCompleteCloseTags() */ public static void setCompleteCloseTags(boolean complete) { completeCloseTags = complete; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -2307,7 +1514,8 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -2316,921 +1524,1163 @@ public class HTMLTokenMaker extends AbstractMarkupTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 HTMLTokenMaker(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 HTMLTokenMaker(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 < 194) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 55: - { addToken(Token.OPERATOR); yybegin(CSS_VALUE); - } - case 113: break; - case 80: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 114: break; - case 64: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 115: break; - case 23: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE_SCRIPT); - } - case 116: break; - case 10: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.MARKUP_DTD); - } - case 117: break; - case 49: - { addToken(Token.SEPARATOR); yybegin(CSS_PROPERTY); - } - case 118: break; - case 4: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(INTAG); - } - case 119: break; - case 106: - { addToken(Token.RESERVED_WORD_2); - } - case 120: break; - case 90: - { addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); yybegin(cssPrevState); - } - case 121: break; - case 87: - { start = zzMarkedPos-2; cssPrevState = zzLexicalState; yybegin(CSS_C_STYLE_COMMENT); - } - case 122: break; - case 40: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_INVALID); - } + + /** + * 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 HTMLTokenMaker(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 HTMLTokenMaker(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 < 194) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 55: { + addToken(Token.OPERATOR); + yybegin(CSS_VALUE); + } + case 113: + break; + case 80: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 114: + break; + case 64: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 115: + break; + case 23: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE_SCRIPT); + } + case 116: + break; + case 10: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.MARKUP_DTD); + } + case 117: + break; + case 49: { + addToken(Token.SEPARATOR); + yybegin(CSS_PROPERTY); + } + case 118: + break; + case 4: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(INTAG); + } + case 119: + break; + case 106: { + addToken(Token.RESERVED_WORD_2); + } + case 120: + break; + case 90: { + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + yybegin(cssPrevState); + } + case 121: + break; + case 87: { + start = zzMarkedPos - 2; + cssPrevState = zzLexicalState; + yybegin(CSS_C_STYLE_COMMENT); + } + case 122: + break; + case 40: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_INVALID); + } + return firstToken; + } + case 123: + break; + case 5: { + addToken(Token.WHITESPACE); + } + case 124: + break; + case 107: { + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 6, zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + start = zzMarkedPos; + yybegin(INTAG_SCRIPT); + } + case 125: + break; + case 89: { + addToken(Token.REGEX); + } + case 126: + break; + case 42: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 127: + break; + case 111: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(temp, temp + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 128: + break; + case 102: { + addToken(Token.FUNCTION); + } + case 129: + break; + case 8: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 130: + break; + case 36: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 131: + break; + case 46: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_STRING); + } + case 132: + break; + case 91: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + start = zzMarkedPos - 2; + if (varDepths == null) { + varDepths = new Stack(); + } else { + varDepths.clear(); + } + varDepths.push(Boolean.TRUE); + yybegin(JS_TEMPLATE_LITERAL_EXPR); + } + case 133: + break; + case 72: { + if (!varDepths.empty()) { + varDepths.pop(); + if (varDepths.empty()) { + addToken(start, zzStartRead, Token.VARIABLE); + start = zzMarkedPos; + yybegin(JS_TEMPLATE_LITERAL); + } + } + } + case 134: + break; + case 67: { + if (validJSString) { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 135: + break; + case 69: { /* + * Skip valid '$' that is not part of template + * literal expression start + */ + } + case 136: + break; + case 20: { + yybegin(INTAG); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 137: + break; + case 25: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE_STYLE); + } + case 138: + break; + case 35: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_TEMPLATE_LITERAL); + } + case 139: + break; + case 83: { /* Skip all escaped chars. */ + } + case 140: + break; + case 77: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(YYINITIAL); + } + case 141: + break; + case 28: { + yybegin(INTAG_STYLE); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 142: + break; + case 101: { + if (JavaScriptTokenMaker.isJavaScriptCompatible("1.6")) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 143: + break; + case 96: { + if (JavaScriptTokenMaker.isJavaScriptCompatible("1.7")) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 144: + break; + case 56: { + /* System.out.println("css_value: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 145: + break; + case 17: { + /* A non-recognized HTML tag name */ yypushback(yylength()); + yybegin(INTAG); + } + case 146: + break; + case 26: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(CSS, LANG_INDEX_CSS); + } + case 147: + break; + case 65: { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + yybegin(cssPrevState); + } + case 148: + break; + case 92: { + varDepths.push(Boolean.TRUE); + } + case 149: + break; + case 27: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE_STYLE); + } + case 150: + break; + case 7: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + return firstToken; + } + case 151: + break; + case 85: { + /* Invalid latin-1 character \xXX */ validJSString = false; + } + case 152: + break; + case 24: { + yybegin(INTAG_SCRIPT); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 153: + break; + case 37: { + int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(JAVASCRIPT); + } + case 154: + break; + case 99: { + addToken(Token.COMMENT_MULTILINE); + } + case 155: + break; + case 75: { + start = zzMarkedPos - 2; + yybegin(PI); + } + case 156: + break; + case 108: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 6, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 157: + break; + case 51: { + /* System.out.println("css_property: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 158: + break; + case 9: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + return firstToken; + } + case 159: + break; + case 73: { + int count = yylength(); + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + zzMarkedPos -= (count - 1); // yypushback(count-1); + yybegin(INTAG_CHECK_TAG_NAME); + } + case 160: + break; + case 63: { /* Skip escaped chars. */ + } + case 161: + break; + case 84: { + /* Invalid Unicode character \\uXXXX */ validJSString = false; + } + case 162: + break; + case 105: { + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 5, zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + start = zzMarkedPos; + cssPrevState = zzLexicalState; + yybegin(INTAG_STYLE); + } + case 163: + break; + case 76: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.MARKUP_PROCESSING_INSTRUCTION); + } + case 164: + break; + case 86: { + yybegin(JAVASCRIPT); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 165: + break; + case 30: { + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 166: + break; + case 39: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 167: + break; + case 15: { + addToken(Token.OPERATOR); + } + case 168: + break; + case 58: { + addToken(Token.OPERATOR); + yybegin(CSS_PROPERTY); + } + case 169: + break; + case 97: { + start = zzMarkedPos - 4; + yybegin(COMMENT); + } + case 170: + break; + case 94: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 2, Token.MARKUP_COMMENT); + } + case 171: + break; + case 110: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addToken(temp, temp + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 172: + break; + case 88: { + addToken(Token.VARIABLE); + } + case 173: + break; + case 44: { + /* System.out.println("CSS: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 174: + break; + case 70: { + int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(JAVASCRIPT); + } + case 175: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 176: + break; + case 103: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 177: + break; + case 22: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(JAVASCRIPT, LANG_INDEX_JS); + } + case 178: + break; + case 104: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 179: + break; + case 54: { + addToken(Token.SEPARATOR); + yybegin(CSS); + } + case 180: + break; + case 31: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_STRING); + } + case 181: + break; + case 62: { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(cssPrevState); + } + case 182: + break; + case 52: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 183: + break; + case 68: { + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 184: + break; + case 41: { + int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; + addToken(start, zzStartRead, type); + yybegin(JAVASCRIPT); + } + case 185: + break; + case 34: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_CHAR); + } + case 186: + break; + case 79: { + start = zzMarkedPos - 2; + yybegin(JS_MLC); + } + case 187: + break; + case 82: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 188: + break; + case 60: { + int temp = zzMarkedPos - 2; + addToken(zzStartRead, temp, Token.FUNCTION); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.SEPARATOR); + zzStartRead = zzCurrentPos = zzMarkedPos; + } + case 189: + break; + case 112: { + addToken(Token.ANNOTATION); + } + case 190: + break; + case 29: { + addToken(Token.ERROR_IDENTIFIER); + } + case 191: + break; + case 57: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 192: + break; + case 98: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 193: + break; + case 6: { + addToken(Token.MARKUP_ENTITY_REFERENCE); + } + case 194: + break; + case 100: { + addToken(Token.LITERAL_BOOLEAN); + } + case 195: + break; + case 18: { + /* Shouldn't happen */ yypushback(1); + yybegin(INTAG); + } + case 196: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 197: + break; + case 45: { + addEndToken(INTERNAL_CSS); + return firstToken; + } + case 198: + break; + case 109: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 199: + break; + case 50: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_CHAR_LITERAL); + } + case 200: + break; + case 53: { + addToken(Token.RESERVED_WORD); + } + case 201: + break; + case 12: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE); + } + case 202: + break; + case 14: { + yybegin(YYINITIAL); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 203: + break; + case 47: { + addToken(Token.DATA_TYPE); + } + case 204: + break; + case 33: { + addToken(Token.SEPARATOR); + } + case 205: + break; + case 93: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + zzMarkedPos -= (count - 2); // yypushback(count-2); + yybegin(INTAG_CHECK_TAG_NAME); + } + case 206: + break; + case 61: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); + return firstToken; + } + case 207: + break; + case 59: { + /* End of a function */ addToken(Token.SEPARATOR); + } + case 208: + break; + case 19: { + addToken(Token.MARKUP_TAG_NAME); + } + case 209: + break; + case 11: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 210: + break; + case 78: { + start = zzMarkedPos - 2; + yybegin(JS_EOL_COMMENT); + } + case 211: + break; + case 38: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_IN_JS_STRING_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_STRING_INVALID); + } + return firstToken; + } + case 212: + break; + case 81: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 213: + break; + case 16: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE); + } + case 214: + break; + case 95: { + boolean highlightedAsRegex = false; + if (firstToken == null) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } else { + // If this is *likely* to be a regex, based on + // the previous token, highlight it as such. + Token t = firstToken.getLastNonCommentNonWhitespaceToken(); + if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } + } + // If it doesn't *appear* to be a regex, highlight it as + // individual tokens. + if (!highlightedAsRegex) { + int temp = zzStartRead + 1; + addToken(zzStartRead, zzStartRead, Token.OPERATOR); + zzStartRead = zzCurrentPos = zzMarkedPos = temp; + } + } + case 215: + break; + case 13: { + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 216: + break; + case 66: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 217: + break; + case 32: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 218: + break; + case 74: { + start = zzMarkedPos - 2; + yybegin(DTD); + } + case 219: + break; + case 21: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE_SCRIPT); + } + case 220: + break; + case 43: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 221: + break; + case 71: { // TODO: This isn't right. The expression and its + // depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 222: + break; + case 48: { + /* Unknown pseudo class */ addToken(Token.DATA_TYPE); + } + case 223: + break; + case 1: {} + case 224: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case INATTR_SINGLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT); return firstToken; - } - case 123: break; - case 5: - { addToken(Token.WHITESPACE); - } - case 124: break; - case 107: - { addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-6,zzMarkedPos-1, Token.MARKUP_TAG_NAME); - start = zzMarkedPos; yybegin(INTAG_SCRIPT); - } - case 125: break; - case 89: - { addToken(Token.REGEX); - } - case 126: break; - case 42: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 127: break; - case 111: - { int temp = zzStartRead; - addToken(start,zzStartRead-1, Token.COMMENT_EOL); - yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(temp,temp+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 128: break; - case 102: - { addToken(Token.FUNCTION); - } - case 129: break; - case 8: - { addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 130: break; - case 36: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 131: break; - case 46: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_STRING); - } - case 132: break; - case 91: - { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - start = zzMarkedPos-2; - if (varDepths==null) { - varDepths = new Stack(); - } - else { - varDepths.clear(); - } - varDepths.push(Boolean.TRUE); - yybegin(JS_TEMPLATE_LITERAL_EXPR); - } - case 133: break; - case 72: - { if (!varDepths.empty()) { - varDepths.pop(); - if (varDepths.empty()) { - addToken(start,zzStartRead, Token.VARIABLE); - start = zzMarkedPos; - yybegin(JS_TEMPLATE_LITERAL); - } } - } - case 134: break; - case 67: - { if (validJSString) { - addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + case 820: + break; + case JS_CHAR: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 135: break; - case 69: - { /* Skip valid '$' that is not part of template literal expression start */ - } - case 136: break; - case 20: - { yybegin(INTAG); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 137: break; - case 25: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE_STYLE); - } - case 138: break; - case 35: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_TEMPLATE_LITERAL); - } - case 139: break; - case 83: - { /* Skip all escaped chars. */ - } - case 140: break; - case 77: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(YYINITIAL); - } - case 141: break; - case 28: - { yybegin(INTAG_STYLE); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 142: break; - case 101: - { if(JavaScriptTokenMaker.isJavaScriptCompatible("1.6")){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 143: break; - case 96: - { if(JavaScriptTokenMaker.isJavaScriptCompatible("1.7")){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 144: break; - case 56: - { /*System.out.println("css_value: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 145: break; - case 17: - { /* A non-recognized HTML tag name */ yypushback(yylength()); yybegin(INTAG); - } - case 146: break; - case 26: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(CSS, LANG_INDEX_CSS); - } - case 147: break; - case 65: - { addToken(start,zzStartRead, Token.LITERAL_CHAR); yybegin(cssPrevState); - } - case 148: break; - case 92: - { varDepths.push(Boolean.TRUE); - } - case 149: break; - case 27: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE_STYLE); - } - case 150: break; - case 7: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); return firstToken; - } - case 151: break; - case 85: - { /* Invalid latin-1 character \xXX */ validJSString = false; - } - case 152: break; - case 24: - { yybegin(INTAG_SCRIPT); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 153: break; - case 37: - { int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(JAVASCRIPT); - } - case 154: break; - case 99: - { addToken(Token.COMMENT_MULTILINE); - } - case 155: break; - case 75: - { start = zzMarkedPos-2; yybegin(PI); - } - case 156: break; - case 108: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-6,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 157: break; - case 51: - { /*System.out.println("css_property: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 158: break; - case 9: - { addToken(start,zzStartRead-1, Token.MARKUP_DTD); return firstToken; - } - case 159: break; - case 73: - { int count = yylength(); - addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - zzMarkedPos -= (count-1); //yypushback(count-1); - yybegin(INTAG_CHECK_TAG_NAME); - } - case 160: break; - case 63: - { /* Skip escaped chars. */ - } - case 161: break; - case 84: - { /* Invalid Unicode character \\uXXXX */ validJSString = false; - } - case 162: break; - case 105: - { addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-5,zzMarkedPos-1, Token.MARKUP_TAG_NAME); - start = zzMarkedPos; cssPrevState = zzLexicalState; yybegin(INTAG_STYLE); - } - case 163: break; - case 76: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.MARKUP_PROCESSING_INSTRUCTION); - } - case 164: break; - case 86: - { yybegin(JAVASCRIPT); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 165: break; - case 30: - { addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 166: break; - case 39: - { addToken(start,zzStartRead-1, Token.ERROR_CHAR); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 167: break; - case 15: - { addToken(Token.OPERATOR); - } - case 168: break; - case 58: - { addToken(Token.OPERATOR); yybegin(CSS_PROPERTY); - } - case 169: break; - case 97: - { start = zzMarkedPos-4; yybegin(COMMENT); - } - case 170: break; - case 94: - { yybegin(YYINITIAL); addToken(start,zzStartRead+2, Token.MARKUP_COMMENT); - } - case 171: break; - case 110: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - int temp = zzStartRead; - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); - addToken(temp,temp+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 172: break; - case 88: - { addToken(Token.VARIABLE); - } - case 173: break; - case 44: - { /*System.out.println("CSS: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 174: break; - case 70: - { int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(JAVASCRIPT); - } - case 175: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 176: break; - case 103: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 177: break; - case 22: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(JAVASCRIPT, LANG_INDEX_JS); - } - case 178: break; - case 104: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 179: break; - case 54: - { addToken(Token.SEPARATOR); yybegin(CSS); - } - case 180: break; - case 31: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_STRING); - } - case 181: break; - case 62: - { addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(cssPrevState); - } - case 182: break; - case 52: - { addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 183: break; - case 68: - { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + } + case 821: + break; + case CSS_STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 184: break; - case 41: - { int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; addToken(start,zzStartRead, type); yybegin(JAVASCRIPT); - } - case 185: break; - case 34: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_CHAR); - } - case 186: break; - case 79: - { start = zzMarkedPos-2; yybegin(JS_MLC); - } - case 187: break; - case 82: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 188: break; - case 60: - { int temp = zzMarkedPos - 2; - addToken(zzStartRead, temp, Token.FUNCTION); - addToken(zzMarkedPos-1, zzMarkedPos-1, Token.SEPARATOR); - zzStartRead = zzCurrentPos = zzMarkedPos; - } - case 189: break; - case 112: - { addToken(Token.ANNOTATION); - } - case 190: break; - case 29: - { addToken(Token.ERROR_IDENTIFIER); - } - case 191: break; - case 57: - { addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 192: break; - case 98: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 193: break; - case 6: - { addToken(Token.MARKUP_ENTITY_REFERENCE); - } - case 194: break; - case 100: - { addToken(Token.LITERAL_BOOLEAN); - } - case 195: break; - case 18: - { /* Shouldn't happen */ yypushback(1); yybegin(INTAG); - } - case 196: break; - case 3: - { addNullToken(); return firstToken; - } - case 197: break; - case 45: - { addEndToken(INTERNAL_CSS); return firstToken; - } - case 198: break; - case 109: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 199: break; - case 50: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_CHAR_LITERAL); - } - case 200: break; - case 53: - { addToken(Token.RESERVED_WORD); - } - case 201: break; - case 12: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE); - } - case 202: break; - case 14: - { yybegin(YYINITIAL); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 203: break; - case 47: - { addToken(Token.DATA_TYPE); - } - case 204: break; - case 33: - { addToken(Token.SEPARATOR); - } - case 205: break; - case 93: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - zzMarkedPos -= (count-2); //yypushback(count-2); - yybegin(INTAG_CHECK_TAG_NAME); - } - case 206: break; - case 61: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 207: break; - case 59: - { /* End of a function */ addToken(Token.SEPARATOR); - } - case 208: break; - case 19: - { addToken(Token.MARKUP_TAG_NAME); - } - case 209: break; - case 11: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 210: break; - case 78: - { start = zzMarkedPos-2; yybegin(JS_EOL_COMMENT); - } - case 211: break; - case 38: - { /* Line ending in '\' => continue to next line. */ + } + case 822: + break; + case JS_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 823: + break; + case CSS_CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 824: + break; + case INTAG_SCRIPT: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG_SCRIPT); + return firstToken; + } + case 825: + break; + case JS_TEMPLATE_LITERAL_EXPR: { + // TODO: This isn't right. The expression and + // its depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 826: + break; + case CSS_PROPERTY: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 827: + break; + case CSS_C_STYLE_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 828: + break; + case CSS: { + addEndToken(INTERNAL_CSS); + return firstToken; + } + case 829: + break; + case CSS_VALUE: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 830: + break; + case COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + return firstToken; + } + case 831: + break; + case INATTR_DOUBLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT); + return firstToken; + } + case 832: + break; + case PI: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 833: + break; + case JAVASCRIPT: { + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 834: + break; + case INTAG: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG); + return firstToken; + } + case 835: + break; + case INTAG_CHECK_TAG_NAME: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG); + return firstToken; + } + case 836: + break; + case INATTR_SINGLE_STYLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_STYLE); + return firstToken; + } + case 837: + break; + case DTD: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + return firstToken; + } + case 838: + break; + case JS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 839: + break; + case INATTR_DOUBLE_STYLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_STYLE); + return firstToken; + } + case 840: + break; + case INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE); + return firstToken; + } + case 841: + break; + case JS_TEMPLATE_LITERAL: { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - addEndToken(INTERNAL_IN_JS_STRING_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_STRING_INVALID); - } - return firstToken; - } - case 212: break; - case 81: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 213: break; - case 16: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE); - } - case 214: break; - case 95: - { boolean highlightedAsRegex = false; - if (firstToken==null) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - else { - // If this is *likely* to be a regex, based on - // the previous token, highlight it as such. - Token t = firstToken.getLastNonCommentNonWhitespaceToken(); - if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - } - // If it doesn't *appear* to be a regex, highlight it as - // individual tokens. - if (!highlightedAsRegex) { - int temp = zzStartRead + 1; - addToken(zzStartRead, zzStartRead, Token.OPERATOR); - zzStartRead = zzCurrentPos = zzMarkedPos = temp; - } - } - case 215: break; - case 13: - { addToken(Token.MARKUP_TAG_DELIMITER); - } - case 216: break; - case 66: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 217: break; - case 32: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 218: break; - case 74: - { start = zzMarkedPos-2; yybegin(DTD); - } - case 219: break; - case 21: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE_SCRIPT); - } - case 220: break; - case 43: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 221: break; - case 71: - { // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 222: break; - case 48: - { /* Unknown pseudo class */ addToken(Token.DATA_TYPE); - } - case 223: break; - case 1: - { - } - case 224: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case INATTR_SINGLE_SCRIPT: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT); return firstToken; - } - case 820: break; - case JS_CHAR: { - addToken(start,zzStartRead-1, Token.ERROR_CHAR); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 821: break; - case CSS_STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 822: break; - case JS_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 823: break; - case CSS_CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 824: break; - case INTAG_SCRIPT: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG_SCRIPT); return firstToken; - } - case 825: break; - case JS_TEMPLATE_LITERAL_EXPR: { - // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 826: break; - case CSS_PROPERTY: { - addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 827: break; - case CSS_C_STYLE_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 828: break; - case CSS: { - addEndToken(INTERNAL_CSS); return firstToken; - } - case 829: break; - case CSS_VALUE: { - addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 830: break; - case COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); return firstToken; - } - case 831: break; - case INATTR_DOUBLE_SCRIPT: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT); return firstToken; - } - case 832: break; - case PI: { - addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 833: break; - case JAVASCRIPT: { - addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 834: break; - case INTAG: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG); return firstToken; - } - case 835: break; - case INTAG_CHECK_TAG_NAME: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG); return firstToken; - } - case 836: break; - case INATTR_SINGLE_STYLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_STYLE); return firstToken; - } - case 837: break; - case DTD: { - addToken(start,zzStartRead-1, Token.MARKUP_DTD); return firstToken; - } - case 838: break; - case JS_EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 839: break; - case INATTR_DOUBLE_STYLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_STYLE); return firstToken; - } - case 840: break; - case INATTR_SINGLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE); return firstToken; - } - case 841: break; - case JS_TEMPLATE_LITERAL: { - if (validJSString) { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); } return firstToken; - } - case 842: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 843: break; - case INATTR_DOUBLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE); return firstToken; - } - case 844: break; - case JS_STRING: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 845: break; - case INTAG_STYLE: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG_STYLE); return firstToken; - } - case 846: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 842: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 843: + break; + case INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE); + return firstToken; + } + case 844: + break; + case JS_STRING: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 845: + break; + case INTAG_STYLE: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG_STYLE); + return firstToken; + } + case 846: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/HostsTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/HostsTokenMaker.java index 6ef4239..051079c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/HostsTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/HostsTokenMaker.java @@ -1,311 +1,284 @@ /* The following code was generated by JFlex 1.4.1 on 10/17/15 12:49 AM */ - /* * 10/17/2015 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for hosts files.

+ * Scanner for hosts files. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated HostsTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated HostsTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class HostsTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 1; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\2\1\1\25\0\1\2\1\4\1\0\1\3\1\6\1\4"+ - "\7\4\1\4\1\21\1\5\12\6\1\17\1\4\1\0\1\4\1\0"+ - "\2\4\32\6\1\4\1\0\1\4\1\0\1\4\1\0\4\6\1\16"+ - "\1\13\1\6\1\7\1\14\2\6\1\15\3\6\1\11\2\6\1\12"+ - "\1\10\2\6\1\20\3\6\3\0\1\4\uff81\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 = - "\2\0\1\1\1\2\1\3\1\4\1\5\1\6\3\5"+ - "\12\0\1\7\2\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[24]; - 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\22\0\44\0\66\0\110\0\66\0\132\0\66"+ - "\0\154\0\176\0\220\0\242\0\264\0\306\0\330\0\352"+ - "\0\374\0\u010e\0\u0120\0\u0132\0\u0144\0\u0156\0\u0168\0\u0156"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[24]; - 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 = - "\1\3\1\4\1\5\1\6\16\3\1\7\1\10\5\7"+ - "\1\11\3\7\1\12\4\7\1\13\1\7\1\3\3\0"+ - "\16\3\24\0\1\5\17\0\1\7\1\0\5\7\1\0"+ - "\3\7\1\0\4\7\1\0\1\7\10\0\1\14\21\0"+ - "\1\15\3\0\1\16\25\0\1\17\11\0\1\20\22\0"+ - "\1\21\25\0\1\22\24\0\1\23\12\0\1\24\27\0"+ - "\1\25\20\0\1\21\24\0\1\26\12\0\1\21\4\0"+ - "\1\25\7\0\1\27\17\0\2\30\12\26\1\30\1\26"+ - "\1\30\5\0\1\26\14\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[378]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\1\1\1\11\1\1\1\11\1\1\1\11\3\1"+ - "\12\0\1\1\2\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[24]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 1; + public static final int YYINITIAL = 0; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\2\1\1\25\0\1\2\1\4\1\0\1\3\1\6\1\4" + + "\7\4\1\4\1\21\1\5\12\6\1\17\1\4\1\0\1\4\1\0" + "\2\4\32\6\1\4\1\0\1\4\1\0\1\4\1\0\4\6\1\16" + + "\1\13\1\6\1\7\1\14\2\6\1\15\3\6\1\11\2\6\1\12" + "\1\10\2\6\1\20\3\6\3\0\1\4\uff81\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 = "\2\0\1\1\1\2\1\3\1\4\1\5\1\6\3\5" + "\12\0\1\7\2\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[24]; + 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\22\0\44\0\66\0\110\0\66\0\132\0\66" + + "\0\154\0\176\0\220\0\242\0\264\0\306\0\330\0\352" + "\0\374\0\u010e\0\u0120\0\u0132\0\u0144\0\u0156\0\u0168\0\u0156"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[24]; + 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 = "\1\3\1\4\1\5\1\6\16\3\1\7\1\10\5\7" + "\1\11\3\7\1\12\4\7\1\13\1\7\1\3\3\0" + + "\16\3\24\0\1\5\17\0\1\7\1\0\5\7\1\0" + "\3\7\1\0\4\7\1\0\1\7\10\0\1\14\21\0" + "\1\15\3\0\1\16\25\0\1\17\11\0\1\20\22\0" + + "\1\21\25\0\1\22\24\0\1\23\12\0\1\24\27\0" + "\1\25\20\0\1\21\24\0\1\26\12\0\1\21\4\0" + + "\1\25\7\0\1\27\17\0\2\30\12\26\1\30\1\26" + "\1\30\5\0\1\26\14\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[378]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\1\1\1\11\1\1\1\11\1\1\1\11\3\1" + "\12\0\1\1\2\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[24]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Whether or not this is the first token on a line. */ private boolean first; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public HostsTokenMaker() { - } - - + public HostsTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -313,8 +286,7 @@ public class HostsTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * {@inheritDoc} */ @@ -322,30 +294,29 @@ public class HostsTokenMaker extends AbstractJFlexTokenMaker { public boolean getMarkOccurrencesOfTokenType(int type) { return type == Token.RESERVED_WORD; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; first = true; - // Start off in the proper state. int state = YYINITIAL; - s = text; try { yyreset(zzReader); @@ -355,21 +326,18 @@ public class HostsTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -378,7 +346,8 @@ public class HostsTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -387,293 +356,289 @@ public class HostsTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 HostsTokenMaker(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 HostsTokenMaker(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 < 94) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 2: { + addNullToken(); + return firstToken; + } + case 8: + break; + case 7: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 9: + break; + case 4: { + start = zzMarkedPos - 1; + yybegin(EOL_COMMENT); + } + case 10: + break; + case 3: { + addToken(Token.WHITESPACE); + } + case 11: + break; + case 6: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 12: + break; + case 1: { + addToken(first ? Token.RESERVED_WORD : Token.IDENTIFIER); + first = false; + } + case 13: + break; + case 5: {} + case 14: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 25: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 26: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 HostsTokenMaker(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 HostsTokenMaker(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 < 94) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 2: - { addNullToken(); return firstToken; - } - case 8: break; - case 7: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 9: break; - case 4: - { start = zzMarkedPos-1; yybegin(EOL_COMMENT); - } - case 10: break; - case 3: - { addToken(Token.WHITESPACE); - } - case 11: break; - case 6: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 12: break; - case 1: - { addToken(first ? Token.RESERVED_WORD : Token.IDENTIFIER); - first = false; - } - case 13: break; - case 5: - { - } - case 14: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 25: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 26: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/HtaccessTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/HtaccessTokenMaker.java index f43e76b..f375e83 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/HtaccessTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/HtaccessTokenMaker.java @@ -1,1067 +1,707 @@ /* The following code was generated by JFlex 1.4.1 on 7/14/13 10:47 PM */ - /* * 06/30/2013 - * * HtaccessTokenMaker.java - Token generator for .htaccess files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * Scanner for .htaccess files. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated HtaccessTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated HtaccessTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.7 * */ - public class HtaccessTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 1; - public static final int INTAG = 2; - public static final int INATTR_DOUBLE = 3; - public static final int YYINITIAL = 0; - public static final int INATTR_SINGLE = 4; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\5\1\7\1\0\1\3\23\0\1\5\1\14\1\12\1\10"+ - "\1\21\1\14\1\14\1\16\5\14\1\2\1\33\1\13\12\20\1\15"+ - "\1\14\1\4\1\53\1\6\2\14\1\34\1\41\1\35\1\40\1\31"+ - "\1\26\1\43\1\22\1\27\1\17\1\51\1\30\1\46\1\36\1\37"+ - "\1\24\1\50\1\44\1\25\1\23\1\45\1\47\1\32\1\52\1\42"+ - "\1\17\1\14\1\11\1\14\1\0\1\1\1\0\1\34\1\41\1\35"+ - "\1\40\1\31\1\55\1\43\1\54\1\27\1\17\1\51\1\30\1\46"+ - "\1\36\1\37\1\24\1\50\1\44\1\25\1\23\1\45\1\47\1\56"+ - "\1\52\1\42\1\17\3\0\1\14\uff81\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 = - "\3\0\2\1\1\2\1\3\1\2\1\3\1\4\1\5"+ - "\21\2\1\1\1\6\6\1\2\7\1\10\1\11\1\12"+ - "\1\13\1\1\1\14\1\1\1\15\1\0\2\16\44\2"+ - "\4\1\4\0\1\17\1\16\1\20\1\16\1\21\56\2"+ - "\4\1\4\0\62\2\1\22\13\2\3\1\1\23\2\0"+ - "\104\2\1\1\2\0\1\22\12\2\1\22\31\2\1\22"+ - "\146\2\1\22\60\2\1\22\33\2\1\22\47\2\1\22"+ - "\225\2\1\22\33\2\1\22\102\2\1\22\1\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[795]; - 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\57\0\136\0\215\0\274\0\353\0\u011a\0\u0149"+ - "\0\u0178\0\u01a7\0\u01a7\0\u01d6\0\u0205\0\u0234\0\u0263\0\u0292"+ - "\0\u02c1\0\u02f0\0\u031f\0\u034e\0\u037d\0\u03ac\0\u03db\0\u040a"+ - "\0\u0439\0\u0468\0\u0497\0\u04c6\0\u04f5\0\u01a7\0\u0524\0\u0553"+ - "\0\u0582\0\u05b1\0\u05e0\0\u060f\0\u063e\0\u066d\0\u01a7\0\u01a7"+ - "\0\u01a7\0\u01a7\0\u069c\0\u01a7\0\u06cb\0\u06fa\0\u0729\0\u0758"+ - "\0\u0787\0\u07b6\0\u07e5\0\u0814\0\u0843\0\u0872\0\u08a1\0\u08d0"+ - "\0\u08ff\0\u092e\0\u095d\0\u098c\0\u09bb\0\u09ea\0\u0a19\0\u0a48"+ - "\0\u0a77\0\u0aa6\0\u0ad5\0\u0b04\0\u0b33\0\u0b62\0\u0b91\0\u0bc0"+ - "\0\u0bef\0\u0c1e\0\u0c4d\0\u0c7c\0\u0cab\0\u0cda\0\u0d09\0\u0d38"+ - "\0\u0d67\0\u0d96\0\u0dc5\0\u0df4\0\u0e23\0\u0e52\0\u0e81\0\u0eb0"+ - "\0\u0edf\0\u0f0e\0\u0f3d\0\u0f6c\0\u0f9b\0\u0fca\0\u0ff9\0\u01a7"+ - "\0\u1028\0\u01a7\0\u1057\0\u1086\0\u10b5\0\u10e4\0\u1113\0\u1142"+ - "\0\u1171\0\u11a0\0\u11cf\0\u11fe\0\u122d\0\u125c\0\u128b\0\u12ba"+ - "\0\u12e9\0\u1318\0\u1347\0\u1376\0\u13a5\0\u13d4\0\u1403\0\u1432"+ - "\0\u1461\0\u1490\0\u14bf\0\u14ee\0\u151d\0\u154c\0\u157b\0\u15aa"+ - "\0\u15d9\0\u1608\0\u1637\0\u1666\0\u1695\0\u16c4\0\u16f3\0\u1722"+ - "\0\u1751\0\u1780\0\u17af\0\u17de\0\u180d\0\u183c\0\u186b\0\u189a"+ - "\0\u18c9\0\u18f8\0\u1927\0\u1956\0\u1985\0\u19b4\0\u19e3\0\u1a12"+ - "\0\u1a41\0\u1a70\0\u1a9f\0\u1ace\0\u1afd\0\u1b2c\0\u1b5b\0\u1b8a"+ - "\0\u1bb9\0\u1be8\0\u1c17\0\u1c46\0\u1c75\0\u1ca4\0\u1cd3\0\u1d02"+ - "\0\u1d31\0\u1d60\0\u1d8f\0\u1dbe\0\u1ded\0\u1e1c\0\u1e4b\0\u1e7a"+ - "\0\u1ea9\0\u1ed8\0\u1f07\0\u1f36\0\u1f65\0\u1f94\0\u1fc3\0\u1ff2"+ - "\0\u2021\0\u2050\0\u207f\0\u20ae\0\u20dd\0\u210c\0\u213b\0\u216a"+ - "\0\u2199\0\u21c8\0\u21f7\0\u2226\0\u2255\0\u2284\0\u22b3\0\u22e2"+ - "\0\u2311\0\u2340\0\353\0\u236f\0\u239e\0\u23cd\0\u23fc\0\u242b"+ - "\0\u245a\0\u2489\0\u24b8\0\u24e7\0\u2516\0\u2545\0\u2574\0\u25a3"+ - "\0\u25d2\0\u2601\0\u2630\0\u265f\0\u268e\0\u26bd\0\u26ec\0\u271b"+ - "\0\u274a\0\u2779\0\u27a8\0\u27d7\0\u2806\0\u2835\0\u2864\0\u2893"+ - "\0\u28c2\0\u28f1\0\u2920\0\u294f\0\u297e\0\u29ad\0\u29dc\0\u2a0b"+ - "\0\u2a3a\0\u2a69\0\u2a98\0\u2ac7\0\u2af6\0\u2b25\0\u2b54\0\u2b83"+ - "\0\u2bb2\0\u2be1\0\u2c10\0\u2c3f\0\u2c6e\0\u2c9d\0\u2ccc\0\u2cfb"+ - "\0\u2d2a\0\u2d59\0\u2d88\0\u2db7\0\u2de6\0\u2e15\0\u2e44\0\u2e73"+ - "\0\u2ea2\0\u2ed1\0\u2f00\0\u2f2f\0\u2f5e\0\u2f8d\0\u2fbc\0\u2feb"+ - "\0\u301a\0\u3049\0\u3078\0\u30a7\0\u30d6\0\u3105\0\u3134\0\u3163"+ - "\0\u3192\0\u31c1\0\u31f0\0\u321f\0\u324e\0\u327d\0\u32ac\0\u32db"+ - "\0\u330a\0\u2601\0\u3339\0\u3368\0\u3397\0\u33c6\0\u33f5\0\u3424"+ - "\0\u3453\0\u3482\0\u34b1\0\u34e0\0\u350f\0\u353e\0\u356d\0\u359c"+ - "\0\u35cb\0\u35fa\0\u3629\0\u3658\0\u3687\0\u36b6\0\u36e5\0\u3714"+ - "\0\u3743\0\u3772\0\u37a1\0\u37d0\0\u37ff\0\u382e\0\u385d\0\u388c"+ - "\0\u38bb\0\u38ea\0\u3919\0\u3948\0\u3977\0\u39a6\0\u39d5\0\u3a04"+ - "\0\u3a33\0\u3a62\0\u3a91\0\u3ac0\0\u3aef\0\u3b1e\0\u3b4d\0\u3b7c"+ - "\0\u3bab\0\u3bda\0\u3c09\0\u3c38\0\u3c67\0\u3c96\0\u3cc5\0\u3cf4"+ - "\0\u3d23\0\u3d52\0\u3d81\0\u3db0\0\u3ddf\0\u3e0e\0\u3e3d\0\u3e6c"+ - "\0\u3368\0\u3e9b\0\u3eca\0\u3ef9\0\u3f28\0\u3f57\0\u3f86\0\u3fb5"+ - "\0\u3fe4\0\u4013\0\u4042\0\u4071\0\u40a0\0\u40cf\0\u40fe\0\u412d"+ - "\0\u415c\0\u418b\0\u41ba\0\u41e9\0\u4218\0\u4247\0\u4276\0\u42a5"+ - "\0\u42d4\0\u4303\0\u4332\0\u4361\0\u4390\0\u43bf\0\u43ee\0\u441d"+ - "\0\u444c\0\u447b\0\u44aa\0\u44d9\0\u4508\0\u4537\0\u4566\0\u4595"+ - "\0\u45c4\0\u45f3\0\u4622\0\u4651\0\u4680\0\u46af\0\u46de\0\u470d"+ - "\0\u473c\0\u476b\0\u479a\0\u47c9\0\u47f8\0\u4827\0\u4856\0\u4885"+ - "\0\u48b4\0\u48e3\0\u4912\0\u4941\0\u4970\0\u499f\0\u49ce\0\u49fd"+ - "\0\u4a2c\0\u4a5b\0\u4a8a\0\u4ab9\0\u4ae8\0\u4b17\0\u4b46\0\u4b75"+ - "\0\u4ba4\0\u4bd3\0\u4c02\0\u4c31\0\u4c60\0\u4c8f\0\u4cbe\0\u4ced"+ - "\0\u4d1c\0\u4d4b\0\u4d7a\0\u4da9\0\u4dd8\0\u4e07\0\u4e36\0\u4e65"+ - "\0\u4e94\0\u4ec3\0\u4ef2\0\u4f21\0\u4f50\0\u4f7f\0\u4fae\0\u4fdd"+ - "\0\u500c\0\u503b\0\u506a\0\u5099\0\u50c8\0\u50f7\0\u5126\0\u5155"+ - "\0\u5184\0\u51b3\0\u51e2\0\u5211\0\u5240\0\u526f\0\u529e\0\u52cd"+ - "\0\u52fc\0\u532b\0\u535a\0\u5389\0\u53b8\0\u53e7\0\u5416\0\u5445"+ - "\0\u5474\0\u54a3\0\u54d2\0\u5501\0\u5530\0\u555f\0\u558e\0\u55bd"+ - "\0\u55ec\0\u561b\0\u564a\0\u5679\0\u56a8\0\u56d7\0\u5706\0\u5735"+ - "\0\u5764\0\u5793\0\u57c2\0\u57f1\0\u5820\0\u584f\0\u587e\0\u58ad"+ - "\0\u58dc\0\u590b\0\u593a\0\u5969\0\u5998\0\u59c7\0\u59f6\0\u5a25"+ - "\0\u5a54\0\u5a83\0\u5ab2\0\u5ae1\0\u5b10\0\u5b3f\0\u5b6e\0\u5b9d"+ - "\0\u5bcc\0\u5bfb\0\u5c2a\0\u5c59\0\u5c88\0\u5cb7\0\u5ce6\0\u5d15"+ - "\0\u5d44\0\u5d73\0\u5da2\0\u5dd1\0\u5e00\0\u5e2f\0\u5e5e\0\u5e8d"+ - "\0\u5ebc\0\u5eeb\0\u5f1a\0\u5f49\0\u5f78\0\u5fa7\0\u5fd6\0\u6005"+ - "\0\u6034\0\u6063\0\u6092\0\u60c1\0\u60f0\0\u611f\0\u614e\0\u617d"+ - "\0\u61ac\0\u61db\0\u620a\0\u6239\0\u6268\0\u6297\0\u62c6\0\u62f5"+ - "\0\u6324\0\u6353\0\u6382\0\u63b1\0\u63e0\0\u640f\0\u643e\0\u646d"+ - "\0\u649c\0\u64cb\0\u64fa\0\u6529\0\u6558\0\u6587\0\u65b6\0\u65e5"+ - "\0\u6614\0\u6643\0\u6672\0\u66a1\0\u66d0\0\u66ff\0\u672e\0\u675d"+ - "\0\u678c\0\u67bb\0\u67ea\0\u6819\0\u6848\0\u6877\0\u68a6\0\u68d5"+ - "\0\u6904\0\u6933\0\u6962\0\u6991\0\u69c0\0\u69ef\0\u6a1e\0\u6a4d"+ - "\0\u6a7c\0\u6aab\0\u6ada\0\u6b09\0\u6b38\0\u6b67\0\u6b96\0\u6bc5"+ - "\0\u6bf4\0\u6c23\0\u6c52\0\u6c81\0\u6cb0\0\u6cdf\0\u6d0e\0\u6d3d"+ - "\0\u6d6c\0\u6d9b\0\u6dca\0\u6df9\0\u6e28\0\u6e57\0\u6e86\0\u6eb5"+ - "\0\u6ee4\0\u6f13\0\u6f42\0\u6f71\0\u6fa0\0\u6fcf\0\u6ffe\0\u702d"+ - "\0\u705c\0\u708b\0\u70ba\0\u70e9\0\u7118\0\u7147\0\u7176\0\u71a5"+ - "\0\u71d4\0\u7203\0\u7232\0\u7261\0\u7290\0\u72bf\0\u72ee\0\u731d"+ - "\0\u734c\0\u737b\0\u73aa\0\u73d9\0\u7408\0\u7437\0\u7466\0\u7495"+ - "\0\u74c4\0\u74f3\0\u7522\0\u7551\0\u7580\0\u75af\0\u75de\0\u760d"+ - "\0\u763c\0\u766b\0\u769a\0\u76c9\0\u76f8\0\u7727\0\u7756\0\u7785"+ - "\0\u77b4\0\u77e3\0\u7812\0\u7841\0\u7870\0\u789f\0\u78ce\0\u78fd"+ - "\0\u792c\0\u795b\0\u798a\0\u79b9\0\u79e8\0\u7a17\0\u7a46\0\u7a75"+ - "\0\u7aa4\0\u7ad3\0\u7b02\0\u7b31\0\u7b60\0\u7b8f\0\u7bbe\0\u7bed"+ - "\0\u7c1c\0\u7c4b\0\u7c7a\0\u7ca9\0\u7cd8\0\u7d07\0\u7d36\0\u7d65"+ - "\0\u7d94\0\u7dc3\0\u7df2\0\u7e21\0\u7e50\0\u7e7f\0\u7eae\0\u7edd"+ - "\0\u7f0c\0\u7f3b\0\u7f6a\0\u7f99\0\u7fc8\0\u7ff7\0\u8026\0\u8055"+ - "\0\u8084\0\u80b3\0\u80e2\0\u8111\0\u8140\0\u816f\0\u819e\0\u81cd"+ - "\0\u81fc\0\u822b\0\u825a\0\u8289\0\u82b8\0\u82e7\0\u8316\0\u8345"+ - "\0\u8374\0\u83a3\0\u83d2\0\u8401\0\u8430\0\u845f\0\u848e\0\u84bd"+ - "\0\u84ec\0\u851b\0\u854a\0\u8579\0\u85a8\0\u85d7\0\u8606\0\u8635"+ - "\0\u8664\0\u8693\0\u86c2\0\u86f1\0\u8720\0\u874f\0\u877e\0\u87ad"+ - "\0\u87dc\0\u880b\0\u883a\0\u8869\0\u8898\0\u88c7\0\u88f6\0\u8925"+ - "\0\u8954\0\u8983\0\u89b2\0\u89e1\0\u8a10\0\u8a3f\0\u8a6e\0\u8a9d"+ - "\0\u8acc\0\u8afb\0\u8b2a\0\u8b59\0\u8b88\0\u8bb7\0\u8be6\0\u8c15"+ - "\0\u8c44\0\u8c73\0\u8ca2\0\u8cd1\0\u8d00\0\u8d2f\0\u8d5e\0\u8d8d"+ - "\0\u8dbc\0\u8deb\0\u8e1a\0\u8e49\0\u8e78\0\u8ea7\0\u8ed6\0\u8f05"+ - "\0\u8f34\0\u8b2a\0\u8f63"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[795]; - 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 = - "\3\6\1\7\1\10\1\11\1\6\1\12\1\13\1\6"+ - "\1\14\7\6\1\15\1\6\1\16\1\17\1\20\1\21"+ - "\1\22\1\23\2\6\1\24\1\25\1\6\1\26\1\27"+ - "\1\30\2\6\1\31\1\32\1\33\3\6\1\34\1\6"+ - "\1\15\1\20\1\6\7\35\1\36\12\35\1\37\3\35"+ - "\1\40\3\35\1\41\21\35\1\42\1\43\1\44\3\45"+ - "\1\46\1\45\1\11\1\47\1\0\2\45\1\50\3\45"+ - "\1\51\34\45\1\52\3\45\12\53\1\54\44\53\16\55"+ - "\1\54\40\55\4\6\2\0\1\6\2\0\51\6\1\7"+ - "\1\0\1\11\1\6\2\0\46\6\1\0\1\56\11\0"+ - "\1\57\1\0\1\56\1\0\1\56\2\0\11\56\1\0"+ - "\17\56\1\0\3\56\3\0\1\11\1\0\1\11\130\0"+ - "\4\14\2\60\1\14\1\61\1\60\1\62\1\6\44\14"+ - "\4\6\2\0\1\6\2\0\20\6\1\63\31\6\2\0"+ - "\1\6\2\0\23\6\1\64\26\6\2\0\1\6\2\0"+ - "\14\6\1\65\3\6\1\66\2\6\1\67\1\70\25\6"+ - "\2\0\1\6\2\0\16\6\1\71\7\6\1\72\23\6"+ - "\2\0\1\6\2\0\14\6\1\73\10\6\1\74\7\6"+ - "\1\75\14\6\2\0\1\6\2\0\16\6\1\76\4\6"+ - "\1\77\26\6\2\0\1\6\2\0\25\6\1\100\5\6"+ - "\1\101\5\6\1\102\10\6\2\0\1\6\2\0\17\6"+ - "\1\103\4\6\1\104\1\105\1\6\1\106\4\6\1\107"+ - "\15\6\2\0\1\6\2\0\11\6\1\110\14\6\1\111"+ - "\3\6\1\112\10\6\1\110\6\6\2\0\1\6\2\0"+ - "\13\6\1\113\17\6\1\114\16\6\2\0\1\6\2\0"+ - "\16\6\1\115\1\6\1\116\31\6\2\0\1\6\2\0"+ - "\33\6\1\117\16\6\2\0\1\6\2\0\17\6\1\120"+ - "\1\121\31\6\2\0\1\6\2\0\25\6\1\122\24\6"+ - "\2\0\1\6\2\0\20\6\1\123\13\6\1\124\15\6"+ - "\2\0\1\6\2\0\30\6\1\125\15\6\7\35\1\0"+ - "\44\35\3\0\7\35\1\0\13\35\1\126\30\35\3\0"+ - "\7\35\1\0\13\35\1\127\3\35\1\130\24\35\3\0"+ - "\7\35\1\0\22\35\1\131\21\35\2\0\1\132\23\0"+ - "\1\133\56\0\1\134\3\0\1\135\61\0\1\132\23\0"+ - "\1\132\5\45\3\0\2\45\1\0\3\45\1\0\34\45"+ - "\1\0\6\45\1\46\1\45\1\11\2\0\2\45\1\0"+ - "\3\45\1\0\34\45\1\0\3\45\12\53\1\0\44\53"+ - "\16\55\1\0\40\55\1\0\2\56\12\0\1\56\1\0"+ - "\2\56\1\0\31\56\1\0\3\56\1\0\1\136\13\0"+ - "\1\136\1\0\1\136\2\0\11\136\1\0\17\136\1\0"+ - "\3\136\7\60\1\61\1\60\1\137\1\140\44\60\11\61"+ - "\1\141\1\142\44\61\4\14\2\60\1\14\1\0\1\60"+ - "\46\14\4\6\2\0\1\6\2\0\23\6\1\143\26\6"+ - "\2\0\1\6\2\0\14\6\1\144\35\6\2\0\1\6"+ - "\2\0\16\6\1\145\1\146\32\6\2\0\1\6\2\0"+ - "\12\6\1\147\20\6\1\150\16\6\2\0\1\6\2\0"+ - "\12\6\1\151\37\6\2\0\1\6\2\0\33\6\1\152"+ - "\16\6\2\0\1\6\2\0\17\6\1\153\32\6\2\0"+ - "\1\6\2\0\33\6\1\154\16\6\2\0\1\6\2\0"+ - "\23\6\1\155\26\6\2\0\1\6\2\0\27\6\1\156"+ - "\22\6\2\0\1\6\2\0\23\6\1\157\26\6\2\0"+ - "\1\6\2\0\35\6\1\160\14\6\2\0\1\6\2\0"+ - "\25\6\1\161\24\6\2\0\1\6\2\0\23\6\1\162"+ - "\26\6\2\0\1\6\2\0\33\6\1\163\16\6\2\0"+ - "\1\6\2\0\13\6\1\164\7\6\1\165\26\6\2\0"+ - "\1\6\2\0\17\6\1\166\32\6\2\0\1\6\2\0"+ - "\12\6\1\167\11\6\1\170\25\6\2\0\1\6\2\0"+ - "\26\6\1\171\23\6\2\0\1\6\2\0\27\6\1\172"+ - "\22\6\2\0\1\6\2\0\12\6\1\173\37\6\2\0"+ - "\1\6\2\0\20\6\1\174\2\6\1\175\26\6\2\0"+ - "\1\6\2\0\25\6\1\176\1\177\23\6\2\0\1\6"+ - "\2\0\16\6\1\200\33\6\2\0\1\6\2\0\12\6"+ - "\1\201\37\6\2\0\1\6\2\0\27\6\1\202\22\6"+ - "\2\0\1\6\2\0\33\6\1\203\16\6\2\0\1\6"+ - "\2\0\15\6\1\204\7\6\1\205\16\6\1\204\5\6"+ - "\2\0\1\6\2\0\26\6\1\206\23\6\2\0\1\6"+ - "\2\0\16\6\1\207\33\6\2\0\1\6\2\0\21\6"+ - "\1\210\1\6\1\211\3\6\1\212\5\6\1\213\1\6"+ - "\1\214\5\6\1\210\4\6\2\0\1\6\2\0\14\6"+ - "\1\215\35\6\2\0\1\6\2\0\12\6\1\216\37\6"+ - "\2\0\1\6\2\0\17\6\1\217\32\6\2\0\1\6"+ - "\2\0\16\6\1\220\27\6\7\35\1\0\13\35\1\221"+ - "\30\35\3\0\7\35\1\0\14\35\1\222\27\35\3\0"+ - "\7\35\1\0\20\35\1\223\23\35\3\0\7\35\1\0"+ - "\22\35\1\224\21\35\2\0\1\225\32\0\1\225\23\0"+ - "\1\225\23\0\1\226\57\0\1\227\62\0\1\230\27\0"+ - "\2\136\12\0\1\136\1\0\2\136\1\0\31\136\1\0"+ - "\3\136\7\60\1\0\47\60\7\61\1\0\47\61\4\6"+ - "\2\0\1\6\2\0\27\6\1\231\22\6\2\0\1\6"+ - "\2\0\14\6\1\232\35\6\2\0\1\6\2\0\12\6"+ - "\1\233\5\6\1\234\31\6\2\0\1\6\2\0\13\6"+ - "\1\235\10\6\1\236\1\6\1\237\4\6\1\240\1\241"+ - "\1\6\1\242\13\6\2\0\1\6\2\0\11\6\1\243"+ - "\4\6\1\244\1\6\1\245\5\6\1\246\14\6\1\243"+ - "\6\6\2\0\1\6\2\0\36\6\1\247\13\6\2\0"+ - "\1\6\2\0\16\6\1\250\33\6\2\0\1\6\2\0"+ - "\16\6\1\251\33\6\2\0\1\6\2\0\20\6\1\252"+ - "\31\6\2\0\1\6\2\0\24\6\1\253\25\6\2\0"+ - "\1\6\2\0\13\6\1\254\36\6\2\0\1\6\2\0"+ - "\20\6\1\255\31\6\2\0\1\6\2\0\13\6\1\256"+ - "\36\6\2\0\1\6\2\0\16\6\1\257\33\6\2\0"+ - "\1\6\2\0\32\6\1\260\17\6\2\0\1\6\2\0"+ - "\30\6\1\261\21\6\2\0\1\6\2\0\26\6\1\262"+ - "\23\6\2\0\1\6\2\0\16\6\1\263\33\6\2\0"+ - "\1\6\2\0\35\6\1\264\14\6\2\0\1\6\2\0"+ - "\26\6\1\265\23\6\2\0\1\6\2\0\16\6\1\266"+ - "\33\6\2\0\1\6\2\0\20\6\1\267\31\6\2\0"+ - "\1\6\2\0\25\6\1\270\24\6\2\0\1\6\2\0"+ - "\11\6\1\243\1\271\3\6\1\272\1\273\1\274\2\6"+ - "\1\275\1\276\1\6\1\277\1\300\13\6\1\243\6\6"+ - "\2\0\1\6\2\0\11\6\1\301\31\6\1\301\6\6"+ - "\2\0\1\6\2\0\24\6\1\302\25\6\2\0\1\6"+ - "\2\0\33\6\1\303\16\6\2\0\1\6\2\0\12\6"+ - "\1\304\37\6\2\0\1\6\2\0\40\6\1\305\11\6"+ - "\2\0\1\6\2\0\35\6\1\306\14\6\2\0\1\6"+ - "\2\0\16\6\1\307\33\6\2\0\1\6\2\0\20\6"+ - "\1\310\31\6\2\0\1\6\2\0\20\6\1\311\31\6"+ - "\2\0\1\6\2\0\23\6\1\312\26\6\2\0\1\6"+ - "\2\0\31\6\1\313\20\6\2\0\1\6\2\0\21\6"+ - "\1\314\23\6\1\314\4\6\2\0\1\6\2\0\35\6"+ - "\1\315\14\6\2\0\1\6\2\0\33\6\1\316\16\6"+ - "\2\0\1\6\2\0\27\6\1\317\22\6\2\0\1\6"+ - "\2\0\16\6\1\320\33\6\2\0\1\6\2\0\26\6"+ - "\1\321\23\6\2\0\1\6\2\0\34\6\1\322\15\6"+ - "\2\0\1\6\2\0\20\6\1\323\31\6\2\0\1\6"+ - "\2\0\23\6\1\324\26\6\2\0\1\6\2\0\12\6"+ - "\1\325\37\6\2\0\1\6\2\0\12\6\1\326\33\6"+ - "\7\35\1\0\14\35\1\327\27\35\3\0\7\35\1\0"+ - "\5\35\1\330\36\35\3\0\7\35\1\0\21\35\1\222"+ - "\22\35\3\0\7\35\1\0\23\35\1\331\20\35\36\0"+ - "\1\332\47\0\1\333\47\0\1\334\72\0\1\227\25\0"+ - "\4\6\2\0\1\6\2\0\20\6\1\335\31\6\2\0"+ - "\1\6\2\0\20\6\1\336\31\6\2\0\1\6\2\0"+ - "\16\6\1\337\33\6\2\0\1\6\2\0\33\6\1\340"+ - "\16\6\2\0\1\6\2\0\33\6\1\341\16\6\2\0"+ - "\1\6\2\0\16\6\1\342\33\6\2\0\1\6\2\0"+ - "\13\6\1\113\36\6\2\0\1\6\2\0\20\6\1\343"+ - "\31\6\2\0\1\6\2\0\14\6\1\344\35\6\2\0"+ - "\1\6\2\0\20\6\1\345\31\6\2\0\1\6\2\0"+ - "\23\6\1\346\26\6\2\0\1\6\2\0\25\6\1\347"+ - "\24\6\2\0\1\6\2\0\25\6\1\350\24\6\2\0"+ - "\1\6\2\0\34\6\1\351\15\6\2\0\1\6\2\0"+ - "\20\6\1\352\31\6\2\0\1\6\2\0\14\6\1\353"+ - "\35\6\2\0\1\6\2\0\13\6\1\354\36\6\2\0"+ - "\1\6\2\0\20\6\1\355\31\6\2\0\1\6\2\0"+ - "\20\6\1\356\31\6\2\0\1\6\2\0\16\6\1\357"+ - "\33\6\2\0\1\6\2\0\41\6\1\360\10\6\2\0"+ - "\1\6\2\0\27\6\1\361\1\362\4\6\1\363\14\6"+ - "\2\0\1\6\2\0\12\6\1\364\37\6\2\0\1\6"+ - "\2\0\34\6\1\365\15\6\2\0\1\6\2\0\17\6"+ - "\1\366\32\6\2\0\1\6\2\0\33\6\1\367\16\6"+ - "\2\0\1\6\2\0\33\6\1\370\16\6\2\0\1\6"+ - "\2\0\13\6\1\371\36\6\2\0\1\6\2\0\21\6"+ - "\1\313\23\6\1\313\4\6\2\0\1\6\2\0\26\6"+ - "\1\372\23\6\2\0\1\6\2\0\13\6\1\373\36\6"+ - "\2\0\1\6\2\0\31\6\1\374\20\6\2\0\1\6"+ - "\2\0\31\6\1\375\20\6\2\0\1\6\2\0\24\6"+ - "\1\376\1\347\24\6\2\0\1\6\2\0\23\6\1\377"+ - "\26\6\2\0\1\6\2\0\25\6\1\u0100\24\6\2\0"+ - "\1\6\2\0\17\6\1\u0101\32\6\2\0\1\6\2\0"+ - "\11\6\1\u0102\31\6\1\u0102\6\6\2\0\1\6\2\0"+ - "\34\6\1\u0103\15\6\2\0\1\6\2\0\20\6\1\u0104"+ - "\31\6\2\0\1\6\2\0\12\6\1\271\4\6\1\u0105"+ - "\3\6\1\u0106\1\6\1\u0107\1\6\1\u0108\1\u0109\1\6"+ - "\1\u010a\1\6\1\u010b\15\6\2\0\1\6\2\0\40\6"+ - "\1\u010c\11\6\2\0\1\6\2\0\14\6\1\u010d\35\6"+ - "\2\0\1\6\2\0\20\6\1\u010e\31\6\2\0\1\6"+ - "\2\0\16\6\1\u010f\33\6\2\0\1\6\2\0\23\6"+ - "\1\u0110\26\6\2\0\1\6\2\0\26\6\1\u0111\23\6"+ - "\2\0\1\6\2\0\33\6\1\313\16\6\2\0\1\6"+ - "\2\0\24\6\1\u0112\25\6\2\0\1\6\2\0\34\6"+ - "\1\u0113\15\6\2\0\1\6\2\0\14\6\1\u0114\35\6"+ - "\2\0\1\6\2\0\16\6\1\u0115\33\6\2\0\1\6"+ - "\2\0\16\6\1\u0116\33\6\2\0\1\6\2\0\35\6"+ - "\1\u0117\14\6\2\0\1\6\2\0\33\6\1\u0118\16\6"+ - "\2\0\1\6\2\0\36\6\1\u0119\13\6\2\0\1\6"+ - "\2\0\16\6\1\u011a\1\6\1\u011b\31\6\2\0\1\6"+ - "\2\0\12\6\1\232\37\6\2\0\1\6\2\0\14\6"+ - "\1\u011c\1\u011d\11\6\1\u011e\14\6\1\u011d\5\6\2\0"+ - "\1\6\2\0\16\6\1\u011f\33\6\2\0\1\6\2\0"+ - "\11\6\1\u0120\31\6\1\u0120\2\6\7\35\1\0\5\35"+ - "\1\330\7\35\1\222\26\35\3\0\7\35\1\0\3\35"+ - "\1\u0121\40\35\3\0\1\35\2\331\4\35\1\0\1\331"+ - "\2\35\41\331\3\332\1\0\2\u0122\5\0\1\u0122\2\0"+ - "\1\332\3\u0122\14\332\1\u0122\17\332\1\u0122\3\332\15\0"+ - "\1\334\7\0\1\227\44\0\1\u0123\43\0\4\6\2\0"+ - "\1\6\2\0\33\6\1\u0124\16\6\2\0\1\6\2\0"+ - "\25\6\1\u0125\24\6\2\0\1\6\2\0\35\6\1\u0126"+ - "\14\6\2\0\1\6\2\0\33\6\1\u0127\16\6\2\0"+ - "\1\6\2\0\26\6\1\u0128\23\6\2\0\1\6\2\0"+ - "\13\6\1\u0129\36\6\2\0\1\6\2\0\37\6\1\u012a"+ - "\12\6\2\0\1\6\2\0\20\6\1\u012b\31\6\2\0"+ - "\1\6\2\0\33\6\1\u012c\16\6\2\0\1\6\2\0"+ - "\25\6\1\u012d\24\6\2\0\1\6\2\0\13\6\1\u012e"+ - "\36\6\2\0\1\6\2\0\36\6\1\u012f\13\6\2\0"+ - "\1\6\2\0\12\6\1\347\37\6\2\0\1\6\2\0"+ - "\33\6\1\u0130\16\6\2\0\1\6\2\0\15\6\1\205"+ - "\26\6\1\205\5\6\2\0\1\6\2\0\12\6\1\u0131"+ - "\37\6\2\0\1\6\2\0\12\6\1\u0132\37\6\2\0"+ - "\1\6\2\0\12\6\1\271\4\6\1\u0133\32\6\2\0"+ - "\1\6\2\0\15\6\1\u0134\1\6\1\u0135\3\6\1\u0136"+ - "\7\6\1\u0137\10\6\1\u0134\5\6\2\0\1\6\2\0"+ - "\16\6\1\u0138\7\6\1\u0139\23\6\2\0\1\6\2\0"+ - "\20\6\1\u013a\31\6\2\0\1\6\2\0\23\6\1\u013b"+ - "\26\6\2\0\1\6\2\0\20\6\1\u013c\31\6\2\0"+ - "\1\6\2\0\33\6\1\u013d\5\6\1\u013e\10\6\2\0"+ - "\1\6\2\0\23\6\1\u013f\26\6\2\0\1\6\2\0"+ - "\20\6\1\u0140\31\6\2\0\1\6\2\0\27\6\1\u0141"+ - "\22\6\2\0\1\6\2\0\20\6\1\u0142\31\6\2\0"+ - "\1\6\2\0\17\6\1\u0143\32\6\2\0\1\6\2\0"+ - "\25\6\1\313\24\6\2\0\1\6\2\0\12\6\1\u0144"+ - "\37\6\2\0\1\6\2\0\35\6\1\u0145\14\6\2\0"+ - "\1\6\2\0\13\6\1\u0143\36\6\2\0\1\6\2\0"+ - "\26\6\1\u0146\23\6\2\0\1\6\2\0\25\6\1\u0147"+ - "\24\6\2\0\1\6\2\0\24\6\1\u0148\25\6\2\0"+ - "\1\6\2\0\12\6\1\u0149\37\6\2\0\1\6\2\0"+ - "\23\6\1\u014a\26\6\2\0\1\6\2\0\12\6\1\u014b"+ - "\37\6\2\0\1\6\2\0\14\6\1\u014c\1\u014d\26\6"+ - "\1\u014d\5\6\2\0\1\6\2\0\27\6\1\u014e\22\6"+ - "\2\0\1\6\2\0\34\6\1\u014f\15\6\2\0\1\6"+ - "\2\0\23\6\1\u0150\26\6\2\0\1\6\2\0\16\6"+ - "\1\u0151\11\6\1\u0152\21\6\2\0\1\6\2\0\23\6"+ - "\1\u0153\26\6\2\0\1\6\2\0\33\6\1\u0154\16\6"+ - "\2\0\1\6\2\0\14\6\1\u0155\35\6\2\0\1\6"+ - "\2\0\14\6\1\u0156\35\6\2\0\1\6\2\0\20\6"+ - "\1\u0157\31\6\2\0\1\6\2\0\25\6\1\u0158\24\6"+ - "\2\0\1\6\2\0\20\6\1\u0159\31\6\2\0\1\6"+ - "\2\0\13\6\1\u015a\36\6\2\0\1\6\2\0\25\6"+ - "\1\u015b\24\6\2\0\1\6\2\0\12\6\1\u015c\37\6"+ - "\2\0\1\6\2\0\17\6\1\u015d\32\6\2\0\1\6"+ - "\2\0\20\6\1\u015e\31\6\2\0\1\6\2\0\12\6"+ - "\1\u015f\37\6\2\0\1\6\2\0\12\6\1\u0160\37\6"+ - "\2\0\1\6\2\0\20\6\1\u0161\31\6\2\0\1\6"+ - "\2\0\20\6\1\u0162\31\6\2\0\1\6\2\0\20\6"+ - "\1\u0163\31\6\2\0\1\6\2\0\33\6\1\u0143\16\6"+ - "\2\0\1\6\2\0\14\6\1\u0164\35\6\2\0\1\6"+ - "\2\0\34\6\1\u0165\15\6\2\0\1\6\2\0\16\6"+ - "\1\u0166\33\6\2\0\1\6\2\0\16\6\1\310\33\6"+ - "\2\0\1\6\2\0\36\6\1\u0167\13\6\2\0\1\6"+ - "\2\0\23\6\1\u0168\22\6\7\35\1\0\3\35\1\331"+ - "\40\35\16\0\1\332\43\0\4\6\2\0\1\6\2\0"+ - "\25\6\1\u0107\24\6\2\0\1\6\2\0\36\6\1\313"+ - "\13\6\2\0\1\6\2\0\20\6\1\u0169\31\6\2\0"+ - "\1\6\2\0\26\6\1\u016a\23\6\2\0\1\6\2\0"+ - "\41\6\1\u016b\10\6\2\0\1\6\2\0\11\6\1\u016c"+ - "\31\6\1\u016c\6\6\2\0\1\6\2\0\34\6\1\u016d"+ - "\15\6\2\0\1\6\2\0\33\6\1\u0161\16\6\2\0"+ - "\1\6\2\0\16\6\1\u016e\33\6\2\0\1\6\2\0"+ - "\27\6\1\u016f\22\6\2\0\1\6\2\0\34\6\1\u0170"+ - "\15\6\2\0\1\6\2\0\16\6\1\u0171\33\6\2\0"+ - "\1\6\2\0\14\6\1\u0172\35\6\2\0\1\6\2\0"+ - "\16\6\1\u0173\33\6\2\0\1\6\2\0\23\6\1\u0174"+ - "\26\6\2\0\1\6\2\0\23\6\1\77\26\6\2\0"+ - "\1\6\2\0\23\6\1\u0175\26\6\2\0\1\6\2\0"+ - "\26\6\1\u0176\23\6\2\0\1\6\2\0\13\6\1\u0177"+ - "\36\6\2\0\1\6\2\0\20\6\1\u0178\31\6\2\0"+ - "\1\6\2\0\32\6\1\u0179\17\6\2\0\1\6\2\0"+ - "\13\6\1\113\17\6\1\u017a\16\6\2\0\1\6\2\0"+ - "\15\6\1\u017b\26\6\1\u017b\5\6\2\0\1\6\2\0"+ - "\14\6\1\u0143\35\6\2\0\1\6\2\0\25\6\1\u017c"+ - "\24\6\2\0\1\6\2\0\20\6\1\u017d\31\6\2\0"+ - "\1\6\2\0\35\6\1\u017e\14\6\2\0\1\6\2\0"+ - "\32\6\1\u017f\17\6\2\0\1\6\2\0\14\6\1\u0180"+ - "\20\6\1\u0181\14\6\2\0\1\6\2\0\26\6\1\u0182"+ - "\23\6\2\0\1\6\2\0\14\6\1\u0183\35\6\2\0"+ - "\1\6\2\0\20\6\1\313\31\6\2\0\1\6\2\0"+ - "\13\6\1\u0184\36\6\2\0\1\6\2\0\26\6\1\u0185"+ - "\23\6\2\0\1\6\2\0\25\6\1\u0149\24\6\2\0"+ - "\1\6\2\0\32\6\1\u0186\17\6\2\0\1\6\2\0"+ - "\26\6\1\u0187\23\6\2\0\1\6\2\0\30\6\1\u0188"+ - "\21\6\2\0\1\6\2\0\33\6\1\u0189\16\6\2\0"+ - "\1\6\2\0\13\6\1\u018a\36\6\2\0\1\6\2\0"+ - "\24\6\1\u018b\25\6\2\0\1\6\2\0\23\6\1\u018c"+ - "\26\6\2\0\1\6\2\0\23\6\1\u018d\26\6\2\0"+ - "\1\6\2\0\12\6\1\u018e\37\6\2\0\1\6\2\0"+ - "\35\6\1\u0143\14\6\2\0\1\6\2\0\32\6\1\u018f"+ - "\17\6\2\0\1\6\2\0\35\6\1\u0190\14\6\2\0"+ - "\1\6\2\0\14\6\1\u0191\35\6\2\0\1\6\2\0"+ - "\26\6\1\u0192\23\6\2\0\1\6\2\0\20\6\1\u0193"+ - "\31\6\2\0\1\6\2\0\13\6\1\u0194\36\6\2\0"+ - "\1\6\2\0\12\6\1\u0195\37\6\2\0\1\6\2\0"+ - "\12\6\1\u0196\37\6\2\0\1\6\2\0\12\6\1\u0197"+ - "\1\6\1\u0198\3\6\1\u0199\4\6\1\u0107\1\6\1\u019a"+ - "\22\6\2\0\1\6\2\0\20\6\1\u019b\31\6\2\0"+ - "\1\6\2\0\14\6\1\313\35\6\2\0\1\6\2\0"+ - "\26\6\1\u019c\23\6\2\0\1\6\2\0\12\6\1\u019d"+ - "\37\6\2\0\1\6\2\0\33\6\1\u019e\16\6\2\0"+ - "\1\6\2\0\24\6\1\u019f\1\u01a0\7\6\1\u01a1\14\6"+ - "\2\0\1\6\2\0\20\6\1\u01a2\31\6\2\0\1\6"+ - "\2\0\24\6\1\u01a3\25\6\2\0\1\6\2\0\11\6"+ - "\1\243\1\271\3\6\1\244\1\273\1\274\3\6\1\276"+ - "\1\6\1\246\14\6\1\243\6\6\2\0\1\6\2\0"+ - "\12\6\1\u01a4\37\6\2\0\1\6\2\0\15\6\1\u01a5"+ - "\26\6\1\u01a5\5\6\2\0\1\6\2\0\17\6\1\u01a6"+ - "\32\6\2\0\1\6\2\0\16\6\1\u01a7\33\6\2\0"+ - "\1\6\2\0\24\6\1\u01a8\25\6\2\0\1\6\2\0"+ - "\15\6\1\u01a9\26\6\1\u01a9\5\6\2\0\1\6\2\0"+ - "\33\6\1\u01aa\16\6\2\0\1\6\2\0\31\6\1\u01ab"+ - "\20\6\2\0\1\6\2\0\20\6\1\u01ac\31\6\2\0"+ - "\1\6\2\0\16\6\1\u01ad\33\6\2\0\1\6\2\0"+ - "\15\6\1\u01ae\26\6\1\u01ae\5\6\2\0\1\6\2\0"+ - "\17\6\1\202\32\6\2\0\1\6\2\0\12\6\1\u01af"+ - "\37\6\2\0\1\6\2\0\15\6\1\u01b0\26\6\1\u01b0"+ - "\5\6\2\0\1\6\2\0\16\6\1\u01b1\33\6\2\0"+ - "\1\6\2\0\25\6\1\u01b2\24\6\2\0\1\6\2\0"+ - "\32\6\1\313\17\6\2\0\1\6\2\0\40\6\1\u01b3"+ - "\11\6\2\0\1\6\2\0\32\6\1\u01b4\17\6\2\0"+ - "\1\6\2\0\13\6\1\u01b5\36\6\2\0\1\6\2\0"+ - "\23\6\1\u01b6\26\6\2\0\1\6\2\0\25\6\1\u01b7"+ - "\24\6\2\0\1\6\2\0\27\6\1\u01b8\22\6\2\0"+ - "\1\6\2\0\23\6\1\u01b9\26\6\2\0\1\6\2\0"+ - "\34\6\1\313\15\6\2\0\1\6\2\0\37\6\1\u01ba"+ - "\12\6\2\0\1\6\2\0\17\6\1\u01bb\32\6\2\0"+ - "\1\6\2\0\20\6\1\u01bc\31\6\2\0\1\6\2\0"+ - "\20\6\1\u01bd\31\6\2\0\1\6\2\0\35\6\1\u01be"+ - "\14\6\2\0\1\6\2\0\24\6\1\u01bf\25\6\2\0"+ - "\1\6\2\0\23\6\1\u01c0\3\6\1\361\1\u01c1\21\6"+ - "\2\0\1\6\2\0\23\6\1\u01c2\26\6\2\0\1\6"+ - "\2\0\34\6\1\u01c3\15\6\2\0\1\6\2\0\34\6"+ - "\1\u01c4\15\6\2\0\1\6\2\0\27\6\1\u01c5\22\6"+ - "\2\0\1\6\2\0\31\6\1\u01c6\20\6\2\0\1\6"+ - "\2\0\14\6\1\u01c7\35\6\2\0\1\6\2\0\34\6"+ - "\1\u01c8\15\6\2\0\1\6\2\0\33\6\1\u01c9\16\6"+ - "\2\0\1\6\2\0\34\6\1\u01ca\15\6\2\0\1\6"+ - "\2\0\13\6\1\u01cb\36\6\2\0\1\6\2\0\11\6"+ - "\1\u01cc\31\6\1\u01cc\6\6\2\0\1\6\2\0\20\6"+ - "\1\u01cd\31\6\2\0\1\6\2\0\12\6\1\271\10\6"+ - "\1\u0106\6\6\1\u010a\1\6\1\u010b\15\6\2\0\1\6"+ - "\2\0\16\6\1\u01ce\33\6\2\0\1\6\2\0\34\6"+ - "\1\u01cf\15\6\2\0\1\6\2\0\33\6\1\u01d0\16\6"+ - "\2\0\1\6\2\0\20\6\1\u01d1\31\6\2\0\1\6"+ - "\2\0\14\6\1\u01d2\11\6\1\237\1\361\22\6\2\0"+ - "\1\6\2\0\27\6\1\u01d3\22\6\2\0\1\6\2\0"+ - "\33\6\1\u01d4\16\6\2\0\1\6\2\0\12\6\1\u01d5"+ - "\37\6\2\0\1\6\2\0\41\6\1\u01d6\10\6\2\0"+ - "\1\6\2\0\26\6\1\u01d7\23\6\2\0\1\6\2\0"+ - "\41\6\1\u01d8\10\6\2\0\1\6\2\0\33\6\1\u01d9"+ - "\16\6\2\0\1\6\2\0\12\6\1\271\3\6\1\u01da"+ - "\1\273\32\6\2\0\1\6\2\0\35\6\1\u01db\14\6"+ - "\2\0\1\6\2\0\13\6\1\u017c\36\6\2\0\1\6"+ - "\2\0\13\6\1\u01dc\36\6\2\0\1\6\2\0\20\6"+ - "\1\u01dd\31\6\2\0\1\6\2\0\20\6\1\u01de\3\6"+ - "\1\u01df\1\6\1\237\1\6\1\362\2\6\1\u01e0\16\6"+ - "\2\0\1\6\2\0\12\6\1\u01e1\37\6\2\0\1\6"+ - "\2\0\11\6\1\u01e2\31\6\1\u01e2\6\6\2\0\1\6"+ - "\2\0\15\6\1\u01e3\26\6\1\u01e3\5\6\2\0\1\6"+ - "\2\0\20\6\1\u015b\31\6\2\0\1\6\2\0\20\6"+ - "\1\u01e4\31\6\2\0\1\6\2\0\40\6\1\313\11\6"+ - "\2\0\1\6\2\0\26\6\1\u01e5\23\6\2\0\1\6"+ - "\2\0\35\6\1\u01e6\14\6\2\0\1\6\2\0\24\6"+ - "\1\236\11\6\1\u01e7\13\6\2\0\1\6\2\0\33\6"+ - "\1\u01e8\16\6\2\0\1\6\2\0\33\6\1\u01e9\16\6"+ - "\2\0\1\6\2\0\31\6\1\u01ea\20\6\2\0\1\6"+ - "\2\0\15\6\1\u01eb\26\6\1\u01eb\5\6\2\0\1\6"+ - "\2\0\25\6\1\u01ec\24\6\2\0\1\6\2\0\32\6"+ - "\1\u01ed\17\6\2\0\1\6\2\0\12\6\1\u01ee\37\6"+ - "\2\0\1\6\2\0\20\6\1\u01ef\31\6\2\0\1\6"+ - "\2\0\25\6\1\u01f0\24\6\2\0\1\6\2\0\20\6"+ - "\1\u01f1\31\6\2\0\1\6\2\0\27\6\1\u01f2\22\6"+ - "\2\0\1\6\2\0\26\6\1\u011a\23\6\2\0\1\6"+ - "\2\0\20\6\1\u01f3\31\6\2\0\1\6\2\0\34\6"+ - "\1\u01f4\15\6\2\0\1\6\2\0\34\6\1\u01f5\15\6"+ - "\2\0\1\6\2\0\33\6\1\u013d\16\6\2\0\1\6"+ - "\2\0\13\6\1\u01f6\36\6\2\0\1\6\2\0\25\6"+ - "\1\u01f7\24\6\2\0\1\6\2\0\23\6\1\u01f8\26\6"+ - "\2\0\1\6\2\0\34\6\1\u01f9\15\6\2\0\1\6"+ - "\2\0\24\6\1\u01fa\25\6\2\0\1\6\2\0\31\6"+ - "\1\u01fb\20\6\2\0\1\6\2\0\12\6\1\u01fc\37\6"+ - "\2\0\1\6\2\0\14\6\1\u01fd\35\6\2\0\1\6"+ - "\2\0\23\6\1\u01fe\26\6\2\0\1\6\2\0\16\6"+ - "\1\u01ff\33\6\2\0\1\6\2\0\12\6\1\271\5\6"+ - "\1\274\31\6\2\0\1\6\2\0\20\6\1\u0200\31\6"+ - "\2\0\1\6\2\0\12\6\1\u0201\37\6\2\0\1\6"+ - "\2\0\16\6\1\u0202\33\6\2\0\1\6\2\0\17\6"+ - "\1\u0203\32\6\2\0\1\6\2\0\15\6\1\u0204\2\6"+ - "\1\u0205\2\6\1\u0106\1\u0206\2\6\1\u0207\1\u0208\1\6"+ - "\1\u0209\1\u020a\1\u020b\7\6\1\u0204\5\6\2\0\1\6"+ - "\2\0\26\6\1\u020c\23\6\2\0\1\6\2\0\14\6"+ - "\1\u020d\35\6\2\0\1\6\2\0\24\6\1\u020e\25\6"+ - "\2\0\1\6\2\0\13\6\1\u01d0\36\6\2\0\1\6"+ - "\2\0\15\6\1\u020f\26\6\1\u020f\5\6\2\0\1\6"+ - "\2\0\17\6\1\u0210\32\6\2\0\1\6\2\0\26\6"+ - "\1\u0211\23\6\2\0\1\6\2\0\16\6\1\u0212\33\6"+ - "\2\0\1\6\2\0\23\6\1\u0213\26\6\2\0\1\6"+ - "\2\0\31\6\1\371\20\6\2\0\1\6\2\0\13\6"+ - "\1\u0214\36\6\2\0\1\6\2\0\35\6\1\u0215\14\6"+ - "\2\0\1\6\2\0\12\6\1\u0216\37\6\2\0\1\6"+ - "\2\0\31\6\1\u0217\20\6\2\0\1\6\2\0\24\6"+ - "\1\266\25\6\2\0\1\6\2\0\23\6\1\u0218\26\6"+ - "\2\0\1\6\2\0\33\6\1\u0219\16\6\2\0\1\6"+ - "\2\0\35\6\1\313\14\6\2\0\1\6\2\0\25\6"+ - "\1\u021a\24\6\2\0\1\6\2\0\26\6\1\u021b\23\6"+ - "\2\0\1\6\2\0\34\6\1\371\15\6\2\0\1\6"+ - "\2\0\12\6\1\u021c\1\u021d\21\6\1\u021e\14\6\2\0"+ - "\1\6\2\0\20\6\1\u021f\31\6\2\0\1\6\2\0"+ - "\16\6\1\u0220\33\6\2\0\1\6\2\0\21\6\1\u0221"+ - "\23\6\1\u0221\4\6\2\0\1\6\2\0\33\6\1\u0222"+ - "\16\6\2\0\1\6\2\0\14\6\1\u0174\35\6\2\0"+ - "\1\6\2\0\20\6\1\u0223\31\6\2\0\1\6\2\0"+ - "\14\6\1\u0224\35\6\2\0\1\6\2\0\20\6\1\u0225"+ - "\31\6\2\0\1\6\2\0\24\6\1\u0226\2\6\1\u0227"+ - "\22\6\2\0\1\6\2\0\16\6\1\u0228\33\6\2\0"+ - "\1\6\2\0\26\6\1\u0229\23\6\2\0\1\6\2\0"+ - "\25\6\1\u022a\24\6\2\0\1\6\2\0\20\6\1\u022b"+ - "\31\6\2\0\1\6\2\0\23\6\1\u022c\26\6\2\0"+ - "\1\6\2\0\26\6\1\u022d\23\6\2\0\1\6\2\0"+ - "\25\6\1\u022e\24\6\2\0\1\6\2\0\23\6\1\u022f"+ - "\26\6\2\0\1\6\2\0\33\6\1\u0230\16\6\2\0"+ - "\1\6\2\0\17\6\1\u0200\32\6\2\0\1\6\2\0"+ - "\20\6\1\u0231\31\6\2\0\1\6\2\0\33\6\1\u0232"+ - "\16\6\2\0\1\6\2\0\27\6\1\u01d0\22\6\2\0"+ - "\1\6\2\0\13\6\1\313\36\6\2\0\1\6\2\0"+ - "\35\6\1\u0233\14\6\2\0\1\6\2\0\12\6\1\u0234"+ - "\37\6\2\0\1\6\2\0\12\6\1\271\37\6\2\0"+ - "\1\6\2\0\11\6\1\u0235\31\6\1\u0235\3\6\1\u0236"+ - "\2\6\2\0\1\6\2\0\52\6\2\0\1\6\2\0"+ - "\32\6\1\u0143\17\6\2\0\1\6\2\0\25\6\1\u0174"+ - "\24\6\2\0\1\6\2\0\12\6\1\313\37\6\2\0"+ - "\1\6\2\0\15\6\1\u0237\26\6\1\u0237\5\6\2\0"+ - "\1\6\2\0\13\6\1\u0238\36\6\2\0\1\6\2\0"+ - "\12\6\1\u0239\37\6\2\0\1\6\2\0\33\6\1\u023a"+ - "\16\6\2\0\1\6\2\0\25\6\1\u023b\24\6\2\0"+ - "\1\6\2\0\26\6\1\u023c\23\6\2\0\1\6\2\0"+ - "\20\6\1\u023d\31\6\2\0\1\6\2\0\16\6\1\u023e"+ - "\33\6\2\0\1\6\2\0\33\6\1\u023f\16\6\2\0"+ - "\1\6\2\0\20\6\1\u0240\31\6\2\0\1\6\2\0"+ - "\33\6\1\u0241\16\6\2\0\1\6\2\0\33\6\1\u0242"+ - "\16\6\2\0\1\6\2\0\12\6\1\u0243\37\6\2\0"+ - "\1\6\2\0\13\6\1\u0244\7\6\1\u0106\26\6\2\0"+ - "\1\6\2\0\16\6\1\371\33\6\2\0\1\6\2\0"+ - "\17\6\1\u01c5\32\6\2\0\1\6\2\0\34\6\1\u0245"+ - "\15\6\2\0\1\6\2\0\32\6\1\u0246\17\6\2\0"+ - "\1\6\2\0\24\6\1\u0247\25\6\2\0\1\6\2\0"+ - "\16\6\1\u0248\33\6\2\0\1\6\2\0\23\6\1\u0249"+ - "\26\6\2\0\1\6\2\0\20\6\1\u024a\31\6\2\0"+ - "\1\6\2\0\14\6\1\u024b\1\6\1\u024c\33\6\2\0"+ - "\1\6\2\0\12\6\1\u024d\37\6\2\0\1\6\2\0"+ - "\26\6\1\u024e\23\6\2\0\1\6\2\0\32\6\1\u024f"+ - "\17\6\2\0\1\6\2\0\25\6\1\u0250\24\6\2\0"+ - "\1\6\2\0\20\6\1\u0251\31\6\2\0\1\6\2\0"+ - "\20\6\1\u0252\31\6\2\0\1\6\2\0\23\6\1\u0253"+ - "\26\6\2\0\1\6\2\0\23\6\1\114\26\6\2\0"+ - "\1\6\2\0\41\6\1\313\10\6\2\0\1\6\2\0"+ - "\14\6\1\u0254\35\6\2\0\1\6\2\0\35\6\1\u0255"+ - "\14\6\2\0\1\6\2\0\33\6\1\u0256\16\6\2\0"+ - "\1\6\2\0\34\6\1\u0257\15\6\2\0\1\6\2\0"+ - "\14\6\1\u0258\35\6\2\0\1\6\2\0\17\6\1\u0259"+ - "\32\6\2\0\1\6\2\0\20\6\1\u025a\31\6\2\0"+ - "\1\6\2\0\17\6\1\u025b\32\6\2\0\1\6\2\0"+ - "\24\6\1\362\25\6\2\0\1\6\2\0\23\6\1\u025c"+ - "\26\6\2\0\1\6\2\0\33\6\1\u025d\16\6\2\0"+ - "\1\6\2\0\14\6\1\u025e\35\6\2\0\1\6\2\0"+ - "\12\6\1\u025f\37\6\2\0\1\6\2\0\27\6\1\u0260"+ - "\22\6\2\0\1\6\2\0\11\6\1\u0261\31\6\1\u0261"+ - "\6\6\2\0\1\6\2\0\27\6\1\361\22\6\2\0"+ - "\1\6\2\0\14\6\1\u0262\35\6\2\0\1\6\2\0"+ - "\16\6\1\u0263\33\6\2\0\1\6\2\0\20\6\1\u0264"+ - "\31\6\2\0\1\6\2\0\16\6\1\u0265\33\6\2\0"+ - "\1\6\2\0\16\6\1\u0266\33\6\2\0\1\6\2\0"+ - "\17\6\1\u0267\3\6\1\u0106\1\6\1\u0268\7\6\1\u0269"+ - "\1\u026a\13\6\2\0\1\6\2\0\16\6\1\u026b\33\6"+ - "\2\0\1\6\2\0\12\6\1\167\37\6\2\0\1\6"+ - "\2\0\24\6\1\276\25\6\2\0\1\6\2\0\26\6"+ - "\1\u026c\23\6\2\0\1\6\2\0\23\6\1\u026d\26\6"+ - "\2\0\1\6\2\0\35\6\1\u026e\14\6\2\0\1\6"+ - "\2\0\33\6\1\u026f\16\6\2\0\1\6\2\0\25\6"+ - "\1\u0270\24\6\2\0\1\6\2\0\26\6\1\u0271\23\6"+ - "\2\0\1\6\2\0\35\6\1\u0272\14\6\2\0\1\6"+ - "\2\0\17\6\1\313\32\6\2\0\1\6\2\0\16\6"+ - "\1\u0273\33\6\2\0\1\6\2\0\15\6\1\u020f\5\6"+ - "\1\u0274\1\6\1\u0275\1\6\1\u019a\2\6\1\u010a\4\6"+ - "\1\u0276\4\6\1\u020f\5\6\2\0\1\6\2\0\33\6"+ - "\1\u0277\16\6\2\0\1\6\2\0\33\6\1\u0278\16\6"+ - "\2\0\1\6\2\0\20\6\1\u0279\31\6\2\0\1\6"+ - "\2\0\40\6\1\u01c5\11\6\2\0\1\6\2\0\33\6"+ - "\1\u01a6\16\6\2\0\1\6\2\0\16\6\1\372\33\6"+ - "\2\0\1\6\2\0\25\6\1\u027a\24\6\2\0\1\6"+ - "\2\0\17\6\1\u027b\32\6\2\0\1\6\2\0\25\6"+ - "\1\u027c\24\6\2\0\1\6\2\0\24\6\1\u027d\25\6"+ - "\2\0\1\6\2\0\24\6\1\313\25\6\2\0\1\6"+ - "\2\0\16\6\1\u027e\33\6\2\0\1\6\2\0\27\6"+ - "\1\313\22\6\2\0\1\6\2\0\35\6\1\u01f8\14\6"+ - "\2\0\1\6\2\0\33\6\1\u027f\16\6\2\0\1\6"+ - "\2\0\12\6\1\u0280\37\6\2\0\1\6\2\0\35\6"+ - "\1\u021e\14\6\2\0\1\6\2\0\23\6\1\u0200\26\6"+ - "\2\0\1\6\2\0\16\6\1\u0281\33\6\2\0\1\6"+ - "\2\0\16\6\1\u0282\33\6\2\0\1\6\2\0\14\6"+ - "\1\u0241\35\6\2\0\1\6\2\0\16\6\1\u0233\33\6"+ - "\2\0\1\6\2\0\13\6\1\u0283\36\6\2\0\1\6"+ - "\2\0\12\6\1\202\37\6\2\0\1\6\2\0\12\6"+ - "\1\u0284\37\6\2\0\1\6\2\0\13\6\1\u0285\36\6"+ - "\2\0\1\6\2\0\31\6\1\u0286\20\6\2\0\1\6"+ - "\2\0\14\6\1\u0287\35\6\2\0\1\6\2\0\17\6"+ - "\1\u0288\32\6\2\0\1\6\2\0\20\6\1\u0289\31\6"+ - "\2\0\1\6\2\0\12\6\1\u028a\37\6\2\0\1\6"+ - "\2\0\26\6\1\u028b\23\6\2\0\1\6\2\0\25\6"+ - "\1\u0200\24\6\2\0\1\6\2\0\36\6\1\u0143\13\6"+ - "\2\0\1\6\2\0\25\6\1\u028c\24\6\2\0\1\6"+ - "\2\0\26\6\1\u028d\23\6\2\0\1\6\2\0\26\6"+ - "\1\u028e\23\6\2\0\1\6\2\0\34\6\1\u028f\15\6"+ - "\2\0\1\6\2\0\20\6\1\u0290\31\6\2\0\1\6"+ - "\2\0\17\6\1\u0291\32\6\2\0\1\6\2\0\25\6"+ - "\1\u0292\24\6\2\0\1\6\2\0\30\6\1\u0293\21\6"+ - "\2\0\1\6\2\0\13\6\1\u0294\36\6\2\0\1\6"+ - "\2\0\20\6\1\u0295\31\6\2\0\1\6\2\0\27\6"+ - "\1\u0296\22\6\2\0\1\6\2\0\34\6\1\u0297\15\6"+ - "\2\0\1\6\2\0\26\6\1\u0298\23\6\2\0\1\6"+ - "\2\0\12\6\1\u0299\37\6\2\0\1\6\2\0\17\6"+ - "\1\u029a\32\6\2\0\1\6\2\0\26\6\1\u029b\23\6"+ - "\2\0\1\6\2\0\26\6\1\u01f8\23\6\2\0\1\6"+ - "\2\0\26\6\1\u029c\23\6\2\0\1\6\2\0\24\6"+ - "\1\u029d\25\6\2\0\1\6\2\0\14\6\1\u0200\35\6"+ - "\2\0\1\6\2\0\14\6\1\167\35\6\2\0\1\6"+ - "\2\0\23\6\1\u029e\26\6\2\0\1\6\2\0\27\6"+ - "\1\u029f\22\6\2\0\1\6\2\0\11\6\1\u01b0\31\6"+ - "\1\u01b0\6\6\2\0\1\6\2\0\25\6\1\u0143\24\6"+ - "\2\0\1\6\2\0\35\6\1\u02a0\14\6\2\0\1\6"+ - "\2\0\24\6\1\u02a1\25\6\2\0\1\6\2\0\15\6"+ - "\1\u02a2\26\6\1\u02a2\5\6\2\0\1\6\2\0\12\6"+ - "\1\u0143\37\6\2\0\1\6\2\0\12\6\1\u02a1\37\6"+ - "\2\0\1\6\2\0\34\6\1\u011a\15\6\2\0\1\6"+ - "\2\0\33\6\1\u02a3\16\6\2\0\1\6\2\0\25\6"+ - "\1\u024e\24\6\2\0\1\6\2\0\34\6\1\u02a4\15\6"+ - "\2\0\1\6\2\0\26\6\1\u02a5\23\6\2\0\1\6"+ - "\2\0\23\6\1\u02a6\26\6\2\0\1\6\2\0\30\6"+ - "\1\u02a7\21\6\2\0\1\6\2\0\33\6\1\u02a8\16\6"+ - "\2\0\1\6\2\0\15\6\1\u02a9\26\6\1\u02a9\5\6"+ - "\2\0\1\6\2\0\32\6\1\u02aa\17\6\2\0\1\6"+ - "\2\0\34\6\1\u02ab\15\6\2\0\1\6\2\0\14\6"+ - "\1\u02ac\35\6\2\0\1\6\2\0\33\6\1\u02ad\16\6"+ - "\2\0\1\6\2\0\12\6\1\u02ae\37\6\2\0\1\6"+ - "\2\0\12\6\1\u02af\37\6\2\0\1\6\2\0\17\6"+ - "\1\u02b0\32\6\2\0\1\6\2\0\23\6\1\u02b1\26\6"+ - "\2\0\1\6\2\0\15\6\1\u02b2\26\6\1\u02b2\5\6"+ - "\2\0\1\6\2\0\13\6\1\u02b3\13\6\1\372\22\6"+ - "\2\0\1\6\2\0\13\6\1\u02b4\36\6\2\0\1\6"+ - "\2\0\12\6\1\u02b5\37\6\2\0\1\6\2\0\23\6"+ - "\1\u01fa\26\6\2\0\1\6\2\0\32\6\1\u02b6\17\6"+ - "\2\0\1\6\2\0\25\6\1\u02b7\24\6\2\0\1\6"+ - "\2\0\36\6\1\u02b8\13\6\2\0\1\6\2\0\20\6"+ - "\1\u02b9\31\6\2\0\1\6\2\0\14\6\1\u02a1\35\6"+ - "\2\0\1\6\2\0\20\6\1\u0220\31\6\2\0\1\6"+ - "\2\0\23\6\1\u02ba\26\6\2\0\1\6\2\0\11\6"+ - "\1\313\31\6\1\313\6\6\2\0\1\6\2\0\31\6"+ - "\1\u02bb\20\6\2\0\1\6\2\0\20\6\1\u02bc\31\6"+ - "\2\0\1\6\2\0\13\6\1\u02bd\36\6\2\0\1\6"+ - "\2\0\32\6\1\u02be\17\6\2\0\1\6\2\0\27\6"+ - "\1\u02bf\22\6\2\0\1\6\2\0\26\6\1\u02c0\23\6"+ - "\2\0\1\6\2\0\16\6\1\u02c1\33\6\2\0\1\6"+ - "\2\0\26\6\1\313\23\6\2\0\1\6\2\0\20\6"+ - "\1\u02c2\31\6\2\0\1\6\2\0\14\6\1\u02c3\35\6"+ - "\2\0\1\6\2\0\12\6\1\u02c4\37\6\2\0\1\6"+ - "\2\0\16\6\1\u02c5\33\6\2\0\1\6\2\0\20\6"+ - "\1\u02c6\31\6\2\0\1\6\2\0\13\6\1\u02c7\36\6"+ - "\2\0\1\6\2\0\20\6\1\u0250\31\6\2\0\1\6"+ - "\2\0\33\6\1\u02c8\16\6\2\0\1\6\2\0\20\6"+ - "\1\u02c9\31\6\2\0\1\6\2\0\23\6\1\u02ca\26\6"+ - "\2\0\1\6\2\0\23\6\1\u02cb\26\6\2\0\1\6"+ - "\2\0\20\6\1\u02cc\31\6\2\0\1\6\2\0\26\6"+ - "\1\u02cd\23\6\2\0\1\6\2\0\24\6\1\u02ce\25\6"+ - "\2\0\1\6\2\0\16\6\1\114\33\6\2\0\1\6"+ - "\2\0\20\6\1\u0286\31\6\2\0\1\6\2\0\25\6"+ - "\1\u0233\24\6\2\0\1\6\2\0\27\6\1\u0227\22\6"+ - "\2\0\1\6\2\0\12\6\1\u02cf\37\6\2\0\1\6"+ - "\2\0\13\6\1\u02d0\36\6\2\0\1\6\2\0\12\6"+ - "\1\u02d1\37\6\2\0\1\6\2\0\30\6\1\u02d2\21\6"+ - "\2\0\1\6\2\0\27\6\1\205\22\6\2\0\1\6"+ - "\2\0\12\6\1\205\37\6\2\0\1\6\2\0\35\6"+ - "\1\u02d3\14\6\2\0\1\6\2\0\20\6\1\u02d4\31\6"+ - "\2\0\1\6\2\0\32\6\1\u02d5\17\6\2\0\1\6"+ - "\2\0\15\6\1\u02d6\26\6\1\u02d6\5\6\2\0\1\6"+ - "\2\0\33\6\1\u02d7\16\6\2\0\1\6\2\0\23\6"+ - "\1\u02d8\26\6\2\0\1\6\2\0\20\6\1\u02d9\31\6"+ - "\2\0\1\6\2\0\33\6\1\u02da\16\6\2\0\1\6"+ - "\2\0\14\6\1\u02db\35\6\2\0\1\6\2\0\12\6"+ - "\1\u02dc\37\6\2\0\1\6\2\0\34\6\1\u02dd\15\6"+ - "\2\0\1\6\2\0\33\6\1\u02de\16\6\2\0\1\6"+ - "\2\0\20\6\1\u02df\31\6\2\0\1\6\2\0\20\6"+ - "\1\u02e0\31\6\2\0\1\6\2\0\26\6\1\u02e1\23\6"+ - "\2\0\1\6\2\0\26\6\1\u02e2\23\6\2\0\1\6"+ - "\2\0\34\6\1\u02e3\15\6\2\0\1\6\2\0\23\6"+ - "\1\u02e4\26\6\2\0\1\6\2\0\33\6\1\u02e5\16\6"+ - "\2\0\1\6\2\0\16\6\1\u02e6\33\6\2\0\1\6"+ - "\2\0\31\6\1\u02aa\20\6\2\0\1\6\2\0\30\6"+ - "\1\u01c1\21\6\2\0\1\6\2\0\32\6\1\u02e7\17\6"+ - "\2\0\1\6\2\0\27\6\1\u02e8\22\6\2\0\1\6"+ - "\2\0\20\6\1\u02e9\31\6\2\0\1\6\2\0\14\6"+ - "\1\u02ea\35\6\2\0\1\6\2\0\12\6\1\u02eb\37\6"+ - "\2\0\1\6\2\0\14\6\1\u02ec\35\6\2\0\1\6"+ - "\2\0\16\6\1\u02ed\33\6\2\0\1\6\2\0\15\6"+ - "\1\u01a9\1\6\1\u02ee\24\6\1\u01a9\5\6\2\0\1\6"+ - "\2\0\33\6\1\u02ef\16\6\2\0\1\6\2\0\33\6"+ - "\1\u02f0\16\6\2\0\1\6\2\0\20\6\1\u02f1\16\6"+ - "\1\u02f2\12\6\2\0\1\6\2\0\15\6\1\u02f3\26\6"+ - "\1\u02f3\5\6\2\0\1\6\2\0\16\6\1\u0241\33\6"+ - "\2\0\1\6\2\0\16\6\1\u0250\33\6\2\0\1\6"+ - "\2\0\36\6\1\u02f4\13\6\2\0\1\6\2\0\20\6"+ - "\1\326\31\6\2\0\1\6\2\0\25\6\1\u02f5\24\6"+ - "\2\0\1\6\2\0\25\6\1\u02f6\24\6\2\0\1\6"+ - "\2\0\21\6\1\u02f7\23\6\1\u02f7\4\6\2\0\1\6"+ - "\2\0\33\6\1\u02f8\16\6\2\0\1\6\2\0\20\6"+ - "\1\u02f9\31\6\2\0\1\6\2\0\12\6\1\u02fa\37\6"+ - "\2\0\1\6\2\0\16\6\1\u02fb\33\6\2\0\1\6"+ - "\2\0\14\6\1\u02fc\35\6\2\0\1\6\2\0\12\6"+ - "\1\u02b0\37\6\2\0\1\6\2\0\33\6\1\u02fd\16\6"+ - "\2\0\1\6\2\0\34\6\1\u02fe\15\6\2\0\1\6"+ - "\2\0\15\6\1\202\26\6\1\202\5\6\2\0\1\6"+ - "\2\0\20\6\1\u02aa\31\6\2\0\1\6\2\0\26\6"+ - "\1\u02ff\23\6\2\0\1\6\2\0\24\6\1\u0300\25\6"+ - "\2\0\1\6\2\0\26\6\1\u0301\23\6\2\0\1\6"+ - "\2\0\16\6\1\u0302\33\6\2\0\1\6\2\0\33\6"+ - "\1\u0303\16\6\2\0\1\6\2\0\11\6\1\u01dd\31\6"+ - "\1\u01dd\6\6\2\0\1\6\2\0\15\6\1\u0304\26\6"+ - "\1\u0304\5\6\2\0\1\6\2\0\26\6\1\u0305\23\6"+ - "\2\0\1\6\2\0\33\6\1\u0306\16\6\2\0\1\6"+ - "\2\0\20\6\1\u0307\31\6\2\0\1\6\2\0\25\6"+ - "\1\u0308\24\6\2\0\1\6\2\0\20\6\1\u0309\31\6"+ - "\2\0\1\6\2\0\33\6\1\u0250\16\6\2\0\1\6"+ - "\2\0\30\6\1\u030a\21\6\2\0\1\6\2\0\16\6"+ - "\1\u030b\33\6\2\0\1\6\2\0\20\6\1\u030c\31\6"+ - "\2\0\1\6\2\0\34\6\1\u030d\15\6\2\0\1\6"+ - "\2\0\26\6\1\u030e\23\6\2\0\1\6\2\0\33\6"+ - "\1\205\16\6\2\0\1\6\2\0\14\6\1\u030f\35\6"+ - "\2\0\1\6\2\0\23\6\1\u0310\26\6\2\0\1\6"+ - "\2\0\34\6\1\u0311\15\6\2\0\1\6\2\0\14\6"+ - "\1\u0312\35\6\2\0\1\6\2\0\12\6\1\u0313\37\6"+ - "\2\0\1\6\2\0\33\6\1\u0314\16\6\2\0\1\6"+ - "\2\0\33\6\1\u015b\16\6\2\0\1\6\2\0\20\6"+ - "\1\u0315\31\6\2\0\1\6\2\0\17\6\1\u0316\32\6"+ - "\2\0\1\6\2\0\12\6\1\u0317\37\6\2\0\1\6"+ - "\2\0\27\6\1\372\22\6\2\0\1\6\2\0\16\6"+ - "\1\u0150\33\6\2\0\1\6\2\0\24\6\1\u0143\25\6"+ - "\2\0\1\6\2\0\33\6\1\u0318\16\6\2\0\1\6"+ - "\2\0\16\6\1\u0319\33\6\2\0\1\6\2\0\20\6"+ - "\1\u031a\31\6\2\0\1\6\2\0\36\6\1\202\13\6"+ - "\2\0\1\6\2\0\23\6\1\u031b\26\6\2\0\1\6"+ - "\2\0\14\6\1\u01a6\31\6"; - - private static int [] zzUnpackTrans() { - int [] result = new int[36754]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\6\1\2\11\22\1\1\11\10\1\4\11\1\1"+ - "\1\11\2\1\1\0\52\1\4\0\2\1\1\11\1\1"+ - "\1\11\62\1\4\0\102\1\2\0\105\1\2\0\u01f8\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[795]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 1; + public static final int INTAG = 2; + public static final int INATTR_DOUBLE = 3; + public static final int YYINITIAL = 0; + public static final int INATTR_SINGLE = 4; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\5\1\7\1\0\1\3\23\0\1\5\1\14\1\12\1\10" + + "\1\21\1\14\1\14\1\16\5\14\1\2\1\33\1\13\12\20\1\15" + "\1\14\1\4\1\53\1\6\2\14\1\34\1\41\1\35\1\40\1\31" + + "\1\26\1\43\1\22\1\27\1\17\1\51\1\30\1\46\1\36\1\37" + "\1\24\1\50\1\44\1\25\1\23\1\45\1\47\1\32\1\52\1\42" + + "\1\17\1\14\1\11\1\14\1\0\1\1\1\0\1\34\1\41\1\35" + "\1\40\1\31\1\55\1\43\1\54\1\27\1\17\1\51\1\30\1\46" + + "\1\36\1\37\1\24\1\50\1\44\1\25\1\23\1\45\1\47\1\56" + "\1\52\1\42\1\17\3\0\1\14\uff81\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 = "\3\0\2\1\1\2\1\3\1\2\1\3\1\4\1\5" + "\21\2\1\1\1\6\6\1\2\7\1\10\1\11\1\12" + + "\1\13\1\1\1\14\1\1\1\15\1\0\2\16\44\2" + "\4\1\4\0\1\17\1\16\1\20\1\16\1\21\56\2" + "\4\1\4\0\62\2\1\22\13\2\3\1\1\23\2\0" + + "\104\2\1\1\2\0\1\22\12\2\1\22\31\2\1\22" + "\146\2\1\22\60\2\1\22\33\2\1\22\47\2\1\22" + + "\225\2\1\22\33\2\1\22\102\2\1\22\1\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[795]; + 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\57\0\136\0\215\0\274\0\353\0\u011a\0\u0149" + + "\0\u0178\0\u01a7\0\u01a7\0\u01d6\0\u0205\0\u0234\0\u0263\0\u0292" + + "\0\u02c1\0\u02f0\0\u031f\0\u034e\0\u037d\0\u03ac\0\u03db\0\u040a" + + "\0\u0439\0\u0468\0\u0497\0\u04c6\0\u04f5\0\u01a7\0\u0524\0\u0553" + + "\0\u0582\0\u05b1\0\u05e0\0\u060f\0\u063e\0\u066d\0\u01a7\0\u01a7" + + "\0\u01a7\0\u01a7\0\u069c\0\u01a7\0\u06cb\0\u06fa\0\u0729\0\u0758" + + "\0\u0787\0\u07b6\0\u07e5\0\u0814\0\u0843\0\u0872\0\u08a1\0\u08d0" + + "\0\u08ff\0\u092e\0\u095d\0\u098c\0\u09bb\0\u09ea\0\u0a19\0\u0a48" + + "\0\u0a77\0\u0aa6\0\u0ad5\0\u0b04\0\u0b33\0\u0b62\0\u0b91\0\u0bc0" + + "\0\u0bef\0\u0c1e\0\u0c4d\0\u0c7c\0\u0cab\0\u0cda\0\u0d09\0\u0d38" + + "\0\u0d67\0\u0d96\0\u0dc5\0\u0df4\0\u0e23\0\u0e52\0\u0e81\0\u0eb0" + + "\0\u0edf\0\u0f0e\0\u0f3d\0\u0f6c\0\u0f9b\0\u0fca\0\u0ff9\0\u01a7" + + "\0\u1028\0\u01a7\0\u1057\0\u1086\0\u10b5\0\u10e4\0\u1113\0\u1142" + + "\0\u1171\0\u11a0\0\u11cf\0\u11fe\0\u122d\0\u125c\0\u128b\0\u12ba" + + "\0\u12e9\0\u1318\0\u1347\0\u1376\0\u13a5\0\u13d4\0\u1403\0\u1432" + + "\0\u1461\0\u1490\0\u14bf\0\u14ee\0\u151d\0\u154c\0\u157b\0\u15aa" + + "\0\u15d9\0\u1608\0\u1637\0\u1666\0\u1695\0\u16c4\0\u16f3\0\u1722" + + "\0\u1751\0\u1780\0\u17af\0\u17de\0\u180d\0\u183c\0\u186b\0\u189a" + + "\0\u18c9\0\u18f8\0\u1927\0\u1956\0\u1985\0\u19b4\0\u19e3\0\u1a12" + + "\0\u1a41\0\u1a70\0\u1a9f\0\u1ace\0\u1afd\0\u1b2c\0\u1b5b\0\u1b8a" + + "\0\u1bb9\0\u1be8\0\u1c17\0\u1c46\0\u1c75\0\u1ca4\0\u1cd3\0\u1d02" + + "\0\u1d31\0\u1d60\0\u1d8f\0\u1dbe\0\u1ded\0\u1e1c\0\u1e4b\0\u1e7a" + + "\0\u1ea9\0\u1ed8\0\u1f07\0\u1f36\0\u1f65\0\u1f94\0\u1fc3\0\u1ff2" + + "\0\u2021\0\u2050\0\u207f\0\u20ae\0\u20dd\0\u210c\0\u213b\0\u216a" + + "\0\u2199\0\u21c8\0\u21f7\0\u2226\0\u2255\0\u2284\0\u22b3\0\u22e2" + + "\0\u2311\0\u2340\0\353\0\u236f\0\u239e\0\u23cd\0\u23fc\0\u242b" + + "\0\u245a\0\u2489\0\u24b8\0\u24e7\0\u2516\0\u2545\0\u2574\0\u25a3" + + "\0\u25d2\0\u2601\0\u2630\0\u265f\0\u268e\0\u26bd\0\u26ec\0\u271b" + + "\0\u274a\0\u2779\0\u27a8\0\u27d7\0\u2806\0\u2835\0\u2864\0\u2893" + + "\0\u28c2\0\u28f1\0\u2920\0\u294f\0\u297e\0\u29ad\0\u29dc\0\u2a0b" + + "\0\u2a3a\0\u2a69\0\u2a98\0\u2ac7\0\u2af6\0\u2b25\0\u2b54\0\u2b83" + + "\0\u2bb2\0\u2be1\0\u2c10\0\u2c3f\0\u2c6e\0\u2c9d\0\u2ccc\0\u2cfb" + + "\0\u2d2a\0\u2d59\0\u2d88\0\u2db7\0\u2de6\0\u2e15\0\u2e44\0\u2e73" + + "\0\u2ea2\0\u2ed1\0\u2f00\0\u2f2f\0\u2f5e\0\u2f8d\0\u2fbc\0\u2feb" + + "\0\u301a\0\u3049\0\u3078\0\u30a7\0\u30d6\0\u3105\0\u3134\0\u3163" + + "\0\u3192\0\u31c1\0\u31f0\0\u321f\0\u324e\0\u327d\0\u32ac\0\u32db" + + "\0\u330a\0\u2601\0\u3339\0\u3368\0\u3397\0\u33c6\0\u33f5\0\u3424" + + "\0\u3453\0\u3482\0\u34b1\0\u34e0\0\u350f\0\u353e\0\u356d\0\u359c" + + "\0\u35cb\0\u35fa\0\u3629\0\u3658\0\u3687\0\u36b6\0\u36e5\0\u3714" + + "\0\u3743\0\u3772\0\u37a1\0\u37d0\0\u37ff\0\u382e\0\u385d\0\u388c" + + "\0\u38bb\0\u38ea\0\u3919\0\u3948\0\u3977\0\u39a6\0\u39d5\0\u3a04" + + "\0\u3a33\0\u3a62\0\u3a91\0\u3ac0\0\u3aef\0\u3b1e\0\u3b4d\0\u3b7c" + + "\0\u3bab\0\u3bda\0\u3c09\0\u3c38\0\u3c67\0\u3c96\0\u3cc5\0\u3cf4" + + "\0\u3d23\0\u3d52\0\u3d81\0\u3db0\0\u3ddf\0\u3e0e\0\u3e3d\0\u3e6c" + + "\0\u3368\0\u3e9b\0\u3eca\0\u3ef9\0\u3f28\0\u3f57\0\u3f86\0\u3fb5" + + "\0\u3fe4\0\u4013\0\u4042\0\u4071\0\u40a0\0\u40cf\0\u40fe\0\u412d" + + "\0\u415c\0\u418b\0\u41ba\0\u41e9\0\u4218\0\u4247\0\u4276\0\u42a5" + + "\0\u42d4\0\u4303\0\u4332\0\u4361\0\u4390\0\u43bf\0\u43ee\0\u441d" + + "\0\u444c\0\u447b\0\u44aa\0\u44d9\0\u4508\0\u4537\0\u4566\0\u4595" + + "\0\u45c4\0\u45f3\0\u4622\0\u4651\0\u4680\0\u46af\0\u46de\0\u470d" + + "\0\u473c\0\u476b\0\u479a\0\u47c9\0\u47f8\0\u4827\0\u4856\0\u4885" + + "\0\u48b4\0\u48e3\0\u4912\0\u4941\0\u4970\0\u499f\0\u49ce\0\u49fd" + + "\0\u4a2c\0\u4a5b\0\u4a8a\0\u4ab9\0\u4ae8\0\u4b17\0\u4b46\0\u4b75" + + "\0\u4ba4\0\u4bd3\0\u4c02\0\u4c31\0\u4c60\0\u4c8f\0\u4cbe\0\u4ced" + + "\0\u4d1c\0\u4d4b\0\u4d7a\0\u4da9\0\u4dd8\0\u4e07\0\u4e36\0\u4e65" + + "\0\u4e94\0\u4ec3\0\u4ef2\0\u4f21\0\u4f50\0\u4f7f\0\u4fae\0\u4fdd" + + "\0\u500c\0\u503b\0\u506a\0\u5099\0\u50c8\0\u50f7\0\u5126\0\u5155" + + "\0\u5184\0\u51b3\0\u51e2\0\u5211\0\u5240\0\u526f\0\u529e\0\u52cd" + + "\0\u52fc\0\u532b\0\u535a\0\u5389\0\u53b8\0\u53e7\0\u5416\0\u5445" + + "\0\u5474\0\u54a3\0\u54d2\0\u5501\0\u5530\0\u555f\0\u558e\0\u55bd" + + "\0\u55ec\0\u561b\0\u564a\0\u5679\0\u56a8\0\u56d7\0\u5706\0\u5735" + + "\0\u5764\0\u5793\0\u57c2\0\u57f1\0\u5820\0\u584f\0\u587e\0\u58ad" + + "\0\u58dc\0\u590b\0\u593a\0\u5969\0\u5998\0\u59c7\0\u59f6\0\u5a25" + + "\0\u5a54\0\u5a83\0\u5ab2\0\u5ae1\0\u5b10\0\u5b3f\0\u5b6e\0\u5b9d" + + "\0\u5bcc\0\u5bfb\0\u5c2a\0\u5c59\0\u5c88\0\u5cb7\0\u5ce6\0\u5d15" + + "\0\u5d44\0\u5d73\0\u5da2\0\u5dd1\0\u5e00\0\u5e2f\0\u5e5e\0\u5e8d" + + "\0\u5ebc\0\u5eeb\0\u5f1a\0\u5f49\0\u5f78\0\u5fa7\0\u5fd6\0\u6005" + + "\0\u6034\0\u6063\0\u6092\0\u60c1\0\u60f0\0\u611f\0\u614e\0\u617d" + + "\0\u61ac\0\u61db\0\u620a\0\u6239\0\u6268\0\u6297\0\u62c6\0\u62f5" + + "\0\u6324\0\u6353\0\u6382\0\u63b1\0\u63e0\0\u640f\0\u643e\0\u646d" + + "\0\u649c\0\u64cb\0\u64fa\0\u6529\0\u6558\0\u6587\0\u65b6\0\u65e5" + + "\0\u6614\0\u6643\0\u6672\0\u66a1\0\u66d0\0\u66ff\0\u672e\0\u675d" + + "\0\u678c\0\u67bb\0\u67ea\0\u6819\0\u6848\0\u6877\0\u68a6\0\u68d5" + + "\0\u6904\0\u6933\0\u6962\0\u6991\0\u69c0\0\u69ef\0\u6a1e\0\u6a4d" + + "\0\u6a7c\0\u6aab\0\u6ada\0\u6b09\0\u6b38\0\u6b67\0\u6b96\0\u6bc5" + + "\0\u6bf4\0\u6c23\0\u6c52\0\u6c81\0\u6cb0\0\u6cdf\0\u6d0e\0\u6d3d" + + "\0\u6d6c\0\u6d9b\0\u6dca\0\u6df9\0\u6e28\0\u6e57\0\u6e86\0\u6eb5" + + "\0\u6ee4\0\u6f13\0\u6f42\0\u6f71\0\u6fa0\0\u6fcf\0\u6ffe\0\u702d" + + "\0\u705c\0\u708b\0\u70ba\0\u70e9\0\u7118\0\u7147\0\u7176\0\u71a5" + + "\0\u71d4\0\u7203\0\u7232\0\u7261\0\u7290\0\u72bf\0\u72ee\0\u731d" + + "\0\u734c\0\u737b\0\u73aa\0\u73d9\0\u7408\0\u7437\0\u7466\0\u7495" + + "\0\u74c4\0\u74f3\0\u7522\0\u7551\0\u7580\0\u75af\0\u75de\0\u760d" + + "\0\u763c\0\u766b\0\u769a\0\u76c9\0\u76f8\0\u7727\0\u7756\0\u7785" + + "\0\u77b4\0\u77e3\0\u7812\0\u7841\0\u7870\0\u789f\0\u78ce\0\u78fd" + + "\0\u792c\0\u795b\0\u798a\0\u79b9\0\u79e8\0\u7a17\0\u7a46\0\u7a75" + + "\0\u7aa4\0\u7ad3\0\u7b02\0\u7b31\0\u7b60\0\u7b8f\0\u7bbe\0\u7bed" + + "\0\u7c1c\0\u7c4b\0\u7c7a\0\u7ca9\0\u7cd8\0\u7d07\0\u7d36\0\u7d65" + + "\0\u7d94\0\u7dc3\0\u7df2\0\u7e21\0\u7e50\0\u7e7f\0\u7eae\0\u7edd" + + "\0\u7f0c\0\u7f3b\0\u7f6a\0\u7f99\0\u7fc8\0\u7ff7\0\u8026\0\u8055" + + "\0\u8084\0\u80b3\0\u80e2\0\u8111\0\u8140\0\u816f\0\u819e\0\u81cd" + + "\0\u81fc\0\u822b\0\u825a\0\u8289\0\u82b8\0\u82e7\0\u8316\0\u8345" + + "\0\u8374\0\u83a3\0\u83d2\0\u8401\0\u8430\0\u845f\0\u848e\0\u84bd" + + "\0\u84ec\0\u851b\0\u854a\0\u8579\0\u85a8\0\u85d7\0\u8606\0\u8635" + + "\0\u8664\0\u8693\0\u86c2\0\u86f1\0\u8720\0\u874f\0\u877e\0\u87ad" + + "\0\u87dc\0\u880b\0\u883a\0\u8869\0\u8898\0\u88c7\0\u88f6\0\u8925" + + "\0\u8954\0\u8983\0\u89b2\0\u89e1\0\u8a10\0\u8a3f\0\u8a6e\0\u8a9d" + + "\0\u8acc\0\u8afb\0\u8b2a\0\u8b59\0\u8b88\0\u8bb7\0\u8be6\0\u8c15" + + "\0\u8c44\0\u8c73\0\u8ca2\0\u8cd1\0\u8d00\0\u8d2f\0\u8d5e\0\u8d8d" + + "\0\u8dbc\0\u8deb\0\u8e1a\0\u8e49\0\u8e78\0\u8ea7\0\u8ed6\0\u8f05" + "\0\u8f34\0\u8b2a\0\u8f63"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[795]; + 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 = "\3\6\1\7\1\10\1\11\1\6\1\12\1\13\1\6" + "\1\14\7\6\1\15\1\6\1\16\1\17\1\20\1\21" + + "\1\22\1\23\2\6\1\24\1\25\1\6\1\26\1\27" + "\1\30\2\6\1\31\1\32\1\33\3\6\1\34\1\6" + + "\1\15\1\20\1\6\7\35\1\36\12\35\1\37\3\35" + "\1\40\3\35\1\41\21\35\1\42\1\43\1\44\3\45" + + "\1\46\1\45\1\11\1\47\1\0\2\45\1\50\3\45" + "\1\51\34\45\1\52\3\45\12\53\1\54\44\53\16\55" + + "\1\54\40\55\4\6\2\0\1\6\2\0\51\6\1\7" + "\1\0\1\11\1\6\2\0\46\6\1\0\1\56\11\0" + "\1\57\1\0\1\56\1\0\1\56\2\0\11\56\1\0" + + "\17\56\1\0\3\56\3\0\1\11\1\0\1\11\130\0" + "\4\14\2\60\1\14\1\61\1\60\1\62\1\6\44\14" + "\4\6\2\0\1\6\2\0\20\6\1\63\31\6\2\0" + + "\1\6\2\0\23\6\1\64\26\6\2\0\1\6\2\0" + "\14\6\1\65\3\6\1\66\2\6\1\67\1\70\25\6" + "\2\0\1\6\2\0\16\6\1\71\7\6\1\72\23\6" + + "\2\0\1\6\2\0\14\6\1\73\10\6\1\74\7\6" + "\1\75\14\6\2\0\1\6\2\0\16\6\1\76\4\6" + "\1\77\26\6\2\0\1\6\2\0\25\6\1\100\5\6" + + "\1\101\5\6\1\102\10\6\2\0\1\6\2\0\17\6" + "\1\103\4\6\1\104\1\105\1\6\1\106\4\6\1\107" + + "\15\6\2\0\1\6\2\0\11\6\1\110\14\6\1\111" + "\3\6\1\112\10\6\1\110\6\6\2\0\1\6\2\0" + + "\13\6\1\113\17\6\1\114\16\6\2\0\1\6\2\0" + "\16\6\1\115\1\6\1\116\31\6\2\0\1\6\2\0" + + "\33\6\1\117\16\6\2\0\1\6\2\0\17\6\1\120" + "\1\121\31\6\2\0\1\6\2\0\25\6\1\122\24\6" + + "\2\0\1\6\2\0\20\6\1\123\13\6\1\124\15\6" + "\2\0\1\6\2\0\30\6\1\125\15\6\7\35\1\0" + + "\44\35\3\0\7\35\1\0\13\35\1\126\30\35\3\0" + "\7\35\1\0\13\35\1\127\3\35\1\130\24\35\3\0" + + "\7\35\1\0\22\35\1\131\21\35\2\0\1\132\23\0" + "\1\133\56\0\1\134\3\0\1\135\61\0\1\132\23\0" + + "\1\132\5\45\3\0\2\45\1\0\3\45\1\0\34\45" + "\1\0\6\45\1\46\1\45\1\11\2\0\2\45\1\0" + + "\3\45\1\0\34\45\1\0\3\45\12\53\1\0\44\53" + "\16\55\1\0\40\55\1\0\2\56\12\0\1\56\1\0" + + "\2\56\1\0\31\56\1\0\3\56\1\0\1\136\13\0" + "\1\136\1\0\1\136\2\0\11\136\1\0\17\136\1\0" + + "\3\136\7\60\1\61\1\60\1\137\1\140\44\60\11\61" + "\1\141\1\142\44\61\4\14\2\60\1\14\1\0\1\60" + + "\46\14\4\6\2\0\1\6\2\0\23\6\1\143\26\6" + "\2\0\1\6\2\0\14\6\1\144\35\6\2\0\1\6" + "\2\0\16\6\1\145\1\146\32\6\2\0\1\6\2\0" + + "\12\6\1\147\20\6\1\150\16\6\2\0\1\6\2\0" + "\12\6\1\151\37\6\2\0\1\6\2\0\33\6\1\152" + + "\16\6\2\0\1\6\2\0\17\6\1\153\32\6\2\0" + "\1\6\2\0\33\6\1\154\16\6\2\0\1\6\2\0" + "\23\6\1\155\26\6\2\0\1\6\2\0\27\6\1\156" + + "\22\6\2\0\1\6\2\0\23\6\1\157\26\6\2\0" + "\1\6\2\0\35\6\1\160\14\6\2\0\1\6\2\0" + "\25\6\1\161\24\6\2\0\1\6\2\0\23\6\1\162" + + "\26\6\2\0\1\6\2\0\33\6\1\163\16\6\2\0" + "\1\6\2\0\13\6\1\164\7\6\1\165\26\6\2\0" + "\1\6\2\0\17\6\1\166\32\6\2\0\1\6\2\0" + + "\12\6\1\167\11\6\1\170\25\6\2\0\1\6\2\0" + "\26\6\1\171\23\6\2\0\1\6\2\0\27\6\1\172" + + "\22\6\2\0\1\6\2\0\12\6\1\173\37\6\2\0" + "\1\6\2\0\20\6\1\174\2\6\1\175\26\6\2\0" + "\1\6\2\0\25\6\1\176\1\177\23\6\2\0\1\6" + + "\2\0\16\6\1\200\33\6\2\0\1\6\2\0\12\6" + "\1\201\37\6\2\0\1\6\2\0\27\6\1\202\22\6" + "\2\0\1\6\2\0\33\6\1\203\16\6\2\0\1\6" + + "\2\0\15\6\1\204\7\6\1\205\16\6\1\204\5\6" + "\2\0\1\6\2\0\26\6\1\206\23\6\2\0\1\6" + "\2\0\16\6\1\207\33\6\2\0\1\6\2\0\21\6" + + "\1\210\1\6\1\211\3\6\1\212\5\6\1\213\1\6" + "\1\214\5\6\1\210\4\6\2\0\1\6\2\0\14\6" + + "\1\215\35\6\2\0\1\6\2\0\12\6\1\216\37\6" + "\2\0\1\6\2\0\17\6\1\217\32\6\2\0\1\6" + + "\2\0\16\6\1\220\27\6\7\35\1\0\13\35\1\221" + "\30\35\3\0\7\35\1\0\14\35\1\222\27\35\3\0" + + "\7\35\1\0\20\35\1\223\23\35\3\0\7\35\1\0" + "\22\35\1\224\21\35\2\0\1\225\32\0\1\225\23\0" + + "\1\225\23\0\1\226\57\0\1\227\62\0\1\230\27\0" + "\2\136\12\0\1\136\1\0\2\136\1\0\31\136\1\0" + + "\3\136\7\60\1\0\47\60\7\61\1\0\47\61\4\6" + "\2\0\1\6\2\0\27\6\1\231\22\6\2\0\1\6" + "\2\0\14\6\1\232\35\6\2\0\1\6\2\0\12\6" + + "\1\233\5\6\1\234\31\6\2\0\1\6\2\0\13\6" + "\1\235\10\6\1\236\1\6\1\237\4\6\1\240\1\241" + + "\1\6\1\242\13\6\2\0\1\6\2\0\11\6\1\243" + "\4\6\1\244\1\6\1\245\5\6\1\246\14\6\1\243" + + "\6\6\2\0\1\6\2\0\36\6\1\247\13\6\2\0" + "\1\6\2\0\16\6\1\250\33\6\2\0\1\6\2\0" + "\16\6\1\251\33\6\2\0\1\6\2\0\20\6\1\252" + + "\31\6\2\0\1\6\2\0\24\6\1\253\25\6\2\0" + "\1\6\2\0\13\6\1\254\36\6\2\0\1\6\2\0" + "\20\6\1\255\31\6\2\0\1\6\2\0\13\6\1\256" + + "\36\6\2\0\1\6\2\0\16\6\1\257\33\6\2\0" + "\1\6\2\0\32\6\1\260\17\6\2\0\1\6\2\0" + "\30\6\1\261\21\6\2\0\1\6\2\0\26\6\1\262" + + "\23\6\2\0\1\6\2\0\16\6\1\263\33\6\2\0" + "\1\6\2\0\35\6\1\264\14\6\2\0\1\6\2\0" + "\26\6\1\265\23\6\2\0\1\6\2\0\16\6\1\266" + + "\33\6\2\0\1\6\2\0\20\6\1\267\31\6\2\0" + "\1\6\2\0\25\6\1\270\24\6\2\0\1\6\2\0" + + "\11\6\1\243\1\271\3\6\1\272\1\273\1\274\2\6" + "\1\275\1\276\1\6\1\277\1\300\13\6\1\243\6\6" + + "\2\0\1\6\2\0\11\6\1\301\31\6\1\301\6\6" + "\2\0\1\6\2\0\24\6\1\302\25\6\2\0\1\6" + "\2\0\33\6\1\303\16\6\2\0\1\6\2\0\12\6" + + "\1\304\37\6\2\0\1\6\2\0\40\6\1\305\11\6" + "\2\0\1\6\2\0\35\6\1\306\14\6\2\0\1\6" + "\2\0\16\6\1\307\33\6\2\0\1\6\2\0\20\6" + + "\1\310\31\6\2\0\1\6\2\0\20\6\1\311\31\6" + "\2\0\1\6\2\0\23\6\1\312\26\6\2\0\1\6" + "\2\0\31\6\1\313\20\6\2\0\1\6\2\0\21\6" + + "\1\314\23\6\1\314\4\6\2\0\1\6\2\0\35\6" + "\1\315\14\6\2\0\1\6\2\0\33\6\1\316\16\6" + "\2\0\1\6\2\0\27\6\1\317\22\6\2\0\1\6" + + "\2\0\16\6\1\320\33\6\2\0\1\6\2\0\26\6" + "\1\321\23\6\2\0\1\6\2\0\34\6\1\322\15\6" + "\2\0\1\6\2\0\20\6\1\323\31\6\2\0\1\6" + + "\2\0\23\6\1\324\26\6\2\0\1\6\2\0\12\6" + "\1\325\37\6\2\0\1\6\2\0\12\6\1\326\33\6" + + "\7\35\1\0\14\35\1\327\27\35\3\0\7\35\1\0" + "\5\35\1\330\36\35\3\0\7\35\1\0\21\35\1\222" + + "\22\35\3\0\7\35\1\0\23\35\1\331\20\35\36\0" + "\1\332\47\0\1\333\47\0\1\334\72\0\1\227\25\0" + + "\4\6\2\0\1\6\2\0\20\6\1\335\31\6\2\0" + "\1\6\2\0\20\6\1\336\31\6\2\0\1\6\2\0" + "\16\6\1\337\33\6\2\0\1\6\2\0\33\6\1\340" + + "\16\6\2\0\1\6\2\0\33\6\1\341\16\6\2\0" + "\1\6\2\0\16\6\1\342\33\6\2\0\1\6\2\0" + "\13\6\1\113\36\6\2\0\1\6\2\0\20\6\1\343" + + "\31\6\2\0\1\6\2\0\14\6\1\344\35\6\2\0" + "\1\6\2\0\20\6\1\345\31\6\2\0\1\6\2\0" + "\23\6\1\346\26\6\2\0\1\6\2\0\25\6\1\347" + + "\24\6\2\0\1\6\2\0\25\6\1\350\24\6\2\0" + "\1\6\2\0\34\6\1\351\15\6\2\0\1\6\2\0" + "\20\6\1\352\31\6\2\0\1\6\2\0\14\6\1\353" + + "\35\6\2\0\1\6\2\0\13\6\1\354\36\6\2\0" + "\1\6\2\0\20\6\1\355\31\6\2\0\1\6\2\0" + "\20\6\1\356\31\6\2\0\1\6\2\0\16\6\1\357" + + "\33\6\2\0\1\6\2\0\41\6\1\360\10\6\2\0" + "\1\6\2\0\27\6\1\361\1\362\4\6\1\363\14\6" + "\2\0\1\6\2\0\12\6\1\364\37\6\2\0\1\6" + + "\2\0\34\6\1\365\15\6\2\0\1\6\2\0\17\6" + "\1\366\32\6\2\0\1\6\2\0\33\6\1\367\16\6" + "\2\0\1\6\2\0\33\6\1\370\16\6\2\0\1\6" + + "\2\0\13\6\1\371\36\6\2\0\1\6\2\0\21\6" + "\1\313\23\6\1\313\4\6\2\0\1\6\2\0\26\6" + "\1\372\23\6\2\0\1\6\2\0\13\6\1\373\36\6" + + "\2\0\1\6\2\0\31\6\1\374\20\6\2\0\1\6" + "\2\0\31\6\1\375\20\6\2\0\1\6\2\0\24\6" + "\1\376\1\347\24\6\2\0\1\6\2\0\23\6\1\377" + + "\26\6\2\0\1\6\2\0\25\6\1\u0100\24\6\2\0" + "\1\6\2\0\17\6\1\u0101\32\6\2\0\1\6\2\0" + + "\11\6\1\u0102\31\6\1\u0102\6\6\2\0\1\6\2\0" + "\34\6\1\u0103\15\6\2\0\1\6\2\0\20\6\1\u0104" + + "\31\6\2\0\1\6\2\0\12\6\1\271\4\6\1\u0105" + "\3\6\1\u0106\1\6\1\u0107\1\6\1\u0108\1\u0109\1\6" + + "\1\u010a\1\6\1\u010b\15\6\2\0\1\6\2\0\40\6" + "\1\u010c\11\6\2\0\1\6\2\0\14\6\1\u010d\35\6" + + "\2\0\1\6\2\0\20\6\1\u010e\31\6\2\0\1\6" + "\2\0\16\6\1\u010f\33\6\2\0\1\6\2\0\23\6" + + "\1\u0110\26\6\2\0\1\6\2\0\26\6\1\u0111\23\6" + "\2\0\1\6\2\0\33\6\1\313\16\6\2\0\1\6" + + "\2\0\24\6\1\u0112\25\6\2\0\1\6\2\0\34\6" + "\1\u0113\15\6\2\0\1\6\2\0\14\6\1\u0114\35\6" + + "\2\0\1\6\2\0\16\6\1\u0115\33\6\2\0\1\6" + "\2\0\16\6\1\u0116\33\6\2\0\1\6\2\0\35\6" + + "\1\u0117\14\6\2\0\1\6\2\0\33\6\1\u0118\16\6" + "\2\0\1\6\2\0\36\6\1\u0119\13\6\2\0\1\6" + + "\2\0\16\6\1\u011a\1\6\1\u011b\31\6\2\0\1\6" + "\2\0\12\6\1\232\37\6\2\0\1\6\2\0\14\6" + + "\1\u011c\1\u011d\11\6\1\u011e\14\6\1\u011d\5\6\2\0" + "\1\6\2\0\16\6\1\u011f\33\6\2\0\1\6\2\0" + + "\11\6\1\u0120\31\6\1\u0120\2\6\7\35\1\0\5\35" + "\1\330\7\35\1\222\26\35\3\0\7\35\1\0\3\35" + + "\1\u0121\40\35\3\0\1\35\2\331\4\35\1\0\1\331" + "\2\35\41\331\3\332\1\0\2\u0122\5\0\1\u0122\2\0" + + "\1\332\3\u0122\14\332\1\u0122\17\332\1\u0122\3\332\15\0" + "\1\334\7\0\1\227\44\0\1\u0123\43\0\4\6\2\0" + + "\1\6\2\0\33\6\1\u0124\16\6\2\0\1\6\2\0" + "\25\6\1\u0125\24\6\2\0\1\6\2\0\35\6\1\u0126" + + "\14\6\2\0\1\6\2\0\33\6\1\u0127\16\6\2\0" + "\1\6\2\0\26\6\1\u0128\23\6\2\0\1\6\2\0" + + "\13\6\1\u0129\36\6\2\0\1\6\2\0\37\6\1\u012a" + "\12\6\2\0\1\6\2\0\20\6\1\u012b\31\6\2\0" + + "\1\6\2\0\33\6\1\u012c\16\6\2\0\1\6\2\0" + "\25\6\1\u012d\24\6\2\0\1\6\2\0\13\6\1\u012e" + + "\36\6\2\0\1\6\2\0\36\6\1\u012f\13\6\2\0" + "\1\6\2\0\12\6\1\347\37\6\2\0\1\6\2\0" + + "\33\6\1\u0130\16\6\2\0\1\6\2\0\15\6\1\205" + "\26\6\1\205\5\6\2\0\1\6\2\0\12\6\1\u0131" + + "\37\6\2\0\1\6\2\0\12\6\1\u0132\37\6\2\0" + "\1\6\2\0\12\6\1\271\4\6\1\u0133\32\6\2\0" + + "\1\6\2\0\15\6\1\u0134\1\6\1\u0135\3\6\1\u0136" + "\7\6\1\u0137\10\6\1\u0134\5\6\2\0\1\6\2\0" + + "\16\6\1\u0138\7\6\1\u0139\23\6\2\0\1\6\2\0" + "\20\6\1\u013a\31\6\2\0\1\6\2\0\23\6\1\u013b" + + "\26\6\2\0\1\6\2\0\20\6\1\u013c\31\6\2\0" + "\1\6\2\0\33\6\1\u013d\5\6\1\u013e\10\6\2\0" + + "\1\6\2\0\23\6\1\u013f\26\6\2\0\1\6\2\0" + "\20\6\1\u0140\31\6\2\0\1\6\2\0\27\6\1\u0141" + + "\22\6\2\0\1\6\2\0\20\6\1\u0142\31\6\2\0" + "\1\6\2\0\17\6\1\u0143\32\6\2\0\1\6\2\0" + + "\25\6\1\313\24\6\2\0\1\6\2\0\12\6\1\u0144" + "\37\6\2\0\1\6\2\0\35\6\1\u0145\14\6\2\0" + + "\1\6\2\0\13\6\1\u0143\36\6\2\0\1\6\2\0" + "\26\6\1\u0146\23\6\2\0\1\6\2\0\25\6\1\u0147" + + "\24\6\2\0\1\6\2\0\24\6\1\u0148\25\6\2\0" + "\1\6\2\0\12\6\1\u0149\37\6\2\0\1\6\2\0" + + "\23\6\1\u014a\26\6\2\0\1\6\2\0\12\6\1\u014b" + "\37\6\2\0\1\6\2\0\14\6\1\u014c\1\u014d\26\6" + + "\1\u014d\5\6\2\0\1\6\2\0\27\6\1\u014e\22\6" + "\2\0\1\6\2\0\34\6\1\u014f\15\6\2\0\1\6" + + "\2\0\23\6\1\u0150\26\6\2\0\1\6\2\0\16\6" + "\1\u0151\11\6\1\u0152\21\6\2\0\1\6\2\0\23\6" + + "\1\u0153\26\6\2\0\1\6\2\0\33\6\1\u0154\16\6" + "\2\0\1\6\2\0\14\6\1\u0155\35\6\2\0\1\6" + + "\2\0\14\6\1\u0156\35\6\2\0\1\6\2\0\20\6" + "\1\u0157\31\6\2\0\1\6\2\0\25\6\1\u0158\24\6" + + "\2\0\1\6\2\0\20\6\1\u0159\31\6\2\0\1\6" + "\2\0\13\6\1\u015a\36\6\2\0\1\6\2\0\25\6" + + "\1\u015b\24\6\2\0\1\6\2\0\12\6\1\u015c\37\6" + "\2\0\1\6\2\0\17\6\1\u015d\32\6\2\0\1\6" + + "\2\0\20\6\1\u015e\31\6\2\0\1\6\2\0\12\6" + "\1\u015f\37\6\2\0\1\6\2\0\12\6\1\u0160\37\6" + + "\2\0\1\6\2\0\20\6\1\u0161\31\6\2\0\1\6" + "\2\0\20\6\1\u0162\31\6\2\0\1\6\2\0\20\6" + + "\1\u0163\31\6\2\0\1\6\2\0\33\6\1\u0143\16\6" + "\2\0\1\6\2\0\14\6\1\u0164\35\6\2\0\1\6" + + "\2\0\34\6\1\u0165\15\6\2\0\1\6\2\0\16\6" + "\1\u0166\33\6\2\0\1\6\2\0\16\6\1\310\33\6" + + "\2\0\1\6\2\0\36\6\1\u0167\13\6\2\0\1\6" + "\2\0\23\6\1\u0168\22\6\7\35\1\0\3\35\1\331" + + "\40\35\16\0\1\332\43\0\4\6\2\0\1\6\2\0" + "\25\6\1\u0107\24\6\2\0\1\6\2\0\36\6\1\313" + + "\13\6\2\0\1\6\2\0\20\6\1\u0169\31\6\2\0" + "\1\6\2\0\26\6\1\u016a\23\6\2\0\1\6\2\0" + + "\41\6\1\u016b\10\6\2\0\1\6\2\0\11\6\1\u016c" + "\31\6\1\u016c\6\6\2\0\1\6\2\0\34\6\1\u016d" + + "\15\6\2\0\1\6\2\0\33\6\1\u0161\16\6\2\0" + "\1\6\2\0\16\6\1\u016e\33\6\2\0\1\6\2\0" + + "\27\6\1\u016f\22\6\2\0\1\6\2\0\34\6\1\u0170" + "\15\6\2\0\1\6\2\0\16\6\1\u0171\33\6\2\0" + + "\1\6\2\0\14\6\1\u0172\35\6\2\0\1\6\2\0" + "\16\6\1\u0173\33\6\2\0\1\6\2\0\23\6\1\u0174" + + "\26\6\2\0\1\6\2\0\23\6\1\77\26\6\2\0" + "\1\6\2\0\23\6\1\u0175\26\6\2\0\1\6\2\0" + + "\26\6\1\u0176\23\6\2\0\1\6\2\0\13\6\1\u0177" + "\36\6\2\0\1\6\2\0\20\6\1\u0178\31\6\2\0" + + "\1\6\2\0\32\6\1\u0179\17\6\2\0\1\6\2\0" + "\13\6\1\113\17\6\1\u017a\16\6\2\0\1\6\2\0" + + "\15\6\1\u017b\26\6\1\u017b\5\6\2\0\1\6\2\0" + "\14\6\1\u0143\35\6\2\0\1\6\2\0\25\6\1\u017c" + + "\24\6\2\0\1\6\2\0\20\6\1\u017d\31\6\2\0" + "\1\6\2\0\35\6\1\u017e\14\6\2\0\1\6\2\0" + + "\32\6\1\u017f\17\6\2\0\1\6\2\0\14\6\1\u0180" + "\20\6\1\u0181\14\6\2\0\1\6\2\0\26\6\1\u0182" + + "\23\6\2\0\1\6\2\0\14\6\1\u0183\35\6\2\0" + "\1\6\2\0\20\6\1\313\31\6\2\0\1\6\2\0" + + "\13\6\1\u0184\36\6\2\0\1\6\2\0\26\6\1\u0185" + "\23\6\2\0\1\6\2\0\25\6\1\u0149\24\6\2\0" + + "\1\6\2\0\32\6\1\u0186\17\6\2\0\1\6\2\0" + "\26\6\1\u0187\23\6\2\0\1\6\2\0\30\6\1\u0188" + + "\21\6\2\0\1\6\2\0\33\6\1\u0189\16\6\2\0" + "\1\6\2\0\13\6\1\u018a\36\6\2\0\1\6\2\0" + + "\24\6\1\u018b\25\6\2\0\1\6\2\0\23\6\1\u018c" + "\26\6\2\0\1\6\2\0\23\6\1\u018d\26\6\2\0" + + "\1\6\2\0\12\6\1\u018e\37\6\2\0\1\6\2\0" + "\35\6\1\u0143\14\6\2\0\1\6\2\0\32\6\1\u018f" + + "\17\6\2\0\1\6\2\0\35\6\1\u0190\14\6\2\0" + "\1\6\2\0\14\6\1\u0191\35\6\2\0\1\6\2\0" + + "\26\6\1\u0192\23\6\2\0\1\6\2\0\20\6\1\u0193" + "\31\6\2\0\1\6\2\0\13\6\1\u0194\36\6\2\0" + + "\1\6\2\0\12\6\1\u0195\37\6\2\0\1\6\2\0" + "\12\6\1\u0196\37\6\2\0\1\6\2\0\12\6\1\u0197" + + "\1\6\1\u0198\3\6\1\u0199\4\6\1\u0107\1\6\1\u019a" + "\22\6\2\0\1\6\2\0\20\6\1\u019b\31\6\2\0" + + "\1\6\2\0\14\6\1\313\35\6\2\0\1\6\2\0" + "\26\6\1\u019c\23\6\2\0\1\6\2\0\12\6\1\u019d" + + "\37\6\2\0\1\6\2\0\33\6\1\u019e\16\6\2\0" + "\1\6\2\0\24\6\1\u019f\1\u01a0\7\6\1\u01a1\14\6" + + "\2\0\1\6\2\0\20\6\1\u01a2\31\6\2\0\1\6" + "\2\0\24\6\1\u01a3\25\6\2\0\1\6\2\0\11\6" + + "\1\243\1\271\3\6\1\244\1\273\1\274\3\6\1\276" + "\1\6\1\246\14\6\1\243\6\6\2\0\1\6\2\0" + + "\12\6\1\u01a4\37\6\2\0\1\6\2\0\15\6\1\u01a5" + "\26\6\1\u01a5\5\6\2\0\1\6\2\0\17\6\1\u01a6" + + "\32\6\2\0\1\6\2\0\16\6\1\u01a7\33\6\2\0" + "\1\6\2\0\24\6\1\u01a8\25\6\2\0\1\6\2\0" + + "\15\6\1\u01a9\26\6\1\u01a9\5\6\2\0\1\6\2\0" + "\33\6\1\u01aa\16\6\2\0\1\6\2\0\31\6\1\u01ab" + + "\20\6\2\0\1\6\2\0\20\6\1\u01ac\31\6\2\0" + "\1\6\2\0\16\6\1\u01ad\33\6\2\0\1\6\2\0" + + "\15\6\1\u01ae\26\6\1\u01ae\5\6\2\0\1\6\2\0" + "\17\6\1\202\32\6\2\0\1\6\2\0\12\6\1\u01af" + + "\37\6\2\0\1\6\2\0\15\6\1\u01b0\26\6\1\u01b0" + "\5\6\2\0\1\6\2\0\16\6\1\u01b1\33\6\2\0" + + "\1\6\2\0\25\6\1\u01b2\24\6\2\0\1\6\2\0" + "\32\6\1\313\17\6\2\0\1\6\2\0\40\6\1\u01b3" + + "\11\6\2\0\1\6\2\0\32\6\1\u01b4\17\6\2\0" + "\1\6\2\0\13\6\1\u01b5\36\6\2\0\1\6\2\0" + + "\23\6\1\u01b6\26\6\2\0\1\6\2\0\25\6\1\u01b7" + "\24\6\2\0\1\6\2\0\27\6\1\u01b8\22\6\2\0" + + "\1\6\2\0\23\6\1\u01b9\26\6\2\0\1\6\2\0" + "\34\6\1\313\15\6\2\0\1\6\2\0\37\6\1\u01ba" + + "\12\6\2\0\1\6\2\0\17\6\1\u01bb\32\6\2\0" + "\1\6\2\0\20\6\1\u01bc\31\6\2\0\1\6\2\0" + + "\20\6\1\u01bd\31\6\2\0\1\6\2\0\35\6\1\u01be" + "\14\6\2\0\1\6\2\0\24\6\1\u01bf\25\6\2\0" + + "\1\6\2\0\23\6\1\u01c0\3\6\1\361\1\u01c1\21\6" + "\2\0\1\6\2\0\23\6\1\u01c2\26\6\2\0\1\6" + + "\2\0\34\6\1\u01c3\15\6\2\0\1\6\2\0\34\6" + "\1\u01c4\15\6\2\0\1\6\2\0\27\6\1\u01c5\22\6" + + "\2\0\1\6\2\0\31\6\1\u01c6\20\6\2\0\1\6" + "\2\0\14\6\1\u01c7\35\6\2\0\1\6\2\0\34\6" + + "\1\u01c8\15\6\2\0\1\6\2\0\33\6\1\u01c9\16\6" + "\2\0\1\6\2\0\34\6\1\u01ca\15\6\2\0\1\6" + + "\2\0\13\6\1\u01cb\36\6\2\0\1\6\2\0\11\6" + "\1\u01cc\31\6\1\u01cc\6\6\2\0\1\6\2\0\20\6" + + "\1\u01cd\31\6\2\0\1\6\2\0\12\6\1\271\10\6" + "\1\u0106\6\6\1\u010a\1\6\1\u010b\15\6\2\0\1\6" + + "\2\0\16\6\1\u01ce\33\6\2\0\1\6\2\0\34\6" + "\1\u01cf\15\6\2\0\1\6\2\0\33\6\1\u01d0\16\6" + + "\2\0\1\6\2\0\20\6\1\u01d1\31\6\2\0\1\6" + "\2\0\14\6\1\u01d2\11\6\1\237\1\361\22\6\2\0" + + "\1\6\2\0\27\6\1\u01d3\22\6\2\0\1\6\2\0" + "\33\6\1\u01d4\16\6\2\0\1\6\2\0\12\6\1\u01d5" + + "\37\6\2\0\1\6\2\0\41\6\1\u01d6\10\6\2\0" + "\1\6\2\0\26\6\1\u01d7\23\6\2\0\1\6\2\0" + + "\41\6\1\u01d8\10\6\2\0\1\6\2\0\33\6\1\u01d9" + "\16\6\2\0\1\6\2\0\12\6\1\271\3\6\1\u01da" + + "\1\273\32\6\2\0\1\6\2\0\35\6\1\u01db\14\6" + "\2\0\1\6\2\0\13\6\1\u017c\36\6\2\0\1\6" + + "\2\0\13\6\1\u01dc\36\6\2\0\1\6\2\0\20\6" + "\1\u01dd\31\6\2\0\1\6\2\0\20\6\1\u01de\3\6" + + "\1\u01df\1\6\1\237\1\6\1\362\2\6\1\u01e0\16\6" + "\2\0\1\6\2\0\12\6\1\u01e1\37\6\2\0\1\6" + + "\2\0\11\6\1\u01e2\31\6\1\u01e2\6\6\2\0\1\6" + "\2\0\15\6\1\u01e3\26\6\1\u01e3\5\6\2\0\1\6" + + "\2\0\20\6\1\u015b\31\6\2\0\1\6\2\0\20\6" + "\1\u01e4\31\6\2\0\1\6\2\0\40\6\1\313\11\6" + + "\2\0\1\6\2\0\26\6\1\u01e5\23\6\2\0\1\6" + "\2\0\35\6\1\u01e6\14\6\2\0\1\6\2\0\24\6" + + "\1\236\11\6\1\u01e7\13\6\2\0\1\6\2\0\33\6" + "\1\u01e8\16\6\2\0\1\6\2\0\33\6\1\u01e9\16\6" + + "\2\0\1\6\2\0\31\6\1\u01ea\20\6\2\0\1\6" + "\2\0\15\6\1\u01eb\26\6\1\u01eb\5\6\2\0\1\6" + + "\2\0\25\6\1\u01ec\24\6\2\0\1\6\2\0\32\6" + "\1\u01ed\17\6\2\0\1\6\2\0\12\6\1\u01ee\37\6" + + "\2\0\1\6\2\0\20\6\1\u01ef\31\6\2\0\1\6" + "\2\0\25\6\1\u01f0\24\6\2\0\1\6\2\0\20\6" + + "\1\u01f1\31\6\2\0\1\6\2\0\27\6\1\u01f2\22\6" + "\2\0\1\6\2\0\26\6\1\u011a\23\6\2\0\1\6" + + "\2\0\20\6\1\u01f3\31\6\2\0\1\6\2\0\34\6" + "\1\u01f4\15\6\2\0\1\6\2\0\34\6\1\u01f5\15\6" + + "\2\0\1\6\2\0\33\6\1\u013d\16\6\2\0\1\6" + "\2\0\13\6\1\u01f6\36\6\2\0\1\6\2\0\25\6" + + "\1\u01f7\24\6\2\0\1\6\2\0\23\6\1\u01f8\26\6" + "\2\0\1\6\2\0\34\6\1\u01f9\15\6\2\0\1\6" + + "\2\0\24\6\1\u01fa\25\6\2\0\1\6\2\0\31\6" + "\1\u01fb\20\6\2\0\1\6\2\0\12\6\1\u01fc\37\6" + + "\2\0\1\6\2\0\14\6\1\u01fd\35\6\2\0\1\6" + "\2\0\23\6\1\u01fe\26\6\2\0\1\6\2\0\16\6" + + "\1\u01ff\33\6\2\0\1\6\2\0\12\6\1\271\5\6" + "\1\274\31\6\2\0\1\6\2\0\20\6\1\u0200\31\6" + + "\2\0\1\6\2\0\12\6\1\u0201\37\6\2\0\1\6" + "\2\0\16\6\1\u0202\33\6\2\0\1\6\2\0\17\6" + + "\1\u0203\32\6\2\0\1\6\2\0\15\6\1\u0204\2\6" + "\1\u0205\2\6\1\u0106\1\u0206\2\6\1\u0207\1\u0208\1\6" + + "\1\u0209\1\u020a\1\u020b\7\6\1\u0204\5\6\2\0\1\6" + "\2\0\26\6\1\u020c\23\6\2\0\1\6\2\0\14\6" + + "\1\u020d\35\6\2\0\1\6\2\0\24\6\1\u020e\25\6" + "\2\0\1\6\2\0\13\6\1\u01d0\36\6\2\0\1\6" + + "\2\0\15\6\1\u020f\26\6\1\u020f\5\6\2\0\1\6" + "\2\0\17\6\1\u0210\32\6\2\0\1\6\2\0\26\6" + + "\1\u0211\23\6\2\0\1\6\2\0\16\6\1\u0212\33\6" + "\2\0\1\6\2\0\23\6\1\u0213\26\6\2\0\1\6" + + "\2\0\31\6\1\371\20\6\2\0\1\6\2\0\13\6" + "\1\u0214\36\6\2\0\1\6\2\0\35\6\1\u0215\14\6" + + "\2\0\1\6\2\0\12\6\1\u0216\37\6\2\0\1\6" + "\2\0\31\6\1\u0217\20\6\2\0\1\6\2\0\24\6" + + "\1\266\25\6\2\0\1\6\2\0\23\6\1\u0218\26\6" + "\2\0\1\6\2\0\33\6\1\u0219\16\6\2\0\1\6" + + "\2\0\35\6\1\313\14\6\2\0\1\6\2\0\25\6" + "\1\u021a\24\6\2\0\1\6\2\0\26\6\1\u021b\23\6" + + "\2\0\1\6\2\0\34\6\1\371\15\6\2\0\1\6" + "\2\0\12\6\1\u021c\1\u021d\21\6\1\u021e\14\6\2\0" + + "\1\6\2\0\20\6\1\u021f\31\6\2\0\1\6\2\0" + "\16\6\1\u0220\33\6\2\0\1\6\2\0\21\6\1\u0221" + + "\23\6\1\u0221\4\6\2\0\1\6\2\0\33\6\1\u0222" + "\16\6\2\0\1\6\2\0\14\6\1\u0174\35\6\2\0" + + "\1\6\2\0\20\6\1\u0223\31\6\2\0\1\6\2\0" + "\14\6\1\u0224\35\6\2\0\1\6\2\0\20\6\1\u0225" + + "\31\6\2\0\1\6\2\0\24\6\1\u0226\2\6\1\u0227" + "\22\6\2\0\1\6\2\0\16\6\1\u0228\33\6\2\0" + + "\1\6\2\0\26\6\1\u0229\23\6\2\0\1\6\2\0" + "\25\6\1\u022a\24\6\2\0\1\6\2\0\20\6\1\u022b" + + "\31\6\2\0\1\6\2\0\23\6\1\u022c\26\6\2\0" + "\1\6\2\0\26\6\1\u022d\23\6\2\0\1\6\2\0" + + "\25\6\1\u022e\24\6\2\0\1\6\2\0\23\6\1\u022f" + "\26\6\2\0\1\6\2\0\33\6\1\u0230\16\6\2\0" + + "\1\6\2\0\17\6\1\u0200\32\6\2\0\1\6\2\0" + "\20\6\1\u0231\31\6\2\0\1\6\2\0\33\6\1\u0232" + + "\16\6\2\0\1\6\2\0\27\6\1\u01d0\22\6\2\0" + "\1\6\2\0\13\6\1\313\36\6\2\0\1\6\2\0" + + "\35\6\1\u0233\14\6\2\0\1\6\2\0\12\6\1\u0234" + "\37\6\2\0\1\6\2\0\12\6\1\271\37\6\2\0" + + "\1\6\2\0\11\6\1\u0235\31\6\1\u0235\3\6\1\u0236" + "\2\6\2\0\1\6\2\0\52\6\2\0\1\6\2\0" + + "\32\6\1\u0143\17\6\2\0\1\6\2\0\25\6\1\u0174" + "\24\6\2\0\1\6\2\0\12\6\1\313\37\6\2\0" + + "\1\6\2\0\15\6\1\u0237\26\6\1\u0237\5\6\2\0" + "\1\6\2\0\13\6\1\u0238\36\6\2\0\1\6\2\0" + + "\12\6\1\u0239\37\6\2\0\1\6\2\0\33\6\1\u023a" + "\16\6\2\0\1\6\2\0\25\6\1\u023b\24\6\2\0" + + "\1\6\2\0\26\6\1\u023c\23\6\2\0\1\6\2\0" + "\20\6\1\u023d\31\6\2\0\1\6\2\0\16\6\1\u023e" + + "\33\6\2\0\1\6\2\0\33\6\1\u023f\16\6\2\0" + "\1\6\2\0\20\6\1\u0240\31\6\2\0\1\6\2\0" + + "\33\6\1\u0241\16\6\2\0\1\6\2\0\33\6\1\u0242" + "\16\6\2\0\1\6\2\0\12\6\1\u0243\37\6\2\0" + + "\1\6\2\0\13\6\1\u0244\7\6\1\u0106\26\6\2\0" + "\1\6\2\0\16\6\1\371\33\6\2\0\1\6\2\0" + + "\17\6\1\u01c5\32\6\2\0\1\6\2\0\34\6\1\u0245" + "\15\6\2\0\1\6\2\0\32\6\1\u0246\17\6\2\0" + + "\1\6\2\0\24\6\1\u0247\25\6\2\0\1\6\2\0" + "\16\6\1\u0248\33\6\2\0\1\6\2\0\23\6\1\u0249" + + "\26\6\2\0\1\6\2\0\20\6\1\u024a\31\6\2\0" + "\1\6\2\0\14\6\1\u024b\1\6\1\u024c\33\6\2\0" + + "\1\6\2\0\12\6\1\u024d\37\6\2\0\1\6\2\0" + "\26\6\1\u024e\23\6\2\0\1\6\2\0\32\6\1\u024f" + + "\17\6\2\0\1\6\2\0\25\6\1\u0250\24\6\2\0" + "\1\6\2\0\20\6\1\u0251\31\6\2\0\1\6\2\0" + + "\20\6\1\u0252\31\6\2\0\1\6\2\0\23\6\1\u0253" + "\26\6\2\0\1\6\2\0\23\6\1\114\26\6\2\0" + + "\1\6\2\0\41\6\1\313\10\6\2\0\1\6\2\0" + "\14\6\1\u0254\35\6\2\0\1\6\2\0\35\6\1\u0255" + + "\14\6\2\0\1\6\2\0\33\6\1\u0256\16\6\2\0" + "\1\6\2\0\34\6\1\u0257\15\6\2\0\1\6\2\0" + + "\14\6\1\u0258\35\6\2\0\1\6\2\0\17\6\1\u0259" + "\32\6\2\0\1\6\2\0\20\6\1\u025a\31\6\2\0" + + "\1\6\2\0\17\6\1\u025b\32\6\2\0\1\6\2\0" + "\24\6\1\362\25\6\2\0\1\6\2\0\23\6\1\u025c" + + "\26\6\2\0\1\6\2\0\33\6\1\u025d\16\6\2\0" + "\1\6\2\0\14\6\1\u025e\35\6\2\0\1\6\2\0" + + "\12\6\1\u025f\37\6\2\0\1\6\2\0\27\6\1\u0260" + "\22\6\2\0\1\6\2\0\11\6\1\u0261\31\6\1\u0261" + + "\6\6\2\0\1\6\2\0\27\6\1\361\22\6\2\0" + "\1\6\2\0\14\6\1\u0262\35\6\2\0\1\6\2\0" + + "\16\6\1\u0263\33\6\2\0\1\6\2\0\20\6\1\u0264" + "\31\6\2\0\1\6\2\0\16\6\1\u0265\33\6\2\0" + + "\1\6\2\0\16\6\1\u0266\33\6\2\0\1\6\2\0" + "\17\6\1\u0267\3\6\1\u0106\1\6\1\u0268\7\6\1\u0269" + + "\1\u026a\13\6\2\0\1\6\2\0\16\6\1\u026b\33\6" + "\2\0\1\6\2\0\12\6\1\167\37\6\2\0\1\6" + + "\2\0\24\6\1\276\25\6\2\0\1\6\2\0\26\6" + "\1\u026c\23\6\2\0\1\6\2\0\23\6\1\u026d\26\6" + + "\2\0\1\6\2\0\35\6\1\u026e\14\6\2\0\1\6" + "\2\0\33\6\1\u026f\16\6\2\0\1\6\2\0\25\6" + + "\1\u0270\24\6\2\0\1\6\2\0\26\6\1\u0271\23\6" + "\2\0\1\6\2\0\35\6\1\u0272\14\6\2\0\1\6" + + "\2\0\17\6\1\313\32\6\2\0\1\6\2\0\16\6" + "\1\u0273\33\6\2\0\1\6\2\0\15\6\1\u020f\5\6" + + "\1\u0274\1\6\1\u0275\1\6\1\u019a\2\6\1\u010a\4\6" + "\1\u0276\4\6\1\u020f\5\6\2\0\1\6\2\0\33\6" + + "\1\u0277\16\6\2\0\1\6\2\0\33\6\1\u0278\16\6" + "\2\0\1\6\2\0\20\6\1\u0279\31\6\2\0\1\6" + + "\2\0\40\6\1\u01c5\11\6\2\0\1\6\2\0\33\6" + "\1\u01a6\16\6\2\0\1\6\2\0\16\6\1\372\33\6" + + "\2\0\1\6\2\0\25\6\1\u027a\24\6\2\0\1\6" + "\2\0\17\6\1\u027b\32\6\2\0\1\6\2\0\25\6" + + "\1\u027c\24\6\2\0\1\6\2\0\24\6\1\u027d\25\6" + "\2\0\1\6\2\0\24\6\1\313\25\6\2\0\1\6" + + "\2\0\16\6\1\u027e\33\6\2\0\1\6\2\0\27\6" + "\1\313\22\6\2\0\1\6\2\0\35\6\1\u01f8\14\6" + + "\2\0\1\6\2\0\33\6\1\u027f\16\6\2\0\1\6" + "\2\0\12\6\1\u0280\37\6\2\0\1\6\2\0\35\6" + + "\1\u021e\14\6\2\0\1\6\2\0\23\6\1\u0200\26\6" + "\2\0\1\6\2\0\16\6\1\u0281\33\6\2\0\1\6" + + "\2\0\16\6\1\u0282\33\6\2\0\1\6\2\0\14\6" + "\1\u0241\35\6\2\0\1\6\2\0\16\6\1\u0233\33\6" + + "\2\0\1\6\2\0\13\6\1\u0283\36\6\2\0\1\6" + "\2\0\12\6\1\202\37\6\2\0\1\6\2\0\12\6" + + "\1\u0284\37\6\2\0\1\6\2\0\13\6\1\u0285\36\6" + "\2\0\1\6\2\0\31\6\1\u0286\20\6\2\0\1\6" + + "\2\0\14\6\1\u0287\35\6\2\0\1\6\2\0\17\6" + "\1\u0288\32\6\2\0\1\6\2\0\20\6\1\u0289\31\6" + + "\2\0\1\6\2\0\12\6\1\u028a\37\6\2\0\1\6" + "\2\0\26\6\1\u028b\23\6\2\0\1\6\2\0\25\6" + + "\1\u0200\24\6\2\0\1\6\2\0\36\6\1\u0143\13\6" + "\2\0\1\6\2\0\25\6\1\u028c\24\6\2\0\1\6" + + "\2\0\26\6\1\u028d\23\6\2\0\1\6\2\0\26\6" + "\1\u028e\23\6\2\0\1\6\2\0\34\6\1\u028f\15\6" + + "\2\0\1\6\2\0\20\6\1\u0290\31\6\2\0\1\6" + "\2\0\17\6\1\u0291\32\6\2\0\1\6\2\0\25\6" + + "\1\u0292\24\6\2\0\1\6\2\0\30\6\1\u0293\21\6" + "\2\0\1\6\2\0\13\6\1\u0294\36\6\2\0\1\6" + + "\2\0\20\6\1\u0295\31\6\2\0\1\6\2\0\27\6" + "\1\u0296\22\6\2\0\1\6\2\0\34\6\1\u0297\15\6" + + "\2\0\1\6\2\0\26\6\1\u0298\23\6\2\0\1\6" + "\2\0\12\6\1\u0299\37\6\2\0\1\6\2\0\17\6" + + "\1\u029a\32\6\2\0\1\6\2\0\26\6\1\u029b\23\6" + "\2\0\1\6\2\0\26\6\1\u01f8\23\6\2\0\1\6" + + "\2\0\26\6\1\u029c\23\6\2\0\1\6\2\0\24\6" + "\1\u029d\25\6\2\0\1\6\2\0\14\6\1\u0200\35\6" + + "\2\0\1\6\2\0\14\6\1\167\35\6\2\0\1\6" + "\2\0\23\6\1\u029e\26\6\2\0\1\6\2\0\27\6" + + "\1\u029f\22\6\2\0\1\6\2\0\11\6\1\u01b0\31\6" + "\1\u01b0\6\6\2\0\1\6\2\0\25\6\1\u0143\24\6" + + "\2\0\1\6\2\0\35\6\1\u02a0\14\6\2\0\1\6" + "\2\0\24\6\1\u02a1\25\6\2\0\1\6\2\0\15\6" + + "\1\u02a2\26\6\1\u02a2\5\6\2\0\1\6\2\0\12\6" + "\1\u0143\37\6\2\0\1\6\2\0\12\6\1\u02a1\37\6" + + "\2\0\1\6\2\0\34\6\1\u011a\15\6\2\0\1\6" + "\2\0\33\6\1\u02a3\16\6\2\0\1\6\2\0\25\6" + + "\1\u024e\24\6\2\0\1\6\2\0\34\6\1\u02a4\15\6" + "\2\0\1\6\2\0\26\6\1\u02a5\23\6\2\0\1\6" + + "\2\0\23\6\1\u02a6\26\6\2\0\1\6\2\0\30\6" + "\1\u02a7\21\6\2\0\1\6\2\0\33\6\1\u02a8\16\6" + + "\2\0\1\6\2\0\15\6\1\u02a9\26\6\1\u02a9\5\6" + "\2\0\1\6\2\0\32\6\1\u02aa\17\6\2\0\1\6" + + "\2\0\34\6\1\u02ab\15\6\2\0\1\6\2\0\14\6" + "\1\u02ac\35\6\2\0\1\6\2\0\33\6\1\u02ad\16\6" + + "\2\0\1\6\2\0\12\6\1\u02ae\37\6\2\0\1\6" + "\2\0\12\6\1\u02af\37\6\2\0\1\6\2\0\17\6" + + "\1\u02b0\32\6\2\0\1\6\2\0\23\6\1\u02b1\26\6" + "\2\0\1\6\2\0\15\6\1\u02b2\26\6\1\u02b2\5\6" + + "\2\0\1\6\2\0\13\6\1\u02b3\13\6\1\372\22\6" + "\2\0\1\6\2\0\13\6\1\u02b4\36\6\2\0\1\6" + + "\2\0\12\6\1\u02b5\37\6\2\0\1\6\2\0\23\6" + "\1\u01fa\26\6\2\0\1\6\2\0\32\6\1\u02b6\17\6" + + "\2\0\1\6\2\0\25\6\1\u02b7\24\6\2\0\1\6" + "\2\0\36\6\1\u02b8\13\6\2\0\1\6\2\0\20\6" + + "\1\u02b9\31\6\2\0\1\6\2\0\14\6\1\u02a1\35\6" + "\2\0\1\6\2\0\20\6\1\u0220\31\6\2\0\1\6" + + "\2\0\23\6\1\u02ba\26\6\2\0\1\6\2\0\11\6" + "\1\313\31\6\1\313\6\6\2\0\1\6\2\0\31\6" + + "\1\u02bb\20\6\2\0\1\6\2\0\20\6\1\u02bc\31\6" + "\2\0\1\6\2\0\13\6\1\u02bd\36\6\2\0\1\6" + + "\2\0\32\6\1\u02be\17\6\2\0\1\6\2\0\27\6" + "\1\u02bf\22\6\2\0\1\6\2\0\26\6\1\u02c0\23\6" + + "\2\0\1\6\2\0\16\6\1\u02c1\33\6\2\0\1\6" + "\2\0\26\6\1\313\23\6\2\0\1\6\2\0\20\6" + + "\1\u02c2\31\6\2\0\1\6\2\0\14\6\1\u02c3\35\6" + "\2\0\1\6\2\0\12\6\1\u02c4\37\6\2\0\1\6" + + "\2\0\16\6\1\u02c5\33\6\2\0\1\6\2\0\20\6" + "\1\u02c6\31\6\2\0\1\6\2\0\13\6\1\u02c7\36\6" + + "\2\0\1\6\2\0\20\6\1\u0250\31\6\2\0\1\6" + "\2\0\33\6\1\u02c8\16\6\2\0\1\6\2\0\20\6" + + "\1\u02c9\31\6\2\0\1\6\2\0\23\6\1\u02ca\26\6" + "\2\0\1\6\2\0\23\6\1\u02cb\26\6\2\0\1\6" + + "\2\0\20\6\1\u02cc\31\6\2\0\1\6\2\0\26\6" + "\1\u02cd\23\6\2\0\1\6\2\0\24\6\1\u02ce\25\6" + + "\2\0\1\6\2\0\16\6\1\114\33\6\2\0\1\6" + "\2\0\20\6\1\u0286\31\6\2\0\1\6\2\0\25\6" + + "\1\u0233\24\6\2\0\1\6\2\0\27\6\1\u0227\22\6" + "\2\0\1\6\2\0\12\6\1\u02cf\37\6\2\0\1\6" + + "\2\0\13\6\1\u02d0\36\6\2\0\1\6\2\0\12\6" + "\1\u02d1\37\6\2\0\1\6\2\0\30\6\1\u02d2\21\6" + + "\2\0\1\6\2\0\27\6\1\205\22\6\2\0\1\6" + "\2\0\12\6\1\205\37\6\2\0\1\6\2\0\35\6" + + "\1\u02d3\14\6\2\0\1\6\2\0\20\6\1\u02d4\31\6" + "\2\0\1\6\2\0\32\6\1\u02d5\17\6\2\0\1\6" + + "\2\0\15\6\1\u02d6\26\6\1\u02d6\5\6\2\0\1\6" + "\2\0\33\6\1\u02d7\16\6\2\0\1\6\2\0\23\6" + + "\1\u02d8\26\6\2\0\1\6\2\0\20\6\1\u02d9\31\6" + "\2\0\1\6\2\0\33\6\1\u02da\16\6\2\0\1\6" + + "\2\0\14\6\1\u02db\35\6\2\0\1\6\2\0\12\6" + "\1\u02dc\37\6\2\0\1\6\2\0\34\6\1\u02dd\15\6" + + "\2\0\1\6\2\0\33\6\1\u02de\16\6\2\0\1\6" + "\2\0\20\6\1\u02df\31\6\2\0\1\6\2\0\20\6" + + "\1\u02e0\31\6\2\0\1\6\2\0\26\6\1\u02e1\23\6" + "\2\0\1\6\2\0\26\6\1\u02e2\23\6\2\0\1\6" + + "\2\0\34\6\1\u02e3\15\6\2\0\1\6\2\0\23\6" + "\1\u02e4\26\6\2\0\1\6\2\0\33\6\1\u02e5\16\6" + + "\2\0\1\6\2\0\16\6\1\u02e6\33\6\2\0\1\6" + "\2\0\31\6\1\u02aa\20\6\2\0\1\6\2\0\30\6" + + "\1\u01c1\21\6\2\0\1\6\2\0\32\6\1\u02e7\17\6" + "\2\0\1\6\2\0\27\6\1\u02e8\22\6\2\0\1\6" + + "\2\0\20\6\1\u02e9\31\6\2\0\1\6\2\0\14\6" + "\1\u02ea\35\6\2\0\1\6\2\0\12\6\1\u02eb\37\6" + + "\2\0\1\6\2\0\14\6\1\u02ec\35\6\2\0\1\6" + "\2\0\16\6\1\u02ed\33\6\2\0\1\6\2\0\15\6" + + "\1\u01a9\1\6\1\u02ee\24\6\1\u01a9\5\6\2\0\1\6" + "\2\0\33\6\1\u02ef\16\6\2\0\1\6\2\0\33\6" + + "\1\u02f0\16\6\2\0\1\6\2\0\20\6\1\u02f1\16\6" + "\1\u02f2\12\6\2\0\1\6\2\0\15\6\1\u02f3\26\6" + + "\1\u02f3\5\6\2\0\1\6\2\0\16\6\1\u0241\33\6" + "\2\0\1\6\2\0\16\6\1\u0250\33\6\2\0\1\6" + + "\2\0\36\6\1\u02f4\13\6\2\0\1\6\2\0\20\6" + "\1\326\31\6\2\0\1\6\2\0\25\6\1\u02f5\24\6" + + "\2\0\1\6\2\0\25\6\1\u02f6\24\6\2\0\1\6" + "\2\0\21\6\1\u02f7\23\6\1\u02f7\4\6\2\0\1\6" + + "\2\0\33\6\1\u02f8\16\6\2\0\1\6\2\0\20\6" + "\1\u02f9\31\6\2\0\1\6\2\0\12\6\1\u02fa\37\6" + + "\2\0\1\6\2\0\16\6\1\u02fb\33\6\2\0\1\6" + "\2\0\14\6\1\u02fc\35\6\2\0\1\6\2\0\12\6" + + "\1\u02b0\37\6\2\0\1\6\2\0\33\6\1\u02fd\16\6" + "\2\0\1\6\2\0\34\6\1\u02fe\15\6\2\0\1\6" + + "\2\0\15\6\1\202\26\6\1\202\5\6\2\0\1\6" + "\2\0\20\6\1\u02aa\31\6\2\0\1\6\2\0\26\6" + + "\1\u02ff\23\6\2\0\1\6\2\0\24\6\1\u0300\25\6" + "\2\0\1\6\2\0\26\6\1\u0301\23\6\2\0\1\6" + + "\2\0\16\6\1\u0302\33\6\2\0\1\6\2\0\33\6" + "\1\u0303\16\6\2\0\1\6\2\0\11\6\1\u01dd\31\6" + + "\1\u01dd\6\6\2\0\1\6\2\0\15\6\1\u0304\26\6" + "\1\u0304\5\6\2\0\1\6\2\0\26\6\1\u0305\23\6" + + "\2\0\1\6\2\0\33\6\1\u0306\16\6\2\0\1\6" + "\2\0\20\6\1\u0307\31\6\2\0\1\6\2\0\25\6" + + "\1\u0308\24\6\2\0\1\6\2\0\20\6\1\u0309\31\6" + "\2\0\1\6\2\0\33\6\1\u0250\16\6\2\0\1\6" + + "\2\0\30\6\1\u030a\21\6\2\0\1\6\2\0\16\6" + "\1\u030b\33\6\2\0\1\6\2\0\20\6\1\u030c\31\6" + + "\2\0\1\6\2\0\34\6\1\u030d\15\6\2\0\1\6" + "\2\0\26\6\1\u030e\23\6\2\0\1\6\2\0\33\6" + + "\1\205\16\6\2\0\1\6\2\0\14\6\1\u030f\35\6" + "\2\0\1\6\2\0\23\6\1\u0310\26\6\2\0\1\6" + + "\2\0\34\6\1\u0311\15\6\2\0\1\6\2\0\14\6" + "\1\u0312\35\6\2\0\1\6\2\0\12\6\1\u0313\37\6" + + "\2\0\1\6\2\0\33\6\1\u0314\16\6\2\0\1\6" + "\2\0\33\6\1\u015b\16\6\2\0\1\6\2\0\20\6" + + "\1\u0315\31\6\2\0\1\6\2\0\17\6\1\u0316\32\6" + "\2\0\1\6\2\0\12\6\1\u0317\37\6\2\0\1\6" + + "\2\0\27\6\1\372\22\6\2\0\1\6\2\0\16\6" + "\1\u0150\33\6\2\0\1\6\2\0\24\6\1\u0143\25\6" + + "\2\0\1\6\2\0\33\6\1\u0318\16\6\2\0\1\6" + "\2\0\16\6\1\u0319\33\6\2\0\1\6\2\0\20\6" + + "\1\u031a\31\6\2\0\1\6\2\0\36\6\1\202\13\6" + "\2\0\1\6\2\0\23\6\1\u031b\26\6\2\0\1\6" + "\2\0\14\6\1\u01a6\31\6"; + + private static int[] zzUnpackTrans() { + int[] result = new int[36754]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\6\1\2\11\22\1\1\11\10\1\4\11\1\1" + "\1\11\2\1\1\0\52\1\4\0\2\1\1\11\1\1" + + "\1\11\62\1\4\0\102\1\2\0\105\1\2\0\u01f8\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[795]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Type specific to HtaccessTokenMaker denoting a line ending with an * unclosed double-quote attribute. */ - public static final int INTERNAL_ATTR_DOUBLE = -1; - - + public static final int INTERNAL_ATTR_DOUBLE = -1; /** * Type specific to HtaccessTokenMaker denoting a line ending with an * unclosed single-quote attribute. */ - public static final int INTERNAL_ATTR_SINGLE = -2; - - + public static final int INTERNAL_ATTR_SINGLE = -2; /** * Token type specific to HtaccessTokenMaker denoting a line ending with an * unclosed XML tag; thus a new line is beginning still inside of the tag. */ - public static final int INTERNAL_INTAG = -3; - + public static final int INTERNAL_INTAG = -3; + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public HtaccessTokenMaker() { - } - - + public HtaccessTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * Returns how to transform a line into a line comment. * @@ -1071,26 +711,26 @@ public class HtaccessTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -1106,7 +746,6 @@ public class HtaccessTokenMaker extends AbstractJFlexTokenMaker { default: state = YYINITIAL; } - start = text.offset; s = text; try { @@ -1117,21 +756,18 @@ public class HtaccessTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1140,7 +776,8 @@ public class HtaccessTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1149,358 +786,380 @@ public class HtaccessTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 HtaccessTokenMaker(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 HtaccessTokenMaker(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 < 172) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 12: { + yybegin(INTAG); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 20: + break; + case 4: { + addNullToken(); + return firstToken; + } + case 21: + break; + case 15: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 2), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(INTAG); + } + case 22: + break; + case 3: { + addToken(Token.WHITESPACE); + } + case 23: + break; + case 17: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 24: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 25: + break; + case 6: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 26: + break; + case 18: { + addToken(Token.FUNCTION); + } + case 27: + break; + case 14: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 28: + break; + case 13: { + int count = yylength(); + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 1), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(INTAG); + } + case 29: + break; + case 9: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE); + } + case 30: + break; + case 8: { + yybegin(YYINITIAL); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 31: + break; + case 16: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 32: + break; + case 10: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE); + } + case 33: + break; + case 19: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 34: + break; + case 5: { + start = zzMarkedPos - 1; + yybegin(EOL_COMMENT); + } + case 35: + break; + case 11: { + addToken(Token.OPERATOR); + } + case 36: + break; + case 7: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 37: + break; + case 1: {} + case 38: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 796: + break; + case INTAG: { + addToken(start, zzStartRead - 1, INTERNAL_INTAG); + return firstToken; + } + case 797: + break; + case INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE); + return firstToken; + } + case 798: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 799: + break; + case INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE); + return firstToken; + } + case 800: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 HtaccessTokenMaker(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 HtaccessTokenMaker(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 < 172) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 12: - { yybegin(INTAG); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 20: break; - case 4: - { addNullToken(); return firstToken; - } - case 21: break; - case 15: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-2), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(INTAG); - } - case 22: break; - case 3: - { addToken(Token.WHITESPACE); - } - case 23: break; - case 17: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 24: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 25: break; - case 6: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 26: break; - case 18: - { addToken(Token.FUNCTION); - } - case 27: break; - case 14: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 28: break; - case 13: - { int count = yylength(); - addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-1), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(INTAG); - } - case 29: break; - case 9: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE); - } - case 30: break; - case 8: - { yybegin(YYINITIAL); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 31: break; - case 16: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 32: break; - case 10: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE); - } - case 33: break; - case 19: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 34: break; - case 5: - { start = zzMarkedPos-1; yybegin(EOL_COMMENT); - } - case 35: break; - case 11: - { addToken(Token.OPERATOR); - } - case 36: break; - case 7: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 37: break; - case 1: - { - } - case 38: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 796: break; - case INTAG: { - addToken(start,zzStartRead-1, INTERNAL_INTAG); return firstToken; - } - case 797: break; - case INATTR_DOUBLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE); return firstToken; - } - case 798: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 799: break; - case INATTR_SINGLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE); return firstToken; - } - case 800: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/IniTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/IniTokenMaker.java index f70bf8a..eed9c9c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/IniTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/IniTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 11/4/16 11:29 PM */ - /* * 11/04/2016 - * * IniTokenMaker.java - Scanner for .ini files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -19,273 +16,252 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** - * This class splits up text into tokens representing a .ini file.

+ * This class splits up text into tokens representing a .ini file. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated IniTokenMaker.java file will - * contain two definitions of both zzRefill and - * yyreset. You should hand-delete the second of each - * definition (the ones generated by the lexer), as these generated - * methods modify the input buffer, which we'll never have to do. - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway. - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance. + *
  • The generated IniTokenMaker.java file will + * contain two definitions of both zzRefill and + * yyreset. You should hand-delete the second of each + * definition (the ones generated by the lexer), as these generated + * methods modify the input buffer, which we'll never have to do. + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway. + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance. *
* * @author Robert Futrell * @version 0.4 * */ - public class IniTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int YYINITIAL = 0; - public static final int VALUE = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\5\25\0\1\3\2\0\1\4\27\0\1\4\1\0"+ - "\1\1\35\0\1\2\1\0\1\6\uffa2\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 = - "\1\1\1\2\1\1\1\3\1\4\1\5\1\6\1\2"+ - "\1\7\1\4"; - - private static int [] zzUnpackAction() { - int [] result = new int[10]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /** - * 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\7\0\16\0\25\0\34\0\43\0\52\0\61"+ - "\0\25\0\25"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[10]; - int offset = 0; - offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackRowMap(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int high = packed.charAt(i++) << 16; - result[j++] = high | packed.charAt(i++); - } - return j; - } - - /** - * The transition table of the DFA - */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); - - private static final String ZZ_TRANS_PACKED_0 = - "\1\3\1\4\1\5\1\6\1\7\1\0\1\3\1\10"+ - "\1\11\1\5\1\6\1\7\1\0\1\10\1\3\5\0"+ - "\1\3\7\0\6\5\1\12\3\0\1\6\3\0\5\7"+ - "\1\0\1\7\1\10\5\0\1\10"; - - private static int [] zzUnpackTrans() { - int [] result = new int[56]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\1\1\11\4\1\2\11"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[10]; - int offset = 0; - offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAttribute(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - /** the 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int VALUE = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\3\1\5\25\0\1\3\2\0\1\4\27\0\1\4\1\0" + "\1\1\35\0\1\2\1\0\1\6\uffa2\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 = "\1\1\1\2\1\1\1\3\1\4\1\5\1\6\1\2" + "\1\7\1\4"; + + private static int[] zzUnpackAction() { + int[] result = new int[10]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int[] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do + result[j++] = value; + while (--count > 0); + } + return j; + } + + /** + * 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\7\0\16\0\25\0\34\0\43\0\52\0\61" + "\0\25\0\25"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[10]; + int offset = 0; + offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackRowMap(String packed, int offset, int[] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int high = packed.charAt(i++) << 16; + result[j++] = high | packed.charAt(i++); + } + return j; + } + + /** + * The transition table of the DFA + */ + private static final int[] ZZ_TRANS = zzUnpackTrans(); + private static final String ZZ_TRANS_PACKED_0 = "\1\3\1\4\1\5\1\6\1\7\1\0\1\3\1\10" + "\1\11\1\5\1\6\1\7\1\0\1\10\1\3\5\0" + + "\1\3\7\0\6\5\1\12\3\0\1\6\3\0\5\7" + "\1\0\1\7\1\10\5\0\1\10"; + + private static int[] zzUnpackTrans() { + int[] result = new int[56]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\1\1\11\4\1\2\11"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[10]; + int offset = 0; + offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAttribute(String packed, int offset, int[] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do + result[j++] = value; + while (--count > 0); + } + return j; + } + + /** the 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public IniTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -293,26 +269,26 @@ public class IniTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { ";", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; s = text; @@ -324,21 +300,18 @@ public class IniTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -347,7 +320,8 @@ public class IniTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -356,291 +330,285 @@ public class IniTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 IniTokenMaker(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 IniTokenMaker(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 < 32) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 3: { + start = zzMarkedPos; + addToken(Token.OPERATOR); + yybegin(VALUE); + } + case 8: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 9: + break; + case 5: { + addToken(Token.WHITESPACE); + } + case 10: + break; + case 7: { + start = zzMarkedPos; + addToken(Token.OPERATOR); + } + case 11: + break; + case 6: { + addToken(Token.COMMENT_EOL); + } + case 12: + break; + case 4: { + addToken(Token.PREPROCESSOR); + } + case 13: + break; + case 1: { + addToken(Token.DATA_TYPE); + } + case 14: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 11: + break; + case VALUE: { + addNullToken(); + return firstToken; + } + case 12: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 IniTokenMaker(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 IniTokenMaker(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 < 32) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 3: - { start = zzMarkedPos; addToken(Token.OPERATOR); yybegin(VALUE); - } - case 8: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 9: break; - case 5: - { addToken(Token.WHITESPACE); - } - case 10: break; - case 7: - { start = zzMarkedPos; addToken(Token.OPERATOR); - } - case 11: break; - case 6: - { addToken(Token.COMMENT_EOL); - } - case 12: break; - case 4: - { addToken(Token.PREPROCESSOR); - } - case 13: break; - case 1: - { addToken(Token.DATA_TYPE); - } - case 14: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 11: break; - case VALUE: { - addNullToken(); return firstToken; - } - case 12: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/JSPTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/JSPTokenMaker.java index bffb9fc..1c88dd1 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/JSPTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/JSPTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 12/30/16 12:53 AM */ - /* * 02/11/2008 - * * JSPTokenMaker.java - Generates tokens for JSP syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -22,6791 +19,3779 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** * Scanner for JSP files (supporting HTML 5). * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated JSPTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated JSPTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.9 */ - public class JSPTokenMaker extends AbstractMarkupTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int INATTR_SINGLE_SCRIPT = 10; - public static final int JS_CHAR = 16; - public static final int JAVA_EXPRESSION = 21; - public static final int CSS_STRING = 27; - public static final int HIDDEN_COMMENT = 19; - public static final int JS_MLC = 17; - public static final int CSS_CHAR_LITERAL = 28; - public static final int JAVA_DOCCOMMENT = 20; - public static final int INTAG_SCRIPT = 8; - public static final int JS_TEMPLATE_LITERAL_EXPR = 31; - public static final int CSS_PROPERTY = 25; - public static final int CSS_C_STYLE_COMMENT = 29; - public static final int CSS = 24; - public static final int CSS_VALUE = 26; - public static final int JSP_DIRECTIVE = 23; - public static final int COMMENT = 1; - public static final int INATTR_DOUBLE_SCRIPT = 9; - public static final int PI = 2; - public static final int JAVASCRIPT = 14; - public static final int INTAG = 4; - public static final int INTAG_CHECK_TAG_NAME = 5; - public static final int INATTR_SINGLE_STYLE = 13; - public static final int DTD = 3; - public static final int JS_EOL_COMMENT = 18; - public static final int INATTR_DOUBLE_STYLE = 12; - public static final int INATTR_SINGLE = 7; - public static final int JS_TEMPLATE_LITERAL = 30; - public static final int YYINITIAL = 0; - public static final int INATTR_DOUBLE = 6; - public static final int JS_STRING = 15; - public static final int JAVA_MLC = 22; - public static final int INTAG_STYLE = 11; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\4\1\2\1\0\1\1\1\46\22\0\1\4\1\26\1\10"+ - "\1\47\1\50\1\25\1\5\1\11\1\116\1\114\1\51\1\56\1\65"+ - "\1\36\1\57\1\12\1\31\1\32\2\45\1\137\1\130\1\136\1\34"+ - "\2\30\1\70\1\6\1\3\1\7\1\21\1\67\1\74\1\33\1\52"+ - "\1\14\1\107\1\24\1\55\1\123\1\127\1\16\1\131\1\124\1\23"+ - "\1\121\1\120\1\117\1\17\1\125\1\15\1\13\1\20\1\122\1\126"+ - "\1\135\1\54\1\22\1\27\1\113\1\37\1\113\1\66\1\35\1\73"+ - "\1\61\1\53\1\77\1\101\1\60\1\44\1\103\1\100\1\102\1\134"+ - "\1\112\1\62\1\106\1\43\1\75\1\104\1\133\1\41\1\63\1\42"+ - "\1\40\1\111\1\110\1\105\1\76\1\132\1\115\1\72\1\64\1\71"+ - "\uff81\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 = - "\6\0\2\1\1\0\2\1\1\0\2\1\14\0\1\2"+ - "\5\0\2\2\1\3\1\4\1\5\1\6\1\1\1\7"+ - "\5\1\1\10\2\1\1\11\1\12\2\13\1\5\1\14"+ - "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\2\21"+ - "\2\23\3\21\2\23\2\21\1\23\6\21\1\23\1\1"+ - "\1\24\1\25\1\1\1\13\1\26\1\27\1\17\1\30"+ - "\1\31\1\32\1\33\1\34\1\1\1\35\1\1\1\36"+ - "\1\37\2\14\1\2\1\14\1\40\1\41\1\14\2\2"+ - "\1\14\2\42\1\14\5\2\1\36\1\2\1\14\5\2"+ - "\1\43\1\14\1\44\10\2\1\1\1\45\1\46\1\47"+ - "\1\1\1\50\1\51\1\52\1\1\1\53\6\1\1\54"+ - "\4\1\1\55\2\1\1\56\7\1\1\36\1\57\1\14"+ - "\1\60\1\61\1\14\11\2\1\14\2\42\14\2\1\62"+ - "\21\2\1\1\1\63\1\1\2\2\1\64\1\65\1\66"+ - "\1\67\4\2\1\70\1\71\1\70\1\72\1\73\1\70"+ - "\1\74\1\70\1\75\1\70\1\76\1\77\1\100\2\77"+ - "\1\66\1\77\1\101\1\102\1\103\1\104\1\103\1\105"+ - "\2\2\1\103\1\42\1\2\1\103\1\106\1\107\1\110"+ - "\1\111\1\112\1\113\1\114\1\115\2\1\1\116\1\117"+ - "\1\120\1\121\1\1\1\122\1\1\1\123\1\4\2\124"+ - "\1\125\1\126\1\127\1\6\5\0\1\130\1\125\32\21"+ - "\2\23\2\21\1\23\44\21\1\131\1\132\2\0\1\125"+ - "\1\0\1\14\1\133\1\0\1\134\1\36\1\2\1\14"+ - "\1\135\1\42\2\135\2\136\1\135\1\137\2\135\43\2"+ - "\3\66\12\2\1\140\1\141\1\142\3\0\1\143\12\0"+ - "\1\144\2\0\1\145\16\0\1\60\1\146\1\60\1\61"+ - "\1\0\1\65\1\61\1\147\1\150\1\36\46\2\1\151"+ - "\1\135\1\42\2\135\1\136\1\135\1\137\3\135\45\2"+ - "\1\62\5\2\1\66\1\2\1\66\40\2\1\152\1\153"+ - "\3\2\1\0\1\154\1\155\15\0\1\156\1\0\1\42"+ - "\5\0\1\42\1\112\1\157\1\160\1\161\1\162\2\124"+ - "\1\125\1\0\1\163\1\0\1\164\4\0\1\125\14\21"+ - "\1\23\63\21\1\131\1\0\1\165\1\0\1\36\1\2"+ - "\1\136\1\0\1\42\3\137\30\2\1\166\16\2\1\74"+ - "\16\2\44\0\1\64\1\60\1\0\2\60\1\61\1\0"+ - "\1\65\3\61\1\167\1\36\3\2\1\170\65\2\1\136"+ - "\1\42\2\137\1\42\1\137\50\2\1\36\6\2\1\74"+ - "\33\2\1\170\21\2\25\0\2\124\1\171\1\172\2\0"+ - "\1\173\31\21\1\23\2\21\1\23\6\21\1\0\1\174"+ - "\1\36\1\2\1\135\1\2\1\175\11\2\1\74\1\176"+ - "\3\2\1\170\23\2\1\0\1\1\3\0\1\177\3\0"+ - "\1\200\1\201\11\0\1\202\11\0\1\203\5\0\3\60"+ - "\1\61\1\36\70\2\1\170\3\2\1\170\1\2\1\170"+ - "\5\2\2\135\7\2\1\175\11\2\1\170\3\2\1\74"+ - "\3\2\1\170\6\2\1\36\36\2\1\0\16\2\1\66"+ - "\23\0\2\124\2\0\12\21\1\23\11\21\1\0\1\36"+ - "\4\2\1\66\1\2\1\66\20\2\37\0\3\60\1\61"+ - "\1\36\3\2\1\170\14\2\1\170\47\2\1\170\24\2"+ - "\2\66\26\2\1\36\32\2\1\0\15\2\16\0\1\124"+ - "\1\204\12\21\1\0\1\36\1\2\1\205\16\2\24\0"+ - "\2\60\1\61\1\36\1\2\1\170\31\2\1\170\27\2"+ - "\1\170\2\2\1\170\24\2\1\205\2\2\1\170\21\2"+ - "\1\36\13\2\1\170\2\2\1\170\6\2\1\0\13\2"+ - "\12\0\1\206\3\21\1\0\10\2\4\0\1\202\6\0"+ - "\1\60\33\2\1\170\21\2\1\170\7\2\1\0\3\2"+ - "\1\0\22\2\1\0\15\2\1\36\27\2\1\0\13\2"+ - "\6\0\1\21\1\0\3\2\13\0\1\60\16\2\1\170"+ - "\50\2\2\0\2\2\4\0\16\2\2\0\25\2\1\170"+ - "\11\2\1\0\12\2\1\207\4\0\1\21\1\210\1\2"+ - "\1\211\1\212\5\0\14\2\1\0\10\2\1\170\34\2"+ - "\2\0\1\2\4\0\5\2\1\170\7\2\1\0\2\2"+ - "\1\170\11\2\1\170\20\2\1\170\11\2\10\0\16\2"+ - "\1\170\2\2\1\0\31\2\6\0\10\2\1\0\2\2"+ - "\1\0\35\2\3\0\1\62\2\0\10\2\1\170\4\2"+ - "\2\0\10\2\1\170\14\2\6\0\7\2\1\170\1\2"+ - "\1\0\1\170\4\2\1\170\17\2\1\170\2\2\1\170"+ - "\3\2\1\0\1\170\3\2\2\0\1\2\1\170\17\2"+ - "\5\0\6\2\1\0\1\2\1\0\3\2\1\170\3\2"+ - "\1\170\17\2\2\0\3\2\2\0\16\2\4\0\2\2"+ - "\1\170\3\2\2\0\25\2\2\0\2\2\2\0\1\170"+ - "\11\2\1\170\2\2\3\0\4\2\2\0\22\2\5\0"+ - "\1\2\3\0\10\2\1\0\1\2\3\0\4\2\2\0"+ - "\15\2\4\0\1\2\2\0\10\2\1\0\1\2\3\0"+ - "\3\2\2\0\7\2\6\0\5\2\1\0\1\170\3\0"+ - "\2\2\2\0\2\2\1\170\3\2\6\0\3\2\5\0"+ - "\2\2\2\0\2\2\1\0\1\170\2\2\5\0\2\2"+ - "\3\0\1\2\2\0\2\2\2\0\1\2\5\0\1\2"+ - "\3\0\1\2\2\0\1\2\11\0\1\2\2\0\1\2"+ - "\16\0\1\170\43\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[2711]; - 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\140\0\300\0\u0120\0\u0180\0\u01e0\0\u0240\0\u02a0"+ - "\0\u0300\0\u0360\0\u03c0\0\u0420\0\u0480\0\u04e0\0\u0540\0\u05a0"+ - "\0\u0600\0\u0660\0\u06c0\0\u0720\0\u0780\0\u07e0\0\u0840\0\u08a0"+ - "\0\u0900\0\u0960\0\u09c0\0\u0a20\0\u0a80\0\u0ae0\0\u0b40\0\u0ba0"+ - "\0\u0c00\0\u0c60\0\u0cc0\0\u0d20\0\u0d80\0\u0de0\0\u0e40\0\u0cc0"+ - "\0\u0ea0\0\u0f00\0\u0f60\0\u0fc0\0\u1020\0\u0cc0\0\u1080\0\u10e0"+ - "\0\u0cc0\0\u0cc0\0\u1140\0\u11a0\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0"+ - "\0\u1200\0\u0cc0\0\u1260\0\u0cc0\0\u12c0\0\u1320\0\u1380\0\u13e0"+ - "\0\u1440\0\u14a0\0\u1500\0\u1560\0\u15c0\0\u1620\0\u1680\0\u16e0"+ - "\0\u1740\0\u17a0\0\u1800\0\u1860\0\u18c0\0\u1920\0\u1980\0\u1260"+ - "\0\u19e0\0\u1a40\0\u0cc0\0\u1aa0\0\u1b00\0\u0cc0\0\u0cc0\0\u1b60"+ - "\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0\0\u1bc0\0\u0cc0\0\u1c20"+ - "\0\u1c80\0\u0cc0\0\u1ce0\0\u1d40\0\u0cc0\0\u1da0\0\u0cc0\0\u0cc0"+ - "\0\u1e00\0\u1e60\0\u1ec0\0\u1f20\0\u1f80\0\u1fe0\0\u2040\0\u20a0"+ - "\0\u2100\0\u2160\0\u21c0\0\u2220\0\u0cc0\0\u2280\0\u22e0\0\u2340"+ - "\0\u23a0\0\u2400\0\u2460\0\u24c0\0\u0cc0\0\u2520\0\u0cc0\0\u2580"+ - "\0\u25e0\0\u2640\0\u26a0\0\u2700\0\u2760\0\u27c0\0\u2820\0\u2880"+ - "\0\u0cc0\0\u0cc0\0\u28e0\0\u2940\0\u0cc0\0\u0cc0\0\u28e0\0\u29a0"+ - "\0\u0cc0\0\u2a00\0\u2a60\0\u2ac0\0\u2b20\0\u2b80\0\u2be0\0\u0cc0"+ - "\0\u2c40\0\u2ca0\0\u2d00\0\u2d60\0\u0cc0\0\u2dc0\0\u2e20\0\u0cc0"+ - "\0\u2e80\0\u2ee0\0\u2f40\0\u2fa0\0\u3000\0\u3060\0\u30c0\0\u3120"+ - "\0\u0cc0\0\u3180\0\u31e0\0\u3240\0\u32a0\0\u3300\0\u3360\0\u33c0"+ - "\0\u3420\0\u3480\0\u34e0\0\u3540\0\u35a0\0\u3600\0\u3660\0\u36c0"+ - "\0\u3720\0\u3780\0\u37e0\0\u3840\0\u38a0\0\u3900\0\u3960\0\u39c0"+ - "\0\u3a20\0\u3a80\0\u3ae0\0\u3b40\0\u3ba0\0\u3c00\0\u3c60\0\u3cc0"+ - "\0\u3d20\0\u3d80\0\u3de0\0\u3e40\0\u3ea0\0\u3f00\0\u3f60\0\u3fc0"+ - "\0\u4020\0\u4080\0\u40e0\0\u4140\0\u41a0\0\u4200\0\u4260\0\u42c0"+ - "\0\u0cc0\0\u4320\0\u4380\0\u43e0\0\u4440\0\u44a0\0\u0cc0\0\u0cc0"+ - "\0\u4500\0\u4560\0\u45c0\0\u4620\0\u0cc0\0\u0cc0\0\u4680\0\u0cc0"+ - "\0\u0cc0\0\u46e0\0\u4740\0\u47a0\0\u4800\0\u4860\0\u0cc0\0\u0cc0"+ - "\0\u0cc0\0\u4680\0\u46e0\0\u48c0\0\u4920\0\u0cc0\0\u0cc0\0\u0cc0"+ - "\0\u0cc0\0\u4680\0\u0cc0\0\u4980\0\u49e0\0\u4a40\0\u4aa0\0\u4b00"+ - "\0\u4b60\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0\0\u4bc0\0\u0cc0\0\u0cc0"+ - "\0\u0cc0\0\u4c20\0\u4c80\0\u0cc0\0\u28e0\0\u4ce0\0\u0cc0\0\u4d40"+ - "\0\u0cc0\0\u4da0\0\u0cc0\0\u4e00\0\u4e60\0\u4ec0\0\u4f20\0\u4f80"+ - "\0\u0cc0\0\u0cc0\0\u4fe0\0\u5040\0\u50a0\0\u5100\0\u5160\0\u0cc0"+ - "\0\u51c0\0\u5220\0\u5280\0\u52e0\0\u5340\0\u53a0\0\u5400\0\u5460"+ - "\0\u54c0\0\u5520\0\u5580\0\u55e0\0\u5640\0\u56a0\0\u5700\0\u5760"+ - "\0\u57c0\0\u5820\0\u5880\0\u58e0\0\u5940\0\u59a0\0\u5a00\0\u5a60"+ - "\0\u5ac0\0\u5b20\0\u5b80\0\u5be0\0\u5c40\0\u5ca0\0\u5d00\0\u5d60"+ - "\0\u5dc0\0\u5e20\0\u5e80\0\u5ee0\0\u5f40\0\u5fa0\0\u6000\0\u6060"+ - "\0\u60c0\0\u6120\0\u6180\0\u61e0\0\u6240\0\u62a0\0\u6300\0\u6360"+ - "\0\u63c0\0\u6420\0\u6480\0\u64e0\0\u6540\0\u65a0\0\u6600\0\u6660"+ - "\0\u66c0\0\u6720\0\u6780\0\u67e0\0\u6840\0\u68a0\0\u6900\0\u6960"+ - "\0\u69c0\0\u6a20\0\u6a80\0\u6ae0\0\u6b40\0\u0cc0\0\u1da0\0\u6ba0"+ - "\0\u6c00\0\u6c60\0\u6c60\0\u0cc0\0\u6cc0\0\u6d20\0\u6d80\0\u6de0"+ - "\0\u6e40\0\u6ea0\0\u6ea0\0\u6f00\0\u6f60\0\u6ea0\0\u6fc0\0\u7020"+ - "\0\u7080\0\u70e0\0\u7140\0\u71a0\0\u7200\0\u7260\0\u72c0\0\u7320"+ - "\0\u7380\0\u73e0\0\u7440\0\u74a0\0\u7500\0\u7560\0\u75c0\0\u7620"+ - "\0\u7680\0\u76e0\0\u7740\0\u77a0\0\u7800\0\u7860\0\u78c0\0\u7920"+ - "\0\u7980\0\u79e0\0\u7a40\0\u7aa0\0\u7b00\0\u7b60\0\u7bc0\0\u7c20"+ - "\0\u7c80\0\u7ce0\0\u7d40\0\u7da0\0\u7e00\0\u7e60\0\u7ec0\0\u7f20"+ - "\0\u1e60\0\u7f80\0\u7fe0\0\u8040\0\u80a0\0\u8100\0\u8160\0\u81c0"+ - "\0\u8220\0\u8280\0\u82e0\0\u0cc0\0\u8340\0\u83a0\0\u8400\0\u8460"+ - "\0\u84c0\0\u0cc0\0\u8520\0\u8580\0\u85e0\0\u8640\0\u86a0\0\u8700"+ - "\0\u8760\0\u87c0\0\u8820\0\u8880\0\u0cc0\0\u88e0\0\u8940\0\u0cc0"+ - "\0\u89a0\0\u8a00\0\u8a60\0\u8ac0\0\u8b20\0\u8b80\0\u8be0\0\u8c40"+ - "\0\u8ca0\0\u8d00\0\u8d60\0\u8dc0\0\u8e20\0\u8e80\0\u8ee0\0\u0cc0"+ - "\0\u8f40\0\u8fa0\0\u9000\0\u0cc0\0\u9060\0\u90c0\0\u9120\0\u9180"+ - "\0\u91e0\0\u9240\0\u92a0\0\u9300\0\u9360\0\u93c0\0\u9420\0\u9480"+ - "\0\u94e0\0\u9540\0\u95a0\0\u9600\0\u9660\0\u96c0\0\u9720\0\u9780"+ - "\0\u97e0\0\u9840\0\u98a0\0\u9900\0\u9960\0\u99c0\0\u9a20\0\u9a80"+ - "\0\u9ae0\0\u9b40\0\u9ba0\0\u9c00\0\u9c60\0\u9cc0\0\u9d20\0\u9d80"+ - "\0\u9de0\0\u9e40\0\u9ea0\0\u9f00\0\u9f60\0\u9fc0\0\u0cc0\0\ua020"+ - "\0\ua020\0\ua080\0\ua0e0\0\ua020\0\ua140\0\ua1a0\0\ua200\0\ua260"+ - "\0\ua2c0\0\ua320\0\ua380\0\ua3e0\0\ua440\0\ua4a0\0\ua500\0\ua560"+ - "\0\ua5c0\0\ua620\0\ua680\0\ua6e0\0\ua740\0\ua7a0\0\ua800\0\ua860"+ - "\0\ua8c0\0\ua920\0\ua980\0\ua9e0\0\uaa40\0\uaaa0\0\uab00\0\uab60"+ - "\0\uabc0\0\uac20\0\uac80\0\uace0\0\uad40\0\uada0\0\uae00\0\uae60"+ - "\0\uaec0\0\uaf20\0\uaf80\0\uafe0\0\ub040\0\ub0a0\0\ub100\0\ub160"+ - "\0\ub1c0\0\ub220\0\ub280\0\ub2e0\0\ub340\0\ub3a0\0\u3540\0\ub400"+ - "\0\ub460\0\ub4c0\0\ub520\0\ub580\0\ub5e0\0\ub640\0\ub6a0\0\ub700"+ - "\0\ub760\0\ub7c0\0\ub820\0\ub880\0\ub8e0\0\ub940\0\ub9a0\0\uba00"+ - "\0\uba60\0\ubac0\0\ubb20\0\ubb80\0\ubbe0\0\ubc40\0\ubca0\0\ubd00"+ - "\0\ubd60\0\ubdc0\0\ube20\0\ube80\0\ubee0\0\ubf40\0\ubfa0\0\u0cc0"+ - "\0\u0cc0\0\uc000\0\uc060\0\uc0c0\0\uc120\0\u0cc0\0\uc180\0\uc1e0"+ - "\0\uc240\0\uc2a0\0\uc300\0\uc360\0\uc3c0\0\uc420\0\uc480\0\uc4e0"+ - "\0\uc540\0\uc5a0\0\uc600\0\uc660\0\uc6c0\0\uc720\0\u0cc0\0\uc780"+ - "\0\uc7e0\0\uc840\0\uc8a0\0\uc900\0\u4b60\0\u0cc0\0\u0cc0\0\u0cc0"+ - "\0\u0cc0\0\u4e00\0\uc960\0\uc9c0\0\u0cc0\0\uca20\0\u0cc0\0\uca80"+ - "\0\u0cc0\0\ucae0\0\ucb40\0\ucba0\0\ucc00\0\u1140\0\ucc60\0\uccc0"+ - "\0\ucd20\0\ucd80\0\ucde0\0\uce40\0\ucea0\0\ucf00\0\ucf60\0\ucfc0"+ - "\0\ud020\0\ud080\0\ud0e0\0\ud140\0\ud1a0\0\ud200\0\ud260\0\ud2c0"+ - "\0\ud320\0\ud380\0\ud3e0\0\ud440\0\ud4a0\0\ud500\0\ud560\0\ud5c0"+ - "\0\ud620\0\ud680\0\ud6e0\0\ud740\0\ud7a0\0\ud800\0\ud860\0\ud8c0"+ - "\0\ud920\0\ud980\0\ud9e0\0\uda40\0\udaa0\0\udb00\0\udb60\0\udbc0"+ - "\0\udc20\0\udc80\0\udce0\0\u5c40\0\udd40\0\udda0\0\ude00\0\ude60"+ - "\0\udec0\0\udf20\0\udf80\0\u1620\0\udfe0\0\ue040\0\ue0a0\0\ue100"+ - "\0\ue160\0\ue1c0\0\ue220\0\ue280\0\ue2e0\0\ue340\0\u0cc0\0\ue3a0"+ - "\0\ue400\0\ue460\0\ue4c0\0\ue520\0\ue580\0\ue5e0\0\ue640\0\u6ea0"+ - "\0\ue6a0\0\ue700\0\ue760\0\ue7c0\0\ue820\0\ue880\0\ue8e0\0\ue940"+ - "\0\ue9a0\0\uea00\0\uea60\0\ueac0\0\ueb20\0\ueb80\0\uebe0\0\uec40"+ - "\0\ueca0\0\ued00\0\ued60\0\uedc0\0\uee20\0\uee80\0\ueee0\0\uef40"+ - "\0\uefa0\0\uf000\0\u1e60\0\uf060\0\uf0c0\0\uf120\0\uf180\0\uf1e0"+ - "\0\uf240\0\uf2a0\0\uf300\0\uf360\0\uf3c0\0\uf420\0\uf480\0\uf4e0"+ - "\0\uf540\0\uf5a0\0\uf600\0\uf660\0\uf6c0\0\uf720\0\uf780\0\uf7e0"+ - "\0\uf840\0\uf8a0\0\uf900\0\uf960\0\uf9c0\0\ufa20\0\ufa80\0\ufae0"+ - "\0\ufb40\0\ufba0\0\ufc00\0\ufc60\0\ufcc0\0\ufd20\0\ufd80\0\ufde0"+ - "\0\ufe40\0\ufea0\0\uff00\0\uff60\0\uffc0\1\40\1\200\1\340"+ - "\1\u0140\1\u01a0\1\u0200\1\u0260\1\u02c0\1\u0320\1\u0380\1\u03e0"+ - "\1\u0440\1\u04a0\1\u0500\1\u0560\1\u05c0\1\u0620\1\u0680\1\u06e0"+ - "\1\u0740\1\u07a0\1\u0800\1\u0860\0\u0cc0\1\u08c0\1\u0920\1\u0980"+ - "\1\u09e0\1\u0a40\1\u0aa0\1\u0b00\1\u0b60\1\u0bc0\1\u0c20\0\ue460"+ - "\1\u0c80\1\u0ce0\1\u0d40\1\u0da0\0\u3540\1\u0e00\1\u0e60\1\u0ec0"+ - "\1\u0f20\1\u0f80\1\u0fe0\1\u1040\1\u10a0\1\u1100\1\u1160\1\u11c0"+ - "\1\u1220\1\u1280\1\u12e0\1\u1340\1\u13a0\1\u1400\1\u1460\1\u14c0"+ - "\1\u1520\1\u1580\1\u15e0\1\u1640\1\u16a0\1\u1700\1\u1760\1\u17c0"+ - "\1\u1820\1\u1880\1\u18e0\1\u1940\1\u19a0\1\u1a00\1\u1a60\1\u1ac0"+ - "\1\u1b20\1\u1b80\1\u1be0\1\u1c40\1\u1ca0\1\u1d00\1\u1d60\1\u1dc0"+ - "\1\u1e20\1\u1e80\1\u1ee0\1\u1f40\1\u1fa0\1\u2000\1\u2060\1\u20c0"+ - "\1\u2120\1\u2180\1\u21e0\1\u2240\0\ua020\1\u22a0\1\u2300\1\u2360"+ - "\1\u23c0\1\u2420\1\u2480\1\u24e0\1\u2540\1\u25a0\1\u2600\1\u2660"+ - "\1\u26c0\1\u2720\1\u2780\1\u27e0\1\u2840\1\u28a0\1\u2900\1\u2960"+ - "\1\u29c0\1\u2a20\1\u2a80\1\u2ae0\1\u2b40\1\u2ba0\1\u2c00\1\u2c60"+ - "\1\u2cc0\1\u2d20\1\u2d80\1\u2de0\1\u2e40\1\u2ea0\1\u2f00\1\u2f60"+ - "\1\u2fc0\1\u3020\1\u3080\1\u30e0\1\u3140\1\u31a0\1\u3200\1\u3260"+ - "\1\u32c0\1\u3320\1\u3380\1\u33e0\1\u3440\1\u34a0\1\u3500\1\u3560"+ - "\1\u35c0\1\u3620\1\u3680\1\u36e0\1\u3740\1\u37a0\1\u3800\1\u3860"+ - "\1\u38c0\1\u3920\1\u3980\1\u39e0\1\u3a40\1\u3aa0\1\u3b00\1\u3b60"+ - "\1\u3bc0\1\u3c20\1\u3c80\1\u3ce0\1\u3d40\1\u3da0\1\u3e00\1\u3e60"+ - "\1\u3ec0\1\u3f20\1\u3f80\1\u3fe0\1\u4040\1\u40a0\1\u4100\1\u4160"+ - "\1\u41c0\1\u4220\1\u4280\1\u42e0\1\u4340\1\u43a0\1\u4400\1\u4460"+ - "\1\u44c0\1\u4520\1\u4580\1\u45e0\1\u4640\1\u46a0\1\u4700\1\u4760"+ - "\1\u47c0\1\u4820\1\u4880\1\u48e0\1\u4940\1\u49a0\1\u4a00\1\u4a60"+ - "\1\u4ac0\1\u4b20\1\u4b80\1\u4be0\1\u4c40\1\u4ca0\1\u4d00\1\u4d60"+ - "\1\u4dc0\1\u4e20\1\u4e80\1\u4ee0\0\u0cc0\0\u0cc0\1\u4f40\1\u4fa0"+ - "\1\u5000\1\u5060\1\u50c0\1\u5120\1\u5180\1\u51e0\1\u5240\1\u52a0"+ - "\1\u5300\1\u5360\1\u53c0\1\u5420\1\u5480\1\u54e0\1\u5540\1\u55a0"+ - "\1\u5600\1\u5660\1\u56c0\1\u5720\0\u5d60\1\u5780\1\u57e0\1\u5840"+ - "\1\u58a0\1\u5900\1\u5960\1\u59c0\1\u5a20\0\ud620\1\u5a80\1\u5ae0"+ - "\1\u5b40\1\u5ba0\1\u5c00\1\u5c60\1\u5cc0\0\u0cc0\1\u5d20\1\u5d80"+ - "\1\u5de0\1\u5e40\0\u1e60\1\u5ea0\1\u5f00\1\u5f60\1\u5fc0\1\u6020"+ - "\1\u6080\1\u60e0\1\u6140\1\u61a0\0\u1e60\0\u1e60\1\u6200\1\u6260"+ - "\1\u62c0\0\u1e60\1\u6320\1\u6380\1\u63e0\1\u6440\1\u64a0\1\u6500"+ - "\1\u6560\1\u65c0\1\u6620\1\u6680\1\u66e0\1\u6740\1\u67a0\1\u6800"+ - "\1\u6860\1\u68c0\1\u6920\1\u6980\1\u69e0\0\u83a0\0\u0cc0\1\u6a40"+ - "\1\u6aa0\1\u6b00\1\u6b60\1\u6bc0\1\u6c20\1\u6c80\1\u6ce0\0\u0cc0"+ - "\1\u6d40\1\u6da0\1\u6e00\1\u6e60\1\u6ec0\1\u6f20\1\u6f80\1\u6fe0"+ - "\1\u7040\0\u0cc0\1\u70a0\1\u7100\1\u7160\1\u71c0\1\u7220\1\u7280"+ - "\1\u72e0\1\u7340\1\u73a0\1\u7400\1\u7460\1\u74c0\1\u7520\1\u7580"+ - "\1\u75e0\1\u7640\1\u76a0\1\u7700\1\u7760\1\u77c0\1\u7820\1\u7880"+ - "\1\u78e0\1\u7940\1\u79a0\1\u7a00\1\u7a60\1\u7ac0\1\u7b20\1\u7b80"+ - "\1\u7be0\1\u7c40\1\u7ca0\1\u7d00\1\u7d60\1\u7dc0\1\u7e20\1\u7e80"+ - "\1\u7ee0\1\u7f40\1\u7fa0\1\u8000\1\u8060\1\u80c0\1\u8120\1\u8180"+ - "\1\u81e0\1\u8240\1\u82a0\1\u8300\1\u8360\1\u83c0\1\u8420\1\u8480"+ - "\1\u84e0\1\u8540\1\u85a0\1\u8600\1\u8660\1\u86c0\1\u8720\1\u8780"+ - "\1\u87e0\1\u8840\1\u88a0\1\u8900\1\u8960\1\u89c0\1\u8a20\1\u8a80"+ - "\1\u8ae0\1\u8b40\1\u8ba0\1\u8c00\1\u8c60\1\u8cc0\1\u8d20\1\u8d80"+ - "\1\u8de0\1\u8e40\1\u8ea0\1\u8f00\1\u8f60\1\u8fc0\1\u9020\1\u9080"+ - "\1\u90e0\1\u9140\1\u2300\1\u91a0\1\u9200\1\u9260\1\u92c0\1\u9320"+ - "\1\u9380\1\u93e0\1\u9440\0\u3540\1\u94a0\1\u9500\1\u9560\1\u95c0"+ - "\1\u9620\1\u9680\1\u96e0\1\u9740\1\u97a0\1\u9800\1\u9860\1\u98c0"+ - "\1\u9920\0\u3540\1\u9980\1\u99e0\1\u9a40\1\u9aa0\1\u9b00\1\u9b60"+ - "\1\u9bc0\1\u9c20\1\u9c80\1\u9ce0\1\u9d40\1\u9da0\1\u9e00\1\u9e60"+ - "\1\u9ec0\1\u9f20\1\u9f80\1\u9fe0\1\ua040\1\ua0a0\1\ua100\1\ua160"+ - "\1\ua1c0\1\ua220\1\ua280\1\ua2e0\1\ua340\1\ua3a0\1\ua400\1\ua460"+ - "\1\ua4c0\1\ua520\1\ua580\1\ua5e0\1\ua640\1\ua6a0\1\ua700\1\ua760"+ - "\1\ua7c0\1\ua820\1\ua880\1\ua8e0\1\ua940\1\ua9a0\1\uaa00\1\uaa60"+ - "\1\uaac0\1\uab20\1\uab80\1\uabe0\1\uac40\1\uaca0\1\uad00\1\uad60"+ - "\1\uadc0\1\uae20\0\u4380\1\uae80\1\uaee0\1\uaf40\1\uafa0\1\ub000"+ - "\1\ub060\1\ub0c0\1\ub120\1\ub180\1\ub1e0\1\ub240\1\ub2a0\1\ub300"+ - "\1\ub360\1\ub3c0\1\ub420\1\ub480\1\ub4e0\1\ub540\1\ub5a0\1\ub600"+ - "\1\ub660\1\u5000\1\ub6c0\1\ub720\1\ub780\1\ub7e0\1\ub840\1\ub8a0"+ - "\1\ub900\1\ub960\1\ub9c0\1\uba20\1\uba80\1\uba80\1\ubae0\1\ubb40"+ - "\1\ubba0\1\ubc00\1\ubc60\1\ubcc0\1\ubd20\1\ubd80\1\ubde0\1\ube40"+ - "\1\ubea0\1\ubf00\1\ubf60\1\ubfc0\0\ue9a0\1\uc020\1\uc080\1\uc0e0"+ - "\1\uc140\1\uc1a0\1\uc200\1\uc260\1\uc2c0\1\uc320\1\uc380\1\uc3e0"+ - "\1\uc440\1\uc4a0\1\uc500\1\uc560\1\uc5c0\1\uc620\1\uc680\1\uc6e0"+ - "\1\uc740\1\u6b60\1\uc7a0\1\uc800\1\u6ce0\1\uc860\1\uc8c0\1\uc920"+ - "\1\uc980\1\uc9e0\1\uca40\1\ucaa0\1\ucb00\1\ucb60\1\ucbc0\1\ucc20"+ - "\1\ucc80\1\ucce0\1\ucd40\1\ucda0\1\uce00\1\uce60\1\ucec0\1\u7400"+ - "\1\ucf20\1\ucf80\1\ucfe0\1\ud040\1\ud0a0\1\ud100\1\ud160\1\ud1c0"+ - "\1\ud220\1\ud280\1\ud2e0\1\ud340\1\ud3a0\1\ud400\1\ud460\1\ud4c0"+ - "\1\ud520\1\ud580\1\ud5e0\1\ud640\1\ud6a0\1\ud700\1\ud760\1\ud7c0"+ - "\1\ud820\1\ud880\1\ud8e0\1\ud940\1\ud9a0\1\uda00\1\uda60\1\udac0"+ - "\1\udb20\1\udb80\1\udbe0\1\udc40\1\udca0\1\udd00\1\udd60\1\uddc0"+ - "\1\ude20\1\ude80\1\udee0\1\udf40\1\udfa0\1\ue000\1\ue060\1\ue0c0"+ - "\1\ue120\1\ue180\1\ue1e0\1\ue240\1\ue2a0\1\ue300\1\ue360\1\ue3c0"+ - "\1\ue420\1\ue480\1\ue4e0\1\ue540\1\ue5a0\1\ue600\1\ue660\1\ue6c0"+ - "\1\ue720\1\ue780\1\ue7e0\1\ue840\1\ue8a0\1\ue900\1\ue960\1\ue9c0"+ - "\1\uea20\1\uea80\1\ueae0\1\ueb40\1\ueba0\1\uec00\1\uec60\1\uecc0"+ - "\1\ued20\1\ued80\1\uede0\1\uee40\1\ueea0\1\uef00\1\uef60\1\uefc0"+ - "\1\u2780\1\uf020\1\uf080\1\uf0e0\1\uf140\1\uf1a0\1\uf200\1\uf260"+ - "\1\uf2c0\1\uf320\1\uf380\1\uf3e0\1\uf440\1\uf4a0\1\uf500\1\uf560"+ - "\1\uf5c0\1\uf620\1\uf680\1\uf6e0\1\uf740\1\uf7a0\1\uf800\1\uf860"+ - "\1\uf8c0\1\uf920\1\uf980\1\uf9e0\1\ufa40\1\ufaa0\1\ufb00\1\ufb60"+ - "\1\ufbc0\1\ufc20\1\ufc80\1\ufce0\1\ufd40\1\ufda0\1\ufe00\1\ufe60"+ - "\1\ufec0\1\uff20\1\uff80\1\uffe0\2\100\2\240\2\u0100\2\u0160"+ - "\2\u01c0\2\u0220\2\u0280\2\u02e0\2\u0340\2\u03a0\2\u0400\2\u0460"+ - "\2\u04c0\2\u0520\2\u0580\2\u05e0\2\u0640\2\u06a0\2\u0700\2\u0760"+ - "\2\u07c0\2\u0820\2\u0880\2\u08e0\2\u0940\2\u09a0\2\u0a00\2\u0a60"+ - "\2\u0ac0\2\u0b20\2\u0b80\2\u0be0\2\u0c40\2\u0ca0\2\u0d00\2\u0d60"+ - "\0\u4ec0\2\u0dc0\2\u0e20\2\u0e80\2\u0ee0\2\u0f40\2\u0fa0\2\u1000"+ - "\2\u1060\2\u10c0\2\u1120\2\u1180\2\u11e0\2\u1240\0\u1e60\2\u12a0"+ - "\2\u1300\2\u1360\2\u13c0\2\u1420\2\u1480\2\u14e0\2\u1540\2\u15a0"+ - "\2\u1600\2\u1660\2\u16c0\2\u1720\2\u1780\2\u17e0\2\u1840\2\u18a0"+ - "\2\u1900\2\u1960\2\u19c0\2\u1a20\2\u1a80\2\u1ae0\2\u1b40\2\u1ba0"+ - "\2\u1c00\2\u1c60\2\u1cc0\2\u1d20\2\u1d80\2\u1de0\2\u1e40\2\u1ea0"+ - "\2\u1f00\2\u1f60\2\u1fc0\2\u2020\2\u2080\2\u20e0\2\u2140\2\u21a0"+ - "\2\u2200\2\u2260\2\u22c0\2\u2320\2\u2380\2\u23e0\2\u2440\2\u24a0"+ - "\2\u2500\2\u2560\2\u25c0\2\u2620\2\u2680\2\u26e0\2\u2740\2\u27a0"+ - "\2\u2800\2\u2860\2\u28c0\2\u2920\2\u2980\2\u29e0\2\u2a40\2\u2aa0"+ - "\2\u2b00\2\u2b60\2\u2bc0\2\u2c20\2\u2c80\2\u2ce0\2\u2d40\2\u2da0"+ - "\2\u2e00\2\u2e60\2\u2ec0\2\u2f20\2\u2f80\2\u2fe0\2\u3040\2\u30a0"+ - "\2\u3100\2\u3160\2\u31c0\2\u3220\2\u3280\2\u32e0\2\u3340\2\u33a0"+ - "\2\u3400\2\u3460\2\u34c0\2\u3520\2\u3580\2\u35e0\2\u3640\2\u36a0"+ - "\2\u3700\2\u3760\2\u37c0\2\u3820\2\u3880\2\u38e0\2\u3940\2\u39a0"+ - "\2\u3a00\2\u3a60\2\u3ac0\2\u3b20\2\u3b80\2\u3be0\2\u3c40\2\u3ca0"+ - "\0\u3540\2\u3d00\2\u3d60\2\u3dc0\2\u3e20\2\u3e80\2\u3ee0\2\u3f40"+ - "\2\u3fa0\2\u4000\2\u4060\2\u40c0\2\u4120\2\u4180\2\u41e0\2\u4240"+ - "\2\u42a0\2\u4300\2\u4360\2\u43c0\2\u4420\2\u4480\2\u44e0\2\u4540"+ - "\2\u45a0\2\u4600\2\u4660\2\u46c0\2\u4720\2\u4780\2\u47e0\2\u4840"+ - "\2\u48a0\2\u4900\2\u4960\2\u49c0\2\u4a20\2\u4a80\2\u4ae0\2\u4b40"+ - "\2\u4ba0\2\u4c00\2\u4c60\2\u4cc0\2\u4d20\2\u4d80\2\u4de0\2\u4e40"+ - "\2\u4ea0\2\u4f00\2\u4f60\2\u4fc0\2\u5020\2\u5080\2\u50e0\2\u5140"+ - "\2\u51a0\2\u5200\2\u5260\2\u52c0\2\u5320\2\u5380\2\u53e0\2\u5440"+ - "\2\u54a0\0\u4ec0\2\u5500\2\u5560\2\u55c0\2\u5620\2\u5680\2\u56e0"+ - "\2\u5740\2\u57a0\2\u5800\2\u5860\2\u58c0\2\u5920\2\u5980\2\u59e0"+ - "\2\u5a40\2\u5aa0\2\u5b00\2\u5b60\2\u5bc0\2\u5c20\2\u5c80\2\u5ce0"+ - "\2\u5d40\2\u5da0\2\u5e00\2\u5e60\2\u5ec0\2\u5f20\2\u5f80\2\u5fe0"+ - "\2\u6040\2\u60a0\2\u6100\2\u6160\2\u61c0\2\u6220\2\u6280\2\u62e0"+ - "\2\u6340\2\u63a0\2\u6400\2\u6460\2\u64c0\2\u6520\2\u6580\2\u65e0"+ - "\2\u6640\2\u66a0\2\u6700\2\u6760\2\u67c0\2\u6820\2\u6880\2\u68e0"+ - "\2\u6940\2\u69a0\2\u6a00\2\u6a60\2\u6ac0\2\u6b20\2\u6b80\2\u6be0"+ - "\2\u6c40\2\u6ca0\2\u6d00\2\u6d60\2\u6dc0\2\u6e20\2\u6e80\2\u6ee0"+ - "\2\u6f40\2\u6fa0\2\u7000\2\u7060\2\u70c0\2\u7120\2\u7180\2\u71e0"+ - "\2\u7240\2\u72a0\2\u7300\2\u7360\2\u73c0\2\u7420\2\u7480\2\u74e0"+ - "\2\u7540\2\u75a0\2\u7600\2\u7660\2\u76c0\2\u7720\2\u7780\2\u77e0"+ - "\2\u7840\2\u78a0\2\u7900\2\u7960\2\u79c0\2\u7a20\2\u7a80\2\u7ae0"+ - "\2\u7b40\2\u7ba0\2\u7c00\2\u7c60\2\u7cc0\2\u7d20\2\u7d80\2\u7de0"+ - "\2\u7e40\2\u7ea0\2\u7f00\2\u7f60\2\u7fc0\2\u8020\2\u8080\2\u80e0"+ - "\2\u8140\2\u81a0\2\u8200\2\u8260\2\u82c0\2\u8320\2\u8380\2\u83e0"+ - "\2\u8440\2\u84a0\2\u8500\2\u8560\2\u85c0\2\u8620\2\u8680\2\u86e0"+ - "\2\u8740\2\u87a0\2\u8800\2\u8860\2\u88c0\2\u8920\2\u4a20\2\u8980"+ - "\2\u89e0\2\u8a40\2\u8aa0\2\u8b00\2\u8b60\2\u8bc0\2\u8c20\2\u8c80"+ - "\2\u8ce0\2\u8d40\2\u8da0\2\u8e00\2\u8e60\2\u8ec0\2\u8f20\2\u8f80"+ - "\2\u8fe0\2\u9040\2\u90a0\2\u9100\2\u9160\2\u91c0\2\u9220\2\u9280"+ - "\2\u92e0\2\u9340\2\u93a0\2\u9400\2\u9460\2\u94c0\2\u9520\2\u9580"+ - "\2\u95e0\2\u9640\2\u96a0\2\u9700\2\u9760\2\u97c0\2\u9820\2\u9880"+ - "\2\u98e0\2\u9940\2\u99a0\2\u9a00\2\u9a60\2\u9ac0\2\u9b20\2\u9b80"+ - "\2\u9be0\2\u9c40\2\u9ca0\2\u9d00\2\u9d60\2\u9dc0\2\u9e20\2\u9e80"+ - "\2\u9ee0\2\u9f40\2\u9fa0\2\ua000\2\ua060\2\ua0c0\2\ua120\2\ua180"+ - "\2\ua1e0\2\ua240\2\ua2a0\2\ua300\2\ua360\2\ua3c0\2\ua420\2\ua480"+ - "\2\ua4e0\2\ua540\2\ua5a0\2\ua600\2\ua660\2\ua6c0\2\ua720\2\ua780"+ - "\2\ua7e0\2\ua840\2\ua8a0\2\ua900\2\ua960\2\ua9c0\2\uaa20\2\uaa80"+ - "\2\uaae0\2\uab40\2\uaba0\2\uac00\2\uac60\2\uacc0\2\uad20\2\uad80"+ - "\2\uade0\2\uae40\2\uaea0\2\uaf00\2\uaf60\2\uafc0\2\ub020\2\ub080"+ - "\2\ub0e0\2\ub140\2\ub1a0\2\ub200\2\ub260\2\ub2c0\2\ub320\2\ub380"+ - "\2\ub3e0\2\ub440\2\ub4a0\2\ub500\2\ub560\2\ub5c0\2\ub620\2\ub680"+ - "\2\ub6e0\2\ub740\2\ub7a0\2\ub800\2\ub860\2\ub8c0\2\ub920\2\ub980"+ - "\2\ub9e0\2\uba40\2\ubaa0\2\ubb00\2\ubb60\2\ubbc0\2\ubc20\2\ubc80"+ - "\2\ubce0\2\ubd40\2\ubda0\2\ube00\2\ube60\2\ubec0\2\ubf20\2\ubf80"+ - "\2\ubfe0\2\uc040\2\uc0a0\2\uc100\2\uc160\2\uc1c0\2\uc220\2\uc280"+ - "\0\u0cc0\2\uc2e0\2\uc340\2\uc3a0\2\uc400\2\uc460\0\u0cc0\2\uc4c0"+ - "\0\u0cc0\0\u0cc0\2\uc520\2\uc580\2\uc5e0\2\uc640\2\uc6a0\2\uc700"+ - "\2\uc760\2\uc7c0\2\uc820\2\uc880\2\uc8e0\2\uc940\2\uc9a0\2\uca00"+ - "\2\uca60\2\ucac0\2\ucb20\2\ucb80\2\ucbe0\2\ucc40\2\ucca0\2\ucd00"+ - "\2\ucd60\2\ucdc0\2\uce20\2\uce80\2\ucee0\2\ucf40\2\ucfa0\2\ud000"+ - "\2\ud060\2\ud0c0\2\ud120\2\ud180\2\ud1e0\2\ud240\2\ud2a0\2\ud300"+ - "\2\ud360\2\ud3c0\2\ud420\2\ud480\2\ud4e0\2\ud540\2\ud5a0\2\ud600"+ - "\2\ud660\2\ud6c0\2\ud720\2\ud780\2\ud7e0\2\ud840\2\ud8a0\2\ud900"+ - "\2\ud960\2\ud9c0\2\uda20\2\uda80\2\udae0\2\udb40\2\udba0\2\udc00"+ - "\2\udc60\2\udcc0\2\udd20\2\udd80\2\udde0\2\ude40\2\udea0\2\udf00"+ - "\2\udf60\2\udfc0\2\ue020\2\ue080\2\ue0e0\2\ue140\2\ue1a0\2\ue200"+ - "\2\ue260\2\ue2c0\2\ue320\2\ue380\2\ue3e0\2\ue440\2\ue4a0\2\ue500"+ - "\2\ue560\2\ue5c0\2\ue380\2\ue620\2\ue680\2\ue6e0\2\ue740\2\ue7a0"+ - "\2\ue800\2\ue860\2\ue8c0\2\ue920\2\ue980\2\ue9e0\2\uea40\2\ueaa0"+ - "\2\ueb00\2\ueb60\2\uebc0\0\u0cc0\2\uec20\2\uec80\2\uece0\2\ued40"+ - "\2\ueda0\2\uee00\2\uee60\2\ueec0\2\uef20\2\uef80\2\uefe0\2\uf040"+ - "\2\uf0a0\2\uf100\2\uf160\2\uf1c0\2\uf220\2\uf280\2\uf2e0\2\uf340"+ - "\2\uf3a0\2\uf400\2\uf460\2\uf4c0\2\uf520\2\uf580\2\uf5e0\2\uf640"+ - "\2\uf6a0\2\uf700\2\uf760\2\ud780\2\uf7c0\2\uf820\2\uf880\2\uf8e0"+ - "\2\uf940\2\uf9a0\2\ufa00\2\ufa60\2\ufac0\2\ufb20\2\ufb80\2\ufbe0"+ - "\2\ufc40\2\ufca0\2\ufd00\2\ufd60\2\ufdc0\2\ufe20\2\ufe80\2\ufee0"+ - "\2\uff40\2\uffa0\3\0\3\140\3\300\3\u0120\3\u0180\3\u01e0"+ - "\3\u0240\3\u02a0\3\u0300\3\u0360\3\u03c0\3\u0420\3\u0480\3\u04e0"+ - "\3\u0540\3\u05a0\3\u0600\3\u0660\3\u06c0\3\u0720\3\u0780\3\u07e0"+ - "\3\u0840\3\u08a0\3\u0900\3\u0960\3\u09c0\3\u0a20\3\u0a80\3\u0ae0"+ - "\3\u0b40\3\u0ba0\3\u0c00\3\u0c60\3\u0cc0\3\u0d20\3\u0d80\3\u0de0"+ - "\3\u0e40\3\u0ea0\3\u0f00\3\u0f60\3\u0fc0\3\u1020\3\u1080\3\u10e0"+ - "\3\u1140\3\u11a0\3\u1200\3\u1260\3\u12c0\3\u1320\3\u1380\3\u13e0"+ - "\3\u1440\3\u14a0\0\u0cc0\3\u1500\3\u1560\3\u15c0\3\u1620\3\u1680"+ - "\3\u16e0\3\u1740\3\u17a0\3\u1800\3\u1860\3\u18c0\3\u1920\3\u1980"+ - "\3\u19e0\3\u1a40\3\u1aa0\3\u1b00\3\u1b60\3\u1bc0\3\u1c20\3\u1c80"+ - "\3\u1ce0\3\u1d40\3\u1da0\3\u1e00\3\u1e60\3\u1ec0\3\u1f20\3\u1f80"+ - "\3\u1fe0\3\u2040\3\u20a0\3\u2100\3\u2160\3\u21c0\3\u2220\3\u2280"+ - "\3\u22e0\3\u2340\3\u23a0\3\u2400\3\u2460\3\u24c0\3\u2520\3\u2580"+ - "\3\u25e0\3\u2640\3\u26a0\3\u2700\3\u2760\3\u27c0\3\u2820\3\u2880"+ - "\3\u28e0\3\u2940\3\u29a0\3\u2a00\3\u2a60\3\u2ac0\3\u2b20\3\u2b80"+ - "\3\u2be0\3\u2c40\3\u2ca0\3\u2d00\3\u2d60\3\u2dc0\3\u2e20\3\u2e80"+ - "\3\u2ee0\3\u2f40\3\u2fa0\3\u3000\3\u3060\3\u30c0\2\u9940\3\u3120"+ - "\3\u3180\3\u31e0\3\u3240\3\u32a0\3\u3300\3\u3360\3\u33c0\3\u3420"+ - "\3\u3480\3\u34e0\3\u3540\3\u35a0\3\u3600\3\u3660\3\u36c0\3\u3720"+ - "\3\u3780\3\u37e0\3\u3840\3\u38a0\3\u3900\3\u3960\3\u39c0\3\u3a20"+ - "\3\u3a80\3\u3ae0\3\u3b40\3\u3ba0\3\u3c00\3\u3c60\3\u3cc0\3\u3d20"+ - "\3\u3d80\3\u3de0\3\u3e40\3\u3ea0\3\u3f00\3\u3f60\3\u3fc0\3\u4020"+ - "\3\u4080\3\u40e0\3\u4140\3\u41a0\3\u4200\3\u4260\3\u42c0\3\u4320"+ - "\3\u4380\3\u43e0\3\u4440\3\u44a0\3\u4500\3\u4560\3\u45c0\3\u4620"+ - "\3\u4680\3\u46e0\3\u4740\3\u47a0\3\u4800\3\u4860\3\u48c0\3\u4920"+ - "\3\u4980\3\u49e0\3\u4a40\3\u4aa0\3\u4b00\3\u4b60\3\u4bc0\3\u4c20"+ - "\3\u4c80\3\u4ce0\3\u4d40\3\u4da0\3\u4e00\3\u4e60\3\u4ec0\3\u4f20"+ - "\3\u4f80\3\u4fe0\3\u5040\3\u50a0\3\u5100\3\u5160\3\u51c0\3\u5220"+ - "\3\u5280\3\u52e0\3\u5340\3\u53a0\3\u5400\3\u5460\3\u54c0\3\u5520"+ - "\3\u5580\3\u55e0\3\u5640\3\u56a0\3\u5700\3\u5760\3\u57c0\3\u5820"+ - "\3\u5880\3\u58e0\3\u5940\3\u59a0\3\u5a00\3\u5a60\3\u5ac0\3\u5b20"+ - "\3\u5b80\3\u5be0\3\u5c40\3\u5ca0\3\u5d00\3\u5d60\3\u5dc0\3\u5e20"+ - "\3\u5e80\3\u5ee0\3\u5f40\3\u5fa0\3\u6000\3\u6060\3\u60c0\3\u6120"+ - "\3\u6180\3\u61e0\3\u6240\3\u62a0\3\u6300\3\u6360\3\u63c0\3\u6420"+ - "\3\u6480\3\u64e0\3\u6540\3\u65a0\3\u6600\3\u6660\3\u66c0\3\u6720"+ - "\3\u6780\3\u67e0\3\u6840\3\u68a0\3\u6900\3\u6960\3\u69c0\3\u6a20"+ - "\3\u6a80\3\u6ae0\3\u6b40\3\u6ba0\3\u6c00\3\u6c60\3\u6cc0\3\u6d20"+ - "\3\u6d80\3\u6de0\3\u6e40\3\u6ea0\3\u6f00\3\u6f60\3\u6fc0\3\u7020"+ - "\3\u7080\3\u70e0\3\u7140\3\u71a0\3\u7200\3\u7260\3\u72c0\3\u7320"+ - "\3\u7380\3\u73e0\3\u7440\3\u74a0\3\u7500\3\u7560\3\u75c0\3\u7620"+ - "\3\u7680\3\u76e0\3\u7740\3\u77a0\3\u7800\3\u7860\3\u78c0\3\u7920"+ - "\3\u7980\3\u79e0\3\u7a40\3\u7aa0\3\u7b00\3\u7b60\3\u7bc0\3\u7c20"+ - "\3\u7c80\3\u7ce0\3\u7d40\3\u7da0\3\u7e00\3\u7e60\3\u7ec0\3\u7f20"+ - "\3\u7f80\3\u7fe0\3\u8040\3\u80a0\3\u8100\3\u8160\3\u81c0\3\u8220"+ - "\3\u8280\3\u82e0\3\u8340\3\u83a0\3\u8400\3\u8460\3\u84c0\3\u8520"+ - "\3\u8580\3\u85e0\3\u8640\3\u86a0\3\u8700\3\u8760\3\u87c0\3\u8820"+ - "\3\u8880\3\u88e0\3\u8940\3\u89a0\3\u8a00\3\u8a60\3\u8ac0\3\u8b20"+ - "\3\u8b80\3\u8be0\3\u8c40\3\u8ca0\3\u8d00\3\u8d60\3\u8dc0\3\u8e20"+ - "\3\u8e80\3\u8ee0\3\u8f40\3\u8fa0\3\u9000\3\u9060\3\u90c0\3\u9120"+ - "\3\u9180\3\u91e0\3\u9240\3\u92a0\3\u9300\3\u9360\3\u93c0\3\u9420"+ - "\3\u9480\3\u94e0\3\u9540\3\u95a0\3\u9600\3\u9660\3\u96c0\3\u9720"+ - "\3\u9780\3\u97e0\3\u9840\3\u98a0\3\u9900\3\u9960\3\u99c0\3\u9a20"+ - "\3\u9a80\3\u9ae0\3\u9b40\3\u9ba0\3\u9c00\3\u9c60\3\u9cc0\3\u9d20"+ - "\3\u9d80\3\u9de0\3\u9e40\3\u9ea0\3\u9f00\3\u9f60\3\u9fc0\3\ua020"+ - "\3\ua080\3\ua0e0\3\ua140\3\ua1a0\3\ua200\3\ua260\3\ua2c0\3\ua320"+ - "\3\ua380\3\ua3e0\3\ua440\3\ua4a0\3\ua500\3\ua560\3\ua5c0\3\ua620"+ - "\3\ua680\3\ua6e0\3\ua740\3\ua7a0\3\ua800\3\ua860\3\ua8c0\3\ua920"+ - "\3\ua980\3\ua9e0\3\uaa40\3\uaaa0\3\uab00\3\uab60\3\uabc0\3\uac20"+ - "\3\uac80\3\uace0\3\uad40\3\uada0\3\uae00\3\uae60\3\uaec0\3\uaf20"+ - "\3\uaf80\3\uafe0\3\ub040\3\ub0a0\3\ub100\3\ub160\3\ub1c0\3\ub220"+ - "\3\ub280\3\ub2e0\3\ub340\3\ub3a0\3\ub400\3\ub460\3\ub4c0\3\ub520"+ - "\3\ub580\3\ub5e0\3\ub640\3\ub6a0\3\ub700\3\ub760\3\ub7c0\3\ub820"+ - "\3\ub880\3\ub8e0\3\ub940\3\ub9a0\3\uba00\3\uba60\3\ubac0\3\ubb20"+ - "\3\ubb80\3\ubbe0\3\ubc40\3\ubca0\3\ubd00\3\ubd60\3\ubdc0\3\ube20"+ - "\3\ube80\3\ubee0\3\ubf40\3\ubfa0\3\uc000\3\uc060\3\uc0c0"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[2711]; - 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 = - "\1\41\1\42\1\43\1\44\1\45\1\46\132\41\2\47"+ - "\1\50\33\47\1\51\5\47\1\52\33\47\1\53\7\47"+ - "\1\54\27\47\2\55\1\56\64\55\1\57\50\55\2\60"+ - "\1\61\16\60\1\62\116\60\2\63\1\0\1\64\1\65"+ - "\2\63\1\66\1\67\1\70\1\71\6\63\1\72\116\63"+ - "\2\73\1\0\1\73\1\74\2\73\4\74\1\75\1\76"+ - "\1\77\1\100\1\101\1\102\1\74\1\73\1\103\1\104"+ - "\6\73\1\105\4\73\1\106\1\77\1\102\1\107\1\110"+ - "\5\73\2\111\1\73\1\110\2\73\1\104\1\105\1\103"+ - "\1\75\11\73\1\112\1\73\1\76\1\113\1\114\1\100"+ - "\1\73\1\101\1\73\1\115\1\114\1\73\1\116\1\117"+ - "\4\73\1\112\1\107\1\115\1\106\1\73\1\117\1\120"+ - "\1\116\1\113\3\73\1\120\4\73\3\121\1\122\4\121"+ - "\1\123\127\121\3\124\1\122\5\124\1\123\126\124\1\63"+ - "\1\125\1\0\1\64\1\45\2\63\1\66\1\126\1\127"+ - "\1\130\6\63\1\131\116\63\3\121\1\122\4\121\1\132"+ - "\127\121\3\124\1\122\5\124\1\132\126\124\2\63\1\0"+ - "\1\63\1\65\2\63\1\66\1\133\1\134\1\130\6\63"+ - "\1\135\116\63\10\136\1\137\127\136\11\140\1\137\126\140"+ - "\1\141\1\45\1\142\1\143\1\45\1\144\1\145\1\146"+ - "\1\147\1\150\1\151\3\152\1\153\2\152\1\154\3\152"+ - "\2\146\1\152\1\155\1\156\1\155\1\152\1\155\1\152"+ - "\1\157\1\141\1\160\1\161\1\162\1\163\1\164\1\155"+ - "\1\165\1\141\1\152\1\146\1\152\1\166\2\152\1\167"+ - "\1\170\1\171\1\172\1\173\1\174\1\175\1\145\1\146"+ - "\3\66\1\176\1\177\1\141\2\152\1\200\1\152\1\201"+ - "\1\202\1\203\1\204\3\152\1\205\1\206\1\152\4\175"+ - "\1\152\1\207\7\152\1\155\5\152\2\155\2\210\1\211"+ - "\5\210\1\212\26\210\1\213\100\210\2\214\1\215\6\214"+ - "\1\216\25\214\1\217\100\214\2\220\1\221\1\222\40\220"+ - "\1\223\4\220\1\224\26\220\1\225\7\220\1\226\27\220"+ - "\2\227\1\230\1\231\40\227\1\232\33\227\1\233\7\227"+ - "\1\234\27\227\2\47\1\235\33\47\1\236\5\47\1\52"+ - "\33\47\1\53\7\47\1\54\27\47\2\237\1\240\1\241"+ - "\40\237\1\242\4\237\1\243\22\237\1\244\3\237\1\245"+ - "\7\237\1\246\4\237\1\247\22\237\1\250\1\45\1\251"+ - "\1\252\1\45\1\144\1\145\1\146\1\253\1\254\1\255"+ - "\1\256\1\257\1\260\1\261\1\262\1\263\1\154\1\264"+ - "\1\265\1\266\1\267\1\146\1\264\1\270\1\271\1\270"+ - "\1\272\1\270\1\264\1\157\1\250\1\264\1\273\1\274"+ - "\1\275\1\276\1\270\1\165\1\250\1\264\1\146\1\277"+ - "\1\300\1\264\1\301\1\167\1\170\1\302\1\303\1\304"+ - "\1\305\1\175\1\145\1\146\3\66\1\176\1\250\1\306"+ - "\2\264\1\307\1\264\1\310\1\311\1\312\1\313\2\264"+ - "\1\314\1\315\1\316\1\264\4\175\1\317\1\320\1\321"+ - "\1\322\1\323\1\264\1\324\1\325\1\326\1\270\4\264"+ - "\1\327\2\270\2\330\1\331\41\330\1\223\4\330\1\332"+ - "\26\330\1\225\7\330\1\226\27\330\1\333\1\334\1\0"+ - "\1\333\1\45\2\333\1\66\1\335\1\336\1\337\6\333"+ - "\1\340\3\333\1\341\14\333\1\342\37\333\1\343\1\333"+ - "\1\344\33\333\1\345\1\65\1\346\1\347\1\65\1\345"+ - "\1\175\1\66\1\350\1\351\1\352\6\353\1\66\3\353"+ - "\2\345\1\353\3\345\1\353\1\345\2\353\1\345\5\353"+ - "\2\345\1\354\1\66\5\353\1\66\5\353\1\345\1\145"+ - "\1\66\1\345\1\355\2\66\1\345\1\356\16\353\2\175"+ - "\1\357\1\175\11\353\1\345\5\353\2\345\1\360\1\65"+ - "\1\361\1\362\1\65\5\360\1\363\6\364\1\360\3\364"+ - "\2\360\1\364\3\360\1\364\1\360\2\364\1\360\5\364"+ - "\4\360\1\365\4\364\2\360\4\364\1\366\3\360\1\367"+ - "\4\360\16\364\4\360\11\364\1\360\5\364\2\360\1\370"+ - "\1\65\1\371\1\372\1\65\1\370\1\373\1\370\1\350"+ - "\1\351\1\374\6\375\1\370\3\375\1\370\1\376\1\375"+ - "\3\377\1\375\1\377\1\375\1\u0100\6\375\1\377\1\370"+ - "\1\u0101\2\370\4\375\1\370\1\145\4\375\1\366\1\145"+ - "\7\370\16\375\1\370\1\u0102\1\370\1\u0103\11\375\1\377"+ - "\5\375\2\377\2\210\1\u0104\5\210\1\u0105\26\210\1\u0106"+ - "\100\210\2\214\1\u0107\6\214\1\u0108\25\214\1\u0106\100\214"+ - "\2\330\1\u0109\41\330\1\223\4\330\1\u010a\26\330\1\225"+ - "\7\330\1\226\27\330\2\u010b\1\u010c\34\u010b\1\u010d\10\u010b"+ - "\1\u010e\22\u010b\1\u010f\44\u010b\2\u0110\1\u0111\45\u0110\1\u0112"+ - "\13\u0110\1\u0113\53\u0110\2\41\4\0\133\41\1\42\2\0"+ - "\1\45\1\0\132\41\152\0\1\u0114\1\u0115\5\u0116\1\0"+ - "\3\u0116\1\u0117\1\u0118\6\u0116\3\0\6\u0116\4\0\4\u0116"+ - "\2\0\3\u0116\1\u0115\3\0\1\u0119\5\0\16\u0116\4\0"+ - "\21\u0116\1\0\1\45\2\0\1\45\133\0\4\46\1\0"+ - "\1\46\1\u011a\131\46\2\47\1\0\33\47\1\0\5\47"+ - "\1\0\33\47\1\0\7\47\1\0\27\47\36\0\1\u011b"+ - "\143\0\1\u011c\37\0\1\u011d\77\0\1\u011e\205\0\1\u011f"+ - "\27\0\2\55\1\0\64\55\1\0\50\55\21\0\1\u0120"+ - "\116\0\2\60\1\0\16\60\1\0\116\60\2\63\1\0"+ - "\1\63\1\0\2\63\4\0\6\63\1\0\120\63\1\0"+ - "\1\63\1\0\2\63\4\0\6\63\1\0\3\63\1\u0121"+ - "\112\63\21\0\1\72\116\0\2\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\120\73\1\0\1\73\1\0"+ - "\2\73\4\0\1\73\1\u0122\2\73\1\u0123\1\u0124\1\0"+ - "\2\73\1\u0125\6\73\1\u0126\4\73\1\u0127\1\73\1\u0124"+ - "\15\73\1\u0125\1\u0126\13\73\1\u0128\1\73\1\u0122\4\73"+ - "\1\u0123\1\73\1\u0129\10\73\1\u0128\1\73\1\u0129\1\u0127"+ - "\17\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u012a"+ - "\2\73\1\0\2\73\1\u012b\6\73\1\u012c\24\73\1\u012b"+ - "\1\u012c\13\73\1\u012d\4\73\1\u012a\14\73\1\u012d\22\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\16\73"+ - "\1\u012e\61\73\1\u012e\17\73\1\0\1\73\1\0\2\73"+ - "\4\0\1\u012f\5\73\1\0\1\73\1\u0130\17\73\1\u0131"+ - "\1\u0132\10\73\1\u0132\4\73\1\u0130\1\u012f\22\73\1\u0133"+ - "\11\73\1\u0131\1\u0133\20\73\1\0\1\73\1\0\2\73"+ - "\4\0\2\73\1\u0134\3\73\1\0\1\73\1\u0135\7\73"+ - "\1\u0136\5\73\1\u0134\17\73\1\u0136\1\u0135\57\73\1\0"+ - "\1\73\1\0\2\73\4\0\2\73\1\120\1\u0137\1\73"+ - "\1\120\1\0\2\73\1\u0138\6\73\1\u0139\5\73\2\120"+ - "\1\73\1\u013a\5\73\2\u013b\1\73\1\u013a\2\73\1\u0138"+ - "\1\u0139\16\73\1\u013c\1\120\1\u0137\4\73\1\120\17\73"+ - "\1\u013c\12\73\1\0\1\73\1\0\2\73\4\0\3\73"+ - "\1\u013d\2\73\1\0\2\73\1\u013e\6\73\1\u013f\24\73"+ - "\1\u013e\1\u013f\20\73\1\u013d\37\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\64\73\1\u0140\2\73\1\u0141"+ - "\7\73\1\u0140\4\73\1\u0141\13\73\1\0\1\73\1\0"+ - "\2\73\4\0\1\u0142\1\u0143\1\u0144\1\73\1\u0145\1\73"+ - "\1\0\16\73\1\u0146\1\u0144\10\73\2\u0147\7\73\1\u0142"+ - "\13\73\1\u0143\1\73\1\u0148\2\73\1\u0145\2\73\1\u0148"+ - "\12\73\1\u0146\17\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\1\73\1\120\36\73\1\120\57\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u0149"+ - "\6\73\1\u014a\24\73\1\u0149\1\u014a\13\73\1\u014b\21\73"+ - "\1\u014b\22\73\1\0\1\73\1\0\2\73\4\0\2\73"+ - "\1\u014c\1\u014d\2\73\1\0\17\73\1\u014c\33\73\1\u014e"+ - "\4\73\1\u014d\14\73\1\u014e\22\73\1\0\1\73\1\0"+ - "\2\73\4\0\2\73\1\120\1\u0133\2\73\1\0\1\73"+ - "\1\u014f\7\73\1\u0150\4\73\1\u0151\1\120\17\73\1\u0150"+ - "\1\u014f\12\73\1\u0152\3\73\1\u0153\1\u0133\1\u0154\3\73"+ - "\1\u0153\7\73\1\u0152\2\73\1\u0151\1\u0154\16\73\1\0"+ - "\1\73\1\0\2\73\4\0\4\73\1\u0155\1\73\1\0"+ - "\1\73\1\120\14\73\1\u0156\11\73\2\u0157\6\73\1\120"+ - "\21\73\1\u0155\15\73\1\u0156\17\73\1\0\1\73\1\0"+ - "\2\73\4\0\2\73\1\120\2\73\1\u0158\1\0\2\73"+ - "\1\u0159\5\73\1\120\6\73\1\120\1\u0158\2\73\1\120"+ - "\12\73\1\u0159\47\73\1\120\5\73\2\120\2\73\1\0"+ - "\1\73\1\0\2\73\4\0\3\73\1\u015a\1\73\1\120"+ - "\1\0\1\73\1\120\1\u015b\6\73\1\u015c\6\73\1\120"+ - "\1\73\1\u015d\10\73\1\u015d\2\73\1\u015b\1\u015c\1\120"+ - "\16\73\1\120\1\u015a\4\73\1\120\32\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\2\73\1\u015e\6\73"+ - "\1\u015f\4\73\1\u0160\17\73\1\u015e\1\u015f\40\73\1\u0160"+ - "\17\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u0161"+ - "\2\73\1\0\11\73\1\u0162\25\73\1\u0162\20\73\1\u0161"+ - "\37\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\2\73\1\u0163\25\73\2\u0164\4\73\1\u0163\57\73\3\121"+ - "\1\0\4\121\1\0\127\121\25\0\1\u0165\112\0\3\124"+ - "\1\0\5\124\1\0\126\124\1\63\1\125\1\0\1\63"+ - "\1\45\2\63\4\0\6\63\1\0\116\63\21\0\1\u0166"+ - "\116\0\10\136\1\0\127\136\11\140\1\0\126\140\1\141"+ - "\12\0\6\141\1\0\3\141\2\0\7\141\1\0\7\141"+ - "\1\0\2\141\1\0\4\141\2\0\4\141\10\0\17\141"+ - "\4\0\21\141\3\0\1\u0167\3\0\1\66\2\0\1\u0168"+ - "\12\0\1\u0169\117\0\1\66\1\0\1\66\137\0\1\66"+ - "\130\0\7\u016a\1\u016b\2\u016a\1\u016c\24\u016a\1\u016d\11\u016a"+ - "\1\u016e\66\u016a\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\3\152\1\u0170\2\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\7\0\1\66\11\0\1\u0171\116\0\1\u0172\12\0\6\u0172"+ - "\1\0\1\u0172\1\u0173\1\u0174\2\0\1\u0172\3\155\1\u0172"+ - "\1\155\1\u0175\1\0\5\u0172\1\u0176\1\155\1\0\2\u0172"+ - "\1\0\3\u0172\1\u0176\1\0\1\u0177\1\u0174\1\u0172\1\u0173"+ - "\1\u0172\10\0\5\u0172\1\u0176\5\u0172\1\u0176\3\u0172\4\0"+ - "\11\u0172\1\155\5\u0172\2\155\1\u0172\12\0\6\u0172\1\0"+ - "\1\u0172\1\u0173\1\u0174\2\0\1\u0172\1\u0178\2\u0179\1\u0172"+ - "\1\u0179\1\u017a\1\0\5\u0172\1\u0176\1\u0179\1\0\2\u0172"+ - "\1\0\2\u0172\1\u017b\1\u0176\1\0\1\u0177\1\u0174\1\u0172"+ - "\1\u0173\1\u0172\10\0\5\u0172\1\u0176\3\u0172\1\u017b\1\u0172"+ - "\1\u0176\3\u0172\4\0\11\u0172\1\u0179\5\u0172\2\u0179\7\0"+ - "\1\66\26\0\1\66\101\0\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u017c\2\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\u017d\3\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\1\152\1\u017e\4\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\1\152\1\u017f\1\152\1\u0180\12\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\1\u0181\5\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\u0182\1\u0183\2\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\1\u0184\5\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\1\152\1\u0185\1\u0186\1\152\10\0\1\141\1\u0187"+ - "\4\152\1\u0188\10\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0189"+ - "\4\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\1\u018a\1\u018b\14\152\4\0\21\152\7\0"+ - "\1\66\46\0\1\66\111\0\3\u0177\1\0\1\u0177\10\0"+ - "\1\u0177\62\0\1\u0177\5\0\2\u0177\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u018c"+ - "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152"+ - "\1\u018d\1\u018e\1\u018f\10\0\1\141\10\152\1\u0190\3\152"+ - "\1\u0191\1\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\1\152\1\u0192\2\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\u0193\3\152\10\0\1\141"+ - "\1\u0194\15\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\1\u0195\1\152\1\u0196"+ - "\3\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\1\152\1\u0197\1\152\1\u0198\7\152\1\u0199"+ - "\2\152\4\0\21\152\7\0\1\66\62\0\1\66\45\0"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\152\1\u019a\1\u019b\1\152\10\0\1\141\1\u019c\2\152"+ - "\1\u019d\12\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\u019e\3\152\10\0\1\141"+ - "\1\u019f\15\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u01a0\1\u01a1"+ - "\1\152\1\0\1\141\1\152\1\0\4\152\2\0\3\152"+ - "\1\u01a2\10\0\1\141\11\152\1\u01a3\4\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\1\u01a4\15\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\1\u01a5\1\u01a6\4\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\1\152\1\u01a7\2\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\3\152\1\u01a8\1\152\1\u01a9"+ - "\10\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\1\152\1\u0187\2\152\10\0\1\141"+ - "\1\u01aa\15\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\152\1\u01ab\2\152\10\0"+ - "\1\141\16\152\4\0\21\152\2\210\1\0\5\210\1\0"+ - "\26\210\1\0\100\210\2\u01ac\1\0\35\u01ac\1\u01ad\44\u01ac"+ - "\1\u01ae\32\u01ac\2\214\1\0\6\214\1\0\25\214\1\0"+ - "\100\214\2\220\2\0\40\220\1\0\4\220\1\0\26\220"+ - "\1\0\7\220\1\0\27\220\12\0\1\u01af\167\0\1\u01b0"+ - "\37\0\1\u01b1\47\0\1\u01b2\167\0\1\u01b3\205\0\1\u01b4"+ - "\27\0\2\227\2\0\40\227\1\0\33\227\1\0\7\227"+ - "\1\0\27\227\12\0\1\u01b5\167\0\1\u01b6\37\0\1\u01b7"+ - "\77\0\1\u01b8\205\0\1\u01b9\65\0\1\u01ba\101\0\2\237"+ - "\2\0\40\237\1\0\4\237\1\0\22\237\1\0\3\237"+ - "\1\0\7\237\1\0\4\237\1\0\22\237\12\0\1\u01bb"+ - "\6\u01bc\1\u01bd\3\u01bc\2\0\1\u01bc\3\0\1\u01bc\4\0"+ - "\5\u01bc\5\0\4\u01bc\2\0\4\u01bc\11\0\16\u01bc\4\0"+ - "\11\u01bc\1\0\5\u01bc\44\0\1\u01be\37\0\1\u01bf\47\0"+ - "\1\u01c0\166\0\1\u01c1\1\u01c2\15\0\1\u01c3\1\u01c4\1\0"+ - "\1\u01c5\11\0\1\u01c6\1\0\1\u01c7\1\0\1\u01c8\1\u01c9"+ - "\1\0\1\u01ca\4\0\1\u01cb\70\0\1\u01cc\205\0\1\u01cd"+ - "\123\0\1\u01ce\43\0\1\250\12\0\6\250\1\0\3\250"+ - "\2\0\7\250\1\0\7\250\1\0\2\250\1\0\4\250"+ - "\2\0\4\250\7\0\20\250\4\0\21\250\3\0\1\u0167"+ - "\3\0\1\66\130\0\2\253\1\u01cf\5\253\1\u01d0\26\253"+ - "\1\u01d1\100\253\2\u01d2\1\u01d3\6\u01d2\1\u01d4\25\u01d2\1\u01d5"+ - "\100\u01d2\7\0\1\66\2\0\1\u01d6\36\0\1\u01d7\66\0"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u01d9\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u01da\3\264\7\0\2\250\1\u01db\1\u01dc"+ - "\1\u01dd\1\u01de\1\264\1\u01df\1\264\1\u01e0\6\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u01e1\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u01e2\1\u01e3\1\264\7\0\2\250"+ - "\1\u01e4\2\264\1\u01e5\12\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u01e6"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u01e7"+ - "\1\u01e8\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u01e9\1\u01ea\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u01eb\1\264\7\0\2\250\4\264"+ - "\1\u01ec\11\264\4\0\1\u01ed\20\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u01ee\1\u01ef"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u01f0\2\264\7\0\2\250\5\264\1\u01f1\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u01f2\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u01f3\1\u01f4"+ - "\1\264\1\u01f5\1\264\1\u01f6\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u01f7\4\264\1\u01f8\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u01f9\1\264\1\u01fa\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\10\264\1\u01fb\1\u01fc"+ - "\2\264\1\u01fd\1\264\4\0\1\u01fe\20\264\7\0\1\66"+ - "\11\0\1\u01ff\116\0\1\u0200\12\0\6\u0200\1\0\1\u0200"+ - "\1\u0201\1\u0202\2\0\1\u0200\3\270\1\u0200\1\270\1\u0203"+ - "\1\0\5\u0200\1\u0204\1\270\1\0\2\u0200\1\0\3\u0200"+ - "\1\u0204\1\0\1\u0177\1\u0202\1\u0200\1\u0201\1\u0200\7\0"+ - "\1\250\5\u0200\1\u0204\5\u0200\1\u0204\3\u0200\4\0\11\u0200"+ - "\1\270\5\u0200\2\270\1\u0200\12\0\6\u0200\1\0\1\u0200"+ - "\1\u0201\1\u0202\2\0\1\u0200\1\u0205\2\u0206\1\u0200\1\u0206"+ - "\1\u0207\1\0\5\u0200\1\u0204\1\u0206\1\0\2\u0200\1\0"+ - "\2\u0208\1\u0209\1\u0204\1\0\1\u0177\1\u0202\1\u0200\1\u0201"+ - "\1\u0200\7\0\1\250\5\u0200\1\u0204\3\u0200\1\u0209\1\u0200"+ - "\1\u0204\3\u0200\4\0\11\u0200\1\u0206\5\u0200\2\u0206\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\u020a\1\u020b\4\264\1\0\1\250\1\264\1\0\1\264"+ - "\1\u020c\2\264\2\0\3\264\1\u020d\7\0\2\250\7\264"+ - "\1\u020e\6\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u020f\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0210\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\3\264\1\u0211\12\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0212\5\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0213\1\u0214"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0215"+ - "\1\u0216\1\264\7\0\2\250\1\u0217\4\264\1\u0218\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u0219\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u021a\2\264\7\0\2\250"+ - "\1\u021b\1\u021c\3\264\1\u021d\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u021e\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u021f\1\u0220\14\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u0221\1\264\7\0\2\250\1\u0222\4\264"+ - "\1\u0223\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0224\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0225"+ - "\1\264\7\0\2\250\10\264\1\u0226\5\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\1\264\1\u0227"+ - "\2\264\2\0\3\264\1\u0228\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u0229\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\u022a\1\264\1\u022b\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\264\1\u022c"+ - "\1\264\1\u022d\7\264\1\u022e\2\264\4\0\21\264\1\250"+ - "\12\0\6\u022f\1\0\3\u022f\2\0\1\u022f\3\250\1\u022f"+ - "\1\250\1\u022f\1\0\1\250\5\u022f\1\250\1\0\1\250"+ - "\1\u022f\1\0\4\u022f\2\0\4\u022f\7\0\2\250\16\u022f"+ - "\4\0\11\u022f\1\250\5\u022f\3\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0230\1\u0231\1\264"+ - "\7\0\2\250\1\u0232\2\264\1\u0233\12\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0234\3\264\7\0\2\250\1\u0235\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u0236\1\u0237\1\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0238"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0239\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u023a\1\u023b\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u023c\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u023d\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u023e\1\u023f\2\264"+ - "\7\0\2\250\1\u0240\4\264\1\u0241\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\3\264\1\u0242\12\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u0243\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\u0244\5\264\1\0\1\250\1\264\1\0\1\264\1\u0245"+ - "\2\264\2\0\4\264\7\0\2\250\7\264\1\u0246\6\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u0247\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0248\1\u0249\2\264\7\0\2\250"+ - "\1\u024a\15\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u024b\2\264\7\0"+ - "\2\250\5\264\1\u024c\10\264\4\0\21\264\1\250\12\0"+ - "\5\264\1\u024d\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u024e\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\3\264\1\u024f"+ - "\15\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0250\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u0251\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0252\3\264\7\0\2\250\1\u0253\4\264\1\u0254\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0255\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u0256\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0257\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\2\330\1\0\41\330\1\0\4\330"+ - "\1\0\26\330\1\0\7\330\1\0\27\330\12\0\1\u0258"+ - "\125\0\2\333\1\0\1\333\1\0\2\333\4\0\6\333"+ - "\1\0\117\333\1\334\1\0\1\333\1\45\2\333\4\0"+ - "\6\333\1\0\116\333\10\335\1\u01d0\127\335\11\336\1\u0259"+ - "\126\336\2\333\1\0\1\333\1\0\2\333\4\0\6\333"+ - "\1\72\120\333\1\0\1\333\1\0\2\333\4\0\6\333"+ - "\1\0\37\333\1\u025a\60\333\1\0\1\333\1\0\2\333"+ - "\4\0\6\333\1\0\21\333\1\u025b\76\333\1\0\1\333"+ - "\1\0\2\333\4\0\6\333\1\0\37\333\1\u025c\56\333"+ - "\12\0\1\u025d\176\0\1\u025e\101\0\6\353\1\0\3\353"+ - "\2\0\10\353\1\0\6\353\4\0\4\353\1\0\5\353"+ - "\11\0\16\353\4\0\21\353\13\0\6\u025f\1\0\3\u025f"+ - "\2\0\1\u025f\3\0\1\u025f\1\0\2\u025f\1\0\5\u025f"+ - "\4\0\5\u025f\1\0\5\u025f\11\0\16\u025f\4\0\11\u025f"+ - "\1\0\5\u025f\43\0\1\u0260\1\u0261\1\u0262\1\u0263\13\0"+ - "\1\u0264\1\u0265\1\u0266\5\0\1\u0267\4\0\1\u0268\1\0"+ - "\1\u0269\1\u026a\1\u026b\7\0\1\u026c\41\0\6\u026d\1\0"+ - "\3\u026d\2\0\1\u026d\3\0\1\u026d\1\0\2\u026d\1\0"+ - "\5\u026d\4\0\5\u026d\1\0\5\u026d\11\0\16\u026d\4\0"+ - "\11\u026d\1\0\5\u026d\15\0\6\364\1\0\3\364\2\0"+ - "\10\364\1\0\6\364\4\0\4\364\2\0\4\364\11\0"+ - "\16\364\4\0\21\364\13\0\6\364\1\0\3\364\2\0"+ - "\1\364\3\0\1\364\1\0\2\364\1\0\5\364\5\0"+ - "\4\364\2\0\4\364\11\0\16\364\4\0\11\364\1\0"+ - "\5\364\14\0\7\375\1\0\3\375\2\0\1\375\3\0"+ - "\1\375\1\0\10\375\4\0\1\u025e\4\375\2\0\4\375"+ - "\11\0\16\375\3\0\1\u0103\11\375\1\0\5\375\14\0"+ - "\7\375\1\0\3\375\2\0\1\375\3\0\1\375\1\0"+ - "\10\375\5\0\4\375\2\0\4\375\11\0\16\375\3\0"+ - "\1\u0103\11\375\1\0\5\375\104\0\1\u026e\62\0\1\u026f"+ - "\2\0\3\377\1\0\1\377\10\0\1\377\11\0\1\377"+ - "\1\u0270\2\0\1\u026f\13\0\1\u0271\2\0\1\u0272\1\0"+ - "\1\u0273\1\0\1\u0274\21\0\1\377\5\0\2\377\12\0"+ - "\7\375\1\0\3\375\2\0\1\375\3\377\1\375\1\377"+ - "\10\375\1\377\4\0\4\375\2\0\4\375\11\0\16\375"+ - "\3\0\1\u0103\11\375\1\377\5\375\2\377\14\0\1\u0275"+ - "\7\0\1\u0275\3\0\5\u0275\7\0\2\u0275\4\0\2\u0275"+ - "\1\0\1\u0275\2\0\2\u0275\15\0\1\u0275\1\0\1\u0275"+ - "\5\0\1\u0275\20\0\1\u0275\5\0\2\u0275\2\u0276\1\0"+ - "\135\u0276\12\0\1\u0277\125\0\2\u010b\1\0\34\u010b\1\0"+ - "\10\u010b\1\0\22\u010b\1\0\44\u010b\115\0\1\u0278\22\0"+ - "\2\u0110\1\0\45\u0110\1\0\13\u0110\1\0\53\u0110\115\0"+ - "\1\u0279\35\0\6\u027a\1\0\3\u027a\2\0\6\u027a\3\0"+ - "\6\u027a\4\0\4\u027a\2\0\4\u027a\11\0\16\u027a\4\0"+ - "\21\u027a\13\0\1\u0116\1\u027b\3\u0116\1\u027c\1\0\3\u0116"+ - "\2\0\6\u0116\3\0\2\u0116\1\u027c\3\u0116\4\0\4\u0116"+ - "\2\0\4\u0116\11\0\2\u0116\1\u027b\13\u0116\4\0\21\u0116"+ - "\13\0\6\u0116\1\0\3\u0116\2\0\6\u0116\3\0\6\u0116"+ - "\4\0\4\u0116\2\0\4\u0116\11\0\16\u0116\4\0\21\u0116"+ - "\7\0\1\u027d\16\0\1\u027d\7\0\1\u027e\35\0\1\u027f"+ - "\101\0\1\u0280\122\0\1\u0281\222\0\1\u0282\115\0\1\u0283"+ - "\117\0\1\u0284\205\0\1\u0285\27\0\2\63\1\0\1\63"+ - "\1\0\2\63\1\u027d\3\0\6\63\1\0\4\63\1\u0286"+ - "\111\63\2\73\1\0\1\73\1\0\2\73\4\0\2\73"+ - "\1\u0287\3\73\1\0\17\73\1\u0287\100\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0288\25\73"+ - "\1\u0288\60\73\1\0\1\73\1\0\2\73\4\0\2\73"+ - "\1\u0289\3\73\1\0\1\u012e\16\73\1\u0289\34\73\1\u012e"+ - "\43\73\1\0\1\73\1\0\2\73\4\0\1\73\1\u028a"+ - "\1\u028b\3\73\1\0\1\73\1\u028c\15\73\1\u028b\20\73"+ - "\1\u028c\14\73\1\u028a\42\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\64\73\1\u028d\12\73\1\u028d\20\73"+ - "\1\0\1\73\1\0\2\73\4\0\4\73\1\120\1\73"+ - "\1\0\30\73\2\120\30\73\1\120\35\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\16\73\1\u028e\61\73"+ - "\1\u028e\17\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\11\73\1\u028f\25\73\1\u028f\60\73\1\0\1\73"+ - "\1\0\2\73\4\0\5\73\1\u0290\1\0\20\73\1\u0290"+ - "\77\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\21\73\1\u0291\54\73\1\u0291\21\73\1\0\1\73\1\0"+ - "\2\73\4\0\4\73\1\u028a\1\73\1\0\21\73\1\u0292"+ - "\40\73\1\u028a\13\73\1\u0292\21\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\1\73\1\u0293\36\73\1\u0293"+ - "\16\73\1\u0290\4\73\1\u0294\1\u0290\11\73\1\u0294\20\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\73"+ - "\1\u0290\36\73\1\u0290\57\73\1\0\1\73\1\0\2\73"+ - "\4\0\3\73\1\u0295\2\73\1\0\60\73\1\u0295\37\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\11\73"+ - "\1\u0296\25\73\1\u0296\60\73\1\0\1\73\1\0\2\73"+ - "\4\0\1\120\3\73\1\u0297\1\73\1\0\41\73\1\120"+ - "\20\73\1\u0297\35\73\1\0\1\73\1\0\2\73\4\0"+ - "\2\73\1\u0298\3\73\1\0\17\73\1\u0298\100\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\61\73\1\120"+ - "\17\73\1\120\16\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\2\73\1\120\33\73\1\120\14\73\1\u0299"+ - "\21\73\1\u0299\22\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\11\73\1\u029a\25\73\1\u029a\60\73\1\0"+ - "\1\73\1\0\2\73\4\0\2\73\1\u029b\3\73\1\0"+ - "\17\73\1\u029b\100\73\1\0\1\73\1\0\2\73\4\0"+ - "\5\73\1\u012e\1\0\20\73\1\u012e\43\73\1\u0290\12\73"+ - "\1\u0290\20\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\32\73\1\u029c\30\73\1\u029c\34\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\30\73\2\u012e\66\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\53\73"+ - "\1\u029d\21\73\1\u029d\22\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\53\73\1\u0152\21\73\1\u0152\22\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73"+ - "\1\u029e\33\73\1\u029e\61\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\21\73\1\u029f\54\73\1\u029f\21\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\61\73"+ - "\1\u02a0\17\73\1\u02a0\16\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\1\u02a1\27\73\2\u02a2\22\73\1\u02a1"+ - "\43\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\30\73\2\u02a3\66\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\2\73\1\u02a4\33\73\1\u02a4\61\73\1\0"+ - "\1\73\1\0\2\73\4\0\3\73\1\u02a5\2\73\1\0"+ - "\60\73\1\u02a5\37\73\1\0\1\73\1\0\2\73\4\0"+ - "\2\73\1\u02a6\3\73\1\0\17\73\1\u02a6\100\73\1\0"+ - "\1\73\1\0\2\73\4\0\5\73\1\u02a7\1\0\2\73"+ - "\1\u02a8\15\73\1\u02a7\15\73\1\u02a8\61\73\1\0\1\73"+ - "\1\0\2\73\4\0\4\73\1\u02a9\1\73\1\0\62\73"+ - "\1\u02a9\35\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\57\73\1\u02aa\5\73\1\u02aa\32\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\30\73\2\u0162\66\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\57\73"+ - "\1\u02ab\5\73\1\u02ab\32\73\1\0\1\73\1\0\2\73"+ - "\4\0\1\u02ac\5\73\1\0\41\73\1\u02ac\56\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\67\73\1\120"+ - "\14\73\1\120\13\73\1\0\1\73\1\0\2\73\4\0"+ - "\1\u02ad\5\73\1\0\1\73\1\u0130\1\u02ae\17\73\1\u02af"+ - "\5\73\2\u0162\1\73\1\u02af\2\73\1\u02ae\1\73\1\u0130"+ - "\1\u02ad\56\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\11\73\1\u02b0\25\73\1\u02b0\60\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\2\73\1\u02b1\33\73"+ - "\1\u02b1\22\73\1\u02b2\17\73\1\u02b2\16\73\1\0\1\73"+ - "\1\0\2\73\4\0\2\73\1\u02b3\3\73\1\0\17\73"+ - "\1\u02b3\1\73\1\u02ac\31\73\1\u0291\21\73\1\u0291\1\u02ac"+ - "\21\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u02b4"+ - "\2\73\1\0\53\73\1\u02b5\4\73\1\u02b4\14\73\1\u02b5"+ - "\22\73\1\0\1\73\1\0\2\73\4\0\1\u02b6\5\73"+ - "\1\0\41\73\1\u02b6\56\73\1\0\1\73\1\0\2\73"+ - "\4\0\5\73\1\u02b7\1\0\20\73\1\u02b7\77\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\57\73\1\u02b8"+ - "\5\73\1\u02b8\32\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\53\73\1\120\21\73\1\120\22\73\1\0"+ - "\1\73\1\0\2\73\4\0\1\u02b9\5\73\1\0\41\73"+ - "\1\u02b9\56\73\1\0\1\73\1\0\2\73\4\0\5\73"+ - "\1\u02ba\1\0\20\73\1\u02ba\77\73\1\0\1\73\1\0"+ - "\2\73\4\0\5\73\1\u02bb\1\0\20\73\1\u02bb\77\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\107\73"+ - "\1\u028c\2\73\1\u028c\5\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\64\73\1\u02bc\12\73\1\u02bc\20\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\11\73"+ - "\1\u02bd\25\73\1\u02bd\60\73\1\0\1\73\1\0\2\73"+ - "\4\0\2\73\1\120\3\73\1\0\11\73\1\u02be\5\73"+ - "\1\120\17\73\1\u02be\27\73\1\120\14\73\1\120\13\73"+ - "\1\0\1\73\1\0\2\73\4\0\5\73\1\u02bf\1\0"+ - "\1\73\1\120\16\73\1\u02bf\17\73\1\120\57\73\1\0"+ - "\1\73\1\0\2\73\4\0\5\73\1\u02c0\1\0\20\73"+ - "\1\u02c0\77\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\21\73\1\120\54\73\1\120\21\73\1\0\1\73"+ - "\1\0\2\73\4\0\5\73\1\u02c1\1\0\20\73\1\u02c1"+ - "\1\u02c2\54\73\1\u02c2\21\73\1\0\1\73\1\0\2\73"+ - "\4\0\2\73\1\u02c3\1\73\1\120\1\73\1\0\17\73"+ - "\1\u02c3\42\73\1\120\35\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\1\73\1\u02c4\36\73\1\u02c4\57\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\57\73"+ - "\1\u02c5\5\73\1\u02c5\32\73\1\0\1\73\1\0\2\73"+ - "\4\0\2\73\1\120\3\73\1\0\17\73\1\120\100\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\u02c6"+ - "\53\73\1\u02c6\43\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\57\73\1\120\5\73\1\120\30\73\7\0"+ - "\1\u02c7\16\0\1\u02c7\124\0\1\u02c8\47\0\1\u02c8\63\0"+ - "\1\u027d\16\0\1\u027d\111\0\12\u016a\1\u02c9\24\u016a\1\u016d"+ - "\102\u016a\1\0\135\u016a\51\0\1\u02ca\66\0\1\141\12\0"+ - "\6\141\1\0\3\141\2\0\7\141\1\0\1\141\1\u02cb"+ - "\5\141\1\0\2\141\1\0\4\141\2\0\4\141\10\0"+ - "\17\141\4\0\22\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\4\152\1\u02cc\1\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\21\152\7\0\1\66\11\0\1\146\116\0\1\u0172"+ - "\12\0\6\u0172\1\0\3\u0172\2\0\7\u0172\1\0\7\u0172"+ - "\1\0\2\u0172\1\0\4\u0172\2\0\4\u0172\10\0\17\u0172"+ - "\4\0\22\u0172\12\0\6\u0172\1\0\3\u0172\2\0\1\u0172"+ - "\3\u02cd\1\u0172\1\u02cd\1\u0172\1\u02ce\6\u0172\1\u02cd\1\0"+ - "\2\u0172\1\0\4\u0172\1\u02ce\1\0\4\u0172\10\0\17\u0172"+ - "\4\0\11\u0172\1\u02cd\5\u0172\2\u02cd\1\u0172\12\0\6\u0172"+ - "\1\0\3\u0172\2\0\1\u0172\3\u02cf\1\u0172\1\u02cf\1\u0175"+ - "\1\0\6\u0172\1\u02cf\1\0\2\u0172\1\0\4\u0172\2\0"+ - "\4\u0172\10\0\17\u0172\4\0\11\u0172\1\u02cf\5\u0172\2\u02cf"+ - "\1\u0172\12\0\6\u0172\1\0\2\u0172\1\u0174\2\0\1\u0172"+ - "\3\u0177\1\u0172\1\u0177\1\u0172\1\0\5\u0172\1\u0176\1\u0177"+ - "\1\0\2\u0172\1\0\3\u0172\1\u0176\2\0\1\u0174\3\u0172"+ - "\10\0\5\u0172\1\u0176\5\u0172\1\u0176\3\u0172\4\0\11\u0172"+ - "\1\u0177\5\u0172\2\u0177\1\u0172\12\0\6\u0172\1\0\2\u0172"+ - "\1\u0174\2\0\1\u0172\3\u0178\1\u0172\1\u0178\1\u0172\1\0"+ - "\5\u0172\1\u0176\1\u0178\1\0\2\u0172\1\0\3\u0172\1\u0176"+ - "\1\0\1\u0177\1\u0174\3\u0172\10\0\5\u0172\1\u0176\5\u0172"+ - "\1\u0176\3\u0172\4\0\11\u0172\1\u0178\5\u0172\2\u0178\1\u0172"+ - "\12\0\6\u0172\1\0\1\u0172\1\u02d0\1\u0174\2\0\1\u0172"+ - "\1\u0178\2\u0179\1\u0172\1\u0179\1\u017a\1\0\5\u0172\1\u0176"+ - "\1\u0179\1\0\2\u0172\1\0\3\u0172\1\u0176\1\0\1\u0177"+ - "\1\u0174\1\u0172\1\u02d0\1\u0172\10\0\5\u0172\1\u0176\5\u0172"+ - "\1\u0176\3\u0172\4\0\11\u0172\1\u0179\5\u0172\2\u0179\1\u0172"+ - "\12\0\6\u0172\1\0\3\u0172\2\0\2\u0172\2\u02d1\1\u0172"+ - "\1\u02d1\1\u017a\1\0\6\u0172\1\u02d1\1\0\2\u0172\1\0"+ - "\4\u0172\2\0\4\u0172\10\0\17\u0172\4\0\11\u0172\1\u02d1"+ - "\5\u0172\2\u02d1\1\u0172\12\0\1\u0172\1\u02d2\4\u0172\1\0"+ - "\2\u0172\1\u02d2\2\0\1\u0172\5\u02d2\1\u0172\1\0\5\u0172"+ - "\2\u02d2\1\0\2\u0172\1\0\2\u02d2\1\u0172\1\u02d2\2\0"+ - "\2\u02d2\2\u0172\10\0\3\u0172\1\u02d2\1\u0172\1\u02d2\5\u0172"+ - "\1\u02d2\3\u0172\4\0\11\u0172\1\u02d2\5\u0172\2\u02d2\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u02d3"+ - "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152"+ - "\1\u02d4\3\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\u02d5"+ - "\5\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152"+ - "\1\u02d6\2\152\10\0\1\141\1\152\1\u01a1\14\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\7\152\1\u02d7\6\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\1\152\1\u02d8\4\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\5\152\1\u02d9"+ - "\10\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\2\152\1\u02da\1\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\13\152\1\u01a1"+ - "\2\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\2\152\1\u02db\3\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\3\152\1\u02dc\2\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\2\152\1\u02dd\1\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\1\u02de\15\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\1\152\1\u01a1\4\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\3\152\1\u02df\2\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\1\u02e0\3\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\1\u02e1\15\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\2\152\1\u02e2\3\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\1\u02e3\5\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\2\152\1\u02e4\13\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\3\152"+ - "\1\u02e5\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\2\152\1\u02e6\13\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152"+ - "\1\u02e7\3\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\7\152\1\u02e8\6\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\152\1\u02e9\2\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\3\152\1\u02ea\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\2\152\1\u02eb\3\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\3\152\1\u02ec\2\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\7\152\1\u02ed\6\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152"+ - "\1\u02ee\2\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\3\152\1\u02ef\2\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\1\u02f0\15\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\5\152\1\u02f1\10\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152"+ - "\1\u02f2\3\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\3\152\1\u02e5\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152"+ - "\1\u02f3\2\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\3\152\1\u02f4\2\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152"+ - "\1\u02f5\2\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\4\152\1\u02f6\1\152\1\0\1\141\1\152\1\0\1\152"+ - "\1\u02f7\2\152\2\0\2\152\1\u02f8\1\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\1\u02f9\5\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\2\152\1\u02fa\3\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\3\152\1\u02fb\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\3\152\1\u02fc\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\1\152\1\u02fd\17\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\7\152"+ - "\1\u02fe\6\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\2\152\1\u02ff\3\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\1\152\1\u0300\2\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\1\u0301"+ - "\4\152\1\u0302\10\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0303"+ - "\4\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\2\152\1\u0304\13\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\5\152\1\u0305\10\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\2\152\1\u0306\3\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\2\152"+ - "\1\u0307\1\152\10\0\1\141\5\152\1\u0308\10\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\1\152\1\u01a1"+ - "\17\152\14\0\1\u0309\7\0\1\u0309\3\0\5\u0309\7\0"+ - "\2\u0309\4\0\2\u0309\1\0\1\u0309\2\0\2\u0309\15\0"+ - "\1\u0309\1\0\1\u0309\5\0\1\u0309\20\0\1\u0309\5\0"+ - "\2\u0309\14\0\1\u030a\7\0\1\u030a\3\0\5\u030a\7\0"+ - "\2\u030a\4\0\2\u030a\1\0\1\u030a\2\0\2\u030a\15\0"+ - "\1\u030a\1\0\1\u030a\5\0\1\u030a\20\0\1\u030a\5\0"+ - "\2\u030a\13\0\1\u030b\47\0\1\u030b\160\0\1\u030c\115\0"+ - "\1\u030d\117\0\1\u030e\205\0\1\u030f\42\0\1\u0310\47\0"+ - "\1\u0310\160\0\1\u0311\115\0\1\u0312\117\0\1\u0313\205\0"+ - "\1\u0314\54\0\1\u0315\125\0\6\u01bc\1\u01bd\3\u01bc\2\0"+ - "\1\u01bc\3\0\1\u01bc\4\0\5\u01bc\5\0\4\u01bc\2\0"+ - "\4\u01bc\11\0\16\u01bc\4\0\11\u01bc\1\0\5\u01bc\2\0"+ - "\21\u01bc\1\u01bd\116\u01bc\104\0\1\u0316\115\0\1\u0317\135\0"+ - "\1\u0318\117\0\1\u0319\34\0\1\u031a\2\0\1\u031b\144\0"+ - "\1\u031c\72\0\1\u031d\157\0\1\u031e\21\0\1\u031f\110\0"+ - "\1\u0320\145\0\1\u0321\136\0\1\u0322\122\0\1\u0323\155\0"+ - "\1\u0324\136\0\1\u0325\121\0\1\u0326\205\0\1\u0327\111\0"+ - "\1\u0328\14\0\1\u0329\1\0\1\u032a\1\u032b\6\0\1\u032c"+ - "\26\0\10\u01cf\1\u032d\26\u01cf\1\u032e\102\u01cf\1\u032f\5\u01cf"+ - "\1\u0330\1\253\17\u01cf\2\253\1\u01cf\1\253\2\u01cf\1\253"+ - "\1\u0331\5\253\5\u01cf\1\253\54\u01cf\1\253\5\u01cf\2\253"+ - "\2\u0332\1\u0333\6\u0332\1\u0259\126\u0332\11\u0333\1\u0259\126\u0333"+ - "\2\u0332\1\u0333\5\u0332\1\u01d2\1\u0334\17\u0332\2\u0335\1\u0332"+ - "\1\u0336\2\u0332\1\u01d2\1\u0337\4\u01d2\1\u0335\5\u0332\1\u01d2"+ - "\54\u0332\1\u0336\5\u0332\2\u0336\2\u01d6\1\0\135\u01d6\51\0"+ - "\1\u0338\66\0\1\250\12\0\6\250\1\0\3\250\2\0"+ - "\7\250\1\0\1\250\1\u0339\5\250\1\0\2\250\1\0"+ - "\4\250\2\0\4\250\7\0\20\250\4\0\22\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u033a\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u033b\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u033c\1\u033d\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u033e"+ - "\13\264\4\0\14\264\1\u033f\4\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0340"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0341"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u0342\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0343"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u0344\15\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\11\264\1\u0345\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u0346\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0347"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u0348\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0349\2\264"+ - "\7\0\2\250\1\u034a\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u034b\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u034c\1\264\7\0\2\250\11\264\1\u034d\4\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u034e\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u034f\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0350\1\264\1\u0351\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\3\264\1\u0352\2\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0353\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0354\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u0355\7\0\2\250"+ - "\2\264\1\u0356\1\u0357\1\u0358\2\264\1\u0359\4\264\1\u035a"+ - "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u035b\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u035c\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\2\264\1\u035d"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u035e\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u035f\4\264\1\u0360\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u0361\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\7\264\1\u0362\6\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u0363\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u0364\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\7\264\1\u0365\6\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u0366\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\11\264\1\u0367\4\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u0368\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u0369\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u036a\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\3\264\1\u036b\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u036c\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u036d\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u036e\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u036f"+ - "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\7\264\1\u0370"+ - "\6\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0371\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\3\264\1\u0372\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\u0200\12\0\6\u0200\1\0\3\u0200\2\0\7\u0200"+ - "\1\0\7\u0200\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200"+ - "\7\0\1\250\17\u0200\4\0\22\u0200\12\0\6\u0200\1\0"+ - "\3\u0200\2\0\1\u0200\3\u0373\1\u0200\1\u0373\1\u0200\1\u02ce"+ - "\6\u0200\1\u0373\1\0\2\u0200\1\0\4\u0200\1\u02ce\1\0"+ - "\4\u0200\7\0\1\250\17\u0200\4\0\11\u0200\1\u0373\5\u0200"+ - "\2\u0373\1\u0200\12\0\6\u0200\1\0\3\u0200\2\0\1\u0200"+ - "\3\u0374\1\u0200\1\u0374\1\u0203\1\0\6\u0200\1\u0374\1\0"+ - "\2\u0200\1\0\4\u0200\2\0\4\u0200\7\0\1\250\17\u0200"+ - "\4\0\11\u0200\1\u0374\5\u0200\2\u0374\1\u0200\12\0\6\u0200"+ - "\1\0\2\u0200\1\u0202\2\0\1\u0200\3\u0205\1\u0200\1\u0205"+ - "\1\u0200\1\0\5\u0200\1\u0204\1\u0205\1\0\2\u0200\1\0"+ - "\3\u0200\1\u0204\1\0\1\u0177\1\u0202\3\u0200\7\0\1\250"+ - "\5\u0200\1\u0204\5\u0200\1\u0204\3\u0200\4\0\11\u0200\1\u0205"+ - "\5\u0200\2\u0205\1\u0200\12\0\6\u0200\1\0\1\u0200\1\u0375"+ - "\1\u0202\2\0\1\u0200\1\u0205\2\u0206\1\u0200\1\u0206\1\u0207"+ - "\1\0\5\u0200\1\u0204\1\u0206\1\0\2\u0200\1\0\3\u0200"+ - "\1\u0204\1\0\1\u0177\1\u0202\1\u0200\1\u0375\1\u0200\7\0"+ - "\1\250\5\u0200\1\u0204\5\u0200\1\u0204\3\u0200\4\0\11\u0200"+ - "\1\u0206\5\u0200\2\u0206\1\u0200\12\0\6\u0200\1\0\3\u0200"+ - "\2\0\2\u0200\2\u0376\1\u0200\1\u0376\1\u0207\1\0\6\u0200"+ - "\1\u0376\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200\7\0"+ - "\1\250\17\u0200\4\0\11\u0200\1\u0376\5\u0200\2\u0376\1\u0200"+ - "\12\0\6\u0200\1\0\3\u0200\2\0\2\u0200\2\u0377\3\u0200"+ - "\1\0\7\u0200\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200"+ - "\7\0\1\250\17\u0200\4\0\22\u0200\12\0\1\u0200\1\u0378"+ - "\4\u0200\1\0\2\u0200\1\u0378\2\0\1\u0200\5\u0378\1\u0200"+ - "\1\0\5\u0200\2\u0378\1\0\2\u0200\1\0\2\u0378\1\u0200"+ - "\1\u0378\2\0\2\u0378\2\u0200\7\0\1\250\3\u0200\1\u0378"+ - "\1\u0200\1\u0378\5\u0200\1\u0378\3\u0200\4\0\11\u0200\1\u0378"+ - "\5\u0200\2\u0378\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0379\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u037a\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u037b\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u037c\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\3\264\1\u037d\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\7\264\1\u037e\6\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u037f\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u0380\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u0381\2\264\7\0\2\250"+ - "\1\264\1\u0237\14\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0382"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u0383\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u0384\1\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\13\264\1\u0237\2\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u0385\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u0386\1\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u0387\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u0237\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u0388\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264"+ - "\1\u0389\1\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u038a"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u038b\15\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u038c\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u038d\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u038e\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u038f\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0390\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u0391\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0392\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u0393\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u0394\1\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u0395\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u0396\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u0397\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u0398\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u0399\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u039a\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\7\264\1\u039b\6\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u039c\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u039d\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u039e\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u039f\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u03a0\10\264\4\0\21\264\1\250"+ - "\12\0\6\u022f\1\0\3\u022f\2\0\7\u022f\1\0\1\u03a1"+ - "\6\u022f\1\0\1\250\1\u022f\1\0\4\u022f\2\0\4\u022f"+ - "\7\0\2\250\16\u022f\4\0\21\u022f\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03a2"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u0396\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u03a3"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u03a4\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u03a5"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264"+ - "\1\u03a6\1\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u03a7"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03a8"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u03a9\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\7\264\1\u03aa\6\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u03ab\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\1\264\1\u03ac\2\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u03ad\4\264\1\u03ae\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u03af\13\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\7\264\1\u03b0\6\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\14\264\1\u03b1\4\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u03b2\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\u03b3\5\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\2\264\1\u03b4\13\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u03b5\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u03b6"+ - "\1\264\7\0\2\250\5\264\1\u03b7\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u03b8\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u03b9\7\0\2\250\16\264\4\0\15\264\1\u03ba"+ - "\3\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u03bb\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u03bc\1\264\7\0\2\250\11\264\1\u03bd"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u03be"+ - "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\14\264\1\u03bf"+ - "\1\264\4\0\21\264\1\250\12\0\1\u03c0\1\u03c1\4\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03c2"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03c3"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\7\264\1\u03c4\6\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u03c5\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\3\264\1\u03c6\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u03c7\7\0"+ - "\2\250\2\264\1\u03c8\12\264\1\u03c9\4\0\21\264\1\250"+ - "\12\0\3\264\1\u03ca\2\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u03cb"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u03b1\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u03cc"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u03cd\13\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u03ce\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u03cf\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u03d0\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u03d1\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u03d2"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\2\333\1\0"+ - "\1\333\1\0\2\333\4\0\6\333\1\0\61\333\1\u03d3"+ - "\36\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0"+ - "\55\333\1\u03d4\42\333\1\0\1\333\1\0\2\333\4\0"+ - "\6\333\1\0\61\333\1\u03d5\34\333\13\0\1\u03d6\47\0"+ - "\1\u03d6\67\0\6\u025f\1\0\3\u025f\2\0\10\u025f\1\0"+ - "\6\u025f\4\0\4\u025f\1\0\5\u025f\11\0\16\u025f\4\0"+ - "\21\u025f\75\0\1\u03d7\123\0\1\u03d8\120\0\1\u03d9\32\0"+ - "\1\u03da\137\0\1\u03db\4\0\1\u03dc\100\0\1\u03dd\42\0"+ - "\1\u03de\130\0\1\u03df\121\0\1\u03e0\20\0\1\u03e1\101\0"+ - "\1\u03e2\6\0\1\u03e3\5\0\1\u03e4\121\0\1\u03e5\174\0"+ - "\1\u03e6\134\0\1\u03e7\144\0\1\u03e8\137\0\1\u03e9\50\0"+ - "\6\u026d\1\0\3\u026d\2\0\10\u026d\1\0\6\u026d\4\0"+ - "\4\u026d\1\0\5\u026d\11\0\16\u026d\4\0\21\u026d\106\0"+ - "\1\u03ea\136\0\2\u026f\137\0\1\u026f\74\0\1\u026f\136\0"+ - "\1\u026f\34\0\1\u026f\5\0\1\u026f\115\0\1\u026f\22\0"+ - "\1\u026f\44\0\2\u0116\1\u03eb\3\u0116\1\0\3\u0116\2\0"+ - "\6\u0116\3\0\1\u0116\1\u03eb\4\u0116\4\0\4\u0116\2\0"+ - "\4\u0116\11\0\16\u0116\4\0\21\u0116\13\0\6\u0116\1\0"+ - "\1\u03ec\2\u0116\2\0\6\u0116\3\0\6\u0116\4\0\4\u0116"+ - "\2\0\4\u0116\11\0\1\u0116\1\u03ec\14\u0116\4\0\21\u0116"+ - "\36\0\1\u03ed\137\0\1\u03ee\171\0\1\u03ef\127\0\1\u0282"+ - "\163\0\1\u03f0\112\0\1\u03f1\60\0\2\73\1\0\1\73"+ - "\1\0\2\73\4\0\3\73\1\u03f2\2\73\1\0\60\73"+ - "\1\u03f2\37\73\1\0\1\73\1\0\2\73\4\0\1\73"+ - "\1\u02a1\4\73\1\0\21\73\1\120\33\73\1\u02a1\20\73"+ - "\1\120\21\73\1\0\1\73\1\0\2\73\4\0\3\73"+ - "\1\u03f3\2\73\1\0\53\73\1\u03f4\4\73\1\u03f3\14\73"+ - "\1\u03f4\22\73\1\0\1\73\1\0\2\73\4\0\5\73"+ - "\1\u03f5\1\0\20\73\1\u03f5\77\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\67\73\1\u02a1\14\73\1\u02a1"+ - "\13\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\2\73\1\u03f6\33\73\1\u03f6\61\73\1\0\1\73\1\0"+ - "\2\73\4\0\4\73\1\120\1\73\1\0\62\73\1\120"+ - "\35\73\1\0\1\73\1\0\2\73\4\0\2\73\1\u03f7"+ - "\3\73\1\0\17\73\1\u03f7\100\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\1\73\1\u02bc\36\73\1\u02bc"+ - "\57\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\2\73\1\120\33\73\1\120\61\73\1\0\1\73\1\0"+ - "\2\73\4\0\5\73\1\u02a1\1\0\20\73\1\u02a1\77\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\67\73"+ - "\1\u03f8\14\73\1\u03f8\13\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\61\73\1\u03f9\17\73\1\u03f9\16\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\64\73"+ - "\1\u03fa\12\73\1\u03fa\20\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\21\73\1\u03fb\54\73\1\u03fb\21\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\u02a1"+ - "\53\73\1\u02a1\43\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\16\73\1\u02ac\61\73\1\u02ac\17\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\11\73\1\u03fc"+ - "\25\73\1\u03fc\60\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\61\73\1\u02ab\17\73\1\u02ab\16\73\1\0"+ - "\1\73\1\0\2\73\4\0\3\73\1\u03fd\2\73\1\0"+ - "\60\73\1\u03fd\37\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\11\73\1\u02b3\25\73\1\u02b3\60\73\1\0"+ - "\1\73\1\0\2\73\4\0\5\73\1\u03fe\1\0\20\73"+ - "\1\u03fe\77\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\53\73\1\u02ac\21\73\1\u02ac\22\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0164\25\73"+ - "\1\u0164\60\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\70\73\1\120\11\73\1\120\15\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\2\73\1\u03ff\33\73"+ - "\1\u03ff\61\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\2\73\1\u0162\33\73\1\u0162\61\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\2\73\1\u02bc\33\73"+ - "\1\u02bc\61\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\2\73\1\u0164\33\73\1\u0164\61\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\21\73\1\u0400\54\73"+ - "\1\u0400\21\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\57\73\1\u0290\5\73\1\u0290\32\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\53\73\1\u0401\21\73"+ - "\1\u0401\22\73\1\0\1\73\1\0\2\73\4\0\3\73"+ - "\1\u0402\2\73\1\0\60\73\1\u0402\37\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\11\73\1\120\25\73"+ - "\1\120\60\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\1\73\1\u0403\36\73\1\u0403\57\73\1\0\1\73"+ - "\1\0\2\73\4\0\3\73\1\u0153\2\73\1\0\60\73"+ - "\1\u0153\37\73\1\0\1\73\1\0\2\73\4\0\2\73"+ - "\1\u0404\3\73\1\0\17\73\1\u0404\100\73\1\0\1\73"+ - "\1\0\2\73\4\0\5\73\1\120\1\0\20\73\1\120"+ - "\77\73\1\0\1\73\1\0\2\73\4\0\1\73\1\u0122"+ - "\4\73\1\0\55\73\1\u0122\42\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\64\73\1\u0405\12\73\1\u0405"+ - "\20\73\1\0\1\73\1\0\2\73\4\0\2\73\1\u0406"+ - "\3\73\1\0\17\73\1\u0406\100\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\64\73\1\u0407\12\73\1\u0407"+ - "\20\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\1\73\1\u0408\36\73\1\u0408\57\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\16\73\1\u0409\61\73\1\u0409"+ - "\17\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\64\73\1\120\12\73\1\120\20\73\1\0\1\73\1\0"+ - "\2\73\4\0\1\73\1\u040a\4\73\1\0\55\73\1\u040a"+ - "\42\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\2\73\1\u040b\33\73\1\u040b\61\73\1\0\1\73\1\0"+ - "\2\73\4\0\5\73\1\u040c\1\0\20\73\1\u040c\77\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\120"+ - "\53\73\1\120\43\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\53\73\1\u040d\21\73\1\u040d\22\73\1\0"+ - "\1\73\1\0\2\73\4\0\3\73\1\u040c\2\73\1\0"+ - "\60\73\1\u040c\1\u03f9\17\73\1\u03f9\16\73\1\0\1\73"+ - "\1\0\2\73\4\0\4\73\1\u0297\1\73\1\0\62\73"+ - "\1\u0297\35\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\57\73\1\u040e\5\73\1\u040e\32\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\1\73\1\u040f\36\73"+ - "\1\u040f\57\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\11\73\1\u0410\25\73\1\u0410\60\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0411\25\73"+ - "\1\u0411\60\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\2\73\1\u0162\6\73\1\120\24\73\1\u0162\1\120"+ - "\60\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\16\73\1\120\61\73\1\120\17\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\70\73\1\120\11\73\1\120"+ - "\1\u0412\5\73\1\u0412\6\73\1\0\1\73\1\0\2\73"+ - "\4\0\5\73\1\u0413\1\0\20\73\1\u0413\77\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u0153"+ - "\33\73\1\u0153\61\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\61\73\1\u0414\17\73\1\u0414\14\73\14\0"+ - "\1\u0415\62\0\1\u0415\142\0\2\u02c9\2\0\1\u02c9\43\0"+ - "\1\u0416\125\0\1\141\12\0\1\141\1\u0417\4\141\1\0"+ - "\2\141\1\u0417\2\0\1\141\5\u0417\1\141\1\0\5\141"+ - "\2\u0417\1\0\2\141\1\0\2\u0417\1\141\1\u0417\2\0"+ - "\2\u0417\2\141\10\0\3\141\1\u0417\1\141\1\u0417\5\141"+ - "\1\u0417\3\141\4\0\11\141\1\u0417\5\141\2\u0417\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\5\152\1\u0418\10\152\4\0\21\152\1\u0172"+ - "\12\0\6\u0172\1\0\3\u0172\2\0\1\u0172\3\u02cd\1\u0172"+ - "\1\u02cd\1\u0172\1\0\5\u0172\1\u0176\1\u02cd\1\0\2\u0172"+ - "\1\0\3\u0172\1\u0176\2\0\4\u0172\10\0\5\u0172\1\u0176"+ - "\5\u0172\1\u0176\3\u0172\4\0\11\u0172\1\u02cd\5\u0172\2\u02cd"+ - "\30\0\3\u02cd\1\0\1\u02cd\10\0\1\u02cd\62\0\1\u02cd"+ - "\5\0\2\u02cd\1\u0172\12\0\6\u0172\1\0\1\u0172\1\u0173"+ - "\1\u0172\2\0\1\u0172\3\u02cf\1\u0172\1\u02cf\1\u0175\1\0"+ - "\6\u0172\1\u02cf\1\0\2\u0172\1\0\4\u0172\2\0\2\u0172"+ - "\1\u0173\1\u0172\10\0\17\u0172\4\0\11\u0172\1\u02cf\5\u0172"+ - "\2\u02cf\1\u0172\12\0\6\u0172\1\0\1\u0172\1\u02d0\1\u0172"+ - "\2\0\2\u0172\2\u02d1\1\u0172\1\u02d1\1\u017a\1\0\6\u0172"+ - "\1\u02d1\1\0\2\u0172\1\0\4\u0172\2\0\2\u0172\1\u02d0"+ - "\1\u0172\10\0\17\u0172\4\0\11\u0172\1\u02d1\5\u0172\2\u02d1"+ - "\1\u0172\12\0\1\u0172\1\u02d2\4\u0172\1\0\1\u0172\1\u02d0"+ - "\1\u02d2\2\0\1\u0172\5\u02d2\1\u0419\1\0\5\u0172\2\u02d2"+ - "\1\0\2\u0172\1\0\2\u02d2\1\u0172\1\u02d2\2\0\2\u02d2"+ - "\1\u02d0\1\u0172\10\0\3\u0172\1\u02d2\1\u0172\1\u02d2\5\u0172"+ - "\1\u02d2\3\u0172\4\0\11\u0172\1\u02d2\5\u0172\2\u02d2\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\3\152"+ - "\1\u018f\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\u041a"+ - "\5\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\1\u041b\3\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u041c\2\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\u041d\3\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\1\u041e\15\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\3\152\1\u01a1\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\2\152\1\u01a1\1\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\5\152\1\u041f\10\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\2\152\1\u0420\13\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\3\152\1\u02d5\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\152\1\u0421\2\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\152\1\u0422\2\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\152\1\u0423\2\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\2\152\1\u0424\1\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\u0425\3\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\11\152\1\u01a1\4\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\3\152\1\u0426\12\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u01a1"+ - "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\1\152\1\u0427"+ - "\2\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\1\u0428\3\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\1\u0429\15\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\2\152\1\u042a\1\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\2\152\1\u042b\3\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\6\152"+ - "\1\u0425\7\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\u0187\3\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\2\152\1\u042c\3\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\2\152\1\u042d"+ - "\13\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\1\152\1\u0421\4\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\2\152\1\u02f2\3\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\2\152\1\u0306"+ - "\13\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\3\152\1\u02d9\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\2\152\1\u042e\3\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\3\152\1\u042f\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\1\152\1\u0425\4\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\1\152\1\u0430\2\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\1\u0431\5\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\1\u0432\3\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\1\152"+ - "\1\u0433\2\152\2\0\4\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\1\u0434\3\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\2\152\1\u0435\3\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\5\152\1\u0436\10\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\152\1\u0437\2\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\2\152\1\u0438\1\152\10\0\1\141\1\u0429\15\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\1\u01a1\15\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\2\152\1\u042c\1\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\2\152\1\u0439\3\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\14\152\1\u043a\1\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\3\152\1\u043b\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\15\152\1\u043c\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\2\152\1\u02e5"+ - "\1\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\3\152\1\u01a1\12\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\1\152\1\u043d"+ - "\2\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\4\152\1\u01a1\11\152\4\0\21\152\14\0\1\u043e"+ - "\7\0\1\u043e\3\0\5\u043e\7\0\2\u043e\4\0\2\u043e"+ - "\1\0\1\u043e\2\0\2\u043e\15\0\1\u043e\1\0\1\u043e"+ - "\5\0\1\u043e\20\0\1\u043e\5\0\2\u043e\14\0\1\u043f"+ - "\7\0\1\u043f\3\0\5\u043f\7\0\2\u043f\4\0\2\u043f"+ - "\1\0\1\u043f\2\0\2\u043f\15\0\1\u043f\1\0\1\u043f"+ - "\5\0\1\u043f\20\0\1\u043f\5\0\2\u043f\14\0\1\u0440"+ - "\62\0\1\u0440\130\0\1\u0441\127\0\1\u030c\163\0\1\u0442"+ - "\112\0\1\u0443\74\0\1\u0444\62\0\1\u0444\130\0\1\u0445"+ - "\127\0\1\u0311\163\0\1\u0446\112\0\1\u0447\101\0\1\u0448"+ - "\206\0\1\u0449\127\0\1\u0316\121\0\1\u044a\137\0\1\u044b"+ - "\176\0\1\u044c\77\0\1\u044d\157\0\1\u044e\15\0\1\u044f"+ - "\102\0\1\u0450\136\0\1\u0451\16\0\1\u0452\122\0\1\u0453"+ - "\157\0\1\u0454\116\0\1\u0455\201\0\1\u0456\75\0\1\u0457"+ - "\36\0\1\u0458\77\0\1\u0459\137\0\1\u045a\202\0\1\u045b"+ - "\112\0\1\u045c\162\0\1\u045d\132\0\1\u045e\137\0\1\u045f"+ - "\105\0\1\u0460\155\0\1\u0461\56\0\2\u01cf\1\u032f\5\u01cf"+ - "\1\u0462\127\u01cf\10\u032f\1\u032d\127\u032f\2\u0330\1\u0462\5\u0330"+ - "\1\u01d0\26\u0330\1\u0463\100\u0330\10\u01cf\1\u032d\3\u01cf\1\u0464"+ - "\7\u01cf\1\u0464\3\u01cf\5\u0464\2\u01cf\1\u032e\4\u01cf\2\u0464"+ - "\4\u01cf\2\u0464\1\u01cf\1\u0464\2\u01cf\2\u0464\15\u01cf\1\u0464"+ - "\1\u01cf\1\u0464\5\u01cf\1\u0464\20\u01cf\1\u0464\5\u01cf\2\u0464"+ - "\2\u0332\1\u0333\6\u0332\1\u01d4\126\u0332\11\u0333\1\u01d4\126\u0333"+ - "\11\0\1\u0259\126\0\2\u0332\1\u0333\6\u0332\1\u0259\17\u0332"+ - "\2\u0336\1\u0332\1\u0336\10\u0332\1\u0336\62\u0332\1\u0336\5\u0332"+ - "\2\u0336\2\u0332\1\u0333\6\u0332\1\u0259\17\u0332\2\u01d2\1\u0332"+ - "\1\u01d2\10\u0332\1\u01d2\62\u0332\1\u01d2\5\u0332\2\u01d2\2\u0332"+ - "\1\u0333\6\u0332\1\u01d4\2\u0332\1\u0465\7\u0332\1\u0465\3\u0332"+ - "\5\u0465\7\u0332\2\u0465\4\u0332\2\u0465\1\u0332\1\u0465\2\u0332"+ - "\2\u0465\15\u0332\1\u0465\1\u0332\1\u0465\5\u0332\1\u0465\20\u0332"+ - "\1\u0465\5\u0332\2\u0465\1\250\12\0\1\250\1\u0466\4\250"+ - "\1\0\2\250\1\u0466\2\0\1\250\5\u0466\1\250\1\0"+ - "\5\250\2\u0466\1\0\2\250\1\0\2\u0466\1\250\1\u0466"+ - "\2\0\2\u0466\2\250\7\0\4\250\1\u0466\1\250\1\u0466"+ - "\5\250\1\u0466\3\250\4\0\11\250\1\u0466\5\250\2\u0466"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0467\3\264\7\0\2\250\5\264\1\u0468\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u0469\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u046a\6\264\1\u046b"+ - "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\u046c\5\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u046d\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u046e\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u046f\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0470\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u0471\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0472\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\7\264\1\u0473\6\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u0474\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0475\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u0476\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u0477\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u0478\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u0479\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u047a\7\0\2\250\2\264\1\u047b\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u047c\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\7\264\1\u047d\6\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u047e\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u047f\1\u0480\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\4\264\1\u0481\11\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u0482\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\4\264\1\u0483\11\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0484\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\1\u0485\5\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u0486\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0487\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u0488\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0489\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u048a"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u048b"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u048c\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u048d"+ - "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u048e"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u048f\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u01f9\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\10\264\1\u0490\5\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\3\264\1\u0491\12\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\2\264\1\u0492\4\264\1\u0493\6\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u0494\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0495"+ - "\10\264\1\u0496\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\15\264\1\u0497\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0498\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0499\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\2\264"+ - "\1\u049a\16\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u049b\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u049c\3\264\7\0\2\250\1\u049d\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u049e\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\6\264\1\u049f\7\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u04a0\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u04a1\3\264\7\0\2\250\15\264\1\u04a2\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u04a3\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u04a4\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\11\264\1\u04a5\4\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u04a6"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u04a7\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u04a8"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04a9"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\2\264\1\u04aa\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\u0200\12\0\6\u0200\1\0"+ - "\3\u0200\2\0\1\u0200\3\u0373\1\u0200\1\u0373\1\u0200\1\0"+ - "\5\u0200\1\u0204\1\u0373\1\0\2\u0200\1\0\3\u0200\1\u0204"+ - "\2\0\4\u0200\7\0\1\250\5\u0200\1\u0204\5\u0200\1\u0204"+ - "\3\u0200\4\0\11\u0200\1\u0373\5\u0200\2\u0373\1\u0200\12\0"+ - "\6\u0200\1\0\1\u0200\1\u0201\1\u0200\2\0\1\u0200\3\u0374"+ - "\1\u0200\1\u0374\1\u0203\1\0\6\u0200\1\u0374\1\0\2\u0200"+ - "\1\0\4\u0200\2\0\2\u0200\1\u0201\1\u0200\7\0\1\250"+ - "\17\u0200\4\0\11\u0200\1\u0374\5\u0200\2\u0374\1\u0200\12\0"+ - "\6\u0200\1\0\1\u0200\1\u0375\1\u0200\2\0\2\u0200\2\u0376"+ - "\1\u0200\1\u0376\1\u0207\1\0\6\u0200\1\u0376\1\0\2\u0200"+ - "\1\0\4\u0200\2\0\2\u0200\1\u0375\1\u0200\7\0\1\250"+ - "\17\u0200\4\0\11\u0200\1\u0376\5\u0200\2\u0376\1\u0200\12\0"+ - "\6\u0200\1\0\3\u0200\2\0\2\u0200\2\u0377\2\u0200\1\u04ab"+ - "\1\0\7\u0200\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200"+ - "\7\0\1\250\17\u0200\4\0\22\u0200\12\0\1\u0200\1\u0378"+ - "\4\u0200\1\0\1\u0200\1\u0375\1\u0378\2\0\1\u0200\5\u0378"+ - "\1\u04ac\1\0\5\u0200\2\u0378\1\0\2\u0200\1\0\2\u0378"+ - "\1\u0200\1\u0378\2\0\2\u0378\1\u0375\1\u0200\7\0\1\250"+ - "\3\u0200\1\u0378\1\u0200\1\u0378\5\u0200\1\u0378\3\u0200\4\0"+ - "\11\u0200\1\u0378\5\u0200\2\u0378\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u04ad"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u04ae\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u04af\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u04b0\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u04b1\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u04b2\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u04b3\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u04b4\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u04b5\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u04b6\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u0237"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u0237\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u04b7\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0380\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u04b8\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u04b9\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u04ba\1\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u04bb\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u04bc\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u04bd\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u04be\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\1\u04bf\5\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u04c0\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u04c1\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u04c2\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u04c3\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u0472\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\11\264\1\u04c4\4\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u04c5\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u04c6\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\11\264\1\u0237\4\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u0237\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u04c7\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u04c8\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u04c9\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\6\264\1\u04c2\7\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0217"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u04ca\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u04cb\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\2\264\1\u04cc\13\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u04b8\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u03a2\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\250\1\0\3\250\2\0\7\250\1\0\1\250\1\u04cd"+ - "\5\250\1\0\2\250\1\0\4\250\2\0\4\250\7\0"+ - "\20\250\4\0\22\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u04ce\13\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u0383\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u04cf\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\3\264\1\u04d0\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u04c2\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u04d1\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\1\264\1\u04d2\2\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u04d3\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u04d4\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u04d5\1\264\7\0\2\250\1\u04c9\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u0237\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u04cb\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u04d6\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\14\264\1\u04d7\1\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\15\264\1\u04d8\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u04d9\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\u04da\5\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u033d"+ - "\1\u04db\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\1\264\1\u04dc\2\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u04dd\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u0396\1\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u04de\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\4\264\1\u0237\11\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\7\264\1\u04df\6\264\4\0\1\u04e0\20\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u04e1\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u04e2"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u04e3\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u04e4"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\1\264\1\u04e5\2\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u04e6"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u04e7\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u04e8"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u04e9\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\1\u04ea"+ - "\5\264\1\0\3\264\2\0\4\264\1\u04eb\2\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\3\264\1\u033d\12\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\1\0\1\u04ec\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u04ed\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\12\264"+ - "\1\u04ee\3\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u04ef\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u04f0\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\3\264\1\u04f1\12\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04f2"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\12\264\1\u033d\3\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\6\264\1\u04f3\7\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u04f4\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u036c"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\4\264\1\u033d\11\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u04f5"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\3\264\1\u04f6\12\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u04f7"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\15\264\1\u04f8\4\0\21\264\2\333\1\0\1\333\1\0"+ - "\2\333\4\0\6\333\1\0\40\333\1\u04f9\57\333\1\0"+ - "\1\333\1\0\2\333\4\0\6\333\1\0\40\333\1\u04fa"+ - "\57\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0"+ - "\36\333\1\u04fb\57\333\20\0\1\u04fc\21\0\1\u04fc\172\0"+ - "\1\u03da\103\0\1\u04fd\176\0\1\u04fe\101\0\1\337\174\0"+ - "\1\u04ff\101\0\1\u0500\157\0\1\u0501\162\0\1\u0502\75\0"+ - "\1\u0503\140\0\1\u0504\17\0\1\u0505\117\0\1\u0506\176\0"+ - "\1\u0507\115\0\1\u0508\123\0\1\u0509\155\0\1\u050a\135\0"+ - "\1\u050b\170\0\1\u050c\111\0\1\u03dd\137\0\1\u050d\160\0"+ - "\1\u050e\46\0\3\u0116\1\u050f\2\u0116\1\0\3\u0116\2\0"+ - "\6\u0116\3\0\6\u0116\4\0\4\u0116\2\0\4\u0116\11\0"+ - "\5\u0116\1\u050f\10\u0116\4\0\21\u0116\13\0\6\u0116\1\0"+ - "\1\u0116\1\u0510\1\u0116\2\0\6\u0116\3\0\6\u0116\4\0"+ - "\4\u0116\2\0\2\u0116\1\u0510\1\u0116\11\0\16\u0116\4\0"+ - "\21\u0116\12\0\1\u0511\210\0\1\u0282\4\0\1\u03ef\54\0"+ - "\3\u0512\1\0\1\u0512\7\u03f1\1\0\3\u03f1\2\u0512\6\u03f1"+ - "\2\u0512\1\0\6\u03f1\1\0\1\u0512\1\u03f1\1\u0512\4\u03f1"+ - "\2\u0512\4\u03f1\1\0\1\u0512\1\0\3\u0512\2\0\1\u0512"+ - "\16\u03f1\2\u0512\1\0\1\u0512\21\u03f1\2\73\1\0\1\73"+ - "\1\0\2\73\4\0\4\73\1\u02ac\1\73\1\0\62\73"+ - "\1\u02ac\35\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\70\73\1\u0290\11\73\1\u0290\15\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\21\73\1\u0133\54\73"+ - "\1\u0133\21\73\1\0\1\73\1\0\2\73\4\0\3\73"+ - "\1\u040c\2\73\1\0\60\73\1\u040c\37\73\1\0\1\73"+ - "\1\0\2\73\4\0\1\73\1\u02ac\4\73\1\0\55\73"+ - "\1\u02ac\42\73\1\0\1\73\1\0\2\73\4\0\1\73"+ - "\1\u0290\4\73\1\0\55\73\1\u0290\42\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0513\25\73"+ - "\1\u0513\60\73\1\0\1\73\1\0\2\73\4\0\2\73"+ - "\1\u0514\3\73\1\0\17\73\1\u0514\100\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\2\73\1\u0515\6\73"+ - "\1\u03ff\24\73\1\u0515\1\u03ff\60\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\57\73\1\u0516\5\73\1\u0516"+ - "\32\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\64\73\1\u0290\12\73\1\u0290\20\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\21\73\1\u0517\54\73\1\u0517"+ - "\21\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\11\73\1\u0518\25\73\1\u0518\60\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\21\73\1\u0164\54\73\1\u0164"+ - "\21\73\1\0\1\73\1\0\2\73\4\0\5\73\1\u0519"+ - "\1\0\20\73\1\u0519\77\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\21\73\1\u051a\54\73\1\u051a\21\73"+ - "\1\0\1\73\1\0\2\73\4\0\1\73\1\u012e\4\73"+ - "\1\0\55\73\1\u012e\42\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\2\73\1\u02ac\33\73\1\u02ac\61\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73"+ - "\1\u051b\33\73\1\u051b\61\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\11\73\1\u051c\25\73\1\u051c\60\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73"+ - "\1\u051d\33\73\1\u051d\61\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\57\73\1\u051e\5\73\1\u051e\32\73"+ - "\1\0\1\73\1\0\2\73\4\0\2\73\1\u0290\3\73"+ - "\1\0\17\73\1\u0290\100\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\70\73\1\u051f\11\73\1\u051f\15\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\22\73"+ - "\1\u0520\10\73\1\u0520\64\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\53\73\1\u015d\21\73\1\u015d\22\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\16\73"+ - "\1\u03ff\61\73\1\u03ff\17\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\53\73\1\u0133\21\73\1\u0133\22\73"+ - "\1\0\1\73\1\0\2\73\4\0\3\73\1\u0521\2\73"+ - "\1\0\60\73\1\u0521\37\73\1\0\1\73\1\0\2\73"+ - "\4\0\5\73\1\u0522\1\0\1\73\1\u0523\16\73\1\u0522"+ - "\17\73\1\u0523\20\73\1\u0524\17\73\1\u0524\16\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\16\73\1\u0525"+ - "\61\73\1\u0525\17\73\1\0\1\73\1\0\2\73\4\0"+ - "\3\73\1\u0526\2\73\1\0\60\73\1\u0526\37\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u015d"+ - "\33\73\1\u015d\57\73\15\0\1\u0527\23\0\1\u0527\76\0"+ - "\1\141\12\0\1\141\1\u0528\4\141\1\0\2\141\1\u0528"+ - "\2\0\1\141\5\u0528\1\141\1\0\5\141\2\u0528\1\0"+ - "\2\141\1\0\2\u0528\1\141\1\u0528\2\0\2\u0528\2\141"+ - "\10\0\3\141\1\u0528\1\141\1\u0528\5\141\1\u0528\3\141"+ - "\4\0\11\141\1\u0528\5\141\2\u0528\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u0529"+ - "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\u0172\12\0\1\u0172"+ - "\1\u02d2\4\u0172\1\0\2\u0172\1\u02d2\2\0\1\u0172\5\u02d2"+ - "\1\u0419\1\0\5\u0172\2\u02d2\1\0\2\u0172\1\0\2\u02d2"+ - "\1\u0172\1\u02d2\2\0\2\u02d2\2\u0172\10\0\3\u0172\1\u02d2"+ - "\1\u0172\1\u02d2\5\u0172\1\u02d2\3\u0172\4\0\11\u0172\1\u02d2"+ - "\5\u0172\2\u02d2\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\1\152\1\u052a\4\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\3\152\1\u052b\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\1\u052c\15\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\13\152\1\u052d\2\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\14\152\1\u02e5\1\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\2\152\1\u052e\3\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\2\152\1\u0425\3\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\2\152\1\u052f\1\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\15\152\1\u01a1\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u0530"+ - "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\7\152\1\u0531\6\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152"+ - "\1\u0532\2\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152"+ - "\1\u042f\4\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152"+ - "\1\u0533\4\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\5\152\1\u0534\10\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\3\152\1\u0535\12\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\5\152\1\u0536\10\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152"+ - "\1\u01a1\3\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\u0537"+ - "\5\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\6\152\1\u0538\7\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152\1\u02e5"+ - "\3\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\2\152\1\u02e2\1\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0539"+ - "\4\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\1\152\1\u053a\2\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u053b"+ - "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\1\152\1\u042a\17\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\1\u053c\3\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\u053d\3\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\1\152\1\u0432\2\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\1\u053e\3\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\1\152\1\u053f\2\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\2\152\1\u01a8\3\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152"+ - "\4\0\21\152\15\0\1\u0540\23\0\1\u0540\110\0\1\u0541"+ - "\210\0\1\u030c\4\0\1\u0441\54\0\3\u0542\1\0\1\u0542"+ - "\7\u0443\1\0\3\u0443\2\u0542\6\u0443\2\u0542\1\0\6\u0443"+ - "\1\0\1\u0542\1\u0443\1\u0542\4\u0443\2\u0542\4\u0443\1\0"+ - "\1\u0542\1\0\3\u0542\2\0\1\u0542\16\u0443\2\u0542\1\0"+ - "\1\u0542\21\u0443\15\0\1\u0543\23\0\1\u0543\110\0\1\u0544"+ - "\210\0\1\u0311\4\0\1\u0445\54\0\3\u0545\1\0\1\u0545"+ - "\7\u0447\1\0\3\u0447\2\u0545\6\u0447\2\u0545\1\0\6\u0447"+ - "\1\0\1\u0545\1\u0447\1\u0545\4\u0447\2\u0545\4\u0447\1\0"+ - "\1\u0545\1\0\3\u0545\2\0\1\u0545\16\u0447\2\u0545\1\0"+ - "\1\u0545\21\u0447\12\0\1\u0546\165\0\1\u0547\174\0\1\u0548"+ - "\137\0\1\u0452\122\0\1\u0549\14\0\1\u054a\150\0\1\u054b"+ - "\111\0\1\u054c\1\0\1\u054d\155\0\1\u054e\141\0\1\u054f"+ - "\134\0\1\u0550\135\0\1\u0551\122\0\1\u0552\120\0\1\u0553"+ - "\156\0\1\u0554\137\0\1\u0555\140\0\1\u0556\141\0\1\u0557"+ - "\137\0\1\u0316\4\0\1\u0449\54\0\3\u0558\1\0\1\u0558"+ - "\7\u045c\1\0\3\u045c\2\u0558\6\u045c\2\u0558\1\0\6\u045c"+ - "\1\0\1\u0558\1\u045c\1\u0558\4\u045c\2\u0558\4\u045c\1\0"+ - "\1\u0558\1\0\3\u0558\2\0\1\u0558\16\u045c\2\u0558\1\0"+ - "\1\u0558\21\u045c\42\0\1\u0559\1\u055a\175\0\1\u055b\135\0"+ - "\1\u055c\140\0\1\u055d\121\0\1\u055e\55\0\10\u0462\1\0"+ - "\26\u0462\1\u055f\102\u0462\1\0\5\u0462\2\u0330\17\u0462\2\u0330"+ - "\1\u0462\1\u0330\2\u0462\1\u0330\1\u0560\5\u0330\5\u0462\1\u0330"+ - "\54\u0462\1\u0330\5\u0462\2\u0330\10\u01cf\1\u032d\3\u01cf\1\u0561"+ - "\7\u01cf\1\u0561\3\u01cf\5\u0561\2\u01cf\1\u032e\4\u01cf\2\u0561"+ - "\4\u01cf\2\u0561\1\u01cf\1\u0561\2\u01cf\2\u0561\15\u01cf\1\u0561"+ - "\1\u01cf\1\u0561\5\u01cf\1\u0561\20\u01cf\1\u0561\5\u01cf\2\u0561"+ - "\2\u0332\1\u0333\6\u0332\1\u01d4\2\u0332\1\u0562\7\u0332\1\u0562"+ - "\3\u0332\5\u0562\7\u0332\2\u0562\4\u0332\2\u0562\1\u0332\1\u0562"+ - "\2\u0332\2\u0562\15\u0332\1\u0562\1\u0332\1\u0562\5\u0332\1\u0562"+ - "\20\u0332\1\u0562\5\u0332\2\u0562\1\250\12\0\1\250\1\u0563"+ - "\4\250\1\0\2\250\1\u0563\2\0\1\250\5\u0563\1\250"+ - "\1\0\5\250\2\u0563\1\0\2\250\1\0\2\u0563\1\250"+ - "\1\u0563\2\0\2\u0563\2\250\7\0\4\250\1\u0563\1\250"+ - "\1\u0563\5\250\1\u0563\3\250\4\0\11\250\1\u0563\5\250"+ - "\2\u0563\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u0564\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u0565\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u0566"+ - "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\15\264\1\u0567"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0568\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0569\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u056a\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u056b\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u056c\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264\1\u056d"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u056e"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u056f\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u033d\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0570"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u0571\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0572\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0573"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0574\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0575\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0480\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u0576\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u0577\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0578\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u0353\2\264\7\0\2\250\5\264\1\u0579\10\264\4\0"+ - "\21\264\1\250\12\0\1\u057a\1\u057b\4\264\1\0\3\264"+ - "\2\0\4\264\1\u057c\2\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u057d\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u057e\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u057f\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u04a4\1\u057f\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0580\5\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0581"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u0582\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\u0583\5\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u0584\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\6\264"+ - "\1\u056f\7\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0585\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\11\264"+ - "\1\u0586\4\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0587\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\10\264"+ - "\1\u0588\5\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0589\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\2\264\1\u058a\1\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u058b"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u058c"+ - "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u058d\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u058e"+ - "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\1\264\1\u058f\2\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0590\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u0591\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0592\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0593\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u0594\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u0595\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\4\264\1\u0596\11\264\4\0"+ - "\21\264\1\250\12\0\1\u04bf\5\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\2\264"+ - "\1\u0597\16\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0598\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\264"+ - "\1\u0599\17\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u059a\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\13\264\1\u0480\2\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\1\u059b\6\264\1\0\1\u01d8\1\264\1\u059c\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\1\u0485\5\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u059d\1\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\264"+ - "\1\u059e\17\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u059f\1\u05a0\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\2\264\1\u05a1\1\u05a2\2\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u033d\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\1\u04bf\1\u05a3\4\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u05a4\3\264\7\0"+ - "\2\250\16\264\4\0\2\264\1\u0597\16\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u05a5\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\7\264\1\u05a6\6\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\264\1\u05a7\14\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u05a8\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\10\264\1\u0490\5\264\4\0\21\264\1\u0200\12\0"+ - "\1\u0200\1\u0378\4\u0200\1\0\2\u0200\1\u0378\2\0\1\u0200"+ - "\5\u0378\1\u04ac\1\0\5\u0200\2\u0378\1\0\2\u0200\1\0"+ - "\2\u0378\1\u0200\1\u0378\2\0\2\u0378\2\u0200\7\0\1\250"+ - "\3\u0200\1\u0378\1\u0200\1\u0378\5\u0200\1\u0378\3\u0200\4\0"+ - "\11\u0200\1\u0378\5\u0200\2\u0378\1\250\12\0\1\264\1\u05a9"+ - "\4\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264"+ - "\1\u05aa\14\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\3\264"+ - "\1\u05ab\12\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u05ac\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u05ad\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u05ae\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u05af\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u05b0\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\13\264\1\u05b1"+ - "\2\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\14\264\1\u0396"+ - "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u04c2\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u05b2\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u05b3\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\17\264"+ - "\1\u05b4\1\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u05b5\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u05b6\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\4\264\1\u05b7"+ - "\2\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0472\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\15\264\1\u0237\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u05b8\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\3\264\1\u0480\12\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u05b9\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u05ba\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\2\264\1\u05bb"+ - "\1\u05bc\1\u05bd\1\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u05be\2\264\1\0\1\250\1\264\1\0"+ - "\3\264\1\u05bf\2\0\4\264\7\0\2\250\12\264\1\u05c0"+ - "\3\264\4\0\1\u05c1\1\u05c2\14\264\1\u05c3\2\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u05c4\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u05c5\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u04d0\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u05c6\13\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u05c7\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\3\264\1\u05c8\12\264\4\0\21\264\1\250"+ - "\12\0\1\250\1\u05c9\4\250\1\0\2\250\1\u05c9\2\0"+ - "\1\250\5\u05c9\1\250\1\0\5\250\2\u05c9\1\0\2\250"+ - "\1\0\2\u05c9\1\250\1\u05c9\2\0\2\u05c9\2\250\7\0"+ - "\4\250\1\u05c9\1\250\1\u05c9\5\250\1\u05c9\3\250\4\0"+ - "\11\250\1\u05c9\5\250\2\u05c9\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\3\264"+ - "\1\u0237\12\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u05ca\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0237\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u05cb\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u0390\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u05cc\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u05cd\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u05ce\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u05cf\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u05d0\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u05d1\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u05d2\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u033d\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\3\264\1\u05d3\2\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\u05d4"+ - "\20\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u05d5\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u05d6\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0242\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u05d7\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\4\264\1\u05d8\1\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u05d9\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\2\264\1\u05da\13\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u05db\15\264\4\0\21\264\1\250"+ - "\12\0\4\264\1\u05dc\1\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u05dd"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u05de\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\6\264\1\u05df\7\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\2\264\1\u05e0\13\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u05e1"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u05e2\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\2\264\1\u05e3\13\264\4\0\21\264\24\0\1\u05e4\113\0"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u05e5\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u05e6\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\7\264\1\u05e7\6\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u05e8\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u05e9\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u05ea\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u05eb\15\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u05ec"+ - "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u05ed\5\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\1\u04bf\5\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0480"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\2\264\1\u0597\16\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u05ee"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\10\264\1\u05ef\10\264\2\333\1\0"+ - "\1\333\1\0\2\333\4\0\6\333\1\0\60\333\1\u05f0"+ - "\37\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0"+ - "\16\333\1\u05f1\77\333\22\0\1\u05f2\53\0\1\u05f2\144\0"+ - "\1\u05f3\72\0\1\u05f4\141\0\1\u05f5\162\0\1\u0505\127\0"+ - "\1\u05f6\126\0\1\u05f7\177\0\1\u05f8\140\0\1\337\76\0"+ - "\1\u05f9\207\0\1\337\66\0\1\u05fa\142\0\1\u05fb\135\0"+ - "\1\u050c\173\0\1\u05f9\140\0\1\u05fc\120\0\1\u05fd\161\0"+ - "\1\u05fe\132\0\1\u05ff\55\0\4\u0116\1\u0600\1\u0116\1\0"+ - "\3\u0116\2\0\6\u0116\3\0\6\u0116\4\0\4\u0116\2\0"+ - "\4\u0116\11\0\7\u0116\1\u0600\6\u0116\4\0\21\u0116\13\0"+ - "\6\u0116\1\0\2\u0116\1\u0601\2\0\6\u0116\3\0\6\u0116"+ - "\4\0\4\u0116\2\0\1\u0601\3\u0116\11\0\16\u0116\4\0"+ - "\21\u0116\12\0\1\u03f1\125\0\2\73\1\0\1\73\1\0"+ - "\2\73\4\0\1\120\5\73\1\0\41\73\1\120\56\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\53\73"+ - "\1\u0602\21\73\1\u0602\22\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\21\73\1\u02ac\54\73\1\u02ac\21\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73"+ - "\1\u0603\33\73\1\u0603\61\73\1\0\1\73\1\0\2\73"+ - "\4\0\5\73\1\u0604\1\0\20\73\1\u0604\77\73\1\0"+ - "\1\73\1\0\2\73\4\0\2\73\1\u0605\3\73\1\0"+ - "\17\73\1\u0605\100\73\1\0\1\73\1\0\2\73\4\0"+ - "\1\u0606\5\73\1\0\41\73\1\u0606\56\73\1\0\1\73"+ - "\1\0\2\73\4\0\6\73\1\0\1\u02b3\53\73\1\u02b3"+ - "\43\73\1\0\1\73\1\0\2\73\4\0\1\u0513\5\73"+ - "\1\0\41\73\1\u0513\56\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\64\73\1\u0607\12\73\1\u0607\20\73"+ - "\1\0\1\73\1\0\2\73\4\0\1\u0403\5\73\1\0"+ - "\41\73\1\u0403\56\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\103\73\1\u0608\5\73\1\u0608\6\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\53\73\1\u0515"+ - "\21\73\1\u0515\22\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\1\73\1\u0513\36\73\1\u0513\57\73\1\0"+ - "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u0609"+ - "\33\73\1\u0609\61\73\1\0\1\73\1\0\2\73\4\0"+ - "\3\73\1\u0149\2\73\1\0\60\73\1\u0149\37\73\1\0"+ - "\1\73\1\0\2\73\4\0\2\73\1\u060a\3\73\1\0"+ - "\17\73\1\u060a\100\73\1\0\1\73\1\0\2\73\4\0"+ - "\6\73\1\0\2\73\1\u0290\33\73\1\u0290\61\73\1\0"+ - "\1\73\1\0\2\73\4\0\1\73\1\u060b\4\73\1\0"+ - "\55\73\1\u060b\40\73\16\0\1\u060c\63\0\1\u060c\35\0"+ - "\1\141\12\0\1\141\1\u060d\4\141\1\0\2\141\1\u060d"+ - "\2\0\1\141\5\u060d\1\141\1\0\5\141\2\u060d\1\0"+ - "\2\141\1\0\2\u060d\1\141\1\u060d\2\0\2\u060d\2\141"+ - "\10\0\3\141\1\u060d\1\141\1\u060d\5\141\1\u060d\3\141"+ - "\4\0\11\141\1\u060d\5\141\2\u060d\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\5\152\1\u060e\10\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u060f"+ - "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\5\152\1\u0610\10\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\4\152\1\u01a1"+ - "\1\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\5\152\1\u0611\10\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\2\152\1\u0612\1\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\1\152\1\u0613\2\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\1\u042a\3\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\4\152"+ - "\1\u02d9\11\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\1\152\1\u0614\2\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\2\152"+ - "\1\u01a1\13\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0615\4\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u0616\2\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\2\152\1\u042f\1\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\6\152"+ - "\1\u02ed\7\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\4\152\1\u0617\1\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u0618\2\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\5\152"+ - "\1\u0619\10\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\11\152"+ - "\1\u061a\4\152\4\0\21\152\1\141\12\0\6\152\1\0"+ - "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141"+ - "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\2\152"+ - "\1\u061b\13\152\4\0\21\152\1\141\12\0\3\152\1\u061c"+ - "\2\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\3\152\1\u061d\2\0\4\152"+ - "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152"+ - "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\6\152\1\u02e5\7\152\4\0\21\152\16\0\1\u061e\63\0"+ - "\1\u061e\47\0\1\u0443\143\0\1\u061f\63\0\1\u061f\47\0"+ - "\1\u0447\137\0\1\u045c\166\0\1\u0620\137\0\1\u0621\157\0"+ - "\1\u0622\166\0\1\u0623\133\0\1\u0624\137\0\1\u0625\73\0"+ - "\1\u0626\174\0\1\u0627\123\0\1\u0628\136\0\1\u0452\141\0"+ - "\1\u0629\160\0\1\u062a\114\0\1\u062b\120\0\1\u062c\203\0"+ - "\1\u0452\140\0\1\u0452\133\0\1\u062d\115\0\1\u062e\171\0"+ - "\1\u062f\105\0\1\u062f\74\0\1\u0630\202\0\1\u0631\117\0"+ - "\1\u055b\77\0\2\u0462\1\0\145\u0462\1\0\3\u0462\1\u0632"+ - "\7\u0462\1\u0632\3\u0462\5\u0632\2\u0462\1\u055f\4\u0462\2\u0632"+ - "\4\u0462\2\u0632\1\u0462\1\u0632\2\u0462\2\u0632\15\u0462\1\u0632"+ - "\1\u0462\1\u0632\5\u0462\1\u0632\20\u0462\1\u0632\5\u0462\2\u0632"+ - "\10\u01cf\1\u032d\3\u01cf\1\u0633\7\u01cf\1\u0633\3\u01cf\5\u0633"+ - "\2\u01cf\1\u032e\4\u01cf\2\u0633\4\u01cf\2\u0633\1\u01cf\1\u0633"+ - "\2\u01cf\2\u0633\15\u01cf\1\u0633\1\u01cf\1\u0633\5\u01cf\1\u0633"+ - "\20\u01cf\1\u0633\5\u01cf\2\u0633\2\u0332\1\u0333\6\u0332\1\u01d4"+ - "\2\u0332\1\u0634\7\u0332\1\u0634\3\u0332\5\u0634\7\u0332\2\u0634"+ - "\4\u0332\2\u0634\1\u0332\1\u0634\2\u0332\2\u0634\15\u0332\1\u0634"+ - "\1\u0332\1\u0634\5\u0332\1\u0634\20\u0332\1\u0634\5\u0332\2\u0634"+ - "\1\250\12\0\1\250\1\u0635\4\250\1\0\2\250\1\u0635"+ - "\2\0\1\250\5\u0635\1\250\1\0\5\250\2\u0635\1\0"+ - "\2\250\1\0\2\u0635\1\250\1\u0635\2\0\2\u0635\2\250"+ - "\7\0\4\250\1\u0635\1\250\1\u0635\5\250\1\u0635\3\250"+ - "\4\0\11\250\1\u0635\5\250\2\u0635\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\11\264\1\u0636\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\6\264\1\u0637\7\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0638"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\5\264"+ - "\1\u0639\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\1\u063a\20\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u063b\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\2\264\1\u063c\13\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u063d\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u063e"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\4\264\1\u0499\11\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u063f\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\11\264\1\u033d\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u04a4\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0640\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0641\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u0642\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\4\264\1\u0643\11\264"+ - "\4\0\21\264\1\250\12\0\1\264\1\u0644\4\264\1\0"+ - "\1\264\1\u0645\1\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\3\264\1\u0646\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\1\264\1\u05c2\5\264\1\u0647"+ - "\11\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u057f\2\264\7\0\2\250\16\264\4\0"+ - "\1\264\1\u0648\17\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u04da\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0649\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u064a"+ - "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u056f\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u064b\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u064c\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u064d\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u064e\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\11\264\1\u064f\4\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\1\264"+ - "\1\u0576\2\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0650\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\11\264\1\u0651\4\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u036c\3\264\1\0\1\250\1\264"+ - "\1\0\1\264\1\u0576\2\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0652"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0653\1\264\1\u0654"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0655"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\7\264\1\u0656\6\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u0657\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\1\u0658\20\264\1\250\12\0\1\u0659\5\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\2\264\1\u065a\16\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u065b\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u065c"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u065d\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u065e\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u065f\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0660\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u0661\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0662\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\1\u0663\5\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\16\264\1\u05c3\2\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u0664\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0665\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\6\264"+ - "\1\u04da\7\264\4\0\21\264\1\250\12\0\2\264\1\u05bb"+ - "\1\u05bc\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"; - - private static final String ZZ_TRANS_PACKED_1 = - "\7\0\2\250\16\264\4\0\1\u05c1\15\264\1\u05c3\2\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u0666\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u0667\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u0668\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\4\264\1\u0669\11\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u066a\15\264\4\0\21\264\1\250\12\0"+ - "\5\264\1\u066b\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u066c\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u066d\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u066e"+ - "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u066f"+ - "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0670\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0671\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u0672\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0673\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u0674\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0675\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\1\u0676\5\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\1\264\1\u0677\1\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\u0678"+ - "\20\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u0679\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\1\u067a\2\264\1\u067b\2\264\1\0"+ - "\1\264\1\u067c\1\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u033d"+ - "\7\0\2\250\12\264\1\u067d\3\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\11\264\1\u067e\4\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u067f\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u0680\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\4\264\1\u0480\11\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u0681\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u0682\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u0683\1\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u0362\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\20\264\1\u0684\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u0685\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0686"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u0687\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0688"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u0689\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u0596\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u068a\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u068b"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u068c\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u068d\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u068e\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u068f\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\u0690\5\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u0691\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0692\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\4\264\1\u0383\11\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u0693\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0694\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u0237\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u0695\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\1\250\1\u0696\4\250\1\0\2\250"+ - "\1\u0696\2\0\1\250\5\u0696\1\250\1\0\5\250\2\u0696"+ - "\1\0\2\250\1\0\2\u0696\1\250\1\u0696\2\0\2\u0696"+ - "\2\250\7\0\4\250\1\u0696\1\250\1\u0696\5\250\1\u0696"+ - "\3\250\4\0\11\250\1\u0696\5\250\2\u0696\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u0697\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u04d0"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264"+ - "\1\u0698\1\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u0699\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\11\264\1\u069a\4\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\2\264\1\u069b\13\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u0396\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\6\264\1\u0396\7\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\2\264\1\u069c\13\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u069d\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u069e"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u049f\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u069f"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u06a0\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\2\264\1\u06a1\16\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\14\264\1\u0481"+ - "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u06a2\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\3\264\1\u06a3\2\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u06a4\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u06a5\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u06a6\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u06a7\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\3\264\1\u06a8\12\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u06a9\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u06aa\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u06ab\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\43\0\1\u06ac\74\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u06ad\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u06ae\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\7\264"+ - "\1\u06af\6\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u06b0\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264"+ - "\1\u06b1\13\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\13\264"+ - "\1\u06b2\2\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u06b3\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264"+ - "\1\u06b4\14\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u06b5\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\4\264\1\u06b6\2\264\1\0\1\u01d8\1\264"+ - "\1\u033d\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u06b7"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\2\333\1\0"+ - "\1\333\1\0\2\333\4\0\6\333\1\0\31\333\1\u04fb"+ - "\66\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0"+ - "\57\333\1\u03d5\36\333\23\0\1\u06b8\36\0\1\u06b8\135\0"+ - "\1\u03da\141\0\1\u06b9\12\0\1\u06ba\1\0\1\u06bb\123\0"+ - "\1\337\136\0\1\u06bc\153\0\1\337\152\0\1\u06bd\64\0"+ - "\1\u06be\164\0\1\u06bf\151\0\1\u06c0\154\0\1\u06bc\66\0"+ - "\1\337\140\0\1\u06bc\136\0\1\u06c1\111\0\5\u0116\1\u06c2"+ - "\1\0\3\u0116\2\0\6\u0116\3\0\2\u0116\1\u06c2\3\u0116"+ - "\4\0\4\u0116\2\0\4\u0116\11\0\16\u0116\4\0\21\u0116"+ - "\2\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\16\73\1\u028d\61\73\1\u028d\17\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\32\73\1\120\30\73\1\120"+ - "\34\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\2\73\1\u06c3\33\73\1\u06c3\61\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\2\73\1\u02a8\33\73\1\u02a8"+ - "\61\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\53\73\1\u0128\21\73\1\u0128\22\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\2\73\1\u0513\33\73\1\u0513"+ - "\61\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\16\73\1\u06c4\61\73\1\u06c4\17\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\64\73\1\u06c5\12\73\1\u06c5"+ - "\20\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u0164"+ - "\2\73\1\0\60\73\1\u0164\37\73\1\0\1\73\1\0"+ - "\2\73\4\0\6\73\1\0\53\73\1\u02bc\21\73\1\u02bc"+ - "\20\73\17\0\1\u06c6\64\0\1\u06c6\33\0\1\141\12\0"+ - "\1\141\1\152\4\141\1\0\2\141\1\152\2\0\1\141"+ - "\5\152\1\141\1\0\5\141\2\152\1\0\2\141\1\0"+ - "\2\152\1\141\1\152\2\0\2\152\2\141\10\0\3\141"+ - "\1\152\1\141\1\152\5\141\1\152\3\141\4\0\11\141"+ - "\1\152\5\141\2\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\2\152\1\u0612\3\152\1\0"+ - "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141"+ - "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152"+ - "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\1\u06c7\3\152\10\0\1\141\16\152"+ - "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0"+ - "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\1\u06c8\15\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\1\152\1\u01a1\14\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\3\152\1\u0425\2\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\2\152\1\u042f\13\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\1\u06c9\15\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\1\u02e5\5\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152"+ - "\1\u06ca\2\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152"+ - "\10\0\1\141\2\152\1\u02d7\13\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\2\152\1\u0531\3\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141"+ - "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f"+ - "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u06cb"+ - "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152"+ - "\1\u06cc\3\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152"+ - "\1\u06cd\2\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\2\152\1\u06ce"+ - "\1\152\10\0\1\141\16\152\4\0\21\152\17\0\1\u06cf"+ - "\64\0\1\u06cf\52\0\1\u06d0\64\0\1\u06d0\76\0\1\u0452"+ - "\176\0\1\u06d1\136\0\1\u06d2\121\0\1\u0452\136\0\1\u0550"+ - "\117\0\1\u0557\176\0\1\u0550\77\0\1\u0452\160\0\1\u06d3"+ - "\135\0\1\u06d4\154\0\1\u06d5\141\0\1\u06d6\103\0\1\u06d1"+ - "\171\0\1\u0620\103\0\1\u06d7\76\0\64\u062f\1\u0452\53\u062f"+ - "\75\0\1\u06d8\103\0\1\u06d9\76\0\10\u0462\1\0\3\u0462"+ - "\1\u06da\7\u0462\1\u06da\3\u0462\5\u06da\2\u0462\1\u055f\4\u0462"+ - "\2\u06da\4\u0462\2\u06da\1\u0462\1\u06da\2\u0462\2\u06da\15\u0462"+ - "\1\u06da\1\u0462\1\u06da\5\u0462\1\u06da\20\u0462\1\u06da\5\u0462"+ - "\2\u06da\10\u01cf\1\u032d\3\u01cf\1\253\7\u01cf\1\253\3\u01cf"+ - "\5\253\2\u01cf\1\u032e\4\u01cf\2\253\4\u01cf\2\253\1\u01cf"+ - "\1\253\2\u01cf\2\253\15\u01cf\1\253\1\u01cf\1\253\5\u01cf"+ - "\1\253\20\u01cf\1\253\5\u01cf\2\253\2\u0332\1\u0333\6\u0332"+ - "\1\u01d4\2\u0332\1\u01d2\7\u0332\1\u01d2\3\u0332\5\u01d2\7\u0332"+ - "\2\u01d2\4\u0332\2\u01d2\1\u0332\1\u01d2\2\u0332\2\u01d2\15\u0332"+ - "\1\u01d2\1\u0332\1\u01d2\5\u0332\1\u01d2\20\u0332\1\u01d2\5\u0332"+ - "\2\u01d2\1\250\12\0\1\250\1\264\4\250\1\0\2\250"+ - "\1\264\2\0\1\250\5\264\1\250\1\0\5\250\2\264"+ - "\1\0\2\250\1\0\2\264\1\250\1\264\2\0\2\264"+ - "\2\250\7\0\4\250\1\264\1\250\1\264\5\250\1\264"+ - "\3\250\4\0\11\250\1\264\5\250\2\264\1\250\12\0"+ - "\1\264\1\u06db\3\264\1\u06dc\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\2\264\1\u05bb\1\u067b\1\264\1\u06dc\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\1\u06dd\3\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\12\264\1\u06de\3\264\1\u05c3\2\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\2\264\1\u06df\16\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u06e0\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\14\264\1\u06e1\1\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u06e2\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u06e3\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u06e4"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\2\264\1\u06e5\13\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u06e6\10\264\4\0\21\264\1\250\12\0\5\264"+ - "\1\u06e7\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u06e8\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264"+ - "\1\u06e9\13\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u06ea\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u06eb\2\264\7\0"+ - "\2\250\5\264\1\u06ec\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u068a\15\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u06ed\15\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u06ee\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u06ef"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u06f0\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u06f1\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\14\264\1\u06f2\4\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\3\264\1\u06f3\2\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u06f4\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u06f5\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u06f6\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u06f7\13\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\4\264\1\u06f8\2\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\11\264\1\u06f9\4\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u06fa\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u06fb\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u06fc\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u06fd\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u06fe\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u06ff\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u0700\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u0701\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\4\264\1\u0702\11\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\11\264\1\u0703\4\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u0704\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u0705\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\7\264\1\u0706\6\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\2\264\1\u0707\13\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u0708\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u0709\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u070a\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u070b\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u070c\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\7\264\1\u033d\6\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\264\1\u070d\14\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u070e\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\1\264\1\u070f\1\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\1\0\1\u0710\4\264\7\0\2\250\12\264\1\u0711\3\264"+ - "\4\0\4\264\1\u0712\14\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04da\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0713\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\1\0\1\u0714\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0715"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\1\264"+ - "\1\u067c\1\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\10\264\1\u0716\10\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u06b4\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u0717\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0718\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u0719\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0706\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u071a\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u071b\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u071c\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u071d\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\1\264\1\u071e\2\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u071f\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0720\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u0721\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u0722\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u023e\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0723\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u0724\13\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u0725\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0726"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\264\1\u0237\14\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\1\0\1\u0727\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0728"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u033d"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0729"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04c2"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u072a"+ - "\3\264\1\0\1\250\1\264\1\0\3\264\1\u072b\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u072c"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\7\264\1\u072d\6\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u072e\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\11\264\1\u072f\4\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0730"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u0731"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u068b"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0732"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u0730\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\2\264\1\u04d0\13\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u0733"+ - "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u0734\15\264\4\0\21\264\1\250\12\0\1\250\1\u0735"+ - "\4\250\1\0\2\250\1\u0735\2\0\1\250\5\u0735\1\250"+ - "\1\0\5\250\2\u0735\1\0\2\250\1\0\2\u0735\1\250"+ - "\1\u0735\2\0\2\u0735\2\250\7\0\4\250\1\u0735\1\250"+ - "\1\u0735\5\250\1\u0735\3\250\4\0\11\250\1\u0735\5\250"+ - "\2\u0735\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u0396\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u0736\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\2\264\1\u0737\13\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0738\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u0739\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u073a\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\7\264\1\u073b\6\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u069d\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u073c\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\1\u073d\5\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u073e\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\1\u073f"+ - "\2\264\1\u0740\2\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u033d\7\0\2\250\16\264\4\0\1\u0741\20\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u0742\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u0743\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264\1\u0744"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\14\264\1\u0745\1\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0746\2\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\2\264\1\u0747\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264\1\u0748"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\2\264\1\u0749"+ - "\16\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u074a\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u074b\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u074c\10\264\4\0\21\264"+ - "\42\0\1\u074d\75\0\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u074e"+ - "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u074f\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0750\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u0751\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\15\264\1\u0752\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u0753\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u0754\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\2\264\1\u0755\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u0756\1\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0757\2\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u0758\7\0\2\250\16\264\4\0\21\264\24\0\1\u0759"+ - "\33\0\1\u0759\140\0\1\u0500\122\0\1\u075a\173\0\1\u075b"+ - "\117\0\1\u075c\137\0\1\337\154\0\1\u06ba\1\0\1\u06bb"+ - "\102\0\1\u075d\136\0\1\u06bd\140\0\1\u075e\75\0\2\73"+ - "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\32\73"+ - "\1\u02ac\30\73\1\u02ac\34\73\1\0\1\73\1\0\2\73"+ - "\4\0\6\73\1\0\53\73\1\u012a\21\73\1\u012a\22\73"+ - "\1\0\1\73\1\0\2\73\4\0\4\73\1\u075f\1\73"+ - "\1\0\62\73\1\u075f\33\73\20\0\1\u0760\21\0\1\u0760"+ - "\75\0\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\3\152\1\u042f\2\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\3\152\1\u01a1\2\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\3\152\1\u0761\2\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\4\152\10\0\1\141\2\152\1\u02e5\13\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\3\152\1\u0762\2\152\1\0\1\141\1\152"+ - "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0"+ - "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152"+ - "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152"+ - "\2\0\1\u0308\3\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\2\152\1\u042a\3\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\1\u0763\15\152\4\0\21\152\20\0"+ - "\1\u0764\21\0\1\u0764\115\0\1\u0765\21\0\1\u0765\156\0"+ - "\1\u0766\141\0\1\u0767\131\0\1\u0768\31\0\1\u0769\72\0"+ - "\1\u0550\136\0\1\u076a\157\0\1\u076b\137\0\1\u076c\153\0"+ - "\1\u076d\144\0\1\u076e\35\0\10\u0462\1\0\3\u0462\1\u076f"+ - "\7\u0462\1\u076f\3\u0462\5\u076f\2\u0462\1\u055f\4\u0462\2\u076f"+ - "\4\u0462\2\u076f\1\u0462\1\u076f\2\u0462\2\u076f\15\u0462\1\u076f"+ - "\1\u0462\1\u076f\5\u0462\1\u076f\20\u0462\1\u076f\5\u0462\2\u076f"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u0770\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u0771\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0772"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u0773\15\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0774\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0775\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0776\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\13\264\1\u0777\5\264\1\250\12\0\1\264\1\u0778\4\264"+ - "\1\0\1\264\1\u0645\1\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\264\1\u0779\14\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u077a\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\2\264\1\u077b\1\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u077c\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u077d\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264"+ - "\1\u033d\14\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u077e\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u077f\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0780\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0781\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u03b1\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u0782\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0783\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0784\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u0785\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\14\264\1\u0786\1\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u0787\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u0788\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\4\264\1\u05bd\1\264\1\0\2\264\1\u04aa"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u0789\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\2\264\1\u078a\13\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u078b\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\7\264\1\u078c\6\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u06b4\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u078d\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u078e\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u078f\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u0790\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u0791\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u0792\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\1\264\1\u0793\2\264\1\u0794\1\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\1\u0795\20\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u0796\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\1\u0797\4\264\1\u0798\1\0\3\264"+ - "\2\0\4\264\1\u0799\2\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\3\264\1\u079a\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\2\264\1\u079b\16\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\264\1\u04f8\14\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u079c\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\15\264\1\u079d\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\1\u079e\3\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264"+ - "\1\u079f\3\264\1\u07a0\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u07a1\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\264\1\u07a2\14\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\14\264\1\u07a3\1\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\1\264\1\u07a4\1\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\4\264\1\u07a5\1\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u07a6\15\264\4\0\21\264\13\0\1\u07a7\106\0"+ - "\1\u07a8\15\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u06df\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u07a9\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u07aa\7\0\2\250\16\264\4\0\21\264"+ - "\14\0\1\u07ab\6\0\1\u07ac\26\0\1\u07ad\2\0\1\u07ae"+ - "\62\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\1\264"+ - "\1\u07af\2\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u07b0\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u07b1\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u07b2\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\3\264\1\u07b3\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u07b4\1\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u07b5\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u07b6"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u07b7"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\15\264\1\u07b8\3\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0479\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07b9"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u0358"+ - "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\3\264\1\u0472\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u07ba\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u07bb\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u07bc\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u04d0\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\24\0\1\u07bd\62\0\1\u07be\30\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u07bf"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u07c0"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u07c1\1\u07c2"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u07c3"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\4\264\1\u056f\11\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u07c4"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\11\264\1\u07c5\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u07c6\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u056f\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264"+ - "\1\u07c7\13\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\3\264\1\u07c8\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\7\264\1\u0237"+ - "\6\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\3\264\1\u07c9\2\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\1\250\1\u022f\4\250"+ - "\1\0\2\250\1\u022f\2\0\1\250\5\u022f\1\250\1\0"+ - "\5\250\2\u022f\1\0\2\250\1\0\2\u022f\1\250\1\u022f"+ - "\2\0\2\u022f\2\250\7\0\4\250\1\u022f\1\250\1\u022f"+ - "\5\250\1\u022f\3\250\4\0\11\250\1\u022f\5\250\2\u022f"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\2\264\1\u0396\13\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u07ca\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u07cb\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u03b7"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u07cc\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u07cd"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u07ce\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u07cf"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\11\264\1\u07d0\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u07d1"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u07d2"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u07d3\5\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\2\264\1\u07d4\1\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u07d5\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07d6"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u07d7\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u0363\1\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u07d8\1\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u07d9\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u07da\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\12\264\1\u07db\3\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u07dc\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\14\264\1\u07dd\1\264\4\0"+ - "\21\264\41\0\1\u07de\76\0\1\250\12\0\2\264\1\u07df"+ - "\3\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\3\264\1\u07e0\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u07e1"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u07e2"+ - "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u07e3\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\2\264\1\u0755\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\3\264\1\u07e4\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u07e5\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u01f9\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\2\264\1\u07e6\16\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07e7"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u07e8"+ - "\12\264\4\0\21\264\21\0\1\u07e9\154\0\1\u07ea\203\0"+ - "\1\u07eb\136\0\1\337\74\0\1\u07ec\162\0\1\u07ed\56\0"+ - "\2\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0"+ - "\1\73\1\u07ee\36\73\1\u07ee\55\73\21\0\1\u07ef\116\0"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\4\152\10\0\1\141\5\152\1\u07f0\10\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\2\152\1\u02d9\3\152\1\0\1\141\1\152\1\0"+ - "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152"+ - "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0"+ - "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0"+ - "\1\152\1\u06cd\2\152\10\0\1\141\16\152\4\0\21\152"+ - "\21\0\1\u07f1\137\0\1\u07f2\200\0\1\u0452\136\0\1\u07f3"+ - "\160\0\1\u07f4\116\0\1\u07f5\154\0\1\u0452\103\0\1\u07f6"+ - "\157\0\1\u062f\117\0\1\u062f\137\0\1\u07f7\75\0\10\u0462"+ - "\1\0\3\u0462\1\u0330\7\u0462\1\u0330\3\u0462\5\u0330\2\u0462"+ - "\1\u055f\4\u0462\2\u0330\4\u0462\2\u0330\1\u0462\1\u0330\2\u0462"+ - "\2\u0330\15\u0462\1\u0330\1\u0462\1\u0330\5\u0462\1\u0330\20\u0462"+ - "\1\u0330\5\u0462\2\u0330\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u07f8\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\15\264\1\u07f9"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\4\264\1\u07fa\1\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u07fb\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u0471\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03c3\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264"+ - "\1\u07fc\13\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u07fd\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u07fe\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07ff"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\2\264"+ - "\1\u04aa\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\2\264\1\u0800\16\264\1\250\12\0\3\264\1\u05bc"+ - "\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0801\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0802"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u0803\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\1\0\1\u0804\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0372\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0805\13\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\11\264\1\u0806\4\264"+ - "\4\0\21\264\1\250\12\0\1\u0807\5\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u0808\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u0809\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u080a\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u080b"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\264\1\u080c\14\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u080d\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\1\u080e\3\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\2\264\1\u080f\13\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0810"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0811"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0812\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u0813\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\1\264\1\u0814\2\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\1\u0815\20\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0816\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0817"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u0818\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0819\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\1\264\1\u081a\2\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u081b"+ - "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u081c\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u081d"+ - "\12\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u081e\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\2\264\1\u081f\13\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u0820\15\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0821"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u0822"+ - "\10\264\4\0\21\264\1\250\12\0\2\264\1\u05bb\1\u05bc"+ - "\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u0823\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\2\264\1\u05a1\1\264"+ - "\1\u05bd\1\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u0824\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0825\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\6\264\1\324\12\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0826\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0827\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u0828\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0829\13\264"+ - "\4\0\21\264\42\0\1\u082a\140\0\1\u082b\74\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u082c\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\15\264\1\u033d\4\0\21\264\61\0\1\u082d\137\0"+ - "\1\u082e\116\0\1\u082f\201\0\1\u0830\35\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0831\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0832\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u0833\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u03cd\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u0834\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u0835"+ - "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\3\264\1\u0836\2\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u0837"+ - "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u0838\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0839\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u07dd\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u083a\10\264"+ - "\4\0\21\264\1\250\12\0\1\u083b\1\u083c\4\264\1\0"+ - "\1\264\1\u067c\1\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\2\264\1\u083d\3\264\1\324\12\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u06b4\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\43\0\1\u083e\154\0\1\u083e\57\0\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\7\264\1\u083f\6\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\264\1\u0840\14\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0841"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\1\264\1\u0842\2\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0843\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0844"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u0845\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\3\264\1\u05bf\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0846\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0847"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u0848"+ - "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0849\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0383\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u084a\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u084b\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u06e9\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u084c\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u084d\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u084e\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\7\264\1\u084f\6\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u0850\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\3\264\1\u0851\2\264\1\0\1\264\1\u0852"+ - "\1\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\12\264"+ - "\1\u0853\3\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0854\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0855\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\4\264\1\u0856\2\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0857\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0858\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0859\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u085a\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u085b\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u0372\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\76\0\1\u085c\41\0\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u085d\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u085e\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u085f\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u0860\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\4\264\1\u0861\11\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u0862\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u0863\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u0864\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u0865\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\2\264\1\u0597\16\264"+ - "\42\0\1\u0866\157\0\1\u075c\137\0\1\u0867\120\0\1\u0868"+ - "\74\0\2\73\1\0\1\73\1\0\2\73\4\0\6\73"+ - "\1\0\11\73\1\u012a\25\73\1\u012a\56\73\1\141\12\0"+ - "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152"+ - "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0"+ - "\1\141\16\152\4\0\13\152\1\u06cc\5\152\44\0\1\u0869"+ - "\153\0\1\u086a\121\0\1\u086b\155\0\1\u086c\166\0\1\u086d"+ - "\30\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u086e\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u086f\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\4\264\1\u0870\1\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u072c\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0871\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\4\264\1\u0872\1\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0873\2\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u0874\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u0875\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\4\264\1\u0372\11\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0876"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u0877\15\264\4\0\21\264\52\0\1\u07ad\65\0"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\u0878\5\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u0879\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\u087a\5\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u087b\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u087c\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u087d\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u087e\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\2\264\1\u05bb\3\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\16\264\1\u05c3\2\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\1\0"+ - "\1\u087f\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\u0880\5\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0881\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\264\1\u0882\14\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u0883\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0884\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\1\264\1\u0885\2\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\2\264\1\u0886\1\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u0887\1\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0888\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0889\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u088a\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u088b"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\15\264\1\u088c\3\264\1\250\12\0\6\264\1\0\1\264"+ - "\1\u088d\1\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u088e\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u088f\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u0890"+ - "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u0891"+ - "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0892\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\3\264\1\u0893\2\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0686\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0894\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u033d\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u056e\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\3\264\1\u0895\2\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u0896\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0897\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u0898\2\264\7\0\2\250\16\264\4\0\21\264\61\0"+ - "\1\u0899\155\0\1\u089a\40\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u0666\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\42\0\1\u089b\140\0\1\u089c\176\0"+ - "\1\u089d\117\0\1\u089e\55\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u079d\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\3\264"+ - "\1\u0499\12\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u089f\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u08a0\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\13\264\1\u0480\5\264\1\250\12\0\3\264\1\u08a1"+ - "\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\15\264"+ - "\1\u0372\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u08a2\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0472\13\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0372\13\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u08a3\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u08a4\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u08a5\1\u08a6\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\77\0\1\u08a7\40\0\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\2\264\1\u08a8\16\264\1\250\12\0\3\264\1\u05bc\2\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\1\u05c1\20\264\1\250\12\0\1\264\1\u08a9"+ - "\4\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\1\0\1\u08aa\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u08ab\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\6\264\1\u08ac\7\264\4\0\21\264\1\250\12\0\1\u0663"+ - "\5\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u08ad\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u08ae"+ - "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\u08af\5\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\13\264"+ - "\1\u0739\5\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\4\264\1\u0237\1\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\3\264\1\u08b0\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u08b1\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u05ec\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u08b2\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\u08b3\5\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\7\264\1\u08b4\6\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u0472\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u08b5\15\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u08b6\2\264"+ - "\7\0\2\250\1\u08b7\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u08b8\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\11\264\1\u08b9\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u08ba"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\11\264\1\u08bb\4\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\2\264\1\u08bc\1\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\3\264\1\u08bd\12\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u08be"+ - "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u08bf\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u08c0\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u08c1\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u08c2\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u08c3\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\3\264\1\u08c4\2\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u08c5\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\1\264\1\u08c6\4\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u08c7\13\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u077b\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\76\0\1\u08c8\121\0\1\u08c9\21\0\1\u08ca"+ - "\77\0\1\u08cb\155\0\1\u08cc\141\0\1\u086c\136\0\1\u0452"+ - "\157\0\1\u0452\133\0\1\u08cd\42\0\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u08ce\5\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u08cf\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u08d0\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\2\264"+ - "\1\u08d1\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u08d2\1\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u08d3\1\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\4\264\1\u08d4\1\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u08d5\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\1\u059b\6\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\264\1\u08d6\4\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u08d7\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u06b4\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\7\264\1\u08d8\6\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\2\264\1\u08d9"+ - "\16\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u04da\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u08da\7\0\2\250\16\264\4\0\21\264"+ - "\13\0\1\u08db\106\0\1\u08dc\15\0\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u08dd"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u08de\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\1\u08df\5\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u08e0"+ - "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u08e1"+ - "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u08e2\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u08e3\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\1\u08e4\3\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\11\264\1\u08e5\4\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u08e6\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u08e7\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\7\264\1\u08e8\6\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u08e9\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u08ea\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u07dd\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u08eb\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0857\5\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u08ec\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u08ed"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u08ee"+ - "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u08ef\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u08f0\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u08f1\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\3\264\1\u08bb\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\2\264\1\u033d\1\264\7\0\2\250\16\264"+ - "\4\0\21\264\42\0\1\u08f2\156\0\1\u08f3\136\0\1\u08f4"+ - "\162\0\1\u08f5\116\0\1\u08f6\117\0\1\u08f7\75\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u08f8\13\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u08f9\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u08fa\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u08fb\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u033d\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\14\264\1\u08fc"+ - "\4\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u08fd\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u08fe\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\7\264\1\u08ff\6\264\4\0"+ - "\21\264\75\0\1\u08f6\42\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u08a5\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u0900\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\52\0\1\u0901\65\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0902\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0903\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u079c\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\7\264\1\u03cd"+ - "\6\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\3\264\1\u0801\2\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0904\15\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0905\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0906\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u0907\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\u0908\5\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u0909\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u090a\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\1\u057f\5\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u0372\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u077f\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u090b\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u090c\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\4\264\1\u01ed\11\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u08bc\15\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\3\264\1\u090d\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\13\264\1\u090e\5\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u090f\15\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\11\264"+ - "\1\u0910\4\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\4\264"+ - "\1\u0911\11\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\4\264"+ - "\1\u0912\11\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\1\u0372\20\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0913"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u0914\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u0915"+ - "\12\264\4\0\21\264\104\0\1\u06bd\75\0\1\u0509\140\0"+ - "\1\u06bd\136\0\1\u076a\174\0\1\u062f\40\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\7\264\1\u0865\6\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u0916\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u0917\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0918"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u0919\15\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u091a\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u091b\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u091c\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\2\264\1\u091d"+ - "\3\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\1\0\1\u091e\3\264"+ - "\1\u091f\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0920"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\7\264\1\u0757\6\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u0921\15\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u0922\10\264\4\0\21\264\40\0\1\u0923\142\0"+ - "\1\u0924\74\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\4\264\1\u0925\11\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u0926\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0927\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\3\264\1\u08c4\2\264\1\0\2\264"+ - "\1\u04aa\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u0928\15\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u0929\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\5\264\1\u092a\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u092b\15\264\4\0\21\264\1\250\12\0"+ - "\2\264\1\u05bb\3\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\2\264\1\u092c\13\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u0372"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u092d\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264"+ - "\1\u077f\13\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264"+ - "\1\u092e\13\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u092f\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u0930\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u0931\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u0932\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u0933"+ - "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0934\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u0935\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\60\0\1\u085c\117\0\1\u0936\202\0\1\u0937\74\0"+ - "\1\u0938\200\0\1\u0939\116\0\1\u093a\57\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u093b\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u049b"+ - "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\3\264"+ - "\1\u093c\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u093d\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\u093e\5\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\2\264\1\u093f\1\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u0940"+ - "\12\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\1\0\1\u0941\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u0942\15\264\4\0"+ - "\21\264\102\0\1\u0943\35\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\3\264\1\u0944\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\1\264\1\u0945\4\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u0946\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0947"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0948"+ - "\4\264\4\0\21\264\1\250\12\0\1\u0949\5\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\7\264\1\u094a\11\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u094b\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\6\264"+ - "\1\u033d\7\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0372\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u094c\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u077f\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u094d"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u094e\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\u094f\5\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u0950\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\1\264\1\u0951\4\264\1\0"+ - "\2\264\1\u0952\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\1\u0953\20\264\1\250\12\0\6\264\1\0"+ - "\1\264\1\u0954\1\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0955\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\2\264\1\u0956\1\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u0957\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\13\264\1\u056f\5\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0958\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\13\264\1\u06b4"+ - "\2\264\4\0\21\264\1\250\12\0\4\264\1\u05bd\1\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u0959"+ - "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u056f"+ - "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u095a\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\117\0\1\u095b\20\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\1\0\1\u095c\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u095d"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\4\264\1\u095e\11\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u095f\15\264\4\0\21\264\53\0\1\u0960\166\0\1\u0961"+ - "\35\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\2\264\1\u0962\1\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264"+ - "\1\u0963\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u0964\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u01ed\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\1\264\1\u0965\4\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\3\264\1\u0966\12\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\u0967\5\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\3\264\1\u0372\12\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u0968\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u0969\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\4\264\1\u096a\11\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u01ed\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u096b\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\1\u096c\15\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u096d\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u096e\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u096f\2\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\103\0\1\u0970\131\0\1\u074d"+ - "\123\0\1\u0971\136\0\1\u0972\120\0\1\u0973\76\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\1\u0974\3\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u0975\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u0976\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0977\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\u0978\3\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0979"+ - "\15\264\4\0\21\264\13\0\1\u097a\124\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u077b"+ - "\7\0\2\250\16\264\4\0\21\264\103\0\1\u097b\34\0"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u097c\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u097d\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\11\264\1\u097e\4\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\16\264\1\u05c3\2\264\1\250"+ - "\12\0\1\264\1\u097f\4\264\1\0\2\264\1\u04aa\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\3\264\1\u0980\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u0981\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u0982\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\1\u0983\5\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\264\1\u0984\14\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\u0985\5\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0969\2\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u0986\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u0987\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u0988\1\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u0989\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\7\264\1\u098a\6\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u098b\10\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u098c\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u098d"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u066f\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\11\264\1\u098e\4\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u098f"+ - "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0990"+ - "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\44\0\1\u0991\126\0"+ - "\1\u0992\104\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0993\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0994\10\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u0372\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\63\0\1\u0995\153\0\1\u0996\40\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0997"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u0576\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u0998\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0999"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264"+ - "\1\u099a\4\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u099b\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264"+ - "\1\u099c\3\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u07dd"+ - "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\1\u0797\5\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\1\264"+ - "\1\u099d\2\264\1\u099e\1\264\1\0\2\264\1\u04aa\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\3\264\1\u099f\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\16\264\1\u09a0\2\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u096a\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u09a1\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u09a2\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u09a3\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\100\0\1\u09a4\142\0\1\u09a5\75\0\1\u085c"+ - "\200\0\1\u09a6\35\0\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\u09a7\5\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\5\264\1\u09a8\10\264"+ - "\4\0\21\264\1\250\12\0\4\264\1\u09a9\1\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u09aa\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0706\13\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\4\264\1\u06b4\11\264"+ - "\4\0\21\264\102\0\1\u09ab\144\0\1\u09ac\30\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u09ad\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u09ae\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u09af\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264"+ - "\1\u09b0\1\264\7\0\2\250\1\u09b1\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u09b2\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u09b3\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u09b4\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u09b5\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\1\u09b6\5\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u0979\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u07dd\13\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\4\264\1\u09b7\2\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\16\264\1\u09a0"+ - "\2\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u09b8\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u09b9\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u09ba\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u09bb\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\1\264\1\u057b\4\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\3\264\1\u099f\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\3\264\1\u09bc\2\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u0851\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u09bd\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\4\264\1\u09be\11\264\4\0\21\264"+ - "\16\0\1\u09bf\1\u09c0\3\0\1\u09c1\63\0\1\u09c2\103\0"+ - "\1\u09c3\64\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u05ec\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\4\264\1\u09c4\1\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\60\0\1\u09c5\154\0\1\u09c6\42\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\1\0\1\u09c7"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\5\264\1\u09c8\10\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u09c9"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u09ca\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\4\264\1\u08e7\11\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u09cb\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\1\u09cc\15\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u09cd\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\2\264\1\u09ce\1\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u09cf\10\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\1\0\1\u09d0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\2\264\1\u09d1\3\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u08e7\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\42\0\1\u09d2\155\0\1\u09d3\122\0"+ - "\1\u09d4\74\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u09d5\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u09d6\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u09d7\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\2\264\1\u09d8\3\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\106\0\1\u09d9\111\0\1\u09da\57\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\6\264\1\u0824\7\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\14\264\1\u09db\1\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\2\264\1\u09dc\3\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264"+ - "\1\u09dd\2\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u09de\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u09df"+ - "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\u09e0\3\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u09e1\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u09e2"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u09e3\10\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u081e"+ - "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u09e4\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u09e5"+ - "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\1\264\1\u09e6\4\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\15\264\1\u06b4"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\4\264\1\u09e7\11\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\264\1\u05ad\2\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\1\u056e\15\264\4\0"+ - "\21\264\43\0\1\u09c5\135\0\1\u09e8\173\0\1\u09e9\137\0"+ - "\1\u09ea\125\0\1\u09eb\54\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264"+ - "\1\u09ec\10\264\4\0\21\264\42\0\1\u085c\176\0\1\u09ed"+ - "\52\0\1\u09ee\123\0\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\3\264\1\u09ef\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u09f0\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u09f1\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\u09f2\3\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u06f3\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\4\264\1\u09f3\11\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u09f4\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\1\264\1\u09f5\2\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\4\264\1\u09f6\11\264\4\0"+ - "\21\264\15\0\1\u09f7\122\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u09f8"+ - "\15\264\4\0\21\264\24\0\1\u09f9\130\0\1\u09fa\225\0"+ - "\1\u09fb\34\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0"; - - private static final String ZZ_TRANS_PACKED_2 = - "\4\264\7\0\2\250\4\264\1\u0576\11\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u09fc\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\1\u09fd\15\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u09fe\10\264\4\0\21\264\104\0"+ - "\1\u09ff\132\0\1\u0a00\40\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\u0a01\3\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\3\264\1\u099f\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\3\264\1\u0824\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\3\264\1\u0a02\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u03ce\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u0a03\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\4\264\1\u0673\11\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\u0a04\3\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\16\264\4\0\13\264\1\u07dd\5\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264"+ - "\1\u0a05\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\4\264\1\u0a06\11\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0a07"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u04a4"+ - "\2\264\7\0\2\250\16\264\4\0\21\264\102\0\1\u0a08"+ - "\100\0\1\u0a09\134\0\1\u0a0a\141\0\1\u0a0b\75\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u09e6\13\264\4\0\21\264\60\0"+ - "\1\u0a0c\154\0\1\u0a0d\42\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0a0e\3\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\3\264\1\u0a0f\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u0a10"+ - "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\3\264\1\u074f\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u0a11\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\2\264\1\u0a12\13\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\6\264\1\u08e7\7\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\2\264\1\u092c\3\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\60\0\1\u0a13\57\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0a14\4\264"+ - "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0"+ - "\2\250\16\264\4\0\21\264\105\0\1\u0a15\113\0\1\u0a16"+ - "\177\0\1\u0a17\16\0\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u0a18\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\10\264\1\u06e9"+ - "\5\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\264\1\u0a19\2\264\7\0\2\250"+ - "\16\264\4\0\21\264\62\0\1\u0a1a\157\0\1\u0a1b\35\0"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\1\264\1\u0a1c\4\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u0a1d\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\11\264\1\u0a1e\4\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\1\264\1\u0a1f\2\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\7\264\1\u0a20\11\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u0a21\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u08da\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\106\0\1\u0a22\134\0\1\u085c\107\0\1\u0a23\125\0\1\u0a24"+ - "\111\0\1\u0a25\36\0\1\u0a26\130\0\1\u0a27\74\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u0a28\10\264\4\0\21\264\1\250"+ - "\12\0\1\264\1\u0a29\4\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\1\264\1\u070f\1\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\4\264\1\u0a2a\1\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\5\264\1\u087e\10\264\4\0\21\264\101\0"+ - "\1\u0a2b\36\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\1\0\1\u0a2c\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\77\0\1\u0a2d\103\0\1\u0a2e\171\0\1\u0a2f\42\0"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u0a30\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\2\264\1\u0a31\1\264\7\0\2\250\16\264\4\0\21\264"+ - "\60\0\1\u0a32\165\0\1\u0a33\31\0\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0a34\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\1\264\1\u0a35\2\264\7\0"+ - "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\1\0\1\u0a36\4\264\7\0\2\250"+ - "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0a37"+ - "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\1\u0a38\3\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\3\264\1\u0a39\2\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\102\0\1\u0a3a\117\0\1\u08f2\136\0\1\u0a3b"+ - "\155\0\1\u0a3c\122\0\1\u0a3d\117\0\1\u0a3e\75\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\2\264\1\u0824\13\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\3\264\1\u0a3f\12\264\4\0\21\264\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"+ - "\7\0\2\250\1\u0a40\15\264\4\0\21\264\102\0\1\u0a41"+ - "\154\0\1\u0a42\100\0\1\u0a43\162\0\1\u08f2\135\0\1\u08f2"+ - "\36\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\5\264\1\u0a44\10\264\4\0"+ - "\21\264\1\250\12\0\6\264\1\0\1\264\1\u067c\1\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0"+ - "\21\264\16\0\1\u0a45\5\0\1\u05e4\174\0\1\u0a46\56\0"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\5\264\1\u0a47\10\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\3\264\1\u0a48\2\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\123\0\1\u0a49\14\0\1\250\12\0\6\264\1\0\3\264"+ - "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264"+ - "\1\0\4\264\1\0\1\u0a4a\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\1\264\1\u0a4b\4\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\6\264\1\u0372\7\264"+ - "\4\0\21\264\42\0\1\u0a4c\174\0\1\u0a4d\101\0\1\u0a4e"+ - "\173\0\1\u0a4f\103\0\1\u0a50\76\0\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0a51\2\264"+ - "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250"+ - "\5\264\1\u090c\10\264\4\0\21\264\41\0\1\u0a52\142\0"+ - "\1\u0a53\177\0\1\u0a54\33\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\13\264\1\u0a55\5\264\106\0\1\u0a56\113\0\1\u0a57"+ - "\55\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264"+ - "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\1\u0a58\15\264\4\0\21\264"+ - "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0"+ - "\1\u01d8\2\264\1\u0824\3\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264"+ - "\60\0\1\u0a59\76\0\1\u0a5a\120\0\1\250\12\0\6\264"+ - "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0"+ - "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0680\7\0"+ - "\2\250\16\264\4\0\21\264\102\0\1\u0a5b\77\0\1\u0a5c"+ - "\177\0\1\u0a5d\134\0\1\u0a5e\135\0\1\u0a5f\42\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\3\264\1\u05a0\2\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\60\0"+ - "\1\u0a60\75\0\1\u09bf\4\0\1\u09c1\63\0\1\u09c2\72\0"+ - "\1\u0a61\75\0\1\250\12\0\6\264\1\0\3\264\2\0"+ - "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0"+ - "\4\264\2\0\1\u0a62\3\264\7\0\2\250\16\264\4\0"+ - "\21\264\106\0\1\u0a63\54\0\1\u0a64\114\0\1\250\12\0"+ - "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264"+ - "\1\u0a65\2\264\1\0\1\250\1\264\1\0\4\264\2\0"+ - "\4\264\7\0\2\250\16\264\4\0\21\264\42\0\1\u0a66"+ - "\135\0\1\u0a59\210\0\1\u08f2\41\0\1\u0a67\2\0\1\u0a68"+ - "\4\0\1\u0a69\63\0\1\u0a6a\134\0\1\u09c5\145\0\1\u085c"+ - "\107\0\1\u085c\154\0\1\u0a6b\142\0\1\u0a6c\35\0\1\250"+ - "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8"+ - "\1\264\1\u06b4\4\264\1\0\1\250\1\264\1\0\4\264"+ - "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\40\0"+ - "\1\u0a6d\160\0\1\u0a6e\56\0\1\250\12\0\6\264\1\0"+ - "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250"+ - "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264"+ - "\4\0\2\264\1\u065a\16\264\55\0\1\u0a6f\166\0\1\u0a70"+ - "\76\0\1\u0a71\171\0\1\u0a72\137\0\1\u0a73\104\0\1\u0a74"+ - "\172\0\1\u0a75\104\0\1\u0a76\173\0\1\u0a77\143\0\1\u0a78"+ - "\117\0\1\u0a79\117\0\1\u0a7a\140\0\1\u0a7b\134\0\1\u0a7c"+ - "\156\0\1\u0a7d\123\0\1\u0a7e\155\0\1\u0a7f\153\0\1\u0a80"+ - "\122\0\1\u0a81\161\0\1\u0a82\50\0\1\u0a67\227\0\1\u0a7a"+ - "\107\0\1\u0a83\104\0\1\u0a84\246\0\1\u0a85\63\0\1\u0a86"+ - "\124\0\1\u0a87\161\0\1\u0a88\117\0\1\u0a89\157\0\1\u0a8a"+ - "\153\0\1\u0a8b\122\0\1\u0a8c\140\0\1\u0a8d\117\0\1\u0a8e"+ - "\176\0\1\u085c\116\0\1\u0a8f\137\0\1\u0a7a\163\0\1\u08f2"+ - "\76\0\1\u0a90\154\0\1\u04ec\134\0\1\u0a91\123\0\1\u0a92"+ - "\177\0\1\u0a93\133\0\1\u0a94\123\0\1\u0a95\140\0\1\u0939"+ - "\116\0\1\u0a96\140\0\1\u0a97\203\0\1\u085c\126\0\1\u0972"+ - "\42\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[246048]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_2, 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\6\0\2\1\1\0\2\1\1\0\2\1\14\0\1\1"+ - "\5\0\2\1\1\11\4\1\1\11\5\1\1\11\2\1"+ - "\2\11\2\1\4\11\1\1\1\11\1\1\1\11\26\1"+ - "\1\11\2\1\2\11\1\1\5\11\1\1\1\11\2\1"+ - "\1\11\2\1\1\11\1\1\2\11\14\1\1\11\7\1"+ - "\1\11\1\1\1\11\11\1\2\11\2\1\2\11\2\1"+ - "\1\11\6\1\1\11\4\1\1\11\2\1\1\11\10\1"+ - "\1\11\57\1\1\11\5\1\2\11\4\1\2\11\1\1"+ - "\2\11\5\1\3\11\4\1\4\11\1\1\1\11\6\1"+ - "\4\11\1\1\3\11\2\1\1\11\2\1\1\11\1\1"+ - "\1\11\1\1\1\11\5\1\2\11\5\0\1\11\105\1"+ - "\1\11\2\0\1\1\1\0\1\1\1\11\1\0\76\1"+ - "\1\11\2\1\3\0\1\11\12\0\1\11\2\0\1\11"+ - "\16\0\1\1\1\11\2\1\1\0\1\11\52\1\1\11"+ - "\130\1\2\11\3\1\1\0\1\11\1\1\15\0\1\1"+ - "\1\0\1\11\5\0\1\1\4\11\3\1\1\11\1\0"+ - "\1\11\1\0\1\11\4\0\101\1\1\11\1\0\1\1"+ - "\1\0\3\1\1\0\72\1\44\0\1\11\1\1\1\0"+ - "\3\1\1\0\242\1\25\0\2\1\2\11\2\0\44\1"+ - "\1\0\1\11\47\1\1\0\1\11\3\0\1\1\3\0"+ - "\1\1\1\11\11\0\1\11\11\0\1\1\5\0\212\1"+ - "\1\0\17\1\23\0\2\1\2\0\24\1\1\0\30\1"+ - "\37\0\205\1\1\0\15\1\16\0\14\1\1\0\21\1"+ - "\24\0\172\1\1\0\13\1\12\0\4\1\1\0\10\1"+ - "\4\0\1\1\6\0\66\1\1\0\3\1\1\0\22\1"+ - "\1\0\45\1\1\0\13\1\6\0\1\1\1\0\3\1"+ - "\13\0\70\1\2\0\2\1\4\0\16\1\2\0\37\1"+ - "\1\0\12\1\1\11\4\0\1\1\1\11\1\1\2\11"+ - "\5\0\14\1\1\0\45\1\2\0\1\1\4\0\15\1"+ - "\1\0\35\1\1\11\11\1\10\0\21\1\1\0\31\1"+ - "\6\0\10\1\1\0\2\1\1\0\35\1\3\0\1\11"+ - "\2\0\15\1\2\0\25\1\6\0\11\1\1\0\34\1"+ - "\1\0\4\1\2\0\21\1\5\0\6\1\1\0\1\1"+ - "\1\0\27\1\2\0\3\1\2\0\16\1\4\0\6\1"+ - "\2\0\25\1\2\0\2\1\2\0\15\1\3\0\4\1"+ - "\2\0\22\1\5\0\1\1\3\0\10\1\1\0\1\1"+ - "\3\0\4\1\2\0\15\1\4\0\1\1\2\0\10\1"+ - "\1\0\1\1\3\0\3\1\2\0\7\1\6\0\5\1"+ - "\1\0\1\1\3\0\2\1\2\0\6\1\6\0\3\1"+ - "\5\0\2\1\2\0\2\1\1\0\3\1\5\0\2\1"+ - "\3\0\1\1\2\0\2\1\2\0\1\1\5\0\1\1"+ - "\3\0\1\1\2\0\1\1\11\0\1\1\2\0\1\1"+ - "\16\0\1\1\43\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[2711]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int INATTR_SINGLE_SCRIPT = 10; + public static final int JS_CHAR = 16; + public static final int JAVA_EXPRESSION = 21; + public static final int CSS_STRING = 27; + public static final int HIDDEN_COMMENT = 19; + public static final int JS_MLC = 17; + public static final int CSS_CHAR_LITERAL = 28; + public static final int JAVA_DOCCOMMENT = 20; + public static final int INTAG_SCRIPT = 8; + public static final int JS_TEMPLATE_LITERAL_EXPR = 31; + public static final int CSS_PROPERTY = 25; + public static final int CSS_C_STYLE_COMMENT = 29; + public static final int CSS = 24; + public static final int CSS_VALUE = 26; + public static final int JSP_DIRECTIVE = 23; + public static final int COMMENT = 1; + public static final int INATTR_DOUBLE_SCRIPT = 9; + public static final int PI = 2; + public static final int JAVASCRIPT = 14; + public static final int INTAG = 4; + public static final int INTAG_CHECK_TAG_NAME = 5; + public static final int INATTR_SINGLE_STYLE = 13; + public static final int DTD = 3; + public static final int JS_EOL_COMMENT = 18; + public static final int INATTR_DOUBLE_STYLE = 12; + public static final int INATTR_SINGLE = 7; + public static final int JS_TEMPLATE_LITERAL = 30; + public static final int YYINITIAL = 0; + public static final int INATTR_DOUBLE = 6; + public static final int JS_STRING = 15; + public static final int JAVA_MLC = 22; + public static final int INTAG_STYLE = 11; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\4\1\2\1\0\1\1\1\46\22\0\1\4\1\26\1\10" + + "\1\47\1\50\1\25\1\5\1\11\1\116\1\114\1\51\1\56\1\65" + "\1\36\1\57\1\12\1\31\1\32\2\45\1\137\1\130\1\136\1\34" + + "\2\30\1\70\1\6\1\3\1\7\1\21\1\67\1\74\1\33\1\52" + "\1\14\1\107\1\24\1\55\1\123\1\127\1\16\1\131\1\124\1\23" + + "\1\121\1\120\1\117\1\17\1\125\1\15\1\13\1\20\1\122\1\126" + "\1\135\1\54\1\22\1\27\1\113\1\37\1\113\1\66\1\35\1\73" + + "\1\61\1\53\1\77\1\101\1\60\1\44\1\103\1\100\1\102\1\134" + "\1\112\1\62\1\106\1\43\1\75\1\104\1\133\1\41\1\63\1\42" + + "\1\40\1\111\1\110\1\105\1\76\1\132\1\115\1\72\1\64\1\71" + "\uff81\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 = "\6\0\2\1\1\0\2\1\1\0\2\1\14\0\1\2" + "\5\0\2\2\1\3\1\4\1\5\1\6\1\1\1\7" + + "\5\1\1\10\2\1\1\11\1\12\2\13\1\5\1\14" + "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\2\21" + + "\2\23\3\21\2\23\2\21\1\23\6\21\1\23\1\1" + "\1\24\1\25\1\1\1\13\1\26\1\27\1\17\1\30" + + "\1\31\1\32\1\33\1\34\1\1\1\35\1\1\1\36" + "\1\37\2\14\1\2\1\14\1\40\1\41\1\14\2\2" + "\1\14\2\42\1\14\5\2\1\36\1\2\1\14\5\2" + + "\1\43\1\14\1\44\10\2\1\1\1\45\1\46\1\47" + "\1\1\1\50\1\51\1\52\1\1\1\53\6\1\1\54" + "\4\1\1\55\2\1\1\56\7\1\1\36\1\57\1\14" + + "\1\60\1\61\1\14\11\2\1\14\2\42\14\2\1\62" + "\21\2\1\1\1\63\1\1\2\2\1\64\1\65\1\66" + + "\1\67\4\2\1\70\1\71\1\70\1\72\1\73\1\70" + "\1\74\1\70\1\75\1\70\1\76\1\77\1\100\2\77" + + "\1\66\1\77\1\101\1\102\1\103\1\104\1\103\1\105" + "\2\2\1\103\1\42\1\2\1\103\1\106\1\107\1\110" + + "\1\111\1\112\1\113\1\114\1\115\2\1\1\116\1\117" + "\1\120\1\121\1\1\1\122\1\1\1\123\1\4\2\124" + + "\1\125\1\126\1\127\1\6\5\0\1\130\1\125\32\21" + "\2\23\2\21\1\23\44\21\1\131\1\132\2\0\1\125" + + "\1\0\1\14\1\133\1\0\1\134\1\36\1\2\1\14" + "\1\135\1\42\2\135\2\136\1\135\1\137\2\135\43\2" + + "\3\66\12\2\1\140\1\141\1\142\3\0\1\143\12\0" + "\1\144\2\0\1\145\16\0\1\60\1\146\1\60\1\61" + + "\1\0\1\65\1\61\1\147\1\150\1\36\46\2\1\151" + "\1\135\1\42\2\135\1\136\1\135\1\137\3\135\45\2" + + "\1\62\5\2\1\66\1\2\1\66\40\2\1\152\1\153" + "\3\2\1\0\1\154\1\155\15\0\1\156\1\0\1\42" + + "\5\0\1\42\1\112\1\157\1\160\1\161\1\162\2\124" + "\1\125\1\0\1\163\1\0\1\164\4\0\1\125\14\21" + + "\1\23\63\21\1\131\1\0\1\165\1\0\1\36\1\2" + "\1\136\1\0\1\42\3\137\30\2\1\166\16\2\1\74" + + "\16\2\44\0\1\64\1\60\1\0\2\60\1\61\1\0" + "\1\65\3\61\1\167\1\36\3\2\1\170\65\2\1\136" + + "\1\42\2\137\1\42\1\137\50\2\1\36\6\2\1\74" + "\33\2\1\170\21\2\25\0\2\124\1\171\1\172\2\0" + + "\1\173\31\21\1\23\2\21\1\23\6\21\1\0\1\174" + "\1\36\1\2\1\135\1\2\1\175\11\2\1\74\1\176" + + "\3\2\1\170\23\2\1\0\1\1\3\0\1\177\3\0" + "\1\200\1\201\11\0\1\202\11\0\1\203\5\0\3\60" + + "\1\61\1\36\70\2\1\170\3\2\1\170\1\2\1\170" + "\5\2\2\135\7\2\1\175\11\2\1\170\3\2\1\74" + + "\3\2\1\170\6\2\1\36\36\2\1\0\16\2\1\66" + "\23\0\2\124\2\0\12\21\1\23\11\21\1\0\1\36" + + "\4\2\1\66\1\2\1\66\20\2\37\0\3\60\1\61" + "\1\36\3\2\1\170\14\2\1\170\47\2\1\170\24\2" + + "\2\66\26\2\1\36\32\2\1\0\15\2\16\0\1\124" + "\1\204\12\21\1\0\1\36\1\2\1\205\16\2\24\0" + + "\2\60\1\61\1\36\1\2\1\170\31\2\1\170\27\2" + "\1\170\2\2\1\170\24\2\1\205\2\2\1\170\21\2" + + "\1\36\13\2\1\170\2\2\1\170\6\2\1\0\13\2" + "\12\0\1\206\3\21\1\0\10\2\4\0\1\202\6\0" + + "\1\60\33\2\1\170\21\2\1\170\7\2\1\0\3\2" + "\1\0\22\2\1\0\15\2\1\36\27\2\1\0\13\2" + "\6\0\1\21\1\0\3\2\13\0\1\60\16\2\1\170" + + "\50\2\2\0\2\2\4\0\16\2\2\0\25\2\1\170" + "\11\2\1\0\12\2\1\207\4\0\1\21\1\210\1\2" + + "\1\211\1\212\5\0\14\2\1\0\10\2\1\170\34\2" + "\2\0\1\2\4\0\5\2\1\170\7\2\1\0\2\2" + + "\1\170\11\2\1\170\20\2\1\170\11\2\10\0\16\2" + "\1\170\2\2\1\0\31\2\6\0\10\2\1\0\2\2" + + "\1\0\35\2\3\0\1\62\2\0\10\2\1\170\4\2" + "\2\0\10\2\1\170\14\2\6\0\7\2\1\170\1\2" + + "\1\0\1\170\4\2\1\170\17\2\1\170\2\2\1\170" + "\3\2\1\0\1\170\3\2\2\0\1\2\1\170\17\2" + "\5\0\6\2\1\0\1\2\1\0\3\2\1\170\3\2" + + "\1\170\17\2\2\0\3\2\2\0\16\2\4\0\2\2" + "\1\170\3\2\2\0\25\2\2\0\2\2\2\0\1\170" + "\11\2\1\170\2\2\3\0\4\2\2\0\22\2\5\0" + + "\1\2\3\0\10\2\1\0\1\2\3\0\4\2\2\0" + "\15\2\4\0\1\2\2\0\10\2\1\0\1\2\3\0" + "\3\2\2\0\7\2\6\0\5\2\1\0\1\170\3\0" + + "\2\2\2\0\2\2\1\170\3\2\6\0\3\2\5\0" + "\2\2\2\0\2\2\1\0\1\170\2\2\5\0\2\2" + "\3\0\1\2\2\0\2\2\2\0\1\2\5\0\1\2" + + "\3\0\1\2\2\0\1\2\11\0\1\2\2\0\1\2" + "\16\0\1\170\43\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[2711]; + 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\140\0\300\0\u0120\0\u0180\0\u01e0\0\u0240\0\u02a0" + + "\0\u0300\0\u0360\0\u03c0\0\u0420\0\u0480\0\u04e0\0\u0540\0\u05a0" + + "\0\u0600\0\u0660\0\u06c0\0\u0720\0\u0780\0\u07e0\0\u0840\0\u08a0" + + "\0\u0900\0\u0960\0\u09c0\0\u0a20\0\u0a80\0\u0ae0\0\u0b40\0\u0ba0" + + "\0\u0c00\0\u0c60\0\u0cc0\0\u0d20\0\u0d80\0\u0de0\0\u0e40\0\u0cc0" + + "\0\u0ea0\0\u0f00\0\u0f60\0\u0fc0\0\u1020\0\u0cc0\0\u1080\0\u10e0" + + "\0\u0cc0\0\u0cc0\0\u1140\0\u11a0\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0" + + "\0\u1200\0\u0cc0\0\u1260\0\u0cc0\0\u12c0\0\u1320\0\u1380\0\u13e0" + + "\0\u1440\0\u14a0\0\u1500\0\u1560\0\u15c0\0\u1620\0\u1680\0\u16e0" + + "\0\u1740\0\u17a0\0\u1800\0\u1860\0\u18c0\0\u1920\0\u1980\0\u1260" + + "\0\u19e0\0\u1a40\0\u0cc0\0\u1aa0\0\u1b00\0\u0cc0\0\u0cc0\0\u1b60" + + "\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0\0\u1bc0\0\u0cc0\0\u1c20" + + "\0\u1c80\0\u0cc0\0\u1ce0\0\u1d40\0\u0cc0\0\u1da0\0\u0cc0\0\u0cc0" + + "\0\u1e00\0\u1e60\0\u1ec0\0\u1f20\0\u1f80\0\u1fe0\0\u2040\0\u20a0" + + "\0\u2100\0\u2160\0\u21c0\0\u2220\0\u0cc0\0\u2280\0\u22e0\0\u2340" + + "\0\u23a0\0\u2400\0\u2460\0\u24c0\0\u0cc0\0\u2520\0\u0cc0\0\u2580" + + "\0\u25e0\0\u2640\0\u26a0\0\u2700\0\u2760\0\u27c0\0\u2820\0\u2880" + + "\0\u0cc0\0\u0cc0\0\u28e0\0\u2940\0\u0cc0\0\u0cc0\0\u28e0\0\u29a0" + + "\0\u0cc0\0\u2a00\0\u2a60\0\u2ac0\0\u2b20\0\u2b80\0\u2be0\0\u0cc0" + + "\0\u2c40\0\u2ca0\0\u2d00\0\u2d60\0\u0cc0\0\u2dc0\0\u2e20\0\u0cc0" + + "\0\u2e80\0\u2ee0\0\u2f40\0\u2fa0\0\u3000\0\u3060\0\u30c0\0\u3120" + + "\0\u0cc0\0\u3180\0\u31e0\0\u3240\0\u32a0\0\u3300\0\u3360\0\u33c0" + + "\0\u3420\0\u3480\0\u34e0\0\u3540\0\u35a0\0\u3600\0\u3660\0\u36c0" + + "\0\u3720\0\u3780\0\u37e0\0\u3840\0\u38a0\0\u3900\0\u3960\0\u39c0" + + "\0\u3a20\0\u3a80\0\u3ae0\0\u3b40\0\u3ba0\0\u3c00\0\u3c60\0\u3cc0" + + "\0\u3d20\0\u3d80\0\u3de0\0\u3e40\0\u3ea0\0\u3f00\0\u3f60\0\u3fc0" + + "\0\u4020\0\u4080\0\u40e0\0\u4140\0\u41a0\0\u4200\0\u4260\0\u42c0" + + "\0\u0cc0\0\u4320\0\u4380\0\u43e0\0\u4440\0\u44a0\0\u0cc0\0\u0cc0" + + "\0\u4500\0\u4560\0\u45c0\0\u4620\0\u0cc0\0\u0cc0\0\u4680\0\u0cc0" + + "\0\u0cc0\0\u46e0\0\u4740\0\u47a0\0\u4800\0\u4860\0\u0cc0\0\u0cc0" + + "\0\u0cc0\0\u4680\0\u46e0\0\u48c0\0\u4920\0\u0cc0\0\u0cc0\0\u0cc0" + + "\0\u0cc0\0\u4680\0\u0cc0\0\u4980\0\u49e0\0\u4a40\0\u4aa0\0\u4b00" + + "\0\u4b60\0\u0cc0\0\u0cc0\0\u0cc0\0\u0cc0\0\u4bc0\0\u0cc0\0\u0cc0" + + "\0\u0cc0\0\u4c20\0\u4c80\0\u0cc0\0\u28e0\0\u4ce0\0\u0cc0\0\u4d40" + + "\0\u0cc0\0\u4da0\0\u0cc0\0\u4e00\0\u4e60\0\u4ec0\0\u4f20\0\u4f80" + + "\0\u0cc0\0\u0cc0\0\u4fe0\0\u5040\0\u50a0\0\u5100\0\u5160\0\u0cc0" + + "\0\u51c0\0\u5220\0\u5280\0\u52e0\0\u5340\0\u53a0\0\u5400\0\u5460" + + "\0\u54c0\0\u5520\0\u5580\0\u55e0\0\u5640\0\u56a0\0\u5700\0\u5760" + + "\0\u57c0\0\u5820\0\u5880\0\u58e0\0\u5940\0\u59a0\0\u5a00\0\u5a60" + + "\0\u5ac0\0\u5b20\0\u5b80\0\u5be0\0\u5c40\0\u5ca0\0\u5d00\0\u5d60" + + "\0\u5dc0\0\u5e20\0\u5e80\0\u5ee0\0\u5f40\0\u5fa0\0\u6000\0\u6060" + + "\0\u60c0\0\u6120\0\u6180\0\u61e0\0\u6240\0\u62a0\0\u6300\0\u6360" + + "\0\u63c0\0\u6420\0\u6480\0\u64e0\0\u6540\0\u65a0\0\u6600\0\u6660" + + "\0\u66c0\0\u6720\0\u6780\0\u67e0\0\u6840\0\u68a0\0\u6900\0\u6960" + + "\0\u69c0\0\u6a20\0\u6a80\0\u6ae0\0\u6b40\0\u0cc0\0\u1da0\0\u6ba0" + + "\0\u6c00\0\u6c60\0\u6c60\0\u0cc0\0\u6cc0\0\u6d20\0\u6d80\0\u6de0" + + "\0\u6e40\0\u6ea0\0\u6ea0\0\u6f00\0\u6f60\0\u6ea0\0\u6fc0\0\u7020" + + "\0\u7080\0\u70e0\0\u7140\0\u71a0\0\u7200\0\u7260\0\u72c0\0\u7320" + + "\0\u7380\0\u73e0\0\u7440\0\u74a0\0\u7500\0\u7560\0\u75c0\0\u7620" + + "\0\u7680\0\u76e0\0\u7740\0\u77a0\0\u7800\0\u7860\0\u78c0\0\u7920" + + "\0\u7980\0\u79e0\0\u7a40\0\u7aa0\0\u7b00\0\u7b60\0\u7bc0\0\u7c20" + + "\0\u7c80\0\u7ce0\0\u7d40\0\u7da0\0\u7e00\0\u7e60\0\u7ec0\0\u7f20" + + "\0\u1e60\0\u7f80\0\u7fe0\0\u8040\0\u80a0\0\u8100\0\u8160\0\u81c0" + + "\0\u8220\0\u8280\0\u82e0\0\u0cc0\0\u8340\0\u83a0\0\u8400\0\u8460" + + "\0\u84c0\0\u0cc0\0\u8520\0\u8580\0\u85e0\0\u8640\0\u86a0\0\u8700" + + "\0\u8760\0\u87c0\0\u8820\0\u8880\0\u0cc0\0\u88e0\0\u8940\0\u0cc0" + + "\0\u89a0\0\u8a00\0\u8a60\0\u8ac0\0\u8b20\0\u8b80\0\u8be0\0\u8c40" + + "\0\u8ca0\0\u8d00\0\u8d60\0\u8dc0\0\u8e20\0\u8e80\0\u8ee0\0\u0cc0" + + "\0\u8f40\0\u8fa0\0\u9000\0\u0cc0\0\u9060\0\u90c0\0\u9120\0\u9180" + + "\0\u91e0\0\u9240\0\u92a0\0\u9300\0\u9360\0\u93c0\0\u9420\0\u9480" + + "\0\u94e0\0\u9540\0\u95a0\0\u9600\0\u9660\0\u96c0\0\u9720\0\u9780" + + "\0\u97e0\0\u9840\0\u98a0\0\u9900\0\u9960\0\u99c0\0\u9a20\0\u9a80" + + "\0\u9ae0\0\u9b40\0\u9ba0\0\u9c00\0\u9c60\0\u9cc0\0\u9d20\0\u9d80" + + "\0\u9de0\0\u9e40\0\u9ea0\0\u9f00\0\u9f60\0\u9fc0\0\u0cc0\0\ua020" + + "\0\ua020\0\ua080\0\ua0e0\0\ua020\0\ua140\0\ua1a0\0\ua200\0\ua260" + + "\0\ua2c0\0\ua320\0\ua380\0\ua3e0\0\ua440\0\ua4a0\0\ua500\0\ua560" + + "\0\ua5c0\0\ua620\0\ua680\0\ua6e0\0\ua740\0\ua7a0\0\ua800\0\ua860" + + "\0\ua8c0\0\ua920\0\ua980\0\ua9e0\0\uaa40\0\uaaa0\0\uab00\0\uab60" + + "\0\uabc0\0\uac20\0\uac80\0\uace0\0\uad40\0\uada0\0\uae00\0\uae60" + + "\0\uaec0\0\uaf20\0\uaf80\0\uafe0\0\ub040\0\ub0a0\0\ub100\0\ub160" + + "\0\ub1c0\0\ub220\0\ub280\0\ub2e0\0\ub340\0\ub3a0\0\u3540\0\ub400" + + "\0\ub460\0\ub4c0\0\ub520\0\ub580\0\ub5e0\0\ub640\0\ub6a0\0\ub700" + + "\0\ub760\0\ub7c0\0\ub820\0\ub880\0\ub8e0\0\ub940\0\ub9a0\0\uba00" + + "\0\uba60\0\ubac0\0\ubb20\0\ubb80\0\ubbe0\0\ubc40\0\ubca0\0\ubd00" + + "\0\ubd60\0\ubdc0\0\ube20\0\ube80\0\ubee0\0\ubf40\0\ubfa0\0\u0cc0" + + "\0\u0cc0\0\uc000\0\uc060\0\uc0c0\0\uc120\0\u0cc0\0\uc180\0\uc1e0" + + "\0\uc240\0\uc2a0\0\uc300\0\uc360\0\uc3c0\0\uc420\0\uc480\0\uc4e0" + + "\0\uc540\0\uc5a0\0\uc600\0\uc660\0\uc6c0\0\uc720\0\u0cc0\0\uc780" + + "\0\uc7e0\0\uc840\0\uc8a0\0\uc900\0\u4b60\0\u0cc0\0\u0cc0\0\u0cc0" + + "\0\u0cc0\0\u4e00\0\uc960\0\uc9c0\0\u0cc0\0\uca20\0\u0cc0\0\uca80" + + "\0\u0cc0\0\ucae0\0\ucb40\0\ucba0\0\ucc00\0\u1140\0\ucc60\0\uccc0" + + "\0\ucd20\0\ucd80\0\ucde0\0\uce40\0\ucea0\0\ucf00\0\ucf60\0\ucfc0" + + "\0\ud020\0\ud080\0\ud0e0\0\ud140\0\ud1a0\0\ud200\0\ud260\0\ud2c0" + + "\0\ud320\0\ud380\0\ud3e0\0\ud440\0\ud4a0\0\ud500\0\ud560\0\ud5c0" + + "\0\ud620\0\ud680\0\ud6e0\0\ud740\0\ud7a0\0\ud800\0\ud860\0\ud8c0" + + "\0\ud920\0\ud980\0\ud9e0\0\uda40\0\udaa0\0\udb00\0\udb60\0\udbc0" + + "\0\udc20\0\udc80\0\udce0\0\u5c40\0\udd40\0\udda0\0\ude00\0\ude60" + + "\0\udec0\0\udf20\0\udf80\0\u1620\0\udfe0\0\ue040\0\ue0a0\0\ue100" + + "\0\ue160\0\ue1c0\0\ue220\0\ue280\0\ue2e0\0\ue340\0\u0cc0\0\ue3a0" + + "\0\ue400\0\ue460\0\ue4c0\0\ue520\0\ue580\0\ue5e0\0\ue640\0\u6ea0" + + "\0\ue6a0\0\ue700\0\ue760\0\ue7c0\0\ue820\0\ue880\0\ue8e0\0\ue940" + + "\0\ue9a0\0\uea00\0\uea60\0\ueac0\0\ueb20\0\ueb80\0\uebe0\0\uec40" + + "\0\ueca0\0\ued00\0\ued60\0\uedc0\0\uee20\0\uee80\0\ueee0\0\uef40" + + "\0\uefa0\0\uf000\0\u1e60\0\uf060\0\uf0c0\0\uf120\0\uf180\0\uf1e0" + + "\0\uf240\0\uf2a0\0\uf300\0\uf360\0\uf3c0\0\uf420\0\uf480\0\uf4e0" + + "\0\uf540\0\uf5a0\0\uf600\0\uf660\0\uf6c0\0\uf720\0\uf780\0\uf7e0" + + "\0\uf840\0\uf8a0\0\uf900\0\uf960\0\uf9c0\0\ufa20\0\ufa80\0\ufae0" + + "\0\ufb40\0\ufba0\0\ufc00\0\ufc60\0\ufcc0\0\ufd20\0\ufd80\0\ufde0" + + "\0\ufe40\0\ufea0\0\uff00\0\uff60\0\uffc0\1\40\1\200\1\340" + + "\1\u0140\1\u01a0\1\u0200\1\u0260\1\u02c0\1\u0320\1\u0380\1\u03e0" + + "\1\u0440\1\u04a0\1\u0500\1\u0560\1\u05c0\1\u0620\1\u0680\1\u06e0" + + "\1\u0740\1\u07a0\1\u0800\1\u0860\0\u0cc0\1\u08c0\1\u0920\1\u0980" + + "\1\u09e0\1\u0a40\1\u0aa0\1\u0b00\1\u0b60\1\u0bc0\1\u0c20\0\ue460" + + "\1\u0c80\1\u0ce0\1\u0d40\1\u0da0\0\u3540\1\u0e00\1\u0e60\1\u0ec0" + + "\1\u0f20\1\u0f80\1\u0fe0\1\u1040\1\u10a0\1\u1100\1\u1160\1\u11c0" + + "\1\u1220\1\u1280\1\u12e0\1\u1340\1\u13a0\1\u1400\1\u1460\1\u14c0" + + "\1\u1520\1\u1580\1\u15e0\1\u1640\1\u16a0\1\u1700\1\u1760\1\u17c0" + + "\1\u1820\1\u1880\1\u18e0\1\u1940\1\u19a0\1\u1a00\1\u1a60\1\u1ac0" + + "\1\u1b20\1\u1b80\1\u1be0\1\u1c40\1\u1ca0\1\u1d00\1\u1d60\1\u1dc0" + + "\1\u1e20\1\u1e80\1\u1ee0\1\u1f40\1\u1fa0\1\u2000\1\u2060\1\u20c0" + + "\1\u2120\1\u2180\1\u21e0\1\u2240\0\ua020\1\u22a0\1\u2300\1\u2360" + + "\1\u23c0\1\u2420\1\u2480\1\u24e0\1\u2540\1\u25a0\1\u2600\1\u2660" + + "\1\u26c0\1\u2720\1\u2780\1\u27e0\1\u2840\1\u28a0\1\u2900\1\u2960" + + "\1\u29c0\1\u2a20\1\u2a80\1\u2ae0\1\u2b40\1\u2ba0\1\u2c00\1\u2c60" + + "\1\u2cc0\1\u2d20\1\u2d80\1\u2de0\1\u2e40\1\u2ea0\1\u2f00\1\u2f60" + + "\1\u2fc0\1\u3020\1\u3080\1\u30e0\1\u3140\1\u31a0\1\u3200\1\u3260" + + "\1\u32c0\1\u3320\1\u3380\1\u33e0\1\u3440\1\u34a0\1\u3500\1\u3560" + + "\1\u35c0\1\u3620\1\u3680\1\u36e0\1\u3740\1\u37a0\1\u3800\1\u3860" + + "\1\u38c0\1\u3920\1\u3980\1\u39e0\1\u3a40\1\u3aa0\1\u3b00\1\u3b60" + + "\1\u3bc0\1\u3c20\1\u3c80\1\u3ce0\1\u3d40\1\u3da0\1\u3e00\1\u3e60" + + "\1\u3ec0\1\u3f20\1\u3f80\1\u3fe0\1\u4040\1\u40a0\1\u4100\1\u4160" + + "\1\u41c0\1\u4220\1\u4280\1\u42e0\1\u4340\1\u43a0\1\u4400\1\u4460" + + "\1\u44c0\1\u4520\1\u4580\1\u45e0\1\u4640\1\u46a0\1\u4700\1\u4760" + + "\1\u47c0\1\u4820\1\u4880\1\u48e0\1\u4940\1\u49a0\1\u4a00\1\u4a60" + + "\1\u4ac0\1\u4b20\1\u4b80\1\u4be0\1\u4c40\1\u4ca0\1\u4d00\1\u4d60" + + "\1\u4dc0\1\u4e20\1\u4e80\1\u4ee0\0\u0cc0\0\u0cc0\1\u4f40\1\u4fa0" + + "\1\u5000\1\u5060\1\u50c0\1\u5120\1\u5180\1\u51e0\1\u5240\1\u52a0" + + "\1\u5300\1\u5360\1\u53c0\1\u5420\1\u5480\1\u54e0\1\u5540\1\u55a0" + + "\1\u5600\1\u5660\1\u56c0\1\u5720\0\u5d60\1\u5780\1\u57e0\1\u5840" + + "\1\u58a0\1\u5900\1\u5960\1\u59c0\1\u5a20\0\ud620\1\u5a80\1\u5ae0" + + "\1\u5b40\1\u5ba0\1\u5c00\1\u5c60\1\u5cc0\0\u0cc0\1\u5d20\1\u5d80" + + "\1\u5de0\1\u5e40\0\u1e60\1\u5ea0\1\u5f00\1\u5f60\1\u5fc0\1\u6020" + + "\1\u6080\1\u60e0\1\u6140\1\u61a0\0\u1e60\0\u1e60\1\u6200\1\u6260" + + "\1\u62c0\0\u1e60\1\u6320\1\u6380\1\u63e0\1\u6440\1\u64a0\1\u6500" + + "\1\u6560\1\u65c0\1\u6620\1\u6680\1\u66e0\1\u6740\1\u67a0\1\u6800" + + "\1\u6860\1\u68c0\1\u6920\1\u6980\1\u69e0\0\u83a0\0\u0cc0\1\u6a40" + + "\1\u6aa0\1\u6b00\1\u6b60\1\u6bc0\1\u6c20\1\u6c80\1\u6ce0\0\u0cc0" + + "\1\u6d40\1\u6da0\1\u6e00\1\u6e60\1\u6ec0\1\u6f20\1\u6f80\1\u6fe0" + + "\1\u7040\0\u0cc0\1\u70a0\1\u7100\1\u7160\1\u71c0\1\u7220\1\u7280" + + "\1\u72e0\1\u7340\1\u73a0\1\u7400\1\u7460\1\u74c0\1\u7520\1\u7580" + + "\1\u75e0\1\u7640\1\u76a0\1\u7700\1\u7760\1\u77c0\1\u7820\1\u7880" + + "\1\u78e0\1\u7940\1\u79a0\1\u7a00\1\u7a60\1\u7ac0\1\u7b20\1\u7b80" + + "\1\u7be0\1\u7c40\1\u7ca0\1\u7d00\1\u7d60\1\u7dc0\1\u7e20\1\u7e80" + + "\1\u7ee0\1\u7f40\1\u7fa0\1\u8000\1\u8060\1\u80c0\1\u8120\1\u8180" + + "\1\u81e0\1\u8240\1\u82a0\1\u8300\1\u8360\1\u83c0\1\u8420\1\u8480" + + "\1\u84e0\1\u8540\1\u85a0\1\u8600\1\u8660\1\u86c0\1\u8720\1\u8780" + + "\1\u87e0\1\u8840\1\u88a0\1\u8900\1\u8960\1\u89c0\1\u8a20\1\u8a80" + + "\1\u8ae0\1\u8b40\1\u8ba0\1\u8c00\1\u8c60\1\u8cc0\1\u8d20\1\u8d80" + + "\1\u8de0\1\u8e40\1\u8ea0\1\u8f00\1\u8f60\1\u8fc0\1\u9020\1\u9080" + + "\1\u90e0\1\u9140\1\u2300\1\u91a0\1\u9200\1\u9260\1\u92c0\1\u9320" + + "\1\u9380\1\u93e0\1\u9440\0\u3540\1\u94a0\1\u9500\1\u9560\1\u95c0" + + "\1\u9620\1\u9680\1\u96e0\1\u9740\1\u97a0\1\u9800\1\u9860\1\u98c0" + + "\1\u9920\0\u3540\1\u9980\1\u99e0\1\u9a40\1\u9aa0\1\u9b00\1\u9b60" + + "\1\u9bc0\1\u9c20\1\u9c80\1\u9ce0\1\u9d40\1\u9da0\1\u9e00\1\u9e60" + + "\1\u9ec0\1\u9f20\1\u9f80\1\u9fe0\1\ua040\1\ua0a0\1\ua100\1\ua160" + + "\1\ua1c0\1\ua220\1\ua280\1\ua2e0\1\ua340\1\ua3a0\1\ua400\1\ua460" + + "\1\ua4c0\1\ua520\1\ua580\1\ua5e0\1\ua640\1\ua6a0\1\ua700\1\ua760" + + "\1\ua7c0\1\ua820\1\ua880\1\ua8e0\1\ua940\1\ua9a0\1\uaa00\1\uaa60" + + "\1\uaac0\1\uab20\1\uab80\1\uabe0\1\uac40\1\uaca0\1\uad00\1\uad60" + + "\1\uadc0\1\uae20\0\u4380\1\uae80\1\uaee0\1\uaf40\1\uafa0\1\ub000" + + "\1\ub060\1\ub0c0\1\ub120\1\ub180\1\ub1e0\1\ub240\1\ub2a0\1\ub300" + + "\1\ub360\1\ub3c0\1\ub420\1\ub480\1\ub4e0\1\ub540\1\ub5a0\1\ub600" + + "\1\ub660\1\u5000\1\ub6c0\1\ub720\1\ub780\1\ub7e0\1\ub840\1\ub8a0" + + "\1\ub900\1\ub960\1\ub9c0\1\uba20\1\uba80\1\uba80\1\ubae0\1\ubb40" + + "\1\ubba0\1\ubc00\1\ubc60\1\ubcc0\1\ubd20\1\ubd80\1\ubde0\1\ube40" + + "\1\ubea0\1\ubf00\1\ubf60\1\ubfc0\0\ue9a0\1\uc020\1\uc080\1\uc0e0" + + "\1\uc140\1\uc1a0\1\uc200\1\uc260\1\uc2c0\1\uc320\1\uc380\1\uc3e0" + + "\1\uc440\1\uc4a0\1\uc500\1\uc560\1\uc5c0\1\uc620\1\uc680\1\uc6e0" + + "\1\uc740\1\u6b60\1\uc7a0\1\uc800\1\u6ce0\1\uc860\1\uc8c0\1\uc920" + + "\1\uc980\1\uc9e0\1\uca40\1\ucaa0\1\ucb00\1\ucb60\1\ucbc0\1\ucc20" + + "\1\ucc80\1\ucce0\1\ucd40\1\ucda0\1\uce00\1\uce60\1\ucec0\1\u7400" + + "\1\ucf20\1\ucf80\1\ucfe0\1\ud040\1\ud0a0\1\ud100\1\ud160\1\ud1c0" + + "\1\ud220\1\ud280\1\ud2e0\1\ud340\1\ud3a0\1\ud400\1\ud460\1\ud4c0" + + "\1\ud520\1\ud580\1\ud5e0\1\ud640\1\ud6a0\1\ud700\1\ud760\1\ud7c0" + + "\1\ud820\1\ud880\1\ud8e0\1\ud940\1\ud9a0\1\uda00\1\uda60\1\udac0" + + "\1\udb20\1\udb80\1\udbe0\1\udc40\1\udca0\1\udd00\1\udd60\1\uddc0" + + "\1\ude20\1\ude80\1\udee0\1\udf40\1\udfa0\1\ue000\1\ue060\1\ue0c0" + + "\1\ue120\1\ue180\1\ue1e0\1\ue240\1\ue2a0\1\ue300\1\ue360\1\ue3c0" + + "\1\ue420\1\ue480\1\ue4e0\1\ue540\1\ue5a0\1\ue600\1\ue660\1\ue6c0" + + "\1\ue720\1\ue780\1\ue7e0\1\ue840\1\ue8a0\1\ue900\1\ue960\1\ue9c0" + + "\1\uea20\1\uea80\1\ueae0\1\ueb40\1\ueba0\1\uec00\1\uec60\1\uecc0" + + "\1\ued20\1\ued80\1\uede0\1\uee40\1\ueea0\1\uef00\1\uef60\1\uefc0" + + "\1\u2780\1\uf020\1\uf080\1\uf0e0\1\uf140\1\uf1a0\1\uf200\1\uf260" + + "\1\uf2c0\1\uf320\1\uf380\1\uf3e0\1\uf440\1\uf4a0\1\uf500\1\uf560" + + "\1\uf5c0\1\uf620\1\uf680\1\uf6e0\1\uf740\1\uf7a0\1\uf800\1\uf860" + + "\1\uf8c0\1\uf920\1\uf980\1\uf9e0\1\ufa40\1\ufaa0\1\ufb00\1\ufb60" + + "\1\ufbc0\1\ufc20\1\ufc80\1\ufce0\1\ufd40\1\ufda0\1\ufe00\1\ufe60" + + "\1\ufec0\1\uff20\1\uff80\1\uffe0\2\100\2\240\2\u0100\2\u0160" + + "\2\u01c0\2\u0220\2\u0280\2\u02e0\2\u0340\2\u03a0\2\u0400\2\u0460" + + "\2\u04c0\2\u0520\2\u0580\2\u05e0\2\u0640\2\u06a0\2\u0700\2\u0760" + + "\2\u07c0\2\u0820\2\u0880\2\u08e0\2\u0940\2\u09a0\2\u0a00\2\u0a60" + + "\2\u0ac0\2\u0b20\2\u0b80\2\u0be0\2\u0c40\2\u0ca0\2\u0d00\2\u0d60" + + "\0\u4ec0\2\u0dc0\2\u0e20\2\u0e80\2\u0ee0\2\u0f40\2\u0fa0\2\u1000" + + "\2\u1060\2\u10c0\2\u1120\2\u1180\2\u11e0\2\u1240\0\u1e60\2\u12a0" + + "\2\u1300\2\u1360\2\u13c0\2\u1420\2\u1480\2\u14e0\2\u1540\2\u15a0" + + "\2\u1600\2\u1660\2\u16c0\2\u1720\2\u1780\2\u17e0\2\u1840\2\u18a0" + + "\2\u1900\2\u1960\2\u19c0\2\u1a20\2\u1a80\2\u1ae0\2\u1b40\2\u1ba0" + + "\2\u1c00\2\u1c60\2\u1cc0\2\u1d20\2\u1d80\2\u1de0\2\u1e40\2\u1ea0" + + "\2\u1f00\2\u1f60\2\u1fc0\2\u2020\2\u2080\2\u20e0\2\u2140\2\u21a0" + + "\2\u2200\2\u2260\2\u22c0\2\u2320\2\u2380\2\u23e0\2\u2440\2\u24a0" + + "\2\u2500\2\u2560\2\u25c0\2\u2620\2\u2680\2\u26e0\2\u2740\2\u27a0" + + "\2\u2800\2\u2860\2\u28c0\2\u2920\2\u2980\2\u29e0\2\u2a40\2\u2aa0" + + "\2\u2b00\2\u2b60\2\u2bc0\2\u2c20\2\u2c80\2\u2ce0\2\u2d40\2\u2da0" + + "\2\u2e00\2\u2e60\2\u2ec0\2\u2f20\2\u2f80\2\u2fe0\2\u3040\2\u30a0" + + "\2\u3100\2\u3160\2\u31c0\2\u3220\2\u3280\2\u32e0\2\u3340\2\u33a0" + + "\2\u3400\2\u3460\2\u34c0\2\u3520\2\u3580\2\u35e0\2\u3640\2\u36a0" + + "\2\u3700\2\u3760\2\u37c0\2\u3820\2\u3880\2\u38e0\2\u3940\2\u39a0" + + "\2\u3a00\2\u3a60\2\u3ac0\2\u3b20\2\u3b80\2\u3be0\2\u3c40\2\u3ca0" + + "\0\u3540\2\u3d00\2\u3d60\2\u3dc0\2\u3e20\2\u3e80\2\u3ee0\2\u3f40" + + "\2\u3fa0\2\u4000\2\u4060\2\u40c0\2\u4120\2\u4180\2\u41e0\2\u4240" + + "\2\u42a0\2\u4300\2\u4360\2\u43c0\2\u4420\2\u4480\2\u44e0\2\u4540" + + "\2\u45a0\2\u4600\2\u4660\2\u46c0\2\u4720\2\u4780\2\u47e0\2\u4840" + + "\2\u48a0\2\u4900\2\u4960\2\u49c0\2\u4a20\2\u4a80\2\u4ae0\2\u4b40" + + "\2\u4ba0\2\u4c00\2\u4c60\2\u4cc0\2\u4d20\2\u4d80\2\u4de0\2\u4e40" + + "\2\u4ea0\2\u4f00\2\u4f60\2\u4fc0\2\u5020\2\u5080\2\u50e0\2\u5140" + + "\2\u51a0\2\u5200\2\u5260\2\u52c0\2\u5320\2\u5380\2\u53e0\2\u5440" + + "\2\u54a0\0\u4ec0\2\u5500\2\u5560\2\u55c0\2\u5620\2\u5680\2\u56e0" + + "\2\u5740\2\u57a0\2\u5800\2\u5860\2\u58c0\2\u5920\2\u5980\2\u59e0" + + "\2\u5a40\2\u5aa0\2\u5b00\2\u5b60\2\u5bc0\2\u5c20\2\u5c80\2\u5ce0" + + "\2\u5d40\2\u5da0\2\u5e00\2\u5e60\2\u5ec0\2\u5f20\2\u5f80\2\u5fe0" + + "\2\u6040\2\u60a0\2\u6100\2\u6160\2\u61c0\2\u6220\2\u6280\2\u62e0" + + "\2\u6340\2\u63a0\2\u6400\2\u6460\2\u64c0\2\u6520\2\u6580\2\u65e0" + + "\2\u6640\2\u66a0\2\u6700\2\u6760\2\u67c0\2\u6820\2\u6880\2\u68e0" + + "\2\u6940\2\u69a0\2\u6a00\2\u6a60\2\u6ac0\2\u6b20\2\u6b80\2\u6be0" + + "\2\u6c40\2\u6ca0\2\u6d00\2\u6d60\2\u6dc0\2\u6e20\2\u6e80\2\u6ee0" + + "\2\u6f40\2\u6fa0\2\u7000\2\u7060\2\u70c0\2\u7120\2\u7180\2\u71e0" + + "\2\u7240\2\u72a0\2\u7300\2\u7360\2\u73c0\2\u7420\2\u7480\2\u74e0" + + "\2\u7540\2\u75a0\2\u7600\2\u7660\2\u76c0\2\u7720\2\u7780\2\u77e0" + + "\2\u7840\2\u78a0\2\u7900\2\u7960\2\u79c0\2\u7a20\2\u7a80\2\u7ae0" + + "\2\u7b40\2\u7ba0\2\u7c00\2\u7c60\2\u7cc0\2\u7d20\2\u7d80\2\u7de0" + + "\2\u7e40\2\u7ea0\2\u7f00\2\u7f60\2\u7fc0\2\u8020\2\u8080\2\u80e0" + + "\2\u8140\2\u81a0\2\u8200\2\u8260\2\u82c0\2\u8320\2\u8380\2\u83e0" + + "\2\u8440\2\u84a0\2\u8500\2\u8560\2\u85c0\2\u8620\2\u8680\2\u86e0" + + "\2\u8740\2\u87a0\2\u8800\2\u8860\2\u88c0\2\u8920\2\u4a20\2\u8980" + + "\2\u89e0\2\u8a40\2\u8aa0\2\u8b00\2\u8b60\2\u8bc0\2\u8c20\2\u8c80" + + "\2\u8ce0\2\u8d40\2\u8da0\2\u8e00\2\u8e60\2\u8ec0\2\u8f20\2\u8f80" + + "\2\u8fe0\2\u9040\2\u90a0\2\u9100\2\u9160\2\u91c0\2\u9220\2\u9280" + + "\2\u92e0\2\u9340\2\u93a0\2\u9400\2\u9460\2\u94c0\2\u9520\2\u9580" + + "\2\u95e0\2\u9640\2\u96a0\2\u9700\2\u9760\2\u97c0\2\u9820\2\u9880" + + "\2\u98e0\2\u9940\2\u99a0\2\u9a00\2\u9a60\2\u9ac0\2\u9b20\2\u9b80" + + "\2\u9be0\2\u9c40\2\u9ca0\2\u9d00\2\u9d60\2\u9dc0\2\u9e20\2\u9e80" + + "\2\u9ee0\2\u9f40\2\u9fa0\2\ua000\2\ua060\2\ua0c0\2\ua120\2\ua180" + + "\2\ua1e0\2\ua240\2\ua2a0\2\ua300\2\ua360\2\ua3c0\2\ua420\2\ua480" + + "\2\ua4e0\2\ua540\2\ua5a0\2\ua600\2\ua660\2\ua6c0\2\ua720\2\ua780" + + "\2\ua7e0\2\ua840\2\ua8a0\2\ua900\2\ua960\2\ua9c0\2\uaa20\2\uaa80" + + "\2\uaae0\2\uab40\2\uaba0\2\uac00\2\uac60\2\uacc0\2\uad20\2\uad80" + + "\2\uade0\2\uae40\2\uaea0\2\uaf00\2\uaf60\2\uafc0\2\ub020\2\ub080" + + "\2\ub0e0\2\ub140\2\ub1a0\2\ub200\2\ub260\2\ub2c0\2\ub320\2\ub380" + + "\2\ub3e0\2\ub440\2\ub4a0\2\ub500\2\ub560\2\ub5c0\2\ub620\2\ub680" + + "\2\ub6e0\2\ub740\2\ub7a0\2\ub800\2\ub860\2\ub8c0\2\ub920\2\ub980" + + "\2\ub9e0\2\uba40\2\ubaa0\2\ubb00\2\ubb60\2\ubbc0\2\ubc20\2\ubc80" + + "\2\ubce0\2\ubd40\2\ubda0\2\ube00\2\ube60\2\ubec0\2\ubf20\2\ubf80" + + "\2\ubfe0\2\uc040\2\uc0a0\2\uc100\2\uc160\2\uc1c0\2\uc220\2\uc280" + + "\0\u0cc0\2\uc2e0\2\uc340\2\uc3a0\2\uc400\2\uc460\0\u0cc0\2\uc4c0" + + "\0\u0cc0\0\u0cc0\2\uc520\2\uc580\2\uc5e0\2\uc640\2\uc6a0\2\uc700" + + "\2\uc760\2\uc7c0\2\uc820\2\uc880\2\uc8e0\2\uc940\2\uc9a0\2\uca00" + + "\2\uca60\2\ucac0\2\ucb20\2\ucb80\2\ucbe0\2\ucc40\2\ucca0\2\ucd00" + + "\2\ucd60\2\ucdc0\2\uce20\2\uce80\2\ucee0\2\ucf40\2\ucfa0\2\ud000" + + "\2\ud060\2\ud0c0\2\ud120\2\ud180\2\ud1e0\2\ud240\2\ud2a0\2\ud300" + + "\2\ud360\2\ud3c0\2\ud420\2\ud480\2\ud4e0\2\ud540\2\ud5a0\2\ud600" + + "\2\ud660\2\ud6c0\2\ud720\2\ud780\2\ud7e0\2\ud840\2\ud8a0\2\ud900" + + "\2\ud960\2\ud9c0\2\uda20\2\uda80\2\udae0\2\udb40\2\udba0\2\udc00" + + "\2\udc60\2\udcc0\2\udd20\2\udd80\2\udde0\2\ude40\2\udea0\2\udf00" + + "\2\udf60\2\udfc0\2\ue020\2\ue080\2\ue0e0\2\ue140\2\ue1a0\2\ue200" + + "\2\ue260\2\ue2c0\2\ue320\2\ue380\2\ue3e0\2\ue440\2\ue4a0\2\ue500" + + "\2\ue560\2\ue5c0\2\ue380\2\ue620\2\ue680\2\ue6e0\2\ue740\2\ue7a0" + + "\2\ue800\2\ue860\2\ue8c0\2\ue920\2\ue980\2\ue9e0\2\uea40\2\ueaa0" + + "\2\ueb00\2\ueb60\2\uebc0\0\u0cc0\2\uec20\2\uec80\2\uece0\2\ued40" + + "\2\ueda0\2\uee00\2\uee60\2\ueec0\2\uef20\2\uef80\2\uefe0\2\uf040" + + "\2\uf0a0\2\uf100\2\uf160\2\uf1c0\2\uf220\2\uf280\2\uf2e0\2\uf340" + + "\2\uf3a0\2\uf400\2\uf460\2\uf4c0\2\uf520\2\uf580\2\uf5e0\2\uf640" + + "\2\uf6a0\2\uf700\2\uf760\2\ud780\2\uf7c0\2\uf820\2\uf880\2\uf8e0" + + "\2\uf940\2\uf9a0\2\ufa00\2\ufa60\2\ufac0\2\ufb20\2\ufb80\2\ufbe0" + + "\2\ufc40\2\ufca0\2\ufd00\2\ufd60\2\ufdc0\2\ufe20\2\ufe80\2\ufee0" + + "\2\uff40\2\uffa0\3\0\3\140\3\300\3\u0120\3\u0180\3\u01e0" + + "\3\u0240\3\u02a0\3\u0300\3\u0360\3\u03c0\3\u0420\3\u0480\3\u04e0" + + "\3\u0540\3\u05a0\3\u0600\3\u0660\3\u06c0\3\u0720\3\u0780\3\u07e0" + + "\3\u0840\3\u08a0\3\u0900\3\u0960\3\u09c0\3\u0a20\3\u0a80\3\u0ae0" + + "\3\u0b40\3\u0ba0\3\u0c00\3\u0c60\3\u0cc0\3\u0d20\3\u0d80\3\u0de0" + + "\3\u0e40\3\u0ea0\3\u0f00\3\u0f60\3\u0fc0\3\u1020\3\u1080\3\u10e0" + + "\3\u1140\3\u11a0\3\u1200\3\u1260\3\u12c0\3\u1320\3\u1380\3\u13e0" + + "\3\u1440\3\u14a0\0\u0cc0\3\u1500\3\u1560\3\u15c0\3\u1620\3\u1680" + + "\3\u16e0\3\u1740\3\u17a0\3\u1800\3\u1860\3\u18c0\3\u1920\3\u1980" + + "\3\u19e0\3\u1a40\3\u1aa0\3\u1b00\3\u1b60\3\u1bc0\3\u1c20\3\u1c80" + + "\3\u1ce0\3\u1d40\3\u1da0\3\u1e00\3\u1e60\3\u1ec0\3\u1f20\3\u1f80" + + "\3\u1fe0\3\u2040\3\u20a0\3\u2100\3\u2160\3\u21c0\3\u2220\3\u2280" + + "\3\u22e0\3\u2340\3\u23a0\3\u2400\3\u2460\3\u24c0\3\u2520\3\u2580" + + "\3\u25e0\3\u2640\3\u26a0\3\u2700\3\u2760\3\u27c0\3\u2820\3\u2880" + + "\3\u28e0\3\u2940\3\u29a0\3\u2a00\3\u2a60\3\u2ac0\3\u2b20\3\u2b80" + + "\3\u2be0\3\u2c40\3\u2ca0\3\u2d00\3\u2d60\3\u2dc0\3\u2e20\3\u2e80" + + "\3\u2ee0\3\u2f40\3\u2fa0\3\u3000\3\u3060\3\u30c0\2\u9940\3\u3120" + + "\3\u3180\3\u31e0\3\u3240\3\u32a0\3\u3300\3\u3360\3\u33c0\3\u3420" + + "\3\u3480\3\u34e0\3\u3540\3\u35a0\3\u3600\3\u3660\3\u36c0\3\u3720" + + "\3\u3780\3\u37e0\3\u3840\3\u38a0\3\u3900\3\u3960\3\u39c0\3\u3a20" + + "\3\u3a80\3\u3ae0\3\u3b40\3\u3ba0\3\u3c00\3\u3c60\3\u3cc0\3\u3d20" + + "\3\u3d80\3\u3de0\3\u3e40\3\u3ea0\3\u3f00\3\u3f60\3\u3fc0\3\u4020" + + "\3\u4080\3\u40e0\3\u4140\3\u41a0\3\u4200\3\u4260\3\u42c0\3\u4320" + + "\3\u4380\3\u43e0\3\u4440\3\u44a0\3\u4500\3\u4560\3\u45c0\3\u4620" + + "\3\u4680\3\u46e0\3\u4740\3\u47a0\3\u4800\3\u4860\3\u48c0\3\u4920" + + "\3\u4980\3\u49e0\3\u4a40\3\u4aa0\3\u4b00\3\u4b60\3\u4bc0\3\u4c20" + + "\3\u4c80\3\u4ce0\3\u4d40\3\u4da0\3\u4e00\3\u4e60\3\u4ec0\3\u4f20" + + "\3\u4f80\3\u4fe0\3\u5040\3\u50a0\3\u5100\3\u5160\3\u51c0\3\u5220" + + "\3\u5280\3\u52e0\3\u5340\3\u53a0\3\u5400\3\u5460\3\u54c0\3\u5520" + + "\3\u5580\3\u55e0\3\u5640\3\u56a0\3\u5700\3\u5760\3\u57c0\3\u5820" + + "\3\u5880\3\u58e0\3\u5940\3\u59a0\3\u5a00\3\u5a60\3\u5ac0\3\u5b20" + + "\3\u5b80\3\u5be0\3\u5c40\3\u5ca0\3\u5d00\3\u5d60\3\u5dc0\3\u5e20" + + "\3\u5e80\3\u5ee0\3\u5f40\3\u5fa0\3\u6000\3\u6060\3\u60c0\3\u6120" + + "\3\u6180\3\u61e0\3\u6240\3\u62a0\3\u6300\3\u6360\3\u63c0\3\u6420" + + "\3\u6480\3\u64e0\3\u6540\3\u65a0\3\u6600\3\u6660\3\u66c0\3\u6720" + + "\3\u6780\3\u67e0\3\u6840\3\u68a0\3\u6900\3\u6960\3\u69c0\3\u6a20" + + "\3\u6a80\3\u6ae0\3\u6b40\3\u6ba0\3\u6c00\3\u6c60\3\u6cc0\3\u6d20" + + "\3\u6d80\3\u6de0\3\u6e40\3\u6ea0\3\u6f00\3\u6f60\3\u6fc0\3\u7020" + + "\3\u7080\3\u70e0\3\u7140\3\u71a0\3\u7200\3\u7260\3\u72c0\3\u7320" + + "\3\u7380\3\u73e0\3\u7440\3\u74a0\3\u7500\3\u7560\3\u75c0\3\u7620" + + "\3\u7680\3\u76e0\3\u7740\3\u77a0\3\u7800\3\u7860\3\u78c0\3\u7920" + + "\3\u7980\3\u79e0\3\u7a40\3\u7aa0\3\u7b00\3\u7b60\3\u7bc0\3\u7c20" + + "\3\u7c80\3\u7ce0\3\u7d40\3\u7da0\3\u7e00\3\u7e60\3\u7ec0\3\u7f20" + + "\3\u7f80\3\u7fe0\3\u8040\3\u80a0\3\u8100\3\u8160\3\u81c0\3\u8220" + + "\3\u8280\3\u82e0\3\u8340\3\u83a0\3\u8400\3\u8460\3\u84c0\3\u8520" + + "\3\u8580\3\u85e0\3\u8640\3\u86a0\3\u8700\3\u8760\3\u87c0\3\u8820" + + "\3\u8880\3\u88e0\3\u8940\3\u89a0\3\u8a00\3\u8a60\3\u8ac0\3\u8b20" + + "\3\u8b80\3\u8be0\3\u8c40\3\u8ca0\3\u8d00\3\u8d60\3\u8dc0\3\u8e20" + + "\3\u8e80\3\u8ee0\3\u8f40\3\u8fa0\3\u9000\3\u9060\3\u90c0\3\u9120" + + "\3\u9180\3\u91e0\3\u9240\3\u92a0\3\u9300\3\u9360\3\u93c0\3\u9420" + + "\3\u9480\3\u94e0\3\u9540\3\u95a0\3\u9600\3\u9660\3\u96c0\3\u9720" + + "\3\u9780\3\u97e0\3\u9840\3\u98a0\3\u9900\3\u9960\3\u99c0\3\u9a20" + + "\3\u9a80\3\u9ae0\3\u9b40\3\u9ba0\3\u9c00\3\u9c60\3\u9cc0\3\u9d20" + + "\3\u9d80\3\u9de0\3\u9e40\3\u9ea0\3\u9f00\3\u9f60\3\u9fc0\3\ua020" + + "\3\ua080\3\ua0e0\3\ua140\3\ua1a0\3\ua200\3\ua260\3\ua2c0\3\ua320" + + "\3\ua380\3\ua3e0\3\ua440\3\ua4a0\3\ua500\3\ua560\3\ua5c0\3\ua620" + + "\3\ua680\3\ua6e0\3\ua740\3\ua7a0\3\ua800\3\ua860\3\ua8c0\3\ua920" + + "\3\ua980\3\ua9e0\3\uaa40\3\uaaa0\3\uab00\3\uab60\3\uabc0\3\uac20" + + "\3\uac80\3\uace0\3\uad40\3\uada0\3\uae00\3\uae60\3\uaec0\3\uaf20" + + "\3\uaf80\3\uafe0\3\ub040\3\ub0a0\3\ub100\3\ub160\3\ub1c0\3\ub220" + + "\3\ub280\3\ub2e0\3\ub340\3\ub3a0\3\ub400\3\ub460\3\ub4c0\3\ub520" + + "\3\ub580\3\ub5e0\3\ub640\3\ub6a0\3\ub700\3\ub760\3\ub7c0\3\ub820" + + "\3\ub880\3\ub8e0\3\ub940\3\ub9a0\3\uba00\3\uba60\3\ubac0\3\ubb20" + + "\3\ubb80\3\ubbe0\3\ubc40\3\ubca0\3\ubd00\3\ubd60\3\ubdc0\3\ube20" + + "\3\ube80\3\ubee0\3\ubf40\3\ubfa0\3\uc000\3\uc060\3\uc0c0"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[2711]; + 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 = "\1\41\1\42\1\43\1\44\1\45\1\46\132\41\2\47" + + "\1\50\33\47\1\51\5\47\1\52\33\47\1\53\7\47" + "\1\54\27\47\2\55\1\56\64\55\1\57\50\55\2\60" + + "\1\61\16\60\1\62\116\60\2\63\1\0\1\64\1\65" + "\2\63\1\66\1\67\1\70\1\71\6\63\1\72\116\63" + + "\2\73\1\0\1\73\1\74\2\73\4\74\1\75\1\76" + "\1\77\1\100\1\101\1\102\1\74\1\73\1\103\1\104" + + "\6\73\1\105\4\73\1\106\1\77\1\102\1\107\1\110" + "\5\73\2\111\1\73\1\110\2\73\1\104\1\105\1\103" + + "\1\75\11\73\1\112\1\73\1\76\1\113\1\114\1\100" + "\1\73\1\101\1\73\1\115\1\114\1\73\1\116\1\117" + + "\4\73\1\112\1\107\1\115\1\106\1\73\1\117\1\120" + "\1\116\1\113\3\73\1\120\4\73\3\121\1\122\4\121" + + "\1\123\127\121\3\124\1\122\5\124\1\123\126\124\1\63" + "\1\125\1\0\1\64\1\45\2\63\1\66\1\126\1\127" + + "\1\130\6\63\1\131\116\63\3\121\1\122\4\121\1\132" + "\127\121\3\124\1\122\5\124\1\132\126\124\2\63\1\0" + + "\1\63\1\65\2\63\1\66\1\133\1\134\1\130\6\63" + "\1\135\116\63\10\136\1\137\127\136\11\140\1\137\126\140" + + "\1\141\1\45\1\142\1\143\1\45\1\144\1\145\1\146" + "\1\147\1\150\1\151\3\152\1\153\2\152\1\154\3\152" + + "\2\146\1\152\1\155\1\156\1\155\1\152\1\155\1\152" + "\1\157\1\141\1\160\1\161\1\162\1\163\1\164\1\155" + + "\1\165\1\141\1\152\1\146\1\152\1\166\2\152\1\167" + "\1\170\1\171\1\172\1\173\1\174\1\175\1\145\1\146" + + "\3\66\1\176\1\177\1\141\2\152\1\200\1\152\1\201" + "\1\202\1\203\1\204\3\152\1\205\1\206\1\152\4\175" + + "\1\152\1\207\7\152\1\155\5\152\2\155\2\210\1\211" + "\5\210\1\212\26\210\1\213\100\210\2\214\1\215\6\214" + + "\1\216\25\214\1\217\100\214\2\220\1\221\1\222\40\220" + "\1\223\4\220\1\224\26\220\1\225\7\220\1\226\27\220" + + "\2\227\1\230\1\231\40\227\1\232\33\227\1\233\7\227" + "\1\234\27\227\2\47\1\235\33\47\1\236\5\47\1\52" + + "\33\47\1\53\7\47\1\54\27\47\2\237\1\240\1\241" + "\40\237\1\242\4\237\1\243\22\237\1\244\3\237\1\245" + + "\7\237\1\246\4\237\1\247\22\237\1\250\1\45\1\251" + "\1\252\1\45\1\144\1\145\1\146\1\253\1\254\1\255" + + "\1\256\1\257\1\260\1\261\1\262\1\263\1\154\1\264" + "\1\265\1\266\1\267\1\146\1\264\1\270\1\271\1\270" + + "\1\272\1\270\1\264\1\157\1\250\1\264\1\273\1\274" + "\1\275\1\276\1\270\1\165\1\250\1\264\1\146\1\277" + + "\1\300\1\264\1\301\1\167\1\170\1\302\1\303\1\304" + "\1\305\1\175\1\145\1\146\3\66\1\176\1\250\1\306" + + "\2\264\1\307\1\264\1\310\1\311\1\312\1\313\2\264" + "\1\314\1\315\1\316\1\264\4\175\1\317\1\320\1\321" + + "\1\322\1\323\1\264\1\324\1\325\1\326\1\270\4\264" + "\1\327\2\270\2\330\1\331\41\330\1\223\4\330\1\332" + + "\26\330\1\225\7\330\1\226\27\330\1\333\1\334\1\0" + "\1\333\1\45\2\333\1\66\1\335\1\336\1\337\6\333" + + "\1\340\3\333\1\341\14\333\1\342\37\333\1\343\1\333" + "\1\344\33\333\1\345\1\65\1\346\1\347\1\65\1\345" + + "\1\175\1\66\1\350\1\351\1\352\6\353\1\66\3\353" + "\2\345\1\353\3\345\1\353\1\345\2\353\1\345\5\353" + + "\2\345\1\354\1\66\5\353\1\66\5\353\1\345\1\145" + "\1\66\1\345\1\355\2\66\1\345\1\356\16\353\2\175" + + "\1\357\1\175\11\353\1\345\5\353\2\345\1\360\1\65" + "\1\361\1\362\1\65\5\360\1\363\6\364\1\360\3\364" + + "\2\360\1\364\3\360\1\364\1\360\2\364\1\360\5\364" + "\4\360\1\365\4\364\2\360\4\364\1\366\3\360\1\367" + + "\4\360\16\364\4\360\11\364\1\360\5\364\2\360\1\370" + "\1\65\1\371\1\372\1\65\1\370\1\373\1\370\1\350" + + "\1\351\1\374\6\375\1\370\3\375\1\370\1\376\1\375" + "\3\377\1\375\1\377\1\375\1\u0100\6\375\1\377\1\370" + + "\1\u0101\2\370\4\375\1\370\1\145\4\375\1\366\1\145" + "\7\370\16\375\1\370\1\u0102\1\370\1\u0103\11\375\1\377" + + "\5\375\2\377\2\210\1\u0104\5\210\1\u0105\26\210\1\u0106" + "\100\210\2\214\1\u0107\6\214\1\u0108\25\214\1\u0106\100\214" + + "\2\330\1\u0109\41\330\1\223\4\330\1\u010a\26\330\1\225" + "\7\330\1\226\27\330\2\u010b\1\u010c\34\u010b\1\u010d\10\u010b" + + "\1\u010e\22\u010b\1\u010f\44\u010b\2\u0110\1\u0111\45\u0110\1\u0112" + "\13\u0110\1\u0113\53\u0110\2\41\4\0\133\41\1\42\2\0" + + "\1\45\1\0\132\41\152\0\1\u0114\1\u0115\5\u0116\1\0" + "\3\u0116\1\u0117\1\u0118\6\u0116\3\0\6\u0116\4\0\4\u0116" + + "\2\0\3\u0116\1\u0115\3\0\1\u0119\5\0\16\u0116\4\0" + "\21\u0116\1\0\1\45\2\0\1\45\133\0\4\46\1\0" + + "\1\46\1\u011a\131\46\2\47\1\0\33\47\1\0\5\47" + "\1\0\33\47\1\0\7\47\1\0\27\47\36\0\1\u011b" + + "\143\0\1\u011c\37\0\1\u011d\77\0\1\u011e\205\0\1\u011f" + "\27\0\2\55\1\0\64\55\1\0\50\55\21\0\1\u0120" + + "\116\0\2\60\1\0\16\60\1\0\116\60\2\63\1\0" + "\1\63\1\0\2\63\4\0\6\63\1\0\120\63\1\0" + + "\1\63\1\0\2\63\4\0\6\63\1\0\3\63\1\u0121" + "\112\63\21\0\1\72\116\0\2\73\1\0\1\73\1\0" + + "\2\73\4\0\6\73\1\0\120\73\1\0\1\73\1\0" + "\2\73\4\0\1\73\1\u0122\2\73\1\u0123\1\u0124\1\0" + + "\2\73\1\u0125\6\73\1\u0126\4\73\1\u0127\1\73\1\u0124" + "\15\73\1\u0125\1\u0126\13\73\1\u0128\1\73\1\u0122\4\73" + + "\1\u0123\1\73\1\u0129\10\73\1\u0128\1\73\1\u0129\1\u0127" + "\17\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u012a" + + "\2\73\1\0\2\73\1\u012b\6\73\1\u012c\24\73\1\u012b" + "\1\u012c\13\73\1\u012d\4\73\1\u012a\14\73\1\u012d\22\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\16\73" + "\1\u012e\61\73\1\u012e\17\73\1\0\1\73\1\0\2\73" + + "\4\0\1\u012f\5\73\1\0\1\73\1\u0130\17\73\1\u0131" + "\1\u0132\10\73\1\u0132\4\73\1\u0130\1\u012f\22\73\1\u0133" + + "\11\73\1\u0131\1\u0133\20\73\1\0\1\73\1\0\2\73" + "\4\0\2\73\1\u0134\3\73\1\0\1\73\1\u0135\7\73" + + "\1\u0136\5\73\1\u0134\17\73\1\u0136\1\u0135\57\73\1\0" + "\1\73\1\0\2\73\4\0\2\73\1\120\1\u0137\1\73" + + "\1\120\1\0\2\73\1\u0138\6\73\1\u0139\5\73\2\120" + "\1\73\1\u013a\5\73\2\u013b\1\73\1\u013a\2\73\1\u0138" + + "\1\u0139\16\73\1\u013c\1\120\1\u0137\4\73\1\120\17\73" + "\1\u013c\12\73\1\0\1\73\1\0\2\73\4\0\3\73" + + "\1\u013d\2\73\1\0\2\73\1\u013e\6\73\1\u013f\24\73" + "\1\u013e\1\u013f\20\73\1\u013d\37\73\1\0\1\73\1\0" + + "\2\73\4\0\6\73\1\0\64\73\1\u0140\2\73\1\u0141" + "\7\73\1\u0140\4\73\1\u0141\13\73\1\0\1\73\1\0" + + "\2\73\4\0\1\u0142\1\u0143\1\u0144\1\73\1\u0145\1\73" + "\1\0\16\73\1\u0146\1\u0144\10\73\2\u0147\7\73\1\u0142" + + "\13\73\1\u0143\1\73\1\u0148\2\73\1\u0145\2\73\1\u0148" + "\12\73\1\u0146\17\73\1\0\1\73\1\0\2\73\4\0" + + "\6\73\1\0\1\73\1\120\36\73\1\120\57\73\1\0" + "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u0149" + + "\6\73\1\u014a\24\73\1\u0149\1\u014a\13\73\1\u014b\21\73" + "\1\u014b\22\73\1\0\1\73\1\0\2\73\4\0\2\73" + + "\1\u014c\1\u014d\2\73\1\0\17\73\1\u014c\33\73\1\u014e" + "\4\73\1\u014d\14\73\1\u014e\22\73\1\0\1\73\1\0" + + "\2\73\4\0\2\73\1\120\1\u0133\2\73\1\0\1\73" + "\1\u014f\7\73\1\u0150\4\73\1\u0151\1\120\17\73\1\u0150" + + "\1\u014f\12\73\1\u0152\3\73\1\u0153\1\u0133\1\u0154\3\73" + "\1\u0153\7\73\1\u0152\2\73\1\u0151\1\u0154\16\73\1\0" + + "\1\73\1\0\2\73\4\0\4\73\1\u0155\1\73\1\0" + "\1\73\1\120\14\73\1\u0156\11\73\2\u0157\6\73\1\120" + + "\21\73\1\u0155\15\73\1\u0156\17\73\1\0\1\73\1\0" + "\2\73\4\0\2\73\1\120\2\73\1\u0158\1\0\2\73" + + "\1\u0159\5\73\1\120\6\73\1\120\1\u0158\2\73\1\120" + "\12\73\1\u0159\47\73\1\120\5\73\2\120\2\73\1\0" + + "\1\73\1\0\2\73\4\0\3\73\1\u015a\1\73\1\120" + "\1\0\1\73\1\120\1\u015b\6\73\1\u015c\6\73\1\120" + + "\1\73\1\u015d\10\73\1\u015d\2\73\1\u015b\1\u015c\1\120" + "\16\73\1\120\1\u015a\4\73\1\120\32\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\2\73\1\u015e\6\73" + "\1\u015f\4\73\1\u0160\17\73\1\u015e\1\u015f\40\73\1\u0160" + + "\17\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u0161" + "\2\73\1\0\11\73\1\u0162\25\73\1\u0162\20\73\1\u0161" + + "\37\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\2\73\1\u0163\25\73\2\u0164\4\73\1\u0163\57\73\3\121" + + "\1\0\4\121\1\0\127\121\25\0\1\u0165\112\0\3\124" + "\1\0\5\124\1\0\126\124\1\63\1\125\1\0\1\63" + + "\1\45\2\63\4\0\6\63\1\0\116\63\21\0\1\u0166" + "\116\0\10\136\1\0\127\136\11\140\1\0\126\140\1\141" + + "\12\0\6\141\1\0\3\141\2\0\7\141\1\0\7\141" + "\1\0\2\141\1\0\4\141\2\0\4\141\10\0\17\141" + + "\4\0\21\141\3\0\1\u0167\3\0\1\66\2\0\1\u0168" + "\12\0\1\u0169\117\0\1\66\1\0\1\66\137\0\1\66" + + "\130\0\7\u016a\1\u016b\2\u016a\1\u016c\24\u016a\1\u016d\11\u016a" + "\1\u016e\66\u016a\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0" + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\3\152\1\u0170\2\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + "\7\0\1\66\11\0\1\u0171\116\0\1\u0172\12\0\6\u0172" + + "\1\0\1\u0172\1\u0173\1\u0174\2\0\1\u0172\3\155\1\u0172" + "\1\155\1\u0175\1\0\5\u0172\1\u0176\1\155\1\0\2\u0172" + + "\1\0\3\u0172\1\u0176\1\0\1\u0177\1\u0174\1\u0172\1\u0173" + "\1\u0172\10\0\5\u0172\1\u0176\5\u0172\1\u0176\3\u0172\4\0" + + "\11\u0172\1\155\5\u0172\2\155\1\u0172\12\0\6\u0172\1\0" + "\1\u0172\1\u0173\1\u0174\2\0\1\u0172\1\u0178\2\u0179\1\u0172" + + "\1\u0179\1\u017a\1\0\5\u0172\1\u0176\1\u0179\1\0\2\u0172" + "\1\0\2\u0172\1\u017b\1\u0176\1\0\1\u0177\1\u0174\1\u0172" + + "\1\u0173\1\u0172\10\0\5\u0172\1\u0176\3\u0172\1\u017b\1\u0172" + "\1\u0176\3\u0172\4\0\11\u0172\1\u0179\5\u0172\2\u0179\7\0" + + "\1\66\26\0\1\66\101\0\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u017c\2\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\1\u017d\3\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\1\152\1\u017e\4\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\1\152\1\u017f\1\152\1\u0180\12\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\1\u0181\5\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\1\u0182\1\u0183\2\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\1\u0184\5\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\1\152\1\u0185\1\u0186\1\152\10\0\1\141\1\u0187" + + "\4\152\1\u0188\10\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0189" + + "\4\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\1\u018a\1\u018b\14\152\4\0\21\152\7\0" + + "\1\66\46\0\1\66\111\0\3\u0177\1\0\1\u0177\10\0" + "\1\u0177\62\0\1\u0177\5\0\2\u0177\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u018c" + "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152" + + "\1\u018d\1\u018e\1\u018f\10\0\1\141\10\152\1\u0190\3\152" + "\1\u0191\1\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\1\152\1\u0192\2\152\2\0\4\152\10\0" + + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\1\u0193\3\152\10\0\1\141" + "\1\u0194\15\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\1\u0195\1\152\1\u0196" + "\3\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\1\152\1\u0197\1\152\1\u0198\7\152\1\u0199" + "\2\152\4\0\21\152\7\0\1\66\62\0\1\66\45\0" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\1\152\1\u019a\1\u019b\1\152\10\0\1\141\1\u019c\2\152" + "\1\u019d\12\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\1\u019e\3\152\10\0\1\141" + + "\1\u019f\15\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u01a0\1\u01a1" + + "\1\152\1\0\1\141\1\152\1\0\4\152\2\0\3\152" + "\1\u01a2\10\0\1\141\11\152\1\u01a3\4\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\4\152\10\0\1\141\1\u01a4\15\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\1\u01a5\1\u01a6\4\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\1\152\1\u01a7\2\152\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\3\152\1\u01a8\1\152\1\u01a9" + "\10\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\1\152\1\u0187\2\152\10\0\1\141" + + "\1\u01aa\15\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\1\152\1\u01ab\2\152\10\0" + "\1\141\16\152\4\0\21\152\2\210\1\0\5\210\1\0" + + "\26\210\1\0\100\210\2\u01ac\1\0\35\u01ac\1\u01ad\44\u01ac" + "\1\u01ae\32\u01ac\2\214\1\0\6\214\1\0\25\214\1\0" + + "\100\214\2\220\2\0\40\220\1\0\4\220\1\0\26\220" + "\1\0\7\220\1\0\27\220\12\0\1\u01af\167\0\1\u01b0" + + "\37\0\1\u01b1\47\0\1\u01b2\167\0\1\u01b3\205\0\1\u01b4" + "\27\0\2\227\2\0\40\227\1\0\33\227\1\0\7\227" + + "\1\0\27\227\12\0\1\u01b5\167\0\1\u01b6\37\0\1\u01b7" + "\77\0\1\u01b8\205\0\1\u01b9\65\0\1\u01ba\101\0\2\237" + + "\2\0\40\237\1\0\4\237\1\0\22\237\1\0\3\237" + "\1\0\7\237\1\0\4\237\1\0\22\237\12\0\1\u01bb" + + "\6\u01bc\1\u01bd\3\u01bc\2\0\1\u01bc\3\0\1\u01bc\4\0" + "\5\u01bc\5\0\4\u01bc\2\0\4\u01bc\11\0\16\u01bc\4\0" + + "\11\u01bc\1\0\5\u01bc\44\0\1\u01be\37\0\1\u01bf\47\0" + "\1\u01c0\166\0\1\u01c1\1\u01c2\15\0\1\u01c3\1\u01c4\1\0" + + "\1\u01c5\11\0\1\u01c6\1\0\1\u01c7\1\0\1\u01c8\1\u01c9" + "\1\0\1\u01ca\4\0\1\u01cb\70\0\1\u01cc\205\0\1\u01cd" + + "\123\0\1\u01ce\43\0\1\250\12\0\6\250\1\0\3\250" + "\2\0\7\250\1\0\7\250\1\0\2\250\1\0\4\250" + + "\2\0\4\250\7\0\20\250\4\0\21\250\3\0\1\u0167" + "\3\0\1\66\130\0\2\253\1\u01cf\5\253\1\u01d0\26\253" + + "\1\u01d1\100\253\2\u01d2\1\u01d3\6\u01d2\1\u01d4\25\u01d2\1\u01d5" + "\100\u01d2\7\0\1\66\2\0\1\u01d6\36\0\1\u01d7\66\0" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u01d9\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u01da\3\264\7\0\2\250\1\u01db\1\u01dc" + "\1\u01dd\1\u01de\1\264\1\u01df\1\264\1\u01e0\6\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\u01e1\5\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\264\1\u01e2\1\u01e3\1\264\7\0\2\250" + "\1\u01e4\2\264\1\u01e5\12\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u01e6" + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u01e7" + + "\1\u01e8\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\2\264\1\u01e9\1\u01ea\2\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\2\264\1\u01eb\1\264\7\0\2\250\4\264" + + "\1\u01ec\11\264\4\0\1\u01ed\20\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u01ee\1\u01ef" + + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + "\1\u01f0\2\264\7\0\2\250\5\264\1\u01f1\10\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u01f2\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u01f3\1\u01f4" + "\1\264\1\u01f5\1\264\1\u01f6\10\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\1\u01f7\4\264\1\u01f8\10\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u01f9\1\264\1\u01fa\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\10\264\1\u01fb\1\u01fc" + "\2\264\1\u01fd\1\264\4\0\1\u01fe\20\264\7\0\1\66" + + "\11\0\1\u01ff\116\0\1\u0200\12\0\6\u0200\1\0\1\u0200" + "\1\u0201\1\u0202\2\0\1\u0200\3\270\1\u0200\1\270\1\u0203" + + "\1\0\5\u0200\1\u0204\1\270\1\0\2\u0200\1\0\3\u0200" + "\1\u0204\1\0\1\u0177\1\u0202\1\u0200\1\u0201\1\u0200\7\0" + + "\1\250\5\u0200\1\u0204\5\u0200\1\u0204\3\u0200\4\0\11\u0200" + "\1\270\5\u0200\2\270\1\u0200\12\0\6\u0200\1\0\1\u0200" + + "\1\u0201\1\u0202\2\0\1\u0200\1\u0205\2\u0206\1\u0200\1\u0206" + "\1\u0207\1\0\5\u0200\1\u0204\1\u0206\1\0\2\u0200\1\0" + + "\2\u0208\1\u0209\1\u0204\1\0\1\u0177\1\u0202\1\u0200\1\u0201" + "\1\u0200\7\0\1\250\5\u0200\1\u0204\3\u0200\1\u0209\1\u0200" + + "\1\u0204\3\u0200\4\0\11\u0200\1\u0206\5\u0200\2\u0206\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\u020a\1\u020b\4\264\1\0\1\250\1\264\1\0\1\264" + "\1\u020c\2\264\2\0\3\264\1\u020d\7\0\2\250\7\264" + + "\1\u020e\6\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u020f\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0210\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\3\264\1\u0211\12\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0212\5\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0213\1\u0214" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0215" + + "\1\u0216\1\264\7\0\2\250\1\u0217\4\264\1\u0218\10\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u0219\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u021a\2\264\7\0\2\250" + + "\1\u021b\1\u021c\3\264\1\u021d\10\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\264\1\u021e\4\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\1\u021f\1\u0220\14\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\2\264\1\u0221\1\264\7\0\2\250\1\u0222\4\264" + "\1\u0223\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0224\2\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0225" + + "\1\264\7\0\2\250\10\264\1\u0226\5\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\1\264\1\u0227" + "\2\264\2\0\3\264\1\u0228\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\1\u0229\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\u022a\1\264\1\u022b\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\1\264\1\u022c" + + "\1\264\1\u022d\7\264\1\u022e\2\264\4\0\21\264\1\250" + "\12\0\6\u022f\1\0\3\u022f\2\0\1\u022f\3\250\1\u022f" + + "\1\250\1\u022f\1\0\1\250\5\u022f\1\250\1\0\1\250" + "\1\u022f\1\0\4\u022f\2\0\4\u022f\7\0\2\250\16\u022f" + + "\4\0\11\u022f\1\250\5\u022f\3\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u0230\1\u0231\1\264" + "\7\0\2\250\1\u0232\2\264\1\u0233\12\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u0234\3\264\7\0\2\250\1\u0235\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\3\264\1\u0236\1\u0237\1\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0238" + + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0239\15\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u023a\1\u023b\4\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u023c\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\u023d\5\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u023e\1\u023f\2\264" + "\7\0\2\250\1\u0240\4\264\1\u0241\10\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\3\264\1\u0242\12\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\1\u0243\15\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\1\u0244\5\264\1\0\1\250\1\264\1\0\1\264\1\u0245" + + "\2\264\2\0\4\264\7\0\2\250\7\264\1\u0246\6\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u0247\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0248\1\u0249\2\264\7\0\2\250" + + "\1\u024a\15\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u024b\2\264\7\0" + "\2\250\5\264\1\u024c\10\264\4\0\21\264\1\250\12\0" + + "\5\264\1\u024d\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u024e\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\3\264\1\u024f" + "\15\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u0250\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\u0251\5\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u0252\3\264\7\0\2\250\1\u0253\4\264\1\u0254\10\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\264\1\u0255\2\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\264\1\u0256\4\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u0257\3\264\7\0\2\250" + + "\16\264\4\0\21\264\2\330\1\0\41\330\1\0\4\330" + "\1\0\26\330\1\0\7\330\1\0\27\330\12\0\1\u0258" + + "\125\0\2\333\1\0\1\333\1\0\2\333\4\0\6\333" + "\1\0\117\333\1\334\1\0\1\333\1\45\2\333\4\0" + + "\6\333\1\0\116\333\10\335\1\u01d0\127\335\11\336\1\u0259" + "\126\336\2\333\1\0\1\333\1\0\2\333\4\0\6\333" + + "\1\72\120\333\1\0\1\333\1\0\2\333\4\0\6\333" + "\1\0\37\333\1\u025a\60\333\1\0\1\333\1\0\2\333" + + "\4\0\6\333\1\0\21\333\1\u025b\76\333\1\0\1\333" + "\1\0\2\333\4\0\6\333\1\0\37\333\1\u025c\56\333" + + "\12\0\1\u025d\176\0\1\u025e\101\0\6\353\1\0\3\353" + "\2\0\10\353\1\0\6\353\4\0\4\353\1\0\5\353" + + "\11\0\16\353\4\0\21\353\13\0\6\u025f\1\0\3\u025f" + "\2\0\1\u025f\3\0\1\u025f\1\0\2\u025f\1\0\5\u025f" + + "\4\0\5\u025f\1\0\5\u025f\11\0\16\u025f\4\0\11\u025f" + "\1\0\5\u025f\43\0\1\u0260\1\u0261\1\u0262\1\u0263\13\0" + + "\1\u0264\1\u0265\1\u0266\5\0\1\u0267\4\0\1\u0268\1\0" + "\1\u0269\1\u026a\1\u026b\7\0\1\u026c\41\0\6\u026d\1\0" + + "\3\u026d\2\0\1\u026d\3\0\1\u026d\1\0\2\u026d\1\0" + "\5\u026d\4\0\5\u026d\1\0\5\u026d\11\0\16\u026d\4\0" + + "\11\u026d\1\0\5\u026d\15\0\6\364\1\0\3\364\2\0" + "\10\364\1\0\6\364\4\0\4\364\2\0\4\364\11\0" + + "\16\364\4\0\21\364\13\0\6\364\1\0\3\364\2\0" + "\1\364\3\0\1\364\1\0\2\364\1\0\5\364\5\0" + + "\4\364\2\0\4\364\11\0\16\364\4\0\11\364\1\0" + "\5\364\14\0\7\375\1\0\3\375\2\0\1\375\3\0" + + "\1\375\1\0\10\375\4\0\1\u025e\4\375\2\0\4\375" + "\11\0\16\375\3\0\1\u0103\11\375\1\0\5\375\14\0" + + "\7\375\1\0\3\375\2\0\1\375\3\0\1\375\1\0" + "\10\375\5\0\4\375\2\0\4\375\11\0\16\375\3\0" + + "\1\u0103\11\375\1\0\5\375\104\0\1\u026e\62\0\1\u026f" + "\2\0\3\377\1\0\1\377\10\0\1\377\11\0\1\377" + + "\1\u0270\2\0\1\u026f\13\0\1\u0271\2\0\1\u0272\1\0" + "\1\u0273\1\0\1\u0274\21\0\1\377\5\0\2\377\12\0" + + "\7\375\1\0\3\375\2\0\1\375\3\377\1\375\1\377" + "\10\375\1\377\4\0\4\375\2\0\4\375\11\0\16\375" + + "\3\0\1\u0103\11\375\1\377\5\375\2\377\14\0\1\u0275" + "\7\0\1\u0275\3\0\5\u0275\7\0\2\u0275\4\0\2\u0275" + + "\1\0\1\u0275\2\0\2\u0275\15\0\1\u0275\1\0\1\u0275" + "\5\0\1\u0275\20\0\1\u0275\5\0\2\u0275\2\u0276\1\0" + + "\135\u0276\12\0\1\u0277\125\0\2\u010b\1\0\34\u010b\1\0" + "\10\u010b\1\0\22\u010b\1\0\44\u010b\115\0\1\u0278\22\0" + + "\2\u0110\1\0\45\u0110\1\0\13\u0110\1\0\53\u0110\115\0" + "\1\u0279\35\0\6\u027a\1\0\3\u027a\2\0\6\u027a\3\0" + + "\6\u027a\4\0\4\u027a\2\0\4\u027a\11\0\16\u027a\4\0" + "\21\u027a\13\0\1\u0116\1\u027b\3\u0116\1\u027c\1\0\3\u0116" + + "\2\0\6\u0116\3\0\2\u0116\1\u027c\3\u0116\4\0\4\u0116" + "\2\0\4\u0116\11\0\2\u0116\1\u027b\13\u0116\4\0\21\u0116" + + "\13\0\6\u0116\1\0\3\u0116\2\0\6\u0116\3\0\6\u0116" + "\4\0\4\u0116\2\0\4\u0116\11\0\16\u0116\4\0\21\u0116" + + "\7\0\1\u027d\16\0\1\u027d\7\0\1\u027e\35\0\1\u027f" + "\101\0\1\u0280\122\0\1\u0281\222\0\1\u0282\115\0\1\u0283" + + "\117\0\1\u0284\205\0\1\u0285\27\0\2\63\1\0\1\63" + "\1\0\2\63\1\u027d\3\0\6\63\1\0\4\63\1\u0286" + + "\111\63\2\73\1\0\1\73\1\0\2\73\4\0\2\73" + "\1\u0287\3\73\1\0\17\73\1\u0287\100\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0288\25\73" + "\1\u0288\60\73\1\0\1\73\1\0\2\73\4\0\2\73" + + "\1\u0289\3\73\1\0\1\u012e\16\73\1\u0289\34\73\1\u012e" + "\43\73\1\0\1\73\1\0\2\73\4\0\1\73\1\u028a" + + "\1\u028b\3\73\1\0\1\73\1\u028c\15\73\1\u028b\20\73" + "\1\u028c\14\73\1\u028a\42\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\64\73\1\u028d\12\73\1\u028d\20\73" + "\1\0\1\73\1\0\2\73\4\0\4\73\1\120\1\73" + + "\1\0\30\73\2\120\30\73\1\120\35\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\16\73\1\u028e\61\73" + + "\1\u028e\17\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\11\73\1\u028f\25\73\1\u028f\60\73\1\0\1\73" + + "\1\0\2\73\4\0\5\73\1\u0290\1\0\20\73\1\u0290" + "\77\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\21\73\1\u0291\54\73\1\u0291\21\73\1\0\1\73\1\0" + "\2\73\4\0\4\73\1\u028a\1\73\1\0\21\73\1\u0292" + + "\40\73\1\u028a\13\73\1\u0292\21\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\1\73\1\u0293\36\73\1\u0293" + + "\16\73\1\u0290\4\73\1\u0294\1\u0290\11\73\1\u0294\20\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\73" + + "\1\u0290\36\73\1\u0290\57\73\1\0\1\73\1\0\2\73" + "\4\0\3\73\1\u0295\2\73\1\0\60\73\1\u0295\37\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\11\73" + "\1\u0296\25\73\1\u0296\60\73\1\0\1\73\1\0\2\73" + + "\4\0\1\120\3\73\1\u0297\1\73\1\0\41\73\1\120" + "\20\73\1\u0297\35\73\1\0\1\73\1\0\2\73\4\0" + + "\2\73\1\u0298\3\73\1\0\17\73\1\u0298\100\73\1\0" + "\1\73\1\0\2\73\4\0\6\73\1\0\61\73\1\120" + + "\17\73\1\120\16\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\2\73\1\120\33\73\1\120\14\73\1\u0299" + + "\21\73\1\u0299\22\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\11\73\1\u029a\25\73\1\u029a\60\73\1\0" + + "\1\73\1\0\2\73\4\0\2\73\1\u029b\3\73\1\0" + "\17\73\1\u029b\100\73\1\0\1\73\1\0\2\73\4\0" + + "\5\73\1\u012e\1\0\20\73\1\u012e\43\73\1\u0290\12\73" + "\1\u0290\20\73\1\0\1\73\1\0\2\73\4\0\6\73" + + "\1\0\32\73\1\u029c\30\73\1\u029c\34\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\30\73\2\u012e\66\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\53\73" + "\1\u029d\21\73\1\u029d\22\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\53\73\1\u0152\21\73\1\u0152\22\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73" + + "\1\u029e\33\73\1\u029e\61\73\1\0\1\73\1\0\2\73" + "\4\0\6\73\1\0\21\73\1\u029f\54\73\1\u029f\21\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\61\73" + "\1\u02a0\17\73\1\u02a0\16\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\1\u02a1\27\73\2\u02a2\22\73\1\u02a1" + "\43\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\30\73\2\u02a3\66\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\2\73\1\u02a4\33\73\1\u02a4\61\73\1\0" + + "\1\73\1\0\2\73\4\0\3\73\1\u02a5\2\73\1\0" + "\60\73\1\u02a5\37\73\1\0\1\73\1\0\2\73\4\0" + + "\2\73\1\u02a6\3\73\1\0\17\73\1\u02a6\100\73\1\0" + "\1\73\1\0\2\73\4\0\5\73\1\u02a7\1\0\2\73" + + "\1\u02a8\15\73\1\u02a7\15\73\1\u02a8\61\73\1\0\1\73" + "\1\0\2\73\4\0\4\73\1\u02a9\1\73\1\0\62\73" + + "\1\u02a9\35\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\57\73\1\u02aa\5\73\1\u02aa\32\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\30\73\2\u0162\66\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\57\73" + + "\1\u02ab\5\73\1\u02ab\32\73\1\0\1\73\1\0\2\73" + "\4\0\1\u02ac\5\73\1\0\41\73\1\u02ac\56\73\1\0" + + "\1\73\1\0\2\73\4\0\6\73\1\0\67\73\1\120" + "\14\73\1\120\13\73\1\0\1\73\1\0\2\73\4\0" + + "\1\u02ad\5\73\1\0\1\73\1\u0130\1\u02ae\17\73\1\u02af" + "\5\73\2\u0162\1\73\1\u02af\2\73\1\u02ae\1\73\1\u0130" + + "\1\u02ad\56\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\11\73\1\u02b0\25\73\1\u02b0\60\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\2\73\1\u02b1\33\73" + "\1\u02b1\22\73\1\u02b2\17\73\1\u02b2\16\73\1\0\1\73" + + "\1\0\2\73\4\0\2\73\1\u02b3\3\73\1\0\17\73" + "\1\u02b3\1\73\1\u02ac\31\73\1\u0291\21\73\1\u0291\1\u02ac" + + "\21\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u02b4" + "\2\73\1\0\53\73\1\u02b5\4\73\1\u02b4\14\73\1\u02b5" + + "\22\73\1\0\1\73\1\0\2\73\4\0\1\u02b6\5\73" + "\1\0\41\73\1\u02b6\56\73\1\0\1\73\1\0\2\73" + + "\4\0\5\73\1\u02b7\1\0\20\73\1\u02b7\77\73\1\0" + "\1\73\1\0\2\73\4\0\6\73\1\0\57\73\1\u02b8" + + "\5\73\1\u02b8\32\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\53\73\1\120\21\73\1\120\22\73\1\0" + + "\1\73\1\0\2\73\4\0\1\u02b9\5\73\1\0\41\73" + "\1\u02b9\56\73\1\0\1\73\1\0\2\73\4\0\5\73" + + "\1\u02ba\1\0\20\73\1\u02ba\77\73\1\0\1\73\1\0" + "\2\73\4\0\5\73\1\u02bb\1\0\20\73\1\u02bb\77\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\107\73" + "\1\u028c\2\73\1\u028c\5\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\64\73\1\u02bc\12\73\1\u02bc\20\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\11\73" + + "\1\u02bd\25\73\1\u02bd\60\73\1\0\1\73\1\0\2\73" + "\4\0\2\73\1\120\3\73\1\0\11\73\1\u02be\5\73" + + "\1\120\17\73\1\u02be\27\73\1\120\14\73\1\120\13\73" + "\1\0\1\73\1\0\2\73\4\0\5\73\1\u02bf\1\0" + + "\1\73\1\120\16\73\1\u02bf\17\73\1\120\57\73\1\0" + "\1\73\1\0\2\73\4\0\5\73\1\u02c0\1\0\20\73" + + "\1\u02c0\77\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\21\73\1\120\54\73\1\120\21\73\1\0\1\73" + + "\1\0\2\73\4\0\5\73\1\u02c1\1\0\20\73\1\u02c1" + "\1\u02c2\54\73\1\u02c2\21\73\1\0\1\73\1\0\2\73" + + "\4\0\2\73\1\u02c3\1\73\1\120\1\73\1\0\17\73" + "\1\u02c3\42\73\1\120\35\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\1\73\1\u02c4\36\73\1\u02c4\57\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\57\73" + + "\1\u02c5\5\73\1\u02c5\32\73\1\0\1\73\1\0\2\73" + "\4\0\2\73\1\120\3\73\1\0\17\73\1\120\100\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\u02c6" + "\53\73\1\u02c6\43\73\1\0\1\73\1\0\2\73\4\0" + + "\6\73\1\0\57\73\1\120\5\73\1\120\30\73\7\0" + "\1\u02c7\16\0\1\u02c7\124\0\1\u02c8\47\0\1\u02c8\63\0" + + "\1\u027d\16\0\1\u027d\111\0\12\u016a\1\u02c9\24\u016a\1\u016d" + "\102\u016a\1\0\135\u016a\51\0\1\u02ca\66\0\1\141\12\0" + + "\6\141\1\0\3\141\2\0\7\141\1\0\1\141\1\u02cb" + "\5\141\1\0\2\141\1\0\4\141\2\0\4\141\10\0" + + "\17\141\4\0\22\141\12\0\6\152\1\0\3\152\2\0" + "\7\152\1\0\1\u016f\4\152\1\u02cc\1\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152" + "\4\0\21\152\7\0\1\66\11\0\1\146\116\0\1\u0172" + + "\12\0\6\u0172\1\0\3\u0172\2\0\7\u0172\1\0\7\u0172" + "\1\0\2\u0172\1\0\4\u0172\2\0\4\u0172\10\0\17\u0172" + + "\4\0\22\u0172\12\0\6\u0172\1\0\3\u0172\2\0\1\u0172" + "\3\u02cd\1\u0172\1\u02cd\1\u0172\1\u02ce\6\u0172\1\u02cd\1\0" + + "\2\u0172\1\0\4\u0172\1\u02ce\1\0\4\u0172\10\0\17\u0172" + "\4\0\11\u0172\1\u02cd\5\u0172\2\u02cd\1\u0172\12\0\6\u0172" + + "\1\0\3\u0172\2\0\1\u0172\3\u02cf\1\u0172\1\u02cf\1\u0175" + "\1\0\6\u0172\1\u02cf\1\0\2\u0172\1\0\4\u0172\2\0" + + "\4\u0172\10\0\17\u0172\4\0\11\u0172\1\u02cf\5\u0172\2\u02cf" + "\1\u0172\12\0\6\u0172\1\0\2\u0172\1\u0174\2\0\1\u0172" + + "\3\u0177\1\u0172\1\u0177\1\u0172\1\0\5\u0172\1\u0176\1\u0177" + "\1\0\2\u0172\1\0\3\u0172\1\u0176\2\0\1\u0174\3\u0172" + + "\10\0\5\u0172\1\u0176\5\u0172\1\u0176\3\u0172\4\0\11\u0172" + "\1\u0177\5\u0172\2\u0177\1\u0172\12\0\6\u0172\1\0\2\u0172" + + "\1\u0174\2\0\1\u0172\3\u0178\1\u0172\1\u0178\1\u0172\1\0" + "\5\u0172\1\u0176\1\u0178\1\0\2\u0172\1\0\3\u0172\1\u0176" + + "\1\0\1\u0177\1\u0174\3\u0172\10\0\5\u0172\1\u0176\5\u0172" + "\1\u0176\3\u0172\4\0\11\u0172\1\u0178\5\u0172\2\u0178\1\u0172" + + "\12\0\6\u0172\1\0\1\u0172\1\u02d0\1\u0174\2\0\1\u0172" + "\1\u0178\2\u0179\1\u0172\1\u0179\1\u017a\1\0\5\u0172\1\u0176" + + "\1\u0179\1\0\2\u0172\1\0\3\u0172\1\u0176\1\0\1\u0177" + "\1\u0174\1\u0172\1\u02d0\1\u0172\10\0\5\u0172\1\u0176\5\u0172" + + "\1\u0176\3\u0172\4\0\11\u0172\1\u0179\5\u0172\2\u0179\1\u0172" + "\12\0\6\u0172\1\0\3\u0172\2\0\2\u0172\2\u02d1\1\u0172" + + "\1\u02d1\1\u017a\1\0\6\u0172\1\u02d1\1\0\2\u0172\1\0" + "\4\u0172\2\0\4\u0172\10\0\17\u0172\4\0\11\u0172\1\u02d1" + + "\5\u0172\2\u02d1\1\u0172\12\0\1\u0172\1\u02d2\4\u0172\1\0" + "\2\u0172\1\u02d2\2\0\1\u0172\5\u02d2\1\u0172\1\0\5\u0172" + + "\2\u02d2\1\0\2\u0172\1\0\2\u02d2\1\u0172\1\u02d2\2\0" + "\2\u02d2\2\u0172\10\0\3\u0172\1\u02d2\1\u0172\1\u02d2\5\u0172" + + "\1\u02d2\3\u0172\4\0\11\u0172\1\u02d2\5\u0172\2\u02d2\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u02d3" + "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152" + "\1\u02d4\3\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\u02d5" + + "\5\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152" + "\1\u02d6\2\152\10\0\1\141\1\152\1\u01a1\14\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\7\152\1\u02d7\6\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\1\152\1\u02d8\4\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\5\152\1\u02d9" + + "\10\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + + "\1\0\4\152\2\0\2\152\1\u02da\1\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\13\152\1\u01a1" + + "\2\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\2\152\1\u02db\3\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\3\152\1\u02dc\2\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + + "\1\0\4\152\2\0\2\152\1\u02dd\1\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\1\u02de\15\152" + + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + "\7\152\1\0\1\u016f\1\152\1\u01a1\4\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152" + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\3\152\1\u02df\2\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152" + + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\1\u02e0\3\152\10\0\1\141\16\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\4\152\10\0\1\141\1\u02e1\15\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\2\152\1\u02e2\3\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\1\u02e3\5\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\2\152\1\u02e4\13\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\3\152" + "\1\u02e5\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\2\152\1\u02e6\13\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152" + + "\1\u02e7\3\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\7\152\1\u02e8\6\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\1\152\1\u02e9\2\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\3\152\1\u02ea\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\2\152\1\u02eb\3\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\3\152\1\u02ec\2\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\7\152\1\u02ed\6\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152" + "\1\u02ee\2\152\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\3\152\1\u02ef\2\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\1\u02f0\15\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\5\152\1\u02f1\10\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152" + + "\1\u02f2\3\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\3\152\1\u02e5\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152" + + "\1\u02f3\2\152\10\0\1\141\16\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\3\152\1\u02f4\2\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152" + + "\1\u02f5\2\152\10\0\1\141\16\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\4\152\1\u02f6\1\152\1\0\1\141\1\152\1\0\1\152" + "\1\u02f7\2\152\2\0\2\152\1\u02f8\1\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\1\u02f9\5\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152" + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\2\152\1\u02fa\3\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\3\152\1\u02fb\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + + "\1\0\3\152\1\u02fc\2\0\4\152\10\0\1\141\16\152" + "\4\0\1\152\1\u02fd\17\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\7\152" + + "\1\u02fe\6\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\2\152\1\u02ff\3\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\1\152\1\u0300\2\152\2\0\4\152\10\0" + + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\1\u0301" + "\4\152\1\u0302\10\152\4\0\21\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0303" + "\4\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\2\152\1\u0304\13\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\5\152\1\u0305\10\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\2\152\1\u0306\3\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\2\152" + "\1\u0307\1\152\10\0\1\141\5\152\1\u0308\10\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\16\152\4\0\1\152\1\u01a1" + "\17\152\14\0\1\u0309\7\0\1\u0309\3\0\5\u0309\7\0" + + "\2\u0309\4\0\2\u0309\1\0\1\u0309\2\0\2\u0309\15\0" + "\1\u0309\1\0\1\u0309\5\0\1\u0309\20\0\1\u0309\5\0" + + "\2\u0309\14\0\1\u030a\7\0\1\u030a\3\0\5\u030a\7\0" + "\2\u030a\4\0\2\u030a\1\0\1\u030a\2\0\2\u030a\15\0" + + "\1\u030a\1\0\1\u030a\5\0\1\u030a\20\0\1\u030a\5\0" + "\2\u030a\13\0\1\u030b\47\0\1\u030b\160\0\1\u030c\115\0" + + "\1\u030d\117\0\1\u030e\205\0\1\u030f\42\0\1\u0310\47\0" + "\1\u0310\160\0\1\u0311\115\0\1\u0312\117\0\1\u0313\205\0" + + "\1\u0314\54\0\1\u0315\125\0\6\u01bc\1\u01bd\3\u01bc\2\0" + "\1\u01bc\3\0\1\u01bc\4\0\5\u01bc\5\0\4\u01bc\2\0" + + "\4\u01bc\11\0\16\u01bc\4\0\11\u01bc\1\0\5\u01bc\2\0" + "\21\u01bc\1\u01bd\116\u01bc\104\0\1\u0316\115\0\1\u0317\135\0" + + "\1\u0318\117\0\1\u0319\34\0\1\u031a\2\0\1\u031b\144\0" + "\1\u031c\72\0\1\u031d\157\0\1\u031e\21\0\1\u031f\110\0" + + "\1\u0320\145\0\1\u0321\136\0\1\u0322\122\0\1\u0323\155\0" + "\1\u0324\136\0\1\u0325\121\0\1\u0326\205\0\1\u0327\111\0" + + "\1\u0328\14\0\1\u0329\1\0\1\u032a\1\u032b\6\0\1\u032c" + "\26\0\10\u01cf\1\u032d\26\u01cf\1\u032e\102\u01cf\1\u032f\5\u01cf" + + "\1\u0330\1\253\17\u01cf\2\253\1\u01cf\1\253\2\u01cf\1\253" + "\1\u0331\5\253\5\u01cf\1\253\54\u01cf\1\253\5\u01cf\2\253" + + "\2\u0332\1\u0333\6\u0332\1\u0259\126\u0332\11\u0333\1\u0259\126\u0333" + + "\2\u0332\1\u0333\5\u0332\1\u01d2\1\u0334\17\u0332\2\u0335\1\u0332" + + "\1\u0336\2\u0332\1\u01d2\1\u0337\4\u01d2\1\u0335\5\u0332\1\u01d2" + + "\54\u0332\1\u0336\5\u0332\2\u0336\2\u01d6\1\0\135\u01d6\51\0" + "\1\u0338\66\0\1\250\12\0\6\250\1\0\3\250\2\0" + + "\7\250\1\0\1\250\1\u0339\5\250\1\0\2\250\1\0" + "\4\250\2\0\4\250\7\0\20\250\4\0\22\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u033a\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\264\1\u033b\2\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u033c\1\u033d\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u033e" + + "\13\264\4\0\14\264\1\u033f\4\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0340" + + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0341" + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u0342\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0343" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u0344\15\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\11\264\1\u0345\4\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u0346\1\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0347" + + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u0348\1\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0349\2\264" + "\7\0\2\250\1\u034a\15\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u034b\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\2\264\1\u034c\1\264\7\0\2\250\11\264\1\u034d\4\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u034e\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\3\264\1\u034f\2\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u0350\1\264\1\u0351\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\3\264\1\u0352\2\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0353\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u0354\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u0355\7\0\2\250" + "\2\264\1\u0356\1\u0357\1\u0358\2\264\1\u0359\4\264\1\u035a" + + "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\2\264\1\u035b\1\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u035c\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\2\264\1\u035d" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\3\264\1\u035e\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\1\u035f\4\264\1\u0360\10\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\2\264\1\u0361\13\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\7\264\1\u0362\6\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u0363\3\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\1\u0364\15\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\7\264\1\u0365\6\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\1\264\1\u0366\4\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\11\264\1\u0367\4\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u0368\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\2\264\1\u0369\13\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\3\264\1\u036a\2\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\3\264\1\u036b\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\264\1\u036c\4\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u036d\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u036e\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u036f" + "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\7\264\1\u0370" + + "\6\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u0371\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\3\264\1\u0372\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\u0200\12\0\6\u0200\1\0\3\u0200\2\0\7\u0200" + "\1\0\7\u0200\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200" + + "\7\0\1\250\17\u0200\4\0\22\u0200\12\0\6\u0200\1\0" + "\3\u0200\2\0\1\u0200\3\u0373\1\u0200\1\u0373\1\u0200\1\u02ce" + + "\6\u0200\1\u0373\1\0\2\u0200\1\0\4\u0200\1\u02ce\1\0" + "\4\u0200\7\0\1\250\17\u0200\4\0\11\u0200\1\u0373\5\u0200" + + "\2\u0373\1\u0200\12\0\6\u0200\1\0\3\u0200\2\0\1\u0200" + "\3\u0374\1\u0200\1\u0374\1\u0203\1\0\6\u0200\1\u0374\1\0" + + "\2\u0200\1\0\4\u0200\2\0\4\u0200\7\0\1\250\17\u0200" + "\4\0\11\u0200\1\u0374\5\u0200\2\u0374\1\u0200\12\0\6\u0200" + + "\1\0\2\u0200\1\u0202\2\0\1\u0200\3\u0205\1\u0200\1\u0205" + "\1\u0200\1\0\5\u0200\1\u0204\1\u0205\1\0\2\u0200\1\0" + + "\3\u0200\1\u0204\1\0\1\u0177\1\u0202\3\u0200\7\0\1\250" + "\5\u0200\1\u0204\5\u0200\1\u0204\3\u0200\4\0\11\u0200\1\u0205" + + "\5\u0200\2\u0205\1\u0200\12\0\6\u0200\1\0\1\u0200\1\u0375" + "\1\u0202\2\0\1\u0200\1\u0205\2\u0206\1\u0200\1\u0206\1\u0207" + + "\1\0\5\u0200\1\u0204\1\u0206\1\0\2\u0200\1\0\3\u0200" + "\1\u0204\1\0\1\u0177\1\u0202\1\u0200\1\u0375\1\u0200\7\0" + + "\1\250\5\u0200\1\u0204\5\u0200\1\u0204\3\u0200\4\0\11\u0200" + "\1\u0206\5\u0200\2\u0206\1\u0200\12\0\6\u0200\1\0\3\u0200" + + "\2\0\2\u0200\2\u0376\1\u0200\1\u0376\1\u0207\1\0\6\u0200" + "\1\u0376\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200\7\0" + + "\1\250\17\u0200\4\0\11\u0200\1\u0376\5\u0200\2\u0376\1\u0200" + "\12\0\6\u0200\1\0\3\u0200\2\0\2\u0200\2\u0377\3\u0200" + + "\1\0\7\u0200\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200" + "\7\0\1\250\17\u0200\4\0\22\u0200\12\0\1\u0200\1\u0378" + + "\4\u0200\1\0\2\u0200\1\u0378\2\0\1\u0200\5\u0378\1\u0200" + "\1\0\5\u0200\2\u0378\1\0\2\u0200\1\0\2\u0378\1\u0200" + + "\1\u0378\2\0\2\u0378\2\u0200\7\0\1\250\3\u0200\1\u0378" + "\1\u0200\1\u0378\5\u0200\1\u0378\3\u0200\4\0\11\u0200\1\u0378" + + "\5\u0200\2\u0378\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u0379\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\264\1\u037a\4\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + + "\1\u037b\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u037c\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\3\264\1\u037d\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\7\264\1\u037e\6\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\2\264\1\u037f\3\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\u0380\5\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\264\1\u0381\2\264\7\0\2\250" + "\1\264\1\u0237\14\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0382" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\5\264\1\u0383\10\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + "\1\u0384\1\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\13\264\1\u0237\2\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\2\264\1\u0385\3\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + + "\1\u0386\1\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\1\u0387\15\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u0237\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u0388\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264" + "\1\u0389\1\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u038a" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\1\u038b\15\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u038c\3\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u038d\3\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u038e\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u038f\15\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u0390\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u0391\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0392\15\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\264\1\u0393\4\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\2\264\1\u0394\1\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\u0395\5\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\3\264\1\u0396\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u0397\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\3\264\1\u0398\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u0399\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u039a\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\7\264\1\u039b\6\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u039c\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u039d\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u039e\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\1\u039f\15\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\5\264\1\u03a0\10\264\4\0\21\264\1\250" + "\12\0\6\u022f\1\0\3\u022f\2\0\7\u022f\1\0\1\u03a1" + + "\6\u022f\1\0\1\250\1\u022f\1\0\4\u022f\2\0\4\u022f" + "\7\0\2\250\16\u022f\4\0\21\u022f\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03a2" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u0396\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u03a3" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u03a4\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u03a5" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264" + "\1\u03a6\1\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u03a7" + + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03a8" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u03a9\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\7\264\1\u03aa\6\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u03ab\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\1\264\1\u03ac\2\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u03ad\4\264\1\u03ae\10\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\2\264\1\u03af\13\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\7\264\1\u03b0\6\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\14\264\1\u03b1\4\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u03b2\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\u03b3\5\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\2\264\1\u03b4\13\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\5\264\1\u03b5\10\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u03b6" + + "\1\264\7\0\2\250\5\264\1\u03b7\10\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\2\264\1\u03b8\3\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\3\264\1\u03b9\7\0\2\250\16\264\4\0\15\264\1\u03ba" + "\3\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u03bb\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\2\264\1\u03bc\1\264\7\0\2\250\11\264\1\u03bd" + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u03be" + + "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\14\264\1\u03bf" + "\1\264\4\0\21\264\1\250\12\0\1\u03c0\1\u03c1\4\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03c2" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03c3" + + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\7\264\1\u03c4\6\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u03c5\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\3\264\1\u03c6\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u03c7\7\0" + + "\2\250\2\264\1\u03c8\12\264\1\u03c9\4\0\21\264\1\250" + "\12\0\3\264\1\u03ca\2\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u03cb" + + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u03b1\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u03cc" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\2\264\1\u03cd\13\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\5\264\1\u03ce\10\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\1\264\1\u03cf\4\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + "\1\u03d0\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\5\264\1\u03d1\10\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u03d2" + "\2\264\7\0\2\250\16\264\4\0\21\264\2\333\1\0" + + "\1\333\1\0\2\333\4\0\6\333\1\0\61\333\1\u03d3" + "\36\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0" + + "\55\333\1\u03d4\42\333\1\0\1\333\1\0\2\333\4\0" + "\6\333\1\0\61\333\1\u03d5\34\333\13\0\1\u03d6\47\0" + + "\1\u03d6\67\0\6\u025f\1\0\3\u025f\2\0\10\u025f\1\0" + "\6\u025f\4\0\4\u025f\1\0\5\u025f\11\0\16\u025f\4\0" + + "\21\u025f\75\0\1\u03d7\123\0\1\u03d8\120\0\1\u03d9\32\0" + "\1\u03da\137\0\1\u03db\4\0\1\u03dc\100\0\1\u03dd\42\0" + + "\1\u03de\130\0\1\u03df\121\0\1\u03e0\20\0\1\u03e1\101\0" + "\1\u03e2\6\0\1\u03e3\5\0\1\u03e4\121\0\1\u03e5\174\0" + + "\1\u03e6\134\0\1\u03e7\144\0\1\u03e8\137\0\1\u03e9\50\0" + "\6\u026d\1\0\3\u026d\2\0\10\u026d\1\0\6\u026d\4\0" + + "\4\u026d\1\0\5\u026d\11\0\16\u026d\4\0\21\u026d\106\0" + "\1\u03ea\136\0\2\u026f\137\0\1\u026f\74\0\1\u026f\136\0" + + "\1\u026f\34\0\1\u026f\5\0\1\u026f\115\0\1\u026f\22\0" + "\1\u026f\44\0\2\u0116\1\u03eb\3\u0116\1\0\3\u0116\2\0" + + "\6\u0116\3\0\1\u0116\1\u03eb\4\u0116\4\0\4\u0116\2\0" + "\4\u0116\11\0\16\u0116\4\0\21\u0116\13\0\6\u0116\1\0" + + "\1\u03ec\2\u0116\2\0\6\u0116\3\0\6\u0116\4\0\4\u0116" + "\2\0\4\u0116\11\0\1\u0116\1\u03ec\14\u0116\4\0\21\u0116" + + "\36\0\1\u03ed\137\0\1\u03ee\171\0\1\u03ef\127\0\1\u0282" + "\163\0\1\u03f0\112\0\1\u03f1\60\0\2\73\1\0\1\73" + + "\1\0\2\73\4\0\3\73\1\u03f2\2\73\1\0\60\73" + "\1\u03f2\37\73\1\0\1\73\1\0\2\73\4\0\1\73" + + "\1\u02a1\4\73\1\0\21\73\1\120\33\73\1\u02a1\20\73" + "\1\120\21\73\1\0\1\73\1\0\2\73\4\0\3\73" + + "\1\u03f3\2\73\1\0\53\73\1\u03f4\4\73\1\u03f3\14\73" + "\1\u03f4\22\73\1\0\1\73\1\0\2\73\4\0\5\73" + + "\1\u03f5\1\0\20\73\1\u03f5\77\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\67\73\1\u02a1\14\73\1\u02a1" + + "\13\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\2\73\1\u03f6\33\73\1\u03f6\61\73\1\0\1\73\1\0" + + "\2\73\4\0\4\73\1\120\1\73\1\0\62\73\1\120" + "\35\73\1\0\1\73\1\0\2\73\4\0\2\73\1\u03f7" + + "\3\73\1\0\17\73\1\u03f7\100\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\1\73\1\u02bc\36\73\1\u02bc" + + "\57\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\2\73\1\120\33\73\1\120\61\73\1\0\1\73\1\0" + + "\2\73\4\0\5\73\1\u02a1\1\0\20\73\1\u02a1\77\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\67\73" + + "\1\u03f8\14\73\1\u03f8\13\73\1\0\1\73\1\0\2\73" + "\4\0\6\73\1\0\61\73\1\u03f9\17\73\1\u03f9\16\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\64\73" + "\1\u03fa\12\73\1\u03fa\20\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\21\73\1\u03fb\54\73\1\u03fb\21\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\u02a1" + + "\53\73\1\u02a1\43\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\16\73\1\u02ac\61\73\1\u02ac\17\73\1\0" + + "\1\73\1\0\2\73\4\0\6\73\1\0\11\73\1\u03fc" + "\25\73\1\u03fc\60\73\1\0\1\73\1\0\2\73\4\0" + + "\6\73\1\0\61\73\1\u02ab\17\73\1\u02ab\16\73\1\0" + "\1\73\1\0\2\73\4\0\3\73\1\u03fd\2\73\1\0" + + "\60\73\1\u03fd\37\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\11\73\1\u02b3\25\73\1\u02b3\60\73\1\0" + + "\1\73\1\0\2\73\4\0\5\73\1\u03fe\1\0\20\73" + "\1\u03fe\77\73\1\0\1\73\1\0\2\73\4\0\6\73" + + "\1\0\53\73\1\u02ac\21\73\1\u02ac\22\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0164\25\73" + + "\1\u0164\60\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\70\73\1\120\11\73\1\120\15\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\2\73\1\u03ff\33\73" + "\1\u03ff\61\73\1\0\1\73\1\0\2\73\4\0\6\73" + + "\1\0\2\73\1\u0162\33\73\1\u0162\61\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\2\73\1\u02bc\33\73" + + "\1\u02bc\61\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\2\73\1\u0164\33\73\1\u0164\61\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\21\73\1\u0400\54\73" + "\1\u0400\21\73\1\0\1\73\1\0\2\73\4\0\6\73" + + "\1\0\57\73\1\u0290\5\73\1\u0290\32\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\53\73\1\u0401\21\73" + + "\1\u0401\22\73\1\0\1\73\1\0\2\73\4\0\3\73" + "\1\u0402\2\73\1\0\60\73\1\u0402\37\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\11\73\1\120\25\73" + "\1\120\60\73\1\0\1\73\1\0\2\73\4\0\6\73" + + "\1\0\1\73\1\u0403\36\73\1\u0403\57\73\1\0\1\73" + "\1\0\2\73\4\0\3\73\1\u0153\2\73\1\0\60\73" + + "\1\u0153\37\73\1\0\1\73\1\0\2\73\4\0\2\73" + "\1\u0404\3\73\1\0\17\73\1\u0404\100\73\1\0\1\73" + + "\1\0\2\73\4\0\5\73\1\120\1\0\20\73\1\120" + "\77\73\1\0\1\73\1\0\2\73\4\0\1\73\1\u0122" + + "\4\73\1\0\55\73\1\u0122\42\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\64\73\1\u0405\12\73\1\u0405" + + "\20\73\1\0\1\73\1\0\2\73\4\0\2\73\1\u0406" + "\3\73\1\0\17\73\1\u0406\100\73\1\0\1\73\1\0" + + "\2\73\4\0\6\73\1\0\64\73\1\u0407\12\73\1\u0407" + "\20\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\1\73\1\u0408\36\73\1\u0408\57\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\16\73\1\u0409\61\73\1\u0409" + + "\17\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\64\73\1\120\12\73\1\120\20\73\1\0\1\73\1\0" + + "\2\73\4\0\1\73\1\u040a\4\73\1\0\55\73\1\u040a" + "\42\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\2\73\1\u040b\33\73\1\u040b\61\73\1\0\1\73\1\0" + "\2\73\4\0\5\73\1\u040c\1\0\20\73\1\u040c\77\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\1\120" + "\53\73\1\120\43\73\1\0\1\73\1\0\2\73\4\0" + + "\6\73\1\0\53\73\1\u040d\21\73\1\u040d\22\73\1\0" + "\1\73\1\0\2\73\4\0\3\73\1\u040c\2\73\1\0" + + "\60\73\1\u040c\1\u03f9\17\73\1\u03f9\16\73\1\0\1\73" + "\1\0\2\73\4\0\4\73\1\u0297\1\73\1\0\62\73" + + "\1\u0297\35\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\57\73\1\u040e\5\73\1\u040e\32\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\1\73\1\u040f\36\73" + "\1\u040f\57\73\1\0\1\73\1\0\2\73\4\0\6\73" + + "\1\0\11\73\1\u0410\25\73\1\u0410\60\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0411\25\73" + + "\1\u0411\60\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\2\73\1\u0162\6\73\1\120\24\73\1\u0162\1\120" + + "\60\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\16\73\1\120\61\73\1\120\17\73\1\0\1\73\1\0" + + "\2\73\4\0\6\73\1\0\70\73\1\120\11\73\1\120" + "\1\u0412\5\73\1\u0412\6\73\1\0\1\73\1\0\2\73" + + "\4\0\5\73\1\u0413\1\0\20\73\1\u0413\77\73\1\0" + "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u0153" + + "\33\73\1\u0153\61\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\61\73\1\u0414\17\73\1\u0414\14\73\14\0" + + "\1\u0415\62\0\1\u0415\142\0\2\u02c9\2\0\1\u02c9\43\0" + "\1\u0416\125\0\1\141\12\0\1\141\1\u0417\4\141\1\0" + + "\2\141\1\u0417\2\0\1\141\5\u0417\1\141\1\0\5\141" + "\2\u0417\1\0\2\141\1\0\2\u0417\1\141\1\u0417\2\0" + + "\2\u0417\2\141\10\0\3\141\1\u0417\1\141\1\u0417\5\141" + "\1\u0417\3\141\4\0\11\141\1\u0417\5\141\2\u0417\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\5\152\1\u0418\10\152\4\0\21\152\1\u0172" + "\12\0\6\u0172\1\0\3\u0172\2\0\1\u0172\3\u02cd\1\u0172" + + "\1\u02cd\1\u0172\1\0\5\u0172\1\u0176\1\u02cd\1\0\2\u0172" + "\1\0\3\u0172\1\u0176\2\0\4\u0172\10\0\5\u0172\1\u0176" + + "\5\u0172\1\u0176\3\u0172\4\0\11\u0172\1\u02cd\5\u0172\2\u02cd" + "\30\0\3\u02cd\1\0\1\u02cd\10\0\1\u02cd\62\0\1\u02cd" + + "\5\0\2\u02cd\1\u0172\12\0\6\u0172\1\0\1\u0172\1\u0173" + "\1\u0172\2\0\1\u0172\3\u02cf\1\u0172\1\u02cf\1\u0175\1\0" + + "\6\u0172\1\u02cf\1\0\2\u0172\1\0\4\u0172\2\0\2\u0172" + "\1\u0173\1\u0172\10\0\17\u0172\4\0\11\u0172\1\u02cf\5\u0172" + + "\2\u02cf\1\u0172\12\0\6\u0172\1\0\1\u0172\1\u02d0\1\u0172" + "\2\0\2\u0172\2\u02d1\1\u0172\1\u02d1\1\u017a\1\0\6\u0172" + + "\1\u02d1\1\0\2\u0172\1\0\4\u0172\2\0\2\u0172\1\u02d0" + "\1\u0172\10\0\17\u0172\4\0\11\u0172\1\u02d1\5\u0172\2\u02d1" + + "\1\u0172\12\0\1\u0172\1\u02d2\4\u0172\1\0\1\u0172\1\u02d0" + "\1\u02d2\2\0\1\u0172\5\u02d2\1\u0419\1\0\5\u0172\2\u02d2" + + "\1\0\2\u0172\1\0\2\u02d2\1\u0172\1\u02d2\2\0\2\u02d2" + "\1\u02d0\1\u0172\10\0\3\u0172\1\u02d2\1\u0172\1\u02d2\5\u0172" + + "\1\u02d2\3\u0172\4\0\11\u0172\1\u02d2\5\u0172\2\u02d2\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\3\152" + "\1\u018f\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\u041a" + "\5\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\1\u041b\3\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u041c\2\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\1\u041d\3\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\1\u041e\15\152" + + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\3\152\1\u01a1\10\0\1\141\16\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\2\152\1\u01a1\1\152\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\5\152\1\u041f\10\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\4\152\10\0\1\141\2\152\1\u0420\13\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\3\152\1\u02d5\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\1\152\1\u0421\2\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\1\152\1\u0422\2\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\1\152\1\u0423\2\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\2\152\1\u0424\1\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\1\u0425\3\152\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\11\152\1\u01a1\4\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\3\152\1\u0426\12\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u01a1" + + "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\1\152\1\u0427" + "\2\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\1\u0428\3\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\1\u0429\15\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\2\152\1\u042a\1\152\10\0" + + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\2\152\1\u042b\3\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\6\152" + + "\1\u0425\7\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\1\u0187\3\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\2\152\1\u042c\3\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + + "\1\0\4\152\2\0\4\152\10\0\1\141\2\152\1\u042d" + "\13\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\1\152\1\u0421\4\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\2\152\1\u02f2\3\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\2\152\1\u0306" + + "\13\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + + "\1\0\4\152\2\0\3\152\1\u02d9\10\0\1\141\16\152" + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\2\152\1\u042e\3\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\3\152\1\u042f\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\1\152\1\u0425\4\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\1\152\1\u0430\2\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\1\u0431\5\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152" + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0" + "\4\152\2\0\1\u0432\3\152\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\1\152" + + "\1\u0433\2\152\2\0\4\152\10\0\1\141\16\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\1\u0434\3\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\2\152\1\u0435\3\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\5\152\1\u0436\10\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\1\152\1\u0437\2\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\2\152\1\u0438\1\152\10\0\1\141\1\u0429\15\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\1\u01a1\15\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\2\152\1\u042c\1\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\2\152\1\u0439\3\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\14\152\1\u043a\1\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\3\152\1\u043b\10\0\1\141\16\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\15\152\1\u043c\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\2\152\1\u02e5" + + "\1\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\3\152\1\u01a1\12\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\1\152\1\u043d" + + "\2\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\4\152\1\u01a1\11\152\4\0\21\152\14\0\1\u043e" + + "\7\0\1\u043e\3\0\5\u043e\7\0\2\u043e\4\0\2\u043e" + "\1\0\1\u043e\2\0\2\u043e\15\0\1\u043e\1\0\1\u043e" + + "\5\0\1\u043e\20\0\1\u043e\5\0\2\u043e\14\0\1\u043f" + "\7\0\1\u043f\3\0\5\u043f\7\0\2\u043f\4\0\2\u043f" + + "\1\0\1\u043f\2\0\2\u043f\15\0\1\u043f\1\0\1\u043f" + "\5\0\1\u043f\20\0\1\u043f\5\0\2\u043f\14\0\1\u0440" + + "\62\0\1\u0440\130\0\1\u0441\127\0\1\u030c\163\0\1\u0442" + "\112\0\1\u0443\74\0\1\u0444\62\0\1\u0444\130\0\1\u0445" + + "\127\0\1\u0311\163\0\1\u0446\112\0\1\u0447\101\0\1\u0448" + "\206\0\1\u0449\127\0\1\u0316\121\0\1\u044a\137\0\1\u044b" + + "\176\0\1\u044c\77\0\1\u044d\157\0\1\u044e\15\0\1\u044f" + "\102\0\1\u0450\136\0\1\u0451\16\0\1\u0452\122\0\1\u0453" + + "\157\0\1\u0454\116\0\1\u0455\201\0\1\u0456\75\0\1\u0457" + "\36\0\1\u0458\77\0\1\u0459\137\0\1\u045a\202\0\1\u045b" + + "\112\0\1\u045c\162\0\1\u045d\132\0\1\u045e\137\0\1\u045f" + "\105\0\1\u0460\155\0\1\u0461\56\0\2\u01cf\1\u032f\5\u01cf" + + "\1\u0462\127\u01cf\10\u032f\1\u032d\127\u032f\2\u0330\1\u0462\5\u0330" + + "\1\u01d0\26\u0330\1\u0463\100\u0330\10\u01cf\1\u032d\3\u01cf\1\u0464" + + "\7\u01cf\1\u0464\3\u01cf\5\u0464\2\u01cf\1\u032e\4\u01cf\2\u0464" + + "\4\u01cf\2\u0464\1\u01cf\1\u0464\2\u01cf\2\u0464\15\u01cf\1\u0464" + + "\1\u01cf\1\u0464\5\u01cf\1\u0464\20\u01cf\1\u0464\5\u01cf\2\u0464" + + "\2\u0332\1\u0333\6\u0332\1\u01d4\126\u0332\11\u0333\1\u01d4\126\u0333" + + "\11\0\1\u0259\126\0\2\u0332\1\u0333\6\u0332\1\u0259\17\u0332" + + "\2\u0336\1\u0332\1\u0336\10\u0332\1\u0336\62\u0332\1\u0336\5\u0332" + + "\2\u0336\2\u0332\1\u0333\6\u0332\1\u0259\17\u0332\2\u01d2\1\u0332" + + "\1\u01d2\10\u0332\1\u01d2\62\u0332\1\u01d2\5\u0332\2\u01d2\2\u0332" + + "\1\u0333\6\u0332\1\u01d4\2\u0332\1\u0465\7\u0332\1\u0465\3\u0332" + + "\5\u0465\7\u0332\2\u0465\4\u0332\2\u0465\1\u0332\1\u0465\2\u0332" + + "\2\u0465\15\u0332\1\u0465\1\u0332\1\u0465\5\u0332\1\u0465\20\u0332" + + "\1\u0465\5\u0332\2\u0465\1\250\12\0\1\250\1\u0466\4\250" + "\1\0\2\250\1\u0466\2\0\1\250\5\u0466\1\250\1\0" + + "\5\250\2\u0466\1\0\2\250\1\0\2\u0466\1\250\1\u0466" + "\2\0\2\u0466\2\250\7\0\4\250\1\u0466\1\250\1\u0466" + + "\5\250\1\u0466\3\250\4\0\11\250\1\u0466\5\250\2\u0466" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u0467\3\264\7\0\2\250\5\264\1\u0468\10\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\2\264\1\u0469\13\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\5\264\1\u046a\6\264\1\u046b" + + "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\u046c\5\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u046d\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u046e\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\2\264\1\u046f\13\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u0470\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\3\264\1\u0471\2\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u0472\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\7\264\1\u0473\6\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\5\264\1\u0474\10\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u0475\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u0476\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\3\264\1\u0477\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u0478\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\3\264\1\u0479\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\3\264\1\u047a\7\0\2\250\2\264\1\u047b\13\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\2\264\1\u047c\1\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\7\264\1\u047d\6\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u047e\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u047f\1\u0480\2\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\4\264\1\u0481\11\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u0482\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\4\264\1\u0483\11\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u0484\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\1\u0485\5\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u0486\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u0487\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\1\u0488\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u0489\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u048a" + + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u048b" + + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u048c\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u048d" + + "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u048e" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u048f\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u01f9\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\10\264\1\u0490\5\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\3\264\1\u0491\12\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\2\264\1\u0492\4\264\1\u0493\6\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\3\264\1\u0494\2\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0495" + "\10\264\1\u0496\4\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\15\264\1\u0497\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u0498\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0499\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\2\264" + "\1\u049a\16\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u049b\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u049c\3\264\7\0\2\250\1\u049d\15\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u049e\3\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\6\264\1\u049f\7\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u04a0\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u04a1\3\264\7\0\2\250\15\264\1\u04a2\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\2\264\1\u04a3\3\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\1\u04a4\15\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\11\264\1\u04a5\4\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u04a6" + + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u04a7\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u04a8" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04a9" + + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\2\264\1\u04aa\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\u0200\12\0\6\u0200\1\0" + "\3\u0200\2\0\1\u0200\3\u0373\1\u0200\1\u0373\1\u0200\1\0" + + "\5\u0200\1\u0204\1\u0373\1\0\2\u0200\1\0\3\u0200\1\u0204" + "\2\0\4\u0200\7\0\1\250\5\u0200\1\u0204\5\u0200\1\u0204" + + "\3\u0200\4\0\11\u0200\1\u0373\5\u0200\2\u0373\1\u0200\12\0" + "\6\u0200\1\0\1\u0200\1\u0201\1\u0200\2\0\1\u0200\3\u0374" + + "\1\u0200\1\u0374\1\u0203\1\0\6\u0200\1\u0374\1\0\2\u0200" + "\1\0\4\u0200\2\0\2\u0200\1\u0201\1\u0200\7\0\1\250" + + "\17\u0200\4\0\11\u0200\1\u0374\5\u0200\2\u0374\1\u0200\12\0" + "\6\u0200\1\0\1\u0200\1\u0375\1\u0200\2\0\2\u0200\2\u0376" + + "\1\u0200\1\u0376\1\u0207\1\0\6\u0200\1\u0376\1\0\2\u0200" + "\1\0\4\u0200\2\0\2\u0200\1\u0375\1\u0200\7\0\1\250" + + "\17\u0200\4\0\11\u0200\1\u0376\5\u0200\2\u0376\1\u0200\12\0" + "\6\u0200\1\0\3\u0200\2\0\2\u0200\2\u0377\2\u0200\1\u04ab" + + "\1\0\7\u0200\1\0\2\u0200\1\0\4\u0200\2\0\4\u0200" + "\7\0\1\250\17\u0200\4\0\22\u0200\12\0\1\u0200\1\u0378" + + "\4\u0200\1\0\1\u0200\1\u0375\1\u0378\2\0\1\u0200\5\u0378" + "\1\u04ac\1\0\5\u0200\2\u0378\1\0\2\u0200\1\0\2\u0378" + + "\1\u0200\1\u0378\2\0\2\u0378\1\u0375\1\u0200\7\0\1\250" + "\3\u0200\1\u0378\1\u0200\1\u0378\5\u0200\1\u0378\3\u0200\4\0" + + "\11\u0200\1\u0378\5\u0200\2\u0378\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u04ad" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u04ae\2\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u04af\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\2\264\1\u04b0\3\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u04b1\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u04b2\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\u04b3\5\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u04b4\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u04b5\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\1\u04b6\15\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u0237" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u0237\1\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\5\264\1\u04b7\10\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0380\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u04b8\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u04b9\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u04ba\1\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u04bb\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\2\264\1\u04bc\3\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u04bd\1\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u04be\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\1\u04bf\5\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\264\1\u04c0\2\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u04c1\1\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u04c2\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\3\264\1\u04c3\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u0472\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\11\264\1\u04c4\4\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u04c5\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u04c6\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\11\264\1\u0237\4\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u0237\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u04c7\3\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u04c8\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u04c9\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\6\264\1\u04c2\7\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0217" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\5\264\1\u04ca\10\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u04cb\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\2\264\1\u04cc\13\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u04b8\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u03a2\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\250\1\0\3\250\2\0\7\250\1\0\1\250\1\u04cd" + + "\5\250\1\0\2\250\1\0\4\250\2\0\4\250\7\0" + "\20\250\4\0\22\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u04ce\13\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\3\264\1\u0383\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u04cf\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\3\264\1\u04d0\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\264\1\u04c2\4\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u04d1\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\1\264\1\u04d2\2\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u04d3\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u04d4\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\2\264\1\u04d5\1\264\7\0\2\250\1\u04c9\15\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\1\u0237\15\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\2\264\1\u04cb\1\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u04d6\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\14\264\1\u04d7\1\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\15\264\1\u04d8\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\2\264\1\u04d9\1\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\1\u04da\5\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u033d" + "\1\u04db\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\1\264\1\u04dc\2\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\2\264\1\u04dd\3\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + + "\1\u0396\1\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + "\1\u04de\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\4\264\1\u0237\11\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\7\264\1\u04df\6\264\4\0\1\u04e0\20\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u04e1\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u04e2" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\5\264\1\u04e3\10\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u04e4" + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\1\264\1\u04e5\2\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u04e6" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\5\264\1\u04e7\10\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u04e8" + + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u04e9\1\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\1\u04ea" + "\5\264\1\0\3\264\2\0\4\264\1\u04eb\2\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\3\264\1\u033d\12\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\1\0\1\u04ec\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u04ed\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\12\264" + "\1\u04ee\3\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\u04ef\5\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u04f0\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\3\264\1\u04f1\12\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04f2" + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\12\264\1\u033d\3\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\6\264\1\u04f3\7\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u04f4\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u036c" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\4\264\1\u033d\11\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u04f5" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\3\264\1\u04f6\12\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u04f7" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\15\264\1\u04f8\4\0\21\264\2\333\1\0\1\333\1\0" + + "\2\333\4\0\6\333\1\0\40\333\1\u04f9\57\333\1\0" + "\1\333\1\0\2\333\4\0\6\333\1\0\40\333\1\u04fa" + + "\57\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0" + "\36\333\1\u04fb\57\333\20\0\1\u04fc\21\0\1\u04fc\172\0" + + "\1\u03da\103\0\1\u04fd\176\0\1\u04fe\101\0\1\337\174\0" + "\1\u04ff\101\0\1\u0500\157\0\1\u0501\162\0\1\u0502\75\0" + + "\1\u0503\140\0\1\u0504\17\0\1\u0505\117\0\1\u0506\176\0" + "\1\u0507\115\0\1\u0508\123\0\1\u0509\155\0\1\u050a\135\0" + + "\1\u050b\170\0\1\u050c\111\0\1\u03dd\137\0\1\u050d\160\0" + "\1\u050e\46\0\3\u0116\1\u050f\2\u0116\1\0\3\u0116\2\0" + + "\6\u0116\3\0\6\u0116\4\0\4\u0116\2\0\4\u0116\11\0" + "\5\u0116\1\u050f\10\u0116\4\0\21\u0116\13\0\6\u0116\1\0" + + "\1\u0116\1\u0510\1\u0116\2\0\6\u0116\3\0\6\u0116\4\0" + "\4\u0116\2\0\2\u0116\1\u0510\1\u0116\11\0\16\u0116\4\0" + + "\21\u0116\12\0\1\u0511\210\0\1\u0282\4\0\1\u03ef\54\0" + "\3\u0512\1\0\1\u0512\7\u03f1\1\0\3\u03f1\2\u0512\6\u03f1" + + "\2\u0512\1\0\6\u03f1\1\0\1\u0512\1\u03f1\1\u0512\4\u03f1" + "\2\u0512\4\u03f1\1\0\1\u0512\1\0\3\u0512\2\0\1\u0512" + + "\16\u03f1\2\u0512\1\0\1\u0512\21\u03f1\2\73\1\0\1\73" + "\1\0\2\73\4\0\4\73\1\u02ac\1\73\1\0\62\73" + + "\1\u02ac\35\73\1\0\1\73\1\0\2\73\4\0\6\73" + "\1\0\70\73\1\u0290\11\73\1\u0290\15\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\21\73\1\u0133\54\73" + "\1\u0133\21\73\1\0\1\73\1\0\2\73\4\0\3\73" + + "\1\u040c\2\73\1\0\60\73\1\u040c\37\73\1\0\1\73" + "\1\0\2\73\4\0\1\73\1\u02ac\4\73\1\0\55\73" + + "\1\u02ac\42\73\1\0\1\73\1\0\2\73\4\0\1\73" + "\1\u0290\4\73\1\0\55\73\1\u0290\42\73\1\0\1\73" + + "\1\0\2\73\4\0\6\73\1\0\11\73\1\u0513\25\73" + "\1\u0513\60\73\1\0\1\73\1\0\2\73\4\0\2\73" + + "\1\u0514\3\73\1\0\17\73\1\u0514\100\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\2\73\1\u0515\6\73" + + "\1\u03ff\24\73\1\u0515\1\u03ff\60\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\57\73\1\u0516\5\73\1\u0516" + + "\32\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\64\73\1\u0290\12\73\1\u0290\20\73\1\0\1\73\1\0" + + "\2\73\4\0\6\73\1\0\21\73\1\u0517\54\73\1\u0517" + "\21\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\11\73\1\u0518\25\73\1\u0518\60\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\21\73\1\u0164\54\73\1\u0164" + + "\21\73\1\0\1\73\1\0\2\73\4\0\5\73\1\u0519" + "\1\0\20\73\1\u0519\77\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\21\73\1\u051a\54\73\1\u051a\21\73" + "\1\0\1\73\1\0\2\73\4\0\1\73\1\u012e\4\73" + + "\1\0\55\73\1\u012e\42\73\1\0\1\73\1\0\2\73" + "\4\0\6\73\1\0\2\73\1\u02ac\33\73\1\u02ac\61\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73" + "\1\u051b\33\73\1\u051b\61\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\11\73\1\u051c\25\73\1\u051c\60\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73" + + "\1\u051d\33\73\1\u051d\61\73\1\0\1\73\1\0\2\73" + "\4\0\6\73\1\0\57\73\1\u051e\5\73\1\u051e\32\73" + + "\1\0\1\73\1\0\2\73\4\0\2\73\1\u0290\3\73" + "\1\0\17\73\1\u0290\100\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\70\73\1\u051f\11\73\1\u051f\15\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\22\73" + + "\1\u0520\10\73\1\u0520\64\73\1\0\1\73\1\0\2\73" + "\4\0\6\73\1\0\53\73\1\u015d\21\73\1\u015d\22\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\16\73" + "\1\u03ff\61\73\1\u03ff\17\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\53\73\1\u0133\21\73\1\u0133\22\73" + "\1\0\1\73\1\0\2\73\4\0\3\73\1\u0521\2\73" + + "\1\0\60\73\1\u0521\37\73\1\0\1\73\1\0\2\73" + "\4\0\5\73\1\u0522\1\0\1\73\1\u0523\16\73\1\u0522" + + "\17\73\1\u0523\20\73\1\u0524\17\73\1\u0524\16\73\1\0" + "\1\73\1\0\2\73\4\0\6\73\1\0\16\73\1\u0525" + + "\61\73\1\u0525\17\73\1\0\1\73\1\0\2\73\4\0" + "\3\73\1\u0526\2\73\1\0\60\73\1\u0526\37\73\1\0" + + "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u015d" + "\33\73\1\u015d\57\73\15\0\1\u0527\23\0\1\u0527\76\0" + + "\1\141\12\0\1\141\1\u0528\4\141\1\0\2\141\1\u0528" + "\2\0\1\141\5\u0528\1\141\1\0\5\141\2\u0528\1\0" + + "\2\141\1\0\2\u0528\1\141\1\u0528\2\0\2\u0528\2\141" + "\10\0\3\141\1\u0528\1\141\1\u0528\5\141\1\u0528\3\141" + + "\4\0\11\141\1\u0528\5\141\2\u0528\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u0529" + + "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\16\152\4\0\21\152\1\u0172\12\0\1\u0172" + + "\1\u02d2\4\u0172\1\0\2\u0172\1\u02d2\2\0\1\u0172\5\u02d2" + "\1\u0419\1\0\5\u0172\2\u02d2\1\0\2\u0172\1\0\2\u02d2" + + "\1\u0172\1\u02d2\2\0\2\u02d2\2\u0172\10\0\3\u0172\1\u02d2" + "\1\u0172\1\u02d2\5\u0172\1\u02d2\3\u0172\4\0\11\u0172\1\u02d2" + + "\5\u0172\2\u02d2\1\141\12\0\6\152\1\0\3\152\2\0" + "\7\152\1\0\1\u016f\1\152\1\u052a\4\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152" + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0" + "\4\152\2\0\3\152\1\u052b\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\1\u052c\15\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\13\152\1\u052d\2\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\4\152\10\0\1\141\14\152\1\u02e5\1\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\2\152\1\u052e\3\152\1\0\1\141\1\152\1\0" + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\2\152\1\u0425\3\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\2\152\1\u052f\1\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\4\152\10\0\1\141\15\152\1\u01a1\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u0530" + "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\7\152\1\u0531\6\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152" + + "\1\u0532\2\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152" + "\1\u042f\4\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152" + + "\1\u0533\4\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\5\152\1\u0534\10\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\3\152\1\u0535\12\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\5\152\1\u0536\10\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152" + + "\1\u01a1\3\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\1\u0537" + "\5\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\6\152\1\u0538\7\152\4\0\21\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152\1\u02e5" + "\3\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\2\152\1\u02e2\1\152" + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0539" + "\4\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\1\152\1\u053a\2\152" + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u053b" + "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\16\152\4\0\1\152\1\u042a\17\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\1\u053c\3\152\10\0" + + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\1\u053d\3\152\10\0\1\141" + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\1\152\1\u0432\2\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + + "\1\0\4\152\2\0\1\u053e\3\152\10\0\1\141\16\152" + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0" + "\4\152\2\0\1\152\1\u053f\2\152\10\0\1\141\16\152" + + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + "\7\152\1\0\1\u016f\2\152\1\u01a8\3\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\16\152" + "\4\0\21\152\15\0\1\u0540\23\0\1\u0540\110\0\1\u0541" + + "\210\0\1\u030c\4\0\1\u0441\54\0\3\u0542\1\0\1\u0542" + "\7\u0443\1\0\3\u0443\2\u0542\6\u0443\2\u0542\1\0\6\u0443" + + "\1\0\1\u0542\1\u0443\1\u0542\4\u0443\2\u0542\4\u0443\1\0" + "\1\u0542\1\0\3\u0542\2\0\1\u0542\16\u0443\2\u0542\1\0" + + "\1\u0542\21\u0443\15\0\1\u0543\23\0\1\u0543\110\0\1\u0544" + "\210\0\1\u0311\4\0\1\u0445\54\0\3\u0545\1\0\1\u0545" + + "\7\u0447\1\0\3\u0447\2\u0545\6\u0447\2\u0545\1\0\6\u0447" + "\1\0\1\u0545\1\u0447\1\u0545\4\u0447\2\u0545\4\u0447\1\0" + + "\1\u0545\1\0\3\u0545\2\0\1\u0545\16\u0447\2\u0545\1\0" + "\1\u0545\21\u0447\12\0\1\u0546\165\0\1\u0547\174\0\1\u0548" + + "\137\0\1\u0452\122\0\1\u0549\14\0\1\u054a\150\0\1\u054b" + "\111\0\1\u054c\1\0\1\u054d\155\0\1\u054e\141\0\1\u054f" + + "\134\0\1\u0550\135\0\1\u0551\122\0\1\u0552\120\0\1\u0553" + "\156\0\1\u0554\137\0\1\u0555\140\0\1\u0556\141\0\1\u0557" + + "\137\0\1\u0316\4\0\1\u0449\54\0\3\u0558\1\0\1\u0558" + "\7\u045c\1\0\3\u045c\2\u0558\6\u045c\2\u0558\1\0\6\u045c" + + "\1\0\1\u0558\1\u045c\1\u0558\4\u045c\2\u0558\4\u045c\1\0" + "\1\u0558\1\0\3\u0558\2\0\1\u0558\16\u045c\2\u0558\1\0" + + "\1\u0558\21\u045c\42\0\1\u0559\1\u055a\175\0\1\u055b\135\0" + "\1\u055c\140\0\1\u055d\121\0\1\u055e\55\0\10\u0462\1\0" + + "\26\u0462\1\u055f\102\u0462\1\0\5\u0462\2\u0330\17\u0462\2\u0330" + + "\1\u0462\1\u0330\2\u0462\1\u0330\1\u0560\5\u0330\5\u0462\1\u0330" + + "\54\u0462\1\u0330\5\u0462\2\u0330\10\u01cf\1\u032d\3\u01cf\1\u0561" + + "\7\u01cf\1\u0561\3\u01cf\5\u0561\2\u01cf\1\u032e\4\u01cf\2\u0561" + + "\4\u01cf\2\u0561\1\u01cf\1\u0561\2\u01cf\2\u0561\15\u01cf\1\u0561" + + "\1\u01cf\1\u0561\5\u01cf\1\u0561\20\u01cf\1\u0561\5\u01cf\2\u0561" + + "\2\u0332\1\u0333\6\u0332\1\u01d4\2\u0332\1\u0562\7\u0332\1\u0562" + + "\3\u0332\5\u0562\7\u0332\2\u0562\4\u0332\2\u0562\1\u0332\1\u0562" + + "\2\u0332\2\u0562\15\u0332\1\u0562\1\u0332\1\u0562\5\u0332\1\u0562" + + "\20\u0332\1\u0562\5\u0332\2\u0562\1\250\12\0\1\250\1\u0563" + "\4\250\1\0\2\250\1\u0563\2\0\1\250\5\u0563\1\250" + + "\1\0\5\250\2\u0563\1\0\2\250\1\0\2\u0563\1\250" + "\1\u0563\2\0\2\u0563\2\250\7\0\4\250\1\u0563\1\250" + + "\1\u0563\5\250\1\u0563\3\250\4\0\11\250\1\u0563\5\250" + "\2\u0563\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\264\1\u0564\2\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\3\264\1\u0565\2\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u0566" + "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\15\264\1\u0567" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\264\1\u0568\2\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0569\10\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\264\1\u056a\4\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u056b\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u056c\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264\1\u056d" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u056e" + + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u056f\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u033d\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0570" + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u0571\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0572\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0573" + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0574\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u0575\3\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u0480\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u0576\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\u0577\5\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u0578\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + + "\1\u0353\2\264\7\0\2\250\5\264\1\u0579\10\264\4\0" + "\21\264\1\250\12\0\1\u057a\1\u057b\4\264\1\0\3\264" + + "\2\0\4\264\1\u057c\2\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u057d\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u057e\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u057f\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u04a4\1\u057f\2\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0580\5\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0581" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u0582\2\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\u0583\5\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\264\1\u0584\4\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\6\264" + + "\1\u056f\7\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u0585\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\11\264" + + "\1\u0586\4\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0587\4\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\10\264" + + "\1\u0588\5\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0589\3\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\2\264\1\u058a\1\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u058b" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u058c" + + "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u058d\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u058e" + + "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\1\264\1\u058f\2\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0590\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u0591\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u0592\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u0593\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\5\264\1\u0594\10\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u0595\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\4\264\1\u0596\11\264\4\0" + + "\21\264\1\250\12\0\1\u04bf\5\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\2\264" + "\1\u0597\16\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u0598\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\264" + "\1\u0599\17\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u059a\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\13\264\1\u0480\2\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\1\u059b\6\264\1\0\1\u01d8\1\264\1\u059c\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\1\u0485\5\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\2\264\1\u059d\1\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\264" + "\1\u059e\17\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u059f\1\u05a0\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\2\264\1\u05a1\1\u05a2\2\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u033d\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\1\u04bf\1\u05a3\4\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u05a4\3\264\7\0" + "\2\250\16\264\4\0\2\264\1\u0597\16\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u05a5\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\7\264\1\u05a6\6\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\264\1\u05a7\14\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u05a8\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\10\264\1\u0490\5\264\4\0\21\264\1\u0200\12\0" + "\1\u0200\1\u0378\4\u0200\1\0\2\u0200\1\u0378\2\0\1\u0200" + + "\5\u0378\1\u04ac\1\0\5\u0200\2\u0378\1\0\2\u0200\1\0" + "\2\u0378\1\u0200\1\u0378\2\0\2\u0378\2\u0200\7\0\1\250" + + "\3\u0200\1\u0378\1\u0200\1\u0378\5\u0200\1\u0378\3\u0200\4\0" + "\11\u0200\1\u0378\5\u0200\2\u0378\1\250\12\0\1\264\1\u05a9" + + "\4\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264" + "\1\u05aa\14\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\3\264" + + "\1\u05ab\12\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u05ac\4\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u05ad\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u05ae\2\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u05af\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u05b0\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\13\264\1\u05b1" + + "\2\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\14\264\1\u0396" + "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\2\264\1\u04c2\3\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\2\264\1\u05b2\1\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u05b3\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\17\264" + "\1\u05b4\1\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\3\264\1\u05b5\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u05b6\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\4\264\1\u05b7" + + "\2\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u0472\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\15\264\1\u0237\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u05b8\3\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\3\264\1\u0480\12\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u05b9\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u05ba\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\2\264\1\u05bb" + + "\1\u05bc\1\u05bd\1\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u05be\2\264\1\0\1\250\1\264\1\0" + + "\3\264\1\u05bf\2\0\4\264\7\0\2\250\12\264\1\u05c0" + "\3\264\4\0\1\u05c1\1\u05c2\14\264\1\u05c3\2\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u05c4\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\264\1\u05c5\4\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\1\264\1\u04d0\4\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\2\264\1\u05c6\13\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\5\264\1\u05c7\10\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\3\264\1\u05c8\12\264\4\0\21\264\1\250" + + "\12\0\1\250\1\u05c9\4\250\1\0\2\250\1\u05c9\2\0" + "\1\250\5\u05c9\1\250\1\0\5\250\2\u05c9\1\0\2\250" + + "\1\0\2\u05c9\1\250\1\u05c9\2\0\2\u05c9\2\250\7\0" + "\4\250\1\u05c9\1\250\1\u05c9\5\250\1\u05c9\3\250\4\0" + + "\11\250\1\u05c9\5\250\2\u05c9\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\3\264" + "\1\u0237\12\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + + "\1\u05ca\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0237\3\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\u05cb\5\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\2\264\1\u0390\1\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u05cc\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\264\1\u05cd\2\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u05ce\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u05cf\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\264\1\u05d0\2\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u05d1\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\5\264\1\u05d2\10\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u033d\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\3\264\1\u05d3\2\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\u05d4" + + "\20\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\2\264\1\u05d5\1\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\5\264\1\u05d6\10\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u0242\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\u05d7\5\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\4\264\1\u05d8\1\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u05d9\4\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\2\264\1\u05da\13\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\1\u05db\15\264\4\0\21\264\1\250" + + "\12\0\4\264\1\u05dc\1\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u05dd" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u05de\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\6\264\1\u05df\7\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\2\264\1\u05e0\13\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u05e1" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u05e2\3\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\2\264\1\u05e3\13\264\4\0\21\264\24\0\1\u05e4\113\0" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\5\264\1\u05e5\10\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u05e6\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\7\264\1\u05e7\6\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\2\264\1\u05e8\3\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u05e9\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\1\u05ea\15\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u05eb\15\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u05ec" + + "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u05ed\5\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\1\u04bf\5\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0480" + + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\2\264\1\u0597\16\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u05ee" + + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\10\264\1\u05ef\10\264\2\333\1\0" + + "\1\333\1\0\2\333\4\0\6\333\1\0\60\333\1\u05f0" + "\37\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0" + + "\16\333\1\u05f1\77\333\22\0\1\u05f2\53\0\1\u05f2\144\0" + "\1\u05f3\72\0\1\u05f4\141\0\1\u05f5\162\0\1\u0505\127\0" + + "\1\u05f6\126\0\1\u05f7\177\0\1\u05f8\140\0\1\337\76\0" + "\1\u05f9\207\0\1\337\66\0\1\u05fa\142\0\1\u05fb\135\0" + + "\1\u050c\173\0\1\u05f9\140\0\1\u05fc\120\0\1\u05fd\161\0" + "\1\u05fe\132\0\1\u05ff\55\0\4\u0116\1\u0600\1\u0116\1\0" + + "\3\u0116\2\0\6\u0116\3\0\6\u0116\4\0\4\u0116\2\0" + "\4\u0116\11\0\7\u0116\1\u0600\6\u0116\4\0\21\u0116\13\0" + + "\6\u0116\1\0\2\u0116\1\u0601\2\0\6\u0116\3\0\6\u0116" + "\4\0\4\u0116\2\0\1\u0601\3\u0116\11\0\16\u0116\4\0" + + "\21\u0116\12\0\1\u03f1\125\0\2\73\1\0\1\73\1\0" + "\2\73\4\0\1\120\5\73\1\0\41\73\1\120\56\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\53\73" + "\1\u0602\21\73\1\u0602\22\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\21\73\1\u02ac\54\73\1\u02ac\21\73" + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\2\73" + + "\1\u0603\33\73\1\u0603\61\73\1\0\1\73\1\0\2\73" + "\4\0\5\73\1\u0604\1\0\20\73\1\u0604\77\73\1\0" + + "\1\73\1\0\2\73\4\0\2\73\1\u0605\3\73\1\0" + "\17\73\1\u0605\100\73\1\0\1\73\1\0\2\73\4\0" + + "\1\u0606\5\73\1\0\41\73\1\u0606\56\73\1\0\1\73" + "\1\0\2\73\4\0\6\73\1\0\1\u02b3\53\73\1\u02b3" + + "\43\73\1\0\1\73\1\0\2\73\4\0\1\u0513\5\73" + "\1\0\41\73\1\u0513\56\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\64\73\1\u0607\12\73\1\u0607\20\73" + "\1\0\1\73\1\0\2\73\4\0\1\u0403\5\73\1\0" + + "\41\73\1\u0403\56\73\1\0\1\73\1\0\2\73\4\0" + "\6\73\1\0\103\73\1\u0608\5\73\1\u0608\6\73\1\0" + + "\1\73\1\0\2\73\4\0\6\73\1\0\53\73\1\u0515" + "\21\73\1\u0515\22\73\1\0\1\73\1\0\2\73\4\0" + + "\6\73\1\0\1\73\1\u0513\36\73\1\u0513\57\73\1\0" + "\1\73\1\0\2\73\4\0\6\73\1\0\2\73\1\u0609" + + "\33\73\1\u0609\61\73\1\0\1\73\1\0\2\73\4\0" + "\3\73\1\u0149\2\73\1\0\60\73\1\u0149\37\73\1\0" + + "\1\73\1\0\2\73\4\0\2\73\1\u060a\3\73\1\0" + "\17\73\1\u060a\100\73\1\0\1\73\1\0\2\73\4\0" + + "\6\73\1\0\2\73\1\u0290\33\73\1\u0290\61\73\1\0" + "\1\73\1\0\2\73\4\0\1\73\1\u060b\4\73\1\0" + + "\55\73\1\u060b\40\73\16\0\1\u060c\63\0\1\u060c\35\0" + "\1\141\12\0\1\141\1\u060d\4\141\1\0\2\141\1\u060d" + + "\2\0\1\141\5\u060d\1\141\1\0\5\141\2\u060d\1\0" + "\2\141\1\0\2\u060d\1\141\1\u060d\2\0\2\u060d\2\141" + + "\10\0\3\141\1\u060d\1\141\1\u060d\5\141\1\u060d\3\141" + "\4\0\11\141\1\u060d\5\141\2\u060d\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + + "\5\152\1\u060e\10\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u060f" + + "\2\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + + "\5\152\1\u0610\10\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\4\152\1\u01a1" + + "\1\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + + "\5\152\1\u0611\10\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\2\152\1\u0612\1\152" + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\1\152\1\u0613\2\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\1\u042a\3\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\4\152" + + "\1\u02d9\11\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\1\152\1\u0614\2\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\2\152" + + "\1\u01a1\13\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\1\152\1\u0615\4\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u0616\2\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\2\152\1\u042f\1\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\6\152" + + "\1\u02ed\7\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\4\152\1\u0617\1\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\3\152\1\u0618\2\152" + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + + "\1\141\16\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\5\152" + "\1\u0619\10\152\4\0\21\152\1\141\12\0\6\152\1\0" + + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\11\152" + + "\1\u061a\4\152\4\0\21\152\1\141\12\0\6\152\1\0" + "\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141" + + "\1\152\1\0\4\152\2\0\4\152\10\0\1\141\2\152" + "\1\u061b\13\152\4\0\21\152\1\141\12\0\3\152\1\u061c" + + "\2\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + "\1\0\1\141\1\152\1\0\3\152\1\u061d\2\0\4\152" + + "\10\0\1\141\16\152\4\0\21\152\1\141\12\0\6\152" + "\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152\1\0" + + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + "\6\152\1\u02e5\7\152\4\0\21\152\16\0\1\u061e\63\0" + + "\1\u061e\47\0\1\u0443\143\0\1\u061f\63\0\1\u061f\47\0" + "\1\u0447\137\0\1\u045c\166\0\1\u0620\137\0\1\u0621\157\0" + + "\1\u0622\166\0\1\u0623\133\0\1\u0624\137\0\1\u0625\73\0" + "\1\u0626\174\0\1\u0627\123\0\1\u0628\136\0\1\u0452\141\0" + + "\1\u0629\160\0\1\u062a\114\0\1\u062b\120\0\1\u062c\203\0" + "\1\u0452\140\0\1\u0452\133\0\1\u062d\115\0\1\u062e\171\0" + + "\1\u062f\105\0\1\u062f\74\0\1\u0630\202\0\1\u0631\117\0" + "\1\u055b\77\0\2\u0462\1\0\145\u0462\1\0\3\u0462\1\u0632" + + "\7\u0462\1\u0632\3\u0462\5\u0632\2\u0462\1\u055f\4\u0462\2\u0632" + + "\4\u0462\2\u0632\1\u0462\1\u0632\2\u0462\2\u0632\15\u0462\1\u0632" + + "\1\u0462\1\u0632\5\u0462\1\u0632\20\u0462\1\u0632\5\u0462\2\u0632" + + "\10\u01cf\1\u032d\3\u01cf\1\u0633\7\u01cf\1\u0633\3\u01cf\5\u0633" + + "\2\u01cf\1\u032e\4\u01cf\2\u0633\4\u01cf\2\u0633\1\u01cf\1\u0633" + + "\2\u01cf\2\u0633\15\u01cf\1\u0633\1\u01cf\1\u0633\5\u01cf\1\u0633" + + "\20\u01cf\1\u0633\5\u01cf\2\u0633\2\u0332\1\u0333\6\u0332\1\u01d4" + + "\2\u0332\1\u0634\7\u0332\1\u0634\3\u0332\5\u0634\7\u0332\2\u0634" + + "\4\u0332\2\u0634\1\u0332\1\u0634\2\u0332\2\u0634\15\u0332\1\u0634" + + "\1\u0332\1\u0634\5\u0332\1\u0634\20\u0332\1\u0634\5\u0332\2\u0634" + "\1\250\12\0\1\250\1\u0635\4\250\1\0\2\250\1\u0635" + + "\2\0\1\250\5\u0635\1\250\1\0\5\250\2\u0635\1\0" + "\2\250\1\0\2\u0635\1\250\1\u0635\2\0\2\u0635\2\250" + + "\7\0\4\250\1\u0635\1\250\1\u0635\5\250\1\u0635\3\250" + "\4\0\11\250\1\u0635\5\250\2\u0635\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\11\264\1\u0636\4\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\6\264\1\u0637\7\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0638" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\5\264" + "\1\u0639\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\1\u063a\20\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u063b\1\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\2\264\1\u063c\13\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\5\264\1\u063d\10\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u063e" + + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\4\264\1\u0499\11\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u063f\2\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\11\264\1\u033d\4\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u04a4\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u0640\3\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u0641\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\3\264\1\u0642\2\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\4\264\1\u0643\11\264" + "\4\0\21\264\1\250\12\0\1\264\1\u0644\4\264\1\0" + + "\1\264\1\u0645\1\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\3\264\1\u0646\2\0\4\264" + + "\7\0\2\250\16\264\4\0\1\264\1\u05c2\5\264\1\u0647" + "\11\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\264\1\u057f\2\264\7\0\2\250\16\264\4\0" + + "\1\264\1\u0648\17\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\2\264\1\u04da\1\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0649\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u064a" + "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u056f\1\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u064b\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u064c\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u064d\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\2\264\1\u064e\13\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\11\264\1\u064f\4\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\1\264" + "\1\u0576\2\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u0650\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\11\264\1\u0651\4\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u036c\3\264\1\0\1\250\1\264" + + "\1\0\1\264\1\u0576\2\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0652" + + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0653\1\264\1\u0654" + + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0655" + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\7\264\1\u0656\6\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\5\264\1\u0657\10\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\1\u0658\20\264\1\250\12\0\1\u0659\5\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\2\264\1\u065a\16\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u065b\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u065c" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u065d\2\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\5\264\1\u065e\10\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u065f\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u0660\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u0661\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0662\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\1\u0663\5\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\16\264\1\u05c3\2\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + + "\1\u0664\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0665\3\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\6\264" + + "\1\u04da\7\264\4\0\21\264\1\250\12\0\2\264\1\u05bb" + "\1\u05bc\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264"; + private static final String ZZ_TRANS_PACKED_1 = "\7\0\2\250\16\264\4\0\1\u05c1\15\264\1\u05c3\2\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\264\1\u0666\2\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\3\264\1\u0667\2\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\1\u0668\15\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\4\264\1\u0669\11\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\1\u066a\15\264\4\0\21\264\1\250\12\0" + "\5\264\1\u066b\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\u066c\3\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\u066d\5\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u066e" + + "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u066f" + "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0670\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u0671\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u0672\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u0673\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\3\264\1\u0674\2\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u0675\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\1\u0676\5\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\1\264\1\u0677\1\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\1\u0678" + "\20\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\2\264\1\u0679\1\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\1\u067a\2\264\1\u067b\2\264\1\0" + "\1\264\1\u067c\1\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u033d" + "\7\0\2\250\12\264\1\u067d\3\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\11\264\1\u067e\4\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + "\1\u067f\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u0680\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\4\264\1\u0480\11\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u0681\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\5\264\1\u0682\10\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + + "\1\u0683\1\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\264\1\u0362\4\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\20\264\1\u0684\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u0685\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0686" + + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u0687\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0688" + + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u0689\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u0596\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u068a\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u068b" + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u068c\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u068d\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + "\1\u068e\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u068f\3\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\u0690\5\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u0691\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u0692\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\4\264\1\u0383\11\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u0693\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u0694\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\2\264\1\u0237\13\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u0695\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\1\250\1\u0696\4\250\1\0\2\250" + "\1\u0696\2\0\1\250\5\u0696\1\250\1\0\5\250\2\u0696" + + "\1\0\2\250\1\0\2\u0696\1\250\1\u0696\2\0\2\u0696" + "\2\250\7\0\4\250\1\u0696\1\250\1\u0696\5\250\1\u0696" + + "\3\250\4\0\11\250\1\u0696\5\250\2\u0696\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u0697\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u04d0" + + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264" + + "\1\u0698\1\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u0699\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\11\264\1\u069a\4\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\2\264\1\u069b\13\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u0396\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\6\264\1\u0396\7\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\2\264\1\u069c\13\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u069d\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u069e" + + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\u049f\3\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u069f" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\2\264\1\u06a0\3\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\2\264\1\u06a1\16\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\14\264\1\u0481" + + "\1\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u06a2\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\3\264\1\u06a3\2\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u06a4\15\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\264\1\u06a5\4\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u06a6\10\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u06a7\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\3\264\1\u06a8\12\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\3\264\1\u06a9\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u06aa\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u06ab\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\43\0\1\u06ac\74\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u06ad\2\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u06ae\3\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\7\264" + "\1\u06af\6\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + + "\1\u06b0\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264" + "\1\u06b1\13\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\13\264" + + "\1\u06b2\2\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u06b3\4\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264" + + "\1\u06b4\14\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u06b5\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\4\264\1\u06b6\2\264\1\0\1\u01d8\1\264" + "\1\u033d\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u06b7" + "\2\264\7\0\2\250\16\264\4\0\21\264\2\333\1\0" + + "\1\333\1\0\2\333\4\0\6\333\1\0\31\333\1\u04fb" + "\66\333\1\0\1\333\1\0\2\333\4\0\6\333\1\0" + + "\57\333\1\u03d5\36\333\23\0\1\u06b8\36\0\1\u06b8\135\0" + "\1\u03da\141\0\1\u06b9\12\0\1\u06ba\1\0\1\u06bb\123\0" + + "\1\337\136\0\1\u06bc\153\0\1\337\152\0\1\u06bd\64\0" + "\1\u06be\164\0\1\u06bf\151\0\1\u06c0\154\0\1\u06bc\66\0" + + "\1\337\140\0\1\u06bc\136\0\1\u06c1\111\0\5\u0116\1\u06c2" + "\1\0\3\u0116\2\0\6\u0116\3\0\2\u0116\1\u06c2\3\u0116" + + "\4\0\4\u0116\2\0\4\u0116\11\0\16\u0116\4\0\21\u0116" + "\2\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\16\73\1\u028d\61\73\1\u028d\17\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\32\73\1\120\30\73\1\120" + + "\34\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\2\73\1\u06c3\33\73\1\u06c3\61\73\1\0\1\73\1\0" + + "\2\73\4\0\6\73\1\0\2\73\1\u02a8\33\73\1\u02a8" + "\61\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\53\73\1\u0128\21\73\1\u0128\22\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\2\73\1\u0513\33\73\1\u0513" + + "\61\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + "\16\73\1\u06c4\61\73\1\u06c4\17\73\1\0\1\73\1\0" + + "\2\73\4\0\6\73\1\0\64\73\1\u06c5\12\73\1\u06c5" + "\20\73\1\0\1\73\1\0\2\73\4\0\3\73\1\u0164" + + "\2\73\1\0\60\73\1\u0164\37\73\1\0\1\73\1\0" + "\2\73\4\0\6\73\1\0\53\73\1\u02bc\21\73\1\u02bc" + + "\20\73\17\0\1\u06c6\64\0\1\u06c6\33\0\1\141\12\0" + "\1\141\1\152\4\141\1\0\2\141\1\152\2\0\1\141" + + "\5\152\1\141\1\0\5\141\2\152\1\0\2\141\1\0" + "\2\152\1\141\1\152\2\0\2\152\2\141\10\0\3\141" + + "\1\152\1\141\1\152\5\141\1\152\3\141\4\0\11\141" + "\1\152\5\141\2\152\1\141\12\0\6\152\1\0\3\152" + + "\2\0\7\152\1\0\1\u016f\2\152\1\u0612\3\152\1\0" + "\1\141\1\152\1\0\4\152\2\0\4\152\10\0\1\141" + + "\16\152\4\0\21\152\1\141\12\0\6\152\1\0\3\152" + "\2\0\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152" + + "\1\0\4\152\2\0\1\u06c7\3\152\10\0\1\141\16\152" + "\4\0\21\152\1\141\12\0\6\152\1\0\3\152\2\0" + + "\7\152\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0" + "\4\152\2\0\4\152\10\0\1\141\1\u06c8\15\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\1\152\1\u01a1\14\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\3\152\1\u0425\2\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\2\152\1\u042f\13\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\4\152\10\0\1\141\1\u06c9\15\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\1\u02e5\5\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\152" + "\1\u06ca\2\152\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\4\152" + + "\10\0\1\141\2\152\1\u02d7\13\152\4\0\21\152\1\141" + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + + "\2\152\1\u0531\3\152\1\0\1\141\1\152\1\0\4\152" + "\2\0\4\152\10\0\1\141\16\152\4\0\21\152\1\141" + + "\12\0\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f" + "\6\152\1\0\1\141\1\152\1\0\4\152\2\0\1\u06cb" + + "\3\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\2\152" + + "\1\u06cc\3\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\3\152" + "\1\u06cd\2\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\4\152\10\0\1\141\16\152\4\0\21\152\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\2\152\1\u06ce" + "\1\152\10\0\1\141\16\152\4\0\21\152\17\0\1\u06cf" + + "\64\0\1\u06cf\52\0\1\u06d0\64\0\1\u06d0\76\0\1\u0452" + "\176\0\1\u06d1\136\0\1\u06d2\121\0\1\u0452\136\0\1\u0550" + + "\117\0\1\u0557\176\0\1\u0550\77\0\1\u0452\160\0\1\u06d3" + "\135\0\1\u06d4\154\0\1\u06d5\141\0\1\u06d6\103\0\1\u06d1" + + "\171\0\1\u0620\103\0\1\u06d7\76\0\64\u062f\1\u0452\53\u062f" + "\75\0\1\u06d8\103\0\1\u06d9\76\0\10\u0462\1\0\3\u0462" + + "\1\u06da\7\u0462\1\u06da\3\u0462\5\u06da\2\u0462\1\u055f\4\u0462" + + "\2\u06da\4\u0462\2\u06da\1\u0462\1\u06da\2\u0462\2\u06da\15\u0462" + + "\1\u06da\1\u0462\1\u06da\5\u0462\1\u06da\20\u0462\1\u06da\5\u0462" + + "\2\u06da\10\u01cf\1\u032d\3\u01cf\1\253\7\u01cf\1\253\3\u01cf" + "\5\253\2\u01cf\1\u032e\4\u01cf\2\253\4\u01cf\2\253\1\u01cf" + + "\1\253\2\u01cf\2\253\15\u01cf\1\253\1\u01cf\1\253\5\u01cf" + "\1\253\20\u01cf\1\253\5\u01cf\2\253\2\u0332\1\u0333\6\u0332" + + "\1\u01d4\2\u0332\1\u01d2\7\u0332\1\u01d2\3\u0332\5\u01d2\7\u0332" + + "\2\u01d2\4\u0332\2\u01d2\1\u0332\1\u01d2\2\u0332\2\u01d2\15\u0332" + + "\1\u01d2\1\u0332\1\u01d2\5\u0332\1\u01d2\20\u0332\1\u01d2\5\u0332" + "\2\u01d2\1\250\12\0\1\250\1\264\4\250\1\0\2\250" + + "\1\264\2\0\1\250\5\264\1\250\1\0\5\250\2\264" + "\1\0\2\250\1\0\2\264\1\250\1\264\2\0\2\264" + + "\2\250\7\0\4\250\1\264\1\250\1\264\5\250\1\264" + "\3\250\4\0\11\250\1\264\5\250\2\264\1\250\12\0" + + "\1\264\1\u06db\3\264\1\u06dc\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\2\264\1\u05bb\1\u067b\1\264\1\u06dc\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\1\u06dd\3\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\12\264\1\u06de\3\264\1\u05c3\2\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\2\264\1\u06df\16\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u06e0\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\14\264\1\u06e1\1\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\5\264\1\u06e2\10\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u06e3\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u06e4" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\2\264\1\u06e5\13\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\5\264\1\u06e6\10\264\4\0\21\264\1\250\12\0\5\264" + "\1\u06e7\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u06e8\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264" + "\1\u06e9\13\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u06ea\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u06eb\2\264\7\0" + "\2\250\5\264\1\u06ec\10\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u068a\15\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\1\u06ed\15\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u06ee\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u06ef" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u06f0\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u06f1\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\14\264\1\u06f2\4\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\3\264\1\u06f3\2\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u06f4\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u06f5\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u06f6\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u06f7\13\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\4\264\1\u06f8\2\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\11\264\1\u06f9\4\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u06fa\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u06fb\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u06fc\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u06fd\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u06fe\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\u06ff\5\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\2\264\1\u0700\3\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\5\264\1\u0701\10\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\4\264\1\u0702\11\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\11\264\1\u0703\4\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\2\264\1\u0704\1\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u0705\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\7\264\1\u0706\6\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\2\264\1\u0707\13\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\3\264\1\u0708\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u0709\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\2\264\1\u070a\3\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u070b\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\5\264\1\u070c\10\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\7\264\1\u033d\6\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\1\264\1\u070d\14\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u070e\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\1\264\1\u070f\1\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\1\0\1\u0710\4\264\7\0\2\250\12\264\1\u0711\3\264" + + "\4\0\4\264\1\u0712\14\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04da\2\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u0713\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\1\0\1\u0714\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0715" + + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\1\264" + "\1\u067c\1\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\10\264\1\u0716\10\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\u06b4\3\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u0717\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0718\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\3\264\1\u0719\2\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u0706\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\264\1\u071a\2\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u071b\10\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u071c\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u071d\10\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\1\264\1\u071e\2\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u071f\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u0720\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\3\264\1\u0721\2\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\5\264\1\u0722\10\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u023e\3\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u0723\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\2\264\1\u0724\13\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\5\264\1\u0725\10\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0726" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\264\1\u0237\14\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\1\0\1\u0727\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0728" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u033d" + + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0729" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u04c2" + + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u072a" + "\3\264\1\0\1\250\1\264\1\0\3\264\1\u072b\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u072c" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\7\264\1\u072d\6\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u072e\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\11\264\1\u072f\4\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0730" + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u0731" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u068b" + + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0732" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u0730\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\2\264\1\u04d0\13\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u0733" + + "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\1\u0734\15\264\4\0\21\264\1\250\12\0\1\250\1\u0735" + "\4\250\1\0\2\250\1\u0735\2\0\1\250\5\u0735\1\250" + + "\1\0\5\250\2\u0735\1\0\2\250\1\0\2\u0735\1\250" + "\1\u0735\2\0\2\u0735\2\250\7\0\4\250\1\u0735\1\250" + + "\1\u0735\5\250\1\u0735\3\250\4\0\11\250\1\u0735\5\250" + "\2\u0735\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\u0396\5\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\264\1\u0736\2\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\2\264\1\u0737\13\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u0738\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\2\264\1\u0739\3\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + + "\1\u073a\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\7\264\1\u073b\6\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u069d\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\3\264\1\u073c\2\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\1\u073d\5\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u073e\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\1\u073f" + + "\2\264\1\u0740\2\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\3\264\1\u033d\7\0\2\250\16\264\4\0\1\u0741\20\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u0742\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\5\264\1\u0743\10\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264\1\u0744" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\14\264\1\u0745\1\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0746\2\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\2\264\1\u0747\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264\1\u0748" + + "\2\0\4\264\7\0\2\250\16\264\4\0\2\264\1\u0749" + "\16\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\3\264\1\u074a\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\5\264\1\u074b\10\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\5\264\1\u074c\10\264\4\0\21\264" + + "\42\0\1\u074d\75\0\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u074e" + "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u074f\2\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0750\15\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\3\264\1\u0751\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\15\264\1\u0752\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\3\264\1\u0753\2\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\5\264\1\u0754\10\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\2\264\1\u0755\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + + "\1\u0756\1\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0757\2\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u0758\7\0\2\250\16\264\4\0\21\264\24\0\1\u0759" + "\33\0\1\u0759\140\0\1\u0500\122\0\1\u075a\173\0\1\u075b" + + "\117\0\1\u075c\137\0\1\337\154\0\1\u06ba\1\0\1\u06bb" + "\102\0\1\u075d\136\0\1\u06bd\140\0\1\u075e\75\0\2\73" + + "\1\0\1\73\1\0\2\73\4\0\6\73\1\0\32\73" + "\1\u02ac\30\73\1\u02ac\34\73\1\0\1\73\1\0\2\73" + + "\4\0\6\73\1\0\53\73\1\u012a\21\73\1\u012a\22\73" + "\1\0\1\73\1\0\2\73\4\0\4\73\1\u075f\1\73" + + "\1\0\62\73\1\u075f\33\73\20\0\1\u0760\21\0\1\u0760" + "\75\0\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\3\152\1\u042f\2\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\3\152\1\u01a1\2\152\1\0\1\141\1\152" + + "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\3\152\1\u0761\2\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\4\152\10\0\1\141\2\152\1\u02e5\13\152\4\0" + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + + "\1\0\1\u016f\3\152\1\u0762\2\152\1\0\1\141\1\152" + "\1\0\4\152\2\0\4\152\10\0\1\141\16\152\4\0" + + "\21\152\1\141\12\0\6\152\1\0\3\152\2\0\7\152" + "\1\0\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152" + + "\2\0\1\u0308\3\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\2\152\1\u042a\3\152\1\0\1\141\1\152\1\0" + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + + "\4\152\10\0\1\141\1\u0763\15\152\4\0\21\152\20\0" + "\1\u0764\21\0\1\u0764\115\0\1\u0765\21\0\1\u0765\156\0" + + "\1\u0766\141\0\1\u0767\131\0\1\u0768\31\0\1\u0769\72\0" + "\1\u0550\136\0\1\u076a\157\0\1\u076b\137\0\1\u076c\153\0" + + "\1\u076d\144\0\1\u076e\35\0\10\u0462\1\0\3\u0462\1\u076f" + + "\7\u0462\1\u076f\3\u0462\5\u076f\2\u0462\1\u055f\4\u0462\2\u076f" + + "\4\u0462\2\u076f\1\u0462\1\u076f\2\u0462\2\u076f\15\u0462\1\u076f" + + "\1\u0462\1\u076f\5\u0462\1\u076f\20\u0462\1\u076f\5\u0462\2\u076f" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\1\u0770\15\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\1\u0771\15\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0772" + + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\1\u0773\15\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u0774\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u0775\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u0776\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\13\264\1\u0777\5\264\1\250\12\0\1\264\1\u0778\4\264" + "\1\0\1\264\1\u0645\1\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\1\264\1\u0779\14\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u077a\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\2\264\1\u077b\1\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + "\1\u077c\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u077d\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264" + "\1\u033d\14\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u077e\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u077f\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0780\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0781\4\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u03b1\1\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u0782\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0783\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0784\10\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u0785\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\14\264\1\u0786\1\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\264\1\u0787\2\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u0788\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\4\264\1\u05bd\1\264\1\0\2\264\1\u04aa" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u0789\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\2\264\1\u078a\13\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\264\1\u078b\2\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\7\264\1\u078c\6\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\2\264\1\u06b4\1\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\5\264\1\u078d\10\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u078e\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u078f\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u0790\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u0791\4\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\3\264\1\u0792\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\1\264\1\u0793\2\264\1\u0794\1\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\1\u0795\20\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u0796\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\1\u0797\4\264\1\u0798\1\0\3\264" + + "\2\0\4\264\1\u0799\2\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\3\264\1\u079a\2\0\4\264\7\0" + + "\2\250\16\264\4\0\2\264\1\u079b\16\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\1\264\1\u04f8\14\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u079c\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\15\264\1\u079d\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\1\u079e\3\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\264" + "\1\u079f\3\264\1\u07a0\10\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u07a1\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\1\264\1\u07a2\14\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\14\264\1\u07a3\1\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\1\264\1\u07a4\1\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\4\264\1\u07a5\1\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\1\u07a6\15\264\4\0\21\264\13\0\1\u07a7\106\0" + + "\1\u07a8\15\0\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u06df\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u07a9\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\3\264\1\u07aa\7\0\2\250\16\264\4\0\21\264" + "\14\0\1\u07ab\6\0\1\u07ac\26\0\1\u07ad\2\0\1\u07ae" + + "\62\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\1\264" + + "\1\u07af\2\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\264\1\u07b0\2\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\1\u07b1\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u07b2\4\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\3\264\1\u07b3\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + "\1\u07b4\1\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\1\u07b5\15\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u07b6" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u07b7" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\15\264\1\u07b8\3\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0479\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07b9" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u0358" + + "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\3\264\1\u0472\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\2\264\1\u07ba\3\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u07bb\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u07bc\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\3\264\1\u04d0\2\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\24\0\1\u07bd\62\0\1\u07be\30\0\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u07bf" + + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u07c0" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u07c1\1\u07c2" + + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u07c3" + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\4\264\1\u056f\11\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u07c4" + + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\11\264\1\u07c5\4\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u07c6\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u056f\3\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264" + "\1\u07c7\13\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\3\264\1\u07c8\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\7\264\1\u0237" + "\6\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\3\264\1\u07c9\2\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\1\250\1\u022f\4\250" + "\1\0\2\250\1\u022f\2\0\1\250\5\u022f\1\250\1\0" + + "\5\250\2\u022f\1\0\2\250\1\0\2\u022f\1\250\1\u022f" + "\2\0\2\u022f\2\250\7\0\4\250\1\u022f\1\250\1\u022f" + + "\5\250\1\u022f\3\250\4\0\11\250\1\u022f\5\250\2\u022f" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\2\264\1\u0396\13\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u07ca\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\3\264\1\u07cb\2\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u03b7" + + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u07cc\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u07cd" + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u07ce\2\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u07cf" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\11\264\1\u07d0\4\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u07d1" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u07d2" + + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u07d3\5\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\2\264\1\u07d4\1\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u07d5\2\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07d6" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u07d7\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\2\264\1\u0363\1\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\2\264\1\u07d8\1\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u07d9\10\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u07da\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\12\264\1\u07db\3\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\264\1\u07dc\2\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\14\264\1\u07dd\1\264\4\0" + "\21\264\41\0\1\u07de\76\0\1\250\12\0\2\264\1\u07df" + + "\3\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\3\264\1\u07e0\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u07e1" + + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u07e2" + "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u07e3\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\2\264\1\u0755\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\3\264\1\u07e4\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u07e5\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u01f9\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\2\264\1\u07e6\16\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07e7" + + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u07e8" + "\12\264\4\0\21\264\21\0\1\u07e9\154\0\1\u07ea\203\0" + + "\1\u07eb\136\0\1\337\74\0\1\u07ec\162\0\1\u07ed\56\0" + "\2\73\1\0\1\73\1\0\2\73\4\0\6\73\1\0" + + "\1\73\1\u07ee\36\73\1\u07ee\55\73\21\0\1\u07ef\116\0" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\4\152\10\0\1\141\5\152\1\u07f0\10\152\4\0\21\152" + + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + "\1\u016f\2\152\1\u02d9\3\152\1\0\1\141\1\152\1\0" + + "\4\152\2\0\4\152\10\0\1\141\16\152\4\0\21\152" + "\1\141\12\0\6\152\1\0\3\152\2\0\7\152\1\0" + + "\1\u016f\6\152\1\0\1\141\1\152\1\0\4\152\2\0" + "\1\152\1\u06cd\2\152\10\0\1\141\16\152\4\0\21\152" + + "\21\0\1\u07f1\137\0\1\u07f2\200\0\1\u0452\136\0\1\u07f3" + "\160\0\1\u07f4\116\0\1\u07f5\154\0\1\u0452\103\0\1\u07f6" + + "\157\0\1\u062f\117\0\1\u062f\137\0\1\u07f7\75\0\10\u0462" + "\1\0\3\u0462\1\u0330\7\u0462\1\u0330\3\u0462\5\u0330\2\u0462" + + "\1\u055f\4\u0462\2\u0330\4\u0462\2\u0330\1\u0462\1\u0330\2\u0462" + + "\2\u0330\15\u0462\1\u0330\1\u0462\1\u0330\5\u0462\1\u0330\20\u0462" + "\1\u0330\5\u0462\2\u0330\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u07f8\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\15\264\1\u07f9" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\4\264\1\u07fa\1\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + + "\1\u07fb\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + "\1\u0471\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u03c3\3\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264" + "\1\u07fc\13\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u07fd\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u07fe\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u07ff" + + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\2\264" + "\1\u04aa\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\2\264\1\u0800\16\264\1\250\12\0\3\264\1\u05bc" + + "\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u0801\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0802" + + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u0803\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\1\0\1\u0804\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u0372\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0805\13\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\11\264\1\u0806\4\264" + "\4\0\21\264\1\250\12\0\1\u0807\5\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\3\264\1\u0808\2\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\1\u0809\15\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u080a\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u080b" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\264\1\u080c\14\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u080d\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\1\u080e\3\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\2\264\1\u080f\13\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0810" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0811" + + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0812\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u0813\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\1\264\1\u0814\2\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\1\u0815\20\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u0816\3\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0817" + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u0818\1\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0819\4\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\1\264\1\u081a\2\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u081b" + "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\2\264\1\u081c\3\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u081d" + "\12\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u081e\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\2\264\1\u081f\13\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\1\u0820\15\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0821" + + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u0822" + "\10\264\4\0\21\264\1\250\12\0\2\264\1\u05bb\1\u05bc" + + "\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\u0823\5\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\2\264\1\u05a1\1\264" + + "\1\u05bd\1\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u0824\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u0825\3\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\6\264\1\324\12\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0826\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0827\10\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\264\1\u0828\4\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0829\13\264" + "\4\0\21\264\42\0\1\u082a\140\0\1\u082b\74\0\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\1\u082c\15\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\15\264\1\u033d\4\0\21\264\61\0\1\u082d\137\0" + + "\1\u082e\116\0\1\u082f\201\0\1\u0830\35\0\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0831\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0832\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\u0833\5\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u03cd\2\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u0834\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u0835" + + "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\3\264\1\u0836\2\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u0837" + + "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u0838\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0839\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\264\1\u07dd\4\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u083a\10\264" + + "\4\0\21\264\1\250\12\0\1\u083b\1\u083c\4\264\1\0" + "\1\264\1\u067c\1\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\2\264\1\u083d\3\264\1\324\12\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u06b4\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\43\0\1\u083e\154\0\1\u083e\57\0\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\7\264\1\u083f\6\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\1\264\1\u0840\14\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0841" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\1\264\1\u0842\2\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0843\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0844" + + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\5\264\1\u0845\10\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\3\264\1\u05bf\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0846\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0847" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u0848" + + "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0849\15\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\2\264\1\u0383\3\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u084a\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u084b\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\264\1\u06e9\4\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u084c\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\1\u084d\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u084e\4\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\7\264\1\u084f\6\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\2\264\1\u0850\3\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\3\264\1\u0851\2\264\1\0\1\264\1\u0852" + "\1\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\12\264" + "\1\u0853\3\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0854\3\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0855\4\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\4\264\1\u0856\2\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u0857\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0858\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u0859\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u085a\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\2\264\1\u085b\1\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u0372\3\264\7\0\2\250\16\264\4\0\21\264" + + "\76\0\1\u085c\41\0\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u085d\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u085e\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u085f\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\5\264\1\u0860\10\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\4\264\1\u0861\11\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\1\u0862\15\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u0863\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u0864\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\1\264\1\u0865\4\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\2\264\1\u0597\16\264" + + "\42\0\1\u0866\157\0\1\u075c\137\0\1\u0867\120\0\1\u0868" + "\74\0\2\73\1\0\1\73\1\0\2\73\4\0\6\73" + + "\1\0\11\73\1\u012a\25\73\1\u012a\56\73\1\141\12\0" + "\6\152\1\0\3\152\2\0\7\152\1\0\1\u016f\6\152" + + "\1\0\1\141\1\152\1\0\4\152\2\0\4\152\10\0" + "\1\141\16\152\4\0\13\152\1\u06cc\5\152\44\0\1\u0869" + + "\153\0\1\u086a\121\0\1\u086b\155\0\1\u086c\166\0\1\u086d" + "\30\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u086e\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u086f\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\4\264\1\u0870\1\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\2\264\1\u072c\1\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u0871\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\4\264\1\u0872\1\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0873\2\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u0874\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + "\1\u0875\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\4\264\1\u0372\11\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0876" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u0877\15\264\4\0\21\264\52\0\1\u07ad\65\0" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\u0878\5\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + + "\1\u0879\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\u087a\5\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u087b\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u087c\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u087d\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u087e\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\2\264\1\u05bb\3\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\16\264\1\u05c3\2\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\1\0" + "\1\u087f\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\1\u0880\5\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0881\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\1\264\1\u0882\14\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u0883\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0884\3\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\1\264\1\u0885\2\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\2\264\1\u0886\1\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u0887\1\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u0888\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u0889\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u088a\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u088b" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\15\264\1\u088c\3\264\1\250\12\0\6\264\1\0\1\264" + "\1\u088d\1\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u088e\2\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\264\1\u088f\4\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u0890" + + "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\2\264\1\u0891" + "\13\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0892\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\3\264\1\u0893\2\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0686\15\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0894\10\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\3\264\1\u033d\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u056e\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\3\264\1\u0895\2\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\3\264\1\u0896\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u0897\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + + "\1\u0898\2\264\7\0\2\250\16\264\4\0\21\264\61\0" + "\1\u0899\155\0\1\u089a\40\0\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\u0666\5\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\42\0\1\u089b\140\0\1\u089c\176\0" + "\1\u089d\117\0\1\u089e\55\0\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u079d\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\3\264" + "\1\u0499\12\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u089f\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u08a0\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\13\264\1\u0480\5\264\1\250\12\0\3\264\1\u08a1" + "\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\15\264" + + "\1\u0372\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u08a2\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0472\13\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0372\13\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u08a3\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\1\u08a4\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\u08a5\1\u08a6\2\264\7\0\2\250\16\264\4\0\21\264" + + "\77\0\1\u08a7\40\0\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\2\264\1\u08a8\16\264\1\250\12\0\3\264\1\u05bc\2\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\1\u05c1\20\264\1\250\12\0\1\264\1\u08a9" + "\4\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\1\0\1\u08aa\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u08ab\1\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\6\264\1\u08ac\7\264\4\0\21\264\1\250\12\0\1\u0663" + + "\5\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u08ad\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u08ae" + + "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\u08af\5\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\13\264" + + "\1\u0739\5\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\4\264\1\u0237\1\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\3\264\1\u08b0\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u08b1\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u05ec\4\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u08b2\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\u08b3\5\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\7\264\1\u08b4\6\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u0472\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u08b5\15\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u08b6\2\264" + "\7\0\2\250\1\u08b7\15\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u08b8\3\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\11\264\1\u08b9\4\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u08ba" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\11\264\1\u08bb\4\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\2\264\1\u08bc\1\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\3\264\1\u08bd\12\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\4\264\1\u08be" + "\1\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u08bf\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u08c0\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u08c1\4\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u08c2\3\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u08c3\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\3\264\1\u08c4\2\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\264\1\u08c5\4\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\1\264\1\u08c6\4\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u08c7\13\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\2\264\1\u077b\3\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\76\0\1\u08c8\121\0\1\u08c9\21\0\1\u08ca" + "\77\0\1\u08cb\155\0\1\u08cc\141\0\1\u086c\136\0\1\u0452" + + "\157\0\1\u0452\133\0\1\u08cd\42\0\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u08ce\5\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u08cf\2\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u08d0\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\2\264" + + "\1\u08d1\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\2\264\1\u08d2\1\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\2\264\1\u08d3\1\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\4\264\1\u08d4\1\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\3\264\1\u08d5\2\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\1\u059b\6\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\1\264\1\u08d6\4\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\2\264\1\u08d7\1\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u06b4\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\7\264\1\u08d8\6\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\2\264\1\u08d9" + + "\16\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\2\264\1\u04da\13\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\3\264\1\u08da\7\0\2\250\16\264\4\0\21\264" + + "\13\0\1\u08db\106\0\1\u08dc\15\0\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u08dd" + + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u08de\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\1\u08df\5\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u08e0" + + "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u08e1" + "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u08e2\1\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u08e3\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\1\u08e4\3\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\11\264\1\u08e5\4\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u08e6\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\3\264\1\u08e7\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\7\264\1\u08e8\6\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u08e9\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\1\u08ea\15\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + "\1\u07dd\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u08eb\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u0857\5\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u08ec\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u08ed" + + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\5\264\1\u08ee" + "\10\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u08ef\1\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u08f0\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\2\264\1\u08f1\3\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\3\264\1\u08bb\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\2\264\1\u033d\1\264\7\0\2\250\16\264" + + "\4\0\21\264\42\0\1\u08f2\156\0\1\u08f3\136\0\1\u08f4" + "\162\0\1\u08f5\116\0\1\u08f6\117\0\1\u08f7\75\0\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\2\264\1\u08f8\13\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\3\264\1\u08f9\2\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u08fa\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\3\264\1\u08fb\2\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u033d\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\14\264\1\u08fc" + "\4\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\2\264\1\u08fd\1\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\2\264\1\u08fe\3\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\7\264\1\u08ff\6\264\4\0" + + "\21\264\75\0\1\u08f6\42\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u08a5\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u0900\1\264\7\0\2\250" + + "\16\264\4\0\21\264\52\0\1\u0901\65\0\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0902\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0903\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\3\264\1\u079c\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\7\264\1\u03cd" + + "\6\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\3\264\1\u0801\2\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\1\u0904\15\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\264\1\u0905\2\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u0906\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u0907\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\u0908\5\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\3\264\1\u0909\2\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u090a\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\1\u057f\5\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u0372\4\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\264\1\u077f\2\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\264\1\u090b\4\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u090c\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\4\264\1\u01ed\11\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\1\u08bc\15\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\3\264\1\u090d\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\13\264\1\u090e\5\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\1\u090f\15\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\11\264" + + "\1\u0910\4\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\4\264" + "\1\u0911\11\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\4\264" + + "\1\u0912\11\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\1\u0372\20\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0913" + + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\264\1\u0914\2\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u0915" + + "\12\264\4\0\21\264\104\0\1\u06bd\75\0\1\u0509\140\0" + "\1\u06bd\136\0\1\u076a\174\0\1\u062f\40\0\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\7\264\1\u0865\6\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\5\264\1\u0916\10\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + "\1\u0917\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0918" + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u0919\15\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u091a\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + + "\1\u091b\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u091c\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\2\264\1\u091d" + + "\3\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\1\0\1\u091e\3\264" + + "\1\u091f\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0920" + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\7\264\1\u0757\6\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\1\u0921\15\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\5\264\1\u0922\10\264\4\0\21\264\40\0\1\u0923\142\0" + "\1\u0924\74\0\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\4\264\1\u0925\11\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\3\264\1\u0926\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u0927\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\3\264\1\u08c4\2\264\1\0\2\264" + "\1\u04aa\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\1\u0928\15\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\u0929\3\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\5\264\1\u092a\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\1\u092b\15\264\4\0\21\264\1\250\12\0" + "\2\264\1\u05bb\3\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\2\264\1\u092c\13\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u0372" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\u092d\3\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264" + "\1\u077f\13\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\2\264" + + "\1\u092e\13\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u092f\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\3\264\1\u0930\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\264\1\u0931\2\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\2\264\1\u0932\3\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u0933" + "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\u0934\3\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u0935\3\264\7\0\2\250\16\264\4\0" + "\21\264\60\0\1\u085c\117\0\1\u0936\202\0\1\u0937\74\0" + + "\1\u0938\200\0\1\u0939\116\0\1\u093a\57\0\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u093b\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u049b" + "\3\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\3\264" + "\1\u093c\2\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\u093d\3\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\u093e\5\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\2\264\1\u093f\1\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\3\264\1\u0940" + "\12\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\1\0\1\u0941\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\1\u0942\15\264\4\0" + "\21\264\102\0\1\u0943\35\0\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\3\264\1\u0944\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\1\264\1\u0945\4\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u0946\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0947" + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0948" + + "\4\264\4\0\21\264\1\250\12\0\1\u0949\5\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\7\264\1\u094a\11\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u094b\3\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\6\264" + "\1\u033d\7\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u0372\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u094c\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u077f\2\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u094d" + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u094e\2\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\u094f\5\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u0950\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\1\264\1\u0951\4\264\1\0" + "\2\264\1\u0952\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\1\u0953\20\264\1\250\12\0\6\264\1\0" + + "\1\264\1\u0954\1\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\264\1\u0955\2\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\2\264\1\u0956\1\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + "\1\u0957\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\13\264\1\u056f\5\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\1\u0958\3\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\13\264\1\u06b4" + + "\2\264\4\0\21\264\1\250\12\0\4\264\1\u05bd\1\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u0959" + + "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\6\264\1\u056f" + "\7\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u095a\2\264\7\0\2\250" + + "\16\264\4\0\21\264\117\0\1\u095b\20\0\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\1\0\1\u095c\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u095d" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\4\264\1\u095e\11\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\1\u095f\15\264\4\0\21\264\53\0\1\u0960\166\0\1\u0961" + "\35\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\2\264\1\u0962\1\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\3\264" + + "\1\u0963\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u0964\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u01ed\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\1\264\1\u0965\4\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\3\264\1\u0966\12\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\u0967\5\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\3\264\1\u0372\12\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\264\1\u0968\4\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + + "\1\u0969\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\4\264\1\u096a\11\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u01ed\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u096b\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\1\u096c\15\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u096d\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u096e\4\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u096f\2\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\103\0\1\u0970\131\0\1\u074d" + + "\123\0\1\u0971\136\0\1\u0972\120\0\1\u0973\76\0\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\1\u0974\3\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u0975\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u0976\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u0977\3\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\1\u0978\3\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u0979" + + "\15\264\4\0\21\264\13\0\1\u097a\124\0\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\3\264\1\u077b" + "\7\0\2\250\16\264\4\0\21\264\103\0\1\u097b\34\0" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\2\264\1\u097c\1\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\1\u097d\15\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\11\264\1\u097e\4\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\16\264\1\u05c3\2\264\1\250" + + "\12\0\1\264\1\u097f\4\264\1\0\2\264\1\u04aa\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\3\264\1\u0980\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u0981\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u0982\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\1\u0983\5\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\1\264\1\u0984\14\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\1\u0985\5\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\1\264\1\u0969\2\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\264\1\u0986\4\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u0987\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + "\1\u0988\1\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u0989\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\7\264\1\u098a\6\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\5\264\1\u098b\10\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\2\264\1\u098c\3\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u098d" + + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u066f\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\11\264\1\u098e\4\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\u098f" + + "\5\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264\1\u0990" + "\2\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\44\0\1\u0991\126\0" + "\1\u0992\104\0\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0993\10\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u0994\10\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\3\264\1\u0372\2\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\63\0\1\u0995\153\0\1\u0996\40\0\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u0997" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + + "\2\250\5\264\1\u0576\10\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u0998\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u0999" + + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264" + + "\1\u099a\4\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + "\1\u099b\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\2\264" + + "\1\u099c\3\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\2\264\1\u07dd" + + "\1\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\1\u0797\5\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\1\264" + + "\1\u099d\2\264\1\u099e\1\264\1\0\2\264\1\u04aa\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\3\264\1\u099f\2\0\4\264\7\0\2\250\16\264\4\0" + "\16\264\1\u09a0\2\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u096a\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\264\1\u09a1\4\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\1\264\1\u09a2\2\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u09a3\3\264\7\0\2\250\16\264" + "\4\0\21\264\100\0\1\u09a4\142\0\1\u09a5\75\0\1\u085c" + + "\200\0\1\u09a6\35\0\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\u09a7\5\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\5\264\1\u09a8\10\264" + + "\4\0\21\264\1\250\12\0\4\264\1\u09a9\1\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\3\264\1\u09aa\2\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\2\264\1\u0706\13\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\4\264\1\u06b4\11\264" + + "\4\0\21\264\102\0\1\u09ab\144\0\1\u09ac\30\0\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + "\1\u09ad\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u09ae\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + "\1\u09af\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\2\264" + + "\1\u09b0\1\264\7\0\2\250\1\u09b1\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\5\264\1\u09b2\10\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\1\264\1\u09b3\4\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\2\264\1\u09b4\1\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u09b5\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\1\u09b6\5\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u0979\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\2\264\1\u07dd\13\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\4\264\1\u09b7\2\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\16\264\1\u09a0" + "\2\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\264\1\u09b8\2\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\2\264\1\u09b9\13\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u09ba\3\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u09bb\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\1\264\1\u057b\4\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\3\264\1\u099f\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\3\264\1\u09bc\2\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u0851\3\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\1\264\1\u09bd\4\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\4\264\1\u09be\11\264\4\0\21\264" + + "\16\0\1\u09bf\1\u09c0\3\0\1\u09c1\63\0\1\u09c2\103\0" + "\1\u09c3\64\0\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\2\264\1\u05ec\3\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\4\264\1\u09c4\1\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\60\0\1\u09c5\154\0\1\u09c6\42\0\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\1\0\1\u09c7" + + "\4\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\5\264\1\u09c8\10\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u09c9" + + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u09ca\3\264" + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\4\264\1\u08e7\11\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u09cb\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\1\u09cc\15\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u09cd\4\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\2\264\1\u09ce\1\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + "\1\u09cf\10\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\1\0\1\u09d0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\2\264\1\u09d1\3\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\1\264\1\u08e7\4\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + + "\16\264\4\0\21\264\42\0\1\u09d2\155\0\1\u09d3\122\0" + "\1\u09d4\74\0\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\3\264\1\u09d5\2\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u09d6\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\1\264\1\u09d7\4\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\2\264\1\u09d8\3\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\106\0\1\u09d9\111\0\1\u09da\57\0\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\6\264\1\u0824\7\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\14\264\1\u09db\1\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\2\264\1\u09dc\3\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\264" + "\1\u09dd\2\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\3\264\1\u09de\2\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\1\u09df" + "\3\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\u09e0\3\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u09e1\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u09e2" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u09e3\10\264\4\0\21\264\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u081e" + "\4\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u09e4\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u09e5" + + "\15\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\1\264\1\u09e6\4\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\15\264\1\u06b4" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\4\264\1\u09e7\11\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\264\1\u05ad\2\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\1\u056e\15\264\4\0" + "\21\264\43\0\1\u09c5\135\0\1\u09e8\173\0\1\u09e9\137\0" + + "\1\u09ea\125\0\1\u09eb\54\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\5\264" + "\1\u09ec\10\264\4\0\21\264\42\0\1\u085c\176\0\1\u09ed" + + "\52\0\1\u09ee\123\0\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\3\264\1\u09ef\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\3\264\1\u09f0\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u09f1\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\1\u09f2\3\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u06f3\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\4\264\1\u09f3\11\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u09f4\3\264\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\1\264\1\u09f5\2\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\4\264\1\u09f6\11\264\4\0" + + "\21\264\15\0\1\u09f7\122\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\1\u09f8" + "\15\264\4\0\21\264\24\0\1\u09f9\130\0\1\u09fa\225\0" + + "\1\u09fb\34\0\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0"; + private static final String ZZ_TRANS_PACKED_2 = "\4\264\7\0\2\250\4\264\1\u0576\11\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\5\264\1\u09fc\10\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\1\u09fd\15\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\5\264\1\u09fe\10\264\4\0\21\264\104\0" + "\1\u09ff\132\0\1\u0a00\40\0\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\u0a01\3\264\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\3\264\1\u099f\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\3\264\1\u0824\7\0\2\250\16\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\3\264\1\u0a02\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\2\264\1\u03ce\1\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\264\1\u0a03\2\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\4\264\1\u0673\11\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\1\u0a04\3\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\16\264\4\0\13\264\1\u07dd\5\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\3\264" + + "\1\u0a05\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\4\264\1\u0a06\11\264\4\0\21\264\1\250\12\0" + + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u0a07" + + "\2\264\7\0\2\250\16\264\4\0\21\264\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\1\264\1\u04a4" + "\2\264\7\0\2\250\16\264\4\0\21\264\102\0\1\u0a08" + + "\100\0\1\u0a09\134\0\1\u0a0a\141\0\1\u0a0b\75\0\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\2\264\1\u09e6\13\264\4\0\21\264\60\0" + + "\1\u0a0c\154\0\1\u0a0d\42\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\2\264\1\u0a0e\3\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\3\264\1\u0a0f\7\0\2\250" + + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\4\264\7\0\2\250\4\264\1\u0a10" + "\11\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\3\264\1\u074f\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\1\u0a11\3\264\7\0\2\250\16\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\2\264\1\u0a12\13\264\4\0" + + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\6\264\1\u08e7\7\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + + "\1\0\1\u01d8\2\264\1\u092c\3\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\60\0\1\u0a13\57\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\1\264\1\u0a14\4\264" + + "\1\0\1\250\1\264\1\0\4\264\2\0\4\264\7\0" + "\2\250\16\264\4\0\21\264\105\0\1\u0a15\113\0\1\u0a16" + + "\177\0\1\u0a17\16\0\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\264\1\u0a18\2\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\10\264\1\u06e9" + + "\5\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\264\1\u0a19\2\264\7\0\2\250" + "\16\264\4\0\21\264\62\0\1\u0a1a\157\0\1\u0a1b\35\0" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\1\264\1\u0a1c\4\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\2\264\1\u0a1d\3\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\11\264\1\u0a1e\4\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\1\264\1\u0a1f\2\264\7\0\2\250\16\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\4\264\7\0\2\250\16\264\4\0\7\264\1\u0a20\11\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\5\264\1\u0a21\10\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\2\264\1\u08da\3\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\106\0\1\u0a22\134\0\1\u085c\107\0\1\u0a23\125\0\1\u0a24" + + "\111\0\1\u0a25\36\0\1\u0a26\130\0\1\u0a27\74\0\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\5\264\1\u0a28\10\264\4\0\21\264\1\250" + + "\12\0\1\264\1\u0a29\4\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\1\264\1\u070f\1\264\2\0\7\264" + + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + + "\12\0\4\264\1\u0a2a\1\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\5\264\1\u087e\10\264\4\0\21\264\101\0" + + "\1\u0a2b\36\0\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + + "\4\264\1\0\1\u0a2c\4\264\7\0\2\250\16\264\4\0" + "\21\264\77\0\1\u0a2d\103\0\1\u0a2e\171\0\1\u0a2f\42\0" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + + "\2\264\1\u0a30\1\264\7\0\2\250\16\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\2\264\1\u0a31\1\264\7\0\2\250\16\264\4\0\21\264" + + "\60\0\1\u0a32\165\0\1\u0a33\31\0\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0a34\7\0" + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\1\264\1\u0a35\2\264\7\0" + + "\2\250\16\264\4\0\21\264\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\1\0\1\u0a36\4\264\7\0\2\250" + "\16\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\11\264\1\u0a37" + + "\4\264\4\0\21\264\1\250\12\0\6\264\1\0\3\264" + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + + "\1\0\4\264\2\0\1\u0a38\3\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\3\264\1\u0a39\2\264\1\0\1\250" + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + + "\4\0\21\264\102\0\1\u0a3a\117\0\1\u08f2\136\0\1\u0a3b" + "\155\0\1\u0a3c\122\0\1\u0a3d\117\0\1\u0a3e\75\0\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\2\264\1\u0824\13\264\4\0\21\264\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + "\7\0\2\250\3\264\1\u0a3f\12\264\4\0\21\264\1\250" + + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + "\6\264\1\0\1\250\1\264\1\0\4\264\2\0\4\264" + + "\7\0\2\250\1\u0a40\15\264\4\0\21\264\102\0\1\u0a41" + "\154\0\1\u0a42\100\0\1\u0a43\162\0\1\u08f2\135\0\1\u08f2" + + "\36\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\5\264\1\u0a44\10\264\4\0" + "\21\264\1\250\12\0\6\264\1\0\1\264\1\u067c\1\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\2\0\4\264\7\0\2\250\16\264\4\0" + + "\21\264\16\0\1\u0a45\5\0\1\u05e4\174\0\1\u0a46\56\0" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\5\264\1\u0a47\10\264\4\0\21\264" + + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + "\1\u01d8\3\264\1\u0a48\2\264\1\0\1\250\1\264\1\0" + + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + "\123\0\1\u0a49\14\0\1\250\12\0\6\264\1\0\3\264" + + "\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264" + "\1\0\4\264\1\0\1\u0a4a\4\264\7\0\2\250\16\264" + + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + "\7\264\1\0\1\u01d8\1\264\1\u0a4b\4\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\21\264\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\6\264\1\u0372\7\264" + + "\4\0\21\264\42\0\1\u0a4c\174\0\1\u0a4d\101\0\1\u0a4e" + "\173\0\1\u0a4f\103\0\1\u0a50\76\0\1\250\12\0\6\264" + + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + "\1\250\1\264\1\0\4\264\2\0\1\264\1\u0a51\2\264" + + "\7\0\2\250\16\264\4\0\21\264\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\4\264\7\0\2\250" + "\5\264\1\u090c\10\264\4\0\21\264\41\0\1\u0a52\142\0" + + "\1\u0a53\177\0\1\u0a54\33\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\13\264\1\u0a55\5\264\106\0\1\u0a56\113\0\1\u0a57" + + "\55\0\1\250\12\0\6\264\1\0\3\264\2\0\7\264" + "\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0\4\264" + + "\2\0\4\264\7\0\2\250\1\u0a58\15\264\4\0\21\264" + "\1\250\12\0\6\264\1\0\3\264\2\0\7\264\1\0" + + "\1\u01d8\2\264\1\u0824\3\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\4\264\7\0\2\250\16\264\4\0\21\264" + + "\60\0\1\u0a59\76\0\1\u0a5a\120\0\1\250\12\0\6\264" + "\1\0\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0" + + "\1\250\1\264\1\0\4\264\2\0\3\264\1\u0680\7\0" + "\2\250\16\264\4\0\21\264\102\0\1\u0a5b\77\0\1\u0a5c" + + "\177\0\1\u0a5d\134\0\1\u0a5e\135\0\1\u0a5f\42\0\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\3\264\1\u05a0\2\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\60\0" + + "\1\u0a60\75\0\1\u09bf\4\0\1\u09c1\63\0\1\u09c2\72\0" + "\1\u0a61\75\0\1\250\12\0\6\264\1\0\3\264\2\0" + + "\7\264\1\0\1\u01d8\6\264\1\0\1\250\1\264\1\0" + "\4\264\2\0\1\u0a62\3\264\7\0\2\250\16\264\4\0" + + "\21\264\106\0\1\u0a63\54\0\1\u0a64\114\0\1\250\12\0" + "\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8\3\264" + + "\1\u0a65\2\264\1\0\1\250\1\264\1\0\4\264\2\0" + "\4\264\7\0\2\250\16\264\4\0\21\264\42\0\1\u0a66" + + "\135\0\1\u0a59\210\0\1\u08f2\41\0\1\u0a67\2\0\1\u0a68" + "\4\0\1\u0a69\63\0\1\u0a6a\134\0\1\u09c5\145\0\1\u085c" + + "\107\0\1\u085c\154\0\1\u0a6b\142\0\1\u0a6c\35\0\1\250" + "\12\0\6\264\1\0\3\264\2\0\7\264\1\0\1\u01d8" + + "\1\264\1\u06b4\4\264\1\0\1\250\1\264\1\0\4\264" + "\2\0\4\264\7\0\2\250\16\264\4\0\21\264\40\0" + + "\1\u0a6d\160\0\1\u0a6e\56\0\1\250\12\0\6\264\1\0" + "\3\264\2\0\7\264\1\0\1\u01d8\6\264\1\0\1\250" + + "\1\264\1\0\4\264\2\0\4\264\7\0\2\250\16\264" + "\4\0\2\264\1\u065a\16\264\55\0\1\u0a6f\166\0\1\u0a70" + + "\76\0\1\u0a71\171\0\1\u0a72\137\0\1\u0a73\104\0\1\u0a74" + "\172\0\1\u0a75\104\0\1\u0a76\173\0\1\u0a77\143\0\1\u0a78" + + "\117\0\1\u0a79\117\0\1\u0a7a\140\0\1\u0a7b\134\0\1\u0a7c" + "\156\0\1\u0a7d\123\0\1\u0a7e\155\0\1\u0a7f\153\0\1\u0a80" + + "\122\0\1\u0a81\161\0\1\u0a82\50\0\1\u0a67\227\0\1\u0a7a" + "\107\0\1\u0a83\104\0\1\u0a84\246\0\1\u0a85\63\0\1\u0a86" + + "\124\0\1\u0a87\161\0\1\u0a88\117\0\1\u0a89\157\0\1\u0a8a" + "\153\0\1\u0a8b\122\0\1\u0a8c\140\0\1\u0a8d\117\0\1\u0a8e" + + "\176\0\1\u085c\116\0\1\u0a8f\137\0\1\u0a7a\163\0\1\u08f2" + "\76\0\1\u0a90\154\0\1\u04ec\134\0\1\u0a91\123\0\1\u0a92" + + "\177\0\1\u0a93\133\0\1\u0a94\123\0\1\u0a95\140\0\1\u0939" + "\116\0\1\u0a96\140\0\1\u0a97\203\0\1\u085c\126\0\1\u0972" + + "\42\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[246048]; + int offset = 0; + offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_2, 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\6\0\2\1\1\0\2\1\1\0\2\1\14\0\1\1" + "\5\0\2\1\1\11\4\1\1\11\5\1\1\11\2\1" + + "\2\11\2\1\4\11\1\1\1\11\1\1\1\11\26\1" + "\1\11\2\1\2\11\1\1\5\11\1\1\1\11\2\1" + "\1\11\2\1\1\11\1\1\2\11\14\1\1\11\7\1" + + "\1\11\1\1\1\11\11\1\2\11\2\1\2\11\2\1" + "\1\11\6\1\1\11\4\1\1\11\2\1\1\11\10\1" + "\1\11\57\1\1\11\5\1\2\11\4\1\2\11\1\1" + + "\2\11\5\1\3\11\4\1\4\11\1\1\1\11\6\1" + "\4\11\1\1\3\11\2\1\1\11\2\1\1\11\1\1" + "\1\11\1\1\1\11\5\1\2\11\5\0\1\11\105\1" + + "\1\11\2\0\1\1\1\0\1\1\1\11\1\0\76\1" + "\1\11\2\1\3\0\1\11\12\0\1\11\2\0\1\11" + "\16\0\1\1\1\11\2\1\1\0\1\11\52\1\1\11" + + "\130\1\2\11\3\1\1\0\1\11\1\1\15\0\1\1" + "\1\0\1\11\5\0\1\1\4\11\3\1\1\11\1\0" + "\1\11\1\0\1\11\4\0\101\1\1\11\1\0\1\1" + + "\1\0\3\1\1\0\72\1\44\0\1\11\1\1\1\0" + "\3\1\1\0\242\1\25\0\2\1\2\11\2\0\44\1" + "\1\0\1\11\47\1\1\0\1\11\3\0\1\1\3\0" + + "\1\1\1\11\11\0\1\11\11\0\1\1\5\0\212\1" + "\1\0\17\1\23\0\2\1\2\0\24\1\1\0\30\1" + "\37\0\205\1\1\0\15\1\16\0\14\1\1\0\21\1" + + "\24\0\172\1\1\0\13\1\12\0\4\1\1\0\10\1" + "\4\0\1\1\6\0\66\1\1\0\3\1\1\0\22\1" + "\1\0\45\1\1\0\13\1\6\0\1\1\1\0\3\1" + + "\13\0\70\1\2\0\2\1\4\0\16\1\2\0\37\1" + "\1\0\12\1\1\11\4\0\1\1\1\11\1\1\2\11" + "\5\0\14\1\1\0\45\1\2\0\1\1\4\0\15\1" + + "\1\0\35\1\1\11\11\1\10\0\21\1\1\0\31\1" + "\6\0\10\1\1\0\2\1\1\0\35\1\3\0\1\11" + "\2\0\15\1\2\0\25\1\6\0\11\1\1\0\34\1" + + "\1\0\4\1\2\0\21\1\5\0\6\1\1\0\1\1" + "\1\0\27\1\2\0\3\1\2\0\16\1\4\0\6\1" + "\2\0\25\1\2\0\2\1\2\0\15\1\3\0\4\1" + + "\2\0\22\1\5\0\1\1\3\0\10\1\1\0\1\1" + "\3\0\4\1\2\0\15\1\4\0\1\1\2\0\10\1" + "\1\0\1\1\3\0\3\1\2\0\7\1\6\0\5\1" + + "\1\0\1\1\3\0\2\1\2\0\6\1\6\0\3\1" + "\5\0\2\1\2\0\2\1\1\0\3\1\5\0\2\1" + "\3\0\1\1\2\0\2\1\2\0\1\1\5\0\1\1" + + "\3\0\1\1\2\0\1\1\11\0\1\1\2\0\1\1" + "\16\0\1\1\43\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[2711]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Type specific to JSPTokenMaker denoting a line ending with an unclosed * double-quote attribute. */ - private static final int INTERNAL_ATTR_DOUBLE = -1; - - + private static final int INTERNAL_ATTR_DOUBLE = -1; /** * Type specific to JSPTokenMaker denoting a line ending with an unclosed * single-quote attribute. */ - private static final int INTERNAL_ATTR_SINGLE = -2; - - + private static final int INTERNAL_ATTR_SINGLE = -2; /** * Token type specific to JSPTokenMaker; this signals that the user has * ended a line with an unclosed HTML tag; thus a new line is beginning * still inside of the tag. */ - private static final int INTERNAL_INTAG = -3; - + private static final int INTERNAL_INTAG = -3; /** * Token type specific to JSPTokenMaker; this signals that the user has * ended a line with an unclosed <script> tag. */ - private static final int INTERNAL_INTAG_SCRIPT = -4; - + private static final int INTERNAL_INTAG_SCRIPT = -4; /** * Token type specifying we're in a double-qouted attribute in a * script tag. */ private static final int INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT = -5; - /** * Token type specifying we're in a single-qouted attribute in a * script tag. */ private static final int INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT = -6; - /** * Token type specifying that the user has * ended a line with an unclosed <style> tag. */ - private static final int INTERNAL_INTAG_STYLE = -7; - + private static final int INTERNAL_INTAG_STYLE = -7; /** * Token type specifying we're in a double-qouted attribute in a * style tag. */ private static final int INTERNAL_ATTR_DOUBLE_QUOTE_STYLE = -8; - /** * Token type specifying we're in a single-qouted attribute in a * style tag. */ private static final int INTERNAL_ATTR_SINGLE_QUOTE_STYLE = -9; - /** * Token type specifying we're in a JSP hidden comment ("<%-- ... --%>"). */ - private static final int INTERNAL_IN_HIDDEN_COMMENT = -10; - + private static final int INTERNAL_IN_HIDDEN_COMMENT = -10; /** * Token type specifying we're in a JSP directive (either include, page * or taglib). */ - private static final int INTERNAL_IN_JSP_DIRECTIVE = -11; - + private static final int INTERNAL_IN_JSP_DIRECTIVE = -11; /** * Token type specifying we're in JavaScript. */ - static final int INTERNAL_IN_JS = -12; - + static final int INTERNAL_IN_JS = -12; /** * Token type specifying we're in a JavaScript multi-line comment. */ - private static final int INTERNAL_IN_JS_MLC = -13; - + private static final int INTERNAL_IN_JS_MLC = -13; /** * Token type specifying we're in an invalid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_INVALID = -14; - + private static final int INTERNAL_IN_JS_STRING_INVALID = -14; /** * Token type specifying we're in a valid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_VALID = -15; - + private static final int INTERNAL_IN_JS_STRING_VALID = -15; /** - * Token type specifying we're in an invalid multi-line JS single-quoted string. + * Token type specifying we're in an invalid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_INVALID = -16; - + private static final int INTERNAL_IN_JS_CHAR_INVALID = -16; /** - * Token type specifying we're in a valid multi-line JS single-quoted string. + * Token type specifying we're in a valid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_VALID = -17; - + private static final int INTERNAL_IN_JS_CHAR_VALID = -17; /** * Internal type denoting a line ending in CSS. */ - private static final int INTERNAL_CSS = -18; - + private static final int INTERNAL_CSS = -18; /** * Internal type denoting a line ending in a CSS property. */ - private static final int INTERNAL_CSS_PROPERTY = -19; - + private static final int INTERNAL_CSS_PROPERTY = -19; /** * Internal type denoting a line ending in a CSS property value. */ - private static final int INTERNAL_CSS_VALUE = -20; - + private static final int INTERNAL_CSS_VALUE = -20; /** * Token type specifying we're in a valid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID = -23; - /** * Token type specifying we're in an invalid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID = -24; - /** * Internal type denoting line ending in a CSS double-quote string. * The state to return to is embedded in the actual end token type. */ - private static final int INTERNAL_CSS_STRING = -(1<<11); - + private static final int INTERNAL_CSS_STRING = -(1 << 11); /** * Internal type denoting line ending in a CSS single-quote string. * The state to return to is embedded in the actual end token type. */ - private static final int INTERNAL_CSS_CHAR = -(2<<11); - + private static final int INTERNAL_CSS_CHAR = -(2 << 11); /** * Internal type denoting line ending in a CSS multi-line comment. * The state to return to is embedded in the actual end token type. */ - private static final int INTERNAL_CSS_MLC = -(3<<11); - + private static final int INTERNAL_CSS_MLC = -(3 << 11); /** * Token type specifying we're in a Java documentation comment. */ - private static final int INTERNAL_IN_JAVA_DOCCOMMENT = -(4<<11); - + private static final int INTERNAL_IN_JAVA_DOCCOMMENT = -(4 << 11); /** * Token type specifying we're in Java code. */ - static final int INTERNAL_IN_JAVA_EXPRESSION = -(5<<11); - + static final int INTERNAL_IN_JAVA_EXPRESSION = -(5 << 11); /** * Token type specifying we're in Java multiline comment. */ - private static final int INTERNAL_IN_JAVA_MLC = -(6<<11); - + private static final int INTERNAL_IN_JAVA_MLC = -(6 << 11); /** * The state previous CSS-related state we were in before going into a CSS * string, multi-line comment, etc. */ private int cssPrevState; - /** * The state JSP was started in (YYINITIAL, INTERNAL_IN_JS, etc.). */ private int jspInState; - /** * Whether closing markup tags are automatically completed for JSP. */ private static boolean completeCloseTags; - /** * When in the JS_STRING state, whether the current string is valid. */ private boolean validJSString; - /** - * Language state set on HTML tokens. Must be 0. + * Language state set on HTML tokens. Must be 0. */ private static final int LANG_INDEX_DEFAULT = 0; - /** * Language state set on JavaScript tokens. */ private static final int LANG_INDEX_JS = 1; - /** * Language state set on CSS tokens. */ private static final int LANG_INDEX_CSS = 2; - private Stack varDepths; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public JSPTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -6814,10 +3799,9 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { protected OccurrenceMarker createOccurrenceMarker() { return new HtmlOccurrenceMarker(); } - - + /** - * Sets whether markup close tags should be completed. You might not want + * Sets whether markup close tags should be completed. You might not want * this to be the case, since some tags in standard HTML aren't usually * closed. * @@ -6828,14 +3812,12 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { public boolean getCompleteCloseTags() { return completeCloseTags; } - - + @Override public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex) { - return languageIndex==LANG_INDEX_CSS || languageIndex==LANG_INDEX_JS; + return languageIndex == LANG_INDEX_CSS || languageIndex == LANG_INDEX_JS; } - - + /** * {@inheritDoc} */ @@ -6850,56 +3832,53 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { return new String[] { "" }; } } - - + /** * {@inheritDoc} */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.FUNCTION || type==Token.VARIABLE || - type==Token.MARKUP_TAG_NAME; + return type == Token.FUNCTION || type == Token.VARIABLE || type == Token.MARKUP_TAG_NAME; } - - + /** * Overridden to handle newlines in JS and CSS differently than those in * markup. */ @Override public boolean getShouldIndentNextLineAfter(Token token) { - int languageIndex = token==null ? 0 : token.getLanguageIndex(); + int languageIndex = token == null ? 0 : token.getLanguageIndex(); if (getCurlyBracesDenoteCodeBlocks(languageIndex)) { - if (token!=null && token.length()==1) { + if (token != null && token.length() == 1) { char ch = token.charAt(0); - return ch=='{' || ch=='('; + return ch == '{' || ch == '('; } } return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; jspInState = YYINITIAL; // Shouldn't be necessary cssPrevState = CSS; // Shouldn't be necessary int languageIndex = 0; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -6996,7 +3975,7 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { validJSString = false; break; default: - if (initialTokenType<-1024) { + if (initialTokenType < -1024) { // INTERNAL_IN_JAVAxxx - jspInState or // INTERNAL_IN_CSSxxx - cssPrevState int main = -(-initialTokenType & 0xffffff00); @@ -7004,39 +3983,37 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { default: // Should never happen case INTERNAL_IN_JAVA_DOCCOMMENT: state = JAVA_DOCCOMMENT; - jspInState = -initialTokenType&0xff; + jspInState = -initialTokenType & 0xff; break; case INTERNAL_IN_JAVA_EXPRESSION: state = JAVA_EXPRESSION; - jspInState = -initialTokenType&0xff; + jspInState = -initialTokenType & 0xff; break; case INTERNAL_IN_JAVA_MLC: state = JAVA_MLC; - jspInState = -initialTokenType&0xff; + jspInState = -initialTokenType & 0xff; break; case INTERNAL_CSS_STRING: state = CSS_STRING; languageIndex = LANG_INDEX_CSS; - cssPrevState = -initialTokenType&0xff; + cssPrevState = -initialTokenType & 0xff; break; case INTERNAL_CSS_CHAR: state = CSS_CHAR_LITERAL; languageIndex = LANG_INDEX_CSS; - cssPrevState = -initialTokenType&0xff; + cssPrevState = -initialTokenType & 0xff; break; case INTERNAL_CSS_MLC: state = CSS_C_STYLE_COMMENT; languageIndex = LANG_INDEX_CSS; - cssPrevState = -initialTokenType&0xff; + cssPrevState = -initialTokenType & 0xff; break; } - } - else { + } else { state = Token.NULL; } break; } - setLanguageIndex(languageIndex); start = text.offset; s = text; @@ -7048,34 +4025,31 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** - * Sets whether markup close tags should be completed. You might not want + * Sets whether markup close tags should be completed. You might not want * this to be the case, since some tags in standard HTML aren't usually * closed. * - * @param complete Whether closing markup tags are completed. + * @param complete + * Whether closing markup tags are completed. * @see #getCompleteCloseTags() */ public static void setCompleteCloseTags(boolean complete) { completeCloseTags = complete; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -7084,7 +4058,8 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -7093,1045 +4068,1367 @@ public class JSPTokenMaker extends AbstractMarkupTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 JSPTokenMaker(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 JSPTokenMaker(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 < 202) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 66: - { addToken(Token.OPERATOR); yybegin(CSS_VALUE); - } - case 139: break; - case 93: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 140: break; - case 75: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 141: break; - case 23: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE_SCRIPT); - } - case 142: break; - case 10: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.MARKUP_DTD); - } - case 143: break; - case 62: - { addToken(Token.SEPARATOR); yybegin(CSS_PROPERTY); - } - case 144: break; - case 121: - { start = zzMarkedPos-4; yybegin(HIDDEN_COMMENT); - } - case 145: break; - case 4: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(INTAG); - } - case 146: break; - case 133: - { addToken(Token.RESERVED_WORD_2); - } - case 147: break; - case 111: - { addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); yybegin(cssPrevState); - } - case 148: break; - case 108: - { start = zzMarkedPos-2; cssPrevState = zzLexicalState; yybegin(CSS_C_STYLE_COMMENT); - } - case 149: break; - case 42: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_INVALID); - } + + /** + * 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 JSPTokenMaker(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 JSPTokenMaker(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 < 202) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 66: { + addToken(Token.OPERATOR); + yybegin(CSS_VALUE); + } + case 139: + break; + case 93: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 140: + break; + case 75: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 141: + break; + case 23: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE_SCRIPT); + } + case 142: + break; + case 10: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.MARKUP_DTD); + } + case 143: + break; + case 62: { + addToken(Token.SEPARATOR); + yybegin(CSS_PROPERTY); + } + case 144: + break; + case 121: { + start = zzMarkedPos - 4; + yybegin(HIDDEN_COMMENT); + } + case 145: + break; + case 4: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(INTAG); + } + case 146: + break; + case 133: { + addToken(Token.RESERVED_WORD_2); + } + case 147: + break; + case 111: { + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + yybegin(cssPrevState); + } + case 148: + break; + case 108: { + start = zzMarkedPos - 2; + cssPrevState = zzLexicalState; + yybegin(CSS_C_STYLE_COMMENT); + } + case 149: + break; + case 42: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_INVALID); + } + return firstToken; + } + case 150: + break; + case 5: { + addToken(Token.WHITESPACE); + } + case 151: + break; + case 134: { + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 6, zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + start = zzMarkedPos; + yybegin(INTAG_SCRIPT); + } + case 152: + break; + case 110: { + addToken(Token.REGEX); + } + case 153: + break; + case 43: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 154: + break; + case 138: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(temp, temp + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 155: + break; + case 120: { + addToken(Token.FUNCTION); + } + case 156: + break; + case 100: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); + start = zzMarkedPos; + } + case 157: + break; + case 8: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 158: + break; + case 37: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 159: + break; + case 58: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_STRING); + } + case 160: + break; + case 112: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + start = zzMarkedPos - 2; + if (varDepths == null) { + varDepths = new Stack(); + } else { + varDepths.clear(); + } + varDepths.push(Boolean.TRUE); + yybegin(JS_TEMPLATE_LITERAL_EXPR); + } + case 161: + break; + case 83: { + if (!varDepths.empty()) { + varDepths.pop(); + if (varDepths.empty()) { + addToken(start, zzStartRead, Token.VARIABLE); + start = zzMarkedPos; + yybegin(JS_TEMPLATE_LITERAL); + } + } + } + case 162: + break; + case 78: { + if (validJSString) { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 163: + break; + case 53: { + addToken(Token.ERROR_CHAR); + } + case 164: + break; + case 80: { /* + * Skip valid '$' that is not part of template + * literal expression start + */ + } + case 165: + break; + case 20: { /* Allowing JSP expressions, etc. */ + } + case 166: + break; + case 26: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE_STYLE); + } + case 167: + break; + case 36: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_TEMPLATE_LITERAL); + } + case 168: + break; + case 129: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 3, Token.MARKUP_COMMENT); + } + case 169: + break; + case 96: { /* Skip all escaped chars. */ + } + case 170: + break; + case 90: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(YYINITIAL); + } + case 171: + break; + case 29: { + yybegin(INTAG_STYLE); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 172: + break; + case 126: { + if (JavaScriptTokenMaker.isJavaScriptCompatible("1.6")) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 173: + break; + case 118: { + if (JavaScriptTokenMaker.isJavaScriptCompatible("1.7")) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 174: + break; + case 67: { + /* System.out.println("css_value: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 175: + break; + case 17: { + /* A non-recognized HTML tag name */ yypushback(yylength()); + yybegin(INTAG); + } + case 176: + break; + case 28: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(CSS, LANG_INDEX_CSS); + } + case 177: + break; + case 76: { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + yybegin(cssPrevState); + } + case 178: + break; + case 113: { + varDepths.push(Boolean.TRUE); + } + case 179: + break; + case 27: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE_STYLE); + } + case 180: + break; + case 55: { + addToken(Token.IDENTIFIER); /* + * Needed as InTagIdentifier + * ignores it. + */ + } + case 181: + break; + case 7: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + return firstToken; + } + case 182: + break; + case 98: { + /* Invalid latin-1 character \xXX */ validJSString = false; + } + case 183: + break; + case 25: { + yybegin(INTAG_SCRIPT); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 184: + break; + case 38: { + int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(JAVASCRIPT); + } + case 185: + break; + case 124: { + addToken(Token.COMMENT_MULTILINE); + } + case 186: + break; + case 48: { + addToken(Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); + return firstToken; + } + case 187: + break; + case 119: { + start = zzMarkedPos - 3; + yybegin(JAVA_DOCCOMMENT); + } + case 188: + break; + case 87: { + start = zzMarkedPos - 2; + yybegin(PI); + } + case 189: + break; + case 135: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 6, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 190: + break; + case 63: { + /* System.out.println("css_property: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 191: + break; + case 9: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + return firstToken; + } + case 192: + break; + case 84: { + int count = yylength(); + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + zzMarkedPos -= (count - 1); // yypushback(count-1); + yybegin(INTAG_CHECK_TAG_NAME); + } + case 193: + break; + case 74: { /* Skip escaped chars. */ + } + case 194: + break; + case 97: { + /* Invalid Unicode character \\uXXXX */ validJSString = false; + } + case 195: + break; + case 132: { + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 5, zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + start = zzMarkedPos; + cssPrevState = zzLexicalState; + yybegin(INTAG_STYLE); + } + case 196: + break; + case 101: { + yybegin(JAVA_EXPRESSION); + addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); + } + case 197: + break; + case 88: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.MARKUP_PROCESSING_INSTRUCTION); + } + case 198: + break; + case 99: { + yybegin(JAVASCRIPT); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 199: + break; + case 85: { + addToken(Token.MARKUP_TAG_DELIMITER); + jspInState = zzLexicalState; + yybegin(JAVA_EXPRESSION); + } + case 200: + break; + case 31: { + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 201: + break; + case 40: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 202: + break; + case 45: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_HIDDEN_COMMENT); + return firstToken; + } + case 203: + break; + case 12: { + addToken(Token.OPERATOR); + } + case 204: + break; + case 69: { + addToken(Token.OPERATOR); + yybegin(CSS_PROPERTY); + } + case 205: + break; + case 49: { + addToken(Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); + return firstToken; + } + case 206: + break; + case 122: { + start = zzMarkedPos - 4; + yybegin(COMMENT); + } + case 207: + break; + case 116: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 2, Token.MARKUP_COMMENT); + } + case 208: + break; + case 109: { + addToken(Token.VARIABLE); + } + case 209: + break; + case 56: { + /* System.out.println("CSS: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 210: + break; + case 104: { + start = zzMarkedPos - 2; + yybegin(JAVA_MLC); + } + case 211: + break; + case 81: { + int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(JAVASCRIPT); + } + case 212: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 213: + break; + case 127: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 214: + break; + case 24: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(JAVASCRIPT, LANG_INDEX_JS); + } + case 215: + break; + case 103: { + addToken(Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); + return firstToken; + } + case 216: + break; + case 128: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 217: + break; + case 65: { + addToken(Token.SEPARATOR); + yybegin(CSS); + } + case 218: + break; + case 137: { + yybegin(YYINITIAL); + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addToken(temp, temp + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 219: + break; + case 32: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_STRING); + } + case 220: + break; + case 46: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_IN_JAVA_DOCCOMMENT - jspInState); + return firstToken; + } + case 221: + break; + case 73: { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(cssPrevState); + } + case 222: + break; + case 79: { + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 223: + break; + case 64: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 224: + break; + case 52: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 225: + break; + case 41: { + int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; + addToken(start, zzStartRead, type); + yybegin(JAVASCRIPT); + } + case 226: + break; + case 115: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(JSP_DIRECTIVE); + } + case 227: + break; + case 33: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_CHAR); + } + case 228: + break; + case 131: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 229: + break; + case 92: { + start = zzMarkedPos - 2; + yybegin(JS_MLC); + } + case 230: + break; + case 95: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 231: + break; + case 71: { + int temp = zzMarkedPos - 2; + addToken(zzStartRead, temp, Token.FUNCTION); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.SEPARATOR); + zzStartRead = zzCurrentPos = zzMarkedPos; + } + case 232: + break; + case 106: { + yybegin(JAVA_EXPRESSION); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 233: + break; + case 51: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JAVA_MLC - jspInState); + return firstToken; + } + case 234: + break; + case 50: { + addToken(Token.ANNOTATION); + } + case 235: + break; + case 30: { + addToken(Token.ERROR_IDENTIFIER); + } + case 236: + break; + case 68: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 237: + break; + case 123: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 238: + break; + case 6: { + addToken(Token.MARKUP_ENTITY_REFERENCE); + } + case 239: + break; + case 125: { + addToken(Token.LITERAL_BOOLEAN); + } + case 240: + break; + case 18: { + /* Shouldn't happen */ yypushback(1); + yybegin(INTAG); + } + case 241: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 242: + break; + case 57: { + addEndToken(INTERNAL_CSS); + return firstToken; + } + case 243: + break; + case 136: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 244: + break; + case 59: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_CHAR_LITERAL); + } + case 245: + break; + case 54: { + addToken(Token.RESERVED_WORD); + } + case 246: + break; + case 105: { + addToken(Token.MARKUP_TAG_DELIMITER); + start = zzMarkedPos; + yybegin(jspInState); + } + case 247: + break; + case 13: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE); + } + case 248: + break; + case 107: { + addToken(Token.LITERAL_CHAR); + } + case 249: + break; + case 16: { + yybegin(YYINITIAL); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 250: + break; + case 60: { + addToken(Token.DATA_TYPE); + } + case 251: + break; + case 47: { + addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); + return firstToken; + } + case 252: + break; + case 35: { + addToken(Token.SEPARATOR); + } + case 253: + break; + case 114: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + zzMarkedPos -= (count - 2); // yypushback(count-2); + yybegin(INTAG_CHECK_TAG_NAME); + } + case 254: + break; + case 72: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); + return firstToken; + } + case 255: + break; + case 70: { + /* End of a function */ addToken(Token.SEPARATOR); + } + case 256: + break; + case 19: { + addToken(Token.MARKUP_TAG_NAME); + } + case 257: + break; + case 11: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 258: + break; + case 130: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); + start = zzMarkedPos; + } + case 259: + break; + case 91: { + start = zzMarkedPos - 2; + yybegin(JS_EOL_COMMENT); + } + case 260: + break; + case 39: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_IN_JS_STRING_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_STRING_INVALID); + } + return firstToken; + } + case 261: + break; + case 94: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 262: + break; + case 14: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE); + } + case 263: + break; + case 117: { + boolean highlightedAsRegex = false; + if (firstToken == null) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } else { + // If this is *likely* to be a regex, based on + // the previous token, highlight it as such. + Token t = firstToken.getLastNonCommentNonWhitespaceToken(); + if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } + } + // If it doesn't *appear* to be a regex, highlight it as + // individual tokens. + if (!highlightedAsRegex) { + int temp = zzStartRead + 1; + addToken(zzStartRead, zzStartRead, Token.OPERATOR); + zzStartRead = zzCurrentPos = zzMarkedPos = temp; + } + } + case 264: + break; + case 102: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 265: + break; + case 77: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 266: + break; + case 15: { + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 267: + break; + case 34: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 268: + break; + case 86: { + start = zzMarkedPos - 2; + yybegin(DTD); + } + case 269: + break; + case 89: { + int temp = zzStartRead; + if (zzStartRead > start) + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addToken(temp, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + jspInState = zzLexicalState; + yybegin(JAVA_EXPRESSION); + } + case 270: + break; + case 21: { + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + yybegin(INTAG); + } + case 271: + break; + case 22: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE_SCRIPT); + } + case 272: + break; + case 44: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 273: + break; + case 82: { // TODO: This isn't right. The expression and its + // depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 274: + break; + case 61: { + /* Unknown pseudo class */ addToken(Token.DATA_TYPE); + } + case 275: + break; + case 1: {} + case 276: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case INATTR_SINGLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT); return firstToken; - } - case 150: break; - case 5: - { addToken(Token.WHITESPACE); - } - case 151: break; - case 134: - { addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-6,zzMarkedPos-1, Token.MARKUP_TAG_NAME); - start = zzMarkedPos; yybegin(INTAG_SCRIPT); - } - case 152: break; - case 110: - { addToken(Token.REGEX); - } - case 153: break; - case 43: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 154: break; - case 138: - { int temp = zzStartRead; - addToken(start,zzStartRead-1, Token.COMMENT_EOL); - yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(temp,temp+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 155: break; - case 120: - { addToken(Token.FUNCTION); - } - case 156: break; - case 100: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_MARKUP); start = zzMarkedPos; - } - case 157: break; - case 8: - { addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 158: break; - case 37: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 159: break; - case 58: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_STRING); - } - case 160: break; - case 112: - { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - start = zzMarkedPos-2; - if (varDepths==null) { - varDepths = new Stack(); - } - else { - varDepths.clear(); - } - varDepths.push(Boolean.TRUE); - yybegin(JS_TEMPLATE_LITERAL_EXPR); - } - case 161: break; - case 83: - { if (!varDepths.empty()) { - varDepths.pop(); - if (varDepths.empty()) { - addToken(start,zzStartRead, Token.VARIABLE); - start = zzMarkedPos; - yybegin(JS_TEMPLATE_LITERAL); - } } - } - case 162: break; - case 78: - { if (validJSString) { - addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + case 2712: + break; + case JS_CHAR: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 163: break; - case 53: - { addToken(Token.ERROR_CHAR); - } - case 164: break; - case 80: - { /* Skip valid '$' that is not part of template literal expression start */ - } - case 165: break; - case 20: - { /* Allowing JSP expressions, etc. */ - } - case 166: break; - case 26: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE_STYLE); - } - case 167: break; - case 36: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_TEMPLATE_LITERAL); - } - case 168: break; - case 129: - { yybegin(YYINITIAL); addToken(start,zzStartRead+3, Token.MARKUP_COMMENT); - } - case 169: break; - case 96: - { /* Skip all escaped chars. */ - } - case 170: break; - case 90: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(YYINITIAL); - } - case 171: break; - case 29: - { yybegin(INTAG_STYLE); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 172: break; - case 126: - { if(JavaScriptTokenMaker.isJavaScriptCompatible("1.6")){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 173: break; - case 118: - { if(JavaScriptTokenMaker.isJavaScriptCompatible("1.7")){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 174: break; - case 67: - { /*System.out.println("css_value: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 175: break; - case 17: - { /* A non-recognized HTML tag name */ yypushback(yylength()); yybegin(INTAG); - } - case 176: break; - case 28: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(CSS, LANG_INDEX_CSS); - } - case 177: break; - case 76: - { addToken(start,zzStartRead, Token.LITERAL_CHAR); yybegin(cssPrevState); - } - case 178: break; - case 113: - { varDepths.push(Boolean.TRUE); - } - case 179: break; - case 27: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE_STYLE); - } - case 180: break; - case 55: - { addToken(Token.IDENTIFIER); /* Needed as InTagIdentifier ignores it. */ - } - case 181: break; - case 7: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); return firstToken; - } - case 182: break; - case 98: - { /* Invalid latin-1 character \xXX */ validJSString = false; - } - case 183: break; - case 25: - { yybegin(INTAG_SCRIPT); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 184: break; - case 38: - { int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(JAVASCRIPT); - } - case 185: break; - case 124: - { addToken(Token.COMMENT_MULTILINE); - } - case 186: break; - case 48: - { addToken(Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); return firstToken; - } - case 187: break; - case 119: - { start = zzMarkedPos-3; yybegin(JAVA_DOCCOMMENT); - } - case 188: break; - case 87: - { start = zzMarkedPos-2; yybegin(PI); - } - case 189: break; - case 135: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-6,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 190: break; - case 63: - { /*System.out.println("css_property: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 191: break; - case 9: - { addToken(start,zzStartRead-1, Token.MARKUP_DTD); return firstToken; - } - case 192: break; - case 84: - { int count = yylength(); - addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - zzMarkedPos -= (count-1); //yypushback(count-1); - yybegin(INTAG_CHECK_TAG_NAME); - } - case 193: break; - case 74: - { /* Skip escaped chars. */ - } - case 194: break; - case 97: - { /* Invalid Unicode character \\uXXXX */ validJSString = false; - } - case 195: break; - case 132: - { addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-5,zzMarkedPos-1, Token.MARKUP_TAG_NAME); - start = zzMarkedPos; cssPrevState = zzLexicalState; yybegin(INTAG_STYLE); - } - case 196: break; - case 101: - { yybegin(JAVA_EXPRESSION); addToken(start,zzStartRead+1, Token.COMMENT_DOCUMENTATION); - } - case 197: break; - case 88: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.MARKUP_PROCESSING_INSTRUCTION); - } - case 198: break; - case 99: - { yybegin(JAVASCRIPT); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 199: break; - case 85: - { addToken(Token.MARKUP_TAG_DELIMITER); jspInState = zzLexicalState; yybegin(JAVA_EXPRESSION); - } - case 200: break; - case 31: - { addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 201: break; - case 40: - { addToken(start,zzStartRead-1, Token.ERROR_CHAR); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 202: break; - case 45: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_HIDDEN_COMMENT); return firstToken; - } - case 203: break; - case 12: - { addToken(Token.OPERATOR); - } - case 204: break; - case 69: - { addToken(Token.OPERATOR); yybegin(CSS_PROPERTY); - } - case 205: break; - case 49: - { addToken(Token.ERROR_CHAR); addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); return firstToken; - } - case 206: break; - case 122: - { start = zzMarkedPos-4; yybegin(COMMENT); - } - case 207: break; - case 116: - { yybegin(YYINITIAL); addToken(start,zzStartRead+2, Token.MARKUP_COMMENT); - } - case 208: break; - case 109: - { addToken(Token.VARIABLE); - } - case 209: break; - case 56: - { /*System.out.println("CSS: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 210: break; - case 104: - { start = zzMarkedPos-2; yybegin(JAVA_MLC); - } - case 211: break; - case 81: - { int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(JAVASCRIPT); - } - case 212: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 213: break; - case 127: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 214: break; - case 24: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(JAVASCRIPT, LANG_INDEX_JS); - } - case 215: break; - case 103: - { addToken(Token.COMMENT_EOL); addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); return firstToken; - } - case 216: break; - case 128: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 217: break; - case 65: - { addToken(Token.SEPARATOR); yybegin(CSS); - } - case 218: break; - case 137: - { yybegin(YYINITIAL); - int temp = zzStartRead; - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); - addToken(temp,temp+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 219: break; - case 32: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_STRING); - } - case 220: break; - case 46: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_IN_JAVA_DOCCOMMENT - jspInState); return firstToken; - } - case 221: break; - case 73: - { addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(cssPrevState); - } - case 222: break; - case 79: - { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + } + case 2713: + break; + case JAVA_EXPRESSION: { + addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); return firstToken; - } - case 223: break; - case 64: - { addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 224: break; - case 52: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 225: break; - case 41: - { int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; addToken(start,zzStartRead, type); yybegin(JAVASCRIPT); - } - case 226: break; - case 115: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(JSP_DIRECTIVE); - } - case 227: break; - case 33: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_CHAR); - } - case 228: break; - case 131: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 229: break; - case 92: - { start = zzMarkedPos-2; yybegin(JS_MLC); - } - case 230: break; - case 95: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 231: break; - case 71: - { int temp = zzMarkedPos - 2; - addToken(zzStartRead, temp, Token.FUNCTION); - addToken(zzMarkedPos-1, zzMarkedPos-1, Token.SEPARATOR); - zzStartRead = zzCurrentPos = zzMarkedPos; - } - case 232: break; - case 106: - { yybegin(JAVA_EXPRESSION); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 233: break; - case 51: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JAVA_MLC - jspInState); return firstToken; - } - case 234: break; - case 50: - { addToken(Token.ANNOTATION); - } - case 235: break; - case 30: - { addToken(Token.ERROR_IDENTIFIER); - } - case 236: break; - case 68: - { addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 237: break; - case 123: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 238: break; - case 6: - { addToken(Token.MARKUP_ENTITY_REFERENCE); - } - case 239: break; - case 125: - { addToken(Token.LITERAL_BOOLEAN); - } - case 240: break; - case 18: - { /* Shouldn't happen */ yypushback(1); yybegin(INTAG); - } - case 241: break; - case 3: - { addNullToken(); return firstToken; - } - case 242: break; - case 57: - { addEndToken(INTERNAL_CSS); return firstToken; - } - case 243: break; - case 136: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 244: break; - case 59: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_CHAR_LITERAL); - } - case 245: break; - case 54: - { addToken(Token.RESERVED_WORD); - } - case 246: break; - case 105: - { addToken(Token.MARKUP_TAG_DELIMITER); start = zzMarkedPos; yybegin(jspInState); - } - case 247: break; - case 13: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE); - } - case 248: break; - case 107: - { addToken(Token.LITERAL_CHAR); - } - case 249: break; - case 16: - { yybegin(YYINITIAL); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 250: break; - case 60: - { addToken(Token.DATA_TYPE); - } - case 251: break; - case 47: - { addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); return firstToken; - } - case 252: break; - case 35: - { addToken(Token.SEPARATOR); - } - case 253: break; - case 114: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - zzMarkedPos -= (count-2); //yypushback(count-2); - yybegin(INTAG_CHECK_TAG_NAME); - } - case 254: break; - case 72: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 255: break; - case 70: - { /* End of a function */ addToken(Token.SEPARATOR); - } - case 256: break; - case 19: - { addToken(Token.MARKUP_TAG_NAME); - } - case 257: break; - case 11: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 258: break; - case 130: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_KEYWORD); start = zzMarkedPos; - } - case 259: break; - case 91: - { start = zzMarkedPos-2; yybegin(JS_EOL_COMMENT); - } - case 260: break; - case 39: - { /* Line ending in '\' => continue to next line. */ + } + case 2714: + break; + case CSS_STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); + return firstToken; + } + case 2715: + break; + case HIDDEN_COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_HIDDEN_COMMENT); + return firstToken; + } + case 2716: + break; + case JS_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 2717: + break; + case CSS_CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 2718: + break; + case JAVA_DOCCOMMENT: { + yybegin(JAVA_EXPRESSION); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_IN_JAVA_DOCCOMMENT - jspInState); + return firstToken; + } + case 2719: + break; + case INTAG_SCRIPT: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG_SCRIPT); + return firstToken; + } + case 2720: + break; + case JS_TEMPLATE_LITERAL_EXPR: { + // TODO: This isn't right. The expression and + // its depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 2721: + break; + case CSS_PROPERTY: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 2722: + break; + case CSS_C_STYLE_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 2723: + break; + case CSS: { + addEndToken(INTERNAL_CSS); + return firstToken; + } + case 2724: + break; + case CSS_VALUE: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 2725: + break; + case JSP_DIRECTIVE: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_IN_JSP_DIRECTIVE); + return firstToken; + } + case 2726: + break; + case COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + return firstToken; + } + case 2727: + break; + case INATTR_DOUBLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT); + return firstToken; + } + case 2728: + break; + case PI: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 2729: + break; + case JAVASCRIPT: { + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 2730: + break; + case INTAG: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG); + return firstToken; + } + case 2731: + break; + case INTAG_CHECK_TAG_NAME: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG); + return firstToken; + } + case 2732: + break; + case INATTR_SINGLE_STYLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_STYLE); + return firstToken; + } + case 2733: + break; + case DTD: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + return firstToken; + } + case 2734: + break; + case JS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 2735: + break; + case INATTR_DOUBLE_STYLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_STYLE); + return firstToken; + } + case 2736: + break; + case INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE); + return firstToken; + } + case 2737: + break; + case JS_TEMPLATE_LITERAL: { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - addEndToken(INTERNAL_IN_JS_STRING_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_STRING_INVALID); - } - return firstToken; - } - case 261: break; - case 94: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 262: break; - case 14: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE); - } - case 263: break; - case 117: - { boolean highlightedAsRegex = false; - if (firstToken==null) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - else { - // If this is *likely* to be a regex, based on - // the previous token, highlight it as such. - Token t = firstToken.getLastNonCommentNonWhitespaceToken(); - if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - } - // If it doesn't *appear* to be a regex, highlight it as - // individual tokens. - if (!highlightedAsRegex) { - int temp = zzStartRead + 1; - addToken(zzStartRead, zzStartRead, Token.OPERATOR); - zzStartRead = zzCurrentPos = zzMarkedPos = temp; - } - } - case 264: break; - case 102: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 265: break; - case 77: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 266: break; - case 15: - { addToken(Token.MARKUP_TAG_DELIMITER); - } - case 267: break; - case 34: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 268: break; - case 86: - { start = zzMarkedPos-2; yybegin(DTD); - } - case 269: break; - case 89: - { int temp=zzStartRead; if (zzStartRead>start) addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addToken(temp, zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); jspInState = zzLexicalState; yybegin(JAVA_EXPRESSION); - } - case 270: break; - case 21: - { addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); yybegin(INTAG); - } - case 271: break; - case 22: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE_SCRIPT); - } - case 272: break; - case 44: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 273: break; - case 82: - { // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 274: break; - case 61: - { /* Unknown pseudo class */ addToken(Token.DATA_TYPE); - } - case 275: break; - case 1: - { - } - case 276: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case INATTR_SINGLE_SCRIPT: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT); return firstToken; - } - case 2712: break; - case JS_CHAR: { - addToken(start,zzStartRead-1, Token.ERROR_CHAR); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 2713: break; - case JAVA_EXPRESSION: { - addEndToken(INTERNAL_IN_JAVA_EXPRESSION - jspInState); return firstToken; - } - case 2714: break; - case CSS_STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 2715: break; - case HIDDEN_COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_HIDDEN_COMMENT); return firstToken; - } - case 2716: break; - case JS_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 2717: break; - case CSS_CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 2718: break; - case JAVA_DOCCOMMENT: { - yybegin(JAVA_EXPRESSION); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_IN_JAVA_DOCCOMMENT - jspInState); return firstToken; - } - case 2719: break; - case INTAG_SCRIPT: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG_SCRIPT); return firstToken; - } - case 2720: break; - case JS_TEMPLATE_LITERAL_EXPR: { - // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 2721: break; - case CSS_PROPERTY: { - addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 2722: break; - case CSS_C_STYLE_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 2723: break; - case CSS: { - addEndToken(INTERNAL_CSS); return firstToken; - } - case 2724: break; - case CSS_VALUE: { - addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 2725: break; - case JSP_DIRECTIVE: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_IN_JSP_DIRECTIVE); return firstToken; - } - case 2726: break; - case COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); return firstToken; - } - case 2727: break; - case INATTR_DOUBLE_SCRIPT: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT); return firstToken; - } - case 2728: break; - case PI: { - addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 2729: break; - case JAVASCRIPT: { - addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 2730: break; - case INTAG: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG); return firstToken; - } - case 2731: break; - case INTAG_CHECK_TAG_NAME: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG); return firstToken; - } - case 2732: break; - case INATTR_SINGLE_STYLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_STYLE); return firstToken; - } - case 2733: break; - case DTD: { - addToken(start,zzStartRead-1, Token.MARKUP_DTD); return firstToken; - } - case 2734: break; - case JS_EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 2735: break; - case INATTR_DOUBLE_STYLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_STYLE); return firstToken; - } - case 2736: break; - case INATTR_SINGLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE); return firstToken; - } - case 2737: break; - case JS_TEMPLATE_LITERAL: { - if (validJSString) { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); } return firstToken; - } - case 2738: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 2739: break; - case INATTR_DOUBLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE); return firstToken; - } - case 2740: break; - case JS_STRING: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 2741: break; - case JAVA_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JAVA_MLC - jspInState); return firstToken; - } - case 2742: break; - case INTAG_STYLE: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG_STYLE); return firstToken; - } - case 2743: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 2738: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 2739: + break; + case INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE); + return firstToken; + } + case 2740: + break; + case JS_STRING: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 2741: + break; + case JAVA_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JAVA_MLC - jspInState); + return firstToken; + } + case 2742: + break; + case INTAG_STYLE: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG_STYLE); + return firstToken; + } + case 2743: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/JavaScriptTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/JavaScriptTokenMaker.java index 312344e..5bc72b6 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/JavaScriptTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/JavaScriptTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 12/29/16 12:36 AM */ - /* * 02/05/2012 - * * JavaScriptTokenMaker.java - Parses a document into JavaScript tokens. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -21,1276 +18,838 @@ import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; import org.fife.ui.rsyntaxtextarea.TokenTypes; - /** - * Scanner for JavaScript files. Its states could be simplified, but are + * Scanner for JavaScript files. Its states could be simplified, but are * kept the way they are to keep a degree of similarity (i.e. copy/paste) - * between it and HTML/JSP/PHPTokenMaker. This should cause no difference in - * performance.

+ * between it and HTML/JSP/PHPTokenMaker. This should cause no difference in + * performance. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated JavaScriptTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated JavaScriptTokenMaker.java file will contain + * two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.9 */ - public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int JS_STRING = 1; - public static final int E4X = 6; - public static final int E4X_INTAG = 10; - public static final int E4X_PI = 8; - public static final int JS_MLC = 3; - public static final int JS_CHAR = 2; - public static final int JS_EOL_COMMENT = 5; - public static final int E4X_COMMENT = 7; - public static final int JS_DOCCOMMENT = 4; - public static final int E4X_DTD = 9; - public static final int JS_TEMPLATE_LITERAL = 14; - public static final int E4X_INATTR_SINGLE = 12; - public static final int E4X_INATTR_DOUBLE = 11; - public static final int JS_TEMPLATE_LITERAL_EXPR = 15; - public static final int YYINITIAL = 0; - public static final int E4X_CDATA = 13; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\75\1\2\1\0\1\1\1\11\22\0\1\75\1\36\1\77"+ - "\1\12\1\15\1\35\1\40\1\107\2\106\1\17\1\30\1\27\1\24"+ - "\1\25\1\16\1\5\7\7\2\4\1\41\1\76\1\31\1\32\1\34"+ - "\1\37\1\45\1\103\1\6\1\101\1\102\1\23\1\22\2\3\1\112"+ - "\2\3\1\21\1\3\1\111\5\3\1\104\3\3\1\20\2\3\1\100"+ - "\1\13\1\105\1\33\1\14\1\113\1\46\1\47\1\53\1\65\1\54"+ - "\1\70\1\57\1\61\1\56\1\3\1\64\1\55\1\44\1\60\1\62"+ - "\1\66\1\73\1\52\1\50\1\51\1\10\1\71\1\63\1\72\1\67"+ - "\1\110\1\74\1\43\1\26\1\42\uff81\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 = - "\13\0\2\1\3\0\1\2\1\3\1\4\1\5\2\6"+ - "\1\5\1\2\3\7\1\5\1\10\1\5\6\7\2\2"+ - "\20\5\1\11\1\12\2\5\1\13\1\1\1\14\1\15"+ - "\1\16\1\1\1\17\1\20\1\21\1\1\1\22\5\1"+ - "\1\23\10\1\1\24\3\1\2\5\1\25\1\26\1\27"+ - "\1\30\1\1\1\31\5\1\1\32\2\1\1\33\1\1"+ - "\1\34\1\35\1\36\2\37\1\40\1\41\1\42\1\43"+ - "\1\1\1\44\4\1\1\45\1\46\1\47\1\50\1\1"+ - "\1\51\1\1\1\52\1\2\1\53\1\6\1\54\1\53"+ - "\1\54\1\53\1\55\1\53\1\5\2\0\1\56\1\57"+ - "\2\7\2\0\1\60\1\7\1\61\33\5\2\62\7\5"+ - "\1\62\13\5\1\63\1\64\1\65\1\66\4\0\1\67"+ - "\2\0\1\70\32\0\1\71\1\26\1\72\1\73\1\27"+ - "\5\0\1\74\2\0\1\75\1\76\1\2\1\54\1\0"+ - "\2\55\1\5\1\77\1\100\32\5\1\101\5\5\1\102"+ - "\25\5\64\0\1\103\2\0\1\104\5\0\1\105\1\2"+ - "\1\106\3\5\1\102\3\5\1\107\6\5\1\110\1\5"+ - "\1\111\24\5\1\0\1\1\1\0\1\112\15\0\1\113"+ - "\45\0\1\114\4\0\1\115\1\0\1\116\2\0\1\117"+ - "\1\0\1\120\1\2\5\5\1\62\17\5\1\62\1\5"+ - "\15\0\1\113\20\0\1\113\20\0\1\2\4\5\1\121"+ - "\13\5\33\0\10\5\1\113\4\0\1\113\12\0\3\5"+ - "\6\0\1\5\2\0\1\122\1\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[634]; - 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\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214"+ - "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u03dc\0\u0428\0\u0474"+ - "\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688\0\u0558"+ - "\0\u06d4\0\u0720\0\u076c\0\u07b8\0\u0558\0\u0558\0\u0804\0\u0850"+ - "\0\u089c\0\u08e8\0\u0558\0\u0934\0\u0980\0\u09cc\0\u0a18\0\u0a64"+ - "\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0\0\u0c2c\0\u0c78\0\u0cc4"+ - "\0\u0d10\0\u0d5c\0\u0da8\0\u0df4\0\u0e40\0\u0e8c\0\u0558\0\u0558"+ - "\0\u0ed8\0\u0f24\0\u0558\0\u0f70\0\u0558\0\u0fbc\0\u0558\0\u1008"+ - "\0\u0558\0\u0fbc\0\u0558\0\u1054\0\u0558\0\u10a0\0\u10ec\0\u1138"+ - "\0\u1184\0\u11d0\0\u0558\0\u121c\0\u1268\0\u12b4\0\u1300\0\u134c"+ - "\0\u1398\0\u13e4\0\u1430\0\u0558\0\u147c\0\u14c8\0\u1514\0\u1560"+ - "\0\u15ac\0\u0558\0\u15f8\0\u1644\0\u0558\0\u1690\0\u0558\0\u16dc"+ - "\0\u1728\0\u1774\0\u17c0\0\u180c\0\u0558\0\u1858\0\u18a4\0\u0558"+ - "\0\u18f0\0\u0558\0\u0558\0\u0558\0\u193c\0\u1988\0\u19d4\0\u0558"+ - "\0\u0558\0\u0558\0\u1a20\0\u0558\0\u1a6c\0\u1ab8\0\u1b04\0\u1b50"+ - "\0\u0558\0\u0fbc\0\u1b9c\0\u0558\0\u1be8\0\u0558\0\u1c34\0\u0558"+ - "\0\u1c80\0\u1ccc\0\u1ccc\0\u1ccc\0\u1d18\0\u1d64\0\u1db0\0\u1dfc"+ - "\0\u1e48\0\u1e94\0\u1ee0\0\u1f2c\0\u0558\0\u1f78\0\u1ee0\0\u1fc4"+ - "\0\u0720\0\u1fc4\0\u0558\0\u2010\0\u205c\0\u20a8\0\u20f4\0\u2140"+ - "\0\u218c\0\u21d8\0\u2224\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0"+ - "\0\u23ec\0\u2438\0\u2484\0\u24d0\0\u251c\0\u2568\0\u25b4\0\u2600"+ - "\0\u264c\0\u2698\0\u26e4\0\u2730\0\u277c\0\u27c8\0\u2814\0\u2860"+ - "\0\u28ac\0\u05a4\0\u28f8\0\u2944\0\u2990\0\u29dc\0\u2a28\0\u2a74"+ - "\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88\0\u2cd4"+ - "\0\u2d20\0\u2d6c\0\u2db8\0\u2e04\0\u2e50\0\u0558\0\u2e9c\0\u2ee8"+ - "\0\u0558\0\u2f34\0\u2f80\0\u2fcc\0\u3018\0\u0558\0\u3064\0\u30b0"+ - "\0\u0558\0\u30fc\0\u3148\0\u3194\0\u31e0\0\u322c\0\u3278\0\u32c4"+ - "\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u34d8\0\u3524"+ - "\0\u3570\0\u35bc\0\u3608\0\u3654\0\u36a0\0\u36ec\0\u3738\0\u3784"+ - "\0\u37d0\0\u381c\0\u3868\0\u38b4\0\u3900\0\u394c\0\u0558\0\u0558"+ - "\0\u3998\0\u39e4\0\u3a30\0\u3a7c\0\u3ac8\0\u0558\0\u3b14\0\u3b60"+ - "\0\u0558\0\u0558\0\u3bac\0\u3bf8\0\u3c44\0\u1ccc\0\u3c90\0\u3cdc"+ - "\0\u3d28\0\u3d74\0\u3dc0\0\u3e0c\0\u3e58\0\u3ea4\0\u3ef0\0\u3f3c"+ - "\0\u3f88\0\u3fd4\0\u4020\0\u406c\0\u40b8\0\u4104\0\u4150\0\u419c"+ - "\0\u41e8\0\u4234\0\u4280\0\u42cc\0\u4318\0\u4364\0\u43b0\0\u43fc"+ - "\0\u4448\0\u4494\0\u44e0\0\u452c\0\u05a4\0\u4578\0\u45c4\0\u4610"+ - "\0\u465c\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u4870"+ - "\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84\0\u4ad0"+ - "\0\u4b1c\0\u4b68\0\u4bb4\0\u4c00\0\u4c4c\0\u4c98\0\u4ce4\0\u4d30"+ - "\0\u4d7c\0\u4dc8\0\u4e14\0\u4e60\0\u4eac\0\u4ef8\0\u4f44\0\u4f90"+ - "\0\u4fdc\0\u5028\0\u5074\0\u50c0\0\u510c\0\u5158\0\u51a4\0\u51f0"+ - "\0\u523c\0\u5288\0\u52d4\0\u5320\0\u536c\0\u53b8\0\u5404\0\u5450"+ - "\0\u549c\0\u54e8\0\u5534\0\u5580\0\u55cc\0\u5618\0\u5664\0\u56b0"+ - "\0\u56fc\0\u5748\0\u5794\0\u57e0\0\u582c\0\u5878\0\u58c4\0\u5910"+ - "\0\u595c\0\u59a8\0\u59f4\0\u5a40\0\u5a8c\0\u5ad8\0\u5b24\0\u5b70"+ - "\0\u5bbc\0\u5c08\0\u5c54\0\u5ca0\0\u5cec\0\u5d38\0\u5d84\0\u0558"+ - "\0\u5dd0\0\u5e1c\0\u5e68\0\u5eb4\0\u5f00\0\u0558\0\u5f4c\0\u0558"+ - "\0\u5f98\0\u5fe4\0\u6030\0\u05a4\0\u607c\0\u60c8\0\u6114\0\u05a4"+ - "\0\u6160\0\u61ac\0\u61f8\0\u6244\0\u6290\0\u62dc\0\u05a4\0\u6328"+ - "\0\u05a4\0\u6374\0\u63c0\0\u640c\0\u6458\0\u64a4\0\u64f0\0\u653c"+ - "\0\u6588\0\u65d4\0\u6620\0\u666c\0\u66b8\0\u6704\0\u6750\0\u679c"+ - "\0\u67e8\0\u6834\0\u6880\0\u68cc\0\u6918\0\u2ee8\0\u0558\0\u6964"+ - "\0\u69b0\0\u69fc\0\u6a48\0\u6a94\0\u6ae0\0\u6b2c\0\u6b78\0\u6bc4"+ - "\0\u6c10\0\u6c5c\0\u6ca8\0\u6cf4\0\u6d40\0\u6d8c\0\u0558\0\u6dd8"+ - "\0\u6e24\0\u6e70\0\u6ebc\0\u6f08\0\u6f54\0\u6fa0\0\u6fec\0\u7038"+ - "\0\u7084\0\u70d0\0\u711c\0\u7168\0\u71b4\0\u7200\0\u724c\0\u7298"+ - "\0\u72e4\0\u7330\0\u737c\0\u73c8\0\u7414\0\u7460\0\u74ac\0\u74f8"+ - "\0\u7544\0\u7590\0\u75dc\0\u7628\0\u7674\0\u76c0\0\u770c\0\u7758"+ - "\0\u77a4\0\u77f0\0\u783c\0\u7888\0\u78d4\0\u7920\0\u796c\0\u79b8"+ - "\0\u7a04\0\u7a50\0\u7a9c\0\u0558\0\u7ae8\0\u7b34\0\u7b80\0\u7bcc"+ - "\0\u0558\0\u7c18\0\u7c64\0\u7cb0\0\u7cfc\0\u7d48\0\u7d94\0\u4150"+ - "\0\u7de0\0\u7e2c\0\u7e78\0\u7ec4\0\u7f10\0\u7f5c\0\u7fa8\0\u7ff4"+ - "\0\u8040\0\u808c\0\u80d8\0\u8124\0\u8170\0\u81bc\0\u8208\0\u8254"+ - "\0\u82a0\0\u69b0\0\u82ec\0\u8338\0\u8384\0\u83d0\0\u841c\0\u8468"+ - "\0\u84b4\0\u8500\0\u854c\0\u8598\0\u85e4\0\u8630\0\u867c\0\u86c8"+ - "\0\u8714\0\u8760\0\u87ac\0\u87f8\0\u8844\0\u8890\0\u88dc\0\u8928"+ - "\0\u8974\0\u89c0\0\u8a0c\0\u8a58\0\u8aa4\0\u8af0\0\u8b3c\0\u8b88"+ - "\0\u8bd4\0\u8c20\0\u8c6c\0\u8cb8\0\u8d04\0\u8d50\0\u8d9c\0\u78d4"+ - "\0\u8de8\0\u8e34\0\u8e80\0\u7a50\0\u8ecc\0\u8f18\0\u7b80\0\u8f64"+ - "\0\u8fb0\0\u8ffc\0\u9048\0\u9094\0\u90e0\0\u05a4\0\u912c\0\u9178"+ - "\0\u91c4\0\u9210\0\u925c\0\u92a8\0\u92f4\0\u9340\0\u938c\0\u93d8"+ - "\0\u9424\0\u9470\0\u94bc\0\u9508\0\u9554\0\u95a0\0\u95ec\0\u9638"+ - "\0\u9684\0\u96d0\0\u971c\0\u9768\0\u97b4\0\u9800\0\u984c\0\u9898"+ - "\0\u98e4\0\u9930\0\u997c\0\u99c8\0\u9a14\0\u9a60\0\u9aac\0\u9af8"+ - "\0\u9b44\0\u9b90\0\u9bdc\0\u9c28\0\u9c74\0\u9cc0\0\u9d0c\0\u9d58"+ - "\0\u9da4\0\u9df0\0\u9e3c\0\u9e88\0\u9ed4\0\u9f20\0\u9f6c\0\u9fb8"+ - "\0\ua004\0\u6e70\0\ua050\0\ua09c\0\ua0e8\0\ua134\0\ua180\0\ua1cc"+ - "\0\ua218\0\ua264\0\ua2b0\0\ua2fc\0\ua348\0\ua394\0\ua3e0\0\ua42c"+ - "\0\ua478\0\ua4c4\0\ua510\0\ua55c\0\ua5a8\0\ua5f4\0\ua640\0\ua68c"+ - "\0\u0558\0\ua6d8"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[634]; - 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 = - "\1\21\1\22\1\23\1\24\1\25\1\26\1\24\1\25"+ - "\1\27\1\30\2\21\2\24\1\31\1\32\4\24\1\33"+ - "\1\34\1\35\1\36\1\37\1\40\1\41\1\32\1\42"+ - "\2\32\1\43\1\44\2\43\1\45\1\24\1\46\1\47"+ - "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+ - "\1\60\1\61\2\24\1\62\1\24\1\63\1\64\1\24"+ - "\1\65\1\66\2\24\1\35\1\22\1\36\1\67\1\35"+ - "\4\24\2\35\1\70\1\24\1\71\1\72\1\73\2\74"+ - "\1\75\10\74\1\76\63\74\1\77\14\74\2\100\1\101"+ - "\10\100\1\102\73\100\1\103\4\100\2\104\1\105\14\104"+ - "\1\106\41\104\1\107\1\104\1\110\4\104\1\111\23\104"+ - "\2\112\1\113\14\112\1\114\11\112\1\115\13\112\1\116"+ - "\13\112\1\117\1\112\1\120\4\112\1\121\3\112\1\122"+ - "\17\112\2\123\1\124\56\123\1\125\1\123\1\126\4\123"+ - "\1\127\23\123\1\130\1\131\1\132\26\130\1\133\6\130"+ - "\1\134\34\130\1\22\1\135\15\130\2\136\1\137\21\136"+ - "\1\140\34\136\1\141\1\136\1\142\4\136\1\143\23\136"+ - "\2\144\1\145\34\144\1\146\54\144\2\147\1\150\26\147"+ - "\1\151\2\147\1\152\43\147\1\153\4\147\1\154\6\147"+ - "\1\155\1\156\1\0\13\155\1\157\13\155\1\43\1\155"+ - "\1\160\40\155\1\22\1\155\1\161\7\155\1\162\4\155"+ - "\77\163\1\164\14\163\107\165\1\164\4\165\105\166\1\167"+ - "\6\166\2\170\1\171\10\170\1\172\1\170\1\173\75\170"+ - "\1\174\2\175\1\176\12\175\1\177\10\175\1\200\65\175"+ - "\1\21\2\0\6\21\1\0\4\21\2\0\4\21\20\0"+ - "\30\21\5\0\4\21\3\0\3\21\2\0\1\22\73\0"+ - "\1\22\132\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\26\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\202\2\0\1\202\2\25"+ - "\1\202\1\25\1\202\1\0\4\202\2\0\1\202\1\203"+ - "\1\204\1\205\1\0\1\206\16\0\10\202\1\205\1\203"+ - "\7\202\1\204\2\202\1\204\3\202\5\0\1\202\1\204"+ - "\2\202\3\0\3\202\1\0\1\202\2\0\1\202\1\207"+ - "\1\210\1\202\1\210\1\202\1\0\4\202\2\0\1\211"+ - "\1\203\1\204\1\205\1\0\1\206\16\0\10\202\1\205"+ - "\1\203\7\202\1\204\2\202\1\204\1\202\1\211\1\202"+ - "\5\0\1\202\1\204\2\202\3\0\3\202\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\12\24\1\212\13\24\5\0\4\24"+ - "\3\0\3\24\1\0\13\213\1\214\2\213\1\215\1\216"+ - "\12\213\1\217\61\213\32\0\1\43\105\0\1\43\5\0"+ - "\1\43\65\0\2\206\1\0\1\206\134\0\1\43\1\0"+ - "\1\220\112\0\1\221\1\43\62\0\1\222\27\0\1\223"+ - "\1\43\42\0\1\222\50\0\1\43\1\0\1\224\111\0"+ - "\1\43\5\0\1\43\105\0\1\43\10\0\1\43\50\0"+ - "\1\21\2\0\1\225\2\21\1\225\1\21\1\225\1\0"+ - "\4\21\2\0\4\225\20\0\1\225\1\21\26\225\5\0"+ - "\4\225\3\0\3\225\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\1\24\1\226\24\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\4\24\1\227\7\24\1\230"+ - "\4\24\1\231\4\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\5\24\1\232\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\3\24\1\233\7\24"+ - "\1\234\1\24\1\235\3\24\1\236\4\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\4\24"+ - "\1\237\6\24\1\240\5\24\1\241\4\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\242\17\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\1\243\6\24\1\244\3\24\1\245"+ - "\1\246\11\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\1\247\1\24\1\250\4\24\1\251"+ - "\2\24\1\252\10\24\1\253\1\254\1\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\255\5\24\1\256\11\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\257\1\21\2\24\1\260\7\24"+ - "\1\261\7\24\1\262\3\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\14\24\1\263\11\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24"+ - "\1\264\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\265\5\24\1\266\17\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\10\24"+ - "\1\267\2\24\1\270\12\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\6\24\1\271\5\24"+ - "\1\272\11\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\5\24\1\273\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\274\3\24\1\275\21\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24"+ - "\1\276\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\277\6\24\1\300\1\301\3\24\1\302"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\302\13\24\1\303\11\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\304"+ - "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\305\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\2\74\1\0\10\74\1\0\63\74\1\0"+ - "\14\74\2\306\1\0\5\306\1\307\61\306\1\310\21\306"+ - "\2\100\1\0\10\100\1\0\73\100\1\0\4\100\2\104"+ - "\1\0\14\104\1\0\41\104\1\0\1\104\1\0\4\104"+ - "\1\0\23\104\16\0\1\311\146\0\1\312\125\0\1\313"+ - "\101\0\1\314\4\0\1\315\35\0\2\112\1\0\14\112"+ - "\1\0\11\112\1\0\13\112\1\0\13\112\1\0\1\112"+ - "\1\0\4\112\1\0\3\112\1\0\17\112\16\0\1\316"+ - "\100\0\1\317\2\0\1\317\1\0\1\317\5\0\1\320"+ - "\1\0\4\317\10\0\1\321\7\0\1\317\1\0\26\317"+ - "\5\0\4\317\3\0\3\317\45\0\1\322\1\0\1\323"+ - "\1\324\1\325\1\326\1\327\1\330\1\331\1\332\1\333"+ - "\1\334\1\335\3\0\1\336\1\337\1\340\1\0\1\341"+ - "\1\342\73\0\1\343\125\0\1\344\101\0\1\345\4\0"+ - "\1\346\102\0\1\347\46\0\2\123\1\0\56\123\1\0"+ - "\1\123\1\0\4\123\1\0\23\123\51\0\1\350\125\0"+ - "\1\351\101\0\1\352\4\0\1\353\35\0\2\130\1\0"+ - "\26\130\1\0\6\130\1\0\34\130\2\0\16\130\1\131"+ - "\1\0\26\130\1\0\6\130\1\0\34\130\1\22\1\0"+ - "\15\130\3\0\1\354\2\0\1\354\1\0\1\354\3\0"+ - "\1\354\1\0\1\355\1\0\4\354\12\0\1\356\1\357"+ - "\1\0\1\354\2\0\1\354\1\0\26\354\5\0\4\354"+ - "\3\0\3\354\1\0\75\134\1\0\1\360\15\134\2\136"+ - "\1\0\21\136\1\0\34\136\1\0\1\136\1\0\4\136"+ - "\1\0\23\136\24\0\1\361\140\0\1\362\125\0\1\363"+ - "\101\0\1\364\4\0\1\365\35\0\2\144\1\0\34\144"+ - "\1\0\54\144\34\0\1\366\57\0\2\147\1\0\26\147"+ - "\1\0\2\147\1\0\43\147\1\0\4\147\1\0\6\147"+ - "\36\0\1\367\55\0\2\155\1\0\13\155\1\0\13\155"+ - "\1\0\1\155\1\0\40\155\1\0\1\155\1\0\7\155"+ - "\1\0\5\155\1\156\1\0\13\155\1\0\13\155\1\0"+ - "\1\155\1\0\40\155\1\22\1\155\1\0\7\155\1\0"+ - "\4\155\34\0\1\160\57\0\77\163\1\0\14\163\107\165"+ - "\1\0\4\165\105\166\1\0\6\166\105\0\1\370\6\0"+ - "\2\170\1\0\10\170\1\0\1\170\1\0\75\170\75\0"+ - "\1\371\17\0\2\175\1\0\12\175\1\0\10\175\1\0"+ - "\65\175\74\0\1\372\17\0\1\21\2\0\5\21\1\373"+ - "\1\0\4\21\2\0\4\21\20\0\30\21\5\0\4\21"+ - "\3\0\3\21\1\0\1\202\2\0\6\202\1\0\4\202"+ - "\2\0\4\202\20\0\30\202\5\0\4\202\3\0\3\202"+ - "\1\0\1\202\2\0\1\202\2\374\1\202\1\374\1\202"+ - "\1\0\4\202\2\0\4\202\1\375\3\0\1\375\13\0"+ - "\30\202\5\0\4\202\3\0\3\202\1\0\1\202\2\0"+ - "\1\202\2\206\1\202\1\206\1\202\1\0\4\202\2\0"+ - "\2\202\1\204\1\205\20\0\10\202\1\205\10\202\1\204"+ - "\2\202\1\204\3\202\5\0\1\202\1\204\2\202\3\0"+ - "\3\202\1\0\1\202\2\0\1\202\2\207\1\202\1\207"+ - "\1\202\1\0\4\202\2\0\2\202\1\204\1\205\1\0"+ - "\1\206\16\0\10\202\1\205\10\202\1\204\2\202\1\204"+ - "\3\202\5\0\1\202\1\204\2\202\3\0\3\202\1\0"+ - "\1\202\2\0\1\202\1\207\1\210\1\202\1\210\1\202"+ - "\1\0\4\202\2\0\1\202\1\376\1\204\1\205\1\0"+ - "\1\206\16\0\10\202\1\205\1\376\7\202\1\204\2\202"+ - "\1\204\3\202\5\0\1\202\1\204\2\202\3\0\3\202"+ - "\1\0\1\202\2\0\1\202\4\377\1\202\1\0\4\202"+ - "\2\0\2\202\2\377\20\0\2\202\2\377\3\202\2\377"+ - "\10\202\1\377\2\202\1\377\3\202\5\0\3\377\1\202"+ - "\3\0\3\202\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\u0100\17\24\5\0\4\24\3\0\3\24\1\0\13\213"+ - "\1\214\2\213\1\u0101\77\213\1\0\111\213\17\0\1\u0102"+ - "\75\0\1\222\27\0\1\223\43\0\1\222\50\0\1\43"+ - "\1\0\1\32\57\0\1\21\2\0\6\225\1\0\4\21"+ - "\2\0\4\225\20\0\1\225\1\21\26\225\5\0\4\225"+ - "\3\0\3\225\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\2\24"+ - "\1\u0103\23\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\6\24\1\u0104\17\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\14\24"+ - "\1\u0105\11\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\3\24\1\u0106\22\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\20\24"+ - "\1\u0107\5\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\1\u0108\25\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u0109"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\10\24\1\u010a\15\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u010b"+ - "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\5\24\1\u010c\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\1\u010d\20\24\1\262\4\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\4\24\1\u010e\3\24\1\u010f\15\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\20\24\1\u0110"+ - "\5\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\3\24\1\u0111\22\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\2\24\1\u0112"+ - "\1\u0113\22\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\1\u0114\25\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\1\u0115\25\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\12\24\1\u0116\13\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\5\24\1\u0117\20\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\5\24\1\u0118\20\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\2\24\1\u0112\23\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24"+ - "\1\u0119\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\26\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\u011a\25\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\3\24"+ - "\1\u011b\14\24\1\u011c\5\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\3\24\1\u011d\22\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\12\24\1\u011e\13\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\20\24\1\u011f\5\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\2\24\1\u0120\1\24"+ - "\20\0\1\24\1\21\26\24\5\0\4\24\3\0\1\24"+ - "\1\u0121\1\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\2\24"+ - "\1\u0122\1\u0123\22\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u0124\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\7\24\1\u0125\16\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u0126\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\15\24\1\262\10\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u0127\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\10\24\1\u0128\15\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\24\1\u0129\5\24\1\u012a"+ - "\12\24\1\u012b\3\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\5\24\1\u012c\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\24"+ - "\1\u012d\24\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\4\24\1\u012e\1\u012f\20\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\10\24\1\u0130\3\24\1\u0131\11\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u0132"+ - "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\7\24\1\u0133\16\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u0134"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u0135\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\262"+ - "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\7\24\1\u0136\1\u0137\15\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\26\24"+ - "\5\0\4\24\3\0\1\24\1\262\1\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\22\24\1\u0138\3\24\5\0\4\24"+ - "\3\0\3\24\5\0\4\u0139\12\0\2\u0139\22\0\2\u0139"+ - "\3\0\2\u0139\10\0\1\u0139\2\0\1\u0139\10\0\3\u0139"+ - "\14\0\4\u013a\12\0\2\u013a\22\0\2\u013a\3\0\2\u013a"+ - "\10\0\1\u013a\2\0\1\u013a\10\0\3\u013a\61\0\1\u013b"+ - "\125\0\1\u013c\116\0\1\u013d\102\0\1\u013e\36\0\34\317"+ - "\1\321\57\317\3\0\1\317\2\0\1\317\1\0\1\317"+ - "\7\0\4\317\10\0\1\321\7\0\1\317\1\0\26\317"+ - "\5\0\4\317\3\0\3\317\55\0\1\u013f\1\0\1\u0140"+ - "\3\0\1\u0141\41\0\1\u0142\36\0\1\u0143\3\0\1\u0144"+ - "\1\0\1\u0145\120\0\1\u0146\41\0\1\u0147\40\0\1\u0148"+ - "\2\0\1\u0149\1\0\1\u014a\116\0\1\u014b\1\u014c\4\0"+ - "\1\u014d\100\0\1\u014e\105\0\1\u014f\6\0\1\u0150\4\0"+ - "\1\u0151\111\0\1\u0152\10\0\1\u0153\1\u0154\75\0\1\u0155"+ - "\1\0\1\u0156\114\0\1\u0157\1\u0158\110\0\1\u0159\104\0"+ - "\1\u015a\123\0\1\u015b\111\0\1\u015c\47\0\1\u015d\35\0"+ - "\1\u015e\3\0\1\u015f\117\0\1\u0160\103\0\1\u0161\5\0"+ - "\1\u0162\110\0\1\u0163\125\0\1\u0164\116\0\1\u0165\102\0"+ - "\1\u0166\107\0\1\u0167\3\0\1\u0168\107\0\1\u0169\125\0"+ - "\1\u016a\116\0\1\u016b\102\0\1\u016c\41\0\6\354\3\0"+ - "\1\354\3\0\6\354\13\0\1\354\2\0\1\354\1\0"+ - "\26\354\5\0\4\354\3\0\3\354\4\0\1\u016d\2\0"+ - "\1\u016d\1\0\1\u016d\3\0\1\u016d\3\0\4\u016d\15\0"+ - "\1\u016d\2\0\1\u016d\1\0\26\u016d\5\0\4\u016d\3\0"+ - "\3\u016d\25\0\1\u016e\53\0\1\u016f\47\0\1\u0170\130\0"+ - "\1\u0171\125\0\1\u0172\116\0\1\u0173\102\0\1\u0174\62\0"+ - "\1\u0175\123\0\1\u0176\57\0\1\21\2\0\1\21\4\u0177"+ - "\1\21\1\0\4\21\2\0\2\21\2\u0177\20\0\2\21"+ - "\2\u0177\3\21\2\u0177\10\21\1\u0177\2\21\1\u0177\3\21"+ - "\5\0\3\u0177\1\21\3\0\3\21\1\0\1\202\2\0"+ - "\1\202\2\374\1\202\1\374\1\202\1\0\4\202\2\0"+ - "\2\202\1\204\1\202\20\0\21\202\1\204\2\202\1\204"+ - "\3\202\5\0\1\202\1\204\2\202\3\0\3\202\5\0"+ - "\2\374\1\0\1\374\104\0\1\202\2\0\1\202\4\377"+ - "\1\202\1\0\4\202\2\0\1\202\1\376\2\377\20\0"+ - "\2\202\2\377\3\202\2\377\1\376\7\202\1\377\2\202"+ - "\1\377\3\202\5\0\3\377\1\202\3\0\3\202\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\2\24\1\250\23\24\5\0"+ - "\4\24\3\0\3\24\45\0\1\u0101\11\0\2\u0101\52\0"+ - "\1\u0178\75\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u0179"+ - "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\u017a\25\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\7\24\1\u017b\16\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u017c\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\6\24\1\302\17\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u017d\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\4\24\1\u017e\21\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u0113\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\5\24\1\u017f\20\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u0180\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\12\24\1\u0181\13\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\14\24\1\u0182\11\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\2\24\1\262\23\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u0183\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\5\24\1\u0184\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\26\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\6\24\1\262\17\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\5\24\1\u0127\20\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\2\24\1\u010f\23\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\4\24\1\u017c\21\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\2\24\1\u0185\1\u0186\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\13\24\1\u0187\12\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\u0188\25\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\262\1\21\26\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u0189"+ - "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\6\24\1\u018a\17\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u018b"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\11\24\1\u017c\14\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u018c"+ - "\4\24\1\u018b\11\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\10\24\1\u018d\15\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\1\u018e\25\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\3\24\1\u018f\22\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\u0190\17\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\14\24\1\262\11\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\7\24"+ - "\1\262\16\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\10\24\1\u0191\15\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\13\24"+ - "\1\262\12\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\7\24\1\u0112\16\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\5\24\1\u0192\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\26\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\6\24\1\u0193\17\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\1\u0194\25\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\24\1\u0195\24\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\7\24\1\u017d\16\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\2\24\1\u0196\23\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\16\24\1\u0197\7\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\23\24\1\u0198\2\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\3\24\1\u0199\22\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\5\24\1\u019a\20\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\2\24\1\u010c\23\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\u017e\25\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\u019b\25\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\u019c"+ - "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\17\24\1\262\6\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\10\24\1\u019d"+ - "\15\24\5\0\4\24\3\0\3\24\5\0\4\u019e\12\0"+ - "\2\u019e\22\0\2\u019e\3\0\2\u019e\10\0\1\u019e\2\0"+ - "\1\u019e\10\0\3\u019e\14\0\4\u019f\12\0\2\u019f\22\0"+ - "\2\u019f\3\0\2\u019f\10\0\1\u019f\2\0\1\u019f\10\0"+ - "\3\u019f\76\0\1\u01a0\52\0\1\u01a1\127\0\1\u01a2\126\0"+ - "\1\u013d\103\0\1\u01a3\4\0\1\u01a4\134\0\1\u01a5\106\0"+ - "\1\u01a6\77\0\1\u01a7\5\0\1\u01a8\104\0\1\u01a9\116\0"+ - "\1\u01aa\116\0\1\u01ab\107\0\1\u01ac\105\0\1\u01ad\115\0"+ - "\1\u01ae\121\0\1\u01af\117\0\1\u01b0\105\0\1\u01b1\3\0"+ - "\1\u01b2\122\0\1\u01b3\114\0\1\u01b4\73\0\1\u01b5\2\0"+ - "\1\u01b6\21\0\1\u01b7\75\0\1\u01b8\104\0\1\u01b9\125\0"+ - "\1\u01ba\5\0\1\u01bb\35\0\1\u01bc\157\0\1\u01bd\105\0"+ - "\1\u01be\2\0\1\u01bf\14\0\1\u01c0\105\0\1\u01c1\106\0"+ - "\1\u01c2\4\0\1\u01c3\113\0\1\u01c4\103\0\1\u01c5\7\0"+ - "\1\u01c6\115\0\1\u01c7\75\0\1\u01c8\127\0\1\u01c9\103\0"+ - "\1\u01ca\15\0\1\u01cb\1\0\1\u01cc\72\0\1\u01cd\116\0"+ - "\1\u01ce\117\0\1\u01cf\3\0\1\u01d0\103\0\1\u01d1\2\0"+ - "\1\u0149\110\0\1\u01d2\113\0\1\u01d3\127\0\1\u01d4\52\0"+ - "\1\u01d5\127\0\1\u01d6\126\0\1\u0165\47\0\1\u01d7\161\0"+ - "\1\u01d8\123\0\1\u01d9\52\0\1\u01da\127\0\1\u01db\126\0"+ - "\1\u016b\42\0\6\u016d\3\0\1\u016d\3\0\6\u016d\13\0"+ - "\1\u016d\2\0\1\u016d\1\0\26\u016d\5\0\4\u016d\3\0"+ - "\3\u016d\25\0\1\u01dc\170\0\1\u01dd\100\0\1\u01de\52\0"+ - "\1\u01df\127\0\1\u01e0\126\0\1\u0173\63\0\1\u01e1\67\0"+ - "\1\21\2\0\1\21\4\u01e2\1\21\1\0\4\21\2\0"+ - "\2\21\2\u01e2\20\0\2\21\2\u01e2\3\21\2\u01e2\10\21"+ - "\1\u01e2\2\21\1\u01e2\3\21\5\0\3\u01e2\1\21\3\0"+ - "\3\21\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\u01e3"+ - "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\16\24\1\262\7\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\6\24\1\u01e4"+ - "\17\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\10\24\1\u01e5\15\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u017c"+ - "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\13\24\1\u01e6\12\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\2\24\1\u01e7"+ - "\23\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\15\24\1\u01e8\10\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u01e9"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\4\24\1\u01ea\21\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\262"+ - "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\10\24\1\u01eb\15\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\20\24\1\u01ec"+ - "\5\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u01ed\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\u0185"+ - "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\6\24\1\u01ee\17\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u01ef"+ - "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\26\24\5\0\4\24\3\0\1\24\1\u0189"+ - "\1\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\1\u01f0\25\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\4\24\1\u01f1\21\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\23\24\1\u0112\2\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\11\24\1\u01f2\14\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\3\24\1\u0112\22\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24"+ - "\1\u01f3\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\26\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\7\24\1\u0106\16\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\6\24\1\u01f4\17\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\u01f5\25\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\u0193"+ - "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\6\24\1\u01f6\17\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u01f7"+ - "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\7\24\1\u01f8\16\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\270"+ - "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u01f9\13\24\5\0\4\24\3\0"+ - "\3\24\42\0\1\u01a2\6\0\1\u013d\46\0\6\u01a1\1\0"+ - "\1\u01fa\1\0\1\u01fa\2\u01a1\1\u01fa\4\u01a1\2\u01fa\1\0"+ - "\2\u01fa\1\0\1\u01fa\2\0\6\u01fa\1\0\1\u01a1\1\u01fa"+ - "\26\u01a1\2\0\1\u01fa\1\0\1\u01fa\4\u01a1\3\u01fa\3\u01a1"+ - "\17\0\1\u01fb\144\0\1\u01fc\125\0\1\u01fd\106\0\1\u01b2"+ - "\1\0\1\u01fe\45\0\1\u01ff\164\0\1\u0200\76\0\1\u0201"+ - "\120\0\1\u0202\116\0\1\u0203\105\0\1\u01b2\117\0\1\u01b1"+ - "\105\0\1\u0204\120\0\1\u0205\115\0\1\u0149\122\0\1\u0206"+ - "\101\0\1\u01af\125\0\1\u01af\105\0\1\u0207\124\0\1\u0208"+ - "\36\0\1\u0209\113\0\1\u020a\160\0\1\u020b\106\0\1\u020c"+ - "\113\0\1\u020d\132\0\1\u020e\70\0\1\u01af\127\0\1\u020f"+ - "\77\0\1\u0210\123\0\1\u0211\121\0\1\u0212\116\0\1\u01b2"+ - "\102\0\1\u0213\123\0\1\u01af\111\0\1\u0214\102\0\1\u0215"+ - "\116\0\1\u0216\106\0\1\u0217\120\0\1\u0218\124\0\1\u01af"+ - "\101\0\1\u01af\112\0\1\u0219\107\0\1\u021a\122\0\1\u0205"+ - "\104\0\1\u01bc\136\0\1\u021b\73\0\1\u021c\14\0\1\u021d"+ - "\101\0\1\u01b2\115\0\1\u021e\105\0\1\u021f\104\0\1\u01d6"+ - "\6\0\1\u0165\46\0\6\u01d5\1\0\1\u0220\1\0\1\u0220"+ - "\2\u01d5\1\u0220\4\u01d5\2\u0220\1\0\2\u0220\1\0\1\u0220"+ - "\2\0\6\u0220\1\0\1\u01d5\1\u0220\26\u01d5\2\0\1\u0220"+ - "\1\0\1\u0220\4\u01d5\3\u0220\3\u01d5\17\0\1\u0221\146\0"+ - "\1\u0222\122\0\1\u0223\74\0\1\u01db\6\0\1\u016b\46\0"+ - "\6\u01da\1\0\1\u0224\1\0\1\u0224\2\u01da\1\u0224\4\u01da"+ - "\2\u0224\1\0\2\u0224\1\0\1\u0224\2\0\6\u0224\1\0"+ - "\1\u01da\1\u0224\26\u01da\2\0\1\u0224\1\0\1\u0224\4\u01da"+ - "\3\u0224\3\u01da\17\0\1\u0225\177\0\1\u0226\52\0\1\u01e0"+ - "\6\0\1\u0173\46\0\6\u01df\1\0\1\u0227\1\0\1\u0227"+ - "\2\u01df\1\u0227\4\u01df\2\u0227\1\0\2\u0227\1\0\1\u0227"+ - "\2\0\6\u0227\1\0\1\u01df\1\u0227\26\u01df\2\0\1\u0227"+ - "\1\0\1\u0227\4\u01df\3\u0227\3\u01df\17\0\1\u0228\75\0"+ - "\1\21\2\0\1\21\4\u0229\1\21\1\0\4\21\2\0"+ - "\2\21\2\u0229\20\0\2\21\2\u0229\3\21\2\u0229\10\21"+ - "\1\u0229\2\21\1\u0229\3\21\5\0\3\u0229\1\21\3\0"+ - "\3\21\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\1\u022a\25\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\u022b\25\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\5\24\1\262\20\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\4\24\1\u022c\21\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\10\24\1\u022d\15\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\22\24\1\262\3\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\12\24\1\u022e\13\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\12\24\1\u022f\13\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\6\24\1\u0189\17\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\17\24\1\u010f\6\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\u0230\1\21\26\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\10\24\1\u0231"+ - "\15\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u0232\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\22\24\1\u0233"+ - "\3\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\11\24\1\u0107\14\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u0185"+ - "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\2\24\1\u0234"+ - "\1\24\20\0\1\24\1\21\26\24\5\0\4\24\3\0"+ - "\2\24\1\u0235\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\11\24"+ - "\1\u0112\14\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\5\24\1\u0236\20\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\10\24"+ - "\1\u0237\15\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\7\24\1\u0238\16\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\10\24"+ - "\1\u0239\15\24\5\0\4\24\3\0\3\24\17\0\1\u01a1"+ - "\151\0\1\u023a\121\0\1\u01c9\111\0\1\u01af\110\0\1\u0149"+ - "\120\0\1\u0216\105\0\1\u023b\111\0\1\u023c\111\0\1\u01b2"+ - "\111\0\1\u023d\123\0\1\u01ca\120\0\1\u01b2\115\0\1\u023e"+ - "\110\0\1\u023f\103\0\1\u0240\117\0\1\u0241\104\0\1\u0242"+ - "\114\0\1\u0243\114\0\1\u0244\114\0\1\u0245\112\0\1\u01af"+ - "\130\0\1\u01ff\77\0\1\u0246\113\0\1\u0247\121\0\1\u0248"+ - "\105\0\1\u0149\107\0\1\u014a\117\0\1\u01af\107\0\1\u0249"+ - "\115\0\1\u024a\117\0\1\u024b\47\0\1\u024c\151\0\1\u024d"+ - "\121\0\1\u024e\113\0\1\u024f\105\0\1\u0250\123\0\1\u0251"+ - "\53\0\1\u01d5\157\0\1\u0252\115\0\1\u0253\45\0\1\u01da"+ - "\200\0\1\u0254\26\0\1\u01df\75\0\1\21\2\0\1\21"+ - "\4\24\1\21\1\0\4\21\2\0\2\21\2\24\20\0"+ - "\2\21\2\24\3\21\2\24\10\21\1\24\2\21\1\24"+ - "\3\21\5\0\3\24\1\21\3\0\3\21\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\5\24\1\u0185\20\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\12\24"+ - "\1\u017c\13\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\14\24\1\u0255\11\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\u0256\17\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\5\24\1\u0112\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\26\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\6\24\1\u0257"+ - "\17\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\3\24\1\u01ec\22\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\u0110"+ - "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\u0258\25\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\7\24\1\u0259\16\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\12\24\1\u025a\13\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\3\24\1\u025b\22\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\14\24\1\u025c\11\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\21\24\1\262\4\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u0238\22\24\5\0\4\24\3\0\3\24"+ - "\53\0\1\u025d\121\0\1\u0247\101\0\1\u025e\117\0\1\u025f"+ - "\115\0\1\u0260\117\0\1\u0261\113\0\1\u0262\105\0\1\u01d1"+ - "\107\0\1\u0263\132\0\1\u0264\74\0\1\u01bd\3\0\1\u0265"+ - "\117\0\1\u0266\115\0\1\u0217\104\0\1\u01b2\112\0\1\u0149"+ - "\120\0\1\u01af\124\0\1\u0267\100\0\1\u0268\115\0\1\u020f"+ - "\107\0\1\u0149\115\0\1\u0269\112\0\1\u026a\112\0\1\u021f"+ - "\124\0\1\u01fe\103\0\1\u026b\41\0\26\u0253\1\u01af\65\u0253"+ - "\104\0\1\u026c\7\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\12\24"+ - "\1\u026d\13\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\12\24\1\u0185\13\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\12\24"+ - "\1\u026e\13\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\5\24\1\u0112\20\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\14\24"+ - "\1\u026f\11\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\3\24\1\u0189\22\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\u0137\17\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\12\24\1\262\13\24\5\0\4\24"+ - "\3\0\3\24\63\0\1\u0260\104\0\1\u020f\127\0\1\u01af"+ - "\114\0\1\u01af\100\0\1\u025f\111\0\1\u01c3\114\0\1\u0270"+ - "\47\0\1\u0271\162\0\1\u0272\102\0\1\u01b0\113\0\1\u0269"+ - "\116\0\1\u0273\113\0\1\u025f\120\0\1\u0274\140\0\1\u0275"+ - "\10\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\10\24\1\u0276\15\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u010f\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\1\u025a\25\24\5\0"+ - "\4\24\3\0\3\24\51\0\1\u01ca\116\0\1\u0277\121\0"+ - "\1\u020f\106\0\1\u01c9\105\0\1\u0278\145\0\1\u0279\13\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\26\24\5\0\4\24\3\0"+ - "\1\u025b\2\24\52\0\1\u027a\117\0\1\u0253\106\0\1\u01af"+ - "\11\0\1\u0216\31\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[42788]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\13\0\2\1\3\0\2\1\1\11\4\1\1\11\4\1"+ - "\2\11\4\1\1\11\23\1\2\11\2\1\1\11\1\1"+ - "\1\11\1\1\1\11\1\1\1\11\1\1\1\11\1\1"+ - "\1\11\5\1\1\11\10\1\1\11\5\1\1\11\2\1"+ - "\1\11\1\1\1\11\5\1\1\11\2\1\1\11\1\1"+ - "\3\11\3\1\3\11\1\1\1\11\4\1\1\11\2\1"+ - "\1\11\1\1\1\11\1\1\1\11\12\1\2\0\1\11"+ - "\3\1\2\0\1\11\62\1\1\11\2\1\1\11\4\0"+ - "\1\11\2\0\1\11\32\0\3\1\2\11\5\0\1\11"+ - "\2\0\2\11\2\1\1\0\73\1\64\0\1\1\2\0"+ - "\1\11\5\0\1\11\1\1\1\11\45\1\1\0\1\11"+ - "\1\0\1\1\15\0\1\11\45\0\1\1\4\0\1\1"+ - "\1\0\1\11\2\0\1\1\1\0\1\11\30\1\15\0"+ - "\1\1\20\0\1\1\20\0\21\1\33\0\11\1\4\0"+ - "\1\1\12\0\3\1\6\0\1\1\2\0\1\11\1\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[634]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int JS_STRING = 1; + public static final int E4X = 6; + public static final int E4X_INTAG = 10; + public static final int E4X_PI = 8; + public static final int JS_MLC = 3; + public static final int JS_CHAR = 2; + public static final int JS_EOL_COMMENT = 5; + public static final int E4X_COMMENT = 7; + public static final int JS_DOCCOMMENT = 4; + public static final int E4X_DTD = 9; + public static final int JS_TEMPLATE_LITERAL = 14; + public static final int E4X_INATTR_SINGLE = 12; + public static final int E4X_INATTR_DOUBLE = 11; + public static final int JS_TEMPLATE_LITERAL_EXPR = 15; + public static final int YYINITIAL = 0; + public static final int E4X_CDATA = 13; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\75\1\2\1\0\1\1\1\11\22\0\1\75\1\36\1\77" + + "\1\12\1\15\1\35\1\40\1\107\2\106\1\17\1\30\1\27\1\24" + "\1\25\1\16\1\5\7\7\2\4\1\41\1\76\1\31\1\32\1\34" + + "\1\37\1\45\1\103\1\6\1\101\1\102\1\23\1\22\2\3\1\112" + "\2\3\1\21\1\3\1\111\5\3\1\104\3\3\1\20\2\3\1\100" + + "\1\13\1\105\1\33\1\14\1\113\1\46\1\47\1\53\1\65\1\54" + "\1\70\1\57\1\61\1\56\1\3\1\64\1\55\1\44\1\60\1\62" + + "\1\66\1\73\1\52\1\50\1\51\1\10\1\71\1\63\1\72\1\67" + "\1\110\1\74\1\43\1\26\1\42\uff81\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 = "\13\0\2\1\3\0\1\2\1\3\1\4\1\5\2\6" + "\1\5\1\2\3\7\1\5\1\10\1\5\6\7\2\2" + + "\20\5\1\11\1\12\2\5\1\13\1\1\1\14\1\15" + "\1\16\1\1\1\17\1\20\1\21\1\1\1\22\5\1" + "\1\23\10\1\1\24\3\1\2\5\1\25\1\26\1\27" + + "\1\30\1\1\1\31\5\1\1\32\2\1\1\33\1\1" + "\1\34\1\35\1\36\2\37\1\40\1\41\1\42\1\43" + "\1\1\1\44\4\1\1\45\1\46\1\47\1\50\1\1" + + "\1\51\1\1\1\52\1\2\1\53\1\6\1\54\1\53" + "\1\54\1\53\1\55\1\53\1\5\2\0\1\56\1\57" + "\2\7\2\0\1\60\1\7\1\61\33\5\2\62\7\5" + + "\1\62\13\5\1\63\1\64\1\65\1\66\4\0\1\67" + "\2\0\1\70\32\0\1\71\1\26\1\72\1\73\1\27" + "\5\0\1\74\2\0\1\75\1\76\1\2\1\54\1\0" + + "\2\55\1\5\1\77\1\100\32\5\1\101\5\5\1\102" + "\25\5\64\0\1\103\2\0\1\104\5\0\1\105\1\2" + + "\1\106\3\5\1\102\3\5\1\107\6\5\1\110\1\5" + "\1\111\24\5\1\0\1\1\1\0\1\112\15\0\1\113" + + "\45\0\1\114\4\0\1\115\1\0\1\116\2\0\1\117" + "\1\0\1\120\1\2\5\5\1\62\17\5\1\62\1\5" + + "\15\0\1\113\20\0\1\113\20\0\1\2\4\5\1\121" + "\13\5\33\0\10\5\1\113\4\0\1\113\12\0\3\5" + "\6\0\1\5\2\0\1\122\1\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[634]; + 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\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214" + + "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u03dc\0\u0428\0\u0474" + + "\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688\0\u0558" + + "\0\u06d4\0\u0720\0\u076c\0\u07b8\0\u0558\0\u0558\0\u0804\0\u0850" + + "\0\u089c\0\u08e8\0\u0558\0\u0934\0\u0980\0\u09cc\0\u0a18\0\u0a64" + + "\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0\0\u0c2c\0\u0c78\0\u0cc4" + + "\0\u0d10\0\u0d5c\0\u0da8\0\u0df4\0\u0e40\0\u0e8c\0\u0558\0\u0558" + + "\0\u0ed8\0\u0f24\0\u0558\0\u0f70\0\u0558\0\u0fbc\0\u0558\0\u1008" + + "\0\u0558\0\u0fbc\0\u0558\0\u1054\0\u0558\0\u10a0\0\u10ec\0\u1138" + + "\0\u1184\0\u11d0\0\u0558\0\u121c\0\u1268\0\u12b4\0\u1300\0\u134c" + + "\0\u1398\0\u13e4\0\u1430\0\u0558\0\u147c\0\u14c8\0\u1514\0\u1560" + + "\0\u15ac\0\u0558\0\u15f8\0\u1644\0\u0558\0\u1690\0\u0558\0\u16dc" + + "\0\u1728\0\u1774\0\u17c0\0\u180c\0\u0558\0\u1858\0\u18a4\0\u0558" + + "\0\u18f0\0\u0558\0\u0558\0\u0558\0\u193c\0\u1988\0\u19d4\0\u0558" + + "\0\u0558\0\u0558\0\u1a20\0\u0558\0\u1a6c\0\u1ab8\0\u1b04\0\u1b50" + + "\0\u0558\0\u0fbc\0\u1b9c\0\u0558\0\u1be8\0\u0558\0\u1c34\0\u0558" + + "\0\u1c80\0\u1ccc\0\u1ccc\0\u1ccc\0\u1d18\0\u1d64\0\u1db0\0\u1dfc" + + "\0\u1e48\0\u1e94\0\u1ee0\0\u1f2c\0\u0558\0\u1f78\0\u1ee0\0\u1fc4" + + "\0\u0720\0\u1fc4\0\u0558\0\u2010\0\u205c\0\u20a8\0\u20f4\0\u2140" + + "\0\u218c\0\u21d8\0\u2224\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0" + + "\0\u23ec\0\u2438\0\u2484\0\u24d0\0\u251c\0\u2568\0\u25b4\0\u2600" + + "\0\u264c\0\u2698\0\u26e4\0\u2730\0\u277c\0\u27c8\0\u2814\0\u2860" + + "\0\u28ac\0\u05a4\0\u28f8\0\u2944\0\u2990\0\u29dc\0\u2a28\0\u2a74" + + "\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88\0\u2cd4" + + "\0\u2d20\0\u2d6c\0\u2db8\0\u2e04\0\u2e50\0\u0558\0\u2e9c\0\u2ee8" + + "\0\u0558\0\u2f34\0\u2f80\0\u2fcc\0\u3018\0\u0558\0\u3064\0\u30b0" + + "\0\u0558\0\u30fc\0\u3148\0\u3194\0\u31e0\0\u322c\0\u3278\0\u32c4" + + "\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u34d8\0\u3524" + + "\0\u3570\0\u35bc\0\u3608\0\u3654\0\u36a0\0\u36ec\0\u3738\0\u3784" + + "\0\u37d0\0\u381c\0\u3868\0\u38b4\0\u3900\0\u394c\0\u0558\0\u0558" + + "\0\u3998\0\u39e4\0\u3a30\0\u3a7c\0\u3ac8\0\u0558\0\u3b14\0\u3b60" + + "\0\u0558\0\u0558\0\u3bac\0\u3bf8\0\u3c44\0\u1ccc\0\u3c90\0\u3cdc" + + "\0\u3d28\0\u3d74\0\u3dc0\0\u3e0c\0\u3e58\0\u3ea4\0\u3ef0\0\u3f3c" + + "\0\u3f88\0\u3fd4\0\u4020\0\u406c\0\u40b8\0\u4104\0\u4150\0\u419c" + + "\0\u41e8\0\u4234\0\u4280\0\u42cc\0\u4318\0\u4364\0\u43b0\0\u43fc" + + "\0\u4448\0\u4494\0\u44e0\0\u452c\0\u05a4\0\u4578\0\u45c4\0\u4610" + + "\0\u465c\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u4870" + + "\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84\0\u4ad0" + + "\0\u4b1c\0\u4b68\0\u4bb4\0\u4c00\0\u4c4c\0\u4c98\0\u4ce4\0\u4d30" + + "\0\u4d7c\0\u4dc8\0\u4e14\0\u4e60\0\u4eac\0\u4ef8\0\u4f44\0\u4f90" + + "\0\u4fdc\0\u5028\0\u5074\0\u50c0\0\u510c\0\u5158\0\u51a4\0\u51f0" + + "\0\u523c\0\u5288\0\u52d4\0\u5320\0\u536c\0\u53b8\0\u5404\0\u5450" + + "\0\u549c\0\u54e8\0\u5534\0\u5580\0\u55cc\0\u5618\0\u5664\0\u56b0" + + "\0\u56fc\0\u5748\0\u5794\0\u57e0\0\u582c\0\u5878\0\u58c4\0\u5910" + + "\0\u595c\0\u59a8\0\u59f4\0\u5a40\0\u5a8c\0\u5ad8\0\u5b24\0\u5b70" + + "\0\u5bbc\0\u5c08\0\u5c54\0\u5ca0\0\u5cec\0\u5d38\0\u5d84\0\u0558" + + "\0\u5dd0\0\u5e1c\0\u5e68\0\u5eb4\0\u5f00\0\u0558\0\u5f4c\0\u0558" + + "\0\u5f98\0\u5fe4\0\u6030\0\u05a4\0\u607c\0\u60c8\0\u6114\0\u05a4" + + "\0\u6160\0\u61ac\0\u61f8\0\u6244\0\u6290\0\u62dc\0\u05a4\0\u6328" + + "\0\u05a4\0\u6374\0\u63c0\0\u640c\0\u6458\0\u64a4\0\u64f0\0\u653c" + + "\0\u6588\0\u65d4\0\u6620\0\u666c\0\u66b8\0\u6704\0\u6750\0\u679c" + + "\0\u67e8\0\u6834\0\u6880\0\u68cc\0\u6918\0\u2ee8\0\u0558\0\u6964" + + "\0\u69b0\0\u69fc\0\u6a48\0\u6a94\0\u6ae0\0\u6b2c\0\u6b78\0\u6bc4" + + "\0\u6c10\0\u6c5c\0\u6ca8\0\u6cf4\0\u6d40\0\u6d8c\0\u0558\0\u6dd8" + + "\0\u6e24\0\u6e70\0\u6ebc\0\u6f08\0\u6f54\0\u6fa0\0\u6fec\0\u7038" + + "\0\u7084\0\u70d0\0\u711c\0\u7168\0\u71b4\0\u7200\0\u724c\0\u7298" + + "\0\u72e4\0\u7330\0\u737c\0\u73c8\0\u7414\0\u7460\0\u74ac\0\u74f8" + + "\0\u7544\0\u7590\0\u75dc\0\u7628\0\u7674\0\u76c0\0\u770c\0\u7758" + + "\0\u77a4\0\u77f0\0\u783c\0\u7888\0\u78d4\0\u7920\0\u796c\0\u79b8" + + "\0\u7a04\0\u7a50\0\u7a9c\0\u0558\0\u7ae8\0\u7b34\0\u7b80\0\u7bcc" + + "\0\u0558\0\u7c18\0\u7c64\0\u7cb0\0\u7cfc\0\u7d48\0\u7d94\0\u4150" + + "\0\u7de0\0\u7e2c\0\u7e78\0\u7ec4\0\u7f10\0\u7f5c\0\u7fa8\0\u7ff4" + + "\0\u8040\0\u808c\0\u80d8\0\u8124\0\u8170\0\u81bc\0\u8208\0\u8254" + + "\0\u82a0\0\u69b0\0\u82ec\0\u8338\0\u8384\0\u83d0\0\u841c\0\u8468" + + "\0\u84b4\0\u8500\0\u854c\0\u8598\0\u85e4\0\u8630\0\u867c\0\u86c8" + + "\0\u8714\0\u8760\0\u87ac\0\u87f8\0\u8844\0\u8890\0\u88dc\0\u8928" + + "\0\u8974\0\u89c0\0\u8a0c\0\u8a58\0\u8aa4\0\u8af0\0\u8b3c\0\u8b88" + + "\0\u8bd4\0\u8c20\0\u8c6c\0\u8cb8\0\u8d04\0\u8d50\0\u8d9c\0\u78d4" + + "\0\u8de8\0\u8e34\0\u8e80\0\u7a50\0\u8ecc\0\u8f18\0\u7b80\0\u8f64" + + "\0\u8fb0\0\u8ffc\0\u9048\0\u9094\0\u90e0\0\u05a4\0\u912c\0\u9178" + + "\0\u91c4\0\u9210\0\u925c\0\u92a8\0\u92f4\0\u9340\0\u938c\0\u93d8" + + "\0\u9424\0\u9470\0\u94bc\0\u9508\0\u9554\0\u95a0\0\u95ec\0\u9638" + + "\0\u9684\0\u96d0\0\u971c\0\u9768\0\u97b4\0\u9800\0\u984c\0\u9898" + + "\0\u98e4\0\u9930\0\u997c\0\u99c8\0\u9a14\0\u9a60\0\u9aac\0\u9af8" + + "\0\u9b44\0\u9b90\0\u9bdc\0\u9c28\0\u9c74\0\u9cc0\0\u9d0c\0\u9d58" + + "\0\u9da4\0\u9df0\0\u9e3c\0\u9e88\0\u9ed4\0\u9f20\0\u9f6c\0\u9fb8" + + "\0\ua004\0\u6e70\0\ua050\0\ua09c\0\ua0e8\0\ua134\0\ua180\0\ua1cc" + + "\0\ua218\0\ua264\0\ua2b0\0\ua2fc\0\ua348\0\ua394\0\ua3e0\0\ua42c" + + "\0\ua478\0\ua4c4\0\ua510\0\ua55c\0\ua5a8\0\ua5f4\0\ua640\0\ua68c" + "\0\u0558\0\ua6d8"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[634]; + 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 = "\1\21\1\22\1\23\1\24\1\25\1\26\1\24\1\25" + "\1\27\1\30\2\21\2\24\1\31\1\32\4\24\1\33" + + "\1\34\1\35\1\36\1\37\1\40\1\41\1\32\1\42" + "\2\32\1\43\1\44\2\43\1\45\1\24\1\46\1\47" + + "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57" + "\1\60\1\61\2\24\1\62\1\24\1\63\1\64\1\24" + + "\1\65\1\66\2\24\1\35\1\22\1\36\1\67\1\35" + "\4\24\2\35\1\70\1\24\1\71\1\72\1\73\2\74" + + "\1\75\10\74\1\76\63\74\1\77\14\74\2\100\1\101" + "\10\100\1\102\73\100\1\103\4\100\2\104\1\105\14\104" + + "\1\106\41\104\1\107\1\104\1\110\4\104\1\111\23\104" + "\2\112\1\113\14\112\1\114\11\112\1\115\13\112\1\116" + + "\13\112\1\117\1\112\1\120\4\112\1\121\3\112\1\122" + "\17\112\2\123\1\124\56\123\1\125\1\123\1\126\4\123" + + "\1\127\23\123\1\130\1\131\1\132\26\130\1\133\6\130" + "\1\134\34\130\1\22\1\135\15\130\2\136\1\137\21\136" + + "\1\140\34\136\1\141\1\136\1\142\4\136\1\143\23\136" + "\2\144\1\145\34\144\1\146\54\144\2\147\1\150\26\147" + + "\1\151\2\147\1\152\43\147\1\153\4\147\1\154\6\147" + "\1\155\1\156\1\0\13\155\1\157\13\155\1\43\1\155" + + "\1\160\40\155\1\22\1\155\1\161\7\155\1\162\4\155" + "\77\163\1\164\14\163\107\165\1\164\4\165\105\166\1\167" + + "\6\166\2\170\1\171\10\170\1\172\1\170\1\173\75\170" + "\1\174\2\175\1\176\12\175\1\177\10\175\1\200\65\175" + + "\1\21\2\0\6\21\1\0\4\21\2\0\4\21\20\0" + "\30\21\5\0\4\21\3\0\3\21\2\0\1\22\73\0" + + "\1\22\132\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\26\24\5\0" + + "\4\24\3\0\3\24\1\0\1\202\2\0\1\202\2\25" + "\1\202\1\25\1\202\1\0\4\202\2\0\1\202\1\203" + + "\1\204\1\205\1\0\1\206\16\0\10\202\1\205\1\203" + "\7\202\1\204\2\202\1\204\3\202\5\0\1\202\1\204" + + "\2\202\3\0\3\202\1\0\1\202\2\0\1\202\1\207" + "\1\210\1\202\1\210\1\202\1\0\4\202\2\0\1\211" + + "\1\203\1\204\1\205\1\0\1\206\16\0\10\202\1\205" + "\1\203\7\202\1\204\2\202\1\204\1\202\1\211\1\202" + + "\5\0\1\202\1\204\2\202\3\0\3\202\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\12\24\1\212\13\24\5\0\4\24" + "\3\0\3\24\1\0\13\213\1\214\2\213\1\215\1\216" + + "\12\213\1\217\61\213\32\0\1\43\105\0\1\43\5\0" + "\1\43\65\0\2\206\1\0\1\206\134\0\1\43\1\0" + + "\1\220\112\0\1\221\1\43\62\0\1\222\27\0\1\223" + "\1\43\42\0\1\222\50\0\1\43\1\0\1\224\111\0" + + "\1\43\5\0\1\43\105\0\1\43\10\0\1\43\50\0" + "\1\21\2\0\1\225\2\21\1\225\1\21\1\225\1\0" + + "\4\21\2\0\4\225\20\0\1\225\1\21\26\225\5\0" + "\4\225\3\0\3\225\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\1\24\1\226\24\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\4\24\1\227\7\24\1\230" + + "\4\24\1\231\4\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\5\24\1\232\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\3\24\1\233\7\24" + "\1\234\1\24\1\235\3\24\1\236\4\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\4\24" + + "\1\237\6\24\1\240\5\24\1\241\4\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + "\1\242\17\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\1\243\6\24\1\244\3\24\1\245" + + "\1\246\11\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\1\247\1\24\1\250\4\24\1\251" + "\2\24\1\252\10\24\1\253\1\254\1\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + + "\1\255\5\24\1\256\11\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\257\1\21\2\24\1\260\7\24" + "\1\261\7\24\1\262\3\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\14\24\1\263\11\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24" + "\1\264\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\1\265\5\24\1\266\17\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\10\24" + "\1\267\2\24\1\270\12\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\6\24\1\271\5\24" + + "\1\272\11\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\5\24\1\273\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\1\274\3\24\1\275\21\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24" + + "\1\276\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\1\277\6\24\1\300\1\301\3\24\1\302" + + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\1\302\13\24\1\303\11\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\304" + "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\12\24\1\305\13\24\5\0\4\24\3\0" + + "\3\24\1\0\2\74\1\0\10\74\1\0\63\74\1\0" + "\14\74\2\306\1\0\5\306\1\307\61\306\1\310\21\306" + + "\2\100\1\0\10\100\1\0\73\100\1\0\4\100\2\104" + "\1\0\14\104\1\0\41\104\1\0\1\104\1\0\4\104" + + "\1\0\23\104\16\0\1\311\146\0\1\312\125\0\1\313" + "\101\0\1\314\4\0\1\315\35\0\2\112\1\0\14\112" + + "\1\0\11\112\1\0\13\112\1\0\13\112\1\0\1\112" + "\1\0\4\112\1\0\3\112\1\0\17\112\16\0\1\316" + + "\100\0\1\317\2\0\1\317\1\0\1\317\5\0\1\320" + "\1\0\4\317\10\0\1\321\7\0\1\317\1\0\26\317" + + "\5\0\4\317\3\0\3\317\45\0\1\322\1\0\1\323" + "\1\324\1\325\1\326\1\327\1\330\1\331\1\332\1\333" + + "\1\334\1\335\3\0\1\336\1\337\1\340\1\0\1\341" + "\1\342\73\0\1\343\125\0\1\344\101\0\1\345\4\0" + + "\1\346\102\0\1\347\46\0\2\123\1\0\56\123\1\0" + "\1\123\1\0\4\123\1\0\23\123\51\0\1\350\125\0" + + "\1\351\101\0\1\352\4\0\1\353\35\0\2\130\1\0" + "\26\130\1\0\6\130\1\0\34\130\2\0\16\130\1\131" + + "\1\0\26\130\1\0\6\130\1\0\34\130\1\22\1\0" + "\15\130\3\0\1\354\2\0\1\354\1\0\1\354\3\0" + + "\1\354\1\0\1\355\1\0\4\354\12\0\1\356\1\357" + "\1\0\1\354\2\0\1\354\1\0\26\354\5\0\4\354" + + "\3\0\3\354\1\0\75\134\1\0\1\360\15\134\2\136" + "\1\0\21\136\1\0\34\136\1\0\1\136\1\0\4\136" + + "\1\0\23\136\24\0\1\361\140\0\1\362\125\0\1\363" + "\101\0\1\364\4\0\1\365\35\0\2\144\1\0\34\144" + + "\1\0\54\144\34\0\1\366\57\0\2\147\1\0\26\147" + "\1\0\2\147\1\0\43\147\1\0\4\147\1\0\6\147" + + "\36\0\1\367\55\0\2\155\1\0\13\155\1\0\13\155" + "\1\0\1\155\1\0\40\155\1\0\1\155\1\0\7\155" + + "\1\0\5\155\1\156\1\0\13\155\1\0\13\155\1\0" + "\1\155\1\0\40\155\1\22\1\155\1\0\7\155\1\0" + + "\4\155\34\0\1\160\57\0\77\163\1\0\14\163\107\165" + "\1\0\4\165\105\166\1\0\6\166\105\0\1\370\6\0" + + "\2\170\1\0\10\170\1\0\1\170\1\0\75\170\75\0" + "\1\371\17\0\2\175\1\0\12\175\1\0\10\175\1\0" + + "\65\175\74\0\1\372\17\0\1\21\2\0\5\21\1\373" + "\1\0\4\21\2\0\4\21\20\0\30\21\5\0\4\21" + + "\3\0\3\21\1\0\1\202\2\0\6\202\1\0\4\202" + "\2\0\4\202\20\0\30\202\5\0\4\202\3\0\3\202" + + "\1\0\1\202\2\0\1\202\2\374\1\202\1\374\1\202" + "\1\0\4\202\2\0\4\202\1\375\3\0\1\375\13\0" + + "\30\202\5\0\4\202\3\0\3\202\1\0\1\202\2\0" + "\1\202\2\206\1\202\1\206\1\202\1\0\4\202\2\0" + + "\2\202\1\204\1\205\20\0\10\202\1\205\10\202\1\204" + "\2\202\1\204\3\202\5\0\1\202\1\204\2\202\3\0" + + "\3\202\1\0\1\202\2\0\1\202\2\207\1\202\1\207" + "\1\202\1\0\4\202\2\0\2\202\1\204\1\205\1\0" + + "\1\206\16\0\10\202\1\205\10\202\1\204\2\202\1\204" + "\3\202\5\0\1\202\1\204\2\202\3\0\3\202\1\0" + + "\1\202\2\0\1\202\1\207\1\210\1\202\1\210\1\202" + "\1\0\4\202\2\0\1\202\1\376\1\204\1\205\1\0" + + "\1\206\16\0\10\202\1\205\1\376\7\202\1\204\2\202" + "\1\204\3\202\5\0\1\202\1\204\2\202\3\0\3\202" + + "\1\0\1\202\2\0\1\202\4\377\1\202\1\0\4\202" + "\2\0\2\202\2\377\20\0\2\202\2\377\3\202\2\377" + + "\10\202\1\377\2\202\1\377\3\202\5\0\3\377\1\202" + "\3\0\3\202\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + "\1\u0100\17\24\5\0\4\24\3\0\3\24\1\0\13\213" + + "\1\214\2\213\1\u0101\77\213\1\0\111\213\17\0\1\u0102" + "\75\0\1\222\27\0\1\223\43\0\1\222\50\0\1\43" + + "\1\0\1\32\57\0\1\21\2\0\6\225\1\0\4\21" + "\2\0\4\225\20\0\1\225\1\21\26\225\5\0\4\225" + + "\3\0\3\225\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\2\24" + + "\1\u0103\23\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\6\24\1\u0104\17\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\14\24" + "\1\u0105\11\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\3\24\1\u0106\22\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\20\24" + + "\1\u0107\5\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\1\u0108\25\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u0109" + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\10\24\1\u010a\15\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u010b" + + "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\5\24\1\u010c\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\1\u010d\20\24\1\262\4\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\4\24\1\u010e\3\24\1\u010f\15\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\20\24\1\u0110" + + "\5\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\3\24\1\u0111\22\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\2\24\1\u0112" + "\1\u0113\22\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\1\u0114\25\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\1\u0115\25\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\12\24\1\u0116\13\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\5\24\1\u0117\20\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\5\24\1\u0118\20\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\2\24\1\u0112\23\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24" + "\1\u0119\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\26\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\1\u011a\25\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\3\24" + "\1\u011b\14\24\1\u011c\5\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\3\24\1\u011d\22\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\12\24\1\u011e\13\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\20\24\1\u011f\5\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\2\24\1\u0120\1\24" + "\20\0\1\24\1\21\26\24\5\0\4\24\3\0\1\24" + + "\1\u0121\1\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\2\24" + + "\1\u0122\1\u0123\22\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\3\24\1\u0124\22\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\7\24\1\u0125\16\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\3\24\1\u0126\22\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\15\24\1\262\10\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\3\24\1\u0127\22\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\10\24\1\u0128\15\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\1\24\1\u0129\5\24\1\u012a" + + "\12\24\1\u012b\3\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\5\24\1\u012c\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\24" + "\1\u012d\24\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\4\24\1\u012e\1\u012f\20\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\10\24\1\u0130\3\24\1\u0131\11\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u0132" + "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\7\24\1\u0133\16\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u0134" + + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\12\24\1\u0135\13\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\262" + "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\7\24\1\u0136\1\u0137\15\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\26\24" + + "\5\0\4\24\3\0\1\24\1\262\1\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\22\24\1\u0138\3\24\5\0\4\24" + "\3\0\3\24\5\0\4\u0139\12\0\2\u0139\22\0\2\u0139" + + "\3\0\2\u0139\10\0\1\u0139\2\0\1\u0139\10\0\3\u0139" + "\14\0\4\u013a\12\0\2\u013a\22\0\2\u013a\3\0\2\u013a" + + "\10\0\1\u013a\2\0\1\u013a\10\0\3\u013a\61\0\1\u013b" + "\125\0\1\u013c\116\0\1\u013d\102\0\1\u013e\36\0\34\317" + + "\1\321\57\317\3\0\1\317\2\0\1\317\1\0\1\317" + "\7\0\4\317\10\0\1\321\7\0\1\317\1\0\26\317" + + "\5\0\4\317\3\0\3\317\55\0\1\u013f\1\0\1\u0140" + "\3\0\1\u0141\41\0\1\u0142\36\0\1\u0143\3\0\1\u0144" + + "\1\0\1\u0145\120\0\1\u0146\41\0\1\u0147\40\0\1\u0148" + "\2\0\1\u0149\1\0\1\u014a\116\0\1\u014b\1\u014c\4\0" + + "\1\u014d\100\0\1\u014e\105\0\1\u014f\6\0\1\u0150\4\0" + "\1\u0151\111\0\1\u0152\10\0\1\u0153\1\u0154\75\0\1\u0155" + + "\1\0\1\u0156\114\0\1\u0157\1\u0158\110\0\1\u0159\104\0" + "\1\u015a\123\0\1\u015b\111\0\1\u015c\47\0\1\u015d\35\0" + + "\1\u015e\3\0\1\u015f\117\0\1\u0160\103\0\1\u0161\5\0" + "\1\u0162\110\0\1\u0163\125\0\1\u0164\116\0\1\u0165\102\0" + + "\1\u0166\107\0\1\u0167\3\0\1\u0168\107\0\1\u0169\125\0" + "\1\u016a\116\0\1\u016b\102\0\1\u016c\41\0\6\354\3\0" + + "\1\354\3\0\6\354\13\0\1\354\2\0\1\354\1\0" + "\26\354\5\0\4\354\3\0\3\354\4\0\1\u016d\2\0" + + "\1\u016d\1\0\1\u016d\3\0\1\u016d\3\0\4\u016d\15\0" + "\1\u016d\2\0\1\u016d\1\0\26\u016d\5\0\4\u016d\3\0" + + "\3\u016d\25\0\1\u016e\53\0\1\u016f\47\0\1\u0170\130\0" + "\1\u0171\125\0\1\u0172\116\0\1\u0173\102\0\1\u0174\62\0" + + "\1\u0175\123\0\1\u0176\57\0\1\21\2\0\1\21\4\u0177" + "\1\21\1\0\4\21\2\0\2\21\2\u0177\20\0\2\21" + + "\2\u0177\3\21\2\u0177\10\21\1\u0177\2\21\1\u0177\3\21" + "\5\0\3\u0177\1\21\3\0\3\21\1\0\1\202\2\0" + + "\1\202\2\374\1\202\1\374\1\202\1\0\4\202\2\0" + "\2\202\1\204\1\202\20\0\21\202\1\204\2\202\1\204" + + "\3\202\5\0\1\202\1\204\2\202\3\0\3\202\5\0" + "\2\374\1\0\1\374\104\0\1\202\2\0\1\202\4\377" + + "\1\202\1\0\4\202\2\0\1\202\1\376\2\377\20\0" + "\2\202\2\377\3\202\2\377\1\376\7\202\1\377\2\202" + + "\1\377\3\202\5\0\3\377\1\202\3\0\3\202\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\2\24\1\250\23\24\5\0" + "\4\24\3\0\3\24\45\0\1\u0101\11\0\2\u0101\52\0" + + "\1\u0178\75\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u0179" + + "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\1\u017a\25\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\7\24\1\u017b\16\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\6\24\1\u017c\17\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\6\24\1\302\17\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\3\24\1\u017d\22\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\4\24\1\u017e\21\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\3\24\1\u0113\22\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\5\24\1\u017f\20\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\6\24\1\u0180\17\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\12\24\1\u0181\13\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\14\24\1\u0182\11\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\2\24\1\262\23\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\6\24\1\u0183\17\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\5\24\1\u0184\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\26\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\6\24\1\262\17\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\5\24\1\u0127\20\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\2\24\1\u010f\23\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\4\24\1\u017c\21\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\2\24\1\u0185\1\u0186\22\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\13\24\1\u0187\12\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\1\u0188\25\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\262\1\21\26\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u0189" + "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\6\24\1\u018a\17\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u018b" + + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\11\24\1\u017c\14\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u018c" + "\4\24\1\u018b\11\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\10\24\1\u018d\15\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\1\u018e\25\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\3\24\1\u018f\22\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + "\1\u0190\17\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\14\24\1\262\11\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\7\24" + + "\1\262\16\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\10\24\1\u0191\15\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\13\24" + "\1\262\12\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\7\24\1\u0112\16\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\5\24\1\u0192\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\26\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\6\24\1\u0193\17\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\1\u0194\25\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\1\24\1\u0195\24\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\7\24\1\u017d\16\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\2\24\1\u0196\23\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\16\24\1\u0197\7\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\23\24\1\u0198\2\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\3\24\1\u0199\22\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\5\24\1\u019a\20\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\2\24\1\u010c\23\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\1\u017e\25\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\1\u019b\25\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\u019c" + + "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\17\24\1\262\6\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\10\24\1\u019d" + "\15\24\5\0\4\24\3\0\3\24\5\0\4\u019e\12\0" + + "\2\u019e\22\0\2\u019e\3\0\2\u019e\10\0\1\u019e\2\0" + "\1\u019e\10\0\3\u019e\14\0\4\u019f\12\0\2\u019f\22\0" + + "\2\u019f\3\0\2\u019f\10\0\1\u019f\2\0\1\u019f\10\0" + "\3\u019f\76\0\1\u01a0\52\0\1\u01a1\127\0\1\u01a2\126\0" + + "\1\u013d\103\0\1\u01a3\4\0\1\u01a4\134\0\1\u01a5\106\0" + "\1\u01a6\77\0\1\u01a7\5\0\1\u01a8\104\0\1\u01a9\116\0" + + "\1\u01aa\116\0\1\u01ab\107\0\1\u01ac\105\0\1\u01ad\115\0" + "\1\u01ae\121\0\1\u01af\117\0\1\u01b0\105\0\1\u01b1\3\0" + + "\1\u01b2\122\0\1\u01b3\114\0\1\u01b4\73\0\1\u01b5\2\0" + "\1\u01b6\21\0\1\u01b7\75\0\1\u01b8\104\0\1\u01b9\125\0" + + "\1\u01ba\5\0\1\u01bb\35\0\1\u01bc\157\0\1\u01bd\105\0" + "\1\u01be\2\0\1\u01bf\14\0\1\u01c0\105\0\1\u01c1\106\0" + + "\1\u01c2\4\0\1\u01c3\113\0\1\u01c4\103\0\1\u01c5\7\0" + "\1\u01c6\115\0\1\u01c7\75\0\1\u01c8\127\0\1\u01c9\103\0" + + "\1\u01ca\15\0\1\u01cb\1\0\1\u01cc\72\0\1\u01cd\116\0" + "\1\u01ce\117\0\1\u01cf\3\0\1\u01d0\103\0\1\u01d1\2\0" + + "\1\u0149\110\0\1\u01d2\113\0\1\u01d3\127\0\1\u01d4\52\0" + "\1\u01d5\127\0\1\u01d6\126\0\1\u0165\47\0\1\u01d7\161\0" + + "\1\u01d8\123\0\1\u01d9\52\0\1\u01da\127\0\1\u01db\126\0" + "\1\u016b\42\0\6\u016d\3\0\1\u016d\3\0\6\u016d\13\0" + + "\1\u016d\2\0\1\u016d\1\0\26\u016d\5\0\4\u016d\3\0" + "\3\u016d\25\0\1\u01dc\170\0\1\u01dd\100\0\1\u01de\52\0" + + "\1\u01df\127\0\1\u01e0\126\0\1\u0173\63\0\1\u01e1\67\0" + "\1\21\2\0\1\21\4\u01e2\1\21\1\0\4\21\2\0" + + "\2\21\2\u01e2\20\0\2\21\2\u01e2\3\21\2\u01e2\10\21" + "\1\u01e2\2\21\1\u01e2\3\21\5\0\3\u01e2\1\21\3\0" + + "\3\21\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\u01e3" + + "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\16\24\1\262\7\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\6\24\1\u01e4" + "\17\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\10\24\1\u01e5\15\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u017c" + + "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\13\24\1\u01e6\12\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\2\24\1\u01e7" + "\23\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\15\24\1\u01e8\10\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u01e9" + + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\4\24\1\u01ea\21\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\262" + "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\10\24\1\u01eb\15\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\20\24\1\u01ec" + + "\5\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\12\24\1\u01ed\13\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\u0185" + "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\6\24\1\u01ee\17\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u01ef" + + "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\26\24\5\0\4\24\3\0\1\24\1\u0189" + "\1\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\1\u01f0\25\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\4\24\1\u01f1\21\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\23\24\1\u0112\2\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\11\24\1\u01f2\14\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\3\24\1\u0112\22\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24" + + "\1\u01f3\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\26\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\7\24\1\u0106\16\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\6\24\1\u01f4\17\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\1\u01f5\25\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\1\u0193" + "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\6\24\1\u01f6\17\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u01f7" + + "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\7\24\1\u01f8\16\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\270" + "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\12\24\1\u01f9\13\24\5\0\4\24\3\0" + + "\3\24\42\0\1\u01a2\6\0\1\u013d\46\0\6\u01a1\1\0" + "\1\u01fa\1\0\1\u01fa\2\u01a1\1\u01fa\4\u01a1\2\u01fa\1\0" + + "\2\u01fa\1\0\1\u01fa\2\0\6\u01fa\1\0\1\u01a1\1\u01fa" + "\26\u01a1\2\0\1\u01fa\1\0\1\u01fa\4\u01a1\3\u01fa\3\u01a1" + + "\17\0\1\u01fb\144\0\1\u01fc\125\0\1\u01fd\106\0\1\u01b2" + "\1\0\1\u01fe\45\0\1\u01ff\164\0\1\u0200\76\0\1\u0201" + + "\120\0\1\u0202\116\0\1\u0203\105\0\1\u01b2\117\0\1\u01b1" + "\105\0\1\u0204\120\0\1\u0205\115\0\1\u0149\122\0\1\u0206" + + "\101\0\1\u01af\125\0\1\u01af\105\0\1\u0207\124\0\1\u0208" + "\36\0\1\u0209\113\0\1\u020a\160\0\1\u020b\106\0\1\u020c" + + "\113\0\1\u020d\132\0\1\u020e\70\0\1\u01af\127\0\1\u020f" + "\77\0\1\u0210\123\0\1\u0211\121\0\1\u0212\116\0\1\u01b2" + + "\102\0\1\u0213\123\0\1\u01af\111\0\1\u0214\102\0\1\u0215" + "\116\0\1\u0216\106\0\1\u0217\120\0\1\u0218\124\0\1\u01af" + + "\101\0\1\u01af\112\0\1\u0219\107\0\1\u021a\122\0\1\u0205" + "\104\0\1\u01bc\136\0\1\u021b\73\0\1\u021c\14\0\1\u021d" + + "\101\0\1\u01b2\115\0\1\u021e\105\0\1\u021f\104\0\1\u01d6" + "\6\0\1\u0165\46\0\6\u01d5\1\0\1\u0220\1\0\1\u0220" + + "\2\u01d5\1\u0220\4\u01d5\2\u0220\1\0\2\u0220\1\0\1\u0220" + "\2\0\6\u0220\1\0\1\u01d5\1\u0220\26\u01d5\2\0\1\u0220" + + "\1\0\1\u0220\4\u01d5\3\u0220\3\u01d5\17\0\1\u0221\146\0" + "\1\u0222\122\0\1\u0223\74\0\1\u01db\6\0\1\u016b\46\0" + + "\6\u01da\1\0\1\u0224\1\0\1\u0224\2\u01da\1\u0224\4\u01da" + "\2\u0224\1\0\2\u0224\1\0\1\u0224\2\0\6\u0224\1\0" + + "\1\u01da\1\u0224\26\u01da\2\0\1\u0224\1\0\1\u0224\4\u01da" + "\3\u0224\3\u01da\17\0\1\u0225\177\0\1\u0226\52\0\1\u01e0" + + "\6\0\1\u0173\46\0\6\u01df\1\0\1\u0227\1\0\1\u0227" + "\2\u01df\1\u0227\4\u01df\2\u0227\1\0\2\u0227\1\0\1\u0227" + + "\2\0\6\u0227\1\0\1\u01df\1\u0227\26\u01df\2\0\1\u0227" + "\1\0\1\u0227\4\u01df\3\u0227\3\u01df\17\0\1\u0228\75\0" + + "\1\21\2\0\1\21\4\u0229\1\21\1\0\4\21\2\0" + "\2\21\2\u0229\20\0\2\21\2\u0229\3\21\2\u0229\10\21" + + "\1\u0229\2\21\1\u0229\3\21\5\0\3\u0229\1\21\3\0" + "\3\21\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\1\u022a\25\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\1\u022b\25\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\5\24\1\262\20\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\4\24\1\u022c\21\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\10\24\1\u022d\15\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\22\24\1\262\3\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\12\24\1\u022e\13\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + + "\12\24\1\u022f\13\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\6\24\1\u0189\17\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\201\2\24\2\0\4\24\20\0\1\24\1\21" + "\17\24\1\u010f\6\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\u0230\1\21\26\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\10\24\1\u0231" + + "\15\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\12\24\1\u0232\13\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\22\24\1\u0233" + "\3\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\11\24\1\u0107\14\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u0185" + + "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\2\24\1\u0234" + + "\1\24\20\0\1\24\1\21\26\24\5\0\4\24\3\0" + "\2\24\1\u0235\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\11\24" + "\1\u0112\14\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\5\24\1\u0236\20\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\10\24" + + "\1\u0237\15\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\7\24\1\u0238\16\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\10\24" + "\1\u0239\15\24\5\0\4\24\3\0\3\24\17\0\1\u01a1" + + "\151\0\1\u023a\121\0\1\u01c9\111\0\1\u01af\110\0\1\u0149" + "\120\0\1\u0216\105\0\1\u023b\111\0\1\u023c\111\0\1\u01b2" + + "\111\0\1\u023d\123\0\1\u01ca\120\0\1\u01b2\115\0\1\u023e" + "\110\0\1\u023f\103\0\1\u0240\117\0\1\u0241\104\0\1\u0242" + + "\114\0\1\u0243\114\0\1\u0244\114\0\1\u0245\112\0\1\u01af" + "\130\0\1\u01ff\77\0\1\u0246\113\0\1\u0247\121\0\1\u0248" + + "\105\0\1\u0149\107\0\1\u014a\117\0\1\u01af\107\0\1\u0249" + "\115\0\1\u024a\117\0\1\u024b\47\0\1\u024c\151\0\1\u024d" + + "\121\0\1\u024e\113\0\1\u024f\105\0\1\u0250\123\0\1\u0251" + "\53\0\1\u01d5\157\0\1\u0252\115\0\1\u0253\45\0\1\u01da" + + "\200\0\1\u0254\26\0\1\u01df\75\0\1\21\2\0\1\21" + "\4\24\1\21\1\0\4\21\2\0\2\21\2\24\20\0" + + "\2\21\2\24\3\21\2\24\10\21\1\24\2\21\1\24" + "\3\21\5\0\3\24\1\21\3\0\3\21\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\5\24\1\u0185\20\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\12\24" + + "\1\u017c\13\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\14\24\1\u0255\11\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + "\1\u0256\17\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\5\24\1\u0112\1\0\1\21\1\201\2\24\2\0" + "\4\24\20\0\1\24\1\21\26\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + "\2\24\2\0\4\24\20\0\1\24\1\21\6\24\1\u0257" + + "\17\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + + "\1\24\1\21\3\24\1\u01ec\22\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\201" + + "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\u0110" + "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\201\2\24\2\0\4\24\20\0" + "\1\24\1\21\1\u0258\25\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\7\24\1\u0259\16\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\12\24\1\u025a\13\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\3\24\1\u025b\22\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + "\1\21\14\24\1\u025c\11\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\21\24\1\262\4\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\3\24\1\u0238\22\24\5\0\4\24\3\0\3\24" + "\53\0\1\u025d\121\0\1\u0247\101\0\1\u025e\117\0\1\u025f" + + "\115\0\1\u0260\117\0\1\u0261\113\0\1\u0262\105\0\1\u01d1" + "\107\0\1\u0263\132\0\1\u0264\74\0\1\u01bd\3\0\1\u0265" + + "\117\0\1\u0266\115\0\1\u0217\104\0\1\u01b2\112\0\1\u0149" + "\120\0\1\u01af\124\0\1\u0267\100\0\1\u0268\115\0\1\u020f" + + "\107\0\1\u0149\115\0\1\u0269\112\0\1\u026a\112\0\1\u021f" + "\124\0\1\u01fe\103\0\1\u026b\41\0\26\u0253\1\u01af\65\u0253" + + "\104\0\1\u026c\7\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\12\24" + + "\1\u026d\13\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\12\24\1\u0185\13\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\12\24" + "\1\u026e\13\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\5\24\1\u0112\20\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\14\24" + + "\1\u026f\11\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + + "\20\0\1\24\1\21\3\24\1\u0189\22\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\201\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + "\1\u0137\17\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\201\2\24\2\0\4\24" + "\20\0\1\24\1\21\12\24\1\262\13\24\5\0\4\24" + + "\3\0\3\24\63\0\1\u0260\104\0\1\u020f\127\0\1\u01af" + "\114\0\1\u01af\100\0\1\u025f\111\0\1\u01c3\114\0\1\u0270" + + "\47\0\1\u0271\162\0\1\u0272\102\0\1\u01b0\113\0\1\u0269" + "\116\0\1\u0273\113\0\1\u025f\120\0\1\u0274\140\0\1\u0275" + + "\10\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + "\2\0\4\24\20\0\1\24\1\21\10\24\1\u0276\15\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\201\2\24\2\0\4\24\20\0\1\24" + + "\1\21\3\24\1\u010f\22\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\201\2\24" + + "\2\0\4\24\20\0\1\24\1\21\1\u025a\25\24\5\0" + "\4\24\3\0\3\24\51\0\1\u01ca\116\0\1\u0277\121\0" + + "\1\u020f\106\0\1\u01c9\105\0\1\u0278\145\0\1\u0279\13\0" + "\1\21\2\0\6\24\1\0\1\21\1\201\2\24\2\0" + + "\4\24\20\0\1\24\1\21\26\24\5\0\4\24\3\0" + "\1\u025b\2\24\52\0\1\u027a\117\0\1\u0253\106\0\1\u01af" + "\11\0\1\u0216\31\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[42788]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\13\0\2\1\3\0\2\1\1\11\4\1\1\11\4\1" + "\2\11\4\1\1\11\23\1\2\11\2\1\1\11\1\1" + + "\1\11\1\1\1\11\1\1\1\11\1\1\1\11\1\1" + "\1\11\5\1\1\11\10\1\1\11\5\1\1\11\2\1" + "\1\11\1\1\1\11\5\1\1\11\2\1\1\11\1\1" + + "\3\11\3\1\3\11\1\1\1\11\4\1\1\11\2\1" + "\1\11\1\1\1\11\1\1\1\11\12\1\2\0\1\11" + "\3\1\2\0\1\11\62\1\1\11\2\1\1\11\4\0" + + "\1\11\2\0\1\11\32\0\3\1\2\11\5\0\1\11" + "\2\0\2\11\2\1\1\0\73\1\64\0\1\1\2\0" + "\1\11\5\0\1\11\1\1\1\11\45\1\1\0\1\11" + + "\1\0\1\1\15\0\1\11\45\0\1\1\4\0\1\1" + "\1\0\1\11\2\0\1\1\1\0\1\11\30\1\15\0" + "\1\1\20\0\1\1\20\0\21\1\33\0\11\1\4\0" + + "\1\1\12\0\3\1\6\0\1\1\2\0\1\11\1\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[634]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specifying we're in a JavaScript multiline comment. */ - private static final int INTERNAL_IN_JS_MLC = -8; - + private static final int INTERNAL_IN_JS_MLC = -8; /** * Token type specifying we're in a JavaScript documentation comment. */ private static final int INTERNAL_IN_JS_COMMENT_DOCUMENTATION = -9; - /** * Token type specifying we're in an invalid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_INVALID = -10; - + private static final int INTERNAL_IN_JS_STRING_INVALID = -10; /** * Token type specifying we're in a valid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_VALID = -11; - + private static final int INTERNAL_IN_JS_STRING_VALID = -11; /** - * Token type specifying we're in an invalid multi-line JS single-quoted string. + * Token type specifying we're in an invalid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_INVALID = -12; - + private static final int INTERNAL_IN_JS_CHAR_INVALID = -12; /** - * Token type specifying we're in a valid multi-line JS single-quoted string. + * Token type specifying we're in a valid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_VALID = -13; - + private static final int INTERNAL_IN_JS_CHAR_VALID = -13; private static final int INTERNAL_E4X = -14; - private static final int INTERNAL_E4X_INTAG = -15; - private static final int INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION = -16; - private static final int INTERNAL_IN_E4X_COMMENT = -17; - private static final int INTERNAL_E4X_DTD = -18; - private static final int INTERNAL_E4X_DTD_INTERNAL = -19; - private static final int INTERNAL_E4X_ATTR_SINGLE = -20; - private static final int INTERNAL_E4X_ATTR_DOUBLE = -21; - private static final int INTERNAL_E4X_MARKUP_CDATA = -22; - /** * Token type specifying we're in a valid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID = -23; - /** * Token type specifying we're in an invalid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID = -24; - /** * When in the JS_STRING state, whether the current string is valid. */ private boolean validJSString; - /** - * Whether we're in an internal DTD. Only valid if in an e4x DTD. + * Whether we're in an internal DTD. Only valid if in an e4x DTD. */ private boolean e4x_inInternalDtd; - /** - * The previous e4x state. Only valid if in an e4x state. + * The previous e4x state. Only valid if in an e4x state. */ private int e4x_prevState; - /** * The version of JavaScript being highlighted. */ private static String jsVersion; - /** * Whether e4x is being highlighted. */ private static boolean e4xSupported; - /** - * Language state set on JS tokens. Must be 0. + * Language state set on JS tokens. Must be 0. */ - private static final int LANG_INDEX_DEFAULT = 0; - + private static final int LANG_INDEX_DEFAULT = 0; /** * Language state set on E4X tokens. */ private static final int LANG_INDEX_E4X = 1; - private Stack varDepths; - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public JavaScriptTokenMaker() { super(); } - - + static { jsVersion = "1.7"; // Many folks using JS tend to be bleeding edge e4xSupported = true; } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * Returns the closest {@link TokenTypes} "standard" token type for a given * "internal" token type (e.g. one whose value is < 0). */ - @Override + @Override public int getClosestStandardTokenTypeForInternalType(int type) { switch (type) { case INTERNAL_IN_JS_MLC: @@ -1309,8 +868,7 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { } return type; } - - + /** * Returns the JavaScript version being highlighted. * @@ -1320,8 +878,7 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { public static String getJavaScriptVersion() { return jsVersion; } - - + /** * {@inheritDoc} */ @@ -1329,30 +886,30 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; validJSString = true; e4x_prevState = YYINITIAL; e4x_inInternalDtd = false; int languageIndex = LANG_INDEX_DEFAULT; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -1419,7 +976,8 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { validJSString = false; break; default: - if (initialTokenType<-1024) { // INTERNAL_IN_E4X_COMMENT - prevState + if (initialTokenType < -1024) { // INTERNAL_IN_E4X_COMMENT - + // prevState int main = -(-initialTokenType & 0xffffff00); switch (main) { default: // Should never happen @@ -1427,14 +985,12 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { state = E4X_COMMENT; break; } - e4x_prevState = -initialTokenType&0xff; + e4x_prevState = -initialTokenType & 0xff; languageIndex = LANG_INDEX_E4X; - } - else { // Shouldn't happen + } else { // Shouldn't happen state = Token.NULL; } } - setLanguageIndex(languageIndex); start = text.offset; s = text; @@ -1446,10 +1002,8 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Returns whether e4x is being highlighted. * @@ -1459,59 +1013,57 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { public static boolean isE4xSupported() { return e4xSupported; } - - + /** * Returns whether features for a specific JS version should be honored * while highlighting. * - * @param version JavaScript version required + * @param version + * JavaScript version required * @return Whether the JavaScript version is the same or greater than * version required. */ public static boolean isJavaScriptCompatible(String version) { return jsVersion.compareTo(version) >= 0; } - - + /** - * Sets whether e4x should be highlighted. A repaint should be forced on + * Sets whether e4x should be highlighted. A repaint should be forced on * all RSyntaxTextAreas editing JavaScript if this property * is changed to see the difference. * - * @param supported Whether e4x should be highlighted. + * @param supported + * Whether e4x should be highlighted. * @see #isE4xSupported() */ public static void setE4xSupported(boolean supported) { e4xSupported = supported; } - - + /** * Set the supported JavaScript version because some keywords were * introduced on or after this version. * - * @param javaScriptVersion The version of JavaScript to support, such as - * "1.5" or "1.6". + * @param javaScriptVersion + * The version of JavaScript to support, such as + * "1.5" or "1.6". * @see #isJavaScriptCompatible(String) * @see #getJavaScriptVersion() */ public static void setJavaScriptVersion(String javaScriptVersion) { jsVersion = javaScriptVersion; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1520,7 +1072,8 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -1529,748 +1082,942 @@ public class JavaScriptTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 JavaScriptTokenMaker(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 JavaScriptTokenMaker(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 < 172) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 35: - { start = zzMarkedPos-1; yybegin(E4X_INATTR_SINGLE); - } - case 83: break; - case 34: - { start = zzMarkedPos-1; yybegin(E4X_INATTR_DOUBLE); - } - case 84: break; - case 43: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 85: break; - case 81: - { addToken(Token.RESERVED_WORD_2); - } - case 86: break; - case 27: - { addToken(start,zzStartRead-1, Token.MARKUP_DTD); addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); return firstToken; - } - case 87: break; - case 40: - { int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 88: break; - case 16: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_INVALID); - } + + /** + * 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 JavaScriptTokenMaker(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 JavaScriptTokenMaker(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 < 172) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 35: { + start = zzMarkedPos - 1; + yybegin(E4X_INATTR_SINGLE); + } + case 83: + break; + case 34: { + start = zzMarkedPos - 1; + yybegin(E4X_INATTR_DOUBLE); + } + case 84: + break; + case 43: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 85: + break; + case 81: { + addToken(Token.RESERVED_WORD_2); + } + case 86: + break; + case 27: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); + return firstToken; + } + case 87: + break; + case 40: { + int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 88: + break; + case 16: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_INVALID); + } + return firstToken; + } + case 89: + break; + case 3: { + addToken(Token.WHITESPACE); + } + case 90: + break; + case 18: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 91: + break; + case 48: { + int start = zzStartRead; + int operatorLen = yycharat(0) == '+' ? 2 : 1; + int yylen = yylength(); // Cache before first addToken() + // invalidates it + // System.out.println("'" + yytext() + "': " + yylength() + + // ", " + (operatorLen+1)); + addToken(zzStartRead, zzStartRead + operatorLen - 1, Token.OPERATOR); + if (yylen > operatorLen + 1) { + // System.out.println((start+operatorLen) + ", " + + // (zzMarkedPos-2)); + addToken(start + operatorLen, zzMarkedPos - 2, Token.WHITESPACE); + } + zzStartRead = zzCurrentPos = zzMarkedPos = zzMarkedPos - 1; + if (isE4xSupported()) { + // Scanning will continue with "<" as markup tag start + yybegin(E4X, LANG_INDEX_E4X); + } + // Found e4x (or syntax error) but option not enabled; + // Scanning will continue at "<" as operator + } + case 92: + break; + case 73: { + addToken(Token.FUNCTION); + } + case 93: + break; + case 56: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); + start = zzMarkedPos; + } + case 94: + break; + case 61: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + start = zzMarkedPos - 2; + if (varDepths == null) { + varDepths = new Stack(); + } else { + varDepths.clear(); + } + varDepths.push(Boolean.TRUE); + yybegin(JS_TEMPLATE_LITERAL_EXPR); + } + case 95: + break; + case 37: { + if (validJSString) { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 96: + break; + case 39: { /* + * Skip valid '$' that is not part of template + * literal expression start + */ + } + case 97: + break; + case 11: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_TEMPLATE_LITERAL); + } + case 98: + break; + case 51: { /* Skip all escaped chars. */ + } + case 99: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 100: + break; + case 78: { + start = zzStartRead; + e4x_prevState = zzLexicalState; + yybegin(E4X_COMMENT); + } + case 101: + break; + case 69: { + int temp = zzStartRead; + yybegin(E4X); + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + addToken(temp, zzMarkedPos - 1, Token.MARKUP_CDATA_DELIMITER); + } + case 102: + break; + case 62: { + varDepths.push(Boolean.TRUE); + } + case 103: + break; + case 67: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 2), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(E4X_INTAG); + } + case 104: + break; + case 53: { + /* Invalid latin-1 character \xXX */ validJSString = false; + } + case 105: + break; + case 70: { + addToken(Token.COMMENT_MULTILINE); + } + case 106: + break; + case 59: { + start = zzMarkedPos - 2; + yybegin(E4X_PI); + } + case 107: + break; + case 36: { + yybegin(E4X_INTAG); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 108: + break; + case 14: { + int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 109: + break; + case 20: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 110: + break; + case 24: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(Token.IDENTIFIER); + } + case 111: + break; + case 52: { + /* Invalid Unicode character \\uXXXX */ validJSString = false; + } + case 112: + break; + case 80: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + start = temp; + e4x_prevState = zzLexicalState; + yybegin(E4X_COMMENT); + } + case 113: + break; + case 72: { + if (e4xSupported) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 114: + break; + case 68: { + int temp = zzMarkedPos; + addToken(start, zzStartRead + 2, Token.MARKUP_COMMENT); + start = temp; + yybegin(e4x_prevState); + } + case 115: + break; + case 7: { + addToken(Token.OPERATOR); + } + case 116: + break; + case 60: { + yybegin(E4X); + addToken(start, zzStartRead + 1, Token.MARKUP_PROCESSING_INSTRUCTION); + } + case 117: + break; + case 55: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); + } + case 118: + break; + case 19: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); + return firstToken; + } + case 119: + break; + case 26: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 120: + break; + case 5: { + addToken(Token.IDENTIFIER); + } + case 121: + break; + case 74: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 122: + break; + case 49: { + addToken(isE4xSupported() ? Token.MARKUP_TAG_ATTRIBUTE : Token.ERROR_IDENTIFIER); + } + case 123: + break; + case 77: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 124: + break; + case 64: { + start = zzMarkedPos - 3; + yybegin(JS_DOCCOMMENT); + } + case 125: + break; + case 9: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_STRING); + } + case 126: + break; + case 58: { + start = zzMarkedPos - 2; + e4x_inInternalDtd = false; + yybegin(E4X_DTD); + } + case 127: + break; + case 38: { + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 128: + break; + case 25: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); + return firstToken; + } + case 129: + break; + case 10: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_CHAR); + } + case 130: + break; + case 29: { + e4x_inInternalDtd = true; + } + case 131: + break; + case 76: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 132: + break; + case 47: { + start = zzMarkedPos - 2; + yybegin(JS_MLC); + } + case 133: + break; + case 45: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 134: + break; + case 82: { + addToken(Token.MARKUP_CDATA_DELIMITER); + start = zzMarkedPos; + yybegin(E4X_CDATA); + } + case 135: + break; + case 32: { + addToken(Token.MARKUP_TAG_DELIMITER); /* + * Not valid but + * we'll still + * accept it + */ + } + case 136: + break; + case 2: { + addToken(Token.ERROR_IDENTIFIER); + } + case 137: + break; + case 79: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 138: + break; + case 33: { + yybegin(E4X); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 139: + break; + case 23: { + addToken(Token.MARKUP_ENTITY_REFERENCE); + } + case 140: + break; + case 65: { + if (isJavaScriptCompatible("1.7")) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 141: + break; + case 71: { + addToken(Token.LITERAL_BOOLEAN); + } + case 142: + break; + case 42: { + if (!varDepths.empty()) { + varDepths.pop(); + if (varDepths.empty()) { + addToken(start, zzStartRead, Token.VARIABLE); + start = zzMarkedPos; + yybegin(JS_TEMPLATE_LITERAL); + } + } + } + case 143: + break; + case 4: { + addNullToken(); + return firstToken; + } + case 144: + break; + case 50: { + addToken(Token.RESERVED_WORD); + } + case 145: + break; + case 54: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 146: + break; + case 66: { + addToken(Token.DATA_TYPE); + } + case 147: + break; + case 22: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(E4X_INTAG); + } + case 148: + break; + case 8: { + addToken(Token.SEPARATOR); + } + case 149: + break; + case 31: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 150: + break; + case 75: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); + start = zzMarkedPos; + } + case 151: + break; + case 17: { + int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 152: + break; + case 46: { + start = zzMarkedPos - 2; + yybegin(JS_EOL_COMMENT); + } + case 153: + break; + case 21: { + addEndToken(INTERNAL_E4X); + return firstToken; + } + case 154: + break; + case 13: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_IN_JS_STRING_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_STRING_INVALID); + } + return firstToken; + } + case 155: + break; + case 44: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 156: + break; + case 57: { + int count = yylength(); + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 1), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(E4X_INTAG); + } + case 157: + break; + case 63: { + boolean highlightedAsRegex = false; + if (firstToken == null) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } else { + // If this is *likely* to be a regex, based on + // the previous token, highlight it as such. + Token t = firstToken.getLastNonCommentNonWhitespaceToken(); + if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } + } + // If it doesn't *appear* to be a regex, highlight it as + // individual tokens. + if (!highlightedAsRegex) { + int temp = zzStartRead + 1; + addToken(zzStartRead, zzStartRead, Token.OPERATOR); + zzStartRead = zzCurrentPos = zzMarkedPos = temp; + } + } + case 158: + break; + case 28: { + if (!e4x_inInternalDtd) { + yybegin(E4X); + addToken(start, zzStartRead, Token.MARKUP_DTD); + } + } + case 159: + break; + case 6: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 160: + break; + case 30: { + e4x_inInternalDtd = false; + } + case 161: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 162: + break; + case 41: { // TODO: This isn't right. The expression and its + // depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 163: + break; + case 1: {} + case 164: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case JS_STRING: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addNullToken(); return firstToken; - } - case 89: break; - case 3: - { addToken(Token.WHITESPACE); - } - case 90: break; - case 18: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 91: break; - case 48: - { int start = zzStartRead; - int operatorLen = yycharat(0)=='+' ? 2 : 1; - int yylen = yylength(); // Cache before first addToken() invalidates it - //System.out.println("'" + yytext() + "': " + yylength() + ", " + (operatorLen+1)); - addToken(zzStartRead,zzStartRead+operatorLen-1, Token.OPERATOR); - if (yylen>operatorLen+1) { - //System.out.println((start+operatorLen) + ", " + (zzMarkedPos-2)); - addToken(start+operatorLen,zzMarkedPos-2, Token.WHITESPACE); - } - zzStartRead = zzCurrentPos = zzMarkedPos = zzMarkedPos - 1; - if (isE4xSupported()) { - // Scanning will continue with "<" as markup tag start - yybegin(E4X, LANG_INDEX_E4X); - } - // Found e4x (or syntax error) but option not enabled; - // Scanning will continue at "<" as operator - } - case 92: break; - case 73: - { addToken(Token.FUNCTION); - } - case 93: break; - case 56: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_MARKUP); start = zzMarkedPos; - } - case 94: break; - case 61: - { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - start = zzMarkedPos-2; - if (varDepths==null) { - varDepths = new Stack(); - } - else { - varDepths.clear(); - } - varDepths.push(Boolean.TRUE); - yybegin(JS_TEMPLATE_LITERAL_EXPR); - } - case 95: break; - case 37: - { if (validJSString) { - addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } - return firstToken; - } - case 96: break; - case 39: - { /* Skip valid '$' that is not part of template literal expression start */ - } - case 97: break; - case 11: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_TEMPLATE_LITERAL); - } - case 98: break; - case 51: - { /* Skip all escaped chars. */ - } - case 99: break; - case 12: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 100: break; - case 78: - { start = zzStartRead; e4x_prevState = zzLexicalState; yybegin(E4X_COMMENT); - } - case 101: break; - case 69: - { int temp=zzStartRead; yybegin(E4X); addToken(start,zzStartRead-1, Token.MARKUP_CDATA); addToken(temp,zzMarkedPos-1, Token.MARKUP_CDATA_DELIMITER); - } - case 102: break; - case 62: - { varDepths.push(Boolean.TRUE); - } - case 103: break; - case 67: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-2), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(E4X_INTAG); - } - case 104: break; - case 53: - { /* Invalid latin-1 character \xXX */ validJSString = false; - } - case 105: break; - case 70: - { addToken(Token.COMMENT_MULTILINE); - } - case 106: break; - case 59: - { start = zzMarkedPos-2; yybegin(E4X_PI); - } - case 107: break; - case 36: - { yybegin(E4X_INTAG); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 108: break; - case 14: - { int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 109: break; - case 20: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 110: break; - case 24: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); addToken(Token.IDENTIFIER); - } - case 111: break; - case 52: - { /* Invalid Unicode character \\uXXXX */ validJSString = false; - } - case 112: break; - case 80: - { int temp = zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_DTD); start = temp; e4x_prevState = zzLexicalState; yybegin(E4X_COMMENT); - } - case 113: break; - case 72: - { if(e4xSupported){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 114: break; - case 68: - { int temp = zzMarkedPos; addToken(start,zzStartRead+2, Token.MARKUP_COMMENT); start = temp; yybegin(e4x_prevState); - } - case 115: break; - case 7: - { addToken(Token.OPERATOR); - } - case 116: break; - case 60: - { yybegin(E4X); addToken(start,zzStartRead+1, Token.MARKUP_PROCESSING_INSTRUCTION); - } - case 117: break; - case 55: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_DOCUMENTATION); - } - case 118: break; - case 19: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); return firstToken; - } - case 119: break; - case 26: - { addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 120: break; - case 5: - { addToken(Token.IDENTIFIER); - } - case 121: break; - case 74: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 122: break; - case 49: - { addToken(isE4xSupported() ? Token.MARKUP_TAG_ATTRIBUTE : Token.ERROR_IDENTIFIER); - } - case 123: break; - case 77: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 124: break; - case 64: - { start = zzMarkedPos-3; yybegin(JS_DOCCOMMENT); - } - case 125: break; - case 9: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_STRING); - } - case 126: break; - case 58: - { start = zzMarkedPos-2; e4x_inInternalDtd = false; yybegin(E4X_DTD); - } - case 127: break; - case 38: - { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } - return firstToken; - } - case 128: break; - case 25: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); return firstToken; - } - case 129: break; - case 10: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_CHAR); - } - case 130: break; - case 29: - { e4x_inInternalDtd = true; - } - case 131: break; - case 76: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 132: break; - case 47: - { start = zzMarkedPos-2; yybegin(JS_MLC); - } - case 133: break; - case 45: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 134: break; - case 82: - { addToken(Token.MARKUP_CDATA_DELIMITER); start = zzMarkedPos; yybegin(E4X_CDATA); - } - case 135: break; - case 32: - { addToken(Token.MARKUP_TAG_DELIMITER); /* Not valid but we'll still accept it */ - } - case 136: break; - case 2: - { addToken(Token.ERROR_IDENTIFIER); - } - case 137: break; - case 79: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 138: break; - case 33: - { yybegin(E4X); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 139: break; - case 23: - { addToken(Token.MARKUP_ENTITY_REFERENCE); - } - case 140: break; - case 65: - { if(isJavaScriptCompatible("1.7")){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 141: break; - case 71: - { addToken(Token.LITERAL_BOOLEAN); - } - case 142: break; - case 42: - { if (!varDepths.empty()) { - varDepths.pop(); - if (varDepths.empty()) { - addToken(start,zzStartRead, Token.VARIABLE); - start = zzMarkedPos; - yybegin(JS_TEMPLATE_LITERAL); - } } - } - case 143: break; - case 4: - { addNullToken(); return firstToken; - } - case 144: break; - case 50: - { addToken(Token.RESERVED_WORD); - } - case 145: break; - case 54: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 146: break; - case 66: - { addToken(Token.DATA_TYPE); - } - case 147: break; - case 22: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(E4X_INTAG); - } - case 148: break; - case 8: - { addToken(Token.SEPARATOR); - } - case 149: break; - case 31: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 150: break; - case 75: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_KEYWORD); start = zzMarkedPos; - } - case 151: break; - case 17: - { int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 152: break; - case 46: - { start = zzMarkedPos-2; yybegin(JS_EOL_COMMENT); - } - case 153: break; - case 21: - { addEndToken(INTERNAL_E4X); return firstToken; - } - case 154: break; - case 13: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - addEndToken(INTERNAL_IN_JS_STRING_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_STRING_INVALID); - } + case 635: + break; + case E4X: { + addEndToken(INTERNAL_E4X); return firstToken; - } - case 155: break; - case 44: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 156: break; - case 57: - { int count = yylength(); - addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-1), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(E4X_INTAG); - } - case 157: break; - case 63: - { boolean highlightedAsRegex = false; - if (firstToken==null) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - else { - // If this is *likely* to be a regex, based on - // the previous token, highlight it as such. - Token t = firstToken.getLastNonCommentNonWhitespaceToken(); - if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - } - // If it doesn't *appear* to be a regex, highlight it as - // individual tokens. - if (!highlightedAsRegex) { - int temp = zzStartRead + 1; - addToken(zzStartRead, zzStartRead, Token.OPERATOR); - zzStartRead = zzCurrentPos = zzMarkedPos = temp; - } - } - case 158: break; - case 28: - { if (!e4x_inInternalDtd) { yybegin(E4X); addToken(start,zzStartRead, Token.MARKUP_DTD); } - } - case 159: break; - case 6: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 160: break; - case 30: - { e4x_inInternalDtd = false; - } - case 161: break; - case 15: - { addToken(start,zzStartRead-1, Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 162: break; - case 41: - { // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 163: break; - case 1: - { - } - case 164: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case JS_STRING: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 635: break; - case E4X: { - addEndToken(INTERNAL_E4X); return firstToken; - } - case 636: break; - case E4X_INTAG: { - addToken(start,zzStartRead-1, INTERNAL_E4X_INTAG); return firstToken; - } - case 637: break; - case E4X_PI: { - addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 638: break; - case JS_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 639: break; - case JS_CHAR: { - addToken(start,zzStartRead-1, Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 640: break; - case JS_EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 641: break; - case E4X_COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); return firstToken; - } - case 642: break; - case JS_DOCCOMMENT: { - yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); return firstToken; - } - case 643: break; - case E4X_DTD: { - addToken(start,zzStartRead-1, Token.MARKUP_DTD); addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); return firstToken; - } - case 644: break; - case JS_TEMPLATE_LITERAL: { - if (validJSString) { + } + case 636: + break; + case E4X_INTAG: { + addToken(start, zzStartRead - 1, INTERNAL_E4X_INTAG); + return firstToken; + } + case 637: + break; + case E4X_PI: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 638: + break; + case JS_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 639: + break; + case JS_CHAR: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 640: + break; + case JS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 641: + break; + case E4X_COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); + return firstToken; + } + case 642: + break; + case JS_DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); + return firstToken; + } + case 643: + break; + case E4X_DTD: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); + return firstToken; + } + case 644: + break; + case JS_TEMPLATE_LITERAL: { + if (validJSString) { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); } return firstToken; - } - case 645: break; - case E4X_INATTR_SINGLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_E4X_ATTR_SINGLE); return firstToken; - } - case 646: break; - case E4X_INATTR_DOUBLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_E4X_ATTR_DOUBLE); return firstToken; - } - case 647: break; - case JS_TEMPLATE_LITERAL_EXPR: { - // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 648: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 649: break; - case E4X_CDATA: { - addToken(start,zzStartRead-1, Token.MARKUP_CDATA); addEndToken(INTERNAL_E4X_MARKUP_CDATA); return firstToken; - } - case 650: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 645: + break; + case E4X_INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_E4X_ATTR_SINGLE); + return firstToken; + } + case 646: + break; + case E4X_INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_E4X_ATTR_DOUBLE); + return firstToken; + } + case 647: + break; + case JS_TEMPLATE_LITERAL_EXPR: { + // TODO: This isn't right. The expression and + // its depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 648: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 649: + break; + case E4X_CDATA: { + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + addEndToken(INTERNAL_E4X_MARKUP_CDATA); + return firstToken; + } + case 650: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/JavaTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/JavaTokenMaker.java index 77c53f2..9da0521 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/JavaTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/JavaTokenMaker.java @@ -1,19 +1,20 @@ /* The following code was generated by JFlex 1.4.1 on 11/21/13 7:23 PM */ - /* * 11/13/2004 - * * JavaTokenMaker.java - Scanner for the Java programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * Scanner for the Java programming language. @@ -55,72 +56,57 @@ import org.fife.ui.rsyntaxtextarea.*; * @version 1.0 * */ - public class JavaTokenMaker extends AbstractJFlexCTokenMaker { - + /** This character denotes the end of file */ public static final int YYEOF = -1; - /** lexical states */ public static final int EOL_COMMENT = 3; public static final int DOCCOMMENT = 2; public static final int YYINITIAL = 0; public static final int MLC = 1; - /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = "\11\0\1\23\1\11\1\0\1\23\1\20\22\0\1\23\1\53\1\16" + "\1\21\1\22\1\53\1\55\1\10\2\77\1\25\1\46\1\45\1\34" + "\1\35\1\24\1\4\1\5\2\17\1\122\1\7\1\121\1\7\2\3" - + "\1\56\1\45\1\47\1\50\1\52\1\54\1\76\1\101\1\27\1\6" - + "\1\67\1\33\1\32\1\116\1\107\1\104\1\124\1\1\1\26\1\111" - + "\1\112\1\113\1\115\1\120\1\74\1\102\1\105\1\106\1\110\1\117" - + "\1\31\1\1\1\123\1\77\1\12\1\77\1\51\1\2\1\0\1\41" + "\1\30\1\63\1\61\1\40\1\15\1\72\1\57\1\65\1\114\1\75" - + "\1\42\1\66\1\14\1\60\1\62\1\103\1\37\1\43\1\36\1\13" + + "\1\56\1\45\1\47\1\50\1\52\1\54\1\76\1\101\1\27\1\6" + "\1\67\1\33\1\32\1\116\1\107\1\104\1\124\1\1\1\26\1\111" + + "\1\112\1\113\1\115\1\120\1\74\1\102\1\105\1\106\1\110\1\117" + "\1\31\1\1\1\123\1\77\1\12\1\77\1\51\1\2\1\0\1\41" + + "\1\30\1\63\1\61\1\40\1\15\1\72\1\57\1\65\1\114\1\75" + "\1\42\1\66\1\14\1\60\1\62\1\103\1\37\1\43\1\36\1\13" + "\1\71\1\70\1\64\1\73\1\100\1\125\1\51\1\44\1\54\uff81\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 = "\4\0\1\1\1\2\2\3\1\2\1\4\1\5\2\2" - + "\1\6\1\1\1\7\2\10\5\2\1\10\7\2\1\11" + "\1\2\5\10\11\2\1\12\16\2\1\13\1\14\5\13" - + "\1\15\10\13\1\16\3\13\1\1\2\17\1\20\1\3" + "\1\17\1\20\2\17\1\21\2\17\5\2\1\4\1\22" - + "\1\0\1\4\7\2\2\6\1\23\1\24\1\25\41\2" + "\1\0\1\10\1\2\1\26\10\2\1\26\14\2\1\12" - + "\57\2\2\0\1\27\4\0\1\30\2\0\1\31\22\0" + "\1\1\1\3\1\20\1\0\2\21\1\3\1\21\10\2" - + "\1\4\1\32\2\4\1\22\1\4\5\2\1\6\1\33" + "\1\6\1\34\62\2\1\35\17\2\1\1\10\2\1\36" - + "\45\2\1\36\24\2\37\0\1\1\2\17\12\2\1\4" + "\3\2\1\6\1\37\1\36\3\2\1\36\5\2\1\36" - + "\2\2\1\35\4\2\2\36\6\2\1\40\37\2\1\1" + "\56\2\1\0\31\2\2\0\1\41\2\0\1\42\10\0" - + "\1\43\17\0\1\44\1\1\2\2\1\36\11\2\1\4" + "\1\26\1\6\37\2\1\26\27\2\1\1\11\2\1\36" - + "\31\2\1\36\11\2\1\0\31\2\35\0\1\1\15\2" + "\1\4\1\2\1\6\1\36\5\2\1\36\27\2\1\45" - + "\16\2\1\36\1\1\11\2\1\36\30\2\1\36\13\2" + "\1\0\2\2\1\36\10\2\1\36\12\2\22\0\15\2" - + "\1\0\4\2\1\0\34\2\1\36\2\2\1\1\43\2" + "\1\0\14\2\1\0\23\2\1\36\6\2\2\0\1\43" - + "\6\0\1\36\12\2\4\0\4\2\2\0\75\2\2\0" + "\11\2\1\0\20\2\1\36\12\2\12\0\4\2\1\36" - + "\4\2\4\0\3\2\1\0\3\2\1\36\10\2\1\36" + "\6\2\1\36\45\2\2\0\10\2\1\36\30\2\5\0" - + "\4\2\1\0\2\2\1\36\4\0\1\2\1\0\3\2" + "\1\0\53\2\2\0\33\2\5\0\3\2\2\0\1\2" - + "\4\0\3\2\1\0\1\36\11\2\1\36\10\2\1\36" + "\5\2\1\36\12\2\2\0\15\2\1\36\6\2\2\0" - + "\2\2\2\0\1\2\4\0\3\2\1\0\5\2\1\36" + "\3\2\1\0\1\2\1\36\2\2\1\36\2\2\1\0" - + "\1\36\15\2\1\0\14\2\1\36\3\2\1\36\5\2" + "\2\0\1\2\3\0\2\2\1\0\2\2\1\36\6\2" - + "\1\0\2\2\2\0\12\2\1\0\23\2\2\0\1\2" + "\2\0\2\2\1\0\4\2\1\36\1\2\1\0\2\2" - + "\2\0\12\2\1\0\15\2\1\36\2\2\2\0\1\2" + "\2\0\2\2\1\0\3\2\1\0\1\2\1\0\1\2" - + "\5\0\11\2\1\0\12\2\1\0\2\2\1\0\1\2" + "\2\0\1\2\1\0\2\2\1\0\1\2\5\0\10\2" - + "\1\0\6\2\1\0\1\2\3\0\1\2\1\0\1\2" + "\1\0\1\2\5\0\5\2\1\0\3\2\1\36\1\2" - + "\1\0\1\36\4\0\1\2\1\0\1\2\1\0\1\2" + "\4\0\3\2\1\0\3\2\1\0\1\36\4\0\1\2" - + "\1\0\1\2\4\0\2\2\1\0\2\2\6\0\1\2" + "\1\0\1\2\4\0\1\2\7\0\1\2\1\0\1\2" + "\30\0\1\36\37\0"; - + private static final String ZZ_ACTION_PACKED_0 = "\4\0\1\1\1\2\2\3\1\2\1\4\1\5\2\2" + "\1\6\1\1\1\7\2\10\5\2\1\10\7\2\1\11" + + "\1\2\5\10\11\2\1\12\16\2\1\13\1\14\5\13" + "\1\15\10\13\1\16\3\13\1\1\2\17\1\20\1\3" + + "\1\17\1\20\2\17\1\21\2\17\5\2\1\4\1\22" + "\1\0\1\4\7\2\2\6\1\23\1\24\1\25\41\2" + "\1\0\1\10\1\2\1\26\10\2\1\26\14\2\1\12" + + "\57\2\2\0\1\27\4\0\1\30\2\0\1\31\22\0" + "\1\1\1\3\1\20\1\0\2\21\1\3\1\21\10\2" + "\1\4\1\32\2\4\1\22\1\4\5\2\1\6\1\33" + + "\1\6\1\34\62\2\1\35\17\2\1\1\10\2\1\36" + "\45\2\1\36\24\2\37\0\1\1\2\17\12\2\1\4" + "\3\2\1\6\1\37\1\36\3\2\1\36\5\2\1\36" + + "\2\2\1\35\4\2\2\36\6\2\1\40\37\2\1\1" + "\56\2\1\0\31\2\2\0\1\41\2\0\1\42\10\0" + "\1\43\17\0\1\44\1\1\2\2\1\36\11\2\1\4" + + "\1\26\1\6\37\2\1\26\27\2\1\1\11\2\1\36" + "\31\2\1\36\11\2\1\0\31\2\35\0\1\1\15\2" + "\1\4\1\2\1\6\1\36\5\2\1\36\27\2\1\45" + + "\16\2\1\36\1\1\11\2\1\36\30\2\1\36\13\2" + "\1\0\2\2\1\36\10\2\1\36\12\2\22\0\15\2" + "\1\0\4\2\1\0\34\2\1\36\2\2\1\1\43\2" + + "\1\0\14\2\1\0\23\2\1\36\6\2\2\0\1\43" + "\6\0\1\36\12\2\4\0\4\2\2\0\75\2\2\0" + "\11\2\1\0\20\2\1\36\12\2\12\0\4\2\1\36" + + "\4\2\4\0\3\2\1\0\3\2\1\36\10\2\1\36" + "\6\2\1\36\45\2\2\0\10\2\1\36\30\2\5\0" + "\4\2\1\0\2\2\1\36\4\0\1\2\1\0\3\2" + + "\1\0\53\2\2\0\33\2\5\0\3\2\2\0\1\2" + "\4\0\3\2\1\0\1\36\11\2\1\36\10\2\1\36" + "\5\2\1\36\12\2\2\0\15\2\1\36\6\2\2\0" + + "\2\2\2\0\1\2\4\0\3\2\1\0\5\2\1\36" + "\3\2\1\0\1\2\1\36\2\2\1\36\2\2\1\0" + "\1\36\15\2\1\0\14\2\1\36\3\2\1\36\5\2" + + "\2\0\1\2\3\0\2\2\1\0\2\2\1\36\6\2" + "\1\0\2\2\2\0\12\2\1\0\23\2\2\0\1\2" + "\2\0\2\2\1\0\4\2\1\36\1\2\1\0\2\2" + + "\2\0\12\2\1\0\15\2\1\36\2\2\2\0\1\2" + "\2\0\2\2\1\0\3\2\1\0\1\2\1\0\1\2" + "\5\0\11\2\1\0\12\2\1\0\2\2\1\0\1\2" + + "\2\0\1\2\1\0\2\2\1\0\1\2\5\0\10\2" + "\1\0\6\2\1\0\1\2\3\0\1\2\1\0\1\2" + "\1\0\1\2\5\0\5\2\1\0\3\2\1\36\1\2" + + "\1\0\1\36\4\0\1\2\1\0\1\2\1\0\1\2" + "\4\0\3\2\1\0\3\2\1\0\1\36\4\0\1\2" + "\1\0\1\2\4\0\2\2\1\0\2\2\6\0\1\2" + + "\1\0\1\2\4\0\1\2\7\0\1\2\1\0\1\2" + "\30\0\1\36\37\0"; + private static int[] zzUnpackAction() { int[] result = new int[1885]; 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 */ @@ -134,12 +120,11 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { } 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\126\0\254\0\u0102\0\u0158\0\u01ae\0\u0204\0\u025a" + "\0\u02b0\0\u0306\0\u035c\0\u03b2\0\u0408\0\u045e\0\u035c\0\u04b4" + "\0\u050a\0\u0560\0\u05b6\0\u060c\0\u0662\0\u06b8\0\u070e\0\u0764" @@ -374,16 +359,15 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { + "\2\u6062\2\u60b8\2\u610e\2\u6164\2\u61ba\2\u6210\2\u6266\2\u62bc" + "\2\u6312\2\u6368\2\u63be\2\u6414\2\u646a\2\u64c0\2\u6516\2\u656c" + "\2\u65c2\2\u6618\2\u666e\2\u66c4\2\u671a\2\u6770\2\u67c6\2\u681c" - + "\2\u6872\2\u68c8\2\u691e\2\u6974\2\u69ca\2\u6a20\2\u6a76\2\u6acc" - + "\2\u6b22\2\u6b78\2\u6bce\2\u6c24\2\u6c7a"; - + + "\2\u6872\2\u68c8\2\u691e\2\u6974\2\u69ca\2\u6a20\2\u6a76\2\u6acc" + "\2\u6b22\2\u6b78\2\u6bce\2\u6c24\2\u6c7a"; + private static int[] zzUnpackRowMap() { int[] result = new int[1885]; 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 */ @@ -394,89 +378,67 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { } return j; } - + /** * The transition table of the DFA */ private static final int[] ZZ_TRANS = zzUnpackTrans(); - - private static final String ZZ_TRANS_PACKED_0 = "\1\5\2\6\1\7\1\10\1\7\1\11\1\7\1\12" - + "\1\13\1\5\1\6\1\14\1\15\1\16\1\7\1\17" + "\1\5\1\6\1\20\1\21\1\22\1\23\1\24\1\25" - + "\1\6\1\26\1\27\1\30\1\31\1\32\1\33\1\34" + "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\2\22" - + "\1\44\1\22\1\45\1\46\1\45\2\6\1\47\1\50" + "\1\51\1\6\1\52\1\6\1\53\1\54\1\55\1\56" - + "\1\6\1\57\1\6\1\60\1\40\1\6\1\61\1\62" + "\1\6\1\63\1\64\1\65\1\66\1\67\1\70\1\71" + private static final String ZZ_TRANS_PACKED_0 = "\1\5\2\6\1\7\1\10\1\7\1\11\1\7\1\12" + "\1\13\1\5\1\6\1\14\1\15\1\16\1\7\1\17" + + "\1\5\1\6\1\20\1\21\1\22\1\23\1\24\1\25" + "\1\6\1\26\1\27\1\30\1\31\1\32\1\33\1\34" + + "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\2\22" + "\1\44\1\22\1\45\1\46\1\45\2\6\1\47\1\50" + + "\1\51\1\6\1\52\1\6\1\53\1\54\1\55\1\56" + "\1\6\1\57\1\6\1\60\1\40\1\6\1\61\1\62" + "\1\6\1\63\1\64\1\65\1\66\1\67\1\70\1\71" + "\1\72\1\6\1\73\1\74\1\75\1\76\2\7\2\6" + "\1\40\11\77\1\100\3\77\1\101\7\77\1\102\31\77" + "\1\103\10\77\1\104\35\77\11\105\1\106\3\105\1\107" + "\7\105\1\110\21\105\1\111\7\105\1\112\10\105\1\113" + "\5\105\1\114\26\105\1\115\11\116\1\117\3\116\1\120" + "\41\116\1\121\10\116\1\122\35\116\10\5\2\0\4\5" - + "\1\0\1\5\1\0\2\5\3\0\6\5\2\0\6\5" + "\13\0\20\5\1\0\25\5\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\2\124\1\125\3\7\1\124\1\7\2\0\3\124" + "\1\126\1\0\1\7\1\0\2\124\3\0\1\127\3\124" - + "\1\126\1\130\1\0\1\131\2\124\1\130\1\124\1\127" + "\1\124\13\0\2\124\1\126\5\124\1\126\7\124\1\0" - + "\21\124\2\7\2\124\1\0\2\124\1\132\1\133\2\134" + "\1\124\1\134\2\0\3\124\1\126\1\0\1\134\1\0" - + "\2\124\3\0\1\127\2\135\1\136\1\126\1\130\1\0" + "\1\131\2\124\1\130\1\124\1\127\1\124\13\0\2\124" - + "\1\126\2\124\1\136\2\124\1\126\7\124\1\0\21\124" + "\2\134\2\124\1\0\1\5\7\6\2\0\1\123\1\137" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\140\1\141\1\6\13\0\1\142\1\143" + + "\1\0\1\5\1\0\2\5\3\0\6\5\2\0\6\5" + "\13\0\20\5\1\0\25\5\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\2\124\1\125\3\7\1\124\1\7\2\0\3\124" + + "\1\126\1\0\1\7\1\0\2\124\3\0\1\127\3\124" + "\1\126\1\130\1\0\1\131\2\124\1\130\1\124\1\127" + + "\1\124\13\0\2\124\1\126\5\124\1\126\7\124\1\0" + "\21\124\2\7\2\124\1\0\2\124\1\132\1\133\2\134" + + "\1\124\1\134\2\0\3\124\1\126\1\0\1\134\1\0" + "\2\124\3\0\1\127\2\135\1\136\1\126\1\130\1\0" + + "\1\131\2\124\1\130\1\124\1\127\1\124\13\0\2\124" + "\1\126\2\124\1\136\2\124\1\126\7\124\1\0\21\124" + + "\2\134\2\124\1\0\1\5\7\6\2\0\1\123\1\137" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\140\1\141\1\6\13\0\1\142\1\143" + "\15\6\1\5\1\0\25\6\1\0\10\144\1\145\1\146" + "\1\147\113\144\126\0\1\5\7\6\2\0\1\123\1\150" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\151\1\152\2\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\153\1\154\1\6\13\0\1\6\1\155\4\6" + "\1\156\10\6\1\5\1\0\25\6\1\0\11\16\1\157" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\151\1\152\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\153\1\154\1\6\13\0\1\6\1\155\4\6" + "\1\156\10\6\1\5\1\0\25\6\1\0\11\16\1\157" + "\1\160\3\16\1\161\107\16\23\0\1\20\126\0\1\162" + "\1\163\22\0\1\45\125\0\1\45\55\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\164\4\6" - + "\1\165\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\166\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\167\2\6\13\0" + "\1\6\1\170\4\6\1\171\5\6\1\172\2\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\173\4\6\13\0\1\6\1\174\12\6\1\175" + "\2\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\176\1\6\13\0\1\6\1\177" - + "\4\6\1\200\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\201\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\202" + "\4\6\13\0\5\6\1\203\1\6\1\204\2\6\1\205" - + "\4\6\1\5\1\0\13\6\1\206\11\6\35\0\1\45" + "\13\0\1\45\60\0\3\131\1\0\1\131\7\0\1\131" - + "\101\0\2\131\3\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\207\4\6\13\0\1\210\16\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\211\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\6\1\212\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\213\1\6\13\0\5\6\1\214\11\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\2\6\1\215\3\6" + "\2\0\5\6\1\216\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\217\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\220\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\221\5\6\13\0" + "\1\222\10\6\1\223\2\6\1\224\2\6\1\5\1\0" - + "\25\6\47\0\1\45\1\0\1\45\124\0\1\225\1\45" + "\125\0\1\45\1\0\1\226\123\0\1\45\4\0\1\45" - + "\50\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\227" - + "\3\6\13\0\1\6\1\230\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\231\2\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\232\1\6\1\233\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\234\1\235\1\6\13\0\1\236\1\237\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" - + "\1\240\1\241\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\242\7\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\243" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\244\1\245\2\6\13\0\1\6\1\246" + "\4\6\1\247\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\250\16\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\251\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\252\15\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\253\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\254" - + "\1\255\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\2\256\3\5\1\256\1\5\2\0\1\5\3\256" - + "\1\0\1\5\1\0\1\5\1\256\3\0\6\256\2\0" + "\6\256\13\0\17\256\1\5\1\0\21\256\2\5\2\256" - + "\1\0\1\5\7\6\2\0\1\123\1\257\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\260\3\6" - + "\2\0\1\6\1\261\3\6\1\262\13\0\3\6\1\263" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\264\1\6\1\265\3\6\13\0\1\266" - + "\1\267\1\6\1\270\1\271\1\6\1\272\5\6\1\273" + "\2\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\274\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\275\3\6\1\276\1\6" - + "\13\0\2\6\1\277\14\6\1\5\1\0\13\6\1\300" + "\11\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\301\4\6\13\0\1\302\1\303\4\6\1\304\5\6" - + "\1\305\2\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\6\1\306\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\5\6\1\307\1\310\16\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\311\2\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\312\3\6\13\0\1\6\1\313" + "\4\6\1\314\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\315\2\6\13\0" - + "\6\6\1\316\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\317\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\320\1\321" + "\2\6\13\0\1\6\1\322\15\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\323\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\324\3\6" - + "\2\0\6\6\13\0\3\6\1\325\13\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\326\2\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\327\1\6\1\330\2\6\13\0\6\6\1\331" - + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\332\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\333\1\334\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\335\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\164\4\6" + "\1\165\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\1\166\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\167\2\6\13\0" + "\1\6\1\170\4\6\1\171\5\6\1\172\2\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\173\4\6\13\0\1\6\1\174\12\6\1\175" + + "\2\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\176\1\6\13\0\1\6\1\177" + + "\4\6\1\200\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\201\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\202" + + "\4\6\13\0\5\6\1\203\1\6\1\204\2\6\1\205" + "\4\6\1\5\1\0\13\6\1\206\11\6\35\0\1\45" + + "\13\0\1\45\60\0\3\131\1\0\1\131\7\0\1\131" + "\101\0\2\131\3\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\207\4\6\13\0\1\210\16\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\211\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\212\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + + "\1\213\1\6\13\0\5\6\1\214\11\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\215\3\6" + + "\2\0\5\6\1\216\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\217\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\220\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\221\5\6\13\0" + + "\1\222\10\6\1\223\2\6\1\224\2\6\1\5\1\0" + "\25\6\47\0\1\45\1\0\1\45\124\0\1\225\1\45" + + "\125\0\1\45\1\0\1\226\123\0\1\45\4\0\1\45" + "\50\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\227" + + "\3\6\13\0\1\6\1\230\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\231\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\232\1\6\1\233\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\234\1\235\1\6\13\0\1\236\1\237\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\240\1\241\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\7\6\1\242\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\243" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\244\1\245\2\6\13\0\1\6\1\246" + "\4\6\1\247\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\1\250\16\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\1\6\1\251\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\252\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\253\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\254" + + "\1\255\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\2\256\3\5\1\256\1\5\2\0\1\5\3\256" + "\1\0\1\5\1\0\1\5\1\256\3\0\6\256\2\0" + + "\6\256\13\0\17\256\1\5\1\0\21\256\2\5\2\256" + "\1\0\1\5\7\6\2\0\1\123\1\257\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\260\3\6" + + "\2\0\1\6\1\261\3\6\1\262\13\0\3\6\1\263" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\264\1\6\1\265\3\6\13\0\1\266" + "\1\267\1\6\1\270\1\271\1\6\1\272\5\6\1\273" + "\2\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\1\6\1\274\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\275\3\6\1\276\1\6" + "\13\0\2\6\1\277\14\6\1\5\1\0\13\6\1\300" + + "\11\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\301\4\6\13\0\1\302\1\303\4\6\1\304\5\6" + + "\1\305\2\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\6\1\306\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\5\6\1\307\1\310\16\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\311\2\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\312\3\6\13\0\1\6\1\313" + + "\4\6\1\314\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\315\2\6\13\0" + + "\6\6\1\316\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\317\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\320\1\321" + + "\2\6\13\0\1\6\1\322\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\323\2\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\324\3\6" + + "\2\0\6\6\13\0\3\6\1\325\13\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\326\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\327\1\6\1\330\2\6\13\0\6\6\1\331" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\332\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\333\1\334\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\335\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\11\77" + "\1\0\3\77\1\0\7\77\1\0\31\77\1\0\10\77" + "\1\0\35\77\36\0\1\336\26\0\1\337\64\0\1\340" + "\137\0\1\341\157\0\1\342\35\0\11\105\1\0\3\105" + "\1\0\7\105\1\0\21\105\1\0\7\105\1\0\10\105" + "\1\0\5\105\1\0\26\105\37\0\1\343\26\0\1\344" @@ -484,193 +446,137 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { + "\4\0\17\346\2\0\21\346\2\0\2\346\37\0\1\351" + "\157\0\1\352\73\0\1\353\1\354\1\355\1\356\1\0" + "\1\357\14\0\1\360\1\361\1\362\1\363\1\0\1\364" + "\3\0\1\365\132\0\1\366\27\0\11\116\1\0\3\116" + "\1\0\41\116\1\0\10\116\1\0\35\116\36\0\1\367" + "\26\0\1\370\76\0\1\371\157\0\1\372\35\0\10\5" - + "\2\0\1\5\1\373\2\5\1\0\1\5\1\0\2\5" + "\3\0\6\5\2\0\6\5\13\0\20\5\1\0\25\5" - + "\1\0\10\124\2\0\4\124\1\0\1\124\1\0\2\124" + "\3\0\6\124\2\0\6\124\13\0\20\124\1\0\25\124" - + "\1\0\2\124\1\125\3\374\1\124\1\374\2\0\4\124" + "\1\0\1\374\1\0\2\124\3\0\6\124\2\0\6\124" - + "\13\0\20\124\1\0\21\124\2\374\2\124\1\0\3\124" + "\3\375\1\124\1\375\2\0\4\124\1\0\1\375\1\0" - + "\2\124\3\0\6\124\1\376\1\0\6\124\2\0\1\376" + "\10\0\20\124\1\0\21\124\2\375\2\124\1\0\3\124" - + "\3\131\1\124\1\131\2\0\3\124\1\126\1\0\1\131" + "\1\0\2\124\3\0\4\124\1\126\1\130\2\0\2\124" - + "\1\130\3\124\13\0\2\124\1\126\5\124\1\126\7\124" + "\1\0\21\124\2\131\2\124\1\0\2\124\1\132\1\124" - + "\2\377\1\124\1\377\2\0\4\124\1\0\1\377\1\0" + "\2\124\3\0\6\124\2\0\6\124\13\0\20\124\1\0" - + "\21\124\2\377\2\124\1\0\3\124\3\133\1\124\1\133" + "\2\0\3\124\1\126\1\0\1\133\1\0\2\124\3\0" - + "\4\124\1\126\1\130\1\0\1\131\2\124\1\130\3\124" + "\13\0\2\124\1\126\5\124\1\126\7\124\1\0\21\124" - + "\2\133\2\124\1\0\2\124\1\132\1\133\2\134\1\124" + "\1\134\2\0\3\124\1\126\1\0\1\134\1\0\2\124" - + "\3\0\1\u0100\3\124\1\126\1\130\1\0\1\131\2\124" + "\1\130\1\124\1\u0100\1\124\13\0\2\124\1\126\5\124" - + "\1\126\7\124\1\0\21\124\2\134\2\124\1\0\4\124" + "\2\u0101\2\124\2\0\4\124\1\0\1\124\1\0\2\124" - + "\3\0\6\124\2\0\6\124\13\0\20\124\1\0\25\124" + "\1\0\3\124\5\u0102\2\0\3\124\1\u0102\1\0\1\u0102" - + "\1\0\2\124\3\0\1\124\2\u0102\1\124\2\u0102\2\0" + "\2\124\2\u0102\2\124\13\0\2\124\1\u0102\1\124\1\u0102" - + "\3\124\1\u0102\7\124\1\0\1\124\1\u0102\17\124\2\u0102" + "\2\124\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0103\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0104\1\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0105\2\6\13\0\1\6" + "\1\u0106\15\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0107\2\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u0108\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\4\6\1\u0109\1\6\13\0\7\6" + "\1\u010a\7\6\1\5\1\0\25\6\1\0\10\u010b\1\u010c" - + "\1\0\114\u010b\10\0\1\u010c\115\0\4\u010b\2\u010d\1\u010b" - + "\1\u010e\1\u010f\1\0\1\144\1\u0110\3\144\1\u010d\10\u010b" - + "\1\144\5\u010b\2\144\61\u010b\2\u010e\3\u010b\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\4\6\1\u0111\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\11\6\1\241\5\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0112" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u0113\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u0114\15\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\241\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0115\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\12\157" - + "\1\u0116\3\157\1\u0117\113\157\2\16\1\157\2\16\1\0" + "\1\16\1\u0118\4\16\10\157\1\16\5\157\2\16\61\157" - + "\2\16\3\157\25\0\1\u0119\100\0\1\5\7\6\2\0" + "\1\123\1\6\1\u011a\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u011b" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u011c\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u011d\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\2\6\1\u011e\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u011f" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0120\15\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u0121\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0122\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0123\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u0124\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0125" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\u0126\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" - + "\1\u0127\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0128\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0129\1\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u012a\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u012b\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u012c\5\6\13\0\4\6\1\u012d\12\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\3\6\1\u012e\13\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u012f\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\4\6\1\u0130\1\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u0131\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u0132\2\6\13\0" + "\14\6\1\241\2\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0133\4\6\13\0" - + "\6\6\1\u0134\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u0135\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\1\u0136\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0137" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u0138\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u0139\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u013a\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u013b\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u013c\13\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u013d" - + "\1\6\1\u013e\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u013f\15\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0140" - + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0141\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\51\0\1\45\1\0\1\22\53\0\1\5" - + "\7\6\2\0\1\123\2\6\1\u0142\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0143\2\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\2\6\1\u0144\3\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0145" - + "\4\6\1\u0146\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0147" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0148\4\6\1\u0137\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0149\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u014a" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u014b\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u014c\4\6\1\u014d\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u014e\13\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\3\6\1\u014f\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\3\6\1\u0150\21\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0151\5\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u0152\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0153" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0154\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u0155\1\6\13\0\6\6\1\u0156\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0157\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\6\1\u0158\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0159\1\6\1\u015a\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u015b\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\256\2\0\1\u015c\3\256" + "\1\0\1\256\1\0\1\5\1\256\3\0\6\256\2\0" - + "\6\256\13\0\17\256\1\5\1\0\25\256\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u015d\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u015e\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u015f" - + "\4\6\13\0\6\6\1\u0160\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0161" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u0162\13\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u0163\1\6\1\u0164\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\2\0\1\5\1\373\2\5\1\0\1\5\1\0\2\5" + "\3\0\6\5\2\0\6\5\13\0\20\5\1\0\25\5" + "\1\0\10\124\2\0\4\124\1\0\1\124\1\0\2\124" + + "\3\0\6\124\2\0\6\124\13\0\20\124\1\0\25\124" + "\1\0\2\124\1\125\3\374\1\124\1\374\2\0\4\124" + + "\1\0\1\374\1\0\2\124\3\0\6\124\2\0\6\124" + "\13\0\20\124\1\0\21\124\2\374\2\124\1\0\3\124" + + "\3\375\1\124\1\375\2\0\4\124\1\0\1\375\1\0" + "\2\124\3\0\6\124\1\376\1\0\6\124\2\0\1\376" + + "\10\0\20\124\1\0\21\124\2\375\2\124\1\0\3\124" + "\3\131\1\124\1\131\2\0\3\124\1\126\1\0\1\131" + + "\1\0\2\124\3\0\4\124\1\126\1\130\2\0\2\124" + "\1\130\3\124\13\0\2\124\1\126\5\124\1\126\7\124" + + "\1\0\21\124\2\131\2\124\1\0\2\124\1\132\1\124" + "\2\377\1\124\1\377\2\0\4\124\1\0\1\377\1\0" + + "\2\124\3\0\6\124\2\0\6\124\13\0\20\124\1\0" + "\21\124\2\377\2\124\1\0\3\124\3\133\1\124\1\133" + + "\2\0\3\124\1\126\1\0\1\133\1\0\2\124\3\0" + "\4\124\1\126\1\130\1\0\1\131\2\124\1\130\3\124" + + "\13\0\2\124\1\126\5\124\1\126\7\124\1\0\21\124" + "\2\133\2\124\1\0\2\124\1\132\1\133\2\134\1\124" + + "\1\134\2\0\3\124\1\126\1\0\1\134\1\0\2\124" + "\3\0\1\u0100\3\124\1\126\1\130\1\0\1\131\2\124" + + "\1\130\1\124\1\u0100\1\124\13\0\2\124\1\126\5\124" + "\1\126\7\124\1\0\21\124\2\134\2\124\1\0\4\124" + + "\2\u0101\2\124\2\0\4\124\1\0\1\124\1\0\2\124" + "\3\0\6\124\2\0\6\124\13\0\20\124\1\0\25\124" + + "\1\0\3\124\5\u0102\2\0\3\124\1\u0102\1\0\1\u0102" + "\1\0\2\124\3\0\1\124\2\u0102\1\124\2\u0102\2\0" + + "\2\124\2\u0102\2\124\13\0\2\124\1\u0102\1\124\1\u0102" + "\3\124\1\u0102\7\124\1\0\1\124\1\u0102\17\124\2\u0102" + + "\2\124\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0103\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0104\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0105\2\6\13\0\1\6" + "\1\u0106\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0107\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\1\6\1\u0108\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u0109\1\6\13\0\7\6" + + "\1\u010a\7\6\1\5\1\0\25\6\1\0\10\u010b\1\u010c" + "\1\0\114\u010b\10\0\1\u010c\115\0\4\u010b\2\u010d\1\u010b" + + "\1\u010e\1\u010f\1\0\1\144\1\u0110\3\144\1\u010d\10\u010b" + "\1\144\5\u010b\2\144\61\u010b\2\u010e\3\u010b\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u0111\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\11\6\1\241\5\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0112" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u0113\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u0114\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\241\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0115\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\12\157" + "\1\u0116\3\157\1\u0117\113\157\2\16\1\157\2\16\1\0" + + "\1\16\1\u0118\4\16\10\157\1\16\5\157\2\16\61\157" + "\2\16\3\157\25\0\1\u0119\100\0\1\5\7\6\2\0" + + "\1\123\1\6\1\u011a\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u011b" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\1\6\1\u011c\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u011d\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\2\6\1\u011e\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u011f" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0120\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u0121\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0122\5\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0123\3\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u0124\15\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0125" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\1\u0126\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u0127\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0128\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0129\1\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u012a\2\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u012b\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u012c\5\6\13\0\4\6\1\u012d\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\3\6\1\u012e\13\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u012f\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\4\6\1\u0130\1\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u0131\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0132\2\6\13\0" + + "\14\6\1\241\2\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0133\4\6\13\0" + + "\6\6\1\u0134\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0135\5\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0136\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0137" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0138\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u0139\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u013a\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u013b\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\3\6\1\u013c\13\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u013d" + + "\1\6\1\u013e\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u013f\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0140" + + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0141\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\51\0\1\45\1\0\1\22\53\0\1\5" + "\7\6\2\0\1\123\2\6\1\u0142\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0143\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\2\6\1\u0144\3\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0145" + "\4\6\1\u0146\10\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0147" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0148\4\6\1\u0137\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0149\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u014a" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u014b\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u014c\4\6\1\u014d\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\3\6\1\u014e\13\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\3\6\1\u014f\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\3\6\1\u0150\21\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0151\5\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u0152\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u0153" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0154\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u0155\1\6\13\0\6\6\1\u0156\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0157\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u0158\1\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u0159\1\6\1\u015a\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u015b\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\256\2\0\1\u015c\3\256" + "\1\0\1\256\1\0\1\5\1\256\3\0\6\256\2\0" + + "\6\256\13\0\17\256\1\5\1\0\25\256\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u015d\5\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u015e\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u015f" + "\4\6\13\0\6\6\1\u0160\10\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0161" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u0162\13\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0163\1\6\1\u0164\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0165\1\u0166\4\6\13\0\4\6\1\u0167\12\6" - + "\1\5\1\0\3\6\1\u0168\21\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0169\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u016a\4\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u016b\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u016c\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u016d\7\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u016e\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u016f\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\5\1\0\3\6\1\u0168\21\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0169\15\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u016a\4\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u016b\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u016c\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u016d\7\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\1\6\1\u016e\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u016f\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0170\4\6\1\u0171\13\0\1\u0172\1\6\1\u0173\1\u0174" - + "\1\u0175\5\6\1\u0176\4\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0177\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u0178\1\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u0179\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\5\6\1\u017a\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u017b\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u017c\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u017d\15\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\7\6\1\u017e\7\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u017f" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u0180\13\0\4\6\1\u0181\11\6" - + "\1\u0182\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\4\6\1\u0183\1\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\4\6\1\u0184\20\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0185" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0186\4\6\13\0\4\6" + "\1\u0187\12\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0188\10\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u0189\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u018a" + "\5\6\13\0\3\6\1\u018b\13\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u018c" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\4\6\1\u018d\1\6\13\0\7\6" + "\1\u018e\7\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u018f\3\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\12\6\1\u0190\4\6\1\5\1\0" + "\25\6\1\0\1\5\5\6\1\u0191\1\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0192\5\6\13\0\17\6\1\5\1\0\2\6" - + "\1\u0193\22\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0194\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0195\13\0" + "\17\6\1\5\1\0\14\6\1\u0196\10\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0197\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u0198\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0199\4\6\1\u019a\10\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\u019b\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u019c" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u019d\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u019e\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u019f" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\1\u0175\5\6\1\u0176\4\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0177\3\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u0178\1\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0179\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\5\6\1\u017a\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u017b\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u017c\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u017d\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u017e\7\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u017f" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\5\6\1\u0180\13\0\4\6\1\u0181\11\6" + "\1\u0182\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\4\6\1\u0183\1\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\4\6\1\u0184\20\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0185" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0186\4\6\13\0\4\6" + + "\1\u0187\12\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0188\10\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0189\4\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u018a" + "\5\6\13\0\3\6\1\u018b\13\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u018c" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u018d\1\6\13\0\7\6" + "\1\u018e\7\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u018f\3\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\12\6\1\u0190\4\6\1\5\1\0" + "\25\6\1\0\1\5\5\6\1\u0191\1\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0192\5\6\13\0\17\6\1\5\1\0\2\6" + "\1\u0193\22\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0194\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0195\13\0" + "\17\6\1\5\1\0\14\6\1\u0196\10\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u0197\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u0198\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u0199\4\6\1\u019a\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\u019b\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u019c" + + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u019d\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u019e\10\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u019f" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0150\3\6\13\0" - + "\17\6\1\5\1\0\25\6\63\0\1\u01a0\105\0\1\u01a1" - + "\121\0\1\u01a2\157\0\1\u01a3\117\0\1\u01a4\105\0\1\u01a5" + + "\17\6\1\5\1\0\25\6\63\0\1\u01a0\105\0\1\u01a1" + "\121\0\1\u01a2\157\0\1\u01a3\117\0\1\u01a4\105\0\1\u01a5" + "\63\0\52\346\1\350\53\346\1\0\1\346\4\0\1\346" + "\4\0\3\346\10\0\6\346\2\0\6\346\6\0\1\350" + "\4\0\17\346\2\0\21\346\2\0\2\346\37\0\1\u01a6" + "\157\0\1\u01a7\50\0\1\u01a8\43\0\1\u01a9\1\u01aa\105\0" - + "\1\u01ab\151\0\1\u01ac\54\0\1\u01ad\152\0\1\u01ae\24\0" - + "\1\u01af\70\0\1\u01b0\135\0\1\u01b1\126\0\1\u01b2\125\0" - + "\1\u01b3\100\0\1\u01b4\151\0\1\u01b5\127\0\1\u01b6\16\0" - + "\1\u01b7\1\0\1\u01b8\1\0\1\u01b9\3\0\1\u01ba\116\0" + + "\1\u01ab\151\0\1\u01ac\54\0\1\u01ad\152\0\1\u01ae\24\0" + "\1\u01af\70\0\1\u01b0\135\0\1\u01b1\126\0\1\u01b2\125\0" + + "\1\u01b3\100\0\1\u01b4\151\0\1\u01b5\127\0\1\u01b6\16\0" + "\1\u01b7\1\0\1\u01b8\1\0\1\u01b9\3\0\1\u01ba\116\0" + "\1\u01bb\105\0\1\u01bc\121\0\1\u01bd\157\0\1\u01be\35\0" + "\3\5\5\u01bf\2\0\3\5\1\u01bf\1\0\1\u01bf\1\0" + "\2\5\3\0\1\5\2\u01bf\1\5\2\u01bf\2\0\2\5" + "\2\u01bf\2\5\13\0\2\5\1\u01bf\1\5\1\u01bf\3\5" + "\1\u01bf\7\5\1\0\1\5\1\u01bf\17\5\2\u01bf\2\5" + "\1\0\2\124\1\125\3\374\1\124\1\374\2\0\4\124" @@ -681,1838 +587,1248 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { + "\1\0\2\124\3\0\1\u0100\5\124\2\0\4\124\1\u0100" + "\1\124\13\0\20\124\1\0\21\124\2\377\2\124\1\0" + "\2\124\1\u01c0\1\124\2\u0101\2\124\2\0\4\124\1\0" + "\1\124\1\0\2\124\3\0\6\124\2\0\6\124\13\0" + "\20\124\1\0\25\124\1\0\2\124\1\u01c1\5\u0102\2\0" + "\3\124\1\u0102\1\0\1\u0102\1\0\2\124\3\0\1\u0100" - + "\2\u0102\1\124\2\u0102\2\0\2\124\2\u0102\1\u0100\1\124" - + "\13\0\2\124\1\u0102\1\124\1\u0102\3\124\1\u0102\7\124" + + "\2\u0102\1\124\2\u0102\2\0\2\124\2\u0102\1\u0100\1\124" + "\13\0\2\124\1\u0102\1\124\1\u0102\3\124\1\u0102\7\124" + "\1\0\1\124\1\u0102\17\124\2\u0102\2\124\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u01c2\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01c3\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u01c4\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u01c5\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u01c6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u01c7\4\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u01c8\13\0\4\6\1\u01c9\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u01ca\1\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\3\6\1\u01cb\13\6\1\5\1\0\25\6\1\0" + + "\1\6\3\0\6\6\2\0\1\6\1\u01c2\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u01c3\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\5\6\1\u01c4\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u01c5\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + + "\1\u01c6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u01c7\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u01c8\13\0\4\6\1\u01c9\12\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u01ca\1\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\3\6\1\u01cb\13\6\1\5\1\0\25\6\1\0" + "\10\u010b\1\145\1\0\120\u010b\2\u010e\1\u010b\1\u010e\1\u010c" - + "\1\0\5\u010b\1\u010e\101\u010b\2\u010e\7\u010b\2\144\1\u010b" - + "\1\144\1\u010c\1\0\5\u010b\1\144\101\u010b\2\144\6\u010b" + + "\1\0\5\u010b\1\u010e\101\u010b\2\u010e\7\u010b\2\144\1\u010b" + "\1\144\1\u010c\1\0\5\u010b\1\144\101\u010b\2\144\6\u010b" + "\5\u01cc\1\145\1\0\3\u010b\1\u01cc\1\u010b\1\u01cc\7\u010b" + "\2\u01cc\1\u010b\2\u01cc\4\u010b\2\u01cc\17\u010b\1\u01cc\1\u010b" - + "\1\u01cc\3\u010b\1\u01cc\11\u010b\1\u01cc\17\u010b\2\u01cc\3\u010b" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\241\1\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u01cd\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u0131\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01ce" - + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u01cf\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\11\157\1\0\117\157" - + "\5\u01d0\2\157\1\u0116\2\157\1\u01d0\1\u0117\1\u01d0\7\157" - + "\2\u01d0\1\157\2\u01d0\4\157\2\u01d0\17\157\1\u01d0\1\157" - + "\1\u01d0\3\157\1\u01d0\11\157\1\u01d0\17\157\2\u01d0\3\157" + "\24\0\1\u01d1\101\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u01d2\3\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01d3" - + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u01d4\3\6\13\0" + "\16\6\1\u01d5\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u01d6\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\2\6" + "\1\u01d7\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u01d8\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u01d9\3\6\1\u01da\1\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\2\6" + "\1\u01db\22\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u01dc\3\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01dd" - + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u01de\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01df\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u01e0\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01e1\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u01e2\7\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u01e3\1\6\1\u01e4\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u01e5\7\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u01e6\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u01e7\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01e8\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u01e9\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u01ea\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\5\6\1\u01eb\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u01ec\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u01ed\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u01ee" - + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\241\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u01ef\2\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\241" - + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\241\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u01f0\3\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u01f1\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u01f2\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u01df\3\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\155\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u01f3\10\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u01f4\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u01ce\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0148\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u01f5\12\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u01f6\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u01f7\3\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u01f4\1\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u01f8\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\12\6\1\u01f9\4\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\16\6\1\u01fa\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u01fb\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u0134\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u01df" - + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u01fc\4\6\1\u01fd\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01fe\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u01ff\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0200\1\6" + "\13\0\1\6\1\u01f2\15\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0201\1\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u0202\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0165\1\u0203\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u0204\3\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0205\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u0137\1\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0206\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\241\14\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\241" - + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0207\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u0208\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u0209\14\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\1\6\1\u020a\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u020b\14\6\1\5\1\0\25\6\1\0\10\5\2\0" - + "\1\5\1\u020c\2\5\1\0\1\5\1\0\2\5\3\0" + "\6\5\2\0\6\5\13\0\20\5\1\0\25\5\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" - + "\1\u020d\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u020e\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u020f\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0210\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0211\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0212\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0213\3\6\13\0\6\6\1\u0214\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0215\12\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" - + "\1\u0216\3\6\1\u0217\4\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u0218\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\u0219\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u01e1\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u021a\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u021b\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u021c\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u021d\13\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u021e" - + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u021f\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0220\3\6\13\0\17\6\1\5\1\0\2\6\1\u0221" - + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0222" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u0223\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0224\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0225" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u0226\15\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0227\2\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u0228\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u0229" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u022a\3\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u022b\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\202\4\6\13\0" + "\5\6\1\u022c\11\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u022d\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u022e\3\6\13\0\1\6\1\u022f" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\11\6" - + "\1\u0230\13\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0231\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0232" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\u0233\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0234\2\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\u0235\16\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" - + "\1\u0236\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\10\6\1\u0237\6\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\10\6\1\u0165" + "\6\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u0238\16\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u0239\10\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u012b\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\u0165\14\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u023a\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u0165" + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\1\0\1\u023b\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" - + "\1\u023c\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u023d\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\2\6\1\u023e\3\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u023f\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0240\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0241\1\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\1\6" + "\1\u0242\1\u0243\22\6\1\0\1\5\7\6\2\0\1\123" - + "\1\u0244\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\3\6\1\u0245\13\6\1\5\1\0\13\6\1\u0246\11\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0247" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0248\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u0249\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u024a\16\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u024b\1\u024c\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u024d\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u024e\5\6\1\u024f\7\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\16\6\1\u0250\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0251\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u0252\3\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0253" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\u01cc\3\u010b\1\u01cc\11\u010b\1\u01cc\17\u010b\2\u01cc\3\u010b" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\4\6\1\241\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u01cd\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u0131\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01ce" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u01cf\2\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\11\157\1\0\117\157" + "\5\u01d0\2\157\1\u0116\2\157\1\u01d0\1\u0117\1\u01d0\7\157" + + "\2\u01d0\1\157\2\u01d0\4\157\2\u01d0\17\157\1\u01d0\1\157" + "\1\u01d0\3\157\1\u01d0\11\157\1\u01d0\17\157\2\u01d0\3\157" + + "\24\0\1\u01d1\101\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u01d2\3\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01d3" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u01d4\3\6\13\0" + "\16\6\1\u01d5\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u01d6\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\2\6" + + "\1\u01d7\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u01d8\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u01d9\3\6\1\u01da\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\2\6" + "\1\u01db\22\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u01dc\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01dd" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u01de\1\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u01df\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u01e0\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u01e1\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u01e2\7\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u01e3\1\6\1\u01e4\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u01e5\7\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u01e6\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u01e7\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u01e8\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u01e9\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u01ea\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\5\6\1\u01eb\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u01ec\3\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u01ed\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u01ee" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\241\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u01ef\2\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\241" + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\241\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u01f0\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u01f1\5\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u01f2\3\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u01df\3\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\155\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u01f3\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u01f4\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u01ce\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0148\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u01f5\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\3\6\1\u01f6\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u01f7\3\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u01f4\1\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u01f8\5\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\12\6\1\u01f9\4\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\16\6\1\u01fa\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u01fb\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u0134\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u01df" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u01fc\4\6\1\u01fd\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u01fe\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u01ff\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0200\1\6" + + "\13\0\1\6\1\u01f2\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0201\1\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u0202\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0165\1\u0203\2\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u0204\3\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0205\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u0137\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0206\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\241\14\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\241" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0207\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u0208\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\2\6\1\u0209\14\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u020a\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u020b\14\6\1\5\1\0\25\6\1\0\10\5\2\0" + "\1\5\1\u020c\2\5\1\0\1\5\1\0\2\5\3\0" + "\6\5\2\0\6\5\13\0\20\5\1\0\25\5\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u020d\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u020e\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u020f\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0210\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u0211\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u0212\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u0213\3\6\13\0\6\6\1\u0214\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\4\6\1\u0215\12\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + + "\1\u0216\3\6\1\u0217\4\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u0218\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\u0219\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u01e1\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u021a\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u021b\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + + "\1\u021c\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u021d\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u021e" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u021f\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u0220\3\6\13\0\17\6\1\5\1\0\2\6\1\u0221" + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0222" + + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0223\3\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0224\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0225" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u0226\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0227\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0228\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u0229" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u022a\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u022b\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\202\4\6\13\0" + "\5\6\1\u022c\11\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u022d\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u022e\3\6\13\0\1\6\1\u022f" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\11\6" + "\1\u0230\13\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\2\6\1\u0231\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0232" + + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u0233\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0234\2\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\u0235\16\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u0236\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\10\6\1\u0237\6\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\10\6\1\u0165" + "\6\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u0238\16\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u0239\10\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u012b\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\2\6\1\u0165\14\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u023a\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u0165" + + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\1\0\1\u023b\6\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u023c\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u023d\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\2\6\1\u023e\3\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u023f\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0240\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u0241\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\1\6" + "\1\u0242\1\u0243\22\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0244\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\3\6\1\u0245\13\6\1\5\1\0\13\6\1\u0246\11\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0247" + + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0248\3\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0249\10\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\u024a\16\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u024b\1\u024c\12\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\1\6\1\u024d\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u024e\5\6\1\u024f\7\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\16\6\1\u0250\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0251\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u0252\3\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0253" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u0254" + "\1\5\1\0\25\6\57\0\1\u0255\107\0\1\u01a0\147\0" - + "\1\u0256\100\0\1\u0257\146\0\1\u0258\107\0\1\u01a4\147\0" - + "\1\u0259\100\0\1\u025a\126\0\1\u025b\126\0\1\u025c\147\0" - + "\1\u025d\102\0\1\u025e\130\0\1\u025f\21\0\1\u0260\100\0" - + "\1\u0261\126\0\1\u0262\1\u0263\101\0\1\u0264\154\0\1\u0265" - + "\144\0\1\u0266\102\0\1\u0267\124\0\1\u0268\125\0\1\u0269" - + "\22\0\1\u026a\103\0\1\u026b\153\0\1\u026c\120\0\1\u026d" - + "\125\0\1\u026e\61\0\1\u026f\152\0\1\u0270\142\0\1\u0271" - + "\107\0\1\u01bb\147\0\1\u0272\100\0\1\u0273\70\0\3\5" + "\5\u0274\2\0\3\5\1\u0274\1\0\1\u0274\1\0\2\5" - + "\3\0\1\5\2\u0274\1\5\2\u0274\2\0\2\5\2\u0274" + "\2\5\13\0\2\5\1\u0274\1\5\1\u0274\3\5\1\u0274" - + "\7\5\1\0\1\5\1\u0274\17\5\2\u0274\2\5\1\0" + "\2\124\1\u01c1\5\u0102\2\0\3\124\1\u0102\1\0\1\u0102" - + "\1\0\2\124\3\0\1\124\2\u0102\1\124\2\u0102\2\0" + "\2\124\2\u0102\2\124\13\0\2\124\1\u0102\1\124\1\u0102" - + "\3\124\1\u0102\7\124\1\0\1\124\1\u0102\17\124\2\u0102" + "\2\124\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0275\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\6\1\u0276\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u0277\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0278\3\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0207" - + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\5\6\1\u0279\1\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u027a" + "\2\6\13\0\17\6\1\5\1\0\1\6\1\u027b\1\u027c" - + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\1\6\1\u027d\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u027e\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u027f\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u0256\100\0\1\u0257\146\0\1\u0258\107\0\1\u01a4\147\0" + "\1\u0259\100\0\1\u025a\126\0\1\u025b\126\0\1\u025c\147\0" + + "\1\u025d\102\0\1\u025e\130\0\1\u025f\21\0\1\u0260\100\0" + "\1\u0261\126\0\1\u0262\1\u0263\101\0\1\u0264\154\0\1\u0265" + + "\144\0\1\u0266\102\0\1\u0267\124\0\1\u0268\125\0\1\u0269" + "\22\0\1\u026a\103\0\1\u026b\153\0\1\u026c\120\0\1\u026d" + + "\125\0\1\u026e\61\0\1\u026f\152\0\1\u0270\142\0\1\u0271" + "\107\0\1\u01bb\147\0\1\u0272\100\0\1\u0273\70\0\3\5" + + "\5\u0274\2\0\3\5\1\u0274\1\0\1\u0274\1\0\2\5" + "\3\0\1\5\2\u0274\1\5\2\u0274\2\0\2\5\2\u0274" + + "\2\5\13\0\2\5\1\u0274\1\5\1\u0274\3\5\1\u0274" + "\7\5\1\0\1\5\1\u0274\17\5\2\u0274\2\5\1\0" + + "\2\124\1\u01c1\5\u0102\2\0\3\124\1\u0102\1\0\1\u0102" + "\1\0\2\124\3\0\1\124\2\u0102\1\124\2\u0102\2\0" + + "\2\124\2\u0102\2\124\13\0\2\124\1\u0102\1\124\1\u0102" + "\3\124\1\u0102\7\124\1\0\1\124\1\u0102\17\124\2\u0102" + + "\2\124\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0275\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\1\6\1\u0276\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0277\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0278\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0207" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\5\6\1\u0279\1\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u027a" + "\2\6\13\0\17\6\1\5\1\0\1\6\1\u027b\1\u027c" + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u027d\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u027e\2\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u027f\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0177\2\6\13\0\6\6\1\u0280\10\6\1\5" + "\1\0\25\6\1\0\3\u010b\5\u0281\1\145\1\0\3\u010b" + "\1\u0281\1\u010b\1\u0281\7\u010b\2\u0281\1\u010b\2\u0281\4\u010b" - + "\2\u0281\17\u010b\1\u0281\1\u010b\1\u0281\3\u010b\1\u0281\11\u010b" - + "\1\u0281\17\u010b\2\u0281\3\u010b\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\12\6\1\u0137\4\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u01df" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0282\1\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\3\157\5\u0283\2\157" - + "\1\u0116\2\157\1\u0283\1\u0117\1\u0283\7\157\2\u0283\1\157" - + "\2\u0283\4\157\2\u0283\17\157\1\u0283\1\157\1\u0283\3\157" + + "\2\u0281\17\u010b\1\u0281\1\u010b\1\u0281\3\u010b\1\u0281\11\u010b" + "\1\u0281\17\u010b\2\u0281\3\u010b\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\12\6\1\u0137\4\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u01df" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u0282\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\3\157\5\u0283\2\157" + + "\1\u0116\2\157\1\u0283\1\u0117\1\u0283\7\157\2\u0283\1\157" + "\2\u0283\4\157\2\u0283\17\157\1\u0283\1\157\1\u0283\3\157" + "\1\u0283\11\157\1\u0283\17\157\2\u0283\3\157\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\2\6\1\u0221\22\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0284\1\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\12\6\1\u0285\12\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0286\1\u0287" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\15\6\1\u0288" - + "\1\6\1\5\1\0\4\6\1\u0289\20\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u028a\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\21\6" - + "\1\u028b\3\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u028c\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u028d\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u01e1\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\1\6\1\u028e" + "\23\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\16\6\1\241\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u028f\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\u0207\16\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0165" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0290\2\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u0291\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" - + "\1\u0292\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\4\6\1\u0293\1\6\2\0\6\6\13\0\10\6\1\u0294" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\2\6\1\u0221\22\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\4\6\1\u0284\1\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\12\6\1\u0285\12\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0286\1\u0287" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\15\6\1\u0288" + + "\1\6\1\5\1\0\4\6\1\u0289\20\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u028a\3\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\21\6" + + "\1\u028b\3\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u028c\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u028d\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u01e1\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\1\6\1\u028e" + "\23\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\16\6\1\241\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u028f\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\u0207\16\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0165" + + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0290\2\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0291\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u0292\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\4\6\1\u0293\1\6\2\0\6\6\13\0\10\6\1\u0294" + "\4\6\1\u0295\1\6\1\5\1\0\4\6\1\u0296\5\6" + "\1\u0297\1\u0298\1\6\1\u0299\1\6\1\u029a\5\6\1\0" - + "\1\5\5\6\1\u029b\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u029c\3\6\13\0\17\6\1\5\1\0\2\6\1\u01db" + "\6\6\1\u029d\13\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0165\4\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u029e\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u029f\13\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u02a0\2\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u02a1\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\5\6\1\u022c\11\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u02a2\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\11\6\1\u02a3\5\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u02a4\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\6\1\u02a5\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u02a6\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01fd\4\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\4\6\1\u02a7\12\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u02a8\10\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\u02a9\16\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u02aa" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0125\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u02ab\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u02ac\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u02ad\2\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\241" - + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u02ae\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\241\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02af\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u02b0\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u02b1\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u02b2\10\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0165\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\4\6\1\u02b3\6\6\1\u02b4\11\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\4\6\1\u02b5\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u02b6\10\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\250" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u02b7\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u02b8\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u01e6\1\u02b7\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u02b9\2\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u02ba" - + "\15\6\1\5\1\0\25\6\1\0\3\5\5\u02bb\2\0" + "\3\5\1\u02bb\1\0\1\u02bb\1\0\2\5\3\0\1\5" - + "\2\u02bb\1\5\2\u02bb\2\0\2\5\2\u02bb\2\5\13\0" + "\2\5\1\u02bb\1\5\1\u02bb\3\5\1\u02bb\7\5\1\0" - + "\1\5\1\u02bb\17\5\2\u02bb\2\5\1\0\1\5\5\6" + "\1\u02bc\1\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u02bd\4\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\14\6\1\u02be\2\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u02bf" + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u02c0\4\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u02c1\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u02c2" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u02c3\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\u02c4\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u02c5" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u02c6\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u02c7\10\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02c8\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u02c9\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u02ca\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u02cb" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u02cc\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u02cd\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u02ce" + "\1\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u02cf" - + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u02d0\4\6\13\0" + "\13\6\1\u02cc\3\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\u02d1\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u02d2\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u02d3\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\5\6" - + "\1\u02d4\11\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u02d5\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u02d6\7\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u02d7" - + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u02d8\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u02d9\15\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\13\6\1\u02da\3\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u02db\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u02dc\12\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\2\6\1\u01db" + "\6\6\1\u029d\13\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u02dd\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\11\6\1\u0207\5\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u02de\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u02df\4\6\13\0\17\6" - + "\1\5\1\0\23\6\1\u02e0\1\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\12\6\1\u02e1\12\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\3\6\1\u02e2\13\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u02e3" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u02e4\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u02e5\15\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u02e6\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0207\5\6" + "\13\0\17\6\1\5\1\0\2\6\1\u01db\6\6\1\u029d" - + "\13\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u02e7" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u02e8\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\34\0\1\u02e9\72\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u02ea\10\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\15\6\1\u02eb" + "\7\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u02ec\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u02ed\5\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\13\6\1\u02ee\3\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u02ef\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\u02f0\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u02f1\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u02f2\12\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u02f3" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\2\6\1\u02f4\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u02f5\4\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u02f6\12\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u02f7\15\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\u02f8\3\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u02f9\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u02fa\3\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u02fb\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u02fc\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u02fd\10\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u02fe\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u02ff\14\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0300\15\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u0301\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\7\6\1\u0302\15\6\25\0" - + "\1\u0303\144\0\1\u01a0\12\0\1\u0255\50\0\1\u0257\1\u0304" - + "\5\u0257\1\u0304\2\0\3\u0257\1\0\1\u0257\1\0\1\u0304" - + "\1\u0257\1\0\1\u0257\1\u0304\6\u0257\2\u0304\6\u0257\1\0" - + "\2\u0304\1\0\1\u0304\2\0\4\u0304\17\u0257\2\u0304\25\u0257" - + "\25\0\1\u0305\144\0\1\u01a4\12\0\1\u0258\50\0\1\u025a" - + "\1\u0306\5\u025a\1\u0306\2\0\3\u025a\1\0\1\u025a\1\0" - + "\1\u0306\1\u025a\1\0\1\u025a\1\u0306\6\u025a\2\u0306\6\u025a" - + "\1\0\2\u0306\1\0\1\u0306\2\0\4\u0306\17\u025a\2\u0306" - + "\25\u025a\61\0\1\u0307\105\0\1\u0308\17\0\1\u0309\125\0" - + "\1\u0263\60\0\1\u030a\200\0\1\u030b\77\0\1\u030c\1\0" - + "\1\u030d\142\0\1\u030e\133\0\1\u030f\123\0\1\u0310\122\0" - + "\1\u0311\104\0\1\u0312\127\0\1\u0313\124\0\1\u0314\125\0" - + "\1\u0315\125\0\1\u0316\130\0\1\u0317\76\0\1\u0318\21\0" - + "\1\u0319\152\0\1\u031a\123\0\1\u031b\123\0\1\u031c\110\0" - + "\1\u031d\107\0\1\u031e\144\0\1\u01bb\12\0\1\u0271\50\0" - + "\1\u0273\1\u031f\5\u0273\1\u031f\2\0\3\u0273\1\0\1\u0273" - + "\1\0\1\u031f\1\u0273\1\0\1\u0273\1\u031f\6\u0273\2\u031f" - + "\6\u0273\1\0\2\u031f\1\0\1\u031f\2\0\4\u031f\17\u0273" + + "\1\5\5\6\1\u029b\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u029c\3\6\13\0\17\6\1\5\1\0\2\6\1\u01db" + + "\6\6\1\u029d\13\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0165\4\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u029e\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u029f\13\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u02a0\2\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u02a1\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\5\6\1\u022c\11\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\5\6\1\u02a2\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\11\6\1\u02a3\5\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\u02a4\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u02a5\1\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u02a6\4\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u01fd\4\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u02a7\12\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u02a8\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\u02a9\16\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u02aa" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u0125\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u02ab\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\3\6\1\u02ac\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u02ad\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\241" + + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u02ae\10\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\241\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02af\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u02b0\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u02b1\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u02b2\10\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0165\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\4\6\1\u02b3\6\6\1\u02b4\11\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\4\6\1\u02b5\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u02b6\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\250" + + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u02b7\2\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u02b8\10\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u01e6\1\u02b7\2\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u02b9\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u02ba" + "\15\6\1\5\1\0\25\6\1\0\3\5\5\u02bb\2\0" + + "\3\5\1\u02bb\1\0\1\u02bb\1\0\2\5\3\0\1\5" + "\2\u02bb\1\5\2\u02bb\2\0\2\5\2\u02bb\2\5\13\0" + + "\2\5\1\u02bb\1\5\1\u02bb\3\5\1\u02bb\7\5\1\0" + "\1\5\1\u02bb\17\5\2\u02bb\2\5\1\0\1\5\5\6" + + "\1\u02bc\1\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u02bd\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\14\6\1\u02be\2\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u02bf" + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u02c0\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u02c1\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u02c2" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u02c3\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\u02c4\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u02c5" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u02c6\2\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u02c7\10\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02c8\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u02c9\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u02ca\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u02cb" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u02cc\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\4\6\1\u02cd\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u02ce" + + "\1\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u02cf" + + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u02d0\4\6\13\0" + + "\13\6\1\u02cc\3\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u02d1\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u02d2\2\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u02d3\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\5\6" + "\1\u02d4\11\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u02d5\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u02d6\7\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u02d7" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u02d8\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u02d9\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\13\6\1\u02da\3\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u02db\5\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u02dc\12\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\2\6\1\u01db" + + "\6\6\1\u029d\13\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u02dd\2\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\11\6\1\u0207\5\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u02de\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u02df\4\6\13\0\17\6" + "\1\5\1\0\23\6\1\u02e0\1\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\12\6\1\u02e1\12\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\3\6\1\u02e2\13\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u02e3" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u02e4\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u02e5\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u02e6\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0207\5\6" + + "\13\0\17\6\1\5\1\0\2\6\1\u01db\6\6\1\u029d" + "\13\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u02e7" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u02e8\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\34\0\1\u02e9\72\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u02ea\10\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\15\6\1\u02eb" + + "\7\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u02ec\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u02ed\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\13\6\1\u02ee\3\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u02ef\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u02f0\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u02f1\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\4\6\1\u02f2\12\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u02f3" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\2\6\1\u02f4\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u02f5\4\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u02f6\12\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u02f7\15\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\u02f8\3\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u02f9\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u02fa\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u02fb\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u02fc\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u02fd\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u02fe\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u02ff\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0300\15\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0301\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\7\6\1\u0302\15\6\25\0" + + "\1\u0303\144\0\1\u01a0\12\0\1\u0255\50\0\1\u0257\1\u0304" + "\5\u0257\1\u0304\2\0\3\u0257\1\0\1\u0257\1\0\1\u0304" + + "\1\u0257\1\0\1\u0257\1\u0304\6\u0257\2\u0304\6\u0257\1\0" + "\2\u0304\1\0\1\u0304\2\0\4\u0304\17\u0257\2\u0304\25\u0257" + + "\25\0\1\u0305\144\0\1\u01a4\12\0\1\u0258\50\0\1\u025a" + "\1\u0306\5\u025a\1\u0306\2\0\3\u025a\1\0\1\u025a\1\0" + + "\1\u0306\1\u025a\1\0\1\u025a\1\u0306\6\u025a\2\u0306\6\u025a" + "\1\0\2\u0306\1\0\1\u0306\2\0\4\u0306\17\u025a\2\u0306" + + "\25\u025a\61\0\1\u0307\105\0\1\u0308\17\0\1\u0309\125\0" + "\1\u0263\60\0\1\u030a\200\0\1\u030b\77\0\1\u030c\1\0" + + "\1\u030d\142\0\1\u030e\133\0\1\u030f\123\0\1\u0310\122\0" + "\1\u0311\104\0\1\u0312\127\0\1\u0313\124\0\1\u0314\125\0" + + "\1\u0315\125\0\1\u0316\130\0\1\u0317\76\0\1\u0318\21\0" + "\1\u0319\152\0\1\u031a\123\0\1\u031b\123\0\1\u031c\110\0" + + "\1\u031d\107\0\1\u031e\144\0\1\u01bb\12\0\1\u0271\50\0" + "\1\u0273\1\u031f\5\u0273\1\u031f\2\0\3\u0273\1\0\1\u0273" + + "\1\0\1\u031f\1\u0273\1\0\1\u0273\1\u031f\6\u0273\2\u031f" + "\6\u0273\1\0\2\u031f\1\0\1\u031f\2\0\4\u031f\17\u0273" + "\2\u031f\25\u0273\1\0\3\5\5\u0320\2\0\3\5\1\u0320" + "\1\0\1\u0320\1\0\2\5\3\0\1\5\2\u0320\1\5" + "\2\u0320\2\0\2\5\2\u0320\2\5\13\0\2\5\1\u0320" + "\1\5\1\u0320\3\5\1\u0320\7\5\1\0\1\5\1\u0320" - + "\17\5\2\u0320\2\5\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u0321\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\2\6\1\u0322\14\6\1\5\1\0\25\6\1\0" - + "\1\5\5\6\1\u0323\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0324\3\6\1\u0325" - + "\1\6\2\0\6\6\13\0\17\6\1\5\1\0\10\6" + "\1\u0326\1\6\1\u0297\12\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u02b7\2\6\13\0\17\6\1\5" - + "\1\0\12\6\1\u0327\12\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u0328\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0329\12\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u032a" - + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u032b\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u0202\1\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u032c\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u032d\12\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u02cc\1\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\3\u010b\5\u032e\1\145" + + "\17\5\2\u0320\2\5\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u0321\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\2\6\1\u0322\14\6\1\5\1\0\25\6\1\0" + + "\1\5\5\6\1\u0323\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0324\3\6\1\u0325" + "\1\6\2\0\6\6\13\0\17\6\1\5\1\0\10\6" + + "\1\u0326\1\6\1\u0297\12\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u02b7\2\6\13\0\17\6\1\5" + + "\1\0\12\6\1\u0327\12\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u0328\15\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0329\12\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u032a" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u032b\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u0202\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u032c\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u032d\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u02cc\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\3\u010b\5\u032e\1\145" + "\1\0\3\u010b\1\u032e\1\u010b\1\u032e\7\u010b\2\u032e\1\u010b" + "\2\u032e\4\u010b\2\u032e\17\u010b\1\u032e\1\u010b\1\u032e\3\u010b" + "\1\u032e\11\u010b\1\u032e\17\u010b\2\u032e\3\u010b\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u032f\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\3\157\5\u0330\2\157\1\u0116" - + "\2\157\1\u0330\1\u0117\1\u0330\7\157\2\u0330\1\157\2\u0330" - + "\4\157\2\u0330\17\157\1\u0330\1\157\1\u0330\3\157\1\u0330" + + "\2\157\1\u0330\1\u0117\1\u0330\7\157\2\u0330\1\157\2\u0330" + "\4\157\2\u0330\17\157\1\u0330\1\157\1\u0330\3\157\1\u0330" + "\11\157\1\u0330\17\157\2\u0330\3\157\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u0331\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0332" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" - + "\1\u0333\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0334\3\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0335\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0336" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u019c\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\22\6" - + "\1\u0337\2\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0338\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0339\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u033a\4\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u033b\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u033c" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u02ff\4\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u033d\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u033e\10\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u033f" - + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u0340\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u0341\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u0342\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\u0343\2\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0344\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u0345\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0346\15\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0347\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0348\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\1\6\1\u0349\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u034a" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\2\6\1\u034b\22\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\1\u034c\5\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\13\6\1\u034d\11\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u034e\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u034f" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" - + "\1\u0134\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0350\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0351\5\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\241\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u0352\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u01fd\1\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u0353\12\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0137\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0137\3\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u0354\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u0355" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u0356\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\7\6\1\u0357\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0358\12\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0359\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u035a\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u01d2\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\1\6\1\u035b\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\2\6\1\u027d\3\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u035c\7\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u035d\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u035e\7\6\1\5\1\0\25\6\1\0" - + "\3\5\5\u035f\2\0\3\5\1\u035f\1\0\1\u035f\1\0" + "\2\5\3\0\1\5\2\u035f\1\5\2\u035f\2\0\2\5" - + "\2\u035f\2\5\13\0\2\5\1\u035f\1\5\1\u035f\3\5" + "\1\u035f\7\5\1\0\1\5\1\u035f\17\5\2\u035f\2\5" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0360" - + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u0361\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\1\u0362\5\6\2\0\5\6\1\u0165\13\0\10\6\1\u0363" - + "\6\6\1\5\1\0\2\6\1\u0364\1\6\1\u0365\20\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u0366\7\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0367\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\2\6\1\u0207\14\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u0368\7\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" - + "\1\u0369\3\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u036a\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\5\6\1\u036b\5\6" - + "\1\u036c\11\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u036d\1\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u036e\12\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u036f" - + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0370\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u022d\14\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0371" - + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u01e6\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0372\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0373\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u0165\7\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u0374\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0375" - + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0376" + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u0377\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u0378\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\13\6\1\u0379\11\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\2\6\1\u037a\6\6\1\u037b\13\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u037c" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u037d\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u027d" - + "\3\6\2\0\1\u012b\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u037e\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u037f\2\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0380\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0381\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\2\6\1\u0382\14\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u0383\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\5\6\1\u0384\17\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u0385\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0386\15\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" - + "\1\u0387\13\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0388\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\4\6\1\u0389\12\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\11\6\1\u038a\5\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u038b\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u038c\2\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u038d\2\6\13\0\17\6\1\5\1\0\25\6" + "\15\0\1\u038e\111\0\1\5\7\6\2\0\1\123\1\6" - + "\1\u038f\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u0390\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u0391\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0392\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0393\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0394" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0395\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u0396\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\u0397\16\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0398\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\11\6\1\u0399\13\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\12\6\1\u0209\4\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u039a\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u039b\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u039c\2\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u039d\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u039e\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\2\6\1\u039f\14\6" - + "\1\u029a\5\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u03a0\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u03a1\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0202\3\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\15\6\1\u0295\1\6\1\5\1\0" + "\4\6\1\u0296\6\6\1\u0298\3\6\1\u029a\5\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03a2\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u0165\4\6\13\0\17\6" + "\1\5\1\0\1\6\1\u03a3\23\6\1\0\1\5\7\6" + + "\6\6\2\0\2\6\1\u0331\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0332" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u0333\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0334\3\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0335\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0336" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u019c\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\22\6" + "\1\u0337\2\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0338\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0339\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u033a\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\3\6\1\u033b\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u033c" + + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u02ff\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u033d\2\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u033e\10\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u033f" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0340\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\1\6\1\u0341\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u0342\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\u0343\2\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u0344\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u0345\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u0346\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0347\4\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0348\2\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u0349\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u034a" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\2\6\1\u034b\22\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\1\u034c\5\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\13\6\1\u034d\11\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u034e\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u034f" + + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u0134\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u0350\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\u0351\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\241\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0352\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u01fd\1\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0353\12\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0137\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0137\3\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\1\6\1\u0354\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u0355" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u0356\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\7\6\1\u0357\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\4\6\1\u0358\12\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0359\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u035a\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u01d2\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u035b\15\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\2\6\1\u027d\3\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u035c\7\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u035d\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u035e\7\6\1\5\1\0\25\6\1\0" + "\3\5\5\u035f\2\0\3\5\1\u035f\1\0\1\u035f\1\0" + + "\2\5\3\0\1\5\2\u035f\1\5\2\u035f\2\0\2\5" + "\2\u035f\2\5\13\0\2\5\1\u035f\1\5\1\u035f\3\5" + + "\1\u035f\7\5\1\0\1\5\1\u035f\17\5\2\u035f\2\5" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0360" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u0361\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\1\u0362\5\6\2\0\5\6\1\u0165\13\0\10\6\1\u0363" + "\6\6\1\5\1\0\2\6\1\u0364\1\6\1\u0365\20\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u0366\7\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0367\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\2\6\1\u0207\14\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u0368\7\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" + "\1\u0369\3\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u036a\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\5\6\1\u036b\5\6" + "\1\u036c\11\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\4\6\1\u036d\1\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\u036e\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u036f" + + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0370\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u022d\14\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0371" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u01e6\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0372\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0373\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u0165\7\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u0374\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0375" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0376" + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0377\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u0378\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\13\6\1\u0379\11\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\2\6\1\u037a\6\6\1\u037b\13\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u037c" + + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u037d\10\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u027d" + "\3\6\2\0\1\u012b\5\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u037e\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u037f\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0380\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0381\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\2\6\1\u0382\14\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u0383\1\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\5\6\1\u0384\17\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\1\6\1\u0385\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u0386\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + + "\1\u0387\13\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0388\10\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\4\6\1\u0389\12\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\11\6\1\u038a\5\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u038b\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u038c\2\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u038d\2\6\13\0\17\6\1\5\1\0\25\6" + "\15\0\1\u038e\111\0\1\5\7\6\2\0\1\123\1\6" + + "\1\u038f\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0390\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u0391\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\6\6\1\u0392\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u0393\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0394" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0395\5\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u0396\4\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\u0397\16\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0398\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\11\6\1\u0399\13\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\12\6\1\u0209\4\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u039a\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u039b\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u039c\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u039d\4\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u039e\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\2\6\1\u039f\14\6" + + "\1\u029a\5\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u03a0\10\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u03a1\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0202\3\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\15\6\1\u0295\1\6\1\5\1\0" + "\4\6\1\u0296\6\6\1\u0298\3\6\1\u029a\5\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03a2\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u0165\4\6\13\0\17\6" + "\1\5\1\0\1\6\1\u03a3\23\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u03a4\2\6\13\0\17\6" - + "\1\5\1\0\25\6\25\0\1\u0257\125\0\1\u025a\140\0" - + "\1\u03a5\127\0\1\u03a6\154\0\1\u03a7\74\0\1\u03a8\150\0" - + "\1\u03a9\125\0\1\u03aa\56\0\1\u03ab\172\0\1\u03ac\106\0" - + "\1\u03ad\124\0\1\u0263\127\0\1\u03ae\123\0\1\u03af\153\0" - + "\1\u0263\131\0\1\u03b0\72\0\1\u03b1\152\0\1\u0263\126\0" - + "\1\u03b2\135\0\1\u03b3\70\0\1\u03b4\161\0\1\u03b5\71\0" + + "\1\5\1\0\25\6\25\0\1\u0257\125\0\1\u025a\140\0" + "\1\u03a5\127\0\1\u03a6\154\0\1\u03a7\74\0\1\u03a8\150\0" + + "\1\u03a9\125\0\1\u03aa\56\0\1\u03ab\172\0\1\u03ac\106\0" + "\1\u03ad\124\0\1\u0263\127\0\1\u03ae\123\0\1\u03af\153\0" + + "\1\u0263\131\0\1\u03b0\72\0\1\u03b1\152\0\1\u0263\126\0" + "\1\u03b2\135\0\1\u03b3\70\0\1\u03b4\161\0\1\u03b5\71\0" + "\1\u03b3\125\0\1\u03b6\100\0\1\u031b\136\0\1\u0273\101\0" + "\3\5\5\6\2\0\3\5\1\6\1\0\1\6\1\0" - + "\2\5\3\0\1\5\2\6\1\5\2\6\2\0\2\5" + "\2\6\2\5\13\0\2\5\1\6\1\5\1\6\3\5" - + "\1\6\7\5\1\0\1\5\1\6\17\5\2\6\2\5" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u03b7\12\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u03b8\2\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u03b9\2\6\13\0\6\6\1\u03ba" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u0340\15\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u03bb\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u03bc" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u03bd" - + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u03be\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u03bf\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03c0\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\3\6\1\u03c1\21\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u03c2\4\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u03c3" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\3\u010b" + "\5\144\1\145\1\0\3\u010b\1\144\1\u010b\1\144\7\u010b" - + "\2\144\1\u010b\2\144\4\u010b\2\144\17\u010b\1\144\1\u010b" + + "\2\5\3\0\1\5\2\6\1\5\2\6\2\0\2\5" + "\2\6\2\5\13\0\2\5\1\6\1\5\1\6\3\5" + "\1\6\7\5\1\0\1\5\1\6\17\5\2\6\2\5" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u03b7\12\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u03b8\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u03b9\2\6\13\0\6\6\1\u03ba" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u0340\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u03bb\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u03bc" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u03bd" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u03be\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u03bf\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03c0\4\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\3\6\1\u03c1\21\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u03c2\4\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u03c3" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\3\u010b" + + "\5\144\1\145\1\0\3\u010b\1\144\1\u010b\1\144\7\u010b" + "\2\144\1\u010b\2\144\4\u010b\2\144\17\u010b\1\144\1\u010b" + "\1\144\3\u010b\1\144\11\u010b\1\144\17\u010b\2\144\3\u010b" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\14\6" + "\1\241\2\6\1\5\1\0\25\6\1\0\3\157\5\16" + "\2\157\1\u0116\2\157\1\16\1\u0117\1\16\7\157\2\16" + "\1\157\2\16\4\157\2\16\17\157\1\16\1\157\1\16" + "\3\157\1\16\11\157\1\16\17\157\2\16\3\157\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\1\0\1\u03c4\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u03c5\7\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0362\5\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\7\6\1\u03c6\15\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u038c" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u03c7\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u03c8\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u03c9" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u03ca\4\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0165\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03cb\4\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u01df\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\4\6\1\u03cc\1\6\2\0\1\u03cd\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u03ce\7\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u03cf\1\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u03d0\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u03d1\2\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\3\6\1\u03d2\13\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u03d3\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0341\5\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u03d4\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u03cf\10\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u03d5\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u03d6\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\3\6\1\u0165\13\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u03d7\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u03d8\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u03d9\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u03da\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u03db\3\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03dc\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u01fd\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\2\6\1\u03dd\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u03de\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u03df\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\1\u0137\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u03e0" - + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u03e1" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u03e2\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u03e3\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u03e4\13\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0359\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u03e5\1\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u03e6\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" - + "\1\u03e7\12\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\1\6\3\0\6\6\1\0\1\u03c4\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\7\6\1\u03c5\7\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0362\5\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\7\6\1\u03c6\15\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u038c" + + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u03c7\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u03c8\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\1\0\1\u03c9" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u03ca\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\1\6\1\u0165\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03cb\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u01df\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\4\6\1\u03cc\1\6\2\0\1\u03cd\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u03ce\7\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\4\6\1\u03cf\1\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + + "\1\u03d0\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u03d1\2\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\3\6\1\u03d2\13\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u03d3\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0341\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u03d4\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u03cf\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u03d5\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u03d6\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\3\6\1\u0165\13\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u03d7\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\6\6\1\u03d8\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u03d9\5\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u03da\10\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u03db\3\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03dc\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u01fd\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\2\6\1\u03dd\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u03de\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u03df\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0137\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u03e0" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u03e1" + + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u03e2\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u03e3\2\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u03e4\13\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0359\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\1\6\1\u03e5\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u03e6\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + "\1\u03e7\12\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\1\6\1\u03e8\23\6\1\0\3\5\5\u03e9\2\0\3\5" + "\1\u03e9\1\0\1\u03e9\1\0\2\5\3\0\1\5\2\u03e9" + "\1\5\2\u03e9\2\0\2\5\2\u03e9\2\5\13\0\2\5" + "\1\u03e9\1\5\1\u03e9\3\5\1\u03e9\7\5\1\0\1\5" + "\1\u03e9\17\5\2\u03e9\2\5\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u03ea\15\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\4\6\1\u03eb\12\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u03ec\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\244\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u03ed\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u03ee" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03ef\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u03f0\10\6" + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u03f1\1\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\5\6\1\u03f2\17\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\6" - + "\1\u03f3\4\6\2\0\6\6\13\0\15\6\1\u0295\1\6" + "\1\5\1\0\4\6\1\u0365\1\u03f2\11\6\1\u029a\4\6" - + "\1\u03f4\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\11\6\1\u03f5\13\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03f6\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u03f7\4\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u03f8\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u03f9\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u03fa\5\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u03fb\12\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03fc\4\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\5\6\1\u03fd\17\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u03fe" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u03ff\2\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0400" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" + "\1\u0401\7\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0402\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0403\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u0404\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0405\5\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\6\6\1\u0406\10\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0407\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0408\14\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\7\6\1\u0409\7\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u040a\1\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u040b\5\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\3\6\1\u03d6\13\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\1\u040c\5\6" + "\1\0\1\u040d\6\6\13\0\10\6\1\u040e\6\6\1\5" - + "\1\0\16\6\1\u040f\6\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\14\6\1\u0410\2\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0411\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0202\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u0412\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u0413\15\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" - + "\1\u0414\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u0415" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\1\6\1\u0416\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u0417\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\5\6\1\u0418\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u0419\1\6\13\0\17\6\1\5" - + "\1\0\25\6\37\0\1\u041a\67\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\13\6\1\u041b\3\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u041c\10\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u041d\1\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\12\6\1\u041e" + "\4\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\2\6\1\u041f\3\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u0420\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0421\10\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0422\10\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" - + "\1\u0423\1\u0424\2\0\6\6\13\0\17\6\1\5\1\0" + "\11\6\1\u0425\13\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\2\6\1\u0426" - + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0427\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u03ea\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u03eb\12\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u03ec\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\244\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u03ed\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u03ee" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u03ef\3\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u03f0\10\6" + + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u03f1\1\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\5\6\1\u03f2\17\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\6" + "\1\u03f3\4\6\2\0\6\6\13\0\15\6\1\u0295\1\6" + + "\1\5\1\0\4\6\1\u0365\1\u03f2\11\6\1\u029a\4\6" + "\1\u03f4\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\11\6\1\u03f5\13\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u03f6\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\12\6\1\u03f7\4\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u03f8\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u03f9\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u03fa\5\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u03fb\12\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u03fc\4\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\5\6\1\u03fd\17\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u03fe" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u03ff\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0400" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\7\6" + "\1\u0401\7\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u0402\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u0403\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u0404\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u0405\5\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u0406\10\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0407\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u0408\14\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u0409\7\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u040a\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u040b\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\3\6\1\u03d6\13\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\1\u040c\5\6" + + "\1\0\1\u040d\6\6\13\0\10\6\1\u040e\6\6\1\5" + "\1\0\16\6\1\u040f\6\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\14\6\1\u0410\2\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u0411\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0202\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0412\5\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u0413\15\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u0414\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\16\6\1\u0415" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\1\6\1\u0416\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0417\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\5\6\1\u0418\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\4\6\1\u0419\1\6\13\0\17\6\1\5" + "\1\0\25\6\37\0\1\u041a\67\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\13\6\1\u041b\3\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u041c\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\4\6\1\u041d\1\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\12\6\1\u041e" + + "\4\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\2\6\1\u041f\3\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u0420\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0421\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0422\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\4\6" + "\1\u0423\1\u0424\2\0\6\6\13\0\17\6\1\5\1\0" + "\11\6\1\u0425\13\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\2\6\1\u0426" + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0427\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0165\13\0" + "\17\6\1\5\1\0\2\6\1\u0428\1\6\1\u0429\6\6" - + "\1\u042a\11\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u042b\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u042c\12\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u042d\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u042e\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u042f\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0430\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u0431\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u0432\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\u0433\3\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u0434\13\0\17\6\1\5\1\0" + "\25\6\66\0\1\u0435\121\0\1\u0436\107\0\1\u0263\76\0" - + "\1\u0263\153\0\1\u0310\121\0\1\u0317\150\0\1\u0310\103\0" - + "\1\u0263\130\0\1\u0437\123\0\1\u0438\150\0\1\u0439\122\0" - + "\1\u043a\61\0\1\u0435\171\0\1\u03a8\45\0\44\u03b3\1\u0263" + + "\1\u042a\11\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u042b\2\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u042c\12\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u042d\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u042e\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u042f\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u0430\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u0431\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\6\6\1\u0432\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\u0433\3\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u0434\13\0\17\6\1\5\1\0" + + "\25\6\66\0\1\u0435\121\0\1\u0436\107\0\1\u0263\76\0" + "\1\u0263\153\0\1\u0310\121\0\1\u0317\150\0\1\u0310\103\0" + + "\1\u0263\130\0\1\u0437\123\0\1\u0438\150\0\1\u0439\122\0" + "\1\u043a\61\0\1\u0435\171\0\1\u03a8\45\0\44\u03b3\1\u0263" + "\61\u03b3\37\0\1\u043b\146\0\1\u043c\104\0\1\u043d\66\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\14\6" + "\1\u0165\2\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u043e\4\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u043f\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0440" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0441\4\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u0150\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0442\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\12\6" - + "\1\u0443\4\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0444\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0445\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u0446\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u0447\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0448\10\6\1\5" - + "\1\0\25\6\7\0\1\u0449\17\0\1\u044a\1\u044b\2\0" + "\1\u044c\73\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u044d\3\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u044e\2\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u044f\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0450\4\6\13\0\17\6\1\5\1\0" - + "\25\6\34\0\1\u0451\33\0\1\u0452\36\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u0453\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0454\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u0455\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0456\1\u0457" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0458\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u02cc\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0459\12\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" - + "\1\u02cc\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u045a\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u045b" + "\1\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\7\6\1\u045c\7\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\u045d\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u045e\5\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u045f" - + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0460" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0461\2\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u0462\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\14\6\1\u0463\10\6\1\0\1\5\7\6" - + "\2\0\1\123\1\6\1\u01fd\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\3\6\1\241\13\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0464" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0156\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u0137\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0465\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0466" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u0467\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\u0468\2\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u0469\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\5\6\1\u01eb\2\0\6\6\13\0" + "\17\6\1\5\1\0\15\6\1\u0299\7\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u046a\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u046b\12\6\1\5" + "\1\0\25\6\1\0\3\5\5\256\2\0\3\5\1\256" - + "\1\0\1\256\1\0\2\5\3\0\1\5\2\256\1\5" + "\2\256\2\0\2\5\2\256\2\5\13\0\2\5\1\256" - + "\1\5\1\256\3\5\1\256\7\5\1\0\1\5\1\256" + "\17\5\2\256\2\5\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u01c6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u046c\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u01e1\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u046d\15\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\2\6\1\u0173\14\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u046e\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u046f\15\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\1\6\1\u0470\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u0471\15\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\1\u0472\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u0473\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0474" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0475\2\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u0476\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\1\u0477\24\6\1\0" - + "\1\5\5\6\1\u0478\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0324\5\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0479" + "\2\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u047a\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u047b\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u047c\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u047d\1\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u038c\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\3\6\1\u047e\13\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u047f" - + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0480" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0481\2\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0482\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0483\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0484\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0485\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\5\6\1\u0486\1\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\13\6\1\u0487\1\6\1\u0488" - + "\7\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0489\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\14\6" + "\1\u0165\2\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\6\1\u043e\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u043f\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0440" + + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0441\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u0150\1\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0442\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\12\6" + "\1\u0443\4\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0444\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0445\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u0446\2\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u0447\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\6\6\1\u0448\10\6\1\5" + "\1\0\25\6\7\0\1\u0449\17\0\1\u044a\1\u044b\2\0" + + "\1\u044c\73\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\2\6\1\u044d\3\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u044e\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u044f\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u0450\4\6\13\0\17\6\1\5\1\0" + "\25\6\34\0\1\u0451\33\0\1\u0452\36\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0453\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0454\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u0455\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0456\1\u0457" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u0458\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u02cc\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\4\6\1\u0459\12\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u02cc\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u045a\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u045b" + "\1\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u045c\7\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u045d\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u045e\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u045f" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0460" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u0461\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\5\6\1\u0462\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\14\6\1\u0463\10\6\1\0\1\5\7\6" + "\2\0\1\123\1\6\1\u01fd\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\3\6\1\241\13\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0464" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0156\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u0137\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0465\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0466" + + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u0467\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\u0468\2\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + + "\1\u0469\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\5\6\1\u01eb\2\0\6\6\13\0" + + "\17\6\1\5\1\0\15\6\1\u0299\7\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u046a\3\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u046b\12\6\1\5" + + "\1\0\25\6\1\0\3\5\5\256\2\0\3\5\1\256" + "\1\0\1\256\1\0\2\5\3\0\1\5\2\256\1\5" + "\2\256\2\0\2\5\2\256\2\5\13\0\2\5\1\256" + + "\1\5\1\256\3\5\1\256\7\5\1\0\1\5\1\256" + "\17\5\2\256\2\5\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u01c6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u046c\5\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u01e1\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u046d\15\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\u0173\14\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u046e\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u046f\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0470\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u0471\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u0472\2\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u0473\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0474" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u0475\2\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0476\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\1\u0477\24\6\1\0" + + "\1\5\5\6\1\u0478\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\1\u0324\5\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\14\6\1\u0479" + "\2\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u047a\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u047b\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u047c\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\4\6\1\u047d\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\4\6\1\u038c\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\3\6\1\u047e\13\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u047f" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0480" + + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0481\2\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0482\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0483\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0484\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0485\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\5\6\1\u0486\1\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\13\6\1\u0487\1\6\1\u0488" + "\7\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0489\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\4\6\1\u048a\1\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\1\6\1\u048b\1\u048c\2\6" - + "\1\u048d\3\6\1\u048e\13\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\14\6\1\u0254\2\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u048f\15\6\1\5\1\0\25\6" + + "\1\u048d\3\6\1\u048e\13\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u0254\2\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u048f\15\6\1\5\1\0\25\6" + "\103\0\1\u0490\3\0\1\u0491\17\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u03f5\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u0492\4\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\1\u0493\5\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u0494\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\15\6\1\u0495\7\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0496" - + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\2\6\1\u0497\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0498\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u0499\1\u0418" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\202\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\11\6\1\u049a\13\6\40\0\1\u049b\66\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\4\6\1\u049c\1\6\2\0\6\6\13\0\15\6" + "\1\u049d\1\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\1\6\1\u049e\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u049f\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u04a0\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u017b\1\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\10\6\1\u04a1\6\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\12\6\1\u04a2\4\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u04a3\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u04a4\10\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u04a5\1\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u04a6\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04a7" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u04a8" - + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u04a9\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u04aa" - + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\u04ab\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u04ac\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\16\6\1\u04ad\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" - + "\1\u04ae\5\6\1\u04af\2\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\1\6\1\u04b0\4\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u04b1\4\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\14\6\1\u04b2\2\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\u04b3\4\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u04b4\2\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u04b5\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\u04b6\16\6\1\5\1\0\25\6" - + "\42\0\1\u04b7\127\0\1\u04b8\114\0\1\u04b9\34\0\1\u04ba" - + "\74\0\1\u0310\130\0\1\u04bb\123\0\1\u04bc\127\0\1\u04bd" - + "\144\0\1\u04be\132\0\1\u04bf\40\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\1\0\1\u04c0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0130" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u04c1" - + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\7\6\1\u04c2\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\2\6\1\u04c3\22\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u04c4" - + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u04c5\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u04c6\2\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u04c7\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u04c8\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\6\6\2\0\2\6\1\u03f5\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u0492\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\1\u0493\5\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\5\6\1\u0494\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\15\6\1\u0495\7\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0496" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\2\6\1\u0497\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0498\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u0499\1\u0418" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\202\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\11\6\1\u049a\13\6\40\0\1\u049b\66\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\4\6\1\u049c\1\6\2\0\6\6\13\0\15\6" + "\1\u049d\1\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\6\1\u049e\1\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\1\6\1\u049f\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u04a0\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u017b\1\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\10\6\1\u04a1\6\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\12\6\1\u04a2\4\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u04a3\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u04a4\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u04a5\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u04a6\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04a7" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u04a8" + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u04a9\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u04aa" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u04ab\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u04ac\1\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\16\6\1\u04ad\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u04ae\5\6\1\u04af\2\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\1\6\1\u04b0\4\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u04b1\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\14\6\1\u04b2\2\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\12\6\1\u04b3\4\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u04b4\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u04b5\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\1\u04b6\16\6\1\5\1\0\25\6" + "\42\0\1\u04b7\127\0\1\u04b8\114\0\1\u04b9\34\0\1\u04ba" + + "\74\0\1\u0310\130\0\1\u04bb\123\0\1\u04bc\127\0\1\u04bd" + "\144\0\1\u04be\132\0\1\u04bf\40\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\1\0\1\u04c0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0130" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u04c1" + "\12\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\7\6\1\u04c2\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\2\6\1\u04c3\22\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u04c4" + + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u04c5\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u04c6\2\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u04c7\3\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u04c8\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u04c9" + "\15\6\1\5\1\0\25\6\42\0\1\u04ca\125\0\1\u04cb" + "\77\0\1\u04cc\177\0\1\u04cd\40\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u04ce\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u04cf\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u04d0\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0187\2\6\13\0\17\6\1\5" - + "\1\0\25\6\15\0\1\u04d1\151\0\1\u04d1\65\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u04d2" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u04d3\2\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u04d4\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u04d5" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\u04d6\3\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\4\6\1\u0293\1\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u04d7\4\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04d8\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u04d9\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u04da\10\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04db" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u04dc" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u04dd\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u04de\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u04df\12\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u04e0\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u04e1\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\6\6\1\u04e2\10\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" - + "\1\u04e3\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u0134\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u04e4\3\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04e5\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u03b7\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\6" + "\1\u04e6\4\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\4\6\1\u04e7\12\6\1\5\1\0\25\6\1\0" + "\1\5\5\6\1\u04e8\1\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\1\u0362\5\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\2\6\1\u04e9\6\6" - + "\1\u04ea\6\6\1\76\4\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u04a2\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u04eb\10\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u038c\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u04ec\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\16\6\1\u04ed\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u04ee" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u04ef\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u021c\10\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u018a\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\4\6\1\u04f0\12\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u04f1\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u04f2\2\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u04f3\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\5\6" + "\1\u01eb\2\0\6\6\13\0\17\6\1\5\1\0\11\6" - + "\1\u04f4\13\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\4\6\1\u0296\20\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04f5\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u04f6\7\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u04f7\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04f8" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u04f9\4\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u04fa\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u04fb" + "\3\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\13\6\1\u04fc\11\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u04fd\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u04fe\7\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u04ff\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0500" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\2\6\1\u0501\3\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u0502\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u0503\14\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u0504\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u0505\4\6\13\0" + "\4\6\1\u0506\12\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0507\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\u0508\16\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0509\15\6\1\5\1\0\25\6\1\0\1\5" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u04ce\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u04cf\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u04d0\2\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u0187\2\6\13\0\17\6\1\5" + "\1\0\25\6\15\0\1\u04d1\151\0\1\u04d1\65\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\3\6\1\u04d2" + "\13\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\14\6\1\u04d3\2\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u04d4\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u04d5" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\2\6\1\u04d6\3\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\4\6\1\u0293\1\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u04d7\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04d8\5\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u04d9\15\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u04da\10\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04db" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u04dc" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u04dd\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + + "\1\u04de\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u04df\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u04e0\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u04e1\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\6\6\1\u04e2\10\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + + "\1\u04e3\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0134\5\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u04e4\3\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04e5\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u03b7\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\6" + "\1\u04e6\4\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u04e7\12\6\1\5\1\0\25\6\1\0" + "\1\5\5\6\1\u04e8\1\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\1\u0362\5\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\2\6\1\u04e9\6\6" + "\1\u04ea\6\6\1\76\4\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u04a2\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u04eb\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u038c\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u04ec\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\16\6\1\u04ed\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\2\6\1\u04ee" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u04ef\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\6\6\1\u021c\10\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u018a\5\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\4\6\1\u04f0\12\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u04f1\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u04f2\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u04f3\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\5\6" + "\1\u01eb\2\0\6\6\13\0\17\6\1\5\1\0\11\6" + "\1\u04f4\13\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\4\6\1\u0296\20\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u04f5\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u04f6\7\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u04f7\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04f8" + + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u04f9\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u04fa\2\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\2\6\1\u04fb" + "\3\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\13\6\1\u04fc\11\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u04fd\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u04fe\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u04ff\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0500" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\2\6\1\u0501\3\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u0502\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\2\6\1\u0503\14\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u0504\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0505\4\6\13\0" + + "\4\6\1\u0506\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0507\5\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\u0508\16\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0509\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\4\6\1\u050a" - + "\12\6\1\5\1\0\25\6\37\0\1\u050b\103\0\1\u050c" + "\111\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u050d\15\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u050e" - + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\16\6\1\u0165\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u050f\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0510\5\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u0511\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u0512\14\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u0513\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u0514\2\6\13\0" + "\17\6\1\5\1\0\25\6\74\0\1\u0515\32\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0516" - + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u0517\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0518\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0519\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\1\6\1\u051a\23\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u051b\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" - + "\1\u0130\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u051c\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u051d\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u051e\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u051f" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0520\4\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u0521\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u0522\4\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\3\6\1\u0523\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u0524\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\u0525" + "\5\6\2\0\6\6\13\0\10\6\1\u0526\6\6\1\5" - + "\1\0\4\6\1\u0527\20\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\15\6\1\u0295\1\6\1\5" + "\1\0\4\6\1\u0296\20\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0528\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\15\6\1\u0288\1\6\1\5\1\0\15\6" + "\1\u0299\7\6\1\0\1\5\7\6\2\0\1\123\1\u0529" - + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u052a\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\20\6\1\76\4\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u052b\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u052c" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u052d\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\11\6\1\u029d\13\6\43\0\1\u0263\124\0\1\u052e\151\0" - + "\1\u052f\101\0\1\u0530\122\0\1\u0531\162\0\1\u0263\74\0" - + "\1\u03b3\121\0\1\u03b3\125\0\1\u0532\116\0\1\u044b\76\0" + "\1\5\7\6\2\0\1\123\1\u0533\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0534\2\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0535" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0536\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\1\0\1\u0537\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\15\6\1\u0295\1\6\1\5\1\0\17\6" + "\1\u029a\5\6\1\0\1\5\7\6\2\0\1\123\1\6" - + "\1\u0538\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0539\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\6\1\u053a\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\37\0\1\u053b\103\0\1\u053c\176\0" - + "\1\u053d\102\0\1\u053e\63\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u04ad\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\u022d\16\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u053f\4\6\13\0" - + "\17\6\1\5\1\0\25\6\64\0\1\u0540\42\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\11\6\1\u0541\13\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\4\6" - + "\1\u0296\6\6\1\u0298\11\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\13\6\1\u0542\3\6\1\5" + "\1\0\25\6\1\0\1\5\5\6\1\u0543\1\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\1\0\1\u0544\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u0545\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u0546\10\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\2\6\1\u039f\22\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0547\2\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0548" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0549\2\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\1\6\1\u0339\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\1\u0207\24\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\4\6\1\u054a\20\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\16\6\1\u0130\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u054b\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" - + "\1\u01e1\12\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\1\u03df\24\6\1\0\1\5\7\6\2\0\1\123\2\6" - + "\1\241\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\4\6\1\u054c\1\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\u054d\2\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u054e\3\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u054f\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u0550\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0551\1\u0552\2\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\4\6\1\u0130\12\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u0553\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0554\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\2\6\1\u0555\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u03d1\1\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0556" - + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\2\6\1\u0557\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u0558\3\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0559" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u055a\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u055b\15\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u055c\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\2\6\1\u0130\14\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u055d\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u055e\2\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u055f\5\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0560" - + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\2\6\1\u0561\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0562\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" - + "\1\u0563\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\2\6\1\u0564\3\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0565\2\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\14\6\1\u0566" + "\10\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u0567\15\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\1\u0568\5\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u0569\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u056a\3\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\u056b\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u056c\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u056d\4\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u056e\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\12\6\1\5\1\0\25\6\37\0\1\u050b\103\0\1\u050c" + "\111\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u050d\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u050e" + + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\16\6\1\u0165\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u050f\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0510\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0511\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u0512\14\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0513\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u0514\2\6\13\0" + "\17\6\1\5\1\0\25\6\74\0\1\u0515\32\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0516" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u0517\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u0518\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0519\4\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\1\6\1\u051a\23\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u051b\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0130\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u051c\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u051d\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u051e\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u051f" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u0520\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u0521\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u0522\4\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\3\6\1\u0523\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0524\5\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\1\u0525" + "\5\6\2\0\6\6\13\0\10\6\1\u0526\6\6\1\5" + + "\1\0\4\6\1\u0527\20\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\15\6\1\u0295\1\6\1\5" + + "\1\0\4\6\1\u0296\20\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0528\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\15\6\1\u0288\1\6\1\5\1\0\15\6" + + "\1\u0299\7\6\1\0\1\5\7\6\2\0\1\123\1\u0529" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u052a\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\20\6\1\76\4\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u052b\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u052c" + + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u052d\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\11\6\1\u029d\13\6\43\0\1\u0263\124\0\1\u052e\151\0" + + "\1\u052f\101\0\1\u0530\122\0\1\u0531\162\0\1\u0263\74\0" + "\1\u03b3\121\0\1\u03b3\125\0\1\u0532\116\0\1\u044b\76\0" + + "\1\5\7\6\2\0\1\123\1\u0533\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0534\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0535" + + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0536\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\1\0\1\u0537\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\15\6\1\u0295\1\6\1\5\1\0\17\6" + "\1\u029a\5\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u0538\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0539\5\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\6\1\u053a\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\37\0\1\u053b\103\0\1\u053c\176\0" + "\1\u053d\102\0\1\u053e\63\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u04ad\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\u022d\16\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u053f\4\6\13\0" + "\17\6\1\5\1\0\25\6\64\0\1\u0540\42\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\11\6\1\u0541\13\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\4\6" + "\1\u0296\6\6\1\u0298\11\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\13\6\1\u0542\3\6\1\5" + "\1\0\25\6\1\0\1\5\5\6\1\u0543\1\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\1\0\1\u0544\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + + "\1\u0545\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + + "\1\u0546\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\2\6\1\u039f\22\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0547\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0548" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u0549\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u0339\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\1\u0207\24\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\4\6\1\u054a\20\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\16\6\1\u0130\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u054b\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\4\6" + + "\1\u01e1\12\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + + "\1\u03df\24\6\1\0\1\5\7\6\2\0\1\123\2\6" + "\1\241\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\4\6\1\u054c\1\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\1\u054d\2\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u054e\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u054f\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u0550\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u0551\1\u0552\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\4\6\1\u0130\12\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + + "\1\u0553\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0554\3\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\2\6\1\u0555\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u03d1\1\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0556" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\2\6\1\u0557\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\2\6" + "\1\u0558\3\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0559" + + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u055a\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u055b\15\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\2\6\1\u055c\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\2\6\1\u0130\14\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u055d\3\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\14\6\1\u055e\2\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u055f\5\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0560" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\2\6\1\u0561\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0562\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0563\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\2\6\1\u0564\3\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u0565\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\14\6\1\u0566" + "\10\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\1\6\1\u0567\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\1\u0568\5\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u0569\4\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u056a\3\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u056b\12\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u056c\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u056d\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + + "\1\u056e\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u056f" + "\2\6\13\0\17\6\1\5\1\0\25\6\42\0\1\u0570" - + "\147\0\1\u0571\42\0\1\5\7\6\2\0\1\123\1\u0348" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0572\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0573\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0574\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0575" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\4\6\1\u0576\20\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u0577\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\4\6\1\u0578\12\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0579" - + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\u057a\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u057b\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\7\6\1\u057c\7\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u057d\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\2\6\1\u057e\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u057f\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0580" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0581" - + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\u0582\16\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0583\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02e7\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0584\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\1\u0585\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\3\6\1\u0586\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0587" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0588\2\6\13\0\1\6\1\u0589" - + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u01e1\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u0165\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" - + "\1\u058a\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u02cf\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\4\6\1\u058b" - + "\20\6\1\0\1\5\5\6\1\u058c\1\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u047d\5\6\13\0" + "\17\6\1\5\1\0\25\6\16\0\1\u058d\150\0\1\u058e" - + "\123\0\1\u058f\127\0\1\u0590\154\0\1\u0591\36\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\4\6\1\u0592\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u038c\5\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\3\6\1\u0593\13\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\147\0\1\u0571\42\0\1\5\7\6\2\0\1\123\1\u0348" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0572\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0573\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0574\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0575" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\4\6\1\u0576\20\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u0577\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\4\6\1\u0578\12\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0579" + + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u057a\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u057b\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\7\6\1\u057c\7\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u057d\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\2\6\1\u057e\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u057f\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0580" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\7\6\1\u0581" + "\7\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\u0582\16\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u0583\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u02e7\4\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0584\3\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\u0585\2\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\3\6\1\u0586\13\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\6\1\u0587" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0588\2\6\13\0\1\6\1\u0589" + "\15\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\1\6\1\u01e1\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u0165\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u058a\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u02cf\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\4\6\1\u058b" + "\20\6\1\0\1\5\5\6\1\u058c\1\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u047d\5\6\13\0" + + "\17\6\1\5\1\0\25\6\16\0\1\u058d\150\0\1\u058e" + "\123\0\1\u058f\127\0\1\u0590\154\0\1\u0591\36\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\4\6\1\u0592\1\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u038c\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\3\6\1\u0593\13\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\5\6\1\u0594\13\0" + "\17\6\1\5\1\0\25\6\103\0\1\u0595\3\0\1\u0596" - + "\17\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\4\6\1\u0202\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\11\6\1\u0597\13\6\41\0\1\u0598\157\0\1\u0599" - + "\75\0\1\u059a\121\0\1\u059b\67\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\4\6\1\u059c\12\6\1\5" + "\1\0\25\6\61\0\1\u059a\45\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0551\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\u059d\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u059e\1\6" + "\13\0\17\6\1\5\1\0\25\6\30\0\1\u059f\76\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u05a0\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u0187\13\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\1\6\1\u04f7\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" - + "\1\u045e\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u05a1\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u05a2\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u05a3\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u05a4\15\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u05a5\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\5\6\1\u05a6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u05a7\1\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0165\5\6\13\0" - + "\17\6\1\5\1\0\3\6\1\u05a8\21\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\u05a9\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\3\6\1\u05aa\13\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u05ab\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u05ac\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05ad\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\5\6\1\u05ae" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u05af\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u05b0\1\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\2\6\1\u05b1\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u05b2\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u05b3\4\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\23\6" + "\1\u02e0\1\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u05b4\14\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\2\6\1\u05b5\22\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u05b6" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05b7\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\1\6\1\u05b8" - + "\4\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u05b9\7\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u05ba\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\4\6\1\u05bb\1\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u05bc\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u05bd\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\3\6\1\u05be\13\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u05bf\15\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\7\6\1\u05c0\7\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u051e\2\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u05c1\3\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04a2" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u05c2\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u05c3\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u0165\1\6\13\0\17\6\1\5\1\0\25\6" + "\37\0\1\u05c4\130\0\1\u05c5\64\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u05c6\5\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" - + "\1\u0581\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u05c7" + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\u05c8\14\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\13\6\1\u0130\11\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u05c9\7\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u05ca\16\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\7\6\1\u05cb\7\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u05cc\15\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0130\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\3\6\1\u043f\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u05cd\4\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u05ce\1\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\1\u05cf\24\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\300\14\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u05d0\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0580\15\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u05d1\2\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u05d2\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u05d3\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\u05d4\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u05d5\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u05d6\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\u02b7\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\4\6\1\u05d7\1\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u05d8\5\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u05d9\2\6" - + "\13\0\17\6\1\5\1\0\25\6\41\0\1\u05da\127\0" + "\1\u0590\124\0\1\u0263\145\0\1\u0263\124\0\1\u05db\45\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u05dc\2\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u0433\13\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u05dd\10\6\1\5\1\0" - + "\25\6\14\0\1\u05de\126\0\1\u05df\111\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u05e0\15\6" + "\1\5\1\0\25\6\73\0\1\u05e1\46\0\1\u05e2\173\0" - + "\1\u05e3\104\0\1\u05e4\65\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u05e5\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\5\6\1\u05e6\1\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" - + "\1\u05e7\15\6\1\5\1\0\25\6\66\0\1\u05e8\40\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\4\6\1\u05e9\1\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0232\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\17\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u0202\12\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\11\6\1\u0597\13\6\41\0\1\u0598\157\0\1\u0599" + "\75\0\1\u059a\121\0\1\u059b\67\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u059c\12\6\1\5" + "\1\0\25\6\61\0\1\u059a\45\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0551\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u059d\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u059e\1\6" + "\13\0\17\6\1\5\1\0\25\6\30\0\1\u059f\76\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u05a0\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u0187\13\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\1\6\1\u04f7\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + + "\1\u045e\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u05a1\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u05a2\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u05a3\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u05a4\15\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\1\6\1\u05a5\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\5\6\1\u05a6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + "\1\u05a7\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u0165\5\6\13\0" + "\17\6\1\5\1\0\3\6\1\u05a8\21\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u05a9\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\3\6\1\u05aa\13\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u05ab\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u05ac\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05ad\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\5\6\1\u05ae" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u05af\1\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u05b0\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\2\6\1\u05b1\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u05b2\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\6\1\u05b3\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\23\6" + "\1\u02e0\1\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\2\6\1\u05b4\14\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\2\6\1\u05b5\22\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u05b6" + + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05b7\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\1\6\1\u05b8" + "\4\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u05b9\7\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u05ba\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u05bb\1\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u05bc\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u05bd\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\3\6\1\u05be\13\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u05bf\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\7\6\1\u05c0\7\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\u051e\2\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u05c1\3\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u04a2" + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u05c2\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u05c3\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u0165\1\6\13\0\17\6\1\5\1\0\25\6" + + "\37\0\1\u05c4\130\0\1\u05c5\64\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\u05c6\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + + "\1\u0581\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u05c7" + + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\u05c8\14\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\13\6\1\u0130\11\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\7\6\1\u05c9\7\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u05ca\16\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\7\6\1\u05cb\7\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\1\6\1\u05cc\15\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0130\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\3\6\1\u043f\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u05cd\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\4\6\1\u05ce\1\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\1\u05cf\24\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\300\14\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u05d0\3\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0580\15\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u05d1\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u05d2\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u05d3\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u05d4\2\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u05d5\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\u05d6\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u02b7\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\4\6\1\u05d7\1\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u05d8\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u05d9\2\6" + "\13\0\17\6\1\5\1\0\25\6\41\0\1\u05da\127\0" + + "\1\u0590\124\0\1\u0263\145\0\1\u0263\124\0\1\u05db\45\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u05dc\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\3\6\1\u0433\13\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u05dd\10\6\1\5\1\0" + "\25\6\14\0\1\u05de\126\0\1\u05df\111\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u05e0\15\6" + + "\1\5\1\0\25\6\73\0\1\u05e1\46\0\1\u05e2\173\0" + "\1\u05e3\104\0\1\u05e4\65\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u05e5\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\5\6\1\u05e6\1\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u05e7\15\6\1\5\1\0\25\6\66\0\1\u05e8\40\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\4\6\1\u05e9\1\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u0232\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\4\6\1\u05ea\20\6" + "\1\0\1\5\7\6\2\0"; - - private static final String ZZ_TRANS_PACKED_1 = "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u05eb\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u05ec\4\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\2\6\1\u05ed\14\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\u05ee\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u05ef\1\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u05f0\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u05f1\16\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\1\0\1\u05f2\6\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\3\6\1\u052d\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u05f3" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u05f4\4\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u05f5\1\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u05f6\15\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u05f7\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u05f8\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u05f9\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u05fa\5\6" - + "\1\u05fb\13\0\15\6\1\u05fc\1\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\5\6\1\u01eb\2\0\6\6" + "\13\0\17\6\1\5\1\0\4\6\1\u0576\20\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u05fd\5\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\1\6\1\u05fe\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\5\6\1\u05ff\17\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\1\6\1\u0600\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\15\6\1\u0295" + "\1\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u0601\12\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0602\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0130" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u043f\12\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\2\6\1\u0603\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0604\12\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0605\2\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\5\6\1\u0606\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0607\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0608\5\6" - + "\13\0\17\6\1\5\1\0\25\6\41\0\1\u0515\100\0" + "\1\u0609\112\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u060a\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\5\6\1\u060b\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\5\6\1\u060c\2\0" - + "\6\6\13\0\17\6\1\5\1\0\13\6\1\u060d\11\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\1\u060e\5\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u060f\2\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\6\6\1\u0610\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0611\2\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\u0612\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u0613\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u0614\15\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0615" - + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u043f\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u0616\7\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\7\6\1\u0617\7\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\2\6\1\u0618\5\6\1\u0619\14\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u061a\5\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0165\3\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0130\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\2\6\1\u061b\14\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u061c\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + private static final String ZZ_TRANS_PACKED_1 = "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u05eb\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u05ec\4\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\u05ed\14\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u05ee\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u05ef\1\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u05f0\2\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u05f1\16\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\1\0\1\u05f2\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\3\6\1\u052d\13\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u05f3" + + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u05f4\4\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u05f5\1\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u05f6\15\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u05f7\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u05f8\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u05f9\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u05fa\5\6" + "\1\u05fb\13\0\15\6\1\u05fc\1\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\5\6\1\u01eb\2\0\6\6" + "\13\0\17\6\1\5\1\0\4\6\1\u0576\20\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u05fd\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u05fe\15\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\5\6\1\u05ff\17\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\1\6\1\u0600\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\15\6\1\u0295" + + "\1\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\4\6\1\u0601\12\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0602\3\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0130" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\4\6\1\u043f\12\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\2\6\1\u0603\3\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0604\12\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u0605\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\5\6\1\u0606\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u0607\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u0608\5\6" + + "\13\0\17\6\1\5\1\0\25\6\41\0\1\u0515\100\0" + "\1\u0609\112\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + + "\1\u060a\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\5\6\1\u060b\1\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\5\6\1\u060c\2\0" + + "\6\6\13\0\17\6\1\5\1\0\13\6\1\u060d\11\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\1\u060e\5\6\2\0\6\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u060f\2\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0610\10\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\3\6" + "\1\u0611\2\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\1\u0612\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u0613\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u0614\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0615" + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u043f\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\7\6\1\u0616\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\7\6\1\u0617\7\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\2\6\1\u0618\5\6\1\u0619\14\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u061a\5\6" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u0165\3\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0130\2\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\2\6\1\u061b\14\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u061c\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u061d\1\6\13\0\17\6" + "\1\5\1\0\25\6\37\0\1\u04bc\152\0\1\u03b3\42\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u061e\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u061f\15\6" - + "\1\5\1\0\25\6\31\0\1\u0620\162\0\1\u0621\40\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u0622\14\6\1\5\1\0\25\6\61\0\1\u041a\106\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u061e\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u061f\15\6" + "\1\5\1\0\25\6\31\0\1\u0620\162\0\1\u0621\40\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u0622\14\6\1\5\1\0\25\6\61\0\1\u041a\106\0" + "\1\u0623\124\0\1\u0624\124\0\1\u0625\66\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\1\6\1\u0626\4\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\1\6\1\u0627\15\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + + "\3\0\1\6\1\u0626\4\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\1\6\1\u0627\15\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u047d\13\0\17\6\1\5\1\0\25\6\73\0\1\u0628" + "\33\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0629" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u062a\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u062b\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\7\6\1\u062c\7\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u062d" - + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\4\6\1\u062e\1\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u062f\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0630\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0631\15\6\1\5\1\0\25\6\103\0\1\u0632" - + "\23\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\1\u02cc\24\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0633\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\11\6\1\u038c\5\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\15\6\1\u0299\7\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" + "\1\u0634\3\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u02cc\3\6" - + "\1\5\1\0\25\6\114\0\1\u0635\12\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\1\0\1\u0636\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0637\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0638" - + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\300\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u0639\16\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u063a\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u0130\16\6" + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u063b\1\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" - + "\1\u063c\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u063d\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u063e\5\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\5\6\1\300\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + "\1\u063f\14\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0640\15\6" - + "\1\5\1\0\25\6\73\0\1\u0641\33\0\1\5\7\6" + "\2\0\1\123\1\6\1\u0642\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0643\1\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0644" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0645\13\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0646\10\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\u0647\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0334\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u0648\5\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\1\6\1\u0649\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\14\6\1\u064a\2\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\1\u064b\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\2\6\1\u063d\3\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\17\6\1\u029a\5\6" - + "\1\0\1\5\5\6\1\u064c\1\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u064d" - + "\1\u01eb\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u064e\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u064f\2\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\2\6\1\u0650" + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0651\3\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0652\4\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\2\6\1\u0653\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0654\10\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0130" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\44\0" + "\1\u0655\145\0\1\u0656\42\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\6\6\1\u0657\10\6\1\5\1\0" - + "\25\6\73\0\1\u0658\72\0\1\u0515\153\0\1\u0659\40\0" + "\1\5\7\6\2\0\1\123\1\u065a\2\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u065b\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\70\0\1\u065c\36\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\3\6\1\u065d\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u065e\10\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\15\6\1\u065f\7\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u0660\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u0661\3\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u027d\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u03d6\12\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\1\6\1\u0662\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\2\6\1\u038c\14\6\1\5" + "\1\0\25\6\66\0\1\u0663\40\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u0664\7\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0665" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\16\0" + "\1\u0666\211\0\1\u0667\24\0\1\5\7\6\2\0\1\123" - + "\1\6\1\u0668\1\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0669" - + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u066a\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u066b\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\4\6\1\u066c\1\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u066d\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u04a2\1\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u066e\1\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\4\6\1\u066f\1\u01eb\2\0\6\6\13\0\17\6" + "\1\5\1\0\15\6\1\u0670\1\6\1\u0671\5\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\2\6\1\u048c\22\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u063f\4\6\13\0\17\6" + "\1\5\1\0\25\6\60\0\1\u0672\46\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0673\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u0674\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0675\12\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0676\3\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\1\6\1\u0677\1\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u0279\1\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\4\6\1\u066f\1\6\2\0\6\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\1\6\1\u0678" + "\15\6\1\u0671\5\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\4\6\1\u04a2\12\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\2\6\1\u0679\22\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u0631\1\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u067a\1\6\13\0\1\6" - + "\1\u067b\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u067c\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\6\1\u067d\4\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" - + "\1\u067e\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u067f\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u0680\4\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u0681\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0682\1\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0629" + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u062a\1\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u062b\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\7\6\1\u062c\7\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u062d" + + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\4\6\1\u062e\1\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u062f\3\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0630\3\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u0631\15\6\1\5\1\0\25\6\103\0\1\u0632" + + "\23\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\1\u02cc\24\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0633\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\11\6\1\u038c\5\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\15\6\1\u0299\7\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\13\6" + "\1\u0634\3\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\13\6\1\u02cc\3\6" + "\1\5\1\0\25\6\114\0\1\u0635\12\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\1\0\1\u0636\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u0637\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u0638" + + "\2\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\300\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\u0639\16\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\1\u063a\2\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\1\u0130\16\6" + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u063b\1\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u063c\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\3\6\1\u063d\2\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u063e\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\5\6\1\300\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\2\6" + + "\1\u063f\14\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0640\15\6" + + "\1\5\1\0\25\6\73\0\1\u0641\33\0\1\5\7\6" + "\2\0\1\123\1\6\1\u0642\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\4\6\1\u0643\1\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0644" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\3\6" + "\1\u0645\13\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u0646\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\1\u0647\5\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0334\1\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\1\u0648\5\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u0649\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + + "\13\0\14\6\1\u064a\2\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\1\u064b\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\2\6\1\u063d\3\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\17\6\1\u029a\5\6" + + "\1\0\1\5\5\6\1\u064c\1\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\4\6\1\u064d" + "\1\u01eb\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u064e\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\3\6\1\u064f\2\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\2\6\1\u0650" + "\22\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\2\6" + "\1\u0651\3\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\6\1\u0652\4\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\2\6\1\u0653\3\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u0654\10\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\1\6\1\u0130" + "\1\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\44\0" + "\1\u0655\145\0\1\u0656\42\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\6\6\13\0\6\6\1\u0657\10\6\1\5\1\0" + "\25\6\73\0\1\u0658\72\0\1\u0515\153\0\1\u0659\40\0" + + "\1\5\7\6\2\0\1\123\1\u065a\2\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\1\6\1\u065b\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\70\0\1\u065c\36\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u065d\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u065e\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\15\6\1\u065f\7\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u0660\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\2\6\1\u0661\3\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\6\6\1\u027d\10\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\4\6\1\u03d6\12\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\1\6\1\u0662\1\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\u038c\14\6\1\5" + + "\1\0\25\6\66\0\1\u0663\40\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u0664\7\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\u0665" + "\2\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\16\0" + + "\1\u0666\211\0\1\u0667\24\0\1\5\7\6\2\0\1\123" + "\1\6\1\u0668\1\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u0669" + + "\5\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u066a\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u066b\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\4\6\1\u066c\1\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u066d\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\4\6\1\u04a2\1\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u066e\1\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\4\6\1\u066f\1\u01eb\2\0\6\6\13\0\17\6" + + "\1\5\1\0\15\6\1\u0670\1\6\1\u0671\5\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + + "\1\5\1\0\2\6\1\u048c\22\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u063f\4\6\13\0\17\6" + + "\1\5\1\0\25\6\60\0\1\u0672\46\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u0673\3\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u0674\2\6\13\0\17\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0675\12\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\2\6\1\u0676\3\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\1\6\1\u0677\1\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\5\6\1\u0279\1\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\4\6\1\u066f\1\6\2\0\6\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\1\6\1\u0678" + "\15\6\1\u0671\5\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\4\6\1\u04a2\12\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\2\6\1\u0679\22\6\1\0" + "\1\5\7\6\2\0\1\123\1\6\1\u0631\1\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\4\6\1\u067a\1\6\13\0\1\6" + "\1\u067b\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\6\6\1\u067c\10\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\1\6\1\u067d\4\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\4\6" + + "\1\u067e\1\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u067f\5\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u0680\4\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u0681\2\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u0682\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\u02e7\5\6\13\0\17\6" + "\1\5\1\0\25\6\41\0\1\u0683\145\0\1\u0684\45\0" + "\1\5\7\6\2\0\1\123\2\6\1\u0685\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\41\0\1\u0686\101\0\1\u0687" - + "\111\0\1\5\7\6\2\0\1\123\1\6\1\u0688\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\12\6\1\u0689" + "\4\6\1\5\1\0\25\6\41\0\1\u068a\65\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\13\6\1\u0528" - + "\3\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\u068b\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u068c\4\6\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u068d\5\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\1\0\1\u068e\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u068f" + "\5\6\13\0\17\6\1\5\1\0\25\6\67\0\1\u0690" - + "\37\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0527" - + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u0691\4\6\13\0" + "\17\6\1\5\1\0\25\6\27\0\1\u0692\40\0\1\u0693" - + "\14\0\1\u0694\10\0\1\u0695\40\0\1\u0696\75\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u0697" + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0698\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u0699\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\u05bc\14\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u069a\2\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u069b\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u069c\15\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u069d" - + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\1\6\1\u069e\4\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u069f\10\6\1\5" - + "\1\0\25\6\37\0\1\u06a0\67\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u05bc\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u06a1\13\0\17\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" - + "\1\u06a2\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\6\1\u06a3\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\16\6\1\u038c\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0505" - + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u06a4" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u06a5\2\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u06a6\1\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u06a7" + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u06a8\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\6\6\1\u06a9\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u06aa\4\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u06ab\6\6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\1\u06ac\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\111\0\1\5\7\6\2\0\1\123\1\6\1\u0688\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\12\6\1\u0689" + "\4\6\1\5\1\0\25\6\41\0\1\u068a\65\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\13\6\1\u0528" + "\3\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\u068b\5\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\6" + "\1\u068c\4\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u068d\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\1\0\1\u068e\6\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\1\u068f" + + "\5\6\13\0\17\6\1\5\1\0\25\6\67\0\1\u0690" + "\37\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u0527" + + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u0691\4\6\13\0" + + "\17\6\1\5\1\0\25\6\27\0\1\u0692\40\0\1\u0693" + "\14\0\1\u0694\10\0\1\u0695\40\0\1\u0696\75\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u0697" + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u0698\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u0699\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\u05bc\14\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\3\6\1\u069a\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\6\6\1\u069b\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\1\6\1\u069c\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u069d" + + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\1\6\1\u069e\4\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u069f\10\6\1\5" + + "\1\0\25\6\37\0\1\u06a0\67\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u05bc\4\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\5\6\1\u06a1\13\0\17\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\6" + "\1\u06a2\15\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\6\1\u06a3\4\6\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\16\6\1\u038c\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\6\1\u0505" + "\4\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u06a4" + "\10\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\3\6\1\u06a5\2\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\1\6" + "\1\u06a6\1\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\2\6\1\u06a7" + + "\3\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u06a8\3\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u06a9\10\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u06aa\4\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u06ab\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u06ac\5\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\2\6\1\u06ad\14\6\1\5\1\0\25\6" + "\37\0\1\u0515\150\0\1\u06ae\44\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u06af\10\6\1\5" + "\1\0\25\6\75\0\1\u06b0\123\0\1\u06b1\33\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u027d" - + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\2\6\1\u06b2\3\6\13\0\17\6\1\5" + "\1\0\25\6\64\0\1\u06b3\42\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u06b4\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\1\6\1\u06b5\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\4\6\1\u066f\1\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\7\0\1\u06b6" - + "\117\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u06b7\10\6\1\5\1\0\25\6\63\0\1\u06b8" + "\43\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u027d" + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\2\6\1\u06b2\3\6\13\0\17\6\1\5" + "\1\0\25\6\64\0\1\u06b3\42\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u06b4\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u06b5\15\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\4\6\1\u066f\1\6\2\0" + "\6\6\13\0\17\6\1\5\1\0\25\6\7\0\1\u06b6" + "\117\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u06b7\10\6\1\5\1\0\25\6\63\0\1\u06b8" + "\43\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u02c0" + "\2\6\13\0\17\6\1\5\1\0\25\6\61\0\1\u06b9" + "\125\0\1\u06ba\61\0\1\u0683\150\0\1\u06bb\131\0\1\u06bc" + "\62\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u02cf\15\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\5\6\1\u06bd\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\3\6\1\u06be\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + "\1\u06bf\13\0\17\6\1\5\1\0\25\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u06c0\3\6\13\0" - + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u03be\1\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u06c1" + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u06c2\2\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u06c3\3\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\u06c4\14\6\1\5\1\0\25\6\34\0\1\u06c5" - + "\72\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u06c6" - + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u06c7\14\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u06c8\2\6\13\0\17\6\1\5\1\0" - + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\17\6\1\5\1\0\1\u04a2\24\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\5\6\1\u0528\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" - + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\5\6\1\u06c9\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0188" - + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\3\6\1\u06ca\2\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\u0347\14\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\2\6\1\u06cb\3\6\13\0\17\6\1\5\1\0\25\6" + "\75\0\1\u06cc\31\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u06cd\15\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01e6" - + "\2\6\13\0\17\6\1\5\1\0\25\6\41\0\1\u06ce" + "\65\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u06a3\12\6\1\5\1\0\25\6\42\0\1\u06cf" - + "\175\0\1\u06d0\14\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\6\1\u06d1\4\6\13\0\17\6\1\5\1\0\25\6" + "\66\0\1\u06d2\40\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u06d3\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\5\6\1\u03b7\11\6\1\5\1\0\25\6\61\0\1\u06d4" + "\45\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u06d5" + "\2\6\13\0\17\6\1\5\1\0\25\6\43\0\1\u06d6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\1\6\1\u02cf\15\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\5\6\1\u06bd\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\3\6\1\u06be\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\5\6" + + "\1\u06bf\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u06c0\3\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u03be\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\2\6\1\u06c1" + + "\14\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\3\6\1\u06c2\2\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u06c3\3\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\2\6\1\u06c4\14\6\1\5\1\0\25\6\34\0\1\u06c5" + + "\72\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u06c6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u06c7\14\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\3\6\1\u06c8\2\6\13\0\17\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\17\6\1\5\1\0\1\u04a2\24\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\5\6\1\u0528\13\0\17\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u06c9\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\4\6\1\u0188" + + "\1\6\13\0\17\6\1\5\1\0\25\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\3\6\1\u06ca\2\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\2\6\1\u0347\14\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\2\6\1\u06cb\3\6\13\0\17\6\1\5\1\0\25\6" + + "\75\0\1\u06cc\31\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\1\6\1\u06cd\15\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u01e6" + "\2\6\13\0\17\6\1\5\1\0\25\6\41\0\1\u06ce" + + "\65\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\4\6\1\u06a3\12\6\1\5\1\0\25\6\42\0\1\u06cf" + + "\175\0\1\u06d0\14\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u06d1\4\6\13\0\17\6\1\5\1\0\25\6" + + "\66\0\1\u06d2\40\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u06d3\2\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\5\6\1\u03b7\11\6\1\5\1\0\25\6\61\0\1\u06d4" + + "\45\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\3\6\1\u06d5" + "\2\6\13\0\17\6\1\5\1\0\25\6\43\0\1\u06d6" + "\77\0\1\u06d7\124\0\1\u06d8\177\0\1\u06d9\76\0\1\u06da" + "\67\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u06db\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u06dc\14\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\5\6\1\u06dd\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0417" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u06de\3\6\13\0\17\6" - + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" - + "\2\0\6\6\13\0\13\6\1\u05bc\3\6\1\5\1\0" + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" - + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u06df\12\6\1\5\1\0\25\6\1\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0601\5\6\13\0" - + "\17\6\1\5\1\0\25\6\65\0\1\u06e0\41\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\10\6\1\u06e1\14\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u06e2\10\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\1\u0594\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\1\u06e3\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\7\6\1\u06e4\7\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u06e5\2\6\13\0\17\6\1\5\1\0\25\6" + "\41\0\1\u06e6\65\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\6\1\u06e7\4\6\13\0\17\6\1\5\1\0\25\6" - + "\30\0\1\u06e8\52\0\1\u06e9\37\0\1\u06ea\171\0\1\u06eb" + "\45\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u06ec" + "\13\0\17\6\1\5\1\0\25\6\67\0\1\u06ed\37\0" - + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u06ee\1\6" - + "\13\0\17\6\1\5\1\0\25\6\15\0\1\u06ef\111\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u06f0\1\6" + "\13\0\17\6\1\5\1\0\25\6\41\0\1\u06f1\157\0" + + "\1\0\1\5\1\6\3\0\6\6\2\0\1\u06db\5\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\6\6\13\0\2\6\1\u06dc\14\6" + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + + "\2\0\5\6\1\u06dd\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0417" + + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\2\6\1\u06de\3\6\13\0\17\6" + + "\1\5\1\0\25\6\1\0\1\5\7\6\2\0\1\123" + "\3\6\1\0\1\6\1\0\1\5\1\6\3\0\6\6" + "\2\0\6\6\13\0\13\6\1\u05bc\3\6\1\5\1\0" + + "\25\6\1\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u06df\12\6\1\5\1\0\25\6\1\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\1\u0601\5\6\13\0" + "\17\6\1\5\1\0\25\6\65\0\1\u06e0\41\0\1\5" + + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\10\6\1\u06e1\14\6\1\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\6\6\1\u06e2\10\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\1\u0594\5\6\13\0\17\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\1\u06e3\5\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\7\6\1\u06e4\7\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\3\6\1\u06e5\2\6\13\0\17\6\1\5\1\0\25\6" + "\41\0\1\u06e6\65\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\1\6\1\u06e7\4\6\13\0\17\6\1\5\1\0\25\6" + "\30\0\1\u06e8\52\0\1\u06e9\37\0\1\u06ea\171\0\1\u06eb" + + "\45\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u06ec" + "\13\0\17\6\1\5\1\0\25\6\67\0\1\u06ed\37\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u06ee\1\6" + "\13\0\17\6\1\5\1\0\25\6\15\0\1\u06ef\111\0" + + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + "\1\5\1\6\3\0\6\6\2\0\4\6\1\u06f0\1\6" + "\13\0\17\6\1\5\1\0\25\6\41\0\1\u06f1\157\0" + "\1\u0515\63\0\1\u06f2\163\0\1\u06f3\76\0\1\u06f4\66\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u06f5\10\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\1\u040c\5\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\5\6\1\u06f6\1\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\15\6\1\u06f7\7\6\1\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0536" - + "\10\6\1\5\1\0\25\6\64\0\1\u06f8\42\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" - + "\1\6\3\0\6\6\2\0\2\6\1\u06f9\3\6\13\0" + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u06fa\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\3\6\1\u06fb\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u06fc\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u06fd\7\6" - + "\1\5\1\0\25\6\62\0\1\u06fe\44\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\1\0\1\u06ff\6\6\13\0\17\6\1\5" + "\1\0\25\6\43\0\1\u0700\146\0\1\u0701\134\0\1\u05c4" - + "\114\0\1\u05c4\44\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\6\6\1\u0702\10\6\1\5\1\0\25\6" + "\42\0\1\u0703\64\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0704\10\6\1\5\1\0\25\6" - + "\37\0\1\u0705\67\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\1\u0362\5\6" - + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\34\0" + "\1\u02e9\50\0\1\u0706\63\0\1\u05c4\150\0\1\u0707\101\0" - + "\1\u0708\64\0\1\5\7\6\2\0\1\123\3\6\1\0" + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" - + "\13\0\4\6\1\u0528\12\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" - + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u0709" + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\1\6\1\u070a\15\6\1\5" - + "\1\0\25\6\41\0\1\u070b\65\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u070c\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\13\6\1\u0130\3\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u070d\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" - + "\6\6\13\0\17\6\1\5\1\0\25\6\117\0\1\u070e" + "\7\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u070f\6\6" + "\13\0\17\6\1\5\1\0\25\6\66\0\1\u0710\153\0" - + "\1\u0711\72\0\1\u0712\104\0\1\u0713\66\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" - + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0714\15\6" + "\1\5\1\0\25\6\43\0\1\u0715\63\0\1\5\7\6" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\6\6" + "\1\u06f5\10\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\1\u040c\5\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\5\6\1\u06f6\1\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + + "\17\6\1\5\1\0\15\6\1\u06f7\7\6\1\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\6\6\1\u0536" + + "\10\6\1\5\1\0\25\6\64\0\1\u06f8\42\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u06f9\3\6\13\0" + + "\17\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\1\6\1\u06fa\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u06fb\2\6\13\0\17\6\1\5\1\0\25\6" + + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u06fc\6\6" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\7\6\1\u06fd\7\6" + "\1\5\1\0\25\6\62\0\1\u06fe\44\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\1\0\1\u06ff\6\6\13\0\17\6\1\5" + + "\1\0\25\6\43\0\1\u0700\146\0\1\u0701\134\0\1\u05c4" + "\114\0\1\u05c4\44\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0702\10\6\1\5\1\0\25\6" + "\42\0\1\u0703\64\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\6\6\13\0\6\6\1\u0704\10\6\1\5\1\0\25\6" + "\37\0\1\u0705\67\0\1\5\7\6\2\0\1\123\3\6" + + "\1\0\1\6\1\0\1\5\1\6\3\0\1\u0362\5\6" + "\2\0\6\6\13\0\17\6\1\5\1\0\25\6\34\0" + + "\1\u02e9\50\0\1\u0706\63\0\1\u05c4\150\0\1\u0707\101\0" + "\1\u0708\64\0\1\5\7\6\2\0\1\123\3\6\1\0" + + "\1\6\1\0\1\5\1\6\3\0\6\6\2\0\6\6" + "\13\0\4\6\1\u0528\12\6\1\5\1\0\25\6\1\0" + "\1\5\7\6\2\0\1\123\3\6\1\0\1\6\1\0" + + "\1\5\1\6\3\0\6\6\2\0\6\6\13\0\1\u0709" + "\16\6\1\5\1\0\25\6\1\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\6\6\13\0\1\6\1\u070a\15\6\1\5" + "\1\0\25\6\41\0\1\u070b\65\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + + "\6\6\2\0\1\6\1\u070c\4\6\13\0\17\6\1\5" + "\1\0\25\6\1\0\1\5\7\6\2\0\1\123\3\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\13\6\1\u0130\3\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\1\6\1\u070d\1\6" + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + + "\6\6\13\0\17\6\1\5\1\0\25\6\117\0\1\u070e" + "\7\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\1\0\1\u070f\6\6" + + "\13\0\17\6\1\5\1\0\25\6\66\0\1\u0710\153\0" + "\1\u0711\72\0\1\u0712\104\0\1\u0713\66\0\1\5\7\6" + + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\1\6\1\u0714\15\6" + "\1\5\1\0\25\6\43\0\1\u0715\63\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\6\6\13\0\17\6\1\5\1\0" + "\1\u0716\24\6\40\0\1\u0717\154\0\1\u0718\75\0\1\u0719" + "\152\0\1\u071a\42\0\1\5\7\6\2\0\1\123\3\6" - + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u071b\2\6\13\0\17\6\1\5\1\0\25\6" - + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" - + "\6\6\1\u05d0\10\6\1\5\1\0\25\6\63\0\1\u071c" + "\43\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0367" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" - + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + "\3\0\6\6\2\0\1\u0528\5\6\13\0\17\6\1\5" - + "\1\0\25\6\41\0\1\u071d\202\0\1\u071e\47\0\1\u071f" + + "\1\0\1\6\1\0\1\5\1\6\3\0\6\6\2\0" + "\3\6\1\u071b\2\6\13\0\17\6\1\5\1\0\25\6" + "\1\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\6\6\1\u05d0\10\6\1\5\1\0\25\6\63\0\1\u071c" + "\43\0\1\5\7\6\2\0\1\123\3\6\1\0\1\6" + + "\1\0\1\5\1\6\3\0\6\6\2\0\5\6\1\u0367" + "\13\0\17\6\1\5\1\0\25\6\1\0\1\5\7\6" + "\2\0\1\123\3\6\1\0\1\6\1\0\1\5\1\6" + + "\3\0\6\6\2\0\1\u0528\5\6\13\0\17\6\1\5" + "\1\0\25\6\41\0\1\u071d\202\0\1\u071e\47\0\1\u071f" + "\103\0\1\u0720\173\0\1\u0721\127\0\1\u0722\40\0\1\5" + "\7\6\2\0\1\123\1\6\1\u0723\1\6\1\0\1\6" - + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\27\0\1\u0724\77\0\1\5" - + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\2\6\1\u0725\3\6\13\0" - + "\17\6\1\5\1\0\25\6\61\0\1\u0726\133\0\1\u0727" + "\124\0\1\u0728\76\0\1\u0729\67\0\1\5\7\6\2\0" - + "\1\123\1\6\1\u0287\1\6\1\0\1\6\1\0\1\5" + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" - + "\1\0\25\6\37\0\1\u072a\125\0\1\u072b\102\0\1\u071d" + + "\1\0\1\5\1\6\3\0\6\6\2\0\6\6\13\0" + "\17\6\1\5\1\0\25\6\27\0\1\u0724\77\0\1\5" + "\7\6\2\0\1\123\3\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\2\6\1\u0725\3\6\13\0" + "\17\6\1\5\1\0\25\6\61\0\1\u0726\133\0\1\u0727" + + "\124\0\1\u0728\76\0\1\u0729\67\0\1\5\7\6\2\0" + "\1\123\1\6\1\u0287\1\6\1\0\1\6\1\0\1\5" + + "\1\6\3\0\6\6\2\0\6\6\13\0\17\6\1\5" + "\1\0\25\6\37\0\1\u072a\125\0\1\u072b\102\0\1\u071d" + "\152\0\1\u072c\113\0\1\u0692\40\0\1\u0693\14\0\1\u0694" + "\116\0\1\u0515\112\0\1\u0683\43\0\1\5\7\6\2\0" - + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\11\6" - + "\1\u037b\13\6\42\0\1\u072d\64\0\1\5\7\6\2\0" + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" - + "\6\6\2\0\1\6\1\u038c\4\6\13\0\17\6\1\5" + "\1\0\25\6\43\0\1\u0515\76\0\1\u072e\203\0\1\u05c4" - + "\62\0\1\u072f\40\0\1\u0730\12\0\1\u0731\1\0\1\u0732" - + "\106\0\1\u0733\72\0\1\u0734\156\0\1\u0735\135\0\1\u0736" - + "\70\0\1\u0737\147\0\1\u0738\125\0\1\u0739\127\0\1\u073a" - + "\57\0\1\u073b\171\0\1\u073c\132\0\1\u073d\76\0\1\u073e" - + "\147\0\1\u073f\106\0\1\u0740\100\0\1\u0741\124\0\1\u0742" - + "\154\0\1\u0743\121\0\1\u0744\103\0\1\u0745\151\0\1\u0746" - + "\122\0\1\u0747\103\0\1\u0748\142\0\1\u0749\167\0\1\u0744" - + "\63\0\1\u074a\162\0\1\u074b\142\0\1\u0731\132\0\1\u074c" - + "\60\0\1\u074d\170\0\1\u074e\56\0\1\u074f\131\0\1\u0750" - + "\125\0\1\u0751\121\0\1\u0752\130\0\1\u0753\145\0\1\u0515" - + "\137\0\1\u0754\64\0\1\u0755\133\0\1\u023b\125\0\1\u0744" - + "\125\0\1\u0756\101\0\1\u0757\173\0\1\u05c4\123\0\1\u0758" - + "\104\0\1\u0759\147\0\1\u075a\103\0\1\u075b\127\0\1\u075c" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\6\6\13\0\17\6\1\5\1\0\11\6" + "\1\u037b\13\6\42\0\1\u072d\64\0\1\5\7\6\2\0" + + "\1\123\3\6\1\0\1\6\1\0\1\5\1\6\3\0" + "\6\6\2\0\1\6\1\u038c\4\6\13\0\17\6\1\5" + + "\1\0\25\6\43\0\1\u0515\76\0\1\u072e\203\0\1\u05c4" + "\62\0\1\u072f\40\0\1\u0730\12\0\1\u0731\1\0\1\u0732" + + "\106\0\1\u0733\72\0\1\u0734\156\0\1\u0735\135\0\1\u0736" + "\70\0\1\u0737\147\0\1\u0738\125\0\1\u0739\127\0\1\u073a" + + "\57\0\1\u073b\171\0\1\u073c\132\0\1\u073d\76\0\1\u073e" + "\147\0\1\u073f\106\0\1\u0740\100\0\1\u0741\124\0\1\u0742" + + "\154\0\1\u0743\121\0\1\u0744\103\0\1\u0745\151\0\1\u0746" + "\122\0\1\u0747\103\0\1\u0748\142\0\1\u0749\167\0\1\u0744" + + "\63\0\1\u074a\162\0\1\u074b\142\0\1\u0731\132\0\1\u074c" + "\60\0\1\u074d\170\0\1\u074e\56\0\1\u074f\131\0\1\u0750" + + "\125\0\1\u0751\121\0\1\u0752\130\0\1\u0753\145\0\1\u0515" + "\137\0\1\u0754\64\0\1\u0755\133\0\1\u023b\125\0\1\u0744" + + "\125\0\1\u0756\101\0\1\u0757\173\0\1\u05c4\123\0\1\u0758" + "\104\0\1\u0759\147\0\1\u075a\103\0\1\u075b\127\0\1\u075c" + "\126\0\1\u05e3\151\0\1\u0515\75\0\1\u075d\147\0\1\u0624" + "\45\0"; - + private static int[] zzUnpackTrans() { int[] result = new int[158928]; int offset = 0; @@ -2520,7 +1836,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, 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 */ @@ -2535,44 +1851,37 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { } 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 aState */ private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\6\1\1\11\3\1\1\11\20\1\2\11\3\1" - + "\1\11\32\1\1\11\5\1\1\11\10\1\1\11\25\1" + "\1\11\1\0\12\1\2\11\42\1\1\0\110\1\2\0" - + "\1\11\4\0\1\11\2\0\1\11\22\0\3\1\1\0" + "\15\1\1\11\12\1\1\11\210\1\37\0\22\1\1\11" - + "\151\1\1\0\31\1\2\0\1\1\2\0\1\1\10\0" + "\1\11\17\0\166\1\1\0\31\1\35\0\156\1\1\0" - + "\26\1\22\0\15\1\1\0\4\1\1\0\103\1\1\0" + "\14\1\1\0\32\1\2\0\1\1\6\0\13\1\4\0" - + "\4\1\2\0\75\1\2\0\11\1\1\0\33\1\12\0" + "\11\1\4\0\3\1\1\0\71\1\2\0\10\1\1\11" - + "\30\1\5\0\4\1\1\0\3\1\4\0\1\1\1\0" + "\3\1\1\0\53\1\2\0\33\1\5\0\3\1\2\0" - + "\1\1\4\0\3\1\1\0\44\1\2\0\24\1\2\0" + "\2\1\2\0\1\1\4\0\3\1\1\0\11\1\1\0" - + "\7\1\1\0\16\1\1\0\26\1\2\0\1\1\3\0" + "\2\1\1\0\11\1\1\0\2\1\2\0\12\1\1\0" - + "\23\1\2\0\1\1\2\0\2\1\1\0\6\1\1\0" + "\2\1\2\0\12\1\1\0\20\1\2\0\1\1\2\0" - + "\2\1\1\0\3\1\1\0\1\1\1\0\1\1\5\0" + "\11\1\1\0\12\1\1\0\2\1\1\0\1\1\2\0" - + "\1\1\1\0\2\1\1\0\1\1\5\0\10\1\1\0" + "\6\1\1\0\1\1\3\0\1\1\1\0\1\1\1\0" - + "\1\1\5\0\5\1\1\0\5\1\1\0\1\1\4\0" + "\1\1\1\0\1\1\1\0\1\1\4\0\3\1\1\0" - + "\3\1\1\0\1\1\4\0\1\1\1\0\1\1\4\0" + "\2\1\1\0\2\1\6\0\1\1\1\0\1\1\4\0" + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\6\1\1\11\3\1\1\11\20\1\2\11\3\1" + "\1\11\32\1\1\11\5\1\1\11\10\1\1\11\25\1" + + "\1\11\1\0\12\1\2\11\42\1\1\0\110\1\2\0" + "\1\11\4\0\1\11\2\0\1\11\22\0\3\1\1\0" + + "\15\1\1\11\12\1\1\11\210\1\37\0\22\1\1\11" + "\151\1\1\0\31\1\2\0\1\1\2\0\1\1\10\0" + + "\1\11\17\0\166\1\1\0\31\1\35\0\156\1\1\0" + "\26\1\22\0\15\1\1\0\4\1\1\0\103\1\1\0" + "\14\1\1\0\32\1\2\0\1\1\6\0\13\1\4\0" + + "\4\1\2\0\75\1\2\0\11\1\1\0\33\1\12\0" + "\11\1\4\0\3\1\1\0\71\1\2\0\10\1\1\11" + "\30\1\5\0\4\1\1\0\3\1\4\0\1\1\1\0" + + "\3\1\1\0\53\1\2\0\33\1\5\0\3\1\2\0" + "\1\1\4\0\3\1\1\0\44\1\2\0\24\1\2\0" + "\2\1\2\0\1\1\4\0\3\1\1\0\11\1\1\0" + + "\7\1\1\0\16\1\1\0\26\1\2\0\1\1\3\0" + "\2\1\1\0\11\1\1\0\2\1\2\0\12\1\1\0" + "\23\1\2\0\1\1\2\0\2\1\1\0\6\1\1\0" + + "\2\1\2\0\12\1\1\0\20\1\2\0\1\1\2\0" + "\2\1\1\0\3\1\1\0\1\1\1\0\1\1\5\0" + "\11\1\1\0\12\1\1\0\2\1\1\0\1\1\2\0" + + "\1\1\1\0\2\1\1\0\1\1\5\0\10\1\1\0" + "\6\1\1\0\1\1\3\0\1\1\1\0\1\1\1\0" + "\1\1\5\0\5\1\1\0\5\1\1\0\1\1\4\0" + + "\1\1\1\0\1\1\1\0\1\1\4\0\3\1\1\0" + "\3\1\1\0\1\1\4\0\1\1\1\0\1\1\4\0" + "\2\1\1\0\2\1\6\0\1\1\1\0\1\1\4\0" + "\1\1\7\0\1\1\1\0\1\1\30\0\1\1\37\0"; - + private static int[] zzUnpackAttribute() { int[] result = new int[1885]; 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 */ @@ -2586,48 +1895,41 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { } 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 + * this buffer contains the current text to be matched and is the source of + * the * yytext() string */ private char zzBuffer[]; - /** the textposition at the last accepting state */ private int zzMarkedPos; - /** the current text position in the buffer */ private int zzCurrentPos; - /** startRead marks the beginning of the yytext() string in the buffer */ private int zzStartRead; - /** - * endRead marks the last character in the buffer, that has been read from input + * endRead marks the last character in the buffer, that has been read from + * input */ private int zzEndRead; - /** zzAtEOF == true <=> the scanner is at the EOF */ private boolean zzAtEOF; - + /* user code: */ - /** - * Constructor. This must be here because JFlex does not generate a no-parameter + * Constructor. This must be here because JFlex does not generate a + * no-parameter * constructor. */ - public JavaTokenMaker() { - } - + public JavaTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * @@ -2639,7 +1941,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { int so = start + offsetShift; addToken(zzBuffer, start, end, tokenType, so, true); } - + /** * Adds the token specified to the current linked list of tokens. * @@ -2649,7 +1951,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { private void addToken(int tokenType) { addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - + /** * Adds the token specified to the current linked list of tokens. * @@ -2661,7 +1963,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { int so = start + offsetShift; addToken(zzBuffer, start, end, tokenType, so, false); } - + /** * Adds the token specified to the current linked list of tokens. * @@ -2683,7 +1985,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - + /** * {@inheritDoc} */ @@ -2691,10 +1993,11 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - + /** * Returns the first token in the linked list of tokens generated from - * text. This method must be implemented by subclasses so they can + * text. This method must be implemented by subclasses so they + * can * correctly implement syntax highlighting. * * @param text @@ -2702,31 +2005,30 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { * @param initialTokenType * The token type we should start with. * @param startOffset - * The offset into the document at which text starts. - * @return The first Token in a linked list representing the syntax + * The offset into the document at which text + * starts. + * @return The first Token in a linked list representing the + * syntax * highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { - case Token.COMMENT_MULTILINE: - state = MLC; - start = text.offset; - break; - case Token.COMMENT_DOCUMENTATION: - state = DOCCOMMENT; - start = text.offset; - break; - default: - state = Token.NULL; + case Token.COMMENT_MULTILINE: + state = MLC; + start = text.offset; + break; + case Token.COMMENT_DOCUMENTATION: + state = DOCCOMMENT; + start = text.offset; + break; + default: + state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -2736,20 +2038,21 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { return zzCurrentPos >= s.offset + s.count; } - + /** - * Resets the scanner to read from a new input stream. Does not close the old + * Resets the scanner to read from a new input stream. Does not close the + * old * reader. * * All internal variables are reset, the old input stream cannot be @@ -2763,8 +2066,10 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { // 's' has been updated. zzBuffer = s.array; /* - * We replaced the line below with the two below it because zzRefill no longer - * "refills" the buffer (since the way we do it, it's always "full" the first + * We replaced the line below with the two below it because zzRefill no + * longer + * "refills" the buffer (since the way we do it, it's always "full" the + * first * time through, since it points to the segment's array). So, we assign * zzEndRead here. */ @@ -2776,7 +2081,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { zzReader = reader; zzAtEOF = false; } - + /** * Creates a new scanner There is also a java.io.InputStream version of this * constructor. @@ -2787,7 +2092,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { public JavaTokenMaker(java.io.Reader in) { this.zzReader = in; } - + /** * Creates a new scanner. There is also java.io.Reader version of this * constructor. @@ -2798,7 +2103,7 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { public JavaTokenMaker(java.io.InputStream in) { this(new java.io.InputStreamReader(in)); } - + /** * Unpacks the compressed character translation table. * @@ -2819,25 +2124,24 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { } return map; } - + /** * 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(); } - + /** * Returns the current lexical state. */ public final int yystate() { return zzLexicalState; } - + /** * Enters a new lexical state * @@ -2848,14 +2152,14 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { public final void yybegin(int newState) { zzLexicalState = newState; } - + /** * Returns the text matched by the current regular expression. */ public final String yytext() { return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } - + /** * Returns the character at position pos from the matched text. * @@ -2870,23 +2174,25 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { 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 + * 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 + * Usual syntax/scanner level error handling should be done in error + * fallback * rules. * * @param errorCode @@ -2899,26 +2205,25 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { } 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 + * 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. @@ -2930,30 +2235,23 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { public org.fife.ui.rsyntaxtextarea.Token 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: { + zzForAction: + { while (true) { - if (zzCurrentPosL < zzEndReadL) zzInput = zzBufferL[zzCurrentPosL++]; else if (zzAtEOF) { @@ -2980,7 +2278,6 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { if (zzNext == -1) break zzForAction; zzState = zzNext; - int zzAttributes = zzAttrL[zzState]; if ((zzAttributes & 1) == 1) { zzAction = zzState; @@ -2988,265 +2285,260 @@ public class JavaTokenMaker extends AbstractJFlexCTokenMaker { if ((zzAttributes & 8) == 8) break zzForAction; } - } } - // store back cached position zzMarkedPos = zzMarkedPosL; - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 2: { - addToken(Token.IDENTIFIER); - } - case 38: - break; - case 32: { - addToken(Token.LITERAL_BOOLEAN); - } - case 39: - break; - case 13: { - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - return firstToken; - } - case 40: - break; - case 18: { - addToken(Token.ERROR_CHAR); - } - case 41: - break; - case 15: { - addToken(Token.ERROR_NUMBER_FORMAT); - } - case 42: - break; - case 4: { - addToken(Token.ERROR_CHAR); - addNullToken(); - return firstToken; - } - case 43: - break; - case 19: { - addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 44: - break; - case 10: { - addToken(Token.ANNOTATION); - } - case 45: - break; - case 30: { - addToken(Token.FUNCTION); - } - case 46: - break; - case 6: { - addToken(Token.ERROR_STRING_DOUBLE); - addNullToken(); - return firstToken; - } - case 47: - break; - case 1: { - addToken(Token.ERROR_IDENTIFIER); - } - case 48: - break; - case 34: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); - start = zzMarkedPos; - } - case 49: - break; - case 26: { - addToken(Token.LITERAL_CHAR); - } - case 50: - break; - case 17: { - addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 51: - break; - case 21: { - start = zzMarkedPos - 2; - yybegin(MLC); - } - case 52: - break; - case 7: { - addToken(Token.WHITESPACE); - } - case 53: - break; - case 24: { - yybegin(YYINITIAL); - addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); - } - case 54: - break; - case 29: { - addToken(Token.DATA_TYPE); - } - case 55: - break; - case 23: { - yybegin(YYINITIAL); - addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); - } - case 56: - break; - case 3: { - addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 57: - break; - case 25: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); - start = zzMarkedPos; - } - case 58: - break; - case 28: { - start = zzMarkedPos - 3; - yybegin(DOCCOMMENT); - } - case 59: - break; - case 35: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); - addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); - start = zzMarkedPos; - } - case 60: - break; - case 22: { - addToken(Token.RESERVED_WORD); - } - case 61: - break; - case 33: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); - addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); - start = zzMarkedPos; - } - case 62: - break; - case 37: { - addToken(Token.RESERVED_WORD_2); - } - case 63: - break; - case 14: { - addToken(start, zzStartRead - 1, Token.COMMENT_EOL); - addNullToken(); - return firstToken; - } - case 64: - break; - case 9: { - addToken(Token.SEPARATOR); - } - case 65: - break; - case 5: { - addNullToken(); - return firstToken; - } - case 66: - break; - case 12: { - addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); - return firstToken; - } - case 67: - break; - case 8: { - addToken(Token.OPERATOR); - } - case 68: - break; - case 16: { - addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 69: - break; - case 36: { - int temp = zzStartRead; - addToken(start, zzStartRead - 1, Token.COMMENT_EOL); - addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); - start = zzMarkedPos; - } - case 70: - break; - case 20: { - start = zzMarkedPos - 2; - yybegin(EOL_COMMENT); - } - case 71: - break; - case 31: { - addToken(Token.COMMENT_MULTILINE); - } - case 72: - break; - case 11: { - } - case 73: - break; - case 27: { - addToken(Token.ERROR_STRING_DOUBLE); - } - case 74: - break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start, zzStartRead - 1, Token.COMMENT_EOL); - addNullToken(); - return firstToken; - } - case 1886: - break; - case DOCCOMMENT: { - yybegin(YYINITIAL); - addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); - return firstToken; - } - case 1887: - break; - case YYINITIAL: { - addNullToken(); - return firstToken; - } - case 1888: - break; - case MLC: { - addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); - return firstToken; - } - case 1889: - break; - default: - return null; - } - } else { - zzScanError(ZZ_NO_MATCH); + case 2: { + addToken(Token.IDENTIFIER); } + case 38: + break; + case 32: { + addToken(Token.LITERAL_BOOLEAN); + } + case 39: + break; + case 13: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 40: + break; + case 18: { + addToken(Token.ERROR_CHAR); + } + case 41: + break; + case 15: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 42: + break; + case 4: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 43: + break; + case 19: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 44: + break; + case 10: { + addToken(Token.ANNOTATION); + } + case 45: + break; + case 30: { + addToken(Token.FUNCTION); + } + case 46: + break; + case 6: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 47: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 48: + break; + case 34: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 49: + break; + case 26: { + addToken(Token.LITERAL_CHAR); + } + case 50: + break; + case 17: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 51: + break; + case 21: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 52: + break; + case 7: { + addToken(Token.WHITESPACE); + } + case 53: + break; + case 24: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); + } + case 54: + break; + case 29: { + addToken(Token.DATA_TYPE); + } + case 55: + break; + case 23: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 56: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 57: + break; + case 25: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); + start = zzMarkedPos; + } + case 58: + break; + case 28: { + start = zzMarkedPos - 3; + yybegin(DOCCOMMENT); + } + case 59: + break; + case 35: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); + start = zzMarkedPos; + } + case 60: + break; + case 22: { + addToken(Token.RESERVED_WORD); + } + case 61: + break; + case 33: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 62: + break; + case 37: { + addToken(Token.RESERVED_WORD_2); + } + case 63: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 64: + break; + case 9: { + addToken(Token.SEPARATOR); + } + case 65: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 66: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 67: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 68: + break; + case 16: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 69: + break; + case 36: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 70: + break; + case 20: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 71: + break; + case 31: { + addToken(Token.COMMENT_MULTILINE); + } + case 72: + break; + case 11: {} + case 73: + break; + case 27: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 74: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 1886: + break; + case DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 1887: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 1888: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 1889: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } } } } - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/JshintrcTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/JshintrcTokenMaker.java index 93f31c9..b391f13 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/JshintrcTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/JshintrcTokenMaker.java @@ -1,30 +1,24 @@ /* * 03/15/2015 - * * JshintrcTokenMaker.java - Scanner for .jshintrc files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; - /** - * Scanner for .jshintrc files. This is equivalent to JSON with C-style + * Scanner for .jshintrc files. This is equivalent to JSON with C-style * end-of-line comments. * * @author Robert Futrell * @version 1.0 */ public class JshintrcTokenMaker extends JsonTokenMaker { - - + /** * Constructor; overridden to enable highlighting of EOL comments. */ public JshintrcTokenMaker() { setHighlightEolComments(true); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/JsonTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/JsonTokenMaker.java index e5bdfc2..8c10b5c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/JsonTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/JsonTokenMaker.java @@ -1,357 +1,306 @@ /* The following code was generated by JFlex 1.4.1 on 8/22/15 3:14 PM */ - /* * 12/23/2012 - * * JsonTokenMaker.java - Scanner for JSON. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for JSON.

+ * Scanner for JSON. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated JsonTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated JsonTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.6 * */ - public class JsonTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 1; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\1\1\10\1\0\1\1\23\0\1\1\1\3\1\11\1\3"+ - "\1\2\1\3\5\3\1\21\1\6\1\7\1\17\1\16\12\4\1\32"+ - "\1\3\1\0\1\3\1\0\2\3\4\5\1\20\1\5\24\2\1\33"+ - "\1\13\1\33\1\0\1\3\1\0\1\26\1\15\2\5\1\24\1\25"+ - "\1\2\1\34\1\36\2\2\1\27\1\2\1\14\1\2\1\35\1\2"+ - "\1\23\1\30\1\22\1\12\1\2\1\37\3\2\1\31\1\0\1\31"+ - "\1\3\uff81\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 = - "\2\0\1\1\1\2\1\3\2\1\1\4\4\1\1\5"+ - "\1\6\1\7\3\6\2\0\1\4\1\10\1\4\1\1"+ - "\1\11\2\1\4\0\2\12\1\0\1\13\1\4\1\14"+ - "\1\4\3\1\4\0\1\4\1\15\1\16\2\0\1\17"+ - "\1\4\2\0\1\4"; - - private static int [] zzUnpackAction() { - int [] result = new int[55]; - 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\40\0\100\0\140\0\200\0\240\0\300\0\340"+ - "\0\u0100\0\u0120\0\u0140\0\u0160\0\240\0\u0180\0\240\0\u01a0"+ - "\0\u01c0\0\u01e0\0\u0200\0\u0220\0\u0240\0\u0260\0\u0280\0\u02a0"+ - "\0\240\0\u02c0\0\u02e0\0\u0300\0\u0320\0\u0340\0\u0360\0\u0380"+ - "\0\u03a0\0\u03a0\0\240\0\u03c0\0\240\0\u03e0\0\u0400\0\u0420"+ - "\0\u0440\0\u0460\0\u0480\0\u04a0\0\u04c0\0\u04e0\0\100\0\100"+ - "\0\u0500\0\u0520\0\u0540\0\u0560\0\u0580\0\u0540\0\u05a0"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[55]; - 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 = - "\1\3\1\4\2\3\1\5\1\3\1\6\1\7\1\3"+ - "\1\10\2\3\1\11\1\3\1\12\3\3\1\13\2\3"+ - "\1\14\3\3\1\15\1\6\1\15\4\3\10\16\1\17"+ - "\14\16\1\20\6\16\1\21\2\16\1\22\1\3\1\0"+ - "\4\3\1\0\2\3\1\0\4\3\1\0\12\3\3\0"+ - "\4\3\1\0\1\4\42\0\1\5\12\0\1\23\1\24"+ - "\3\0\1\24\57\0\1\5\33\0\10\10\1\25\1\26"+ - "\1\10\1\27\24\10\1\3\1\0\4\3\1\0\2\3"+ - "\1\0\1\30\3\3\1\0\12\3\3\0\4\3\16\0"+ - "\1\31\21\0\1\3\1\0\4\3\1\0\2\3\1\0"+ - "\4\3\1\0\4\3\1\32\5\3\3\0\5\3\1\0"+ - "\4\3\1\0\2\3\1\0\4\3\1\0\7\3\1\33"+ - "\2\3\3\0\4\3\10\16\1\0\14\16\1\0\6\16"+ - "\1\0\2\16\23\0\1\34\13\0\1\35\23\0\1\36"+ - "\54\0\1\37\4\0\1\40\37\0\1\41\2\0\1\42"+ - "\11\0\1\42\16\0\11\25\1\43\1\25\1\44\24\25"+ - "\32\0\1\45\5\0\10\25\1\0\1\10\1\46\4\10"+ - "\3\25\2\10\1\25\1\10\12\25\1\3\1\0\4\3"+ - "\1\0\2\3\1\0\4\3\1\0\10\3\1\47\1\3"+ - "\3\0\5\3\1\0\4\3\1\0\2\3\1\0\1\50"+ - "\3\3\1\0\12\3\3\0\5\3\1\0\4\3\1\0"+ - "\2\3\1\0\4\3\1\0\10\3\1\51\1\3\3\0"+ - "\4\3\35\0\1\52\31\0\1\53\32\0\1\54\54\0"+ - "\1\55\4\0\1\40\13\0\1\24\3\0\1\24\17\0"+ - "\1\41\33\0\10\25\1\0\33\25\2\56\3\25\1\43"+ - "\1\25\1\44\1\25\1\56\2\25\1\56\3\25\3\56"+ - "\11\25\1\3\1\0\4\3\1\0\2\3\1\0\4\3"+ - "\1\0\10\3\1\57\1\3\3\0\5\3\1\0\4\3"+ - "\1\0\2\3\1\0\4\3\1\0\5\3\1\60\4\3"+ - "\3\0\5\3\1\0\4\3\1\0\2\3\1\0\4\3"+ - "\1\0\11\3\1\50\3\0\4\3\32\0\1\61\31\0"+ - "\1\52\50\0\1\62\21\0\1\63\20\0\4\25\2\64"+ - "\3\25\1\43\1\25\1\44\1\25\1\64\2\25\1\64"+ - "\3\25\3\64\11\25\16\0\1\65\51\0\1\52\1\0"+ - "\1\61\7\0\1\63\1\66\2\63\2\66\2\0\1\63"+ - "\1\0\3\63\1\66\1\63\1\66\7\63\1\0\2\66"+ - "\4\63\4\25\2\67\3\25\1\43\1\25\1\44\1\25"+ - "\1\67\2\25\1\67\3\25\3\67\11\25\16\0\1\63"+ - "\21\0\4\25\2\10\3\25\1\43\1\25\1\44\1\25"+ - "\1\10\2\25\1\10\3\25\3\10\11\25"; - - private static int [] zzUnpackTrans() { - int [] result = new int[1472]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\3\1\1\11\6\1\1\11\1\1\1\11\3\1"+ - "\2\0\1\1\1\3\2\1\1\11\2\1\4\0\2\1"+ - "\1\0\1\11\1\1\1\15\4\1\4\0\3\1\2\0"+ - "\2\1\2\0\1\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[55]; - 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[]; - - /** 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; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - private boolean highlightEolComments; - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 1; + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\1\1\10\1\0\1\1\23\0\1\1\1\3\1\11\1\3" + + "\1\2\1\3\5\3\1\21\1\6\1\7\1\17\1\16\12\4\1\32" + "\1\3\1\0\1\3\1\0\2\3\4\5\1\20\1\5\24\2\1\33" + + "\1\13\1\33\1\0\1\3\1\0\1\26\1\15\2\5\1\24\1\25" + "\1\2\1\34\1\36\2\2\1\27\1\2\1\14\1\2\1\35\1\2" + + "\1\23\1\30\1\22\1\12\1\2\1\37\3\2\1\31\1\0\1\31" + "\1\3\uff81\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 = "\2\0\1\1\1\2\1\3\2\1\1\4\4\1\1\5" + "\1\6\1\7\3\6\2\0\1\4\1\10\1\4\1\1" + + "\1\11\2\1\4\0\2\12\1\0\1\13\1\4\1\14" + "\1\4\3\1\4\0\1\4\1\15\1\16\2\0\1\17" + "\1\4\2\0\1\4"; + + private static int[] zzUnpackAction() { + int[] result = new int[55]; + 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\40\0\100\0\140\0\200\0\240\0\300\0\340" + + "\0\u0100\0\u0120\0\u0140\0\u0160\0\240\0\u0180\0\240\0\u01a0" + + "\0\u01c0\0\u01e0\0\u0200\0\u0220\0\u0240\0\u0260\0\u0280\0\u02a0" + + "\0\240\0\u02c0\0\u02e0\0\u0300\0\u0320\0\u0340\0\u0360\0\u0380" + + "\0\u03a0\0\u03a0\0\240\0\u03c0\0\240\0\u03e0\0\u0400\0\u0420" + + "\0\u0440\0\u0460\0\u0480\0\u04a0\0\u04c0\0\u04e0\0\100\0\100" + "\0\u0500\0\u0520\0\u0540\0\u0560\0\u0580\0\u0540\0\u05a0"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[55]; + 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 = "\1\3\1\4\2\3\1\5\1\3\1\6\1\7\1\3" + "\1\10\2\3\1\11\1\3\1\12\3\3\1\13\2\3" + + "\1\14\3\3\1\15\1\6\1\15\4\3\10\16\1\17" + "\14\16\1\20\6\16\1\21\2\16\1\22\1\3\1\0" + "\4\3\1\0\2\3\1\0\4\3\1\0\12\3\3\0" + + "\4\3\1\0\1\4\42\0\1\5\12\0\1\23\1\24" + "\3\0\1\24\57\0\1\5\33\0\10\10\1\25\1\26" + "\1\10\1\27\24\10\1\3\1\0\4\3\1\0\2\3" + + "\1\0\1\30\3\3\1\0\12\3\3\0\4\3\16\0" + "\1\31\21\0\1\3\1\0\4\3\1\0\2\3\1\0" + "\4\3\1\0\4\3\1\32\5\3\3\0\5\3\1\0" + + "\4\3\1\0\2\3\1\0\4\3\1\0\7\3\1\33" + "\2\3\3\0\4\3\10\16\1\0\14\16\1\0\6\16" + "\1\0\2\16\23\0\1\34\13\0\1\35\23\0\1\36" + + "\54\0\1\37\4\0\1\40\37\0\1\41\2\0\1\42" + "\11\0\1\42\16\0\11\25\1\43\1\25\1\44\24\25" + + "\32\0\1\45\5\0\10\25\1\0\1\10\1\46\4\10" + "\3\25\2\10\1\25\1\10\12\25\1\3\1\0\4\3" + "\1\0\2\3\1\0\4\3\1\0\10\3\1\47\1\3" + + "\3\0\5\3\1\0\4\3\1\0\2\3\1\0\1\50" + "\3\3\1\0\12\3\3\0\5\3\1\0\4\3\1\0" + "\2\3\1\0\4\3\1\0\10\3\1\51\1\3\3\0" + + "\4\3\35\0\1\52\31\0\1\53\32\0\1\54\54\0" + "\1\55\4\0\1\40\13\0\1\24\3\0\1\24\17\0" + + "\1\41\33\0\10\25\1\0\33\25\2\56\3\25\1\43" + "\1\25\1\44\1\25\1\56\2\25\1\56\3\25\3\56" + + "\11\25\1\3\1\0\4\3\1\0\2\3\1\0\4\3" + "\1\0\10\3\1\57\1\3\3\0\5\3\1\0\4\3" + "\1\0\2\3\1\0\4\3\1\0\5\3\1\60\4\3" + + "\3\0\5\3\1\0\4\3\1\0\2\3\1\0\4\3" + "\1\0\11\3\1\50\3\0\4\3\32\0\1\61\31\0" + "\1\52\50\0\1\62\21\0\1\63\20\0\4\25\2\64" + + "\3\25\1\43\1\25\1\44\1\25\1\64\2\25\1\64" + "\3\25\3\64\11\25\16\0\1\65\51\0\1\52\1\0" + + "\1\61\7\0\1\63\1\66\2\63\2\66\2\0\1\63" + "\1\0\3\63\1\66\1\63\1\66\7\63\1\0\2\66" + + "\4\63\4\25\2\67\3\25\1\43\1\25\1\44\1\25" + "\1\67\2\25\1\67\3\25\3\67\11\25\16\0\1\63" + + "\21\0\4\25\2\10\3\25\1\43\1\25\1\44\1\25" + "\1\10\2\25\1\10\3\25\3\10\11\25"; + + private static int[] zzUnpackTrans() { + int[] result = new int[1472]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\3\1\1\11\6\1\1\11\1\1\1\11\3\1" + "\2\0\1\1\1\3\2\1\1\11\2\1\4\0\2\1" + + "\1\0\1\11\1\1\1\15\4\1\4\0\3\1\2\0" + "\2\1\2\0\1\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[55]; + 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[]; + /** 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; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + private boolean highlightEolComments; + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public JsonTokenMaker() { - } - - + public JsonTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * Returns true always as C-style languages use curly braces * to denote code blocks. @@ -361,46 +310,43 @@ public class JsonTokenMaker extends AbstractJFlexTokenMaker { public boolean getCurlyBracesDenoteCodeBlocks() { return true; } - - + @Override public boolean getMarkOccurrencesOfTokenType(int type) { return false; } - - + @Override public boolean getShouldIndentNextLineAfter(Token t) { - if (t!=null && t.length()==1) { + if (t != null && t.length() == 1) { char ch = t.charAt(0); - return ch=='{' || ch=='['; + return ch == '{' || ch == '['; } return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; start = text.offset; - s = text; try { yyreset(zzReader); @@ -410,26 +356,22 @@ public class JsonTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + protected void setHighlightEolComments(boolean highlightEolComments) { this.highlightEolComments = highlightEolComments; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -438,7 +380,8 @@ public class JsonTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -447,340 +390,343 @@ public class JsonTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; - zzCurrentPos = zzMarkedPos = s.offset; + zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 JsonTokenMaker(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 JsonTokenMaker(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 < 124) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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; + int zzPushbackPosL = zzPushbackPos = -1; + boolean zzWasPushback; + while (true) { + zzMarkedPosL = zzMarkedPos; + zzAction = -1; + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + zzState = zzLexicalState; + zzWasPushback = false; + 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; + zzPushbackPos = zzPushbackPosL; + boolean eof = zzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + zzPushbackPosL = zzPushbackPos; + 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 & 2) == 2) + zzPushbackPosL = zzCurrentPosL; + if ((zzAttributes & 1) == 1) { + zzWasPushback = (zzAttributes & 4) == 4; + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) + break zzForAction; + } + } + } + // store back cached position + zzMarkedPos = zzMarkedPosL; + if (zzWasPushback) + zzMarkedPos = zzPushbackPosL; + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 13: { + addToken(Token.RESERVED_WORD); + } + case 16: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 17: + break; + case 10: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 18: + break; + case 8: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 19: + break; + case 12: { + addToken(Token.VARIABLE); + } + case 20: + break; + case 9: { + if (highlightEolComments) { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } else { + addToken(Token.IDENTIFIER); + } + } + case 21: + break; + case 2: { + addToken(Token.WHITESPACE); + } + case 22: + break; + case 15: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 23: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 24: + break; + case 14: { + addToken(Token.LITERAL_BOOLEAN); + } + case 25: + break; + case 4: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 26: + break; + case 7: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 27: + break; + case 11: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 28: + break; + case 6: {} + case 29: + break; + case 5: { + addToken(Token.SEPARATOR); + } + case 30: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 56: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 57: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 JsonTokenMaker(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 JsonTokenMaker(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 < 124) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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; - int zzPushbackPosL = zzPushbackPos = -1; - boolean zzWasPushback; - - while (true) { - zzMarkedPosL = zzMarkedPos; - - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - zzState = zzLexicalState; - - zzWasPushback = false; - - 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; - zzPushbackPos = zzPushbackPosL; - boolean eof = zzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - zzPushbackPosL = zzPushbackPos; - 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 & 2) == 2 ) - zzPushbackPosL = zzCurrentPosL; - - if ( (zzAttributes & 1) == 1 ) { - zzWasPushback = (zzAttributes & 4) == 4; - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ( (zzAttributes & 8) == 8 ) break zzForAction; - } - - } - } - - // store back cached position - zzMarkedPos = zzMarkedPosL; - if (zzWasPushback) - zzMarkedPos = zzPushbackPosL; - - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 13: - { addToken(Token.RESERVED_WORD); - } - case 16: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 17: break; - case 10: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 18: break; - case 8: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 19: break; - case 12: - { addToken(Token.VARIABLE); - } - case 20: break; - case 9: - { if (highlightEolComments) { - start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - else { - addToken(Token.IDENTIFIER); - } - } - case 21: break; - case 2: - { addToken(Token.WHITESPACE); - } - case 22: break; - case 15: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 23: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 24: break; - case 14: - { addToken(Token.LITERAL_BOOLEAN); - } - case 25: break; - case 4: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 26: break; - case 7: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 27: break; - case 11: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 28: break; - case 6: - { - } - case 29: break; - case 5: - { addToken(Token.SEPARATOR); - } - case 30: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 56: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 57: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/LatexTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/LatexTokenMaker.java index 85dae16..f153dfd 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/LatexTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/LatexTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 8/20/16 5:08 PM */ - /* * 04/24/2012 - * * LatexTokenMaker.java - Scanner for LaTeX. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -18,325 +15,282 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** - * Scanner for the LaTeX.

+ * Scanner for the LaTeX. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RSTA always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated LatexTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated LatexTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class LatexTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 1; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\32\1\0\1\3\23\0\1\3\1\5\1\0\1\5"+ - "\1\7\1\4\7\5\1\2\1\22\1\6\12\1\1\20\1\5\1\0"+ - "\1\5\1\0\2\5\32\1\1\5\1\23\1\5\1\0\1\2\1\0"+ - "\1\1\1\25\1\1\1\31\1\17\1\14\1\26\1\10\1\15\2\1"+ - "\1\16\1\1\1\27\1\1\1\12\2\1\1\13\1\11\2\1\1\21"+ - "\3\1\1\30\1\0\1\24\1\5\uff81\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 = - "\2\0\2\1\1\2\1\3\1\1\1\4\1\5\4\6"+ - "\1\7\1\10\1\11\2\10\4\0\2\10\4\0\2\10"+ - "\2\0\1\12\1\0\1\10\3\0\1\10\1\13\2\0"+ - "\1\14"; - - private static int [] zzUnpackAction() { - int [] result = new int[43]; - 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\33\0\66\0\121\0\66\0\66\0\154\0\66"+ - "\0\66\0\207\0\242\0\275\0\330\0\66\0\363\0\66"+ - "\0\u010e\0\u0129\0\u0144\0\u015f\0\u017a\0\u0195\0\u01b0\0\u01cb"+ - "\0\u01e6\0\u0201\0\u021c\0\u0237\0\u0252\0\u026d\0\u0288\0\u02a3"+ - "\0\u02be\0\u02d9\0\u02f4\0\u030f\0\u02be\0\u032a\0\u0345\0\66"+ - "\0\u0360\0\u037b\0\66"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[43]; - 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 = - "\1\3\2\4\1\5\1\6\3\3\10\4\1\3\1\4"+ - "\1\3\1\7\1\10\3\4\1\10\1\4\1\11\10\12"+ - "\1\13\3\12\1\14\4\12\1\15\10\12\1\16\34\0"+ - "\2\4\5\0\10\4\1\0\1\4\3\0\3\4\1\0"+ - "\1\4\2\0\2\17\1\0\1\20\3\0\7\17\1\21"+ - "\1\0\1\17\3\0\1\22\2\17\1\0\1\17\1\0"+ - "\10\12\1\0\3\12\1\0\4\12\1\0\10\12\12\0"+ - "\1\23\32\0\1\24\3\0\1\25\36\0\1\26\12\0"+ - "\2\17\5\0\10\17\1\0\1\17\3\0\3\17\1\0"+ - "\1\17\2\0\2\17\5\0\10\17\1\0\1\17\3\0"+ - "\2\17\1\27\1\0\1\17\2\0\2\17\5\0\7\17"+ - "\1\30\1\0\1\17\3\0\3\17\1\0\1\17\12\0"+ - "\1\31\33\0\1\32\36\0\1\33\35\0\1\34\12\0"+ - "\2\17\5\0\10\17\1\0\1\17\3\0\3\17\1\0"+ - "\1\35\2\0\2\17\5\0\10\17\1\0\1\17\3\0"+ - "\1\17\1\36\1\17\1\0\1\17\13\0\1\37\40\0"+ - "\1\40\31\0\1\32\35\0\1\41\11\0\2\17\5\0"+ - "\10\17\1\0\1\17\3\0\3\17\1\42\1\17\2\0"+ - "\2\17\5\0\5\17\1\43\2\17\1\0\1\17\3\0"+ - "\3\17\1\0\1\17\14\0\1\32\4\0\1\40\20\0"+ - "\1\44\25\0\1\41\1\45\1\0\2\45\12\41\1\45"+ - "\1\41\1\45\2\0\3\41\1\0\1\41\2\0\2\46"+ - "\5\0\10\46\1\0\1\46\3\0\3\46\1\0\1\46"+ - "\2\0\2\17\5\0\10\17\1\0\1\17\3\0\2\17"+ - "\1\47\1\0\1\17\7\0\1\41\25\0\2\46\5\0"+ - "\10\46\1\0\1\46\2\0\1\50\3\46\1\0\1\46"+ - "\2\0\2\17\5\0\10\17\1\0\1\17\3\0\3\17"+ - "\1\51\1\17\2\0\2\52\5\0\10\52\1\0\1\52"+ - "\3\0\3\52\1\0\1\52\2\0\2\52\5\0\10\52"+ - "\1\0\1\52\2\0\1\53\3\52\1\0\1\52\1\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[918]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\1\11\1\1\2\11\1\1\2\11\4\1\1\11"+ - "\1\1\1\11\2\1\4\0\2\1\4\0\2\1\2\0"+ - "\1\1\1\0\1\1\3\0\1\1\1\11\2\0\1\11"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[43]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 1; + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\3\1\32\1\0\1\3\23\0\1\3\1\5\1\0\1\5" + + "\1\7\1\4\7\5\1\2\1\22\1\6\12\1\1\20\1\5\1\0" + "\1\5\1\0\2\5\32\1\1\5\1\23\1\5\1\0\1\2\1\0" + + "\1\1\1\25\1\1\1\31\1\17\1\14\1\26\1\10\1\15\2\1" + "\1\16\1\1\1\27\1\1\1\12\2\1\1\13\1\11\2\1\1\21" + + "\3\1\1\30\1\0\1\24\1\5\uff81\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 = "\2\0\2\1\1\2\1\3\1\1\1\4\1\5\4\6" + "\1\7\1\10\1\11\2\10\4\0\2\10\4\0\2\10" + + "\2\0\1\12\1\0\1\10\3\0\1\10\1\13\2\0" + "\1\14"; + + private static int[] zzUnpackAction() { + int[] result = new int[43]; + 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\33\0\66\0\121\0\66\0\66\0\154\0\66" + + "\0\66\0\207\0\242\0\275\0\330\0\66\0\363\0\66" + "\0\u010e\0\u0129\0\u0144\0\u015f\0\u017a\0\u0195\0\u01b0\0\u01cb" + + "\0\u01e6\0\u0201\0\u021c\0\u0237\0\u0252\0\u026d\0\u0288\0\u02a3" + + "\0\u02be\0\u02d9\0\u02f4\0\u030f\0\u02be\0\u032a\0\u0345\0\66" + "\0\u0360\0\u037b\0\66"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[43]; + 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 = "\1\3\2\4\1\5\1\6\3\3\10\4\1\3\1\4" + "\1\3\1\7\1\10\3\4\1\10\1\4\1\11\10\12" + + "\1\13\3\12\1\14\4\12\1\15\10\12\1\16\34\0" + "\2\4\5\0\10\4\1\0\1\4\3\0\3\4\1\0" + "\1\4\2\0\2\17\1\0\1\20\3\0\7\17\1\21" + + "\1\0\1\17\3\0\1\22\2\17\1\0\1\17\1\0" + "\10\12\1\0\3\12\1\0\4\12\1\0\10\12\12\0" + "\1\23\32\0\1\24\3\0\1\25\36\0\1\26\12\0" + + "\2\17\5\0\10\17\1\0\1\17\3\0\3\17\1\0" + "\1\17\2\0\2\17\5\0\10\17\1\0\1\17\3\0" + "\2\17\1\27\1\0\1\17\2\0\2\17\5\0\7\17" + + "\1\30\1\0\1\17\3\0\3\17\1\0\1\17\12\0" + "\1\31\33\0\1\32\36\0\1\33\35\0\1\34\12\0" + "\2\17\5\0\10\17\1\0\1\17\3\0\3\17\1\0" + + "\1\35\2\0\2\17\5\0\10\17\1\0\1\17\3\0" + "\1\17\1\36\1\17\1\0\1\17\13\0\1\37\40\0" + + "\1\40\31\0\1\32\35\0\1\41\11\0\2\17\5\0" + "\10\17\1\0\1\17\3\0\3\17\1\42\1\17\2\0" + "\2\17\5\0\5\17\1\43\2\17\1\0\1\17\3\0" + + "\3\17\1\0\1\17\14\0\1\32\4\0\1\40\20\0" + "\1\44\25\0\1\41\1\45\1\0\2\45\12\41\1\45" + + "\1\41\1\45\2\0\3\41\1\0\1\41\2\0\2\46" + "\5\0\10\46\1\0\1\46\3\0\3\46\1\0\1\46" + "\2\0\2\17\5\0\10\17\1\0\1\17\3\0\2\17" + + "\1\47\1\0\1\17\7\0\1\41\25\0\2\46\5\0" + "\10\46\1\0\1\46\2\0\1\50\3\46\1\0\1\46" + "\2\0\2\17\5\0\10\17\1\0\1\17\3\0\3\17" + + "\1\51\1\17\2\0\2\52\5\0\10\52\1\0\1\52" + "\3\0\3\52\1\0\1\52\2\0\2\52\5\0\10\52" + "\1\0\1\52\2\0\1\53\3\52\1\0\1\52\1\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[918]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\1\11\1\1\2\11\1\1\2\11\4\1\1\11" + "\1\1\1\11\2\1\4\0\2\1\4\0\2\1\2\0" + + "\1\1\1\0\1\1\3\0\1\1\1\11\2\0\1\11"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[43]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public LatexTokenMaker() { - } - - + public LatexTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * ${inheritDoc} */ @@ -344,29 +298,28 @@ public class LatexTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "%", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; - s = text; try { yyreset(zzReader); @@ -376,22 +329,20 @@ public class LatexTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. - * @exception IOException if any I/O-Error occurs. + * @return true if EOF was reached, otherwise + * false. + * @exception IOException + * if any I/O-Error occurs. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -400,7 +351,8 @@ public class LatexTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -409,322 +361,323 @@ public class LatexTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 LatexTokenMaker(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 LatexTokenMaker(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 < 112) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 1: { + addToken(Token.IDENTIFIER); + } + case 13: + break; + case 8: { + addToken(Token.FUNCTION); + } + case 14: + break; + case 2: { + addToken(Token.WHITESPACE); + } + case 15: + break; + case 12: { + int temp = zzStartRead; + addToken(temp, temp + 5, Token.RESERVED_WORD); + addToken(temp + 6, temp + 6, Token.SEPARATOR); + addToken(temp + 7, zzMarkedPos - 2, Token.RESERVED_WORD); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.SEPARATOR); + } + case 16: + break; + case 10: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 17: + break; + case 3: { + start = zzMarkedPos - 1; + yybegin(EOL_COMMENT); + } + case 18: + break; + case 11: { + int temp = zzStartRead; + addToken(temp, temp + 3, Token.RESERVED_WORD); + addToken(temp + 4, temp + 4, Token.SEPARATOR); + addToken(temp + 5, zzMarkedPos - 2, Token.RESERVED_WORD); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.SEPARATOR); + } + case 19: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 20: + break; + case 7: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 21: + break; + case 9: { + int temp = zzStartRead; + addToken(temp, temp, Token.SEPARATOR); + addToken(temp + 1, temp + 1, Token.IDENTIFIER); + } + case 22: + break; + case 6: {} + case 23: + break; + case 4: { + addToken(Token.SEPARATOR); + } + case 24: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 44: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 45: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 LatexTokenMaker(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 LatexTokenMaker(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 < 112) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 1: - { addToken(Token.IDENTIFIER); - } - case 13: break; - case 8: - { addToken(Token.FUNCTION); - } - case 14: break; - case 2: - { addToken(Token.WHITESPACE); - } - case 15: break; - case 12: - { int temp = zzStartRead; - addToken(temp, temp+5, Token.RESERVED_WORD); - addToken(temp+6, temp+6, Token.SEPARATOR); - addToken(temp+7, zzMarkedPos-2, Token.RESERVED_WORD); - addToken(zzMarkedPos-1, zzMarkedPos-1, Token.SEPARATOR); - } - case 16: break; - case 10: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 17: break; - case 3: - { start = zzMarkedPos-1; yybegin(EOL_COMMENT); - } - case 18: break; - case 11: - { int temp = zzStartRead; - addToken(temp, temp+3, Token.RESERVED_WORD); - addToken(temp+4, temp+4, Token.SEPARATOR); - addToken(temp+5, zzMarkedPos-2, Token.RESERVED_WORD); - addToken(zzMarkedPos-1, zzMarkedPos-1, Token.SEPARATOR); - } - case 19: break; - case 5: - { addNullToken(); return firstToken; - } - case 20: break; - case 7: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 21: break; - case 9: - { int temp = zzStartRead; - addToken(temp, temp, Token.SEPARATOR); - addToken(temp + 1, temp + 1, Token.IDENTIFIER); - } - case 22: break; - case 6: - { - } - case 23: break; - case 4: - { addToken(Token.SEPARATOR); - } - case 24: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 44: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 45: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/LessTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/LessTokenMaker.java index 613c4e7..f3c65f9 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/LessTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/LessTokenMaker.java @@ -1,18 +1,15 @@ /* * 08/23/2015 - * * Copyright (C) 2015 Robert Futrell * robert_futrell at users.sourceforge.net * http://fifesoft.com/rsyntaxtextarea - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSTALanguageSupport.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; import org.fife.ui.rsyntaxtextarea.TokenTypes; - /** * Scanner for Less files. * @@ -20,16 +17,14 @@ import org.fife.ui.rsyntaxtextarea.TokenTypes; * @version 1.0 */ public class LessTokenMaker extends CSSTokenMaker { - - + /** * Constructor; overridden to enable the niceties added by Less. */ public LessTokenMaker() { setHighlightingLess(true); } - - + /** * {@inheritDoc} */ @@ -37,16 +32,12 @@ public class LessTokenMaker extends CSSTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * {@inheritDoc} */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type == TokenTypes.VARIABLE || - super.getMarkOccurrencesOfTokenType(type); + return type == TokenTypes.VARIABLE || super.getMarkOccurrencesOfTokenType(type); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/LispTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/LispTokenMaker.java index 3d793aa..7b69b3a 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/LispTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/LispTokenMaker.java @@ -1,866 +1,539 @@ /* The following code was generated by JFlex 1.4.1 on 6/11/09 9:34 AM */ - /* * 11/13/2004 - * * LispTokenMaker.java - Scanner for the Lisp programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for the Lisp programming language.

+ * Scanner for the Lisp programming language. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated LispTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated LispTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class LispTokenMaker extends AbstractJFlexTokenMaker { - - /** 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 EOL_COMMENT = 3; - public static final int STRING = 1; - public static final int YYINITIAL = 0; - public static final int MLC = 2; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\14\1\13\1\0\1\14\1\10\22\0\1\14\1\34\1\73"+ - "\1\11\1\1\1\34\1\37\1\42\2\25\1\32\1\26\1\42\1\23"+ - "\1\24\1\35\1\4\1\71\1\71\5\6\2\3\1\40\1\16\1\27"+ - "\1\30\1\33\1\36\1\41\3\5\1\21\1\22\1\21\5\1\1\20"+ - "\13\1\1\17\2\1\1\42\1\12\1\42\1\31\1\2\1\0\1\56"+ - "\1\64\1\55\1\54\1\52\1\47\1\61\1\43\1\50\1\1\1\67"+ - "\1\51\1\63\1\60\1\57\1\45\1\72\1\62\1\46\1\44\1\7"+ - "\1\70\1\53\1\66\1\65\1\1\1\10\1\15\1\10\1\36\uff81\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 = - "\4\0\1\1\1\2\2\3\1\2\2\1\1\4\1\5"+ - "\1\6\1\7\1\6\1\1\1\10\5\6\17\2\1\11"+ - "\1\12\1\13\1\14\1\15\1\12\1\16\5\12\1\17"+ - "\3\12\1\1\1\20\1\3\1\21\1\20\1\21\1\20"+ - "\1\22\1\20\1\2\1\23\1\0\1\6\10\2\1\24"+ - "\14\2\1\24\12\2\1\13\1\25\10\0\1\1\1\21"+ - "\1\0\2\22\12\2\1\0\1\2\1\24\13\2\1\0"+ - "\1\24\16\2\10\0\1\1\7\2\1\24\3\2\1\0"+ - "\20\2\3\0\11\2\2\0\1\26\2\0\1\27\1\1"+ - "\10\2\1\0\3\2\2\0\13\2\3\0\5\2\4\0"+ - "\1\1\5\2\1\0\1\2\10\0\12\2\3\0\1\24"+ - "\2\2\1\0\1\2\16\0\3\2\1\0\4\2\4\0"+ - "\2\2\21\0\2\2\3\0\2\2\4\0\1\2\21\0"+ - "\1\2\5\0\2\2\23\0\1\2\201\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[512]; - 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\74\0\170\0\264\0\360\0\u012c\0\u0168\0\u01a4"+ - "\0\u01e0\0\u021c\0\u0258\0\u021c\0\u0294\0\u02d0\0\u021c\0\u030c"+ - "\0\u0348\0\u021c\0\u0384\0\u03c0\0\u03fc\0\u021c\0\u0438\0\u0474"+ - "\0\u04b0\0\u04ec\0\u0528\0\u0564\0\u05a0\0\u05dc\0\u0618\0\u0654"+ - "\0\u0690\0\u06cc\0\u0708\0\u0744\0\u0780\0\u07bc\0\u021c\0\u07f8"+ - "\0\u0834\0\u021c\0\u021c\0\u0870\0\u021c\0\u08ac\0\u08e8\0\u0924"+ - "\0\u0960\0\u099c\0\u021c\0\u09d8\0\u0a14\0\u0a50\0\u0a8c\0\u0ac8"+ - "\0\u0ac8\0\u0ac8\0\u0b04\0\u0b40\0\u0b7c\0\u0bb8\0\u0bf4\0\u0c30"+ - "\0\u021c\0\u02d0\0\u0c6c\0\u0ca8\0\u0ce4\0\u0d20\0\u0d5c\0\u0d98"+ - "\0\u0dd4\0\u0e10\0\u0e4c\0\u012c\0\u0e88\0\u0ec4\0\u0f00\0\u0f3c"+ - "\0\u0f78\0\u0fb4\0\u0ff0\0\u102c\0\u1068\0\u10a4\0\u10e0\0\u111c"+ - "\0\u1158\0\u1194\0\u11d0\0\u120c\0\u1248\0\u1284\0\u12c0\0\u12fc"+ - "\0\u1338\0\u1374\0\u13b0\0\u021c\0\u021c\0\u13ec\0\u1428\0\u1464"+ - "\0\u14a0\0\u14dc\0\u1518\0\u1554\0\u1590\0\u15cc\0\u1608\0\u1644"+ - "\0\u0ac8\0\u1680\0\u16bc\0\u16f8\0\u1734\0\u1770\0\u17ac\0\u17e8"+ - "\0\u1824\0\u1860\0\u189c\0\u18d8\0\u1914\0\u1950\0\u198c\0\u19c8"+ - "\0\u1a04\0\u1a40\0\u1a7c\0\u1ab8\0\u1af4\0\u1b30\0\u1b6c\0\u1ba8"+ - "\0\u1be4\0\u1c20\0\u1c5c\0\u021c\0\u1c98\0\u1cd4\0\u1d10\0\u1d4c"+ - "\0\u1d88\0\u1dc4\0\u1e00\0\u1e3c\0\u1e78\0\u1eb4\0\u1ef0\0\u1f2c"+ - "\0\u1f68\0\u1fa4\0\u1fe0\0\u201c\0\u2058\0\u2094\0\u20d0\0\u210c"+ - "\0\u2148\0\u2184\0\u21c0\0\u21fc\0\u2238\0\u2274\0\u22b0\0\u22ec"+ - "\0\u2328\0\u2364\0\u23a0\0\u23dc\0\u2418\0\u2454\0\u2490\0\u24cc"+ - "\0\u2508\0\u2544\0\u2580\0\u25bc\0\u25f8\0\u2634\0\u2670\0\u26ac"+ - "\0\u26e8\0\u2724\0\u2760\0\u279c\0\u27d8\0\u2814\0\u2850\0\u288c"+ - "\0\u28c8\0\u2904\0\u2940\0\u297c\0\u29b8\0\u29f4\0\u2a30\0\u2a6c"+ - "\0\u2aa8\0\u2ae4\0\u2b20\0\u2b5c\0\u2b98\0\u2bd4\0\u2c10\0\u2c4c"+ - "\0\u2c88\0\u2cc4\0\u2d00\0\u2d3c\0\u2d78\0\u2db4\0\u2df0\0\u2e2c"+ - "\0\u2e68\0\u2ea4\0\u2ee0\0\u2f1c\0\u2f58\0\u2f94\0\u2fd0\0\u300c"+ - "\0\u3048\0\u3084\0\u30c0\0\u30fc\0\u3138\0\u3174\0\u31b0\0\u31ec"+ - "\0\u3228\0\u3264\0\u32a0\0\u32dc\0\u3318\0\u3354\0\u3390\0\u33cc"+ - "\0\u3408\0\u3444\0\u3480\0\u34bc\0\u2bd4\0\u34f8\0\u2c88\0\u3534"+ - "\0\u3570\0\u35ac\0\u35e8\0\u3624\0\u3660\0\u369c\0\u36d8\0\u3714"+ - "\0\u3750\0\u378c\0\u37c8\0\u3804\0\u3840\0\u387c\0\u38b8\0\u38f4"+ - "\0\u3930\0\u396c\0\u39a8\0\u39e4\0\u3a20\0\u3a5c\0\u3a98\0\u3ad4"+ - "\0\u3b10\0\u3b4c\0\u3b88\0\u3bc4\0\u3c00\0\u3c3c\0\u3c78\0\u3cb4"+ - "\0\u3cf0\0\u3d2c\0\u3d68\0\u3da4\0\u3de0\0\u3e1c\0\u3e58\0\u3e94"+ - "\0\u3ed0\0\u3f0c\0\u3f48\0\u3f84\0\u3fc0\0\u3ffc\0\u4038\0\u4074"+ - "\0\u40b0\0\u40ec\0\u4128\0\u4164\0\u41a0\0\u41dc\0\u4218\0\u4254"+ - "\0\u4290\0\u42cc\0\u4308\0\u4344\0\u4380\0\u43bc\0\u43f8\0\u4434"+ - "\0\u4470\0\u44ac\0\u44e8\0\u4524\0\u4560\0\u459c\0\u45d8\0\u4614"+ - "\0\u4650\0\u468c\0\u46c8\0\u4704\0\u4740\0\u477c\0\u47b8\0\u47f4"+ - "\0\u4830\0\u486c\0\u48a8\0\u48e4\0\u4920\0\u495c\0\u4998\0\u49d4"+ - "\0\u4a10\0\u4a4c\0\u4a88\0\u4ac4\0\u4b00\0\u4b3c\0\u4b78\0\u4bb4"+ - "\0\u4bf0\0\u4c2c\0\u4c68\0\u4ca4\0\u4ce0\0\u4d1c\0\u4d58\0\u4d94"+ - "\0\u4dd0\0\u4e0c\0\u4e48\0\u4e84\0\u4ec0\0\u4efc\0\u4f38\0\u4f74"+ - "\0\u4fb0\0\u4fec\0\u5028\0\u5064\0\u50a0\0\u50dc\0\u5118\0\u5154"+ - "\0\u5190\0\u51cc\0\u5208\0\u5244\0\u5280\0\u52bc\0\u52f8\0\u5334"+ - "\0\u5370\0\u53ac\0\u53e8\0\u5424\0\u5460\0\u549c\0\u54d8\0\u5514"+ - "\0\u5550\0\u558c\0\u55c8\0\u5604\0\u5640\0\u567c\0\u56b8\0\u56f4"+ - "\0\u5730\0\u576c\0\u57a8\0\u57e4\0\u5820\0\u585c\0\u5898\0\u58d4"+ - "\0\u5910\0\u594c\0\u5988\0\u59c4\0\u5a00\0\u5a3c\0\u5a78\0\u5ab4"+ - "\0\u5af0\0\u5b2c\0\u5b68\0\u5ba4\0\u5be0\0\u5c1c\0\u5c58\0\u5c94"+ - "\0\u5cd0\0\u5d0c\0\u5d48\0\u5d84\0\u5dc0\0\u5dfc\0\u5e38\0\u5e74"+ - "\0\u5eb0\0\u5eec\0\u5f28\0\u5f64\0\u5fa0\0\u5fdc\0\u6018\0\u6054"+ - "\0\u6090\0\u60cc\0\u6108\0\u6144\0\u6180\0\u61bc\0\u61f8\0\u6234"+ - "\0\u6270\0\u62ac\0\u62e8\0\u6324\0\u6360\0\u639c\0\u63d8\0\u6414"+ - "\0\u6450\0\u648c\0\u64c8\0\u6504\0\u6540\0\u657c\0\u65b8\0\u65f4"+ - "\0\u6630\0\u666c\0\u66a8\0\u66e4\0\u6720\0\u675c\0\u6798\0\u67d4"+ - "\0\u6810\0\u684c\0\u6888\0\u68c4\0\u6900\0\u693c\0\u6978\0\u69b4"+ - "\0\u69f0\0\u6a2c\0\u6a68\0\u6aa4\0\u6ae0\0\u6b1c\0\u6b58\0\u6b94"+ - "\0\u6bd0\0\u6c0c\0\u6c48\0\u6c84\0\u6cc0\0\u6cfc\0\u6d38\0\u6d74"+ - "\0\u6db0\0\u6dec\0\u6e28\0\u6e64\0\u6ea0\0\u6edc\0\u6f18\0\u6f54"+ - "\0\u6f90\0\u6fcc\0\u7008\0\u7044\0\u7080\0\u70bc\0\u70f8\0\u7134"+ - "\0\u7170\0\u71ac\0\u71e8\0\u7224\0\u7260\0\u729c\0\u72d8\0\u7314"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[512]; - 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 = - "\1\5\2\6\1\7\1\10\1\6\1\7\1\11\1\12"+ - "\1\13\1\5\1\14\1\15\1\16\1\17\4\6\1\20"+ - "\1\21\1\22\1\23\1\24\3\16\1\25\2\16\1\26"+ - "\1\27\1\26\1\5\1\12\1\30\1\31\1\32\1\33"+ - "\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43"+ - "\3\6\1\44\1\45\1\46\4\6\1\7\1\6\1\47"+ - "\12\50\1\51\1\52\57\50\1\53\13\54\1\55\1\54"+ - "\1\56\25\54\1\57\3\54\1\60\3\54\1\61\20\54"+ - "\13\62\1\63\27\62\1\64\3\62\1\65\3\62\1\66"+ - "\20\62\10\5\1\0\2\5\4\0\4\5\16\0\1\5"+ - "\1\0\30\5\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\30\6\1\0\3\70"+ - "\2\7\1\70\1\7\1\70\1\0\2\70\4\0\1\70"+ - "\1\71\1\72\1\73\1\0\1\74\14\0\1\70\1\0"+ - "\4\70\1\72\1\70\1\71\1\73\1\70\1\72\14\70"+ - "\1\7\1\70\1\0\3\70\1\75\1\76\1\70\1\76"+ - "\1\70\1\0\2\70\4\0\1\77\1\71\1\72\1\73"+ - "\1\0\1\74\14\0\1\70\1\0\4\70\1\72\1\70"+ - "\1\71\1\73\1\70\1\72\11\70\1\77\2\70\1\76"+ - "\1\70\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\15\6\1\100\12\6\75\0"+ - "\10\5\1\0\2\5\2\0\1\101\1\0\4\5\16\0"+ - "\1\5\1\0\30\5\15\0\1\15\107\0\1\26\66\0"+ - "\1\26\4\0\1\26\46\0\2\74\1\0\1\74\62\0"+ - "\1\74\30\0\1\26\1\0\1\26\72\0\1\102\1\26"+ - "\73\0\1\26\2\0\1\103\70\0\1\26\6\0\1\26"+ - "\34\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\13\6\1\104\14\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\1\105\12\6\1\106\6\6\1\107\5\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\17\6\1\110\10\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\5\6\1\111\14\6\1\112\5\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\6\6\1\113\21\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\4\6\1\114"+ - "\10\6\1\115\1\116\11\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6"+ - "\1\117\3\6\1\120\1\121\13\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\1\6\1\122\10\6\1\123\4\6\1\124\5\6\1\125"+ - "\2\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\1\126\4\6\1\127\22\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\7\6\1\130\4\6\1\131\13\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\1\6\1\122\5\6\1\132\2\6"+ - "\1\123\1\133\1\134\13\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\3\6"+ - "\1\135\15\6\1\136\6\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6"+ - "\1\137\20\6\1\0\1\5\6\6\1\140\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\141"+ - "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\6\6\1\142\10\6\1\143"+ - "\10\6\1\0\12\50\2\0\57\50\1\0\13\144\1\0"+ - "\60\144\13\54\1\0\1\54\1\0\25\54\1\0\3\54"+ - "\1\0\3\54\1\0\20\54\11\0\1\145\126\0\1\146"+ - "\73\0\1\147\3\0\1\150\76\0\1\151\20\0\13\62"+ - "\1\0\27\62\1\0\3\62\1\0\3\62\1\0\20\62"+ - "\44\0\1\152\73\0\1\153\3\0\1\154\76\0\1\155"+ - "\20\0\7\5\1\156\1\0\2\5\4\0\4\5\16\0"+ - "\1\5\1\0\30\5\1\0\10\70\1\0\2\70\4\0"+ - "\4\70\16\0\1\70\1\0\30\70\1\0\3\70\2\157"+ - "\1\70\1\157\1\70\1\0\2\70\4\0\4\70\1\160"+ - "\2\0\1\160\12\0\1\70\1\0\26\70\1\157\1\70"+ - "\1\0\3\70\2\74\1\70\1\74\1\70\1\0\2\70"+ - "\4\0\2\70\1\72\1\73\16\0\1\70\1\0\4\70"+ - "\1\72\2\70\1\73\1\70\1\72\14\70\1\74\1\70"+ - "\1\0\3\70\2\75\1\70\1\75\1\70\1\0\2\70"+ - "\4\0\2\70\1\72\1\73\1\0\1\74\14\0\1\70"+ - "\1\0\4\70\1\72\2\70\1\73\1\70\1\72\14\70"+ - "\1\75\1\70\1\0\3\70\1\75\1\76\1\70\1\76"+ - "\1\70\1\0\2\70\4\0\1\70\1\161\1\72\1\73"+ - "\1\0\1\74\14\0\1\70\1\0\4\70\1\72\1\70"+ - "\1\161\1\73\1\70\1\72\14\70\1\76\1\70\1\0"+ - "\3\70\4\162\1\70\1\0\2\70\4\0\2\70\2\162"+ - "\16\0\1\70\1\0\4\70\1\162\2\70\1\162\1\70"+ - "\3\162\5\70\1\162\4\70\1\162\1\70\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\6\6\1\163\1\6\1\164\17\6\31\0\1\26"+ - "\2\0\1\16\40\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\15\6\1\165\12\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\7\6\1\114\7\6\1\166\10\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\16\6\1\167\11\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\2\6\1\170\25\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\14\6"+ - "\1\171\13\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\16\6\1\172\11\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\20\6\1\173\7\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\7\6\1\174\20\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\1\175\15\0\1\5\1\0"+ - "\30\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\15\6\1\176\12\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\1\6\1\177\26\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\20\6\1\200\1\201\6\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\12\6"+ - "\1\202\1\6\1\203\13\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\22\6"+ - "\1\107\5\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\13\6\1\204\14\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\17\6\1\205\10\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\13\6\1\206\14\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6"+ - "\1\207\20\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\1\6\1\210\26\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\4\6\1\211\5\6\1\212\15\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\1\213\6\0\1\214\6\0\1\5\1\0\1\6\1\215"+ - "\4\6\1\216\21\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\17\6\1\124"+ - "\10\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\1\6\1\217\1\6\1\220"+ - "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\15\6\1\221\12\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\3\6\1\222\24\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\14\6\1\223\13\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\1\6\1\224"+ - "\1\6\1\225\23\6\1\226\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\6\6"+ - "\1\227\21\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\12\6\1\230\15\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\14\6\1\231\13\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\7\6\1\232\20\6\45\0\1\233\74\0\1\234"+ - "\77\0\1\235\75\0\1\236\64\0\1\237\74\0\1\240"+ - "\77\0\1\241\75\0\1\242\20\0\3\5\4\243\1\5"+ - "\1\0\2\5\4\0\2\5\2\243\16\0\1\5\1\0"+ - "\4\5\1\243\2\5\1\243\1\5\3\243\5\5\1\243"+ - "\4\5\1\243\1\5\1\0\3\70\2\157\1\70\1\157"+ - "\1\70\1\0\2\70\4\0\2\70\1\72\1\70\16\0"+ - "\1\70\1\0\4\70\1\72\4\70\1\72\14\70\1\157"+ - "\1\70\4\0\2\157\1\0\1\157\62\0\1\157\2\0"+ - "\3\70\4\162\1\70\1\0\2\70\4\0\1\70\1\161"+ - "\2\162\16\0\1\70\1\0\4\70\1\162\1\70\1\161"+ - "\1\162\1\70\3\162\5\70\1\162\4\70\1\162\1\70"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\7\6\1\244\20\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\5\6\1\245\22\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\11\6"+ - "\1\246\16\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\14\6\1\247\13\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\21\6\1\250\6\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\7\6\1\251\20\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\12\6"+ - "\1\252\3\6\1\253\6\6\1\254\2\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\15\6\1\255\12\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\21\6"+ - "\1\256\6\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\1\6\1\114\26\6"+ - "\46\0\1\257\26\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\14\6\1\260\13\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\7\0\1\214\6\0\1\5\1\0\30\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\21\6\1\261\6\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6"+ - "\1\262\20\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\13\6\1\263\14\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\2\6\1\114\25\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\3\6\1\220\24\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\14\6"+ - "\1\264\13\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\6\6\1\265\21\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\15\6\1\114\12\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\1\266\27\6\1\0\1\5\6\6\1\207\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\1\6"+ - "\1\267\1\270\1\271\1\6\1\272\4\6\1\273\3\6"+ - "\1\274\1\6\1\275\4\6\1\276\2\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\6\6\1\277\21\6\47\0\1\300\3\0\1\301"+ - "\3\0\1\302\15\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\5\6\1\303\22\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\5\6\1\304\22\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\12\6\1\305\15\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6"+ - "\1\114\20\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\11\6\1\114\16\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\7\6\1\223\20\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\17\6\1\174\10\6\1\0\1\5\6\6\1\306"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\30\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\1\6\1\307\26\6\1\0"+ - "\1\5\6\6\1\310\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\30\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\1\6"+ - "\1\311\26\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\17\6\1\312\10\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\12\6\1\313\15\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\13\6\1\313\14\6\46\0\1\314\66\0\1\315"+ - "\105\0\1\234\45\0\1\316\114\0\1\317\66\0\1\320"+ - "\105\0\1\240\45\0\1\321\47\0\3\5\4\322\1\5"+ - "\1\0\2\5\4\0\2\5\2\322\16\0\1\5\1\0"+ - "\4\5\1\322\2\5\1\322\1\5\3\322\5\5\1\322"+ - "\4\5\1\322\1\5\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\3\6\1\323"+ - "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\15\6\1\324\12\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\6\6\1\325\21\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\10\6\1\114\17\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\14\6\1\326"+ - "\13\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\12\6\1\123\15\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\6\6\1\327\21\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\7\0\1\214\6\0"+ - "\1\5\1\0\15\6\1\114\7\6\2\114\1\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\5\6\1\330\22\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\13\6\1\331\14\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\14\6\1\332"+ - "\13\6\57\0\1\333\15\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\17\6\1\334"+ - "\10\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\11\6\1\335\16\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\6\6\1\323\21\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\6\6\1\336\21\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\17\6\1\114"+ - "\10\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\1\337\15\0\1\5\1\0\30\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\1\340\15\0"+ - "\1\5\1\0\30\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\22\6\1\341"+ - "\5\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\13\6\1\342\14\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\1\6\1\343\5\6\1\344\20\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\15\6\1\345\12\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\6\6\1\346\5\6\1\347\13\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\7\6\1\350\20\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\351"+ - "\3\6\1\352\14\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\264"+ - "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\13\6\1\353\14\6\66\0"+ - "\1\354\74\0\1\355\56\0\1\356\22\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\20\6\1\357\7\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\3\6\1\174"+ - "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\1\114\27\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\17\6\1\360\10\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\13\6"+ - "\1\361\14\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\5\6\1\362\22\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\5\6\1\363\22\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\14\6\1\34\13\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\24\6"+ - "\1\114\3\6\41\0\1\315\5\0\1\234\62\0\1\364"+ - "\37\0\1\316\1\365\5\316\1\0\1\365\4\0\1\365"+ - "\4\316\4\365\1\0\1\365\1\0\1\365\1\0\1\365"+ - "\1\316\5\365\30\316\41\0\1\320\5\0\1\240\62\0"+ - "\1\366\37\0\1\321\1\367\5\321\1\0\1\367\4\0"+ - "\1\367\4\321\4\367\1\0\1\367\1\0\1\367\1\0"+ - "\1\367\1\321\5\367\30\321\1\0\3\5\4\370\1\5"+ - "\1\0\2\5\4\0\2\5\2\370\16\0\1\5\1\0"+ - "\4\5\1\370\2\5\1\370\1\5\3\370\5\5\1\370"+ - "\4\5\1\370\1\5\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\3\6\1\114"+ - "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\11\6\1\371\16\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\7\6\1\372\20\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\11\6\1\373\16\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\374"+ - "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\11\6\1\220\16\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\6\6\1\114\21\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\6\6\1\375\21\6\56\0\1\376\16\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\7\6\1\377\20\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\114"+ - "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\6\6\1\373\21\6\54\0"+ - "\1\u0100\63\0\1\u0101\1\0\1\u0102\1\u0103\1\0\1\u0104"+ - "\4\0\1\u0105\1\u0106\1\u0107\14\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\2\6"+ - "\1\220\25\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\12\6\1\u0108\4\6"+ - "\1\u0109\10\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\17\6\1\u010a\10\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\1\6\1\u010b\26\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\7\6\1\u010c\20\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\13\6"+ - "\1\244\14\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\15\6\1\u010d\12\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\15\6\1\u010e\12\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\1\6\1\u010f\26\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\12\6"+ - "\1\u0110\15\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\5\6\1\u0111\11\6"+ - "\1\220\10\6\64\0\1\u0112\54\0\1\u0113\100\0\1\u0114"+ - "\22\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\7\6\1\323\20\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\15\6\1\u0115\12\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\17\6"+ - "\1\u0116\10\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\17\6\1\220\10\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\2\6\1\u0117\25\6\36\0\1\316"+ - "\73\0\1\321\36\0\3\5\4\6\1\5\1\0\2\5"+ - "\4\0\2\5\2\6\16\0\1\5\1\0\4\5\1\6"+ - "\2\5\1\6\1\5\3\6\5\5\1\6\4\5\1\6"+ - "\1\5\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\1\u0118\15\0\1\5\1\0\30\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\17\6\1\u0119\10\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\22\6"+ - "\1\114\5\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\5\6\1\u0111\22\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\1\u011a\15\0\1\5\1\0\30\6\70\0\1\u011b\4\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\1\u011c"+ - "\15\0\1\5\1\0\30\6\44\0\1\u011d\106\0\1\u011e"+ - "\73\0\1\u011f\61\0\1\u0120\3\0\1\u0121\1\u0122\102\0"+ - "\1\u0123\72\0\1\u0124\71\0\1\u0125\25\0\1\u0126\35\0"+ - "\1\u0127\26\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\24\6\1\u0128\3\6\1\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\13\6\1\u0129\14\6\1\0\1\5\6\6"+ - "\1\u012a\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\30\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\4\6\1\114\23\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\1\u012b\15\0\1\5\1\0\30\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\3\6\1\u012c\24\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\u012d"+ - "\20\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\1\u012e\27\6\1\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\17\6\1\u012f\10\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\20\6"+ - "\1\114\7\6\65\0\1\u0130\61\0\1\u0131\44\0\1\u0132"+ - "\50\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\1\u0133\15\0\1\5\1\0\30\6\1\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\1\6\1\u0134\26\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\6\6\1\u0135"+ - "\21\6\46\0\1\u0136\26\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\1\u0137\15\0\1\5\1\0\30\6"+ - "\64\0\1\u0138\66\0\1\u0139\67\0\1\u013a\73\0\1\u013b"+ - "\67\0\1\u013c\102\0\1\u013d\74\0\1\u013e\100\0\1\u013f"+ - "\67\0\1\u0140\61\0\1\u0141\106\0\1\u0142\2\0\1\u0143"+ - "\65\0\1\u0144\62\0\1\u0145\101\0\1\u0146\21\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\13\6\1\u0147\14\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\20\6"+ - "\1\u0148\7\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\12\6\1\174\15\6"+ - "\47\0\1\u0149\6\0\1\u014a\5\0\1\u014b\10\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5"+ - "\1\0\1\6\1\u014c\26\6\1\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\17\6"+ - "\1\u014d\10\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\14\6\1\221\13\6"+ - "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6"+ - "\16\0\1\5\1\0\14\6\1\114\13\6\60\0\1\u014e"+ - "\76\0\1\u014f\57\0\1\300\74\0\1\u0150\24\0\1\5"+ - "\7\6\1\0\1\5\1\67\4\0\4\6\1\u0151\15\0"+ - "\1\5\1\0\30\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\u0152"+ - "\20\6\63\0\1\u0153\66\0\1\u0154\6\0\1\u0155\65\0"+ - "\1\u0156\76\0\1\u0157\74\0\1\u0158\71\0\1\214\56\0"+ - "\1\u0159\117\0\1\u015a\64\0\1\u015b\60\0\1\u015c\72\0"+ - "\1\u015d\36\0\1\u015e\140\0\1\u015f\64\0\1\u0160\100\0"+ - "\1\u0161\66\0\1\u0162\106\0\1\u0163\13\0\1\5\7\6"+ - "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0"+ - "\16\6\1\220\11\6\1\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\u0164"+ - "\20\6\53\0\1\u0165\12\0\1\u0166\65\0\1\u0167\66\0"+ - "\1\u0168\4\0\1\u0169\14\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\u016a"+ - "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0"+ - "\4\6\16\0\1\5\1\0\5\6\1\u016b\22\6\52\0"+ - "\1\u015d\102\0\1\u016c\75\0\1\u016d\66\0\1\u0154\2\0"+ - "\1\u016e\3\0\1\u0155\7\0\1\5\7\6\1\0\1\5"+ - "\1\67\4\0\4\6\1\u016f\15\0\1\5\1\0\30\6"+ - "\60\0\1\u0170\72\0\1\u0171\65\0\1\u0172\100\0\1\u0173"+ - "\70\0\1\214\103\0\1\u0174\34\0\1\u0175\126\0\1\u0176"+ - "\71\0\1\u0177\70\0\1\u0178\70\0\1\214\71\0\1\u0179"+ - "\77\0\1\u017a\73\0\1\u017b\71\0\1\u017c\34\0\1\u017d"+ - "\107\0\1\u017e\50\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\1\6\1\u017f\26\6"+ - "\45\0\1\u0180\112\0\1\u0181\70\0\1\u0182\2\0\1\u0183"+ - "\54\0\1\u0184\103\0\1\u0185\17\0\1\5\7\6\1\0"+ - "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\15\6"+ - "\1\174\12\6\1\0\1\5\7\6\1\0\1\5\1\67"+ - "\4\0\4\6\16\0\1\5\1\0\12\6\1\114\15\6"+ - "\57\0\1\356\74\0\1\u0186\72\0\1\u0187\105\0\1\u0188"+ - "\47\0\1\u0189\75\0\1\u0157\105\0\1\u018a\75\0\1\u018b"+ - "\70\0\1\u018c\60\0\1\u018d\110\0\1\u018e\70\0\1\u018f"+ - "\67\0\1\u0190\44\0\1\u0191\114\0\1\u0192\100\0\1\u0193"+ - "\70\0\1\u0174\71\0\1\u0194\75\0\1\u0195\1\u0196\24\0"+ - "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0"+ - "\1\5\1\0\7\6\1\264\20\6\50\0\1\u0197\110\0"+ - "\1\u0198\63\0\1\u0199\64\0\1\u019a\71\0\1\u019b\100\0"+ - "\1\u019c\106\0\1\214\73\0\1\u0157\66\0\1\u019d\67\0"+ - "\1\u019e\75\0\1\214\76\0\1\u019f\76\0\1\u015d\67\0"+ - "\1\u01a0\67\0\1\u01a1\103\0\1\u01a2\34\0\1\u01a3\117\0"+ - "\1\u01a4\74\0\1\u01a5\101\0\1\u01a6\40\0\1\u01a7\114\0"+ - "\1\u01a8\77\0\1\u01a9\46\0\1\u01aa\127\0\1\u01ab\64\0"+ - "\1\u01ac\73\0\1\u01ad\102\0\1\u01ae\63\0\1\u01af\75\0"+ - "\1\u01b0\77\0\1\u01b1\67\0\1\u01b2\106\0\1\u01b3\32\0"+ - "\1\u01b4\124\0\1\u01b5\101\0\1\u01b6\73\0\1\u01b7\70\0"+ - "\1\u01b8\60\0\1\u01b9\73\0\1\u01ba\111\0\1\u01bb\62\0"+ - "\1\u0157\74\0\1\u01bc\72\0\1\u01bd\66\0\1\u01be\100\0"+ - "\1\u01bf\76\0\1\u01c0\104\0\1\u01bd\15\0\1\u01c1\130\0"+ - "\1\214\101\0\1\u01b1\72\0\1\u018e\72\0\1\u01c2\46\0"+ - "\1\u01c3\122\0\1\u01c4\100\0\1\u01c5\74\0\1\u01c6\63\0"+ - "\1\u01c7\102\0\1\u01c8\66\0\1\u01c9\107\0\1\u01ca\30\0"+ - "\1\u01cb\120\0\1\u01cc\75\0\1\u01cd\44\0\1\u01ce\122\0"+ - "\1\u01cf\65\0\1\u01d0\77\0\1\u01d1\71\0\1\u01d2\110\0"+ - "\1\u01c8\33\0\1\u01d3\127\0\1\u01d4\37\0\1\u01d5\126\0"+ - "\1\u0186\62\0\1\u01d6\111\0\1\u01d7\67\0\1\u013b\76\0"+ - "\1\u01bd\66\0\1\u01d8\41\0\1\u01d9\122\0\1\u01da\100\0"+ - "\1\u01db\60\0\1\u01dc\111\0\1\u01dd\71\0\1\u01de\61\0"+ - "\1\u01df\103\0\1\u01e0\73\0\1\u01e1\74\0\1\u01e2\100\0"+ - "\1\u0155\71\0\1\u01e3\34\0\1\u01e4\126\0\1\u01e5\67\0"+ - "\1\u01e6\44\0\1\u01e7\114\0\1\u01e8\107\0\1\u01e9\70\0"+ - "\1\u01ea\101\0\1\u01eb\66\0\1\u01ec\63\0\1\u01ed\107\0"+ - "\1\u01b1\57\0\1\u01ee\34\0\1\u01ef\146\0\1\u01f0\65\0"+ - "\1\u01f1\101\0\1\u01f2\75\0\1\u01f3\53\0\1\u01f4\114\0"+ - "\1\u01f5\52\0\1\u01f6\107\0\1\u01f7\63\0\1\u01f8\75\0"+ - "\1\u01f9\100\0\1\214\64\0\1\u01fa\102\0\1\u01f9\74\0"+ - "\1\u01fb\71\0\1\u01fc\65\0\1\u01b1\103\0\1\u01fd\75\0"+ - "\1\214\71\0\1\u01fe\57\0\1\u01ff\111\0\1\u0140\72\0"+ - "\1\214\70\0\1\u01ac\73\0\1\u0200\103\0\1\214\5\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[29520]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\4\0\5\1\1\11\1\1\1\11\2\1\1\11\2\1"+ - "\1\11\3\1\1\11\20\1\1\11\2\1\2\11\1\1"+ - "\1\11\5\1\1\11\15\1\1\11\1\0\41\1\2\11"+ - "\10\0\2\1\1\0\14\1\1\0\15\1\1\0\1\11"+ - "\16\1\10\0\14\1\1\0\20\1\3\0\11\1\2\0"+ - "\1\1\2\0\12\1\1\0\3\1\2\0\13\1\3\0"+ - "\5\1\4\0\6\1\1\0\1\1\10\0\12\1\3\0"+ - "\3\1\1\0\1\1\16\0\3\1\1\0\4\1\4\0"+ - "\2\1\21\0\2\1\3\0\2\1\4\0\1\1\21\0"+ - "\1\1\5\0\2\1\23\0\1\1\201\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[512]; - 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 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; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** 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 EOL_COMMENT = 3; + public static final int STRING = 1; + public static final int YYINITIAL = 0; + public static final int MLC = 2; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\14\1\13\1\0\1\14\1\10\22\0\1\14\1\34\1\73" + + "\1\11\1\1\1\34\1\37\1\42\2\25\1\32\1\26\1\42\1\23" + "\1\24\1\35\1\4\1\71\1\71\5\6\2\3\1\40\1\16\1\27" + + "\1\30\1\33\1\36\1\41\3\5\1\21\1\22\1\21\5\1\1\20" + "\13\1\1\17\2\1\1\42\1\12\1\42\1\31\1\2\1\0\1\56" + + "\1\64\1\55\1\54\1\52\1\47\1\61\1\43\1\50\1\1\1\67" + "\1\51\1\63\1\60\1\57\1\45\1\72\1\62\1\46\1\44\1\7" + + "\1\70\1\53\1\66\1\65\1\1\1\10\1\15\1\10\1\36\uff81\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 = "\4\0\1\1\1\2\2\3\1\2\2\1\1\4\1\5" + "\1\6\1\7\1\6\1\1\1\10\5\6\17\2\1\11" + + "\1\12\1\13\1\14\1\15\1\12\1\16\5\12\1\17" + "\3\12\1\1\1\20\1\3\1\21\1\20\1\21\1\20" + + "\1\22\1\20\1\2\1\23\1\0\1\6\10\2\1\24" + "\14\2\1\24\12\2\1\13\1\25\10\0\1\1\1\21" + "\1\0\2\22\12\2\1\0\1\2\1\24\13\2\1\0" + + "\1\24\16\2\10\0\1\1\7\2\1\24\3\2\1\0" + "\20\2\3\0\11\2\2\0\1\26\2\0\1\27\1\1" + "\10\2\1\0\3\2\2\0\13\2\3\0\5\2\4\0" + + "\1\1\5\2\1\0\1\2\10\0\12\2\3\0\1\24" + "\2\2\1\0\1\2\16\0\3\2\1\0\4\2\4\0" + "\2\2\21\0\2\2\3\0\2\2\4\0\1\2\21\0" + + "\1\2\5\0\2\2\23\0\1\2\201\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[512]; + 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\74\0\170\0\264\0\360\0\u012c\0\u0168\0\u01a4" + + "\0\u01e0\0\u021c\0\u0258\0\u021c\0\u0294\0\u02d0\0\u021c\0\u030c" + + "\0\u0348\0\u021c\0\u0384\0\u03c0\0\u03fc\0\u021c\0\u0438\0\u0474" + + "\0\u04b0\0\u04ec\0\u0528\0\u0564\0\u05a0\0\u05dc\0\u0618\0\u0654" + + "\0\u0690\0\u06cc\0\u0708\0\u0744\0\u0780\0\u07bc\0\u021c\0\u07f8" + + "\0\u0834\0\u021c\0\u021c\0\u0870\0\u021c\0\u08ac\0\u08e8\0\u0924" + + "\0\u0960\0\u099c\0\u021c\0\u09d8\0\u0a14\0\u0a50\0\u0a8c\0\u0ac8" + + "\0\u0ac8\0\u0ac8\0\u0b04\0\u0b40\0\u0b7c\0\u0bb8\0\u0bf4\0\u0c30" + + "\0\u021c\0\u02d0\0\u0c6c\0\u0ca8\0\u0ce4\0\u0d20\0\u0d5c\0\u0d98" + + "\0\u0dd4\0\u0e10\0\u0e4c\0\u012c\0\u0e88\0\u0ec4\0\u0f00\0\u0f3c" + + "\0\u0f78\0\u0fb4\0\u0ff0\0\u102c\0\u1068\0\u10a4\0\u10e0\0\u111c" + + "\0\u1158\0\u1194\0\u11d0\0\u120c\0\u1248\0\u1284\0\u12c0\0\u12fc" + + "\0\u1338\0\u1374\0\u13b0\0\u021c\0\u021c\0\u13ec\0\u1428\0\u1464" + + "\0\u14a0\0\u14dc\0\u1518\0\u1554\0\u1590\0\u15cc\0\u1608\0\u1644" + + "\0\u0ac8\0\u1680\0\u16bc\0\u16f8\0\u1734\0\u1770\0\u17ac\0\u17e8" + + "\0\u1824\0\u1860\0\u189c\0\u18d8\0\u1914\0\u1950\0\u198c\0\u19c8" + + "\0\u1a04\0\u1a40\0\u1a7c\0\u1ab8\0\u1af4\0\u1b30\0\u1b6c\0\u1ba8" + + "\0\u1be4\0\u1c20\0\u1c5c\0\u021c\0\u1c98\0\u1cd4\0\u1d10\0\u1d4c" + + "\0\u1d88\0\u1dc4\0\u1e00\0\u1e3c\0\u1e78\0\u1eb4\0\u1ef0\0\u1f2c" + + "\0\u1f68\0\u1fa4\0\u1fe0\0\u201c\0\u2058\0\u2094\0\u20d0\0\u210c" + + "\0\u2148\0\u2184\0\u21c0\0\u21fc\0\u2238\0\u2274\0\u22b0\0\u22ec" + + "\0\u2328\0\u2364\0\u23a0\0\u23dc\0\u2418\0\u2454\0\u2490\0\u24cc" + + "\0\u2508\0\u2544\0\u2580\0\u25bc\0\u25f8\0\u2634\0\u2670\0\u26ac" + + "\0\u26e8\0\u2724\0\u2760\0\u279c\0\u27d8\0\u2814\0\u2850\0\u288c" + + "\0\u28c8\0\u2904\0\u2940\0\u297c\0\u29b8\0\u29f4\0\u2a30\0\u2a6c" + + "\0\u2aa8\0\u2ae4\0\u2b20\0\u2b5c\0\u2b98\0\u2bd4\0\u2c10\0\u2c4c" + + "\0\u2c88\0\u2cc4\0\u2d00\0\u2d3c\0\u2d78\0\u2db4\0\u2df0\0\u2e2c" + + "\0\u2e68\0\u2ea4\0\u2ee0\0\u2f1c\0\u2f58\0\u2f94\0\u2fd0\0\u300c" + + "\0\u3048\0\u3084\0\u30c0\0\u30fc\0\u3138\0\u3174\0\u31b0\0\u31ec" + + "\0\u3228\0\u3264\0\u32a0\0\u32dc\0\u3318\0\u3354\0\u3390\0\u33cc" + + "\0\u3408\0\u3444\0\u3480\0\u34bc\0\u2bd4\0\u34f8\0\u2c88\0\u3534" + + "\0\u3570\0\u35ac\0\u35e8\0\u3624\0\u3660\0\u369c\0\u36d8\0\u3714" + + "\0\u3750\0\u378c\0\u37c8\0\u3804\0\u3840\0\u387c\0\u38b8\0\u38f4" + + "\0\u3930\0\u396c\0\u39a8\0\u39e4\0\u3a20\0\u3a5c\0\u3a98\0\u3ad4" + + "\0\u3b10\0\u3b4c\0\u3b88\0\u3bc4\0\u3c00\0\u3c3c\0\u3c78\0\u3cb4" + + "\0\u3cf0\0\u3d2c\0\u3d68\0\u3da4\0\u3de0\0\u3e1c\0\u3e58\0\u3e94" + + "\0\u3ed0\0\u3f0c\0\u3f48\0\u3f84\0\u3fc0\0\u3ffc\0\u4038\0\u4074" + + "\0\u40b0\0\u40ec\0\u4128\0\u4164\0\u41a0\0\u41dc\0\u4218\0\u4254" + + "\0\u4290\0\u42cc\0\u4308\0\u4344\0\u4380\0\u43bc\0\u43f8\0\u4434" + + "\0\u4470\0\u44ac\0\u44e8\0\u4524\0\u4560\0\u459c\0\u45d8\0\u4614" + + "\0\u4650\0\u468c\0\u46c8\0\u4704\0\u4740\0\u477c\0\u47b8\0\u47f4" + + "\0\u4830\0\u486c\0\u48a8\0\u48e4\0\u4920\0\u495c\0\u4998\0\u49d4" + + "\0\u4a10\0\u4a4c\0\u4a88\0\u4ac4\0\u4b00\0\u4b3c\0\u4b78\0\u4bb4" + + "\0\u4bf0\0\u4c2c\0\u4c68\0\u4ca4\0\u4ce0\0\u4d1c\0\u4d58\0\u4d94" + + "\0\u4dd0\0\u4e0c\0\u4e48\0\u4e84\0\u4ec0\0\u4efc\0\u4f38\0\u4f74" + + "\0\u4fb0\0\u4fec\0\u5028\0\u5064\0\u50a0\0\u50dc\0\u5118\0\u5154" + + "\0\u5190\0\u51cc\0\u5208\0\u5244\0\u5280\0\u52bc\0\u52f8\0\u5334" + + "\0\u5370\0\u53ac\0\u53e8\0\u5424\0\u5460\0\u549c\0\u54d8\0\u5514" + + "\0\u5550\0\u558c\0\u55c8\0\u5604\0\u5640\0\u567c\0\u56b8\0\u56f4" + + "\0\u5730\0\u576c\0\u57a8\0\u57e4\0\u5820\0\u585c\0\u5898\0\u58d4" + + "\0\u5910\0\u594c\0\u5988\0\u59c4\0\u5a00\0\u5a3c\0\u5a78\0\u5ab4" + + "\0\u5af0\0\u5b2c\0\u5b68\0\u5ba4\0\u5be0\0\u5c1c\0\u5c58\0\u5c94" + + "\0\u5cd0\0\u5d0c\0\u5d48\0\u5d84\0\u5dc0\0\u5dfc\0\u5e38\0\u5e74" + + "\0\u5eb0\0\u5eec\0\u5f28\0\u5f64\0\u5fa0\0\u5fdc\0\u6018\0\u6054" + + "\0\u6090\0\u60cc\0\u6108\0\u6144\0\u6180\0\u61bc\0\u61f8\0\u6234" + + "\0\u6270\0\u62ac\0\u62e8\0\u6324\0\u6360\0\u639c\0\u63d8\0\u6414" + + "\0\u6450\0\u648c\0\u64c8\0\u6504\0\u6540\0\u657c\0\u65b8\0\u65f4" + + "\0\u6630\0\u666c\0\u66a8\0\u66e4\0\u6720\0\u675c\0\u6798\0\u67d4" + + "\0\u6810\0\u684c\0\u6888\0\u68c4\0\u6900\0\u693c\0\u6978\0\u69b4" + + "\0\u69f0\0\u6a2c\0\u6a68\0\u6aa4\0\u6ae0\0\u6b1c\0\u6b58\0\u6b94" + + "\0\u6bd0\0\u6c0c\0\u6c48\0\u6c84\0\u6cc0\0\u6cfc\0\u6d38\0\u6d74" + + "\0\u6db0\0\u6dec\0\u6e28\0\u6e64\0\u6ea0\0\u6edc\0\u6f18\0\u6f54" + + "\0\u6f90\0\u6fcc\0\u7008\0\u7044\0\u7080\0\u70bc\0\u70f8\0\u7134" + + "\0\u7170\0\u71ac\0\u71e8\0\u7224\0\u7260\0\u729c\0\u72d8\0\u7314"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[512]; + 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 = "\1\5\2\6\1\7\1\10\1\6\1\7\1\11\1\12" + "\1\13\1\5\1\14\1\15\1\16\1\17\4\6\1\20" + + "\1\21\1\22\1\23\1\24\3\16\1\25\2\16\1\26" + "\1\27\1\26\1\5\1\12\1\30\1\31\1\32\1\33" + + "\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43" + "\3\6\1\44\1\45\1\46\4\6\1\7\1\6\1\47" + + "\12\50\1\51\1\52\57\50\1\53\13\54\1\55\1\54" + "\1\56\25\54\1\57\3\54\1\60\3\54\1\61\20\54" + + "\13\62\1\63\27\62\1\64\3\62\1\65\3\62\1\66" + "\20\62\10\5\1\0\2\5\4\0\4\5\16\0\1\5" + "\1\0\30\5\1\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\30\6\1\0\3\70" + "\2\7\1\70\1\7\1\70\1\0\2\70\4\0\1\70" + "\1\71\1\72\1\73\1\0\1\74\14\0\1\70\1\0" + + "\4\70\1\72\1\70\1\71\1\73\1\70\1\72\14\70" + "\1\7\1\70\1\0\3\70\1\75\1\76\1\70\1\76" + + "\1\70\1\0\2\70\4\0\1\77\1\71\1\72\1\73" + "\1\0\1\74\14\0\1\70\1\0\4\70\1\72\1\70" + + "\1\71\1\73\1\70\1\72\11\70\1\77\2\70\1\76" + "\1\70\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\15\6\1\100\12\6\75\0" + + "\10\5\1\0\2\5\2\0\1\101\1\0\4\5\16\0" + "\1\5\1\0\30\5\15\0\1\15\107\0\1\26\66\0" + "\1\26\4\0\1\26\46\0\2\74\1\0\1\74\62\0" + + "\1\74\30\0\1\26\1\0\1\26\72\0\1\102\1\26" + "\73\0\1\26\2\0\1\103\70\0\1\26\6\0\1\26" + "\34\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\13\6\1\104\14\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\1\105\12\6\1\106\6\6\1\107\5\6\1\0" + + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\17\6\1\110\10\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\5\6\1\111\14\6\1\112\5\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\6\6\1\113\21\6\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\4\6\1\114" + "\10\6\1\115\1\116\11\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6" + + "\1\117\3\6\1\120\1\121\13\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\1\6\1\122\10\6\1\123\4\6\1\124\5\6\1\125" + + "\2\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\1\126\4\6\1\127\22\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\7\6\1\130\4\6\1\131\13\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\1\6\1\122\5\6\1\132\2\6" + + "\1\123\1\133\1\134\13\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\3\6" + "\1\135\15\6\1\136\6\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6" + "\1\137\20\6\1\0\1\5\6\6\1\140\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\141" + + "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\6\6\1\142\10\6\1\143" + "\10\6\1\0\12\50\2\0\57\50\1\0\13\144\1\0" + + "\60\144\13\54\1\0\1\54\1\0\25\54\1\0\3\54" + "\1\0\3\54\1\0\20\54\11\0\1\145\126\0\1\146" + + "\73\0\1\147\3\0\1\150\76\0\1\151\20\0\13\62" + "\1\0\27\62\1\0\3\62\1\0\3\62\1\0\20\62" + + "\44\0\1\152\73\0\1\153\3\0\1\154\76\0\1\155" + "\20\0\7\5\1\156\1\0\2\5\4\0\4\5\16\0" + + "\1\5\1\0\30\5\1\0\10\70\1\0\2\70\4\0" + "\4\70\16\0\1\70\1\0\30\70\1\0\3\70\2\157" + + "\1\70\1\157\1\70\1\0\2\70\4\0\4\70\1\160" + "\2\0\1\160\12\0\1\70\1\0\26\70\1\157\1\70" + + "\1\0\3\70\2\74\1\70\1\74\1\70\1\0\2\70" + "\4\0\2\70\1\72\1\73\16\0\1\70\1\0\4\70" + + "\1\72\2\70\1\73\1\70\1\72\14\70\1\74\1\70" + "\1\0\3\70\2\75\1\70\1\75\1\70\1\0\2\70" + + "\4\0\2\70\1\72\1\73\1\0\1\74\14\0\1\70" + "\1\0\4\70\1\72\2\70\1\73\1\70\1\72\14\70" + + "\1\75\1\70\1\0\3\70\1\75\1\76\1\70\1\76" + "\1\70\1\0\2\70\4\0\1\70\1\161\1\72\1\73" + + "\1\0\1\74\14\0\1\70\1\0\4\70\1\72\1\70" + "\1\161\1\73\1\70\1\72\14\70\1\76\1\70\1\0" + + "\3\70\4\162\1\70\1\0\2\70\4\0\2\70\2\162" + "\16\0\1\70\1\0\4\70\1\162\2\70\1\162\1\70" + + "\3\162\5\70\1\162\4\70\1\162\1\70\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\6\6\1\163\1\6\1\164\17\6\31\0\1\26" + + "\2\0\1\16\40\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\15\6\1\165\12\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\7\6\1\114\7\6\1\166\10\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\16\6\1\167\11\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\2\6\1\170\25\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\14\6" + + "\1\171\13\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\16\6\1\172\11\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\20\6\1\173\7\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\7\6\1\174\20\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\1\175\15\0\1\5\1\0" + "\30\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\15\6\1\176\12\6\1\0" + + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\1\6\1\177\26\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\20\6\1\200\1\201\6\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\12\6" + "\1\202\1\6\1\203\13\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\22\6" + "\1\107\5\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\13\6\1\204\14\6" + + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\17\6\1\205\10\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + + "\1\0\13\6\1\206\14\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6" + "\1\207\20\6\1\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\1\6\1\210\26\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\4\6\1\211\5\6\1\212\15\6" + + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\1\213\6\0\1\214\6\0\1\5\1\0\1\6\1\215" + "\4\6\1\216\21\6\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\17\6\1\124" + "\10\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\1\6\1\217\1\6\1\220" + + "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\15\6\1\221\12\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + + "\1\5\1\0\3\6\1\222\24\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\14\6\1\223\13\6\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\1\6\1\224" + "\1\6\1\225\23\6\1\226\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\6\6" + + "\1\227\21\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\12\6\1\230\15\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\14\6\1\231\13\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\7\6\1\232\20\6\45\0\1\233\74\0\1\234" + + "\77\0\1\235\75\0\1\236\64\0\1\237\74\0\1\240" + "\77\0\1\241\75\0\1\242\20\0\3\5\4\243\1\5" + + "\1\0\2\5\4\0\2\5\2\243\16\0\1\5\1\0" + "\4\5\1\243\2\5\1\243\1\5\3\243\5\5\1\243" + + "\4\5\1\243\1\5\1\0\3\70\2\157\1\70\1\157" + "\1\70\1\0\2\70\4\0\2\70\1\72\1\70\16\0" + + "\1\70\1\0\4\70\1\72\4\70\1\72\14\70\1\157" + "\1\70\4\0\2\157\1\0\1\157\62\0\1\157\2\0" + + "\3\70\4\162\1\70\1\0\2\70\4\0\1\70\1\161" + "\2\162\16\0\1\70\1\0\4\70\1\162\1\70\1\161" + + "\1\162\1\70\3\162\5\70\1\162\4\70\1\162\1\70" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\7\6\1\244\20\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\5\6\1\245\22\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\11\6" + + "\1\246\16\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\14\6\1\247\13\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\21\6\1\250\6\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\7\6\1\251\20\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\12\6" + "\1\252\3\6\1\253\6\6\1\254\2\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + + "\1\0\15\6\1\255\12\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\21\6" + "\1\256\6\6\1\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\1\6\1\114\26\6" + "\46\0\1\257\26\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\14\6\1\260\13\6" + + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\7\0\1\214\6\0\1\5\1\0\30\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + + "\1\0\21\6\1\261\6\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6" + "\1\262\20\6\1\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\13\6\1\263\14\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\2\6\1\114\25\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\3\6\1\220\24\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\14\6" + + "\1\264\13\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\6\6\1\265\21\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\15\6\1\114\12\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\1\266\27\6\1\0\1\5\6\6\1\207\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\1\6" + "\1\267\1\270\1\271\1\6\1\272\4\6\1\273\3\6" + "\1\274\1\6\1\275\4\6\1\276\2\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\6\6\1\277\21\6\47\0\1\300\3\0\1\301" + "\3\0\1\302\15\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\5\6\1\303\22\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\5\6\1\304\22\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\12\6\1\305\15\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\7\6" + + "\1\114\20\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\11\6\1\114\16\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\7\6\1\223\20\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\17\6\1\174\10\6\1\0\1\5\6\6\1\306" + + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\30\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\1\6\1\307\26\6\1\0" + + "\1\5\6\6\1\310\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\30\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\1\6" + + "\1\311\26\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\17\6\1\312\10\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\12\6\1\313\15\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\13\6\1\313\14\6\46\0\1\314\66\0\1\315" + + "\105\0\1\234\45\0\1\316\114\0\1\317\66\0\1\320" + "\105\0\1\240\45\0\1\321\47\0\3\5\4\322\1\5" + + "\1\0\2\5\4\0\2\5\2\322\16\0\1\5\1\0" + "\4\5\1\322\2\5\1\322\1\5\3\322\5\5\1\322" + "\4\5\1\322\1\5\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\3\6\1\323" + "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\15\6\1\324\12\6\1\0" + + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\6\6\1\325\21\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\10\6\1\114\17\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\14\6\1\326" + "\13\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + + "\4\6\16\0\1\5\1\0\12\6\1\123\15\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\6\6\1\327\21\6\1\0\1\5\7\6" + + "\1\0\1\5\1\67\4\0\4\6\7\0\1\214\6\0" + "\1\5\1\0\15\6\1\114\7\6\2\114\1\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + + "\1\5\1\0\5\6\1\330\22\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\13\6\1\331\14\6\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\14\6\1\332" + "\13\6\57\0\1\333\15\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\17\6\1\334" + + "\10\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\11\6\1\335\16\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + + "\1\5\1\0\6\6\1\323\21\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\6\6\1\336\21\6\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\17\6\1\114" + "\10\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\1\337\15\0\1\5\1\0\30\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\1\340\15\0" + "\1\5\1\0\30\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\22\6\1\341" + + "\5\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\13\6\1\342\14\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + + "\1\5\1\0\1\6\1\343\5\6\1\344\20\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\15\6\1\345\12\6\1\0\1\5\7\6" + + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\6\6\1\346\5\6\1\347\13\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\7\6\1\350\20\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\351" + "\3\6\1\352\14\6\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\264" + "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\13\6\1\353\14\6\66\0" + + "\1\354\74\0\1\355\56\0\1\356\22\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\20\6\1\357\7\6\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\3\6\1\174" + "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\1\114\27\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\17\6\1\360\10\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\13\6" + + "\1\361\14\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\5\6\1\362\22\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\5\6\1\363\22\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\14\6\1\34\13\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\24\6" + "\1\114\3\6\41\0\1\315\5\0\1\234\62\0\1\364" + + "\37\0\1\316\1\365\5\316\1\0\1\365\4\0\1\365" + "\4\316\4\365\1\0\1\365\1\0\1\365\1\0\1\365" + + "\1\316\5\365\30\316\41\0\1\320\5\0\1\240\62\0" + "\1\366\37\0\1\321\1\367\5\321\1\0\1\367\4\0" + + "\1\367\4\321\4\367\1\0\1\367\1\0\1\367\1\0" + "\1\367\1\321\5\367\30\321\1\0\3\5\4\370\1\5" + + "\1\0\2\5\4\0\2\5\2\370\16\0\1\5\1\0" + "\4\5\1\370\2\5\1\370\1\5\3\370\5\5\1\370" + "\4\5\1\370\1\5\1\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\3\6\1\114" + "\24\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\11\6\1\371\16\6\1\0" + + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\7\6\1\372\20\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\11\6\1\373\16\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\374" + "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + + "\4\6\16\0\1\5\1\0\11\6\1\220\16\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\6\6\1\114\21\6\1\0\1\5\7\6" + + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + "\6\6\1\375\21\6\56\0\1\376\16\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\7\6\1\377\20\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\114" + "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + + "\4\6\16\0\1\5\1\0\6\6\1\373\21\6\54\0" + "\1\u0100\63\0\1\u0101\1\0\1\u0102\1\u0103\1\0\1\u0104" + + "\4\0\1\u0105\1\u0106\1\u0107\14\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\2\6" + + "\1\220\25\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\12\6\1\u0108\4\6" + "\1\u0109\10\6\1\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\17\6\1\u010a\10\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\1\6\1\u010b\26\6\1\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\7\6\1\u010c\20\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\13\6" + + "\1\244\14\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\15\6\1\u010d\12\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\15\6\1\u010e\12\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\1\6\1\u010f\26\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\12\6" + "\1\u0110\15\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\5\6\1\u0111\11\6" + + "\1\220\10\6\64\0\1\u0112\54\0\1\u0113\100\0\1\u0114" + "\22\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\7\6\1\323\20\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\15\6\1\u0115\12\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\17\6" + "\1\u0116\10\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\17\6\1\220\10\6" + + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\16\0\1\5\1\0\2\6\1\u0117\25\6\36\0\1\316" + "\73\0\1\321\36\0\3\5\4\6\1\5\1\0\2\5" + + "\4\0\2\5\2\6\16\0\1\5\1\0\4\5\1\6" + "\2\5\1\6\1\5\3\6\5\5\1\6\4\5\1\6" + "\1\5\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + + "\4\6\1\u0118\15\0\1\5\1\0\30\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\17\6\1\u0119\10\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\22\6" + "\1\114\5\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\5\6\1\u0111\22\6" + + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\1\u011a\15\0\1\5\1\0\30\6\70\0\1\u011b\4\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\1\u011c" + + "\15\0\1\5\1\0\30\6\44\0\1\u011d\106\0\1\u011e" + "\73\0\1\u011f\61\0\1\u0120\3\0\1\u0121\1\u0122\102\0" + + "\1\u0123\72\0\1\u0124\71\0\1\u0125\25\0\1\u0126\35\0" + "\1\u0127\26\0\1\5\7\6\1\0\1\5\1\67\4\0" + + "\4\6\16\0\1\5\1\0\24\6\1\u0128\3\6\1\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + "\1\5\1\0\13\6\1\u0129\14\6\1\0\1\5\6\6" + + "\1\u012a\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\30\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\4\6\1\114\23\6" + + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\1\u012b\15\0\1\5\1\0\30\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\3\6\1\u012c\24\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\u012d" + "\20\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + + "\4\6\16\0\1\5\1\0\1\u012e\27\6\1\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\17\6\1\u012f\10\6\1\0\1\5\7\6\1\0" + + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\20\6" + "\1\114\7\6\65\0\1\u0130\61\0\1\u0131\44\0\1\u0132" + + "\50\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + "\1\u0133\15\0\1\5\1\0\30\6\1\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\1\6\1\u0134\26\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\6\6\1\u0135" + "\21\6\46\0\1\u0136\26\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\1\u0137\15\0\1\5\1\0\30\6" + "\64\0\1\u0138\66\0\1\u0139\67\0\1\u013a\73\0\1\u013b" + + "\67\0\1\u013c\102\0\1\u013d\74\0\1\u013e\100\0\1\u013f" + "\67\0\1\u0140\61\0\1\u0141\106\0\1\u0142\2\0\1\u0143" + + "\65\0\1\u0144\62\0\1\u0145\101\0\1\u0146\21\0\1\5" + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + + "\1\0\13\6\1\u0147\14\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\20\6" + "\1\u0148\7\6\1\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\12\6\1\174\15\6" + "\47\0\1\u0149\6\0\1\u014a\5\0\1\u014b\10\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\16\0\1\5" + "\1\0\1\6\1\u014c\26\6\1\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\17\6" + + "\1\u014d\10\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\14\6\1\221\13\6" + "\1\0\1\5\7\6\1\0\1\5\1\67\4\0\4\6" + + "\16\0\1\5\1\0\14\6\1\114\13\6\60\0\1\u014e" + "\76\0\1\u014f\57\0\1\300\74\0\1\u0150\24\0\1\5" + + "\7\6\1\0\1\5\1\67\4\0\4\6\1\u0151\15\0" + "\1\5\1\0\30\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\u0152" + + "\20\6\63\0\1\u0153\66\0\1\u0154\6\0\1\u0155\65\0" + "\1\u0156\76\0\1\u0157\74\0\1\u0158\71\0\1\214\56\0" + + "\1\u0159\117\0\1\u015a\64\0\1\u015b\60\0\1\u015c\72\0" + "\1\u015d\36\0\1\u015e\140\0\1\u015f\64\0\1\u0160\100\0" + + "\1\u0161\66\0\1\u0162\106\0\1\u0163\13\0\1\5\7\6" + "\1\0\1\5\1\67\4\0\4\6\16\0\1\5\1\0" + + "\16\6\1\220\11\6\1\0\1\5\7\6\1\0\1\5" + "\1\67\4\0\4\6\16\0\1\5\1\0\7\6\1\u0164" + + "\20\6\53\0\1\u0165\12\0\1\u0166\65\0\1\u0167\66\0" + "\1\u0168\4\0\1\u0169\14\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\16\0\1\5\1\0\13\6\1\u016a" + "\14\6\1\0\1\5\7\6\1\0\1\5\1\67\4\0" + "\4\6\16\0\1\5\1\0\5\6\1\u016b\22\6\52\0" + + "\1\u015d\102\0\1\u016c\75\0\1\u016d\66\0\1\u0154\2\0" + "\1\u016e\3\0\1\u0155\7\0\1\5\7\6\1\0\1\5" + + "\1\67\4\0\4\6\1\u016f\15\0\1\5\1\0\30\6" + "\60\0\1\u0170\72\0\1\u0171\65\0\1\u0172\100\0\1\u0173" + + "\70\0\1\214\103\0\1\u0174\34\0\1\u0175\126\0\1\u0176" + "\71\0\1\u0177\70\0\1\u0178\70\0\1\214\71\0\1\u0179" + + "\77\0\1\u017a\73\0\1\u017b\71\0\1\u017c\34\0\1\u017d" + "\107\0\1\u017e\50\0\1\5\7\6\1\0\1\5\1\67" + + "\4\0\4\6\16\0\1\5\1\0\1\6\1\u017f\26\6" + "\45\0\1\u0180\112\0\1\u0181\70\0\1\u0182\2\0\1\u0183" + + "\54\0\1\u0184\103\0\1\u0185\17\0\1\5\7\6\1\0" + "\1\5\1\67\4\0\4\6\16\0\1\5\1\0\15\6" + + "\1\174\12\6\1\0\1\5\7\6\1\0\1\5\1\67" + "\4\0\4\6\16\0\1\5\1\0\12\6\1\114\15\6" + + "\57\0\1\356\74\0\1\u0186\72\0\1\u0187\105\0\1\u0188" + "\47\0\1\u0189\75\0\1\u0157\105\0\1\u018a\75\0\1\u018b" + + "\70\0\1\u018c\60\0\1\u018d\110\0\1\u018e\70\0\1\u018f" + "\67\0\1\u0190\44\0\1\u0191\114\0\1\u0192\100\0\1\u0193" + + "\70\0\1\u0174\71\0\1\u0194\75\0\1\u0195\1\u0196\24\0" + "\1\5\7\6\1\0\1\5\1\67\4\0\4\6\16\0" + + "\1\5\1\0\7\6\1\264\20\6\50\0\1\u0197\110\0" + "\1\u0198\63\0\1\u0199\64\0\1\u019a\71\0\1\u019b\100\0" + + "\1\u019c\106\0\1\214\73\0\1\u0157\66\0\1\u019d\67\0" + "\1\u019e\75\0\1\214\76\0\1\u019f\76\0\1\u015d\67\0" + + "\1\u01a0\67\0\1\u01a1\103\0\1\u01a2\34\0\1\u01a3\117\0" + "\1\u01a4\74\0\1\u01a5\101\0\1\u01a6\40\0\1\u01a7\114\0" + + "\1\u01a8\77\0\1\u01a9\46\0\1\u01aa\127\0\1\u01ab\64\0" + "\1\u01ac\73\0\1\u01ad\102\0\1\u01ae\63\0\1\u01af\75\0" + + "\1\u01b0\77\0\1\u01b1\67\0\1\u01b2\106\0\1\u01b3\32\0" + "\1\u01b4\124\0\1\u01b5\101\0\1\u01b6\73\0\1\u01b7\70\0" + + "\1\u01b8\60\0\1\u01b9\73\0\1\u01ba\111\0\1\u01bb\62\0" + "\1\u0157\74\0\1\u01bc\72\0\1\u01bd\66\0\1\u01be\100\0" + + "\1\u01bf\76\0\1\u01c0\104\0\1\u01bd\15\0\1\u01c1\130\0" + "\1\214\101\0\1\u01b1\72\0\1\u018e\72\0\1\u01c2\46\0" + + "\1\u01c3\122\0\1\u01c4\100\0\1\u01c5\74\0\1\u01c6\63\0" + "\1\u01c7\102\0\1\u01c8\66\0\1\u01c9\107\0\1\u01ca\30\0" + + "\1\u01cb\120\0\1\u01cc\75\0\1\u01cd\44\0\1\u01ce\122\0" + "\1\u01cf\65\0\1\u01d0\77\0\1\u01d1\71\0\1\u01d2\110\0" + + "\1\u01c8\33\0\1\u01d3\127\0\1\u01d4\37\0\1\u01d5\126\0" + "\1\u0186\62\0\1\u01d6\111\0\1\u01d7\67\0\1\u013b\76\0" + + "\1\u01bd\66\0\1\u01d8\41\0\1\u01d9\122\0\1\u01da\100\0" + "\1\u01db\60\0\1\u01dc\111\0\1\u01dd\71\0\1\u01de\61\0" + + "\1\u01df\103\0\1\u01e0\73\0\1\u01e1\74\0\1\u01e2\100\0" + "\1\u0155\71\0\1\u01e3\34\0\1\u01e4\126\0\1\u01e5\67\0" + + "\1\u01e6\44\0\1\u01e7\114\0\1\u01e8\107\0\1\u01e9\70\0" + "\1\u01ea\101\0\1\u01eb\66\0\1\u01ec\63\0\1\u01ed\107\0" + + "\1\u01b1\57\0\1\u01ee\34\0\1\u01ef\146\0\1\u01f0\65\0" + "\1\u01f1\101\0\1\u01f2\75\0\1\u01f3\53\0\1\u01f4\114\0" + + "\1\u01f5\52\0\1\u01f6\107\0\1\u01f7\63\0\1\u01f8\75\0" + "\1\u01f9\100\0\1\214\64\0\1\u01fa\102\0\1\u01f9\74\0" + + "\1\u01fb\71\0\1\u01fc\65\0\1\u01b1\103\0\1\u01fd\75\0" + "\1\214\71\0\1\u01fe\57\0\1\u01ff\111\0\1\u0140\72\0" + + "\1\214\70\0\1\u01ac\73\0\1\u0200\103\0\1\214\5\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[29520]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\5\1\1\11\1\1\1\11\2\1\1\11\2\1" + "\1\11\3\1\1\11\20\1\1\11\2\1\2\11\1\1" + + "\1\11\5\1\1\11\15\1\1\11\1\0\41\1\2\11" + "\10\0\2\1\1\0\14\1\1\0\15\1\1\0\1\11" + "\16\1\10\0\14\1\1\0\20\1\3\0\11\1\2\0" + + "\1\1\2\0\12\1\1\0\3\1\2\0\13\1\3\0" + "\5\1\4\0\6\1\1\0\1\1\10\0\12\1\3\0" + "\3\1\1\0\1\1\16\0\3\1\1\0\4\1\4\0" + + "\2\1\21\0\2\1\3\0\2\1\4\0\1\1\21\0" + "\1\1\5\0\2\1\23\0\1\1\201\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[512]; + 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 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; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public LispTokenMaker() { - } - - + public LispTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -868,26 +541,26 @@ public class LispTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { ";", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -902,7 +575,6 @@ public class LispTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -912,21 +584,18 @@ public class LispTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -935,7 +604,8 @@ public class LispTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -944,364 +614,388 @@ public class LispTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 LispTokenMaker(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 LispTokenMaker(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 < 160) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 4: { + addNullToken(); + return firstToken; + } + case 24: + break; + case 21: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 25: + break; + case 19: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 26: + break; + case 5: { + addToken(Token.WHITESPACE); + } + case 27: + break; + case 18: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 28: + break; + case 17: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 29: + break; + case 20: { + addToken(Token.RESERVED_WORD); + } + case 30: + break; + case 8: { + addToken(Token.SEPARATOR); + } + case 31: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 32: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 33: + break; + case 11: { /* Skip escaped chars. */ + } + case 34: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 35: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 36: + break; + case 23: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 37: + break; + case 22: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 38: + break; + case 16: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 39: + break; + case 9: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 40: + break; + case 7: { + start = zzMarkedPos - 1; + yybegin(EOL_COMMENT); + } + case 41: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 42: + break; + case 6: { + addToken(Token.OPERATOR); + } + case 43: + break; + case 13: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 44: + break; + case 10: {} + case 45: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 46: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 513: + break; + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 514: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 515: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 516: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 LispTokenMaker(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 LispTokenMaker(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 < 160) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 4: - { addNullToken(); return firstToken; - } - case 24: break; - case 21: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 25: break; - case 19: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 26: break; - case 5: - { addToken(Token.WHITESPACE); - } - case 27: break; - case 18: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 28: break; - case 17: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 29: break; - case 20: - { addToken(Token.RESERVED_WORD); - } - case 30: break; - case 8: - { addToken(Token.SEPARATOR); - } - case 31: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 32: break; - case 15: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 33: break; - case 11: - { /* Skip escaped chars. */ - } - case 34: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 35: break; - case 12: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 36: break; - case 23: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 37: break; - case 22: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 38: break; - case 16: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 39: break; - case 9: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 40: break; - case 7: - { start = zzMarkedPos-1; yybegin(EOL_COMMENT); - } - case 41: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 42: break; - case 6: - { addToken(Token.OPERATOR); - } - case 43: break; - case 13: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 44: break; - case 10: - { - } - case 45: break; - case 14: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 46: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 513: break; - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 514: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 515: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 516: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/LuaTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/LuaTokenMaker.java index 902f6ad..493a4e8 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/LuaTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/LuaTokenMaker.java @@ -1,525 +1,365 @@ /* The following code was generated by JFlex 1.4.1 on 10/16/06 10:31 AM */ - /* * 07/14/2006 - * * LuaTokenMaker.java - Scanner for the Lua programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for the Lua programming language.

+ * Scanner for the Lua programming language. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated LuaTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated LuaTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.4 * */ - public class LuaTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int YYINITIAL = 0; - public static final int LONGSTRING = 2; - public static final int LINECOMMENT = 3; - public static final int MLC = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\4\1\3\1\0\1\4\23\0\1\4\1\0\1\7\1\27"+ - "\1\0\1\27\1\0\1\5\2\26\1\27\1\15\1\0\1\12\1\13"+ - "\1\27\12\2\2\0\1\30\1\32\1\31\2\0\4\1\1\14\1\1"+ - "\1\54\1\1\1\60\2\1\1\52\1\1\1\50\1\61\2\1\1\56"+ - "\1\57\1\1\1\51\1\55\4\1\1\10\1\6\1\11\1\27\1\53"+ - "\1\0\1\23\1\37\1\42\1\35\1\21\1\22\1\47\1\44\1\41"+ - "\1\1\1\40\1\24\1\46\1\34\1\36\1\43\1\64\1\17\1\25"+ - "\1\16\1\20\1\62\1\45\1\63\1\65\1\1\1\26\1\0\1\26"+ - "\1\33\uff81\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 = - "\4\0\2\1\1\2\1\3\1\4\1\5\1\6\2\7"+ - "\1\10\1\1\1\10\10\1\2\10\16\1\1\11\1\12"+ - "\1\11\1\13\2\11\1\14\2\2\1\15\1\5\1\6"+ - "\1\16\1\17\1\20\1\10\21\1\3\0\3\1\1\21"+ - "\1\10\1\1\1\21\11\1\1\22\2\1\1\23\1\24"+ - "\1\15\1\16\1\0\24\1\4\0\13\1\1\25\1\26"+ - "\11\1\1\21\2\1\1\22\3\1\4\0\6\1\1\27"+ - "\13\1\1\27\2\0\10\1\2\0\15\1"; - - private static int [] zzUnpackAction() { - int [] result = new int[201]; - 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\66\0\154\0\242\0\330\0\u010e\0\u0144\0\330"+ - "\0\u017a\0\u01b0\0\u01e6\0\u021c\0\330\0\u0252\0\u0288\0\330"+ - "\0\u02be\0\u02f4\0\u032a\0\u0360\0\u0396\0\u03cc\0\u0402\0\u0438"+ - "\0\u046e\0\u04a4\0\u04a4\0\u04da\0\u0510\0\u0546\0\u057c\0\u05b2"+ - "\0\u05e8\0\u061e\0\u0654\0\u068a\0\u06c0\0\u06f6\0\u072c\0\u0762"+ - "\0\u0798\0\330\0\u07ce\0\330\0\u0804\0\u083a\0\330\0\u0870"+ - "\0\u08a6\0\330\0\u08dc\0\u0912\0\330\0\330\0\u0948\0\u097e"+ - "\0\u09b4\0\u09ea\0\u0a20\0\u0a56\0\u0a8c\0\u0ac2\0\u0af8\0\u0b2e"+ - "\0\u0b64\0\u0b9a\0\u0bd0\0\u0c06\0\u0c3c\0\u0c72\0\u0ca8\0\u0cde"+ - "\0\u0d14\0\u0d4a\0\u0d80\0\u0db6\0\u0dec\0\u0e22\0\u0e58\0\u0e8e"+ - "\0\u010e\0\u0ec4\0\u010e\0\u0efa\0\u0f30\0\u0f66\0\u0f9c\0\u0fd2"+ - "\0\u1008\0\u103e\0\u1074\0\u10aa\0\u010e\0\u10e0\0\u1116\0\330"+ - "\0\330\0\u01b0\0\u01e6\0\u114c\0\u1182\0\u11b8\0\u11ee\0\u1224"+ - "\0\u125a\0\u1290\0\u12c6\0\u12fc\0\u1332\0\u1368\0\u139e\0\u13d4"+ - "\0\u140a\0\u1440\0\u1476\0\u14ac\0\u14e2\0\u1518\0\u154e\0\u1584"+ - "\0\u15ba\0\u15f0\0\u1626\0\u165c\0\u1692\0\u16c8\0\u16fe\0\u1734"+ - "\0\u176a\0\u17a0\0\u17d6\0\u180c\0\u1842\0\u1878\0\u18ae\0\330"+ - "\0\u010e\0\u18e4\0\u191a\0\u1950\0\u1986\0\u19bc\0\u19f2\0\u1a28"+ - "\0\u1a5e\0\u1a94\0\u1aca\0\u1b00\0\u1b36\0\u1b6c\0\u1ba2\0\u1bd8"+ - "\0\u1c0e\0\u1c44\0\u1c7a\0\u1cb0\0\u1ce6\0\u1d1c\0\u1d52\0\u1d88"+ - "\0\u1dbe\0\u1df4\0\u1e2a\0\u010e\0\u1e60\0\u1e96\0\u1ecc\0\u1f02"+ - "\0\u1f38\0\u1f6e\0\u1fa4\0\u1fda\0\u2010\0\u2046\0\u207c\0\330"+ - "\0\u20b2\0\u20e8\0\u211e\0\u2154\0\u218a\0\u21c0\0\u21f6\0\u222c"+ - "\0\u2262\0\u2298\0\u22ce\0\u2304\0\u233a\0\u2370\0\u23a6\0\u23dc"+ - "\0\u2412\0\u2448\0\u247e\0\u24b4\0\u24ea\0\u2520\0\u2556\0\u258c"+ - "\0\u25c2"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[201]; - 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 = - "\1\5\1\6\1\7\1\10\1\11\1\12\1\5\1\13"+ - "\1\14\1\15\1\16\1\17\1\6\1\20\1\21\1\22"+ - "\1\23\1\24\1\25\1\26\1\27\1\30\1\15\1\20"+ - "\1\31\1\32\2\33\1\34\1\35\1\36\1\37\1\6"+ - "\1\40\1\41\1\42\1\6\1\43\1\44\1\45\1\46"+ - "\2\6\1\47\7\6\1\50\2\6\3\51\1\52\5\51"+ - "\1\53\57\51\1\54\5\51\1\55\54\51\3\56\1\57"+ - "\62\56\67\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\32\6\1\0\1\60\1\7\10\0\1\7\1\61\1\0"+ - "\3\60\1\61\4\60\6\0\32\60\4\0\1\11\61\0"+ - "\3\12\1\0\1\12\1\62\1\63\57\12\3\13\1\0"+ - "\2\13\1\64\1\65\56\13\10\0\1\66\67\0\1\67"+ - "\55\0\1\7\10\0\1\70\53\0\2\6\11\0\1\6"+ - "\1\0\1\6\1\71\6\6\6\0\2\6\1\72\5\6"+ - "\1\73\20\6\1\74\1\0\2\6\11\0\1\6\1\0"+ - "\3\6\1\75\1\6\1\76\2\6\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\10\6\6\0\1\77\31\6"+ - "\1\0\2\6\11\0\1\6\1\0\1\6\1\100\4\6"+ - "\1\101\1\6\6\0\1\102\31\6\1\0\2\6\11\0"+ - "\1\6\1\0\2\6\1\103\2\6\1\104\2\6\6\0"+ - "\2\6\1\105\27\6\1\0\2\6\11\0\1\6\1\0"+ - "\7\6\1\106\6\0\1\107\31\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\2\6\1\110\27\6\1\0"+ - "\2\6\11\0\1\6\1\0\3\6\1\111\4\6\6\0"+ - "\32\6\21\0\1\112\3\0\1\113\4\0\1\20\1\0"+ - "\1\114\63\0\1\20\34\0\2\6\11\0\1\6\1\0"+ - "\3\6\1\115\4\6\6\0\2\6\1\116\2\6\1\117"+ - "\24\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\2\6\1\120\27\6\1\0\2\6\11\0\1\6\1\0"+ - "\1\6\1\121\6\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\1\6\1\122\6\6\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\4\6\1\123\3\6\6\0"+ - "\7\6\1\124\22\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\2\6\1\125\27\6\1\0\2\6\11\0"+ - "\1\6\1\0\1\6\1\126\3\6\1\127\2\6\6\0"+ - "\6\6\1\130\23\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\10\6\1\131\21\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\2\6\1\132\27\6\1\0"+ - "\2\6\11\0\1\6\1\0\3\6\1\133\4\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\15\6\1\134\14\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\20\6\1\135\1\136\10\6\1\0\2\6"+ - "\11\0\1\6\1\0\10\6\6\0\7\6\1\137\22\6"+ - "\3\51\1\0\5\51\1\0\54\51\11\0\1\140\65\0"+ - "\1\141\54\0\3\56\1\0\62\56\1\0\2\60\11\0"+ - "\1\60\1\0\10\60\6\0\32\60\1\0\2\60\7\0"+ - "\1\60\1\0\12\60\6\0\32\60\3\12\1\0\1\12"+ - "\1\142\1\63\57\12\3\13\1\0\2\13\1\64\1\143"+ - "\56\13\10\0\1\144\70\0\1\20\53\0\2\6\11\0"+ - "\1\6\1\0\2\6\1\145\5\6\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\7\6\1\146\6\0\1\147"+ - "\31\6\1\0\2\6\11\0\1\6\1\0\3\6\1\150"+ - "\4\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\7\6\1\151\22\6\1\0\2\6\11\0"+ - "\1\6\1\0\1\152\7\6\6\0\7\6\1\153\20\6"+ - "\1\154\1\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\11\6\1\155\20\6\1\0\2\6\11\0\1\6"+ - "\1\0\1\156\7\6\6\0\7\6\1\157\22\6\1\0"+ - "\2\6\11\0\1\6\1\0\1\6\1\160\6\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\7\6\1\161"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\1\6\1\123\30\6\1\0\2\6\11\0\1\6"+ - "\1\0\10\6\6\0\1\162\31\6\1\0\2\6\11\0"+ - "\1\6\1\0\6\6\1\163\1\6\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\1\6\1\123\6\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\7\6\1\164"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\1\6\1\121\30\6\1\0\2\6\11\0\1\6"+ - "\1\0\5\6\1\165\2\6\6\0\6\6\1\166\23\6"+ - "\1\0\2\6\11\0\1\6\1\0\1\167\5\6\1\170"+ - "\1\6\6\0\32\6\36\0\1\171\45\0\1\172\67\0"+ - "\1\173\2\0\1\174\43\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\27\6\1\175\2\6\1\0\2\6\11\0"+ - "\1\6\1\0\1\121\7\6\6\0\32\6\1\0\2\6"+ - "\11\0\1\6\1\0\6\6\1\123\1\6\6\0\32\6"+ - "\1\0\2\6\11\0\1\6\1\0\4\6\1\176\3\6"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\3\6"+ - "\1\177\4\6\6\0\32\6\1\0\2\6\11\0\1\6"+ - "\1\0\5\6\1\127\2\6\6\0\32\6\1\0\2\6"+ - "\11\0\1\6\1\0\6\6\1\200\1\6\6\0\32\6"+ - "\1\0\2\6\11\0\1\6\1\0\10\6\6\0\5\6"+ - "\1\201\24\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\5\6\1\202\24\6\1\0\2\6\11\0\1\6"+ - "\1\0\5\6\1\203\2\6\6\0\32\6\1\0\2\6"+ - "\11\0\1\6\1\0\10\6\6\0\5\6\1\204\24\6"+ - "\1\0\2\6\11\0\1\6\1\0\10\6\6\0\1\6"+ - "\1\205\30\6\1\0\2\6\11\0\1\6\1\0\1\167"+ - "\7\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\16\6\1\206\13\6\1\0\2\6\11\0"+ - "\1\207\1\0\10\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\6\6\1\130\23\6\10\0"+ - "\1\210\56\0\2\6\11\0\1\6\1\0\3\6\1\211"+ - "\4\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0"+ - "\1\212\7\6\6\0\32\6\1\0\2\6\11\0\1\6"+ - "\1\0\2\6\1\213\5\6\6\0\32\6\1\0\2\6"+ - "\11\0\1\6\1\0\10\6\6\0\1\123\31\6\1\0"+ - "\2\6\11\0\1\6\1\0\3\6\1\135\4\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\2\6\1\214"+ - "\5\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0"+ - "\3\6\1\215\4\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\2\6\1\216\5\6\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\3\6\1\217\3\6\1\220"+ - "\6\0\13\6\1\220\16\6\1\0\2\6\11\0\1\6"+ - "\1\0\10\6\6\0\5\6\1\117\24\6\1\0\2\6"+ - "\11\0\1\6\1\0\5\6\1\221\2\6\6\0\32\6"+ - "\1\0\2\6\11\0\1\6\1\0\10\6\6\0\2\6"+ - "\1\222\27\6\1\0\2\6\11\0\1\6\1\0\3\6"+ - "\1\223\4\6\6\0\32\6\1\0\2\6\11\0\1\6"+ - "\1\0\10\6\6\0\6\6\1\224\23\6\1\0\2\6"+ - "\11\0\1\6\1\0\7\6\1\145\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\3\6\1\225\4\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\1\6\1\226\30\6\1\0\2\6\11\0\1\6\1\0"+ - "\5\6\1\117\2\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\4\6\1\227\3\6\6\0\12\6\1\230"+ - "\17\6\1\0\2\6\11\0\1\6\1\0\3\6\1\231"+ - "\4\6\6\0\32\6\22\0\1\232\62\0\1\233\114\0"+ - "\1\234\65\0\1\235\20\0\2\6\11\0\1\6\1\0"+ - "\1\135\7\6\6\0\32\6\1\0\2\6\11\0\1\6"+ - "\1\0\10\6\6\0\5\6\1\236\24\6\1\0\2\6"+ - "\11\0\1\6\1\0\5\6\1\237\2\6\6\0\32\6"+ - "\1\0\2\6\11\0\1\6\1\0\6\6\1\240\1\6"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\1\175\31\6\1\0\2\6\11\0\1\6\1\0"+ - "\1\6\1\241\6\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\6\6\1\242\1\6\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\6\6\1\243\1\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\2\6\1\236"+ - "\5\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\16\6\1\244\13\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\22\6\1\245\7\6\1\0"+ - "\2\6\11\0\1\6\1\0\1\6\1\246\6\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\12\6\1\247\17\6\1\0\2\6\11\0\1\6\1\0"+ - "\1\6\1\150\6\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\5\6\1\250\2\6\6\0\32\6\1\0"+ - "\2\6\11\0\1\6\1\0\10\6\6\0\5\6\1\251"+ - "\24\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\30\6\1\252\1\6\1\0\2\6\11\0\1\6\1\0"+ - "\3\6\1\175\4\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\6\6\1\253\23\6\1\0"+ - "\2\6\11\0\1\6\1\0\1\6\1\135\6\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\5\6\1\254\24\6\1\0\2\6\11\0\1\6\1\0"+ - "\1\255\7\6\6\0\32\6\1\0\2\6\11\0\1\6"+ - "\1\0\1\6\1\175\6\6\6\0\32\6\1\0\2\6"+ - "\11\0\1\6\1\0\4\6\1\176\2\6\1\146\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\3\6\1\256"+ - "\4\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0"+ - "\3\6\1\257\4\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\6\6\1\175\23\6\31\0"+ - "\1\260\75\0\1\261\63\0\1\262\47\0\1\232\45\0"+ - "\2\6\11\0\1\6\1\0\6\6\1\151\1\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\4\6\1\123\25\6\1\0\2\6\11\0\1\6\1\0"+ - "\3\6\1\263\4\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\7\6\1\135\6\0\32\6\1\0\2\6"+ - "\11\0\1\6\1\0\6\6\1\135\1\6\6\0\32\6"+ - "\1\0\2\6\11\0\1\6\1\0\3\6\1\123\4\6"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\23\6\1\264\6\6\1\0\2\6\11\0\1\6"+ - "\1\0\10\6\6\0\5\6\1\265\24\6\1\0\2\6"+ - "\11\0\1\6\1\0\10\6\6\0\3\6\1\266\26\6"+ - "\1\0\2\6\11\0\1\6\1\0\1\123\7\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\1\6\1\151"+ - "\6\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0"+ - "\2\6\1\267\5\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\4\6\1\135\25\6\1\0"+ - "\2\6\11\0\1\6\1\0\4\6\1\123\3\6\6\0"+ - "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\5\6\1\270\24\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\1\271\31\6\1\0\2\6\11\0\1\6"+ - "\1\0\1\272\7\6\6\0\32\6\34\0\1\273\52\0"+ - "\1\274\45\0\2\6\11\0\1\6\1\0\10\6\6\0"+ - "\6\6\1\275\23\6\1\0\2\6\11\0\1\6\1\0"+ - "\10\6\6\0\24\6\1\276\5\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\1\277\31\6\1\0\2\6"+ - "\11\0\1\6\1\0\3\6\1\222\4\6\6\0\32\6"+ - "\1\0\2\6\11\0\1\6\1\0\5\6\1\242\2\6"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\2\6\1\150\27\6\1\0\2\6\11\0\1\6"+ - "\1\0\10\6\6\0\26\6\1\135\3\6\1\0\2\6"+ - "\11\0\1\6\1\0\5\6\1\300\2\6\6\0\32\6"+ - "\47\0\1\232\35\0\1\232\47\0\2\6\11\0\1\6"+ - "\1\0\1\301\7\6\6\0\32\6\1\0\2\6\11\0"+ - "\1\6\1\0\10\6\6\0\25\6\1\302\4\6\1\0"+ - "\2\6\11\0\1\6\1\0\10\6\6\0\13\6\1\135"+ - "\16\6\1\0\2\6\11\0\1\6\1\0\1\303\7\6"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\13\6\1\304\16\6\1\0\2\6\11\0\1\6"+ - "\1\0\10\6\6\0\14\6\1\135\15\6\1\0\2\6"+ - "\11\0\1\6\1\0\5\6\1\305\2\6\6\0\32\6"+ - "\1\0\2\6\11\0\1\6\1\0\5\6\1\306\2\6"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\3\6\1\236\26\6\1\0\2\6\11\0\1\6"+ - "\1\0\1\6\1\307\6\6\6\0\32\6\1\0\2\6"+ - "\11\0\1\6\1\0\10\6\6\0\3\6\1\310\26\6"+ - "\1\0\2\6\11\0\1\6\1\0\5\6\1\311\2\6"+ - "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6"+ - "\6\0\13\6\1\151\16\6"; - - private static int [] zzUnpackTrans() { - int [] result = new int[9720]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\4\0\1\11\2\1\1\11\4\1\1\11\2\1\1\11"+ - "\31\1\1\11\1\1\1\11\2\1\1\11\2\1\1\11"+ - "\2\1\2\11\23\1\3\0\23\1\2\11\2\1\1\0"+ - "\24\1\4\0\13\1\1\11\21\1\4\0\22\1\1\11"+ - "\2\0\10\1\2\0\15\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[201]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int LONGSTRING = 2; + public static final int LINECOMMENT = 3; + public static final int MLC = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\4\1\3\1\0\1\4\23\0\1\4\1\0\1\7\1\27" + + "\1\0\1\27\1\0\1\5\2\26\1\27\1\15\1\0\1\12\1\13" + "\1\27\12\2\2\0\1\30\1\32\1\31\2\0\4\1\1\14\1\1" + + "\1\54\1\1\1\60\2\1\1\52\1\1\1\50\1\61\2\1\1\56" + "\1\57\1\1\1\51\1\55\4\1\1\10\1\6\1\11\1\27\1\53" + + "\1\0\1\23\1\37\1\42\1\35\1\21\1\22\1\47\1\44\1\41" + "\1\1\1\40\1\24\1\46\1\34\1\36\1\43\1\64\1\17\1\25" + + "\1\16\1\20\1\62\1\45\1\63\1\65\1\1\1\26\1\0\1\26" + "\1\33\uff81\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 = "\4\0\2\1\1\2\1\3\1\4\1\5\1\6\2\7" + "\1\10\1\1\1\10\10\1\2\10\16\1\1\11\1\12" + + "\1\11\1\13\2\11\1\14\2\2\1\15\1\5\1\6" + "\1\16\1\17\1\20\1\10\21\1\3\0\3\1\1\21" + "\1\10\1\1\1\21\11\1\1\22\2\1\1\23\1\24" + + "\1\15\1\16\1\0\24\1\4\0\13\1\1\25\1\26" + "\11\1\1\21\2\1\1\22\3\1\4\0\6\1\1\27" + "\13\1\1\27\2\0\10\1\2\0\15\1"; + + private static int[] zzUnpackAction() { + int[] result = new int[201]; + 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\66\0\154\0\242\0\330\0\u010e\0\u0144\0\330" + + "\0\u017a\0\u01b0\0\u01e6\0\u021c\0\330\0\u0252\0\u0288\0\330" + + "\0\u02be\0\u02f4\0\u032a\0\u0360\0\u0396\0\u03cc\0\u0402\0\u0438" + + "\0\u046e\0\u04a4\0\u04a4\0\u04da\0\u0510\0\u0546\0\u057c\0\u05b2" + + "\0\u05e8\0\u061e\0\u0654\0\u068a\0\u06c0\0\u06f6\0\u072c\0\u0762" + + "\0\u0798\0\330\0\u07ce\0\330\0\u0804\0\u083a\0\330\0\u0870" + "\0\u08a6\0\330\0\u08dc\0\u0912\0\330\0\330\0\u0948\0\u097e" + + "\0\u09b4\0\u09ea\0\u0a20\0\u0a56\0\u0a8c\0\u0ac2\0\u0af8\0\u0b2e" + + "\0\u0b64\0\u0b9a\0\u0bd0\0\u0c06\0\u0c3c\0\u0c72\0\u0ca8\0\u0cde" + + "\0\u0d14\0\u0d4a\0\u0d80\0\u0db6\0\u0dec\0\u0e22\0\u0e58\0\u0e8e" + + "\0\u010e\0\u0ec4\0\u010e\0\u0efa\0\u0f30\0\u0f66\0\u0f9c\0\u0fd2" + + "\0\u1008\0\u103e\0\u1074\0\u10aa\0\u010e\0\u10e0\0\u1116\0\330" + + "\0\330\0\u01b0\0\u01e6\0\u114c\0\u1182\0\u11b8\0\u11ee\0\u1224" + + "\0\u125a\0\u1290\0\u12c6\0\u12fc\0\u1332\0\u1368\0\u139e\0\u13d4" + + "\0\u140a\0\u1440\0\u1476\0\u14ac\0\u14e2\0\u1518\0\u154e\0\u1584" + + "\0\u15ba\0\u15f0\0\u1626\0\u165c\0\u1692\0\u16c8\0\u16fe\0\u1734" + + "\0\u176a\0\u17a0\0\u17d6\0\u180c\0\u1842\0\u1878\0\u18ae\0\330" + + "\0\u010e\0\u18e4\0\u191a\0\u1950\0\u1986\0\u19bc\0\u19f2\0\u1a28" + + "\0\u1a5e\0\u1a94\0\u1aca\0\u1b00\0\u1b36\0\u1b6c\0\u1ba2\0\u1bd8" + + "\0\u1c0e\0\u1c44\0\u1c7a\0\u1cb0\0\u1ce6\0\u1d1c\0\u1d52\0\u1d88" + + "\0\u1dbe\0\u1df4\0\u1e2a\0\u010e\0\u1e60\0\u1e96\0\u1ecc\0\u1f02" + + "\0\u1f38\0\u1f6e\0\u1fa4\0\u1fda\0\u2010\0\u2046\0\u207c\0\330" + + "\0\u20b2\0\u20e8\0\u211e\0\u2154\0\u218a\0\u21c0\0\u21f6\0\u222c" + + "\0\u2262\0\u2298\0\u22ce\0\u2304\0\u233a\0\u2370\0\u23a6\0\u23dc" + + "\0\u2412\0\u2448\0\u247e\0\u24b4\0\u24ea\0\u2520\0\u2556\0\u258c" + "\0\u25c2"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[201]; + 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 = "\1\5\1\6\1\7\1\10\1\11\1\12\1\5\1\13" + "\1\14\1\15\1\16\1\17\1\6\1\20\1\21\1\22" + + "\1\23\1\24\1\25\1\26\1\27\1\30\1\15\1\20" + "\1\31\1\32\2\33\1\34\1\35\1\36\1\37\1\6" + + "\1\40\1\41\1\42\1\6\1\43\1\44\1\45\1\46" + "\2\6\1\47\7\6\1\50\2\6\3\51\1\52\5\51" + + "\1\53\57\51\1\54\5\51\1\55\54\51\3\56\1\57" + "\62\56\67\0\2\6\11\0\1\6\1\0\10\6\6\0" + + "\32\6\1\0\1\60\1\7\10\0\1\7\1\61\1\0" + "\3\60\1\61\4\60\6\0\32\60\4\0\1\11\61\0" + "\3\12\1\0\1\12\1\62\1\63\57\12\3\13\1\0" + + "\2\13\1\64\1\65\56\13\10\0\1\66\67\0\1\67" + "\55\0\1\7\10\0\1\70\53\0\2\6\11\0\1\6" + "\1\0\1\6\1\71\6\6\6\0\2\6\1\72\5\6" + + "\1\73\20\6\1\74\1\0\2\6\11\0\1\6\1\0" + "\3\6\1\75\1\6\1\76\2\6\6\0\32\6\1\0" + "\2\6\11\0\1\6\1\0\10\6\6\0\1\77\31\6" + + "\1\0\2\6\11\0\1\6\1\0\1\6\1\100\4\6" + "\1\101\1\6\6\0\1\102\31\6\1\0\2\6\11\0" + "\1\6\1\0\2\6\1\103\2\6\1\104\2\6\6\0" + + "\2\6\1\105\27\6\1\0\2\6\11\0\1\6\1\0" + "\7\6\1\106\6\0\1\107\31\6\1\0\2\6\11\0" + "\1\6\1\0\10\6\6\0\2\6\1\110\27\6\1\0" + + "\2\6\11\0\1\6\1\0\3\6\1\111\4\6\6\0" + "\32\6\21\0\1\112\3\0\1\113\4\0\1\20\1\0" + "\1\114\63\0\1\20\34\0\2\6\11\0\1\6\1\0" + + "\3\6\1\115\4\6\6\0\2\6\1\116\2\6\1\117" + "\24\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + "\2\6\1\120\27\6\1\0\2\6\11\0\1\6\1\0" + + "\1\6\1\121\6\6\6\0\32\6\1\0\2\6\11\0" + "\1\6\1\0\1\6\1\122\6\6\6\0\32\6\1\0" + "\2\6\11\0\1\6\1\0\4\6\1\123\3\6\6\0" + + "\7\6\1\124\22\6\1\0\2\6\11\0\1\6\1\0" + "\10\6\6\0\2\6\1\125\27\6\1\0\2\6\11\0" + "\1\6\1\0\1\6\1\126\3\6\1\127\2\6\6\0" + + "\6\6\1\130\23\6\1\0\2\6\11\0\1\6\1\0" + "\10\6\6\0\10\6\1\131\21\6\1\0\2\6\11\0" + "\1\6\1\0\10\6\6\0\2\6\1\132\27\6\1\0" + + "\2\6\11\0\1\6\1\0\3\6\1\133\4\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + "\15\6\1\134\14\6\1\0\2\6\11\0\1\6\1\0" + + "\10\6\6\0\20\6\1\135\1\136\10\6\1\0\2\6" + "\11\0\1\6\1\0\10\6\6\0\7\6\1\137\22\6" + + "\3\51\1\0\5\51\1\0\54\51\11\0\1\140\65\0" + "\1\141\54\0\3\56\1\0\62\56\1\0\2\60\11\0" + + "\1\60\1\0\10\60\6\0\32\60\1\0\2\60\7\0" + "\1\60\1\0\12\60\6\0\32\60\3\12\1\0\1\12" + + "\1\142\1\63\57\12\3\13\1\0\2\13\1\64\1\143" + "\56\13\10\0\1\144\70\0\1\20\53\0\2\6\11\0" + + "\1\6\1\0\2\6\1\145\5\6\6\0\32\6\1\0" + "\2\6\11\0\1\6\1\0\7\6\1\146\6\0\1\147" + "\31\6\1\0\2\6\11\0\1\6\1\0\3\6\1\150" + + "\4\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0" + "\10\6\6\0\7\6\1\151\22\6\1\0\2\6\11\0" + "\1\6\1\0\1\152\7\6\6\0\7\6\1\153\20\6" + + "\1\154\1\6\1\0\2\6\11\0\1\6\1\0\10\6" + "\6\0\11\6\1\155\20\6\1\0\2\6\11\0\1\6" + "\1\0\1\156\7\6\6\0\7\6\1\157\22\6\1\0" + + "\2\6\11\0\1\6\1\0\1\6\1\160\6\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\7\6\1\161" + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + + "\6\0\1\6\1\123\30\6\1\0\2\6\11\0\1\6" + "\1\0\10\6\6\0\1\162\31\6\1\0\2\6\11\0" + "\1\6\1\0\6\6\1\163\1\6\6\0\32\6\1\0" + + "\2\6\11\0\1\6\1\0\1\6\1\123\6\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\7\6\1\164" + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + + "\6\0\1\6\1\121\30\6\1\0\2\6\11\0\1\6" + "\1\0\5\6\1\165\2\6\6\0\6\6\1\166\23\6" + "\1\0\2\6\11\0\1\6\1\0\1\167\5\6\1\170" + + "\1\6\6\0\32\6\36\0\1\171\45\0\1\172\67\0" + "\1\173\2\0\1\174\43\0\2\6\11\0\1\6\1\0" + + "\10\6\6\0\27\6\1\175\2\6\1\0\2\6\11\0" + "\1\6\1\0\1\121\7\6\6\0\32\6\1\0\2\6" + "\11\0\1\6\1\0\6\6\1\123\1\6\6\0\32\6" + + "\1\0\2\6\11\0\1\6\1\0\4\6\1\176\3\6" + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\3\6" + "\1\177\4\6\6\0\32\6\1\0\2\6\11\0\1\6" + + "\1\0\5\6\1\127\2\6\6\0\32\6\1\0\2\6" + "\11\0\1\6\1\0\6\6\1\200\1\6\6\0\32\6" + "\1\0\2\6\11\0\1\6\1\0\10\6\6\0\5\6" + + "\1\201\24\6\1\0\2\6\11\0\1\6\1\0\10\6" + "\6\0\5\6\1\202\24\6\1\0\2\6\11\0\1\6" + "\1\0\5\6\1\203\2\6\6\0\32\6\1\0\2\6" + + "\11\0\1\6\1\0\10\6\6\0\5\6\1\204\24\6" + "\1\0\2\6\11\0\1\6\1\0\10\6\6\0\1\6" + "\1\205\30\6\1\0\2\6\11\0\1\6\1\0\1\167" + + "\7\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0" + "\10\6\6\0\16\6\1\206\13\6\1\0\2\6\11\0" + "\1\207\1\0\10\6\6\0\32\6\1\0\2\6\11\0" + + "\1\6\1\0\10\6\6\0\6\6\1\130\23\6\10\0" + "\1\210\56\0\2\6\11\0\1\6\1\0\3\6\1\211" + "\4\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0" + + "\1\212\7\6\6\0\32\6\1\0\2\6\11\0\1\6" + "\1\0\2\6\1\213\5\6\6\0\32\6\1\0\2\6" + "\11\0\1\6\1\0\10\6\6\0\1\123\31\6\1\0" + + "\2\6\11\0\1\6\1\0\3\6\1\135\4\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\2\6\1\214" + "\5\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0" + + "\3\6\1\215\4\6\6\0\32\6\1\0\2\6\11\0" + "\1\6\1\0\2\6\1\216\5\6\6\0\32\6\1\0" + "\2\6\11\0\1\6\1\0\3\6\1\217\3\6\1\220" + + "\6\0\13\6\1\220\16\6\1\0\2\6\11\0\1\6" + "\1\0\10\6\6\0\5\6\1\117\24\6\1\0\2\6" + "\11\0\1\6\1\0\5\6\1\221\2\6\6\0\32\6" + + "\1\0\2\6\11\0\1\6\1\0\10\6\6\0\2\6" + "\1\222\27\6\1\0\2\6\11\0\1\6\1\0\3\6" + "\1\223\4\6\6\0\32\6\1\0\2\6\11\0\1\6" + + "\1\0\10\6\6\0\6\6\1\224\23\6\1\0\2\6" + "\11\0\1\6\1\0\7\6\1\145\6\0\32\6\1\0" + "\2\6\11\0\1\6\1\0\3\6\1\225\4\6\6\0" + + "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + "\1\6\1\226\30\6\1\0\2\6\11\0\1\6\1\0" + "\5\6\1\117\2\6\6\0\32\6\1\0\2\6\11\0" + + "\1\6\1\0\4\6\1\227\3\6\6\0\12\6\1\230" + "\17\6\1\0\2\6\11\0\1\6\1\0\3\6\1\231" + "\4\6\6\0\32\6\22\0\1\232\62\0\1\233\114\0" + + "\1\234\65\0\1\235\20\0\2\6\11\0\1\6\1\0" + "\1\135\7\6\6\0\32\6\1\0\2\6\11\0\1\6" + "\1\0\10\6\6\0\5\6\1\236\24\6\1\0\2\6" + + "\11\0\1\6\1\0\5\6\1\237\2\6\6\0\32\6" + "\1\0\2\6\11\0\1\6\1\0\6\6\1\240\1\6" + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + + "\6\0\1\175\31\6\1\0\2\6\11\0\1\6\1\0" + "\1\6\1\241\6\6\6\0\32\6\1\0\2\6\11\0" + "\1\6\1\0\6\6\1\242\1\6\6\0\32\6\1\0" + + "\2\6\11\0\1\6\1\0\6\6\1\243\1\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\2\6\1\236" + "\5\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0" + + "\10\6\6\0\16\6\1\244\13\6\1\0\2\6\11\0" + "\1\6\1\0\10\6\6\0\22\6\1\245\7\6\1\0" + "\2\6\11\0\1\6\1\0\1\6\1\246\6\6\6\0" + + "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + "\12\6\1\247\17\6\1\0\2\6\11\0\1\6\1\0" + "\1\6\1\150\6\6\6\0\32\6\1\0\2\6\11\0" + + "\1\6\1\0\5\6\1\250\2\6\6\0\32\6\1\0" + "\2\6\11\0\1\6\1\0\10\6\6\0\5\6\1\251" + "\24\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + + "\30\6\1\252\1\6\1\0\2\6\11\0\1\6\1\0" + "\3\6\1\175\4\6\6\0\32\6\1\0\2\6\11\0" + "\1\6\1\0\10\6\6\0\6\6\1\253\23\6\1\0" + + "\2\6\11\0\1\6\1\0\1\6\1\135\6\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + "\5\6\1\254\24\6\1\0\2\6\11\0\1\6\1\0" + + "\1\255\7\6\6\0\32\6\1\0\2\6\11\0\1\6" + "\1\0\1\6\1\175\6\6\6\0\32\6\1\0\2\6" + "\11\0\1\6\1\0\4\6\1\176\2\6\1\146\6\0" + + "\32\6\1\0\2\6\11\0\1\6\1\0\3\6\1\256" + "\4\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0" + "\3\6\1\257\4\6\6\0\32\6\1\0\2\6\11\0" + + "\1\6\1\0\10\6\6\0\6\6\1\175\23\6\31\0" + "\1\260\75\0\1\261\63\0\1\262\47\0\1\232\45\0" + + "\2\6\11\0\1\6\1\0\6\6\1\151\1\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + "\4\6\1\123\25\6\1\0\2\6\11\0\1\6\1\0" + + "\3\6\1\263\4\6\6\0\32\6\1\0\2\6\11\0" + "\1\6\1\0\7\6\1\135\6\0\32\6\1\0\2\6" + "\11\0\1\6\1\0\6\6\1\135\1\6\6\0\32\6" + + "\1\0\2\6\11\0\1\6\1\0\3\6\1\123\4\6" + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + "\6\0\23\6\1\264\6\6\1\0\2\6\11\0\1\6" + + "\1\0\10\6\6\0\5\6\1\265\24\6\1\0\2\6" + "\11\0\1\6\1\0\10\6\6\0\3\6\1\266\26\6" + "\1\0\2\6\11\0\1\6\1\0\1\123\7\6\6\0" + + "\32\6\1\0\2\6\11\0\1\6\1\0\1\6\1\151" + "\6\6\6\0\32\6\1\0\2\6\11\0\1\6\1\0" + "\2\6\1\267\5\6\6\0\32\6\1\0\2\6\11\0" + + "\1\6\1\0\10\6\6\0\4\6\1\135\25\6\1\0" + "\2\6\11\0\1\6\1\0\4\6\1\123\3\6\6\0" + "\32\6\1\0\2\6\11\0\1\6\1\0\10\6\6\0" + + "\5\6\1\270\24\6\1\0\2\6\11\0\1\6\1\0" + "\10\6\6\0\1\271\31\6\1\0\2\6\11\0\1\6" + "\1\0\1\272\7\6\6\0\32\6\34\0\1\273\52\0" + + "\1\274\45\0\2\6\11\0\1\6\1\0\10\6\6\0" + "\6\6\1\275\23\6\1\0\2\6\11\0\1\6\1\0" + "\10\6\6\0\24\6\1\276\5\6\1\0\2\6\11\0" + + "\1\6\1\0\10\6\6\0\1\277\31\6\1\0\2\6" + "\11\0\1\6\1\0\3\6\1\222\4\6\6\0\32\6" + "\1\0\2\6\11\0\1\6\1\0\5\6\1\242\2\6" + + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + "\6\0\2\6\1\150\27\6\1\0\2\6\11\0\1\6" + "\1\0\10\6\6\0\26\6\1\135\3\6\1\0\2\6" + + "\11\0\1\6\1\0\5\6\1\300\2\6\6\0\32\6" + "\47\0\1\232\35\0\1\232\47\0\2\6\11\0\1\6" + "\1\0\1\301\7\6\6\0\32\6\1\0\2\6\11\0" + + "\1\6\1\0\10\6\6\0\25\6\1\302\4\6\1\0" + "\2\6\11\0\1\6\1\0\10\6\6\0\13\6\1\135" + "\16\6\1\0\2\6\11\0\1\6\1\0\1\303\7\6" + + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + "\6\0\13\6\1\304\16\6\1\0\2\6\11\0\1\6" + "\1\0\10\6\6\0\14\6\1\135\15\6\1\0\2\6" + + "\11\0\1\6\1\0\5\6\1\305\2\6\6\0\32\6" + "\1\0\2\6\11\0\1\6\1\0\5\6\1\306\2\6" + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + + "\6\0\3\6\1\236\26\6\1\0\2\6\11\0\1\6" + "\1\0\1\6\1\307\6\6\6\0\32\6\1\0\2\6" + "\11\0\1\6\1\0\10\6\6\0\3\6\1\310\26\6" + + "\1\0\2\6\11\0\1\6\1\0\5\6\1\311\2\6" + "\6\0\32\6\1\0\2\6\11\0\1\6\1\0\10\6" + "\6\0\13\6\1\151\16\6"; + + private static int[] zzUnpackTrans() { + int[] result = new int[9720]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\1\11\2\1\1\11\4\1\1\11\2\1\1\11" + "\31\1\1\11\1\1\1\11\2\1\1\11\2\1\1\11" + + "\2\1\2\11\23\1\3\0\23\1\2\11\2\1\1\0" + "\24\1\4\0\13\1\1\11\21\1\4\0\22\1\1\11" + "\2\0\10\1\2\0\15\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[201]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public LuaTokenMaker() { - } - - + public LuaTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -527,26 +367,26 @@ public class LuaTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "--", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -561,7 +401,6 @@ public class LuaTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -571,21 +410,18 @@ public class LuaTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -594,7 +430,8 @@ public class LuaTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -603,364 +440,385 @@ public class LuaTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 LuaTokenMaker(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 LuaTokenMaker(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 < 164) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 3: { + addNullToken(); + return firstToken; + } + case 24: + break; + case 13: { + addToken(Token.LITERAL_CHAR); + } + case 25: + break; + case 15: { + start = zzMarkedPos - 2; + yybegin(LONGSTRING); + } + case 26: + break; + case 19: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 27: + break; + case 4: { + addToken(Token.WHITESPACE); + } + case 28: + break; + case 2: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 29: + break; + case 17: { + addToken(Token.RESERVED_WORD); + } + case 30: + break; + case 21: { + start = zzMarkedPos - 4; + yybegin(MLC); + } + case 31: + break; + case 7: { + addToken(Token.SEPARATOR); + } + case 32: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 33: + break; + case 18: { + addToken(Token.FUNCTION); + } + case 34: + break; + case 5: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 35: + break; + case 6: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 36: + break; + case 23: { + addToken(Token.DATA_TYPE); + } + case 37: + break; + case 22: { + addToken(Token.LITERAL_BOOLEAN); + } + case 38: + break; + case 20: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 39: + break; + case 14: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 40: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 41: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + return firstToken; + } + case 42: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 43: + break; + case 16: { + start = zzMarkedPos - 2; + yybegin(LINECOMMENT); + } + case 44: + break; + case 9: {} + case 45: + break; + case 10: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 46: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 202: + break; + case LONGSTRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 203: + break; + case LINECOMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + return firstToken; + } + case 204: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 205: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 LuaTokenMaker(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 LuaTokenMaker(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 < 164) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 3: - { addNullToken(); return firstToken; - } - case 24: break; - case 13: - { addToken(Token.LITERAL_CHAR); - } - case 25: break; - case 15: - { start = zzMarkedPos-2; yybegin(LONGSTRING); - } - case 26: break; - case 19: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 27: break; - case 4: - { addToken(Token.WHITESPACE); - } - case 28: break; - case 2: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 29: break; - case 17: - { addToken(Token.RESERVED_WORD); - } - case 30: break; - case 21: - { start = zzMarkedPos-4; yybegin(MLC); - } - case 31: break; - case 7: - { addToken(Token.SEPARATOR); - } - case 32: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 33: break; - case 18: - { addToken(Token.FUNCTION); - } - case 34: break; - case 5: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 35: break; - case 6: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 36: break; - case 23: - { addToken(Token.DATA_TYPE); - } - case 37: break; - case 22: - { addToken(Token.LITERAL_BOOLEAN); - } - case 38: break; - case 20: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 39: break; - case 14: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 40: break; - case 11: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 41: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); return firstToken; - } - case 42: break; - case 8: - { addToken(Token.OPERATOR); - } - case 43: break; - case 16: - { start = zzMarkedPos-2; yybegin(LINECOMMENT); - } - case 44: break; - case 9: - { - } - case 45: break; - case 10: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 46: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 202: break; - case LONGSTRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 203: break; - case LINECOMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); return firstToken; - } - case 204: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 205: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/MakefileTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/MakefileTokenMaker.java index a830363..9726654 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/MakefileTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/MakefileTokenMaker.java @@ -1,429 +1,326 @@ /* The following code was generated by JFlex 1.4.1 on 8/9/13 11:40 AM */ - /* * 09/20/2008 - * * MakefileTokenMaker.java - Scanner for makefiles. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; import java.util.Stack; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for makefiles.

+ * Scanner for makefiles. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated MakefileTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated MakefileTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class MakefileTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int VAR = 1; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\10\1\7\1\0\1\10\23\0\1\10\1\0\1\13\1\15"+ - "\1\4\2\0\1\11\1\6\1\47\1\0\1\16\1\0\1\37\1\1"+ - "\1\0\12\2\1\3\2\0\1\17\1\0\1\16\1\0\32\1\1\0"+ - "\1\12\2\0\1\1\1\14\1\20\1\32\1\43\1\21\1\24\1\25"+ - "\1\41\1\44\1\26\1\45\1\1\1\35\1\34\1\33\1\40\1\22"+ - "\1\46\1\23\1\30\1\36\1\31\1\1\1\42\1\27\2\1\1\5"+ - "\1\0\1\50\uff82\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 = - "\2\0\2\1\1\2\2\1\1\3\1\4\1\5\1\6"+ - "\1\1\1\7\1\10\14\1\2\11\1\12\1\13\1\14"+ - "\1\15\1\16\1\17\1\20\1\5\1\6\1\21\2\0"+ - "\1\22\23\1\1\23\1\24\1\20\1\21\1\22\2\1"+ - "\1\25\43\1\1\25\14\1\1\25\5\1\1\0\2\1"+ - "\1\0\1\1\1\0\1\25"; - - private static int [] zzUnpackAction() { - int [] result = new int[129]; - 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\51\0\122\0\173\0\244\0\315\0\366\0\122"+ - "\0\u011f\0\u0148\0\u0171\0\u019a\0\u01c3\0\122\0\u01ec\0\u0215"+ - "\0\u023e\0\u0267\0\u0290\0\u02b9\0\u02e2\0\u030b\0\u0334\0\u035d"+ - "\0\u0386\0\u03af\0\u03d8\0\u0401\0\u042a\0\122\0\122\0\122"+ - "\0\122\0\122\0\122\0\u0453\0\u047c\0\122\0\u019a\0\u04a5"+ - "\0\122\0\u04ce\0\u04f7\0\u0520\0\u0549\0\u0572\0\u059b\0\u05c4"+ - "\0\u05ed\0\u0616\0\u063f\0\u0668\0\u0691\0\u06ba\0\u06e3\0\u070c"+ - "\0\u0735\0\u075e\0\u0787\0\u07b0\0\122\0\122\0\u0148\0\u0171"+ - "\0\u019a\0\u07d9\0\u0802\0\173\0\u082b\0\u0854\0\u087d\0\u08a6"+ - "\0\u08cf\0\u08f8\0\u0921\0\u094a\0\u0973\0\u099c\0\u09c5\0\u09ee"+ - "\0\u0a17\0\u0a40\0\u0a69\0\u0a92\0\u0abb\0\u0ae4\0\u0b0d\0\u0b36"+ - "\0\u0b5f\0\u0b88\0\u0bb1\0\u0bda\0\u0c03\0\u0c2c\0\u0c55\0\u0c7e"+ - "\0\u0ca7\0\u0cd0\0\u0cf9\0\u0d22\0\u0d4b\0\u0d74\0\u0d9d\0\u0dc6"+ - "\0\u0def\0\u0e18\0\u0e41\0\u0e6a\0\u0e93\0\u0ebc\0\u0ee5\0\u0f0e"+ - "\0\u0f37\0\u0f60\0\u0f89\0\u0fb2\0\u0fdb\0\u1004\0\u102d\0\u1056"+ - "\0\u107f\0\u10a8\0\u10d1\0\u10fa\0\u1123\0\u114c\0\u1175\0\u119e"+ - "\0\122"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[129]; - 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 = - "\1\3\1\4\1\5\1\6\1\7\2\3\1\10\1\11"+ - "\1\12\1\3\1\13\1\14\1\15\1\6\1\16\1\17"+ - "\1\20\1\21\1\4\1\22\1\23\1\24\1\4\1\25"+ - "\1\4\1\26\1\27\3\4\1\3\1\30\1\4\1\31"+ - "\2\4\1\32\1\4\2\3\4\33\1\34\10\33\1\35"+ - "\31\33\1\36\1\37\52\0\2\4\1\40\14\0\17\4"+ - "\1\0\7\4\4\0\1\5\65\0\1\16\36\0\1\41"+ - "\1\42\52\0\1\11\40\0\7\12\1\0\1\12\1\43"+ - "\1\44\36\12\7\13\1\0\2\13\1\45\1\46\35\13"+ - "\7\47\1\0\2\47\1\50\1\47\1\51\34\47\7\15"+ - "\1\0\41\15\1\0\2\4\1\40\14\0\1\4\1\52"+ - "\15\4\1\0\7\4\3\0\2\4\1\40\14\0\4\4"+ - "\1\53\1\4\1\54\10\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\1\55\16\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\13\4\1\56\1\4\1\57\1\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\6\4\1\60\10\4"+ - "\1\0\1\61\6\4\3\0\2\4\1\40\14\0\5\4"+ - "\1\62\11\4\1\0\7\4\3\0\2\4\1\40\14\0"+ - "\11\4\1\63\4\4\1\64\1\0\1\65\3\4\1\66"+ - "\2\4\3\0\2\4\1\40\14\0\1\67\16\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\17\4\1\0\1\70"+ - "\6\4\3\0\2\4\1\40\14\0\3\4\1\71\13\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\6\4\1\72"+ - "\10\4\1\0\1\73\6\4\3\0\2\4\1\40\14\0"+ - "\17\4\1\0\1\74\6\4\2\0\4\33\1\0\10\33"+ - "\1\0\31\33\7\0\1\75\1\76\42\0\7\35\1\0"+ - "\41\35\7\12\1\0\1\12\1\77\1\44\36\12\7\13"+ - "\1\0\2\13\1\45\1\100\35\13\7\47\1\0\2\47"+ - "\1\50\1\47\1\101\34\47\1\0\2\4\1\40\14\0"+ - "\1\4\1\102\15\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\5\4\1\103\11\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\3\4\1\104\13\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\16\4\1\105\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\1\4\1\106\15\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\10\4\1\107\6\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\3\4\1\110\7\4"+ - "\1\111\1\4\1\112\1\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\3\4\1\113\13\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\1\4\1\114\2\4\1\115\6\4"+ - "\1\116\3\4\1\0\7\4\3\0\2\4\1\40\14\0"+ - "\5\4\1\117\11\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\3\4\1\120\13\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\3\4\1\121\13\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\4\4\1\122\12\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\10\4\1\123\6\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\16\4\1\124\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\6\4\1\125\10\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\15\4\1\126"+ - "\1\4\1\0\7\4\3\0\2\4\1\40\14\0\3\4"+ - "\1\127\13\4\1\0\7\4\3\0\2\4\1\40\14\0"+ - "\6\4\1\130\10\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\2\4\1\131\5\4\1\132\6\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\6\4\1\133\10\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\17\4\1\0\4\4"+ - "\1\134\2\4\3\0\2\4\1\40\14\0\4\4\1\135"+ - "\1\4\1\135\10\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\4\4\1\104\12\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\10\4\1\136\6\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\1\4\1\137\15\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\16\4\1\140\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\4\4\1\141\12\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\4\4\1\135\12\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\17\4\1\0"+ - "\6\4\1\104\3\0\2\4\1\40\14\0\1\4\1\114"+ - "\2\4\1\115\12\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\5\4\1\142\11\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\6\4\1\143\10\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\16\4\1\104\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\15\4\1\144\1\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\4\4\1\145\12\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\1\4\1\146\15\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\17\4\1\0"+ - "\1\4\1\74\5\4\3\0\2\4\1\40\14\0\1\4"+ - "\1\147\15\4\1\0\7\4\3\0\2\4\1\40\14\0"+ - "\1\4\1\150\15\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\13\4\1\104\3\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\3\4\1\151\13\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\11\4\1\63\5\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\13\4\1\107\3\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\10\4\1\152\6\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\5\4\1\104"+ - "\11\4\1\0\7\4\3\0\2\4\1\40\14\0\16\4"+ - "\1\153\1\0\7\4\3\0\2\4\1\40\14\0\10\4"+ - "\1\154\6\4\1\0\7\4\3\0\2\4\1\40\14\0"+ - "\4\4\1\155\12\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\1\156\16\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\6\4\1\157\10\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\2\4\1\104\14\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\15\4\1\104\1\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\13\4\1\160\3\4\1\0"+ - "\7\4\3\0\2\4\1\40\14\0\6\4\1\54\10\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\17\4\1\0"+ - "\3\4\1\161\3\4\3\0\2\4\1\40\14\0\10\4"+ - "\1\104\6\4\1\0\7\4\3\0\2\4\1\40\14\0"+ - "\4\4\1\117\12\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\11\4\1\162\5\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\17\4\1\0\2\4\1\163\4\4\3\0"+ - "\2\4\1\40\14\0\16\4\1\164\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\3\4\1\165\13\4\1\0\7\4"+ - "\3\0\2\4\1\40\14\0\17\4\1\0\3\4\1\166"+ - "\3\4\3\0\2\4\1\40\14\0\7\4\1\104\7\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\1\167\16\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\1\170\16\4"+ - "\1\0\7\4\3\0\2\4\1\40\14\0\12\4\1\171"+ - "\4\4\1\0\7\4\3\0\2\4\1\40\14\0\17\4"+ - "\1\0\1\170\6\4\3\0\2\4\1\40\14\0\3\4"+ - "\1\172\13\4\1\0\7\4\3\0\2\4\1\40\14\0"+ - "\17\4\1\173\7\4\3\0\2\4\1\40\14\0\17\4"+ - "\1\0\4\4\1\104\2\4\3\0\2\4\1\40\14\0"+ - "\14\4\1\107\2\4\1\0\7\4\3\0\2\4\1\40"+ - "\14\0\3\4\1\174\13\4\1\0\7\4\3\0\2\4"+ - "\1\40\14\0\10\4\1\121\6\4\1\0\7\4\3\0"+ - "\2\4\1\40\14\0\6\4\1\175\10\4\1\0\7\4"+ - "\42\0\1\176\11\0\2\4\1\40\14\0\1\4\1\104"+ - "\15\4\1\0\7\4\3\0\2\4\1\40\14\0\13\4"+ - "\1\177\3\4\1\0\7\4\33\0\1\200\20\0\2\4"+ - "\1\40\14\0\17\4\1\0\1\4\1\104\5\4\40\0"+ - "\1\201\12\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[4551]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\1\11\4\1\1\11\5\1\1\11\17\1\6\11"+ - "\2\1\1\11\2\0\1\11\23\1\2\11\74\1\1\0"+ - "\2\1\1\0\1\1\1\0\1\11"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[129]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - private Stack varDepths; - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int VAR = 1; + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\10\1\7\1\0\1\10\23\0\1\10\1\0\1\13\1\15" + + "\1\4\2\0\1\11\1\6\1\47\1\0\1\16\1\0\1\37\1\1" + "\1\0\12\2\1\3\2\0\1\17\1\0\1\16\1\0\32\1\1\0" + + "\1\12\2\0\1\1\1\14\1\20\1\32\1\43\1\21\1\24\1\25" + "\1\41\1\44\1\26\1\45\1\1\1\35\1\34\1\33\1\40\1\22" + + "\1\46\1\23\1\30\1\36\1\31\1\1\1\42\1\27\2\1\1\5" + "\1\0\1\50\uff82\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 = "\2\0\2\1\1\2\2\1\1\3\1\4\1\5\1\6" + "\1\1\1\7\1\10\14\1\2\11\1\12\1\13\1\14" + + "\1\15\1\16\1\17\1\20\1\5\1\6\1\21\2\0" + "\1\22\23\1\1\23\1\24\1\20\1\21\1\22\2\1" + "\1\25\43\1\1\25\14\1\1\25\5\1\1\0\2\1" + + "\1\0\1\1\1\0\1\25"; + + private static int[] zzUnpackAction() { + int[] result = new int[129]; + 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\51\0\122\0\173\0\244\0\315\0\366\0\122" + + "\0\u011f\0\u0148\0\u0171\0\u019a\0\u01c3\0\122\0\u01ec\0\u0215" + + "\0\u023e\0\u0267\0\u0290\0\u02b9\0\u02e2\0\u030b\0\u0334\0\u035d" + + "\0\u0386\0\u03af\0\u03d8\0\u0401\0\u042a\0\122\0\122\0\122" + "\0\122\0\122\0\122\0\u0453\0\u047c\0\122\0\u019a\0\u04a5" + + "\0\122\0\u04ce\0\u04f7\0\u0520\0\u0549\0\u0572\0\u059b\0\u05c4" + + "\0\u05ed\0\u0616\0\u063f\0\u0668\0\u0691\0\u06ba\0\u06e3\0\u070c" + + "\0\u0735\0\u075e\0\u0787\0\u07b0\0\122\0\122\0\u0148\0\u0171" + + "\0\u019a\0\u07d9\0\u0802\0\173\0\u082b\0\u0854\0\u087d\0\u08a6" + + "\0\u08cf\0\u08f8\0\u0921\0\u094a\0\u0973\0\u099c\0\u09c5\0\u09ee" + + "\0\u0a17\0\u0a40\0\u0a69\0\u0a92\0\u0abb\0\u0ae4\0\u0b0d\0\u0b36" + + "\0\u0b5f\0\u0b88\0\u0bb1\0\u0bda\0\u0c03\0\u0c2c\0\u0c55\0\u0c7e" + + "\0\u0ca7\0\u0cd0\0\u0cf9\0\u0d22\0\u0d4b\0\u0d74\0\u0d9d\0\u0dc6" + + "\0\u0def\0\u0e18\0\u0e41\0\u0e6a\0\u0e93\0\u0ebc\0\u0ee5\0\u0f0e" + + "\0\u0f37\0\u0f60\0\u0f89\0\u0fb2\0\u0fdb\0\u1004\0\u102d\0\u1056" + + "\0\u107f\0\u10a8\0\u10d1\0\u10fa\0\u1123\0\u114c\0\u1175\0\u119e" + "\0\122"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[129]; + 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 = "\1\3\1\4\1\5\1\6\1\7\2\3\1\10\1\11" + "\1\12\1\3\1\13\1\14\1\15\1\6\1\16\1\17" + + "\1\20\1\21\1\4\1\22\1\23\1\24\1\4\1\25" + "\1\4\1\26\1\27\3\4\1\3\1\30\1\4\1\31" + "\2\4\1\32\1\4\2\3\4\33\1\34\10\33\1\35" + + "\31\33\1\36\1\37\52\0\2\4\1\40\14\0\17\4" + "\1\0\7\4\4\0\1\5\65\0\1\16\36\0\1\41" + + "\1\42\52\0\1\11\40\0\7\12\1\0\1\12\1\43" + "\1\44\36\12\7\13\1\0\2\13\1\45\1\46\35\13" + + "\7\47\1\0\2\47\1\50\1\47\1\51\34\47\7\15" + "\1\0\41\15\1\0\2\4\1\40\14\0\1\4\1\52" + "\15\4\1\0\7\4\3\0\2\4\1\40\14\0\4\4" + + "\1\53\1\4\1\54\10\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\1\55\16\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\13\4\1\56\1\4\1\57\1\4\1\0" + + "\7\4\3\0\2\4\1\40\14\0\6\4\1\60\10\4" + "\1\0\1\61\6\4\3\0\2\4\1\40\14\0\5\4" + "\1\62\11\4\1\0\7\4\3\0\2\4\1\40\14\0" + + "\11\4\1\63\4\4\1\64\1\0\1\65\3\4\1\66" + "\2\4\3\0\2\4\1\40\14\0\1\67\16\4\1\0" + "\7\4\3\0\2\4\1\40\14\0\17\4\1\0\1\70" + + "\6\4\3\0\2\4\1\40\14\0\3\4\1\71\13\4" + "\1\0\7\4\3\0\2\4\1\40\14\0\6\4\1\72" + "\10\4\1\0\1\73\6\4\3\0\2\4\1\40\14\0" + + "\17\4\1\0\1\74\6\4\2\0\4\33\1\0\10\33" + "\1\0\31\33\7\0\1\75\1\76\42\0\7\35\1\0" + + "\41\35\7\12\1\0\1\12\1\77\1\44\36\12\7\13" + "\1\0\2\13\1\45\1\100\35\13\7\47\1\0\2\47" + + "\1\50\1\47\1\101\34\47\1\0\2\4\1\40\14\0" + "\1\4\1\102\15\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\5\4\1\103\11\4\1\0\7\4\3\0\2\4" + + "\1\40\14\0\3\4\1\104\13\4\1\0\7\4\3\0" + "\2\4\1\40\14\0\16\4\1\105\1\0\7\4\3\0" + "\2\4\1\40\14\0\1\4\1\106\15\4\1\0\7\4" + + "\3\0\2\4\1\40\14\0\10\4\1\107\6\4\1\0" + "\7\4\3\0\2\4\1\40\14\0\3\4\1\110\7\4" + "\1\111\1\4\1\112\1\4\1\0\7\4\3\0\2\4" + + "\1\40\14\0\3\4\1\113\13\4\1\0\7\4\3\0" + "\2\4\1\40\14\0\1\4\1\114\2\4\1\115\6\4" + "\1\116\3\4\1\0\7\4\3\0\2\4\1\40\14\0" + + "\5\4\1\117\11\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\3\4\1\120\13\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\3\4\1\121\13\4\1\0\7\4\3\0" + + "\2\4\1\40\14\0\4\4\1\122\12\4\1\0\7\4" + "\3\0\2\4\1\40\14\0\10\4\1\123\6\4\1\0" + "\7\4\3\0\2\4\1\40\14\0\16\4\1\124\1\0" + + "\7\4\3\0\2\4\1\40\14\0\6\4\1\125\10\4" + "\1\0\7\4\3\0\2\4\1\40\14\0\15\4\1\126" + "\1\4\1\0\7\4\3\0\2\4\1\40\14\0\3\4" + + "\1\127\13\4\1\0\7\4\3\0\2\4\1\40\14\0" + "\6\4\1\130\10\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\2\4\1\131\5\4\1\132\6\4\1\0\7\4" + + "\3\0\2\4\1\40\14\0\6\4\1\133\10\4\1\0" + "\7\4\3\0\2\4\1\40\14\0\17\4\1\0\4\4" + "\1\134\2\4\3\0\2\4\1\40\14\0\4\4\1\135" + + "\1\4\1\135\10\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\4\4\1\104\12\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\10\4\1\136\6\4\1\0\7\4\3\0" + + "\2\4\1\40\14\0\1\4\1\137\15\4\1\0\7\4" + "\3\0\2\4\1\40\14\0\16\4\1\140\1\0\7\4" + "\3\0\2\4\1\40\14\0\4\4\1\141\12\4\1\0" + + "\7\4\3\0\2\4\1\40\14\0\4\4\1\135\12\4" + "\1\0\7\4\3\0\2\4\1\40\14\0\17\4\1\0" + "\6\4\1\104\3\0\2\4\1\40\14\0\1\4\1\114" + + "\2\4\1\115\12\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\5\4\1\142\11\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\6\4\1\143\10\4\1\0\7\4\3\0" + + "\2\4\1\40\14\0\16\4\1\104\1\0\7\4\3\0" + "\2\4\1\40\14\0\15\4\1\144\1\4\1\0\7\4" + "\3\0\2\4\1\40\14\0\4\4\1\145\12\4\1\0" + + "\7\4\3\0\2\4\1\40\14\0\1\4\1\146\15\4" + "\1\0\7\4\3\0\2\4\1\40\14\0\17\4\1\0" + "\1\4\1\74\5\4\3\0\2\4\1\40\14\0\1\4" + + "\1\147\15\4\1\0\7\4\3\0\2\4\1\40\14\0" + "\1\4\1\150\15\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\13\4\1\104\3\4\1\0\7\4\3\0\2\4" + + "\1\40\14\0\3\4\1\151\13\4\1\0\7\4\3\0" + "\2\4\1\40\14\0\11\4\1\63\5\4\1\0\7\4" + "\3\0\2\4\1\40\14\0\13\4\1\107\3\4\1\0" + + "\7\4\3\0\2\4\1\40\14\0\10\4\1\152\6\4" + "\1\0\7\4\3\0\2\4\1\40\14\0\5\4\1\104" + "\11\4\1\0\7\4\3\0\2\4\1\40\14\0\16\4" + + "\1\153\1\0\7\4\3\0\2\4\1\40\14\0\10\4" + "\1\154\6\4\1\0\7\4\3\0\2\4\1\40\14\0" + "\4\4\1\155\12\4\1\0\7\4\3\0\2\4\1\40" + + "\14\0\1\156\16\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\6\4\1\157\10\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\2\4\1\104\14\4\1\0\7\4\3\0" + + "\2\4\1\40\14\0\15\4\1\104\1\4\1\0\7\4" + "\3\0\2\4\1\40\14\0\13\4\1\160\3\4\1\0" + "\7\4\3\0\2\4\1\40\14\0\6\4\1\54\10\4" + + "\1\0\7\4\3\0\2\4\1\40\14\0\17\4\1\0" + "\3\4\1\161\3\4\3\0\2\4\1\40\14\0\10\4" + "\1\104\6\4\1\0\7\4\3\0\2\4\1\40\14\0" + + "\4\4\1\117\12\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\11\4\1\162\5\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\17\4\1\0\2\4\1\163\4\4\3\0" + + "\2\4\1\40\14\0\16\4\1\164\1\0\7\4\3\0" + "\2\4\1\40\14\0\3\4\1\165\13\4\1\0\7\4" + "\3\0\2\4\1\40\14\0\17\4\1\0\3\4\1\166" + + "\3\4\3\0\2\4\1\40\14\0\7\4\1\104\7\4" + "\1\0\7\4\3\0\2\4\1\40\14\0\1\167\16\4" + "\1\0\7\4\3\0\2\4\1\40\14\0\1\170\16\4" + + "\1\0\7\4\3\0\2\4\1\40\14\0\12\4\1\171" + "\4\4\1\0\7\4\3\0\2\4\1\40\14\0\17\4" + "\1\0\1\170\6\4\3\0\2\4\1\40\14\0\3\4" + + "\1\172\13\4\1\0\7\4\3\0\2\4\1\40\14\0" + "\17\4\1\173\7\4\3\0\2\4\1\40\14\0\17\4" + "\1\0\4\4\1\104\2\4\3\0\2\4\1\40\14\0" + + "\14\4\1\107\2\4\1\0\7\4\3\0\2\4\1\40" + "\14\0\3\4\1\174\13\4\1\0\7\4\3\0\2\4" + "\1\40\14\0\10\4\1\121\6\4\1\0\7\4\3\0" + + "\2\4\1\40\14\0\6\4\1\175\10\4\1\0\7\4" + "\42\0\1\176\11\0\2\4\1\40\14\0\1\4\1\104" + "\15\4\1\0\7\4\3\0\2\4\1\40\14\0\13\4" + + "\1\177\3\4\1\0\7\4\33\0\1\200\20\0\2\4" + "\1\40\14\0\17\4\1\0\1\4\1\104\5\4\40\0" + "\1\201\12\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[4551]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\1\11\4\1\1\11\5\1\1\11\17\1\6\11" + "\2\1\1\11\2\0\1\11\23\1\2\11\74\1\1\0" + + "\2\1\1\0\1\1\1\0\1\11"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[129]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + private Stack varDepths; + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public MakefileTokenMaker() { - } - - + public MakefileTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -431,40 +328,40 @@ public class MakefileTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns whether tokens of the specified type should have "mark * occurrences" enabled for the current programming language. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER || type==Token.VARIABLE; + return type == Token.IDENTIFIER || type == Token.VARIABLE; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - s = text; try { yyreset(zzReader); @@ -474,21 +371,18 @@ public class MakefileTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -497,7 +391,8 @@ public class MakefileTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -506,358 +401,389 @@ public class MakefileTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 MakefileTokenMaker(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 MakefileTokenMaker(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 < 126) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 13: - { addToken(Token.PREPROCESSOR); - } - case 22: break; - case 15: - { if (varDepths==null) { varDepths = new Stack(); } else { varDepths.clear(); } varDepths.push(Boolean.FALSE); start = zzMarkedPos-2; yybegin(VAR); - } - case 23: break; - case 3: - { addNullToken(); return firstToken; - } - case 24: break; - case 16: - { addToken(Token.LITERAL_CHAR); - } - case 25: break; - case 12: - { if (!varDepths.empty() && varDepths.peek()==Boolean.TRUE) { - varDepths.pop(); - if (varDepths.empty()) { - addToken(start,zzStartRead, Token.VARIABLE); yybegin(YYINITIAL); - } + + /** + * 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 MakefileTokenMaker(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 MakefileTokenMaker(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 < 126) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 13: { + addToken(Token.PREPROCESSOR); + } + case 22: + break; + case 15: { + if (varDepths == null) { + varDepths = new Stack(); + } else { + varDepths.clear(); + } + varDepths.push(Boolean.FALSE); + start = zzMarkedPos - 2; + yybegin(VAR); + } + case 23: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 24: + break; + case 16: { + addToken(Token.LITERAL_CHAR); + } + case 25: + break; + case 12: { + if (!varDepths.empty() && varDepths.peek() == Boolean.TRUE) { + varDepths.pop(); + if (varDepths.empty()) { + addToken(start, zzStartRead, Token.VARIABLE); + yybegin(YYINITIAL); + } + } + } + case 26: + break; + case 11: { + if (!varDepths.empty() && varDepths.peek() == Boolean.FALSE) { + varDepths.pop(); + if (varDepths.empty()) { + addToken(start, zzStartRead, Token.VARIABLE); + yybegin(YYINITIAL); + } + } + } + case 27: + break; + case 4: { + addToken(Token.WHITESPACE); + } + case 28: + break; + case 21: { + addToken(Token.RESERVED_WORD); + } + case 29: + break; + case 20: { + varDepths.push(Boolean.FALSE); + } + case 30: + break; + case 18: { + addToken(Token.LITERAL_BACKQUOTE); + } + case 31: + break; + case 19: { + varDepths.push(Boolean.TRUE); + } + case 32: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 33: + break; + case 14: { + if (varDepths == null) { + varDepths = new Stack(); + } else { + varDepths.clear(); + } + varDepths.push(Boolean.TRUE); + start = zzMarkedPos - 2; + yybegin(VAR); + } + case 34: + break; + case 5: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 35: + break; + case 6: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 36: + break; + case 10: { + int temp1 = zzStartRead; + int temp2 = zzMarkedPos; + addToken(start, zzStartRead - 1, Token.VARIABLE); + addToken(temp1, temp2 - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 37: + break; + case 17: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 38: + break; + case 7: { + addToken(Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 39: + break; + case 2: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 40: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 41: + break; + case 9: {} + case 42: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case VAR: { + addToken(start, zzStartRead - 1, Token.VARIABLE); + addNullToken(); + return firstToken; } - } - case 26: break; - case 11: - { if (!varDepths.empty() && varDepths.peek()==Boolean.FALSE) { - varDepths.pop(); - if (varDepths.empty()) { - addToken(start,zzStartRead, Token.VARIABLE); yybegin(YYINITIAL); - } + case 130: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; } - } - case 27: break; - case 4: - { addToken(Token.WHITESPACE); - } - case 28: break; - case 21: - { addToken(Token.RESERVED_WORD); - } - case 29: break; - case 20: - { varDepths.push(Boolean.FALSE); - } - case 30: break; - case 18: - { addToken(Token.LITERAL_BACKQUOTE); - } - case 31: break; - case 19: - { varDepths.push(Boolean.TRUE); - } - case 32: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 33: break; - case 14: - { if (varDepths==null) { varDepths = new Stack(); } else { varDepths.clear(); } varDepths.push(Boolean.TRUE); start = zzMarkedPos-2; yybegin(VAR); - } - case 34: break; - case 5: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 35: break; - case 6: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 36: break; - case 10: - { int temp1 = zzStartRead; int temp2 = zzMarkedPos; addToken(start,zzStartRead-1, Token.VARIABLE); addToken(temp1, temp2-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 37: break; - case 17: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 38: break; - case 7: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 39: break; - case 2: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 40: break; - case 8: - { addToken(Token.OPERATOR); - } - case 41: break; - case 9: - { - } - case 42: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case VAR: { - addToken(start,zzStartRead-1, Token.VARIABLE); addNullToken(); return firstToken; - } - case 130: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 131: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + case 131: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/MxmlTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/MxmlTokenMaker.java index 5d33214..702c556 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/MxmlTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/MxmlTokenMaker.java @@ -1,2000 +1,1185 @@ /* The following code was generated by JFlex 1.4.1 on 6/18/15 6:41 PM */ - /* * 01/21/2011 - * * MxmlTokenMaker.java - Generates tokens for MXML syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * Scanner for MXML. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated MXMLTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated MXMLTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class MxmlTokenMaker extends AbstractMarkupTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int AS_EOL_COMMENT = 13; - public static final int AS_MLC = 12; - public static final int INTAG_SCRIPT = 7; - public static final int INATTR_DOUBLE_SCRIPT = 8; - public static final int CDATA = 10; - public static final int INATTR_SINGLE_SCRIPT = 9; - public static final int DTD = 3; - public static final int INATTR_SINGLE = 6; - public static final int INATTR_DOUBLE = 5; - public static final int YYINITIAL = 0; - public static final int AS = 11; - public static final int INTAG = 4; - public static final int COMMENT = 1; - public static final int PI = 2; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\12\1\10\1\0\1\7\1\36\22\0\1\105\1\16\1\32"+ - "\1\37\1\40\1\63\1\13\1\31\2\73\1\42\1\51\1\61\1\50"+ - "\1\6\1\41\1\3\3\27\4\27\2\2\1\5\1\14\1\11\1\15"+ - "\1\25\1\64\1\72\1\22\1\26\1\20\1\21\1\47\1\45\1\1"+ - "\1\122\1\121\1\1\1\110\1\44\1\111\1\112\1\113\1\116\1\123"+ - "\1\120\1\66\1\23\1\117\1\115\1\1\1\43\2\1\1\17\1\30"+ - "\1\24\1\62\1\4\1\0\1\55\1\35\1\67\1\76\1\54\1\46"+ - "\1\106\1\74\1\70\1\114\1\77\1\56\1\102\1\34\1\100\1\71"+ - "\1\103\1\53\1\57\1\52\1\33\1\107\1\75\1\104\1\101\1\1"+ - "\1\60\1\62\1\60\1\65\uff81\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\2\1\1\0\2\1\4\0\2\2\1\3\1\4"+ - "\1\5\1\6\1\1\1\7\5\1\1\10\2\1\1\11"+ - "\1\12\2\13\1\14\1\15\1\16\1\17\1\20\1\1"+ - "\1\21\1\1\1\22\1\23\1\24\1\25\2\1\1\26"+ - "\1\2\2\27\1\2\1\30\2\14\1\2\1\14\1\31"+ - "\3\2\1\31\1\14\1\2\1\32\1\33\3\2\2\26"+ - "\1\14\3\2\2\14\25\2\1\1\1\34\5\1\1\35"+ - "\3\1\1\36\1\37\1\4\1\40\1\6\5\0\1\41"+ - "\1\0\1\26\1\42\2\43\1\27\2\42\1\44\1\42"+ - "\3\0\3\2\1\0\1\14\1\2\1\32\1\45\2\33"+ - "\1\46\5\2\1\47\3\2\1\26\1\50\1\51\21\2"+ - "\1\47\20\2\2\47\12\2\1\47\2\2\1\47\11\2"+ - "\1\52\12\0\1\53\2\0\1\54\2\0\1\55\1\26"+ - "\1\43\1\0\2\44\3\0\3\2\1\56\1\2\2\32"+ - "\1\33\1\57\1\33\6\2\1\47\4\2\1\26\1\0"+ - "\1\60\5\2\1\47\23\2\1\47\10\2\1\60\24\2"+ - "\1\47\1\2\1\60\7\2\11\0\1\61\2\0\1\62"+ - "\1\26\3\0\2\2\1\32\1\63\1\32\1\33\10\2"+ - "\1\26\1\64\6\2\1\0\1\65\13\2\1\66\3\2"+ - "\1\66\36\2\2\0\1\67\2\0\1\70\3\0\1\26"+ - "\2\0\1\2\1\32\1\33\7\2\1\26\5\2\1\47"+ - "\1\0\26\2\1\66\13\2\5\0\1\26\2\0\1\2"+ - "\1\32\1\33\6\2\1\26\5\2\1\0\30\2\3\0"+ - "\4\2\1\26\2\2\1\0\23\2\3\0\1\2\1\66"+ - "\1\2\1\47\21\2\1\71\1\0\1\72\4\2\1\66"+ - "\40\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[624]; - 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\124\0\250\0\374\0\u0150\0\u01a4\0\u01f8\0\u024c"+ - "\0\u02a0\0\u02f4\0\u0348\0\u039c\0\u03f0\0\u0444\0\u0498\0\u04ec"+ - "\0\u0540\0\u0594\0\u05e8\0\u063c\0\u0690\0\u0540\0\u06e4\0\u0738"+ - "\0\u078c\0\u07e0\0\u0834\0\u0540\0\u0888\0\u08dc\0\u0540\0\u0540"+ - "\0\u0930\0\u0984\0\u0540\0\u0540\0\u0540\0\u0540\0\u09d8\0\u0a2c"+ - "\0\u0540\0\u0a80\0\u0540\0\u0540\0\u0540\0\u0540\0\u0ad4\0\u0b28"+ - "\0\u0b7c\0\u0bd0\0\u0c24\0\u0c78\0\u0ccc\0\u0540\0\u0d20\0\u0d74"+ - "\0\u0540\0\u0dc8\0\u0540\0\u0e1c\0\u0e70\0\u0ec4\0\u0f18\0\u0f6c"+ - "\0\u0fc0\0\u1014\0\u1068\0\u10bc\0\u1110\0\u1164\0\u0540\0\u11b8"+ - "\0\u120c\0\u1260\0\u12b4\0\u1308\0\u135c\0\u13b0\0\u1404\0\u1458"+ - "\0\u14ac\0\u1500\0\u1554\0\u15a8\0\u15fc\0\u1650\0\u16a4\0\u16f8"+ - "\0\u174c\0\u17a0\0\u17f4\0\u1848\0\u189c\0\u18f0\0\u1944\0\u1998"+ - "\0\u19ec\0\u1a40\0\u1a94\0\u1ae8\0\u0540\0\u1b3c\0\u1b90\0\u1be4"+ - "\0\u1c38\0\u1c8c\0\u0540\0\u1ce0\0\u1d34\0\u1d88\0\u1ddc\0\u1e30"+ - "\0\u1e84\0\u0540\0\u0540\0\u1ed8\0\u1f2c\0\u1f80\0\u1fd4\0\u2028"+ - "\0\u0540\0\u207c\0\u20d0\0\u2124\0\u2178\0\u2124\0\u2124\0\u21cc"+ - "\0\u2220\0\u2274\0\u22c8\0\u0dc8\0\u231c\0\u2370\0\u23c4\0\u2418"+ - "\0\u246c\0\u24c0\0\u2514\0\u2568\0\u25bc\0\u0540\0\u2610\0\u2664"+ - "\0\u0540\0\u26b8\0\u270c\0\u2760\0\u27b4\0\u2808\0\u285c\0\u28b0"+ - "\0\u2904\0\u2958\0\u29ac\0\u0540\0\u2a00\0\u2a54\0\u2aa8\0\u2afc"+ - "\0\u2b50\0\u2ba4\0\u2bf8\0\u2c4c\0\u2ca0\0\u2cf4\0\u2d48\0\u2d9c"+ - "\0\u2df0\0\u2e44\0\u2e98\0\u2eec\0\u2f40\0\u2f94\0\u0bd0\0\u2fe8"+ - "\0\u303c\0\u3090\0\u30e4\0\u3138\0\u318c\0\u31e0\0\u3234\0\u3288"+ - "\0\u32dc\0\u3330\0\u3384\0\u33d8\0\u342c\0\u3480\0\u34d4\0\u3528"+ - "\0\u357c\0\u35d0\0\u3624\0\u3678\0\u36cc\0\u3720\0\u3774\0\u37c8"+ - "\0\u381c\0\u3870\0\u38c4\0\u3918\0\u396c\0\u39c0\0\u3a14\0\u3a68"+ - "\0\u3abc\0\u3b10\0\u3b64\0\u3bb8\0\u3c0c\0\u3c60\0\u3cb4\0\u3d08"+ - "\0\u0540\0\u3d5c\0\u3db0\0\u3e04\0\u3e58\0\u3eac\0\u3f00\0\u3f54"+ - "\0\u3fa8\0\u3ffc\0\u4050\0\u40a4\0\u40f8\0\u414c\0\u0540\0\u41a0"+ - "\0\u41f4\0\u0540\0\u4248\0\u429c\0\u42f0\0\u2124\0\u4344\0\u4398"+ - "\0\u43ec\0\u4440\0\u4494\0\u44e8\0\u453c\0\u0540\0\u4590\0\u45e4"+ - "\0\u4638\0\u468c\0\u0540\0\u46e0\0\u4734\0\u4788\0\u47dc\0\u4830"+ - "\0\u4884\0\u48d8\0\u492c\0\u4980\0\u49d4\0\u4a28\0\u4a7c\0\u4ad0"+ - "\0\u4b24\0\u4b78\0\u4bcc\0\u4c20\0\u4c74\0\u4cc8\0\u4d1c\0\u4d70"+ - "\0\u4dc4\0\u4e18\0\u4e6c\0\u4ec0\0\u4f14\0\u4f68\0\u4fbc\0\u5010"+ - "\0\u5064\0\u50b8\0\u510c\0\u5160\0\u51b4\0\u5208\0\u525c\0\u52b0"+ - "\0\u5304\0\u5358\0\u53ac\0\u5400\0\u5454\0\u54a8\0\u54fc\0\u5550"+ - "\0\u55a4\0\u55f8\0\u564c\0\u56a0\0\u56f4\0\u5748\0\u579c\0\u57f0"+ - "\0\u5844\0\u5898\0\u58ec\0\u5940\0\u5994\0\u59e8\0\u5a3c\0\u5a90"+ - "\0\u5ae4\0\u5b38\0\u5b8c\0\u5be0\0\u5c34\0\u5c88\0\u5cdc\0\u5d30"+ - "\0\u5d84\0\u5dd8\0\u5e2c\0\u0bd0\0\u5e80\0\u5ed4\0\u5f28\0\u5f7c"+ - "\0\u5fd0\0\u6024\0\u6078\0\u60cc\0\u6120\0\u6174\0\u61c8\0\u621c"+ - "\0\u6270\0\u62c4\0\u6318\0\u636c\0\u0540\0\u63c0\0\u6414\0\u6468"+ - "\0\u64bc\0\u6510\0\u6564\0\u65b8\0\u660c\0\u6660\0\u66b4\0\u0540"+ - "\0\u6708\0\u675c\0\u67b0\0\u6804\0\u6858\0\u68ac\0\u6900\0\u6954"+ - "\0\u69a8\0\u69fc\0\u6a50\0\u0540\0\u6aa4\0\u6af8\0\u6b4c\0\u6ba0"+ - "\0\u6bf4\0\u6c48\0\u6c9c\0\u0bd0\0\u6cf0\0\u6d44\0\u6d98\0\u6dec"+ - "\0\u6e40\0\u6e94\0\u6ee8\0\u6f3c\0\u6f90\0\u6fe4\0\u7038\0\u0bd0"+ - "\0\u708c\0\u70e0\0\u7134\0\u7188\0\u71dc\0\u7230\0\u7284\0\u72d8"+ - "\0\u732c\0\u7380\0\u73d4\0\u7428\0\u747c\0\u74d0\0\u7524\0\u7578"+ - "\0\u75cc\0\u7620\0\u7674\0\u76c8\0\u771c\0\u7770\0\u77c4\0\u7818"+ - "\0\u786c\0\u78c0\0\u7914\0\u7968\0\u79bc\0\u7a10\0\u7a64\0\u7ab8"+ - "\0\u7b0c\0\u7b60\0\u7bb4\0\u7c08\0\u7c5c\0\u7cb0\0\u7d04\0\u7d58"+ - "\0\u7dac\0\u7e00\0\u6468\0\u7e54\0\u7ea8\0\u7efc\0\u7f50\0\u7fa4"+ - "\0\u7ff8\0\u804c\0\u80a0\0\u80f4\0\u8148\0\u819c\0\u81f0\0\u8244"+ - "\0\u8298\0\u82ec\0\u8340\0\u8394\0\u83e8\0\u843c\0\u8490\0\u84e4"+ - "\0\u8538\0\u858c\0\u85e0\0\u8634\0\u8688\0\u86dc\0\u8730\0\u8784"+ - "\0\u87d8\0\u882c\0\u8880\0\u88d4\0\u8928\0\u897c\0\u89d0\0\u8a24"+ - "\0\u8a78\0\u8acc\0\u8b20\0\u8b74\0\u8bc8\0\u8c1c\0\u8c70\0\u8cc4"+ - "\0\u8d18\0\u8d6c\0\u8dc0\0\u8e14\0\u8e68\0\u8ebc\0\u8f10\0\u8f64"+ - "\0\u8fb8\0\u900c\0\u9060\0\u7c5c\0\u90b4\0\u7d58\0\u9108\0\u915c"+ - "\0\u91b0\0\u9204\0\u9258\0\u92ac\0\u9300\0\u9354\0\u93a8\0\u93fc"+ - "\0\u9450\0\u94a4\0\u94f8\0\u954c\0\u95a0\0\u95f4\0\u9648\0\u969c"+ - "\0\u96f0\0\u9744\0\u9798\0\u97ec\0\u9840\0\u9894\0\u98e8\0\u993c"+ - "\0\u9990\0\u99e4\0\u9a38\0\u9a8c\0\u9ae0\0\u9b34\0\u9b88\0\u9bdc"+ - "\0\u9c30\0\u9c84\0\u9cd8\0\u9d2c\0\u9d80\0\u9dd4\0\u9e28\0\u9e7c"+ - "\0\u9ed0\0\u9f24\0\u9f78\0\u9fcc\0\ua020\0\ua074\0\ua0c8\0\ua11c"+ - "\0\ua170\0\ua1c4\0\ua218\0\ua26c\0\ua2c0\0\ua314\0\ua368\0\ua3bc"+ - "\0\ua410\0\ua464\0\ua4b8\0\ua50c\0\ua560\0\ua5b4\0\ua608\0\ua65c"+ - "\0\ua6b0\0\ua704\0\ua758\0\ua7ac\0\ua800\0\ua854\0\ua8a8\0\ua8fc"+ - "\0\ua950\0\ua9a4\0\ua9f8\0\uaa4c\0\u0b7c\0\uaaa0\0\u0540\0\uaaf4"+ - "\0\uab48\0\uab9c\0\uabf0\0\uac44\0\uac98\0\uacec\0\uad40\0\uad94"+ - "\0\uade8\0\uae3c\0\uae90\0\uaee4\0\uaf38\0\uaf8c\0\uafe0\0\ub034"+ - "\0\u0540\0\ub088\0\u0540\0\ub0dc\0\ub130\0\ub184\0\ub1d8\0\ub22c"+ - "\0\ub280\0\ub2d4\0\ub328\0\ub37c\0\ub3d0\0\ub424\0\ub478\0\ub4cc"+ - "\0\ub520\0\ub574\0\ub5c8\0\ub61c\0\ub670\0\ub6c4\0\ub718\0\ub76c"+ - "\0\ub7c0\0\ub814\0\ub868\0\ub8bc\0\ub910\0\ub964\0\ub9b8\0\uba0c"+ - "\0\uba60\0\ubab4\0\ubb08\0\ubb5c\0\ubbb0\0\ubc04\0\ubc58\0\ubcac"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[624]; - 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 = - "\7\17\1\20\1\21\1\22\1\23\1\24\71\17\1\23"+ - "\16\17\10\25\1\26\35\25\1\27\1\25\1\30\23\25"+ - "\1\31\1\32\26\25\10\33\1\34\53\33\1\35\37\33"+ - "\10\36\1\37\14\36\1\40\76\36\7\41\1\42\1\0"+ - "\1\41\1\23\2\41\1\43\7\41\1\44\3\41\1\45"+ - "\1\46\6\41\1\47\43\41\1\23\16\41\32\50\1\51"+ - "\71\50\31\52\1\51\72\52\7\41\1\42\1\0\1\41"+ - "\1\23\2\41\1\43\7\41\1\53\3\41\1\54\1\55"+ - "\6\41\1\47\43\41\1\23\16\41\32\50\1\56\71\50"+ - "\31\52\1\56\72\52\24\57\1\60\77\57\1\61\1\62"+ - "\1\63\1\64\1\62\1\43\1\65\1\23\1\66\1\67"+ - "\1\23\1\70\1\71\2\72\1\73\1\74\1\75\1\76"+ - "\1\62\1\77\1\100\1\101\1\63\1\61\1\102\1\103"+ - "\1\104\1\105\1\106\1\107\1\110\1\62\1\111\1\72"+ - "\1\112\1\62\1\113\1\114\1\62\1\115\1\116\1\117"+ - "\1\120\1\121\1\122\1\123\1\124\1\73\1\71\2\72"+ - "\2\43\1\125\1\126\1\127\1\130\1\61\1\73\1\62"+ - "\1\131\1\132\1\62\1\133\1\62\1\134\2\62\1\23"+ - "\1\135\1\136\1\137\1\140\1\141\1\142\1\62\1\143"+ - "\6\62\10\144\1\145\31\144\1\146\3\144\1\147\25\144"+ - "\1\150\1\151\26\144\10\152\1\153\35\152\1\154\25\152"+ - "\1\155\1\156\26\152\10\17\4\0\71\17\1\0\25\17"+ - "\1\20\2\0\1\23\1\0\71\17\1\23\16\17\125\0"+ - "\1\157\3\0\1\157\10\0\1\160\1\0\4\157\2\0"+ - "\1\157\4\0\3\157\3\0\1\161\1\0\5\157\2\0"+ - "\6\157\4\0\1\162\1\0\4\157\2\0\11\157\1\0"+ - "\16\157\7\0\1\23\2\0\1\23\72\0\1\23\16\0"+ - "\12\24\1\0\1\24\1\163\70\24\1\0\16\24\10\25"+ - "\1\0\35\25\1\0\1\25\1\0\23\25\2\0\26\25"+ - "\52\0\1\164\15\0\1\165\103\0\1\166\125\0\1\167"+ - "\146\0\1\170\26\0\10\33\1\0\53\33\1\0\37\33"+ - "\25\0\1\171\76\0\10\36\1\0\14\36\1\0\76\36"+ - "\10\41\1\0\1\41\1\0\2\41\1\0\7\41\1\0"+ - "\3\41\2\0\6\41\1\0\43\41\1\0\25\41\1\42"+ - "\1\0\1\41\1\23\2\41\1\0\7\41\1\0\3\41"+ - "\2\0\6\41\1\0\43\41\1\23\16\41\25\0\1\44"+ - "\76\0\32\50\1\0\71\50\31\52\1\0\72\52\24\57"+ - "\1\0\77\57\24\0\1\172\77\0\5\61\13\0\4\61"+ - "\2\0\3\61\2\0\3\61\1\0\2\61\2\0\5\61"+ - "\2\0\6\61\6\0\5\61\1\0\11\61\1\0\17\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\2\174\2\63"+ - "\1\174\1\0\1\175\11\0\1\174\1\176\2\174\2\0"+ - "\1\174\1\63\1\174\2\0\3\174\1\0\2\174\2\0"+ - "\1\174\1\177\2\176\1\200\2\0\2\174\1\200\1\174"+ - "\1\177\1\174\6\0\5\174\1\0\2\174\1\176\6\174"+ - "\1\0\20\174\1\201\1\202\1\174\1\0\1\175\11\0"+ - "\1\174\1\176\2\174\2\0\1\174\1\202\1\174\2\0"+ - "\3\174\1\0\2\174\2\0\1\203\1\177\2\176\1\200"+ - "\2\0\2\174\1\200\1\174\1\177\1\174\6\0\5\174"+ - "\1\0\2\174\1\176\5\174\1\203\1\0\16\174\2\0"+ - "\2\175\23\0\1\175\105\0\1\204\3\0\1\43\1\205"+ - "\22\0\1\206\75\0\1\43\1\0\1\43\123\0\1\43"+ - "\106\0\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\4\62\1\207\4\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\3\62\1\210\2\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\1\62\1\211\4\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\24\0\1\212\114\0\1\43"+ - "\7\0\1\213\76\0\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\4\62"+ - "\1\214\4\62\1\0\16\62\30\102\1\215\1\216\72\102"+ - "\10\103\1\217\17\103\1\220\1\103\1\221\71\103\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\1\62"+ - "\1\222\1\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\5\62\1\223\6\0\2\62\1\224\1\225\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\226\2\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\2\62\1\227\1\230\2\62\6\0"+ - "\4\62\1\61\1\0\4\62\1\231\4\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62"+ - "\1\232\4\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\5\61\13\0\4\61\2\0\3\61\2\0\3\61"+ - "\1\0\2\61\2\0\5\61\2\0\6\61\6\0\2\61"+ - "\1\233\2\61\1\0\11\61\1\0\16\61\15\0\1\43"+ - "\23\0\1\234\1\235\61\0\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\3\62\1\236\12\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\237\2\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\240\2\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\3\62\1\241\1\62"+ - "\1\242\6\0\2\62\1\243\1\62\1\61\1\0\4\62"+ - "\1\244\4\62\1\0\16\62\15\0\1\43\32\0\1\43"+ - "\70\0\1\43\33\0\1\43\52\0\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\62\1\245\1\246\1\247"+ - "\2\62\6\0\4\62\1\61\1\0\1\250\3\62\1\251"+ - "\1\252\3\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\2\62\1\253\1\254\2\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\4\62\1\255\1\256"+ - "\6\0\4\62\1\61\1\0\7\62\1\257\1\260\1\0"+ - "\1\62\1\261\14\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\62\1\262\1\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\2\62\1\262\6\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\1\257\1\62\1\257"+ - "\1\263\2\62\6\0\4\62\1\61\1\0\4\62\1\264"+ - "\4\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\265\2\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\266\1\62\1\267\3\62\6\0"+ - "\1\62\1\270\2\62\1\61\1\0\1\62\1\271\7\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\272\1\62\1\273\3\62\6\0\4\62\1\61"+ - "\1\0\4\62\1\274\4\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\3\62\1\275\1\276"+ - "\1\62\6\0\4\62\1\61\1\0\4\62\1\277\4\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\1\62\1\300\1\62\1\0\1\61\1\62"+ - "\2\0\3\62\1\301\1\62\2\0\5\62\1\302\6\0"+ - "\4\62\1\61\1\0\6\62\1\303\2\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\1\304\2\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\62\1\305\1\62\1\306\1\307\1\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\2\62\1\310"+ - "\1\62\1\61\1\0\1\311\10\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\312"+ - "\3\62\6\0\4\62\1\61\1\0\4\62\1\257\1\313"+ - "\3\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\62\1\314\1\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\62\1\257\4\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\1\62\1\315\14\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62"+ - "\1\316\2\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\257\1\62\1\317\3\62\6\0\4\62\1\61\1\0"+ - "\4\62\1\320\4\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\3\62\1\321\2\62\6\0"+ - "\4\62\1\61\1\0\4\62\1\322\4\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62"+ - "\1\323\3\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\324\2\62\6\0\4\62\1\61\1\0\4\62"+ - "\1\325\4\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\1\326\2\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\2\62\1\327\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\2\62\1\330\3\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\10\144\1\0\31\144"+ - "\1\0\3\144\1\0\25\144\2\0\26\144\41\0\1\331"+ - "\134\0\1\332\15\0\1\333\105\0\1\334\146\0\1\335"+ - "\26\0\10\152\1\0\35\152\1\0\25\152\2\0\26\152"+ - "\52\0\1\336\15\0\1\337\105\0\1\340\146\0\1\341"+ - "\27\0\3\157\1\0\2\157\11\0\4\157\2\0\2\157"+ - "\3\0\3\157\5\0\6\157\1\0\6\157\6\0\4\157"+ - "\2\0\11\157\1\0\16\157\17\0\1\342\30\0\1\343"+ - "\54\0\1\344\3\0\1\344\12\0\4\344\2\0\1\344"+ - "\4\0\3\344\5\0\5\344\2\0\6\344\6\0\4\344"+ - "\2\0\11\344\1\0\16\344\71\0\1\345\110\0\1\346"+ - "\72\0\1\347\150\0\1\350\146\0\1\351\53\0\1\352"+ - "\76\0\5\61\13\0\4\61\2\0\3\61\2\0\1\353"+ - "\2\61\1\0\2\61\2\0\5\61\2\0\6\61\6\0"+ - "\5\61\1\0\11\61\1\0\16\61\5\174\13\0\4\174"+ - "\2\0\3\174\2\0\3\174\1\0\2\174\2\0\5\174"+ - "\2\0\6\174\6\0\5\174\1\0\11\174\1\0\20\174"+ - "\2\175\1\174\13\0\1\174\1\176\2\174\2\0\1\174"+ - "\1\175\1\174\2\0\3\174\1\0\2\174\2\0\2\174"+ - "\2\176\1\200\2\0\2\174\1\200\3\174\6\0\5\174"+ - "\1\0\2\174\1\176\6\174\1\0\20\174\2\354\1\174"+ - "\13\0\4\174\2\0\1\174\1\354\1\174\2\0\3\174"+ - "\1\0\2\174\2\0\5\174\2\355\6\174\6\0\5\174"+ - "\1\0\11\174\1\0\20\174\2\201\1\174\1\0\1\175"+ - "\11\0\1\174\1\176\2\174\2\0\1\174\1\201\1\174"+ - "\2\0\3\174\1\0\2\174\2\0\2\174\2\176\1\200"+ - "\2\0\2\174\1\200\3\174\6\0\5\174\1\0\2\174"+ - "\1\176\6\174\1\0\20\174\1\201\1\202\1\174\1\0"+ - "\1\175\11\0\1\174\1\176\2\174\2\0\1\174\1\202"+ - "\1\174\2\0\3\174\1\0\2\174\2\0\1\174\1\356"+ - "\2\176\1\200\2\0\2\174\1\200\1\174\1\356\1\174"+ - "\6\0\5\174\1\0\2\174\1\176\6\174\1\0\20\174"+ - "\2\357\1\174\13\0\3\357\1\174\2\0\2\357\1\174"+ - "\2\0\2\174\1\357\1\0\2\174\2\0\2\174\3\357"+ - "\2\0\2\174\2\357\2\174\6\0\1\174\1\357\3\174"+ - "\1\0\2\174\1\357\6\174\1\0\16\174\17\0\1\360"+ - "\105\0\1\361\3\0\1\361\12\0\4\361\2\0\1\361"+ - "\4\0\3\361\5\0\5\361\2\0\6\361\6\0\1\362"+ - "\3\361\2\0\11\361\1\0\16\361\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\4\62\1\363\1\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\1\364\5\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\1\62\1\365\4\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\25\0"+ - "\1\366\113\0\1\43\7\0\1\72\76\0\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\4\62\1\367\4\62\1\0\16\62\3\370"+ - "\1\102\4\370\1\0\16\370\4\102\1\371\2\102\10\370"+ - "\1\102\3\370\2\102\50\370\30\217\1\372\1\217\1\373"+ - "\74\217\1\103\4\217\1\0\16\217\4\103\1\374\2\103"+ - "\10\217\1\103\3\217\2\103\50\217\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\2\62\1\375\1\62\1\376"+ - "\1\62\6\0\4\62\1\61\1\0\2\62\1\377\6\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\257\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\62\1\u0100\1\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\2\62\1\u0101\6\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\4\62\1\u0102\1\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\1\62\1\u0103\6\62\1\u0104\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u0105"+ - "\5\62\6\0\4\62\1\61\1\0\6\62\1\u0106\2\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\257\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\u0107\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\5\61\13\0\4\61\2\0\3\61"+ - "\2\0\1\61\1\u0108\1\61\1\0\2\61\2\0\5\61"+ - "\2\0\6\61\6\0\5\61\1\0\11\61\1\0\16\61"+ - "\42\0\1\u0109\61\0\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\1\62\1\u010a\3\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\1\62\1\u010b\1\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\62\1\u010c\1\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\4\62\1\u010d\1\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\1\62\1\u010e\2\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\1\62\1\u010f\1\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\62\1\u0110\4\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\1\u0111\2\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\3\62\1\u0112\2\62\6\0\4\62\1\61"+ - "\1\0\5\62\1\257\3\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\4\62\1\u0113\1\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\62\1\u0114"+ - "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62"+ - "\1\u0115\4\62\6\0\2\62\1\u0116\1\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\1\u0117\15\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\3\62\1\u0118\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\1\u0119\5\62\6\0\4\62\1\61\1\0"+ - "\6\62\1\u011a\2\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\62\1\u011b\1\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\5\62\1\223\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\1\62"+ - "\1\u011c\2\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\u011d\5\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u011e"+ - "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\2\62\1\257\6\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\2\62\1\u011f\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\u0120\2\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\3\62\1\u0121\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\3\62\1\u0122\2\62\6\0\4\62\1\61\1\0"+ - "\4\62\1\u0123\4\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\u0124\5\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\62\1\u0125\4\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\2\62"+ - "\1\u0126\1\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\62\1\u0127"+ - "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62"+ - "\1\u0128\1\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\1\u0129\2\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\u012a\3\62\1\u011e\1\223\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\3\62\1\u012b\2\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\1\62\1\u012c\1\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\u012d\5\62\6\0\1\62"+ - "\1\u012e\2\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\2\62\1\u012f\2\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\2\62\1\u0130\2\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\4\62\1\u0131\11\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\3\62\1\u0132\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\2\62\1\u0133\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u0134\3\62\6\0\2\62\1\u0135"+ - "\1\62\1\61\1\0\4\62\1\u0136\4\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62"+ - "\1\u0137\4\62\6\0\1\62\1\u0138\2\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\3\62\1\u0139\2\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\u013a\5\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\2\62\1\u013b\1\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\3\62\1\u013c\1\62\2\0\4\62\1\u013d"+ - "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\1\62\1\u013e\1\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\1\u013f\3\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\2\62\1\u0140\3\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\10\62\1\u0141"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\u0142\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\u0143\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\62\1\257\4\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\2\62\1\262\1\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\5\62\1\u0144\3\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\u0145\5\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\u0146\2\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\1\62\1\u0147\14\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u0148"+ - "\1\62\6\0\4\62\1\61\1\0\6\62\1\u0149\2\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\6\62\1\u014a\7\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\1\62\1\u014b\2\62\1\61"+ - "\1\0\11\62\1\0\16\62\71\0\1\u014c\110\0\1\u014d"+ - "\117\0\1\u014e\146\0\1\u014f\117\0\1\u0150\110\0\1\u0151"+ - "\117\0\1\u0152\146\0\1\u0153\46\0\1\u0154\153\0\1\u0155"+ - "\54\0\3\344\1\0\2\344\11\0\4\344\2\0\2\344"+ - "\3\0\3\344\5\0\6\344\1\0\6\344\6\0\4\344"+ - "\2\0\11\344\1\0\16\344\5\0\1\u0156\172\0\1\345"+ - "\140\0\1\u0157\40\0\1\u0158\115\0\2\61\2\u0159\1\61"+ - "\13\0\3\u0159\1\61\2\0\2\u0159\1\61\2\0\2\61"+ - "\1\u0159\1\0\2\61\2\0\2\61\3\u0159\2\0\2\61"+ - "\2\u0159\2\61\6\0\1\61\1\u0159\3\61\1\0\2\61"+ - "\1\u0159\6\61\1\0\16\61\2\174\2\354\1\174\13\0"+ - "\1\174\1\176\2\174\2\0\1\174\1\354\1\174\2\0"+ - "\3\174\1\0\2\174\2\0\2\174\2\176\1\174\2\0"+ - "\6\174\6\0\5\174\1\0\2\174\1\176\6\174\1\0"+ - "\16\174\2\0\2\354\23\0\1\354\74\0\2\174\2\357"+ - "\1\174\13\0\3\357\1\174\2\0\2\357\1\174\2\0"+ - "\2\174\1\357\1\0\2\174\2\0\1\174\1\356\3\357"+ - "\2\0\2\174\2\357\1\356\1\174\6\0\1\174\1\357"+ - "\3\174\1\0\2\174\1\357\6\174\1\0\16\174\20\0"+ - "\1\u015a\104\0\3\361\1\0\1\u015b\1\361\11\0\4\361"+ - "\2\0\2\361\3\0\3\361\5\0\6\361\1\0\6\361"+ - "\6\0\4\361\2\0\11\361\1\0\16\361\1\0\3\361"+ - "\1\0\1\u015b\1\361\11\0\4\361\2\0\2\361\3\0"+ - "\3\361\5\0\6\361\1\0\6\361\6\0\1\361\1\u015c"+ - "\2\361\2\0\11\361\1\0\16\361\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\4\62\1\u015d\4\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0144\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\323"+ - "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62"+ - "\1\u015e\1\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\30\370\1\u015f\1\u0160\74\370\2\u0161\14\370\3\u0161"+ - "\3\370\2\u0161\1\u015f\1\u0160\3\370\1\u0161\7\370\3\u0161"+ - "\4\370\2\u0161\11\370\1\u0161\6\370\1\u0161\25\370\10\217"+ - "\1\0\115\217\2\u0162\14\217\3\u0162\3\217\2\u0162\1\372"+ - "\1\217\1\373\2\217\1\u0162\7\217\3\u0162\4\217\2\u0162"+ - "\11\217\1\u0162\6\217\1\u0162\25\217\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\5\62\1\256\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\4\62\1\u0163\4\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0164\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\u0144\5\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u0165"+ - "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62"+ - "\1\257\1\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\4\62\1\u0166\1\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\u0167\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\2\62\1\u0168\1\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u0169\3\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\3\62\1\u016a\2\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\5\61\13\0\4\61"+ - "\2\0\3\61\2\0\3\61\1\0\2\61\2\0\5\61"+ - "\2\0\6\61\6\0\1\61\1\u016b\3\61\1\0\11\61"+ - "\1\0\16\61\41\0\1\u016c\62\0\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\1\u016d\3\62"+ - "\1\61\1\0\11\62\1\0\4\62\1\u016e\11\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\1\62\1\u016f\2\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\1\62\1\u0170\2\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\5\62\1\u0111\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\4\62\1\u0171\4\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\3\62\1\u0172\2\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\u0173\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\u0174\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\1\62\1\u0175\2\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\4\62\1\u0176\1\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\1\u0177\15\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\4\62\1\u0178\4\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\5\62\1\257\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\1\u0179\15\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\u017a\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\1\u017b"+ - "\2\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\4\62\1\u017c\4\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\2\62\1\u017d\6\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\u017e\2\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\u017f\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\4\62\1\u0180\1\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\2\62\1\u0102\3\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\2\62\1\u0181\6\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\321\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\u0182\1\u0183"+ - "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\3\62\1\u0184\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\10\62\1\u0185"+ - "\5\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\4\62\1\u0186\4\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\u012a\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\2\62\1\u0187\1\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u010b\3\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\1\62\1\u0188\1\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\1\62\1\u013a"+ - "\2\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\5\62\1\u0116\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\1\u0189\4\62\1\231"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u018a"+ - "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62"+ - "\1\u018b\1\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\62\1\u018c\4\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\2\62\1\u018d\1\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\3\62\1\u018e\2\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\4\62\1\u018f\1\62\6\0\4\62"+ - "\1\61\1\0\4\62\1\u0190\4\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u0182"+ - "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\1\62\1\u0167"+ - "\14\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\1\62\1\u0191\1\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\1\62\1\u0192\14\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\u0193\5\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\5\62\1\u0194\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\3\62\1\u0195\5\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\5\62\1\u0180\3\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\1\257\10\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\4\62\1\223\1\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u0196"+ - "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62"+ - "\1\u0197\3\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\u0198\2\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\4\62\1\u0199\1\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\1\62\1\u019a\4\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\5\62\1\u019b\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\3\62"+ - "\1\u019c\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\7\62\1\u019d\1\u0185\1\u019e\4\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\4\62\1\u019f\4\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\1\u0144\10\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\5\62\1\364\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\2\62\1\u01a0\1\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\4\62\1\u0144\1\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\2\62\1\u01a1\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u01a2\3\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\363\5\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\5\0\1\u01a3\172\0\1\u014c"+ - "\140\0\1\u01a4\40\0\1\u01a5\122\0\1\u01a6\172\0\1\u0150"+ - "\140\0\1\u01a7\40\0\1\u01a8\136\0\1\u01a9\143\0\1\u01aa"+ - "\67\0\1\u0156\51\0\1\345\45\0\3\u0158\3\u01ab\4\0"+ - "\5\u01ab\4\u0158\1\u01ab\1\0\2\u0158\1\0\1\u01ab\1\0"+ - "\3\u0158\1\0\1\u01ab\2\u0158\1\u01ab\5\u0158\2\u01ab\6\u0158"+ - "\1\0\1\u01ab\1\0\3\u01ab\4\u0158\2\u01ab\11\u0158\1\0"+ - "\16\u0158\2\61\2\u01ac\1\61\13\0\3\u01ac\1\61\2\0"+ - "\2\u01ac\1\61\2\0\2\61\1\u01ac\1\0\2\61\2\0"+ - "\2\61\3\u01ac\2\0\2\61\2\u01ac\2\61\6\0\1\61"+ - "\1\u01ac\3\61\1\0\2\61\1\u01ac\6\61\1\0\16\61"+ - "\21\0\1\u01ad\103\0\3\361\1\0\1\u015b\1\361\11\0"+ - "\4\361\2\0\2\361\3\0\3\361\5\0\6\361\1\0"+ - "\6\361\6\0\1\362\3\361\2\0\11\361\1\0\16\361"+ - "\1\0\3\361\1\0\1\u015b\1\361\11\0\4\361\2\0"+ - "\2\361\3\0\3\361\5\0\6\361\1\0\1\361\1\u01ae"+ - "\4\361\6\0\4\361\2\0\11\361\1\0\16\361\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\62\1\u0144"+ - "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62"+ - "\1\u01af\3\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\10\370\1\0\115\370\2\u01b0\14\370\3\u01b0\3\370"+ - "\2\u01b0\1\u015f\1\u0160\3\370\1\u01b0\7\370\3\u01b0\4\370"+ - "\2\u01b0\11\370\1\u01b0\6\370\1\u01b0\25\370\2\217\2\u01b1"+ - "\14\217\3\u01b1\3\217\2\u01b1\1\372\1\217\1\373\2\217"+ - "\1\u01b1\7\217\3\u01b1\4\217\2\u01b1\11\217\1\u01b1\6\217"+ - "\1\u01b1\25\217\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\3\62\1\u01b2\2\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\3\62\1\u01b3\1\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\u01b4\5\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\2\62\1\u01b5\1\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\2\62\1\u01b6\2\62\2\0\6\62\6\0"+ - "\1\u01b7\3\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\1\62\1\223\14\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\5\62"+ - "\1\u01b8\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\3\62\1\257\5\62\1\0"+ - "\16\62\5\61\13\0\4\61\2\0\3\61\2\0\3\61"+ - "\1\0\2\61\2\0\5\61\2\0\4\61\1\u01b9\1\61"+ - "\6\0\5\61\1\0\11\61\1\0\17\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\4\62\1\u01ba\4\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\4\62\1\u01bb\4\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\u01bc\5\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\u01bd\5\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\6\62\1\u01be\2\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62"+ - "\1\u01bf\1\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\54\0\1\u01c0\47\0\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\2\62\1\u0180\3\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\3\62\1\u01c1\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\2\62\1\u01c2\3\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\1\62\1\257\7\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u01c3"+ - "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\4\62\1\u01c4\4\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\62\1\u01c5\4\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\1\62\1\u01c6\14\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\4\62"+ - "\1\u01c7\4\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\3\62\1\u0175\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\1\62\1\u01c8\1\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\3\62\1\u01c9\3\62\1\u01ca\6\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\2\62\1\u01cb\1\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\u01cc\5\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\1\62\1\u01cd\1\u01ce\1\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\1\62\1\u01cf\4\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\4\62\1\u011e\1\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\62\1\u01d0\1\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\2\62\1\u0144\6\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\2\62\1\u01d1\1\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62"+ - "\1\u01d2\4\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\1\u01d3\2\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\u01d4\2\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\1\62\1\u01d5\1\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\4\62\1\u0180\11\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\2\62\1\u01d6\3\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\62\1\231\4\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\1\u01d7\5\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\3\62\1\u0197\2\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u01d8"+ - "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62"+ - "\1\u01d9\3\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\u01da\2\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\1\u01db\2\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\223\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\6\62\1\u0182"+ - "\2\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\2\62\1\u01dc\1\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\62\1\u01dd\4\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\1\62\1\270"+ - "\2\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\2\62"+ - "\1\u01de\1\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u01df"+ - "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\12\62\1\u01e0"+ - "\3\62\1\61\4\62\13\0\2\62\1\u01e1\1\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\u01e2\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u015d\3\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\1\62\1\u0100\2\62"+ - "\1\61\1\0\11\62\1\0\16\62\41\0\1\u01e3\67\0"+ - "\1\u01a3\51\0\1\u014c\45\0\3\u01a5\3\u01e4\4\0\5\u01e4"+ - "\4\u01a5\1\u01e4\1\0\2\u01a5\1\0\1\u01e4\1\0\3\u01a5"+ - "\1\0\1\u01e4\2\u01a5\1\u01e4\5\u01a5\2\u01e4\6\u01a5\1\0"+ - "\1\u01e4\1\0\3\u01e4\4\u01a5\2\u01e4\11\u01a5\1\0\16\u01a5"+ - "\41\0\1\u01e5\67\0\1\u01a6\51\0\1\u0150\45\0\3\u01a8"+ - "\3\u01e6\4\0\5\u01e6\4\u01a8\1\u01e6\1\0\2\u01a8\1\0"+ - "\1\u01e6\1\0\3\u01a8\1\0\1\u01e6\2\u01a8\1\u01e6\5\u01a8"+ - "\2\u01e6\6\u01a8\1\0\1\u01e6\1\0\3\u01e6\4\u01a8\2\u01e6"+ - "\11\u01a8\1\0\16\u01a8\22\0\1\u01e7\142\0\1\u0158\62\0"+ - "\2\61\2\u01e8\1\61\13\0\3\u01e8\1\61\2\0\2\u01e8"+ - "\1\61\2\0\2\61\1\u01e8\1\0\2\61\2\0\2\61"+ - "\3\u01e8\2\0\2\61\2\u01e8\2\61\6\0\1\61\1\u01e8"+ - "\3\61\1\0\2\61\1\u01e8\6\61\1\0\16\61\22\0"+ - "\1\u01e9\102\0\3\361\1\0\1\u015b\1\361\11\0\4\361"+ - "\2\0\2\361\3\0\3\361\5\0\6\361\1\0\6\361"+ - "\6\0\2\361\1\u01ea\1\361\2\0\11\361\1\0\16\361"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62"+ - "\1\u01eb\2\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\2\370\2\u01ec\14\370\3\u01ec\3\370\2\u01ec\1\u015f"+ - "\1\u0160\3\370\1\u01ec\7\370\3\u01ec\4\370\2\u01ec\11\370"+ - "\1\u01ec\6\370\1\u01ec\25\370\2\217\2\u01ed\14\217\3\u01ed"+ - "\3\217\2\u01ed\1\372\1\217\1\373\2\217\1\u01ed\7\217"+ - "\3\u01ed\4\217\2\u01ed\11\217\1\u01ed\6\217\1\u01ed\25\217"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\2\62\1\u01ee\6\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\2\62\1\u01ef\1\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\u01f0\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\62\1\u0175\1\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\62\1\u01f1\4\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\1\62\1\u01f2"+ - "\2\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\3\62"+ - "\1\u01f3\1\61\1\0\11\62\1\0\16\62\5\61\13\0"+ - "\4\61\2\0\3\61\2\0\1\u01f4\2\61\1\0\2\61"+ - "\2\0\5\61\2\0\6\61\6\0\5\61\1\0\11\61"+ - "\1\0\17\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\1\62\1\u01f5\2\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\2\62\1\364"+ - "\6\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\2\62\1\u01f6\1\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\2\62\1\u01f7\1\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\6\62\1\u01f8\2\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\4\62\1\u01f9\1\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\55\0"+ - "\1\u01fa\46\0\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\3\62\1\u01fb\2\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\1\u01fc\5\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u01fd\3\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\3\62\1\257\1\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\62\1\257\1\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\u01fe\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\6\62\1\u0180\2\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\2\62\1\u0116\6\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\4\62\1\u01ff\4\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\3\62\1\u0200\2\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\1\62\1\257\2\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\1\62"+ - "\1\u01cd\2\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\62\1\u0201\4\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\4\62\1\u0202\1\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\4\62\1\u0203\4\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\1\u0144\15\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\1\62\1\u0204\1\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\1\62\1\u0205\1\62\1\0\1\61\1\62\2\0"+ - "\3\62\1\u01f3\1\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\2\62\1\223\6\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\6\62\1\u0206\2\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\2\62"+ - "\1\u0207\1\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\6\62\1\u0208\2\62\1\0\16\62"+ - "\1\61\4\62\13\0\2\62\1\u0209\1\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\4\62\1\u020a\11\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\1\62\1\u020b\2\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\2\62\1\u020c\2\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\13\62\1\u020d\2\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\1\223\15\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\231"+ - "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\3\62\1\u020e\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\2\62\1\u01d3\1\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\6\62\1\u020f\2\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\62\1\u0210\4\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\1\62\1\u0180\3\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\1\62\1\u0211\1\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\1\u0212\3\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\41\0\1\u01a5\123\0"+ - "\1\u01a8\105\0\1\u0213\100\0\2\61\2\62\1\61\13\0"+ - "\3\62\1\61\2\0\2\62\1\61\2\0\2\61\1\62"+ - "\1\0\2\61\2\0\2\61\3\62\2\0\2\61\2\62"+ - "\2\61\6\0\1\61\1\62\3\61\1\0\2\61\1\62"+ - "\6\61\1\0\16\61\23\0\1\u0214\101\0\3\361\1\0"+ - "\1\u015b\1\361\11\0\4\361\2\0\2\361\3\0\3\361"+ - "\5\0\6\361\1\0\6\361\6\0\3\361\1\u0215\2\0"+ - "\11\361\1\0\16\361\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\62\1\u0144\1\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\2\370\2\102\14\370\3\102"+ - "\3\370\2\102\1\u015f\1\u0160\3\370\1\102\7\370\3\102"+ - "\4\370\2\102\11\370\1\102\6\370\1\102\25\370\2\217"+ - "\2\103\14\217\3\103\3\217\2\103\1\372\1\217\1\373"+ - "\2\217\1\103\7\217\3\103\4\217\2\103\11\217\1\103"+ - "\6\217\1\103\25\217\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\3\62\1\u01c9\12\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\1\62\1\u0216\1\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\2\62\1\u0217\1\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\3\62\1\u0218\2\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u01b5"+ - "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62"+ - "\1\u0219\2\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\5\61\13\0\4\61\2\0\3\61\2\0\3\61"+ - "\1\0\2\61\2\0\5\61\2\0\6\61\6\0\5\61"+ - "\1\0\2\61\1\u021a\6\61\1\0\17\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\3\62\1\u021b\5\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\4\62\1\u01eb\4\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\4\62\1\u01c5\4\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62"+ - "\1\u021c\2\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\5\62\1\257\3\62"+ - "\1\0\16\62\67\0\1\u021d\34\0\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\62\1\u021e\4\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\10\62\1\u021f\5\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\14\62\1\u0220\1\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\3\62\1\u0221"+ - "\12\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\1\62"+ - "\1\u0222\14\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\62\1\u0223\4\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\3\62\1\u0224\2\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\4\62\1\u0225\1\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\3\62\1\u0226"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\1\223\2\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\3\62\1\u0102\2\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0227\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\1\u0175\5\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u0228"+ - "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\5\62"+ - "\1\u0229\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\1\u01c7\2\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u0216"+ - "\5\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62"+ - "\1\u022a\1\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\1\62\1\u022b\1\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\4\62"+ - "\1\u022c\2\0\6\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\u022d\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\5\62\1\u022e\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\2\62"+ - "\1\u022f\6\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\4\62\1\u0230\1\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\22\0\1\u0231\123\0"+ - "\1\u0232\102\0\3\361\1\0\1\u015b\1\361\11\0\4\361"+ - "\2\0\2\361\3\0\3\361\5\0\6\361\1\0\1\u0233"+ - "\5\361\6\0\4\361\2\0\11\361\1\0\16\361\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\262"+ - "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\3\62\1\u0234\1\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\6\62\1\u0175\2\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\1\62\1\223\2\62\1\61\1\0"+ - "\11\62\1\0\16\62\5\61\13\0\4\61\2\0\3\61"+ - "\2\0\3\61\1\0\2\61\2\0\5\61\2\0\2\61"+ - "\1\u0235\3\61\6\0\5\61\1\0\11\61\1\0\17\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u0100"+ - "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\1\62\1\u0236\1\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\74\0\1\u0237\27\0\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\1\u0238\15\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\3\62\1\u0239\2\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\2\62\1\u023a"+ - "\1\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\4\62\1\u023b\4\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\2\62\1\u023c\1\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\2\62\1\u023d\1\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\1\u0180"+ - "\15\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\1\u023e\3\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\2\62\1\u023f\3\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\1\62"+ - "\1\u0240\3\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\62\1\u0241\1\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\1\u0242\1\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\4\62\1\u0243\4\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\u0180\5\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\1\62\1\u0244\14\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\1\62\1\u0180\4\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\2\62\1\u0245\1\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\1\u0246\3\62\1\61\1\0\11\62\1\0\10\62"+ - "\1\u0247\5\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\2\62\1\u0248\1\62\1\61\1\0"+ - "\11\62\1\0\16\62\17\0\1\u0249\123\0\1\366\105\0"+ - "\3\361\1\0\1\u015b\1\361\1\u024a\2\0\1\u024a\5\0"+ - "\4\361\1\0\1\u024b\2\361\3\0\3\361\5\0\6\361"+ - "\1\0\6\361\6\0\4\361\2\0\11\361\1\u024a\16\361"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u024c"+ - "\5\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\2\62\1\u0180\6\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\2\62\1\231\3\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\u024d\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\1\u024e\15\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\1\62\1\u024f\14\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u0250\3\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\3\62\1\u0251\2\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\4\62\1\u0252\4\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\1\62\1\u0253\4\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\4\62\1\u0254\4\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u0116"+ - "\5\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\2\62\1\u0255\1\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\u022b\2\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\2\62\1\u0256\3\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\4\62"+ - "\1\u0257\4\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\1\u0258\5\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\4\62\1\307\1\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\3\62\1\u0144"+ - "\1\61\1\0\11\62\1\0\16\62\7\0\1\u024a\2\0"+ - "\1\u024a\12\0\1\u024b\57\0\1\u024a\16\0\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0259\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\1\u0180\10\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\4\62\1\61\1\0\1\u025a\10\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0"+ - "\2\62\1\u025b\1\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\4\62\1\u020a"+ - "\11\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\2\62\1\u025c\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\1\u025d\2\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\1\u0139\5\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\3\62\1\u025e\2\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\1\u025f\5\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\1\62\1\231\1\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\62\1\u0180\1\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\4\62\1\u0260\4\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\1\62\1\u0261\4\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\15\62\1\u0262\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0263\3\62"+ - "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u0264"+ - "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\1\62\1\u0265\1\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\4\62\1\61\1\0\2\62\1\u0216\6\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\6\62\6\0\4\62\1\61\1\0\6\62\1\u0266"+ - "\2\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\3\62\1\u0180\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\4\62\1\u0267\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\1\u0268\2\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\1\u0269\3\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\2\62\1\u026a\3\62\6\0\4\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0"+ - "\2\62\1\u026b\6\62\1\0\16\62\1\61\4\62\13\0"+ - "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61"+ - "\1\62\2\0\5\62\2\0\3\62\1\u026c\2\62\6\0"+ - "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62"+ - "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0"+ - "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62"+ - "\1\61\1\0\11\62\1\0\1\62\1\u026d\14\62\1\61"+ - "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62"+ - "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u026e"+ - "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62"+ - "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0"+ - "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62"+ - "\1\u026f\1\62\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\5\62\1\u0250\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\5\62\1\u0180\6\0\4\62\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\6\62\6\0\3\62\1\u0250\1\61\1\0\11\62\1\0"+ - "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173"+ - "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0"+ - "\2\62\1\u020d\3\62\6\0\4\62\1\61\1\0\11\62"+ - "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62"+ - "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62"+ - "\2\0\4\62\1\u0270\1\62\6\0\4\62\1\61\1\0"+ - "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0"+ - "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0"+ - "\5\62\2\0\6\62\6\0\2\62\1\u0260\1\62\1\61"+ - "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62"+ - "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62"+ - "\2\0\5\62\2\0\6\62\6\0\2\62\1\u0253\1\62"+ - "\1\61\1\0\11\62\1\0\16\62"; - - private static int [] zzUnpackTrans() { - int [] result = new int[48384]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\5\0\2\1\1\0\2\1\4\0\2\1\1\11\4\1"+ - "\1\11\5\1\1\11\2\1\2\11\2\1\4\11\2\1"+ - "\1\11\1\1\4\11\7\1\1\11\2\1\1\11\1\1"+ - "\1\11\13\1\1\11\35\1\1\11\5\1\1\11\6\1"+ - "\2\11\5\0\1\11\1\0\11\1\3\0\3\1\1\0"+ - "\3\1\1\11\2\1\1\11\12\1\1\11\74\1\1\11"+ - "\12\0\1\1\2\0\1\11\2\0\1\11\2\1\1\0"+ - "\2\1\3\0\3\1\1\11\4\1\1\11\15\1\1\0"+ - "\102\1\11\0\1\11\2\0\2\1\3\0\3\1\1\11"+ - "\13\1\1\11\6\1\1\0\57\1\2\0\1\1\2\0"+ - "\1\1\3\0\1\1\2\0\21\1\1\0\42\1\5\0"+ - "\1\1\2\0\17\1\1\0\30\1\3\0\7\1\1\0"+ - "\23\1\3\0\3\1\1\11\21\1\1\11\1\0\1\11"+ - "\45\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[624]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int AS_EOL_COMMENT = 13; + public static final int AS_MLC = 12; + public static final int INTAG_SCRIPT = 7; + public static final int INATTR_DOUBLE_SCRIPT = 8; + public static final int CDATA = 10; + public static final int INATTR_SINGLE_SCRIPT = 9; + public static final int DTD = 3; + public static final int INATTR_SINGLE = 6; + public static final int INATTR_DOUBLE = 5; + public static final int YYINITIAL = 0; + public static final int AS = 11; + public static final int INTAG = 4; + public static final int COMMENT = 1; + public static final int PI = 2; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\12\1\10\1\0\1\7\1\36\22\0\1\105\1\16\1\32" + + "\1\37\1\40\1\63\1\13\1\31\2\73\1\42\1\51\1\61\1\50" + "\1\6\1\41\1\3\3\27\4\27\2\2\1\5\1\14\1\11\1\15" + + "\1\25\1\64\1\72\1\22\1\26\1\20\1\21\1\47\1\45\1\1" + "\1\122\1\121\1\1\1\110\1\44\1\111\1\112\1\113\1\116\1\123" + + "\1\120\1\66\1\23\1\117\1\115\1\1\1\43\2\1\1\17\1\30" + "\1\24\1\62\1\4\1\0\1\55\1\35\1\67\1\76\1\54\1\46" + + "\1\106\1\74\1\70\1\114\1\77\1\56\1\102\1\34\1\100\1\71" + "\1\103\1\53\1\57\1\52\1\33\1\107\1\75\1\104\1\101\1\1" + + "\1\60\1\62\1\60\1\65\uff81\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\2\1\1\0\2\1\4\0\2\2\1\3\1\4" + "\1\5\1\6\1\1\1\7\5\1\1\10\2\1\1\11" + + "\1\12\2\13\1\14\1\15\1\16\1\17\1\20\1\1" + "\1\21\1\1\1\22\1\23\1\24\1\25\2\1\1\26" + "\1\2\2\27\1\2\1\30\2\14\1\2\1\14\1\31" + + "\3\2\1\31\1\14\1\2\1\32\1\33\3\2\2\26" + "\1\14\3\2\2\14\25\2\1\1\1\34\5\1\1\35" + "\3\1\1\36\1\37\1\4\1\40\1\6\5\0\1\41" + + "\1\0\1\26\1\42\2\43\1\27\2\42\1\44\1\42" + "\3\0\3\2\1\0\1\14\1\2\1\32\1\45\2\33" + "\1\46\5\2\1\47\3\2\1\26\1\50\1\51\21\2" + + "\1\47\20\2\2\47\12\2\1\47\2\2\1\47\11\2" + "\1\52\12\0\1\53\2\0\1\54\2\0\1\55\1\26" + "\1\43\1\0\2\44\3\0\3\2\1\56\1\2\2\32" + + "\1\33\1\57\1\33\6\2\1\47\4\2\1\26\1\0" + "\1\60\5\2\1\47\23\2\1\47\10\2\1\60\24\2" + "\1\47\1\2\1\60\7\2\11\0\1\61\2\0\1\62" + + "\1\26\3\0\2\2\1\32\1\63\1\32\1\33\10\2" + "\1\26\1\64\6\2\1\0\1\65\13\2\1\66\3\2" + "\1\66\36\2\2\0\1\67\2\0\1\70\3\0\1\26" + + "\2\0\1\2\1\32\1\33\7\2\1\26\5\2\1\47" + "\1\0\26\2\1\66\13\2\5\0\1\26\2\0\1\2" + "\1\32\1\33\6\2\1\26\5\2\1\0\30\2\3\0" + + "\4\2\1\26\2\2\1\0\23\2\3\0\1\2\1\66" + "\1\2\1\47\21\2\1\71\1\0\1\72\4\2\1\66" + "\40\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[624]; + 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\124\0\250\0\374\0\u0150\0\u01a4\0\u01f8\0\u024c" + + "\0\u02a0\0\u02f4\0\u0348\0\u039c\0\u03f0\0\u0444\0\u0498\0\u04ec" + + "\0\u0540\0\u0594\0\u05e8\0\u063c\0\u0690\0\u0540\0\u06e4\0\u0738" + + "\0\u078c\0\u07e0\0\u0834\0\u0540\0\u0888\0\u08dc\0\u0540\0\u0540" + + "\0\u0930\0\u0984\0\u0540\0\u0540\0\u0540\0\u0540\0\u09d8\0\u0a2c" + + "\0\u0540\0\u0a80\0\u0540\0\u0540\0\u0540\0\u0540\0\u0ad4\0\u0b28" + + "\0\u0b7c\0\u0bd0\0\u0c24\0\u0c78\0\u0ccc\0\u0540\0\u0d20\0\u0d74" + + "\0\u0540\0\u0dc8\0\u0540\0\u0e1c\0\u0e70\0\u0ec4\0\u0f18\0\u0f6c" + + "\0\u0fc0\0\u1014\0\u1068\0\u10bc\0\u1110\0\u1164\0\u0540\0\u11b8" + + "\0\u120c\0\u1260\0\u12b4\0\u1308\0\u135c\0\u13b0\0\u1404\0\u1458" + + "\0\u14ac\0\u1500\0\u1554\0\u15a8\0\u15fc\0\u1650\0\u16a4\0\u16f8" + + "\0\u174c\0\u17a0\0\u17f4\0\u1848\0\u189c\0\u18f0\0\u1944\0\u1998" + + "\0\u19ec\0\u1a40\0\u1a94\0\u1ae8\0\u0540\0\u1b3c\0\u1b90\0\u1be4" + + "\0\u1c38\0\u1c8c\0\u0540\0\u1ce0\0\u1d34\0\u1d88\0\u1ddc\0\u1e30" + + "\0\u1e84\0\u0540\0\u0540\0\u1ed8\0\u1f2c\0\u1f80\0\u1fd4\0\u2028" + + "\0\u0540\0\u207c\0\u20d0\0\u2124\0\u2178\0\u2124\0\u2124\0\u21cc" + + "\0\u2220\0\u2274\0\u22c8\0\u0dc8\0\u231c\0\u2370\0\u23c4\0\u2418" + + "\0\u246c\0\u24c0\0\u2514\0\u2568\0\u25bc\0\u0540\0\u2610\0\u2664" + + "\0\u0540\0\u26b8\0\u270c\0\u2760\0\u27b4\0\u2808\0\u285c\0\u28b0" + + "\0\u2904\0\u2958\0\u29ac\0\u0540\0\u2a00\0\u2a54\0\u2aa8\0\u2afc" + + "\0\u2b50\0\u2ba4\0\u2bf8\0\u2c4c\0\u2ca0\0\u2cf4\0\u2d48\0\u2d9c" + + "\0\u2df0\0\u2e44\0\u2e98\0\u2eec\0\u2f40\0\u2f94\0\u0bd0\0\u2fe8" + + "\0\u303c\0\u3090\0\u30e4\0\u3138\0\u318c\0\u31e0\0\u3234\0\u3288" + + "\0\u32dc\0\u3330\0\u3384\0\u33d8\0\u342c\0\u3480\0\u34d4\0\u3528" + + "\0\u357c\0\u35d0\0\u3624\0\u3678\0\u36cc\0\u3720\0\u3774\0\u37c8" + + "\0\u381c\0\u3870\0\u38c4\0\u3918\0\u396c\0\u39c0\0\u3a14\0\u3a68" + + "\0\u3abc\0\u3b10\0\u3b64\0\u3bb8\0\u3c0c\0\u3c60\0\u3cb4\0\u3d08" + + "\0\u0540\0\u3d5c\0\u3db0\0\u3e04\0\u3e58\0\u3eac\0\u3f00\0\u3f54" + + "\0\u3fa8\0\u3ffc\0\u4050\0\u40a4\0\u40f8\0\u414c\0\u0540\0\u41a0" + + "\0\u41f4\0\u0540\0\u4248\0\u429c\0\u42f0\0\u2124\0\u4344\0\u4398" + + "\0\u43ec\0\u4440\0\u4494\0\u44e8\0\u453c\0\u0540\0\u4590\0\u45e4" + + "\0\u4638\0\u468c\0\u0540\0\u46e0\0\u4734\0\u4788\0\u47dc\0\u4830" + + "\0\u4884\0\u48d8\0\u492c\0\u4980\0\u49d4\0\u4a28\0\u4a7c\0\u4ad0" + + "\0\u4b24\0\u4b78\0\u4bcc\0\u4c20\0\u4c74\0\u4cc8\0\u4d1c\0\u4d70" + + "\0\u4dc4\0\u4e18\0\u4e6c\0\u4ec0\0\u4f14\0\u4f68\0\u4fbc\0\u5010" + + "\0\u5064\0\u50b8\0\u510c\0\u5160\0\u51b4\0\u5208\0\u525c\0\u52b0" + + "\0\u5304\0\u5358\0\u53ac\0\u5400\0\u5454\0\u54a8\0\u54fc\0\u5550" + + "\0\u55a4\0\u55f8\0\u564c\0\u56a0\0\u56f4\0\u5748\0\u579c\0\u57f0" + + "\0\u5844\0\u5898\0\u58ec\0\u5940\0\u5994\0\u59e8\0\u5a3c\0\u5a90" + + "\0\u5ae4\0\u5b38\0\u5b8c\0\u5be0\0\u5c34\0\u5c88\0\u5cdc\0\u5d30" + + "\0\u5d84\0\u5dd8\0\u5e2c\0\u0bd0\0\u5e80\0\u5ed4\0\u5f28\0\u5f7c" + + "\0\u5fd0\0\u6024\0\u6078\0\u60cc\0\u6120\0\u6174\0\u61c8\0\u621c" + + "\0\u6270\0\u62c4\0\u6318\0\u636c\0\u0540\0\u63c0\0\u6414\0\u6468" + + "\0\u64bc\0\u6510\0\u6564\0\u65b8\0\u660c\0\u6660\0\u66b4\0\u0540" + + "\0\u6708\0\u675c\0\u67b0\0\u6804\0\u6858\0\u68ac\0\u6900\0\u6954" + + "\0\u69a8\0\u69fc\0\u6a50\0\u0540\0\u6aa4\0\u6af8\0\u6b4c\0\u6ba0" + + "\0\u6bf4\0\u6c48\0\u6c9c\0\u0bd0\0\u6cf0\0\u6d44\0\u6d98\0\u6dec" + + "\0\u6e40\0\u6e94\0\u6ee8\0\u6f3c\0\u6f90\0\u6fe4\0\u7038\0\u0bd0" + + "\0\u708c\0\u70e0\0\u7134\0\u7188\0\u71dc\0\u7230\0\u7284\0\u72d8" + + "\0\u732c\0\u7380\0\u73d4\0\u7428\0\u747c\0\u74d0\0\u7524\0\u7578" + + "\0\u75cc\0\u7620\0\u7674\0\u76c8\0\u771c\0\u7770\0\u77c4\0\u7818" + + "\0\u786c\0\u78c0\0\u7914\0\u7968\0\u79bc\0\u7a10\0\u7a64\0\u7ab8" + + "\0\u7b0c\0\u7b60\0\u7bb4\0\u7c08\0\u7c5c\0\u7cb0\0\u7d04\0\u7d58" + + "\0\u7dac\0\u7e00\0\u6468\0\u7e54\0\u7ea8\0\u7efc\0\u7f50\0\u7fa4" + + "\0\u7ff8\0\u804c\0\u80a0\0\u80f4\0\u8148\0\u819c\0\u81f0\0\u8244" + + "\0\u8298\0\u82ec\0\u8340\0\u8394\0\u83e8\0\u843c\0\u8490\0\u84e4" + + "\0\u8538\0\u858c\0\u85e0\0\u8634\0\u8688\0\u86dc\0\u8730\0\u8784" + + "\0\u87d8\0\u882c\0\u8880\0\u88d4\0\u8928\0\u897c\0\u89d0\0\u8a24" + + "\0\u8a78\0\u8acc\0\u8b20\0\u8b74\0\u8bc8\0\u8c1c\0\u8c70\0\u8cc4" + + "\0\u8d18\0\u8d6c\0\u8dc0\0\u8e14\0\u8e68\0\u8ebc\0\u8f10\0\u8f64" + + "\0\u8fb8\0\u900c\0\u9060\0\u7c5c\0\u90b4\0\u7d58\0\u9108\0\u915c" + + "\0\u91b0\0\u9204\0\u9258\0\u92ac\0\u9300\0\u9354\0\u93a8\0\u93fc" + + "\0\u9450\0\u94a4\0\u94f8\0\u954c\0\u95a0\0\u95f4\0\u9648\0\u969c" + + "\0\u96f0\0\u9744\0\u9798\0\u97ec\0\u9840\0\u9894\0\u98e8\0\u993c" + + "\0\u9990\0\u99e4\0\u9a38\0\u9a8c\0\u9ae0\0\u9b34\0\u9b88\0\u9bdc" + + "\0\u9c30\0\u9c84\0\u9cd8\0\u9d2c\0\u9d80\0\u9dd4\0\u9e28\0\u9e7c" + + "\0\u9ed0\0\u9f24\0\u9f78\0\u9fcc\0\ua020\0\ua074\0\ua0c8\0\ua11c" + + "\0\ua170\0\ua1c4\0\ua218\0\ua26c\0\ua2c0\0\ua314\0\ua368\0\ua3bc" + + "\0\ua410\0\ua464\0\ua4b8\0\ua50c\0\ua560\0\ua5b4\0\ua608\0\ua65c" + + "\0\ua6b0\0\ua704\0\ua758\0\ua7ac\0\ua800\0\ua854\0\ua8a8\0\ua8fc" + + "\0\ua950\0\ua9a4\0\ua9f8\0\uaa4c\0\u0b7c\0\uaaa0\0\u0540\0\uaaf4" + + "\0\uab48\0\uab9c\0\uabf0\0\uac44\0\uac98\0\uacec\0\uad40\0\uad94" + + "\0\uade8\0\uae3c\0\uae90\0\uaee4\0\uaf38\0\uaf8c\0\uafe0\0\ub034" + + "\0\u0540\0\ub088\0\u0540\0\ub0dc\0\ub130\0\ub184\0\ub1d8\0\ub22c" + + "\0\ub280\0\ub2d4\0\ub328\0\ub37c\0\ub3d0\0\ub424\0\ub478\0\ub4cc" + + "\0\ub520\0\ub574\0\ub5c8\0\ub61c\0\ub670\0\ub6c4\0\ub718\0\ub76c" + + "\0\ub7c0\0\ub814\0\ub868\0\ub8bc\0\ub910\0\ub964\0\ub9b8\0\uba0c" + + "\0\uba60\0\ubab4\0\ubb08\0\ubb5c\0\ubbb0\0\ubc04\0\ubc58\0\ubcac"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[624]; + 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 = "\7\17\1\20\1\21\1\22\1\23\1\24\71\17\1\23" + + "\16\17\10\25\1\26\35\25\1\27\1\25\1\30\23\25" + "\1\31\1\32\26\25\10\33\1\34\53\33\1\35\37\33" + + "\10\36\1\37\14\36\1\40\76\36\7\41\1\42\1\0" + "\1\41\1\23\2\41\1\43\7\41\1\44\3\41\1\45" + + "\1\46\6\41\1\47\43\41\1\23\16\41\32\50\1\51" + "\71\50\31\52\1\51\72\52\7\41\1\42\1\0\1\41" + + "\1\23\2\41\1\43\7\41\1\53\3\41\1\54\1\55" + "\6\41\1\47\43\41\1\23\16\41\32\50\1\56\71\50" + + "\31\52\1\56\72\52\24\57\1\60\77\57\1\61\1\62" + "\1\63\1\64\1\62\1\43\1\65\1\23\1\66\1\67" + + "\1\23\1\70\1\71\2\72\1\73\1\74\1\75\1\76" + "\1\62\1\77\1\100\1\101\1\63\1\61\1\102\1\103" + + "\1\104\1\105\1\106\1\107\1\110\1\62\1\111\1\72" + "\1\112\1\62\1\113\1\114\1\62\1\115\1\116\1\117" + + "\1\120\1\121\1\122\1\123\1\124\1\73\1\71\2\72" + "\2\43\1\125\1\126\1\127\1\130\1\61\1\73\1\62" + + "\1\131\1\132\1\62\1\133\1\62\1\134\2\62\1\23" + "\1\135\1\136\1\137\1\140\1\141\1\142\1\62\1\143" + + "\6\62\10\144\1\145\31\144\1\146\3\144\1\147\25\144" + "\1\150\1\151\26\144\10\152\1\153\35\152\1\154\25\152" + + "\1\155\1\156\26\152\10\17\4\0\71\17\1\0\25\17" + "\1\20\2\0\1\23\1\0\71\17\1\23\16\17\125\0" + + "\1\157\3\0\1\157\10\0\1\160\1\0\4\157\2\0" + "\1\157\4\0\3\157\3\0\1\161\1\0\5\157\2\0" + + "\6\157\4\0\1\162\1\0\4\157\2\0\11\157\1\0" + "\16\157\7\0\1\23\2\0\1\23\72\0\1\23\16\0" + + "\12\24\1\0\1\24\1\163\70\24\1\0\16\24\10\25" + "\1\0\35\25\1\0\1\25\1\0\23\25\2\0\26\25" + + "\52\0\1\164\15\0\1\165\103\0\1\166\125\0\1\167" + "\146\0\1\170\26\0\10\33\1\0\53\33\1\0\37\33" + + "\25\0\1\171\76\0\10\36\1\0\14\36\1\0\76\36" + "\10\41\1\0\1\41\1\0\2\41\1\0\7\41\1\0" + + "\3\41\2\0\6\41\1\0\43\41\1\0\25\41\1\42" + "\1\0\1\41\1\23\2\41\1\0\7\41\1\0\3\41" + + "\2\0\6\41\1\0\43\41\1\23\16\41\25\0\1\44" + "\76\0\32\50\1\0\71\50\31\52\1\0\72\52\24\57" + + "\1\0\77\57\24\0\1\172\77\0\5\61\13\0\4\61" + "\2\0\3\61\2\0\3\61\1\0\2\61\2\0\5\61" + + "\2\0\6\61\6\0\5\61\1\0\11\61\1\0\17\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\2\174\2\63" + "\1\174\1\0\1\175\11\0\1\174\1\176\2\174\2\0" + + "\1\174\1\63\1\174\2\0\3\174\1\0\2\174\2\0" + "\1\174\1\177\2\176\1\200\2\0\2\174\1\200\1\174" + + "\1\177\1\174\6\0\5\174\1\0\2\174\1\176\6\174" + "\1\0\20\174\1\201\1\202\1\174\1\0\1\175\11\0" + + "\1\174\1\176\2\174\2\0\1\174\1\202\1\174\2\0" + "\3\174\1\0\2\174\2\0\1\203\1\177\2\176\1\200" + + "\2\0\2\174\1\200\1\174\1\177\1\174\6\0\5\174" + "\1\0\2\174\1\176\5\174\1\203\1\0\16\174\2\0" + + "\2\175\23\0\1\175\105\0\1\204\3\0\1\43\1\205" + "\22\0\1\206\75\0\1\43\1\0\1\43\123\0\1\43" + + "\106\0\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\4\62\1\61\1\0\4\62\1\207\4\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\3\62\1\210\2\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\1\62\1\211\4\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\24\0\1\212\114\0\1\43" + + "\7\0\1\213\76\0\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\4\62" + + "\1\214\4\62\1\0\16\62\30\102\1\215\1\216\72\102" + "\10\103\1\217\17\103\1\220\1\103\1\221\71\103\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\1\62" + "\1\222\1\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\5\62\1\223\6\0\2\62\1\224\1\225\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\1\226\2\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\2\62\1\227\1\230\2\62\6\0" + + "\4\62\1\61\1\0\4\62\1\231\4\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62" + "\1\232\4\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\5\61\13\0\4\61\2\0\3\61\2\0\3\61" + "\1\0\2\61\2\0\5\61\2\0\6\61\6\0\2\61" + + "\1\233\2\61\1\0\11\61\1\0\16\61\15\0\1\43" + "\23\0\1\234\1\235\61\0\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\3\62\1\236\12\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\1\237\2\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\1\240\2\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\3\62\1\241\1\62" + + "\1\242\6\0\2\62\1\243\1\62\1\61\1\0\4\62" + "\1\244\4\62\1\0\16\62\15\0\1\43\32\0\1\43" + + "\70\0\1\43\33\0\1\43\52\0\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\62\1\245\1\246\1\247" + "\2\62\6\0\4\62\1\61\1\0\1\250\3\62\1\251" + + "\1\252\3\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\2\62\1\253\1\254\2\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\4\62\1\255\1\256" + + "\6\0\4\62\1\61\1\0\7\62\1\257\1\260\1\0" + "\1\62\1\261\14\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\1\62\1\262\1\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\2\62\1\262\6\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\1\257\1\62\1\257" + "\1\263\2\62\6\0\4\62\1\61\1\0\4\62\1\264" + + "\4\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\1\265\2\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\1\266\1\62\1\267\3\62\6\0" + "\1\62\1\270\2\62\1\61\1\0\1\62\1\271\7\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\272\1\62\1\273\3\62\6\0\4\62\1\61" + "\1\0\4\62\1\274\4\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\3\62\1\275\1\276" + + "\1\62\6\0\4\62\1\61\1\0\4\62\1\277\4\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\1\62\1\300\1\62\1\0\1\61\1\62" + "\2\0\3\62\1\301\1\62\2\0\5\62\1\302\6\0" + + "\4\62\1\61\1\0\6\62\1\303\2\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\1\304\2\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\1\62\1\305\1\62\1\306\1\307\1\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\2\62\1\310" + "\1\62\1\61\1\0\1\311\10\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\312" + + "\3\62\6\0\4\62\1\61\1\0\4\62\1\257\1\313" + "\3\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\1\62\1\314\1\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\1\62\1\257\4\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\1\62\1\315\14\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62" + "\1\316\2\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\1\257\1\62\1\317\3\62\6\0\4\62\1\61\1\0" + "\4\62\1\320\4\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\3\62\1\321\2\62\6\0" + + "\4\62\1\61\1\0\4\62\1\322\4\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62" + "\1\323\3\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\3\62\1\324\2\62\6\0\4\62\1\61\1\0\4\62" + "\1\325\4\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\1\326\2\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\2\62\1\327\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\2\62\1\330\3\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\10\144\1\0\31\144" + "\1\0\3\144\1\0\25\144\2\0\26\144\41\0\1\331" + + "\134\0\1\332\15\0\1\333\105\0\1\334\146\0\1\335" + "\26\0\10\152\1\0\35\152\1\0\25\152\2\0\26\152" + + "\52\0\1\336\15\0\1\337\105\0\1\340\146\0\1\341" + "\27\0\3\157\1\0\2\157\11\0\4\157\2\0\2\157" + + "\3\0\3\157\5\0\6\157\1\0\6\157\6\0\4\157" + "\2\0\11\157\1\0\16\157\17\0\1\342\30\0\1\343" + + "\54\0\1\344\3\0\1\344\12\0\4\344\2\0\1\344" + "\4\0\3\344\5\0\5\344\2\0\6\344\6\0\4\344" + + "\2\0\11\344\1\0\16\344\71\0\1\345\110\0\1\346" + "\72\0\1\347\150\0\1\350\146\0\1\351\53\0\1\352" + + "\76\0\5\61\13\0\4\61\2\0\3\61\2\0\1\353" + "\2\61\1\0\2\61\2\0\5\61\2\0\6\61\6\0" + + "\5\61\1\0\11\61\1\0\16\61\5\174\13\0\4\174" + "\2\0\3\174\2\0\3\174\1\0\2\174\2\0\5\174" + + "\2\0\6\174\6\0\5\174\1\0\11\174\1\0\20\174" + "\2\175\1\174\13\0\1\174\1\176\2\174\2\0\1\174" + + "\1\175\1\174\2\0\3\174\1\0\2\174\2\0\2\174" + "\2\176\1\200\2\0\2\174\1\200\3\174\6\0\5\174" + + "\1\0\2\174\1\176\6\174\1\0\20\174\2\354\1\174" + "\13\0\4\174\2\0\1\174\1\354\1\174\2\0\3\174" + + "\1\0\2\174\2\0\5\174\2\355\6\174\6\0\5\174" + "\1\0\11\174\1\0\20\174\2\201\1\174\1\0\1\175" + + "\11\0\1\174\1\176\2\174\2\0\1\174\1\201\1\174" + "\2\0\3\174\1\0\2\174\2\0\2\174\2\176\1\200" + + "\2\0\2\174\1\200\3\174\6\0\5\174\1\0\2\174" + "\1\176\6\174\1\0\20\174\1\201\1\202\1\174\1\0" + + "\1\175\11\0\1\174\1\176\2\174\2\0\1\174\1\202" + "\1\174\2\0\3\174\1\0\2\174\2\0\1\174\1\356" + + "\2\176\1\200\2\0\2\174\1\200\1\174\1\356\1\174" + "\6\0\5\174\1\0\2\174\1\176\6\174\1\0\20\174" + + "\2\357\1\174\13\0\3\357\1\174\2\0\2\357\1\174" + "\2\0\2\174\1\357\1\0\2\174\2\0\2\174\3\357" + + "\2\0\2\174\2\357\2\174\6\0\1\174\1\357\3\174" + "\1\0\2\174\1\357\6\174\1\0\16\174\17\0\1\360" + + "\105\0\1\361\3\0\1\361\12\0\4\361\2\0\1\361" + "\4\0\3\361\5\0\5\361\2\0\6\361\6\0\1\362" + + "\3\361\2\0\11\361\1\0\16\361\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\4\62\1\363\1\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\1\364\5\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\1\62\1\365\4\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\25\0" + + "\1\366\113\0\1\43\7\0\1\72\76\0\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\4\62\1\367\4\62\1\0\16\62\3\370" + + "\1\102\4\370\1\0\16\370\4\102\1\371\2\102\10\370" + "\1\102\3\370\2\102\50\370\30\217\1\372\1\217\1\373" + + "\74\217\1\103\4\217\1\0\16\217\4\103\1\374\2\103" + "\10\217\1\103\3\217\2\103\50\217\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\2\62\1\375\1\62\1\376" + + "\1\62\6\0\4\62\1\61\1\0\2\62\1\377\6\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\2\62\1\257\3\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\1\62\1\u0100\1\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\2\62\1\u0101\6\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\4\62\1\u0102\1\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\1\62\1\u0103\6\62\1\u0104\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u0105" + "\5\62\6\0\4\62\1\61\1\0\6\62\1\u0106\2\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\257\5\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\2\62\1\u0107\3\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\5\61\13\0\4\61\2\0\3\61" + "\2\0\1\61\1\u0108\1\61\1\0\2\61\2\0\5\61" + + "\2\0\6\61\6\0\5\61\1\0\11\61\1\0\16\61" + "\42\0\1\u0109\61\0\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\1\62\1\u010a\3\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\1\62\1\u010b\1\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\1\62\1\u010c\1\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\4\62\1\u010d\1\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\1\62\1\u010e\2\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\1\62\1\u010f\1\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\1\62\1\u0110\4\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\1\u0111\2\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\3\62\1\u0112\2\62\6\0\4\62\1\61" + + "\1\0\5\62\1\257\3\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\4\62\1\u0113\1\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\1\62\1\u0114" + + "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62" + "\1\u0115\4\62\6\0\2\62\1\u0116\1\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\1\u0117\15\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\3\62\1\u0118\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\1\u0119\5\62\6\0\4\62\1\61\1\0" + "\6\62\1\u011a\2\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\1\62\1\u011b\1\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\5\62\1\223\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\1\62" + + "\1\u011c\2\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\1\u011d\5\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u011e" + + "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\2\62\1\257\6\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\2\62\1\u011f\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\3\62\1\u0120\2\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\3\62\1\u0121\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\3\62\1\u0122\2\62\6\0\4\62\1\61\1\0" + "\4\62\1\u0123\4\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\1\u0124\5\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\62\1\u0125\4\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\2\62" + + "\1\u0126\1\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\1\62\1\u0127" + "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62" + + "\1\u0128\1\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\1\u0129\2\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\1\u012a\3\62\1\u011e\1\223\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\3\62\1\u012b\2\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\1\62\1\u012c\1\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\1\u012d\5\62\6\0\1\62" + + "\1\u012e\2\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\2\62\1\u012f\2\62\2\0" + "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\2\62\1\u0130\2\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\4\62\1\u0131\11\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\3\62\1\u0132\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\2\62\1\u0133\1\0\1\61\1\62" + + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\2\62\1\u0134\3\62\6\0\2\62\1\u0135" + "\1\62\1\61\1\0\4\62\1\u0136\4\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62" + + "\1\u0137\4\62\6\0\1\62\1\u0138\2\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\3\62\1\u0139\2\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\1\u013a\5\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\2\62\1\u013b\1\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\3\62\1\u013c\1\62\2\0\4\62\1\u013d" + "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\1\62\1\u013e\1\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\1\u013f\3\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\2\62\1\u0140\3\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\10\62\1\u0141" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\u0142\5\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\1\u0143\5\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\62\1\257\4\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\2\62\1\262\1\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\5\62\1\u0144\3\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\u0145\5\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\1\u0146\2\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\1\62\1\u0147\14\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u0148" + "\1\62\6\0\4\62\1\61\1\0\6\62\1\u0149\2\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\6\62\1\u014a\7\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\1\62\1\u014b\2\62\1\61" + "\1\0\11\62\1\0\16\62\71\0\1\u014c\110\0\1\u014d" + + "\117\0\1\u014e\146\0\1\u014f\117\0\1\u0150\110\0\1\u0151" + "\117\0\1\u0152\146\0\1\u0153\46\0\1\u0154\153\0\1\u0155" + + "\54\0\3\344\1\0\2\344\11\0\4\344\2\0\2\344" + "\3\0\3\344\5\0\6\344\1\0\6\344\6\0\4\344" + + "\2\0\11\344\1\0\16\344\5\0\1\u0156\172\0\1\345" + "\140\0\1\u0157\40\0\1\u0158\115\0\2\61\2\u0159\1\61" + + "\13\0\3\u0159\1\61\2\0\2\u0159\1\61\2\0\2\61" + "\1\u0159\1\0\2\61\2\0\2\61\3\u0159\2\0\2\61" + + "\2\u0159\2\61\6\0\1\61\1\u0159\3\61\1\0\2\61" + "\1\u0159\6\61\1\0\16\61\2\174\2\354\1\174\13\0" + + "\1\174\1\176\2\174\2\0\1\174\1\354\1\174\2\0" + "\3\174\1\0\2\174\2\0\2\174\2\176\1\174\2\0" + + "\6\174\6\0\5\174\1\0\2\174\1\176\6\174\1\0" + "\16\174\2\0\2\354\23\0\1\354\74\0\2\174\2\357" + + "\1\174\13\0\3\357\1\174\2\0\2\357\1\174\2\0" + "\2\174\1\357\1\0\2\174\2\0\1\174\1\356\3\357" + + "\2\0\2\174\2\357\1\356\1\174\6\0\1\174\1\357" + "\3\174\1\0\2\174\1\357\6\174\1\0\16\174\20\0" + + "\1\u015a\104\0\3\361\1\0\1\u015b\1\361\11\0\4\361" + "\2\0\2\361\3\0\3\361\5\0\6\361\1\0\6\361" + + "\6\0\4\361\2\0\11\361\1\0\16\361\1\0\3\361" + "\1\0\1\u015b\1\361\11\0\4\361\2\0\2\361\3\0" + + "\3\361\5\0\6\361\1\0\6\361\6\0\1\361\1\u015c" + "\2\361\2\0\11\361\1\0\16\361\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\4\62\1\u015d\4\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0144\3\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\323" + + "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62" + "\1\u015e\1\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\30\370\1\u015f\1\u0160\74\370\2\u0161\14\370\3\u0161" + "\3\370\2\u0161\1\u015f\1\u0160\3\370\1\u0161\7\370\3\u0161" + + "\4\370\2\u0161\11\370\1\u0161\6\370\1\u0161\25\370\10\217" + "\1\0\115\217\2\u0162\14\217\3\u0162\3\217\2\u0162\1\372" + + "\1\217\1\373\2\217\1\u0162\7\217\3\u0162\4\217\2\u0162" + "\11\217\1\u0162\6\217\1\u0162\25\217\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\5\62\1\256\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\4\62\1\u0163\4\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0164\3\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\1\u0144\5\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u0165" + + "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62" + "\1\257\1\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\4\62\1\u0166\1\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\1\u0167\5\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\2\62\1\u0168\1\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\2\62\1\u0169\3\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\3\62\1\u016a\2\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\5\61\13\0\4\61" + + "\2\0\3\61\2\0\3\61\1\0\2\61\2\0\5\61" + "\2\0\6\61\6\0\1\61\1\u016b\3\61\1\0\11\61" + + "\1\0\16\61\41\0\1\u016c\62\0\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\1\u016d\3\62" + "\1\61\1\0\11\62\1\0\4\62\1\u016e\11\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\1\62\1\u016f\2\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\1\62\1\u0170\2\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\5\62\1\u0111\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\4\62\1\61\1\0\4\62\1\u0171\4\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\3\62\1\u0172\2\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + + "\1\u0173\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\2\62\1\u0174\3\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\1\62\1\u0175\2\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\4\62\1\u0176\1\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\1\u0177\15\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\4\62\1\u0178\4\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\5\62\1\257\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\1\u0179\15\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\2\62\1\u017a\3\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\1\u017b" + + "\2\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\4\62\1\u017c\4\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\2\62\1\u017d\6\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\3\62\1\u017e\2\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\2\62\1\u017f\3\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\4\62\1\u0180\1\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\2\62\1\u0102\3\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\2\62\1\u0181\6\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\2\62\1\321\3\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\1\u0182\1\u0183" + "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\3\62\1\u0184\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\10\62\1\u0185" + + "\5\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\4\62\1\61\1\0\4\62\1\u0186\4\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\1\u012a\5\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\2\62\1\u0187\1\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\2\62\1\u010b\3\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\1\62\1\u0188\1\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\1\62\1\u013a" + + "\2\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\5\62\1\u0116\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\1\u0189\4\62\1\231" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u018a" + "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62" + + "\1\u018b\1\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\1\62\1\u018c\4\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\2\62\1\u018d\1\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\3\62\1\u018e\2\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\4\62\1\u018f\1\62\6\0\4\62" + "\1\61\1\0\4\62\1\u0190\4\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u0182" + + "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\1\62\1\u0167" + + "\14\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\1\62\1\u0191\1\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\1\62\1\u0192\14\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\1\u0193\5\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\5\62\1\u0194\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\3\62\1\u0195\5\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\5\62\1\u0180\3\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\1\257\10\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\4\62\1\223\1\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u0196" + + "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62" + "\1\u0197\3\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\3\62\1\u0198\2\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\4\62\1\u0199\1\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\1\62\1\u019a\4\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\5\62\1\u019b\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\3\62" + "\1\u019c\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\7\62\1\u019d\1\u0185\1\u019e\4\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\4\62\1\61\1\0\4\62\1\u019f\4\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\4\62\1\61\1\0\1\u0144\10\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\5\62\1\364\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\2\62\1\u01a0\1\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\4\62\1\u0144\1\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\2\62\1\u01a1\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\2\62\1\u01a2\3\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\1\363\5\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\5\0\1\u01a3\172\0\1\u014c" + "\140\0\1\u01a4\40\0\1\u01a5\122\0\1\u01a6\172\0\1\u0150" + + "\140\0\1\u01a7\40\0\1\u01a8\136\0\1\u01a9\143\0\1\u01aa" + "\67\0\1\u0156\51\0\1\345\45\0\3\u0158\3\u01ab\4\0" + + "\5\u01ab\4\u0158\1\u01ab\1\0\2\u0158\1\0\1\u01ab\1\0" + "\3\u0158\1\0\1\u01ab\2\u0158\1\u01ab\5\u0158\2\u01ab\6\u0158" + + "\1\0\1\u01ab\1\0\3\u01ab\4\u0158\2\u01ab\11\u0158\1\0" + "\16\u0158\2\61\2\u01ac\1\61\13\0\3\u01ac\1\61\2\0" + + "\2\u01ac\1\61\2\0\2\61\1\u01ac\1\0\2\61\2\0" + "\2\61\3\u01ac\2\0\2\61\2\u01ac\2\61\6\0\1\61" + + "\1\u01ac\3\61\1\0\2\61\1\u01ac\6\61\1\0\16\61" + "\21\0\1\u01ad\103\0\3\361\1\0\1\u015b\1\361\11\0" + + "\4\361\2\0\2\361\3\0\3\361\5\0\6\361\1\0" + "\6\361\6\0\1\362\3\361\2\0\11\361\1\0\16\361" + + "\1\0\3\361\1\0\1\u015b\1\361\11\0\4\361\2\0" + "\2\361\3\0\3\361\5\0\6\361\1\0\1\361\1\u01ae" + + "\4\361\6\0\4\361\2\0\11\361\1\0\16\361\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\1\62\1\u0144" + "\4\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62" + + "\1\u01af\3\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\10\370\1\0\115\370\2\u01b0\14\370\3\u01b0\3\370" + + "\2\u01b0\1\u015f\1\u0160\3\370\1\u01b0\7\370\3\u01b0\4\370" + "\2\u01b0\11\370\1\u01b0\6\370\1\u01b0\25\370\2\217\2\u01b1" + + "\14\217\3\u01b1\3\217\2\u01b1\1\372\1\217\1\373\2\217" + "\1\u01b1\7\217\3\u01b1\4\217\2\u01b1\11\217\1\u01b1\6\217" + + "\1\u01b1\25\217\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\3\62\1\u01b2\2\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\3\62\1\u01b3\1\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\1\u01b4\5\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\2\62\1\u01b5\1\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\2\62\1\u01b6\2\62\2\0\6\62\6\0" + "\1\u01b7\3\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\1\62\1\223\14\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\5\62" + "\1\u01b8\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\3\62\1\257\5\62\1\0" + + "\16\62\5\61\13\0\4\61\2\0\3\61\2\0\3\61" + "\1\0\2\61\2\0\5\61\2\0\4\61\1\u01b9\1\61" + + "\6\0\5\61\1\0\11\61\1\0\17\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\4\62\1\u01ba\4\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\4\62\1\u01bb\4\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\1\u01bc\5\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\1\u01bd\5\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\6\62\1\u01be\2\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62" + "\1\u01bf\1\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\54\0\1\u01c0\47\0\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\2\62\1\u0180\3\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\3\62\1\u01c1\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\2\62\1\u01c2\3\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\1\62\1\257\7\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u01c3" + "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\4\62\1\61\1\0\4\62\1\u01c4\4\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\1\62\1\u01c5\4\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\1\62\1\u01c6\14\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\4\62" + "\1\u01c7\4\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\3\62\1\u0175\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\1\62\1\u01c8\1\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\3\62\1\u01c9\3\62\1\u01ca\6\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\2\62\1\u01cb\1\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\1\u01cc\5\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\1\62\1\u01cd\1\u01ce\1\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\1\62\1\u01cf\4\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\4\62\1\u011e\1\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\1\62\1\u01d0\1\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\2\62\1\u0144\6\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\2\62\1\u01d1\1\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\62" + "\1\u01d2\4\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\1\u01d3\2\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\3\62\1\u01d4\2\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\1\62\1\u01d5\1\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\4\62\1\u0180\11\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\2\62\1\u01d6\3\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\62\1\231\4\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\1\u01d7\5\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\3\62\1\u0197\2\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u01d8" + + "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\2\62" + "\1\u01d9\3\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\3\62\1\u01da\2\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\1\u01db\2\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\223\5\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\6\62\1\u0182" + + "\2\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\2\62\1\u01dc\1\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\1\62\1\u01dd\4\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\1\62\1\270" + "\2\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\2\62" + + "\1\u01de\1\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u01df" + "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\12\62\1\u01e0" + "\3\62\1\61\4\62\13\0\2\62\1\u01e1\1\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\2\62\1\u01e2\3\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\2\62\1\u015d\3\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\6\62\6\0\1\62\1\u0100\2\62" + "\1\61\1\0\11\62\1\0\16\62\41\0\1\u01e3\67\0" + + "\1\u01a3\51\0\1\u014c\45\0\3\u01a5\3\u01e4\4\0\5\u01e4" + "\4\u01a5\1\u01e4\1\0\2\u01a5\1\0\1\u01e4\1\0\3\u01a5" + + "\1\0\1\u01e4\2\u01a5\1\u01e4\5\u01a5\2\u01e4\6\u01a5\1\0" + "\1\u01e4\1\0\3\u01e4\4\u01a5\2\u01e4\11\u01a5\1\0\16\u01a5" + + "\41\0\1\u01e5\67\0\1\u01a6\51\0\1\u0150\45\0\3\u01a8" + "\3\u01e6\4\0\5\u01e6\4\u01a8\1\u01e6\1\0\2\u01a8\1\0" + + "\1\u01e6\1\0\3\u01a8\1\0\1\u01e6\2\u01a8\1\u01e6\5\u01a8" + "\2\u01e6\6\u01a8\1\0\1\u01e6\1\0\3\u01e6\4\u01a8\2\u01e6" + + "\11\u01a8\1\0\16\u01a8\22\0\1\u01e7\142\0\1\u0158\62\0" + "\2\61\2\u01e8\1\61\13\0\3\u01e8\1\61\2\0\2\u01e8" + + "\1\61\2\0\2\61\1\u01e8\1\0\2\61\2\0\2\61" + "\3\u01e8\2\0\2\61\2\u01e8\2\61\6\0\1\61\1\u01e8" + + "\3\61\1\0\2\61\1\u01e8\6\61\1\0\16\61\22\0" + "\1\u01e9\102\0\3\361\1\0\1\u015b\1\361\11\0\4\361" + + "\2\0\2\361\3\0\3\361\5\0\6\361\1\0\6\361" + "\6\0\2\361\1\u01ea\1\361\2\0\11\361\1\0\16\361" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62" + + "\1\u01eb\2\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\2\370\2\u01ec\14\370\3\u01ec\3\370\2\u01ec\1\u015f" + + "\1\u0160\3\370\1\u01ec\7\370\3\u01ec\4\370\2\u01ec\11\370" + "\1\u01ec\6\370\1\u01ec\25\370\2\217\2\u01ed\14\217\3\u01ed" + + "\3\217\2\u01ed\1\372\1\217\1\373\2\217\1\u01ed\7\217" + "\3\u01ed\4\217\2\u01ed\11\217\1\u01ed\6\217\1\u01ed\25\217" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\4\62\1\61\1\0\2\62\1\u01ee\6\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\2\62\1\u01ef\1\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\2\62\1\u01f0\3\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\1\62\1\u0175\1\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\1\62\1\u01f1\4\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\1\62\1\u01f2" + + "\2\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\3\62" + "\1\u01f3\1\61\1\0\11\62\1\0\16\62\5\61\13\0" + + "\4\61\2\0\3\61\2\0\1\u01f4\2\61\1\0\2\61" + "\2\0\5\61\2\0\6\61\6\0\5\61\1\0\11\61" + + "\1\0\17\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\1\62\1\u01f5\2\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\2\62\1\364" + + "\6\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\2\62\1\u01f6\1\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\2\62\1\u01f7\1\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\6\62\1\u01f8\2\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\4\62\1\u01f9\1\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\55\0" + "\1\u01fa\46\0\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\3\62\1\u01fb\2\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\1\u01fc\5\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\2\62\1\u01fd\3\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\3\62\1\257\1\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\1\62\1\257\1\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\2\62\1\u01fe\3\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\6\62\1\u0180\2\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\2\62\1\u0116\6\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\4\62\1\61\1\0\4\62\1\u01ff\4\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\3\62\1\u0200\2\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\1\62\1\257\2\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\1\62" + + "\1\u01cd\2\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\62\1\u0201\4\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\4\62\1\u0202\1\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\4\62\1\u0203\4\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\1\u0144\15\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\1\62\1\u0204\1\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\1\62\1\u0205\1\62\1\0\1\61\1\62\2\0" + "\3\62\1\u01f3\1\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\2\62\1\223\6\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\6\62\1\u0206\2\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\2\62" + + "\1\u0207\1\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + "\4\62\1\61\1\0\6\62\1\u0208\2\62\1\0\16\62" + + "\1\61\4\62\13\0\2\62\1\u0209\1\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\4\62\1\u020a\11\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\1\62\1\u020b\2\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\2\62\1\u020c\2\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\13\62\1\u020d\2\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\1\223\15\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\231" + "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\3\62\1\u020e\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\2\62\1\u01d3\1\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\4\62\1\61\1\0\6\62\1\u020f\2\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\1\62\1\u0210\4\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\1\62\1\u0180\3\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\1\62\1\u0211\1\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\1\u0212\3\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\41\0\1\u01a5\123\0" + + "\1\u01a8\105\0\1\u0213\100\0\2\61\2\62\1\61\13\0" + "\3\62\1\61\2\0\2\62\1\61\2\0\2\61\1\62" + + "\1\0\2\61\2\0\2\61\3\62\2\0\2\61\2\62" + "\2\61\6\0\1\61\1\62\3\61\1\0\2\61\1\62" + + "\6\61\1\0\16\61\23\0\1\u0214\101\0\3\361\1\0" + "\1\u015b\1\361\11\0\4\361\2\0\2\361\3\0\3\361" + + "\5\0\6\361\1\0\6\361\6\0\3\361\1\u0215\2\0" + "\11\361\1\0\16\361\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\1\62\1\u0144\1\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\2\370\2\102\14\370\3\102" + "\3\370\2\102\1\u015f\1\u0160\3\370\1\102\7\370\3\102" + + "\4\370\2\102\11\370\1\102\6\370\1\102\25\370\2\217" + "\2\103\14\217\3\103\3\217\2\103\1\372\1\217\1\373" + + "\2\217\1\103\7\217\3\103\4\217\2\103\11\217\1\103" + "\6\217\1\103\25\217\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\3\62\1\u01c9\12\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\1\62\1\u0216\1\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\2\62\1\u0217\1\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\3\62\1\u0218\2\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u01b5" + + "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62" + "\1\u0219\2\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\5\61\13\0\4\61\2\0\3\61\2\0\3\61" + "\1\0\2\61\2\0\5\61\2\0\6\61\6\0\5\61" + + "\1\0\2\61\1\u021a\6\61\1\0\17\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\3\62\1\u021b\5\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\4\62\1\u01eb\4\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + "\4\62\1\61\1\0\4\62\1\u01c5\4\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\3\62" + + "\1\u021c\2\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\4\62\1\61\1\0\5\62\1\257\3\62" + + "\1\0\16\62\67\0\1\u021d\34\0\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\62\1\u021e\4\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\10\62\1\u021f\5\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\14\62\1\u0220\1\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\3\62\1\u0221" + "\12\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\1\62" + + "\1\u0222\14\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\62\1\u0223\4\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\3\62\1\u0224\2\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\4\62\1\u0225\1\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\3\62\1\u0226" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\1\223\2\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\3\62\1\u0102\2\62\6\0" + + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0227\3\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\1\u0175\5\62" + + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u0228" + "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\5\62" + + "\1\u0229\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\1\u01c7\2\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u0216" + + "\5\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62" + "\1\u022a\1\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\1\62\1\u022b\1\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\4\62" + "\1\u022c\2\0\6\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\2\62\1\u022d\3\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\5\62\1\u022e\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\2\62" + "\1\u022f\6\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\4\62\1\u0230\1\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\22\0\1\u0231\123\0" + "\1\u0232\102\0\3\361\1\0\1\u015b\1\361\11\0\4\361" + + "\2\0\2\361\3\0\3\361\5\0\6\361\1\0\1\u0233" + "\5\361\6\0\4\361\2\0\11\361\1\0\16\361\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\262" + + "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\3\62\1\u0234\1\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\4\62\1\61\1\0\6\62\1\u0175\2\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\1\62\1\223\2\62\1\61\1\0" + + "\11\62\1\0\16\62\5\61\13\0\4\61\2\0\3\61" + "\2\0\3\61\1\0\2\61\2\0\5\61\2\0\2\61" + + "\1\u0235\3\61\6\0\5\61\1\0\11\61\1\0\17\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\2\62\1\u0100" + "\3\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\1\62\1\u0236\1\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\74\0\1\u0237\27\0\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\1\u0238\15\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\3\62\1\u0239\2\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\2\62\1\u023a" + + "\1\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + "\1\61\1\0\4\62\1\u023b\4\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\2\62\1\u023c\1\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\2\62\1\u023d\1\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\4\62\1\61\1\0\11\62\1\0\1\u0180" + "\15\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\1\u023e\3\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\2\62\1\u023f\3\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\1\62" + "\1\u0240\3\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\1\62\1\u0241\1\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\1\u0242\1\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\4\62\1\u0243\4\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\u0180\5\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\1\62\1\u0244\14\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\1\62\1\u0180\4\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\2\62\1\u0245\1\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\1\u0246\3\62\1\61\1\0\11\62\1\0\10\62" + + "\1\u0247\5\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\2\62\1\u0248\1\62\1\61\1\0" + "\11\62\1\0\16\62\17\0\1\u0249\123\0\1\366\105\0" + + "\3\361\1\0\1\u015b\1\361\1\u024a\2\0\1\u024a\5\0" + "\4\361\1\0\1\u024b\2\361\3\0\3\361\5\0\6\361" + + "\1\0\6\361\6\0\4\361\2\0\11\361\1\u024a\16\361" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u024c" + "\5\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\4\62\1\61\1\0\2\62\1\u0180\6\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\2\62\1\231\3\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\u024d\5\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\1\u024e\15\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\1\62\1\u024f\14\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\2\62\1\u0250\3\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\3\62\1\u0251\2\62\6\0\4\62" + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + + "\1\0\4\62\1\u0252\4\62\1\0\16\62\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\1\62\1\u0253\4\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\4\62\1\u0254\4\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\1\u0116" + "\5\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + + "\6\0\2\62\1\u0255\1\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\3\62\1\u022b\2\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\2\62\1\u0256\3\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\6\62\6\0\4\62\1\61\1\0\4\62" + + "\1\u0257\4\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\1\u0258\5\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\4\62\1\307\1\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\3\62\1\u0144" + "\1\61\1\0\11\62\1\0\16\62\7\0\1\u024a\2\0" + + "\1\u024a\12\0\1\u024b\57\0\1\u024a\16\0\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0259\3\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\4\62\1\61\1\0\1\u0180\10\62\1\0\16\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + "\4\62\1\61\1\0\1\u025a\10\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\6\62\6\0" + + "\2\62\1\u025b\1\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\6\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\4\62\1\u020a" + + "\11\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\2\62\1\u025c\1\0\1\61\1\62\2\0\5\62" + + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\1\u025d\2\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\1\u0139\5\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\3\62\1\u025e\2\62\6\0\4\62\1\61\1\0\11\62" + + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + + "\2\0\1\u025f\5\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\1\62\1\231\1\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\1\62\1\u0180\1\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\6\62\6\0\4\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\4\62\1\u0260\4\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\1\62\1\u0261\4\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\15\62\1\u0262\1\61\4\62" + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + + "\1\61\1\62\2\0\5\62\2\0\2\62\1\u0263\3\62" + "\6\0\4\62\1\61\1\0\11\62\1\0\16\62\1\61" + + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + "\1\0\1\61\1\62\2\0\5\62\2\0\4\62\1\u0264" + + "\1\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + + "\1\62\1\u0265\1\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\6\62\6\0\4\62\1\61\1\0\2\62\1\u0216\6\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\6\62\6\0\4\62\1\61\1\0\6\62\1\u0266" + + "\2\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\3\62\1\u0180\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\4\62\1\u0267\2\0\6\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\1\u0268\2\62\1\0\1\61\1\62" + + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\1\u0269\3\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + "\5\62\2\0\2\62\1\u026a\3\62\6\0\4\62\1\61" + + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\4\62\1\61\1\0" + + "\2\62\1\u026b\6\62\1\0\16\62\1\61\4\62\13\0" + "\4\62\2\0\2\62\1\173\2\0\3\62\1\0\1\61" + + "\1\62\2\0\5\62\2\0\3\62\1\u026c\2\62\6\0" + "\4\62\1\61\1\0\11\62\1\0\16\62\1\61\4\62" + + "\13\0\4\62\2\0\2\62\1\173\2\0\3\62\1\0" + "\1\61\1\62\2\0\5\62\2\0\6\62\6\0\4\62" + + "\1\61\1\0\11\62\1\0\1\62\1\u026d\14\62\1\61" + "\4\62\13\0\4\62\2\0\2\62\1\173\2\0\3\62" + + "\1\0\1\61\1\62\2\0\5\62\2\0\3\62\1\u026e" + "\2\62\6\0\4\62\1\61\1\0\11\62\1\0\16\62" + + "\1\61\4\62\13\0\4\62\2\0\2\62\1\173\2\0" + "\3\62\1\0\1\61\1\62\2\0\5\62\2\0\4\62" + + "\1\u026f\1\62\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\5\62\1\u0250\6\0\4\62\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\5\62\1\u0180\6\0\4\62\1\61\1\0\11\62\1\0" + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + "\6\62\6\0\3\62\1\u0250\1\61\1\0\11\62\1\0" + + "\16\62\1\61\4\62\13\0\4\62\2\0\2\62\1\173" + "\2\0\3\62\1\0\1\61\1\62\2\0\5\62\2\0" + + "\2\62\1\u020d\3\62\6\0\4\62\1\61\1\0\11\62" + "\1\0\16\62\1\61\4\62\13\0\4\62\2\0\2\62" + + "\1\173\2\0\3\62\1\0\1\61\1\62\2\0\5\62" + "\2\0\4\62\1\u0270\1\62\6\0\4\62\1\61\1\0" + + "\11\62\1\0\16\62\1\61\4\62\13\0\4\62\2\0" + "\2\62\1\173\2\0\3\62\1\0\1\61\1\62\2\0" + + "\5\62\2\0\6\62\6\0\2\62\1\u0260\1\62\1\61" + "\1\0\11\62\1\0\16\62\1\61\4\62\13\0\4\62" + + "\2\0\2\62\1\173\2\0\3\62\1\0\1\61\1\62" + "\2\0\5\62\2\0\6\62\6\0\2\62\1\u0253\1\62" + "\1\61\1\0\11\62\1\0\16\62"; + + private static int[] zzUnpackTrans() { + int[] result = new int[48384]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\5\0\2\1\1\0\2\1\4\0\2\1\1\11\4\1" + "\1\11\5\1\1\11\2\1\2\11\2\1\4\11\2\1" + + "\1\11\1\1\4\11\7\1\1\11\2\1\1\11\1\1" + "\1\11\13\1\1\11\35\1\1\11\5\1\1\11\6\1" + "\2\11\5\0\1\11\1\0\11\1\3\0\3\1\1\0" + + "\3\1\1\11\2\1\1\11\12\1\1\11\74\1\1\11" + "\12\0\1\1\2\0\1\11\2\0\1\11\2\1\1\0" + "\2\1\3\0\3\1\1\11\4\1\1\11\15\1\1\0" + + "\102\1\11\0\1\11\2\0\2\1\3\0\3\1\1\11" + "\13\1\1\11\6\1\1\0\57\1\2\0\1\1\2\0" + "\1\1\3\0\1\1\2\0\21\1\1\0\42\1\5\0" + + "\1\1\2\0\17\1\1\0\30\1\3\0\7\1\1\0" + "\23\1\3\0\3\1\1\11\21\1\1\11\1\0\1\11" + "\45\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[624]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Type specific to JSPTokenMaker denoting a line ending with an unclosed * double-quote attribute. */ - public static final int INTERNAL_ATTR_DOUBLE = -1; - - + public static final int INTERNAL_ATTR_DOUBLE = -1; /** * Type specific to JSPTokenMaker denoting a line ending with an unclosed * single-quote attribute. */ - public static final int INTERNAL_ATTR_SINGLE = -2; - - + public static final int INTERNAL_ATTR_SINGLE = -2; /** * Token type specific to this class; this signals that the user has * ended a line with an unclosed XML tag; thus a new line is beginning * still inside of the tag. */ - public static final int INTERNAL_INTAG = -3; - + public static final int INTERNAL_INTAG = -3; /** * Token type specific to this class; this signals that the user has * ended a line with an unclosed Script tag; thus a new line is beginning * still inside of the tag. */ - public static final int INTERNAL_INTAG_SCRIPT = -4; - + public static final int INTERNAL_INTAG_SCRIPT = -4; /** * Token type specific to this class; this signals that the user has * ended a line in the middle of a double-quoted attribute in a Script * tag. */ - public static final int INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT = -5; - + public static final int INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT = -5; /** * Token type specific to this class; this signals that the user has * ended a line in the middle of a single-quoted attribute in a Script * tag. */ - public static final int INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT = -6; - + public static final int INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT = -6; /** * Token type specific to this class; this signals that the user has * ended a line in an ActionScript code block (text content inside a * Script tag). */ - public static final int INTERNAL_IN_AS = -7; - + public static final int INTERNAL_IN_AS = -7; /** * Token type specific to this class; this signals that the user has * ended a line in an MLC in an ActionScript code block (text content * inside a Script tag). */ - public static final int INTERNAL_IN_AS_MLC = -8; - + public static final int INTERNAL_IN_AS_MLC = -8; /** * Whether closing markup tags are automatically completed for HTML. */ private static boolean completeCloseTags; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public MxmlTokenMaker() { - } - - + public MxmlTokenMaker() {} + static { completeCloseTags = true; } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** - * Returns whether markup close tags should be completed. For XML, the + * Returns whether markup close tags should be completed. For XML, the * default value is true. * * @return Whether closing markup tags are completed. @@ -2004,10 +1189,9 @@ public class MxmlTokenMaker extends AbstractMarkupTokenMaker { public boolean getCompleteCloseTags() { return completeCloseTags; } - - + /** - * Static version of {@link #getCompleteCloseTags()}. This hack is + * Static version of {@link #getCompleteCloseTags()}. This hack is * unfortunately needed for applications to be able to query this value * without instantiating this class. * @@ -2017,13 +1201,13 @@ public class MxmlTokenMaker extends AbstractMarkupTokenMaker { public static boolean getCompleteCloseMarkupTags() { return completeCloseTags; } - - + /** * Always returns false, as you never want "mark occurrences" * working in XML files. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @@ -2031,26 +1215,26 @@ public class MxmlTokenMaker extends AbstractMarkupTokenMaker { public boolean getMarkOccurrencesOfTokenType(int type) { return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -2105,7 +1289,6 @@ public class MxmlTokenMaker extends AbstractMarkupTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -2115,32 +1298,29 @@ public class MxmlTokenMaker extends AbstractMarkupTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Sets whether markup close tags should be completed. * - * @param complete Whether closing markup tags are completed. + * @param complete + * Whether closing markup tags are completed. * @see #getCompleteCloseTags() */ public static void setCompleteCloseTags(boolean complete) { completeCloseTags = complete; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -2149,7 +1329,8 @@ public class MxmlTokenMaker extends AbstractMarkupTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -2158,569 +1339,686 @@ public class MxmlTokenMaker extends AbstractMarkupTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 MxmlTokenMaker(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 MxmlTokenMaker(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 < 190) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 2: { + addToken(Token.IDENTIFIER); + } + case 59: + break; + case 53: { + addToken(Token.LITERAL_BOOLEAN); + } + case 60: + break; + case 29: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_AS); + return firstToken; + } + case 61: + break; + case 50: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 62: + break; + case 51: { + addToken(Token.ERROR_CHAR); + } + case 63: + break; + case 34: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 64: + break; + case 24: { + addEndToken(INTERNAL_IN_AS); + return firstToken; + } + case 65: + break; + case 19: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE_SCRIPT); + } + case 66: + break; + case 13: { + yybegin(YYINITIAL); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 67: + break; + case 26: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 68: + break; + case 38: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 69: + break; + case 54: { + addToken(Token.FUNCTION); + } + case 70: + break; + case 43: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 2), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(INTAG); + } + case 71: + break; + case 31: { + start = zzMarkedPos - 2; + yybegin(DTD); + } + case 72: + break; + case 27: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 73: + break; + case 21: { + yybegin(INTAG_SCRIPT); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 74: + break; + case 57: { + addToken(Token.MARKUP_CDATA_DELIMITER); + start = zzMarkedPos; + yybegin(CDATA); + } + case 75: + break; + case 22: { + addToken(Token.ERROR_IDENTIFIER); + } + case 76: + break; + case 4: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(INTAG); + } + case 77: + break; + case 28: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_AS_MLC); + return firstToken; + } + case 78: + break; + case 46: { + addToken(Token.MARKUP_CDATA_DELIMITER); + } + case 79: + break; + case 45: { + int temp = zzStartRead; + yybegin(YYINITIAL); + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + addToken(temp, zzMarkedPos - 1, Token.MARKUP_CDATA_DELIMITER); + } + case 80: + break; + case 17: { + yybegin(INTAG); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 81: + break; + case 37: { + addToken(Token.LITERAL_CHAR); + } + case 82: + break; + case 32: { + start = zzMarkedPos - 2; + yybegin(PI); + } + case 83: + break; + case 15: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE); + } + case 84: + break; + case 42: { + yybegin(AS); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 85: + break; + case 7: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + return firstToken; + } + case 86: + break; + case 9: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + return firstToken; + } + case 87: + break; + case 36: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 88: + break; + case 8: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 89: + break; + case 20: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE_SCRIPT); + } + case 90: + break; + case 41: { + start = zzMarkedPos - 2; + yybegin(AS_MLC); + } + case 91: + break; + case 16: { + addToken(Token.MARKUP_TAG_DELIMITER); /* + * Not valid but + * we'll still + * accept it + */ + } + case 92: + break; + case 5: { + addToken(Token.WHITESPACE); + } + case 93: + break; + case 30: { + int count = yylength(); + String tag = yytext(); // Get before addToken calls + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 1), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + if (tag.endsWith(":Script") || tag.equals("' + while (Character.isWhitespace(text.charAt(tagNameEnd))) { + tagNameEnd--; + } + int tagNameLen = tagNameEnd - 1; + yybegin(YYINITIAL); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(origStart + 2, origStart + 2 + tagNameLen - 1, Token.MARKUP_TAG_NAME); + if (tagNameEnd < text.length() - 2) { + addToken(origStart + tagNameEnd + 1, zzMarkedPos - 2, Token.WHITESPACE); + } + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 114: + break; + case 47: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 115: + break; + case 1: {} + case 116: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case AS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_AS); + return firstToken; + } + case 625: + break; + case AS_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_AS_MLC); + return firstToken; + } + case 626: + break; + case INTAG_SCRIPT: { + addToken(start, zzStartRead - 1, INTERNAL_INTAG_SCRIPT); + return firstToken; + } + case 627: + break; + case INATTR_DOUBLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT); + return firstToken; + } + case 628: + break; + case CDATA: { + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + return firstToken; + } + case 629: + break; + case INATTR_SINGLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT); + return firstToken; + } + case 630: + break; + case DTD: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + return firstToken; + } + case 631: + break; + case INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE); + return firstToken; + } + case 632: + break; + case INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE); + return firstToken; + } + case 633: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 634: + break; + case AS: { + addEndToken(INTERNAL_IN_AS); + return firstToken; + } + case 635: + break; + case INTAG: { + addToken(start, zzStartRead - 1, INTERNAL_INTAG); + return firstToken; + } + case 636: + break; + case COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + return firstToken; + } + case 637: + break; + case PI: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 638: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 MxmlTokenMaker(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 MxmlTokenMaker(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 < 190) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 2: - { addToken(Token.IDENTIFIER); - } - case 59: break; - case 53: - { addToken(Token.LITERAL_BOOLEAN); - } - case 60: break; - case 29: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addEndToken(INTERNAL_IN_AS); return firstToken; - } - case 61: break; - case 50: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 62: break; - case 51: - { addToken(Token.ERROR_CHAR); - } - case 63: break; - case 34: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 64: break; - case 24: - { addEndToken(INTERNAL_IN_AS); return firstToken; - } - case 65: break; - case 19: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE_SCRIPT); - } - case 66: break; - case 13: - { yybegin(YYINITIAL); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 67: break; - case 26: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 68: break; - case 38: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 69: break; - case 54: - { addToken(Token.FUNCTION); - } - case 70: break; - case 43: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-2), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(INTAG); - } - case 71: break; - case 31: - { start = zzMarkedPos-2; yybegin(DTD); - } - case 72: break; - case 27: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 73: break; - case 21: - { yybegin(INTAG_SCRIPT); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 74: break; - case 57: - { addToken(Token.MARKUP_CDATA_DELIMITER); start = zzMarkedPos; yybegin(CDATA); - } - case 75: break; - case 22: - { addToken(Token.ERROR_IDENTIFIER); - } - case 76: break; - case 4: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(INTAG); - } - case 77: break; - case 28: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_AS_MLC); return firstToken; - } - case 78: break; - case 46: - { addToken(Token.MARKUP_CDATA_DELIMITER); - } - case 79: break; - case 45: - { int temp=zzStartRead; yybegin(YYINITIAL); addToken(start,zzStartRead-1, Token.MARKUP_CDATA); addToken(temp,zzMarkedPos-1, Token.MARKUP_CDATA_DELIMITER); - } - case 80: break; - case 17: - { yybegin(INTAG); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 81: break; - case 37: - { addToken(Token.LITERAL_CHAR); - } - case 82: break; - case 32: - { start = zzMarkedPos-2; yybegin(PI); - } - case 83: break; - case 15: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE); - } - case 84: break; - case 42: - { yybegin(AS); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 85: break; - case 7: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); return firstToken; - } - case 86: break; - case 9: - { addToken(start,zzStartRead-1, Token.MARKUP_DTD); return firstToken; - } - case 87: break; - case 36: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 88: break; - case 8: - { addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 89: break; - case 20: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE_SCRIPT); - } - case 90: break; - case 41: - { start = zzMarkedPos-2; yybegin(AS_MLC); - } - case 91: break; - case 16: - { addToken(Token.MARKUP_TAG_DELIMITER); /* Not valid but we'll still accept it */ - } - case 92: break; - case 5: - { addToken(Token.WHITESPACE); - } - case 93: break; - case 30: - { int count = yylength(); - String tag = yytext(); // Get before addToken calls - addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-1), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - if (tag.endsWith(":Script") || tag.equals("' - while (Character.isWhitespace(text.charAt(tagNameEnd))) { - tagNameEnd--; - } - int tagNameLen = tagNameEnd - 1; - yybegin(YYINITIAL); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(origStart+2,origStart+2+tagNameLen-1, Token.MARKUP_TAG_NAME); - if (tagNameEnd + * Scanner for NSIS installer scripts. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated NSISTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated NSISTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 1.0 * */ - public class NSISTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 5; - public static final int STRING = 1; - public static final int CHAR_LITERAL = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 4; - public static final int BACKTICKS = 3; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\16\1\15\1\0\1\16\1\75\22\0\1\16\1\42\1\10"+ - "\1\11\1\13\1\41\1\44\1\51\2\31\1\17\1\33\1\52\1\34"+ - "\1\32\1\14\1\4\1\72\1\73\1\74\1\74\1\6\1\6\1\6"+ - "\1\3\1\3\1\45\1\20\1\35\1\36\1\40\1\43\1\50\1\26"+ - "\1\5\1\60\1\62\1\24\1\25\1\63\1\53\1\55\1\1\1\66"+ - "\1\27\1\64\1\57\1\61\1\54\1\71\1\23\1\30\1\22\1\7"+ - "\1\70\1\56\1\21\1\67\1\65\1\31\1\12\1\31\1\37\1\2"+ - "\1\76\1\26\1\5\1\60\1\62\1\24\1\77\1\63\1\100\1\55"+ - "\1\1\1\66\1\27\1\64\1\57\1\61\1\54\1\71\1\23\1\30"+ - "\1\22\1\7\1\70\1\101\1\21\1\67\1\65\1\46\1\37\1\47"+ - "\1\43\uff81\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 = - "\6\0\2\1\2\2\2\1\1\3\1\4\1\1\1\5"+ - "\1\6\1\7\1\5\2\1\1\10\2\1\1\10\2\1"+ - "\1\11\7\5\1\12\3\1\1\10\11\1\1\13\1\14"+ - "\1\15\1\16\1\14\1\17\1\14\1\20\1\21\1\22"+ - "\1\14\1\23\1\14\1\24\1\25\1\14\1\26\10\14"+ - "\1\27\6\14\1\0\1\30\1\31\1\30\6\1\2\10"+ - "\5\1\1\0\10\1\1\32\17\1\2\10\23\1\14\0"+ - "\45\1\1\33\1\34\1\0\1\35\1\0\1\36\4\14"+ - "\4\0\4\14\5\0\1\31\17\1\1\0\11\1\1\0"+ - "\33\1\1\10\12\1\1\10\13\1\10\0\1\37\2\0"+ - "\1\37\3\0\7\1\1\40\26\1\1\10\16\1\1\10"+ - "\20\1\4\0\4\14\4\0\4\14\5\0\14\1\1\0"+ - "\6\1\1\41\1\1\1\42\11\1\1\40\4\1\1\40"+ - "\1\1\1\10\34\1\1\10\5\1\16\0\1\10\30\1"+ - "\1\40\43\1\2\0\1\34\2\0\1\35\3\14\1\43"+ - "\2\0\3\14\1\44\3\0\11\1\1\0\101\1\14\0"+ - "\61\1\1\10\11\1\4\0\1\14\2\0\1\14\3\0"+ - "\10\1\1\0\41\1\1\40\22\1\1\10\1\1\7\0"+ - "\1\37\3\1\1\40\25\1\1\40\32\1\4\0\12\1"+ - "\1\0\30\1\1\10\20\1\1\37\6\1\5\0\55\1"+ - "\4\0\7\1\1\0\11\1\1\37\1\1\1\40\42\1"+ - "\3\0\2\1\1\40\45\1\2\0\44\1\3\0\60\1"+ - "\1\40\13\1\1\37\4\1\3\0\2\1\1\40\45\1"+ - "\1\40\6\1\1\0\10\1\1\40\147\1"; - - private static int [] zzUnpackAction() { - int [] result = new int[1321]; - 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\102\0\204\0\306\0\u0108\0\u014a\0\u018c\0\u01ce"+ - "\0\u0210\0\u0252\0\u0294\0\u02d6\0\u018c\0\u018c\0\u0318\0\u035a"+ - "\0\u018c\0\u039c\0\u03de\0\u0420\0\u0462\0\u04a4\0\u04e6\0\u0528"+ - "\0\u056a\0\u05ac\0\u05ee\0\u018c\0\u0630\0\u0672\0\u06b4\0\u06f6"+ - "\0\u0738\0\u018c\0\u077a\0\u018c\0\u07bc\0\u07fe\0\u0840\0\u0882"+ - "\0\u08c4\0\u0906\0\u0948\0\u098a\0\u09cc\0\u0a0e\0\u0a50\0\u0a92"+ - "\0\u0ad4\0\u018c\0\u0b16\0\u018c\0\u0b58\0\u0b9a\0\u018c\0\u0bdc"+ - "\0\u0b58\0\u018c\0\u018c\0\u0c1e\0\u0b58\0\u0c60\0\u018c\0\u018c"+ - "\0\u0ca2\0\u018c\0\u0ce4\0\u0d26\0\u0d68\0\u0daa\0\u0dec\0\u0e2e"+ - "\0\u0e70\0\u0eb2\0\u018c\0\u0ef4\0\u0f36\0\u0f78\0\u0fba\0\u0ffc"+ - "\0\u103e\0\u1080\0\u10c2\0\u1104\0\u1146\0\u1188\0\u11ca\0\u120c"+ - "\0\u124e\0\u1290\0\u12d2\0\u01ce\0\u018c\0\u1314\0\u1356\0\u1398"+ - "\0\u13da\0\u141c\0\u145e\0\u14a0\0\u14e2\0\u1524\0\u1566\0\u15a8"+ - "\0\u15ea\0\u162c\0\u166e\0\u16b0\0\u16f2\0\u1734\0\u1776\0\u17b8"+ - "\0\u17fa\0\u183c\0\u187e\0\u18c0\0\u1902\0\u1944\0\u1986\0\u19c8"+ - "\0\u1a0a\0\u1a4c\0\u1a8e\0\u1ad0\0\u1b12\0\u1b54\0\u1b96\0\u1bd8"+ - "\0\u1c1a\0\u1c5c\0\u1c9e\0\u1ce0\0\u1d22\0\u1d64\0\u1da6\0\u1de8"+ - "\0\u1e2a\0\u1e6c\0\u1eae\0\u1ef0\0\u1f32\0\u1f74\0\u1fb6\0\u1ff8"+ - "\0\u03de\0\u203a\0\u207c\0\u20be\0\u2100\0\u2142\0\u2184\0\u21c6"+ - "\0\u2208\0\u224a\0\u228c\0\u22ce\0\u2310\0\u2352\0\u2394\0\u23d6"+ - "\0\u2418\0\u245a\0\u249c\0\u24de\0\u2520\0\u2562\0\u25a4\0\u25e6"+ - "\0\u2628\0\u266a\0\u26ac\0\u26ee\0\u2730\0\u2772\0\u27b4\0\u27f6"+ - "\0\u2838\0\u287a\0\u28bc\0\u28fe\0\u2940\0\u2982\0\u29c4\0\u2a06"+ - "\0\u2a48\0\u2a8a\0\u2acc\0\u2b0e\0\u2b50\0\u2b92\0\u2bd4\0\u2c16"+ - "\0\u2c58\0\u018c\0\u2c9a\0\u2cdc\0\u2d1e\0\u2d60\0\u018c\0\u2da2"+ - "\0\u2de4\0\u2e26\0\u2e68\0\u2eaa\0\u2eec\0\u2f2e\0\u2f70\0\u2fb2"+ - "\0\u2ff4\0\u3036\0\u3078\0\u30ba\0\u30fc\0\u313e\0\u3180\0\u31c2"+ - "\0\u1146\0\u3204\0\u3246\0\u3288\0\u32ca\0\u330c\0\u334e\0\u3390"+ - "\0\u33d2\0\u3414\0\u1ad0\0\u3456\0\u3498\0\u34da\0\u351c\0\u355e"+ - "\0\u35a0\0\u35e2\0\u3624\0\u3666\0\u36a8\0\u36ea\0\u372c\0\u376e"+ - "\0\u37b0\0\u37f2\0\u3834\0\u3876\0\u38b8\0\u38fa\0\u393c\0\u397e"+ - "\0\u39c0\0\u3a02\0\u3a44\0\u3a86\0\u3ac8\0\u3b0a\0\u3b4c\0\u3b8e"+ - "\0\u3bd0\0\u3c12\0\u3c54\0\u3c96\0\u3cd8\0\u3d1a\0\u3d5c\0\u3d9e"+ - "\0\u3de0\0\u3e22\0\u3e64\0\u3ea6\0\u3ee8\0\u3f2a\0\u3f6c\0\u3fae"+ - "\0\u3ff0\0\u4032\0\u4074\0\u40b6\0\u40f8\0\u413a\0\u417c\0\u41be"+ - "\0\u4200\0\u4242\0\u4284\0\u42c6\0\u4308\0\u434a\0\u438c\0\u43ce"+ - "\0\u4410\0\u4452\0\u4494\0\u44d6\0\u4518\0\u455a\0\u459c\0\u45de"+ - "\0\u4620\0\u4662\0\u46a4\0\u46e6\0\u4728\0\u476a\0\u47ac\0\u47ee"+ - "\0\u018c\0\u4830\0\u4872\0\u48b4\0\u48f6\0\u4938\0\u497a\0\u49bc"+ - "\0\u49fe\0\u4a40\0\u4a82\0\u01ce\0\u4ac4\0\u4b06\0\u4b48\0\u4b8a"+ - "\0\u4bcc\0\u4c0e\0\u4c50\0\u4c92\0\u4cd4\0\u4d16\0\u4d58\0\u4d9a"+ - "\0\u4ddc\0\u4e1e\0\u4e60\0\u4ea2\0\u4ee4\0\u4f26\0\u4f68\0\u4faa"+ - "\0\u4fec\0\u502e\0\u5070\0\u50b2\0\u50f4\0\u5136\0\u5178\0\u51ba"+ - "\0\u51fc\0\u523e\0\u5280\0\u52c2\0\u5304\0\u5346\0\u5388\0\u53ca"+ - "\0\u540c\0\u544e\0\u5490\0\u54d2\0\u5514\0\u5556\0\u5598\0\u55da"+ - "\0\u561c\0\u565e\0\u56a0\0\u56e2\0\u5724\0\u5766\0\u57a8\0\u57ea"+ - "\0\u582c\0\u586e\0\u58b0\0\u58f2\0\u5934\0\u5976\0\u59b8\0\u59fa"+ - "\0\u5a3c\0\u5a7e\0\u5ac0\0\u5b02\0\u5b44\0\u5b86\0\u5bc8\0\u5c0a"+ - "\0\u5c4c\0\u5c8e\0\u5cd0\0\u5d12\0\u5d54\0\u5d96\0\u5dd8\0\u5e1a"+ - "\0\u5e5c\0\u5e9e\0\u5ee0\0\u5f22\0\u5f64\0\u5fa6\0\u5fe8\0\u602a"+ - "\0\u606c\0\u60ae\0\u60f0\0\u6132\0\u6174\0\u61b6\0\u61f8\0\u544e"+ - "\0\u623a\0\u627c\0\u018c\0\u62be\0\u01ce\0\u6300\0\u6342\0\u6384"+ - "\0\u63c6\0\u6408\0\u644a\0\u648c\0\u64ce\0\u6510\0\u6552\0\u6594"+ - "\0\u65d6\0\u6618\0\u665a\0\u669c\0\u66de\0\u6720\0\u6762\0\u67a4"+ - "\0\u67e6\0\u6828\0\u686a\0\u68ac\0\u68ee\0\u6930\0\u6972\0\u69b4"+ - "\0\u69f6\0\u6a38\0\u6a7a\0\u6abc\0\u6afe\0\u6b40\0\u6b82\0\u6bc4"+ - "\0\u6c06\0\u6c48\0\u6c8a\0\u6ccc\0\u6d0e\0\u6d50\0\u6d92\0\u6dd4"+ - "\0\u6e16\0\u6e58\0\u6e9a\0\u6edc\0\u6f1e\0\u6f60\0\u6fa2\0\u6fe4"+ - "\0\u7026\0\u7068\0\u70aa\0\u70ec\0\u712e\0\u7170\0\u71b2\0\u71f4"+ - "\0\u7236\0\u7278\0\u72ba\0\u72fc\0\u733e\0\u7380\0\u24de\0\u73c2"+ - "\0\u7404\0\u7446\0\u7488\0\u74ca\0\u750c\0\u754e\0\u7590\0\u75d2"+ - "\0\u7614\0\u7656\0\u7698\0\u76da\0\u771c\0\u775e\0\u77a0\0\u77e2"+ - "\0\u7824\0\u7866\0\u78a8\0\u78ea\0\u792c\0\u796e\0\u79b0\0\u79f2"+ - "\0\u7a34\0\u7a76\0\u7ab8\0\u7afa\0\u7b3c\0\u7b7e\0\u7bc0\0\u7c02"+ - "\0\u7c44\0\u7c86\0\u7cc8\0\u7d0a\0\u7d4c\0\u7d8e\0\u7dd0\0\u7e12"+ - "\0\u7e54\0\u7e96\0\u7ed8\0\u7f1a\0\u7f5c\0\u7f9e\0\u7fe0\0\u8022"+ - "\0\u8064\0\u80a6\0\u80e8\0\u812a\0\u816c\0\u81ae\0\u81f0\0\u8232"+ - "\0\u8274\0\u82b6\0\u82f8\0\u833a\0\u837c\0\u018c\0\u83be\0\u8400"+ - "\0\u018c\0\u8442\0\u8484\0\u84c6\0\u8508\0\u854a\0\u858c\0\u85ce"+ - "\0\u8610\0\u8652\0\u8694\0\u86d6\0\u8718\0\u875a\0\u879c\0\u87de"+ - "\0\u8820\0\u8862\0\u88a4\0\u88e6\0\u8928\0\u896a\0\u89ac\0\u89ee"+ - "\0\u8a30\0\u8a72\0\u8ab4\0\u8af6\0\u8b38\0\u8b7a\0\u8bbc\0\u8bfe"+ - "\0\u8c40\0\u8c82\0\u8cc4\0\u8d06\0\u8d48\0\u8d8a\0\u8dcc\0\u8e0e"+ - "\0\u8e50\0\u8e92\0\u8ed4\0\u8f16\0\u8f58\0\u8f9a\0\u8fdc\0\u901e"+ - "\0\u9060\0\u90a2\0\u90e4\0\u9126\0\u9168\0\u91aa\0\u91ec\0\u922e"+ - "\0\u9270\0\u92b2\0\u92f4\0\u9336\0\u9378\0\u93ba\0\u93fc\0\u943e"+ - "\0\u9480\0\u94c2\0\u9504\0\u9546\0\u9588\0\u95ca\0\u960c\0\u964e"+ - "\0\u9690\0\u96d2\0\u9714\0\u9756\0\u9798\0\u97da\0\u981c\0\u985e"+ - "\0\u98a0\0\u98e2\0\u9924\0\u9966\0\u99a8\0\u99ea\0\u9a2c\0\u9a6e"+ - "\0\u9ab0\0\u9af2\0\u9b34\0\u9b76\0\u9bb8\0\u9bfa\0\u9c3c\0\u9c7e"+ - "\0\u9cc0\0\u9d02\0\u9d44\0\u9d86\0\u9dc8\0\u9e0a\0\u9e4c\0\u9e8e"+ - "\0\u9ed0\0\u9f12\0\u9f54\0\u9f96\0\u9fd8\0\ua01a\0\ua05c\0\ua09e"+ - "\0\ua0e0\0\ua122\0\ua164\0\ua1a6\0\ua1e8\0\ua22a\0\ua26c\0\ua2ae"+ - "\0\ua2f0\0\ua332\0\ua374\0\ua3b6\0\ua3f8\0\ua43a\0\ua47c\0\ua4be"+ - "\0\ua500\0\ua542\0\ua584\0\ua5c6\0\ua608\0\ua64a\0\ua68c\0\ua6ce"+ - "\0\ua710\0\ua752\0\ua794\0\ua7d6\0\ua818\0\ua85a\0\ua89c\0\ua8de"+ - "\0\ua920\0\ua962\0\ua9a4\0\ua9e6\0\uaa28\0\uaa6a\0\uaaac\0\uaaee"+ - "\0\uab30\0\uab72\0\uabb4\0\uabf6\0\uac38\0\uac7a\0\uacbc\0\uacfe"+ - "\0\uad40\0\uad82\0\uadc4\0\uae06\0\uae48\0\u8508\0\uae8a\0\uaecc"+ - "\0\u8694\0\uaf0e\0\uaf50\0\uaf92\0\uafd4\0\ub016\0\ub058\0\ub09a"+ - "\0\ub0dc\0\ub11e\0\ub160\0\ub1a2\0\ub1e4\0\ub226\0\ub268\0\ub2aa"+ - "\0\ub2ec\0\ub32e\0\ub370\0\ub3b2\0\ub3f4\0\ub436\0\ub478\0\ub4ba"+ - "\0\ub4fc\0\ub53e\0\ub580\0\ub5c2\0\ub604\0\ub646\0\ub688\0\ub6ca"+ - "\0\ub70c\0\ub74e\0\ub790\0\ub7d2\0\ub814\0\ub856\0\ub898\0\ub8da"+ - "\0\ub91c\0\ub95e\0\ub9a0\0\ub9e2\0\uba24\0\uba66\0\ubaa8\0\ubaea"+ - "\0\ubb2c\0\ubb6e\0\ubbb0\0\ubbf2\0\ubc34\0\ubc76\0\ubcb8\0\ubcfa"+ - "\0\ubd3c\0\ubd7e\0\ubdc0\0\ube02\0\ube44\0\ube86\0\ubec8\0\ubf0a"+ - "\0\ubf4c\0\ubf8e\0\ubfd0\0\uc012\0\uc054\0\uc096\0\uc0d8\0\uc11a"+ - "\0\uc15c\0\uc19e\0\uc1e0\0\uc222\0\uc264\0\uc2a6\0\uc2e8\0\uc32a"+ - "\0\uc36c\0\uc3ae\0\uc3f0\0\uc432\0\uc474\0\uc4b6\0\uc4f8\0\uc53a"+ - "\0\uc57c\0\uc5be\0\uc600\0\uc642\0\uc684\0\uc6c6\0\uc708\0\uc74a"+ - "\0\uc78c\0\uc7ce\0\uc810\0\uc852\0\uc894\0\uc8d6\0\uc918\0\uc95a"+ - "\0\uc99c\0\uc9de\0\uca20\0\uca62\0\ucaa4\0\ucae6\0\ucb28\0\ucb6a"+ - "\0\ucbac\0\ucbee\0\ucc30\0\ucc72\0\uccb4\0\uccf6\0\ucd38\0\ucd7a"+ - "\0\ucdbc\0\ucdfe\0\uce40\0\uce82\0\ucec4\0\ucf06\0\ucf48\0\ucf8a"+ - "\0\ucfcc\0\ud00e\0\ud050\0\ud092\0\ud0d4\0\ud116\0\ud158\0\ud19a"+ - "\0\ud1dc\0\ud21e\0\ud260\0\ud2a2\0\ud2e4\0\u5070\0\ud326\0\ud368"+ - "\0\ud3aa\0\ud3ec\0\ud42e\0\ud470\0\ud4b2\0\ud4f4\0\ud536\0\ud578"+ - "\0\ud5ba\0\ud5fc\0\ud63e\0\ud680\0\ud6c2\0\ud704\0\ud746\0\ud788"+ - "\0\ud7ca\0\ud80c\0\ud84e\0\ud890\0\ud8d2\0\ud914\0\ud956\0\ud998"+ - "\0\ud9da\0\uda1c\0\uda5e\0\udaa0\0\udae2\0\udb24\0\udb66\0\udba8"+ - "\0\udbea\0\udc2c\0\udc6e\0\udcb0\0\udcf2\0\udd34\0\udd76\0\uddb8"+ - "\0\uddfa\0\ude3c\0\ude7e\0\udec0\0\udf02\0\udf44\0\udf86\0\udfc8"+ - "\0\ue00a\0\ue04c\0\ue08e\0\uba66\0\ue0d0\0\ue112\0\ue154\0\ue196"+ - "\0\ue1d8\0\ue21a\0\ue25c\0\ue29e\0\ue2e0\0\ue322\0\ue364\0\ue3a6"+ - "\0\ue3e8\0\ue42a\0\ue46c\0\ue4ae\0\ue4f0\0\ue532\0\ue574\0\ue5b6"+ - "\0\ue5f8\0\ue63a\0\ue67c\0\ue6be\0\ue700\0\ue742\0\ue784\0\ue7c6"+ - "\0\ue808\0\ue84a\0\ue88c\0\ue8ce\0\ue910\0\ue952\0\ue994\0\ue9d6"+ - "\0\uea18\0\uea5a\0\uea9c\0\ueade\0\ueb20\0\ueb62\0\ueba4\0\uebe6"+ - "\0\uec28\0\uec6a\0\uecac\0\uecee\0\ued30\0\ued72\0\uedb4\0\uedf6"+ - "\0\uee38\0\uee7a\0\ueebc\0\ueefe\0\uef40\0\uef82\0\uefc4\0\uf006"+ - "\0\uf048\0\uf08a\0\uf0cc\0\uf10e\0\uf150\0\uf192\0\uf1d4\0\uf216"+ - "\0\uf258\0\uf29a\0\uf2dc\0\uf31e\0\uf360\0\uf3a2\0\uf3e4\0\uf426"+ - "\0\uf468\0\uf4aa\0\uf4ec\0\uf52e\0\uf570\0\uf5b2\0\uf5f4\0\uf636"+ - "\0\uf678\0\uf6ba\0\uf6fc\0\uf73e\0\uf780\0\uf7c2\0\uf804\0\uf846"+ - "\0\uf888\0\uf8ca\0\uf90c\0\uf94e\0\uf990\0\uf9d2\0\ufa14\0\ufa56"+ - "\0\ufa98\0\ufada\0\ufb1c\0\ufb5e\0\ufba0\0\ufbe2\0\ufc24\0\ufc66"+ - "\0\ufca8\0\ufcea\0\ufd2c\0\ufd6e\0\ufdb0\0\ufdf2\0\ufe34\0\ufe76"+ - "\0\ufeb8\0\ufefa\0\uff3c\0\uff7e\0\uffc0\1\2\1\104\1\206"+ - "\1\310\1\u010a\1\u014c\1\u018e\1\u01d0\1\u0212\0\uaaac\1\u0254"+ - "\1\u0296\1\u02d8\1\u031a\1\u035c\1\u039e\1\u03e0\1\u0422\1\u0464"+ - "\1\u04a6\1\u04e8\1\u052a\1\u056c\1\u05ae\1\u05f0\1\u0632\1\u0674"+ - "\1\u06b6\1\u06f8\1\u073a\1\u077c\1\u07be\1\u0800\1\u0842\1\u0884"+ - "\1\u08c6\1\u0908\1\u094a\1\u098c\1\u09ce\1\u0a10\1\u0a52\1\u0a94"+ - "\1\u0ad6\1\u0b18\1\u0b5a\1\u0b9c\1\u0bde\1\u0c20\1\u0c62\1\u0ca4"+ - "\1\u0ce6\1\u0d28\1\u0d6a\1\u0dac\1\u0dee\1\u0e30\1\u0e72\1\u0eb4"+ - "\1\u0ef6\1\u0f38\1\u0f7a\1\u0fbc\1\u0ffe\1\u1040\1\u1082\1\u10c4"+ - "\1\u1106\1\u1148\1\u118a\1\u11cc\1\u120e\1\u1250\1\u1292\1\u12d4"+ - "\1\u1316\1\u1358\1\u139a\1\u13dc\1\u141e\1\u1460\1\u14a2\1\u14e4"+ - "\1\u1526\1\u1568\1\u15aa\1\u15ec\1\u162e\1\u1670\1\u16b2\1\u16f4"+ - "\1\u1736\1\u1778\1\u17ba\1\u17fc\1\u183e\1\u1880\1\u18c2\1\u1904"+ - "\1\u1946\1\u1988\1\u19ca\1\u1a0c\1\u1a4e\1\u1a90\1\u1ad2\1\u1b14"+ - "\1\u1b56\1\u1b98\1\u1bda\1\u1c1c\1\u1c5e\1\u1ca0\1\u1ce2\1\u1d24"+ - "\1\u1d66\1\u1da8\1\u1dea\1\u1e2c\1\u1e6e\1\u1eb0\1\u1ef2\1\u1f34"+ - "\1\u1f76\0\u01ce\1\u1fb8\1\u1ffa\1\u203c\1\u207e\1\u20c0\1\u2102"+ - "\1\u2144\1\u2186\1\u21c8\1\u220a\1\u224c\1\u228e\1\u22d0\1\u2312"+ - "\1\u2354\1\u2396\1\u23d8\1\u241a\1\u245c\1\u249e\1\u24e0\1\u2522"+ - "\1\u2564\1\u25a6\1\u25e8\1\u262a\1\u266c\1\u26ae\1\u26f0\1\u2732"+ - "\1\u2774\1\u27b6\1\u27f8\1\u283a\1\u287c\1\u28be\1\u2900\1\u2942"+ - "\1\u2984\1\u29c6\1\u2a08\1\u2a4a\1\u2a8c\1\u2ace\1\u2b10\1\u2b52"+ - "\1\u2b94\0\uf52e\1\u2bd6\1\u2c18\1\u2c5a\1\u2c9c\1\u2cde\1\u2d20"+ - "\1\u2d62\1\u2da4\1\u2de6\1\u2e28\1\u2e6a\1\u2eac\1\u2eee\1\u2f30"+ - "\1\u2f72\1\u2fb4\1\u2ff6\1\u3038\1\u307a\1\u30bc\1\u30fe\1\u3140"+ - "\1\u3182\1\u31c4\1\u3206\1\u3248\1\u328a\1\u32cc\1\u330e\1\u3350"+ - "\1\u3392\1\u33d4\1\u3416\1\u3458\1\u349a\1\u34dc\1\u351e\1\u3560"+ - "\1\u35a2\1\u35e4\1\u3626\1\u3668\1\u36aa\1\u36ec\1\u372e\1\u3770"+ - "\1\u37b2\1\u37f4\1\u3836\1\u3878\1\u38ba\1\u38fc\1\u393e\1\u3980"+ - "\1\u39c2\1\u3a04\1\u3a46\1\u3a88\1\u3aca\1\u3b0c\1\u3b4e\1\u3b90"+ - "\1\u3bd2\1\u3c14\1\u3c56\1\u3c98\1\u3cda\1\u3d1c\1\u3d5e\1\u3da0"+ - "\1\u3de2\1\u3e24\1\u3e66\1\u3ea8\1\u3eea\1\u3f2c\1\u3f6e\1\u3fb0"+ - "\1\u3ff2\1\u4034\1\u4076\1\u40b8\1\u40fa\1\u413c\1\u417e\1\u41c0"+ - "\1\u4202\1\u4244\1\u4286\1\u42c8\1\u430a\1\u434c\1\u438e\1\u43d0"+ - "\1\u4412\1\u4454\1\u4496\1\u44d8\1\u451a\1\u455c\1\u459e\1\u45e0"+ - "\1\u4622\1\u4664\1\u46a6\1\u46e8\1\u472a\1\u476c\1\u47ae\1\u47f0"+ - "\1\u4832\1\u4874\1\u48b6\1\u48f8\1\u493a\1\u497c\1\u49be\1\u4a00"+ - "\1\u4a42"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[1321]; - 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 = - "\1\7\2\10\1\11\1\12\1\13\1\11\1\14\1\15"+ - "\1\16\1\7\1\17\1\20\1\21\1\22\1\23\1\16"+ - "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33"+ - "\1\34\1\7\1\35\1\36\1\37\2\23\1\40\1\23"+ - "\1\41\1\42\1\43\1\42\2\34\1\7\1\44\1\7"+ - "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54"+ - "\1\55\1\56\1\57\2\10\1\60\1\61\3\11\1\7"+ - "\1\62\1\30\1\45\1\50\10\63\1\64\1\63\1\65"+ - "\1\66\1\63\1\67\64\63\12\70\1\71\1\66\1\70"+ - "\1\72\33\70\1\73\30\70\12\74\1\75\1\76\1\74"+ - "\1\77\60\74\1\100\3\74\15\101\1\102\1\101\1\103"+ - "\5\101\1\104\25\101\1\105\2\101\1\106\20\101\1\107"+ - "\1\110\1\111\15\112\1\113\7\112\1\114\25\112\1\115"+ - "\2\112\1\116\20\112\1\117\1\120\1\121\103\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\3\123\2\11\1\123\1\11\1\123\1\0\3\123"+ - "\5\0\10\123\17\0\1\123\2\0\17\123\3\11\1\0"+ - "\10\123\1\124\1\123\1\124\1\123\1\0\3\123\5\0"+ - "\1\125\7\123\17\0\1\123\2\0\17\123\3\124\1\0"+ - "\4\123\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\126\5\10\22\0\6\10\1\127\1\10\1\130\1\10"+ - "\1\131\7\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\132\22\0\4\10\1\133\15\10"+ - "\2\0\3\10\1\0\2\10\2\134\1\10\1\134\1\10"+ - "\2\0\1\122\1\134\1\10\1\135\3\0\1\10\1\136"+ - "\1\137\1\140\2\10\1\141\1\142\15\0\1\143\4\0"+ - "\1\144\1\145\1\146\1\147\1\10\1\150\1\151\1\152"+ - "\6\10\1\153\3\134\1\135\1\0\1\10\1\144\1\147"+ - "\1\0\7\10\2\0\1\122\2\10\2\0\1\154\1\0"+ - "\10\10\5\0\1\42\14\0\22\10\2\0\3\10\16\0"+ - "\1\22\121\0\1\42\44\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\10\1\155\20\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\156"+ - "\1\157\4\10\22\0\6\10\1\160\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\161"+ - "\1\10\1\162\2\10\22\0\2\10\1\163\3\10\1\134"+ - "\2\10\1\164\10\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\165\7\10\22\0\4\10\1\166"+ - "\15\10\2\0\3\10\1\0\2\10\1\134\2\10\1\134"+ - "\1\167\2\0\1\122\2\10\4\0\5\10\1\170\1\171"+ - "\1\10\22\0\2\10\1\172\3\10\1\173\10\10\1\174"+ - "\1\175\1\134\2\0\3\10\1\0\4\10\1\176\1\10"+ - "\1\177\2\0\1\122\2\10\4\0\2\10\1\200\3\10"+ - "\1\201\1\10\22\0\7\10\1\202\12\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\203"+ - "\1\10\1\204\2\10\22\0\2\10\1\205\3\10\1\206"+ - "\13\10\2\0\3\10\1\0\6\10\1\207\2\0\1\122"+ - "\2\10\4\0\1\10\1\210\1\10\1\211\2\10\1\212"+ - "\1\10\22\0\1\213\1\214\1\215\1\216\5\10\1\217"+ - "\2\10\1\220\5\10\2\0\1\10\1\213\1\216\33\0"+ - "\1\42\2\0\1\42\77\0\1\42\1\0\1\42\100\0"+ - "\1\221\1\42\101\0\1\42\1\0\1\23\50\0\1\222"+ - "\14\0\1\223\1\0\1\224\1\0\1\225\5\0\1\42"+ - "\15\0\1\226\1\227\1\230\1\0\1\231\1\0\1\232"+ - "\1\0\1\233\3\0\1\234\10\0\1\230\36\0\1\42"+ - "\5\0\1\42\36\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\235\10\10\1\236\6\10\2\0"+ - "\3\10\1\0\6\10\1\237\2\0\1\122\2\10\4\0"+ - "\5\10\1\240\1\241\1\10\22\0\6\10\1\242\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\4\10\1\243\2\10\1\244\22\0\4\10\1\245\1\246"+ - "\1\10\1\247\12\10\2\0\1\243\2\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\250\5\10\22\0"+ - "\2\10\1\251\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\252\1\10\1\253\2\10"+ - "\22\0\6\10\1\254\13\10\2\0\3\10\1\0\6\10"+ - "\1\255\2\0\1\122\2\10\4\0\2\10\1\256\1\257"+ - "\1\10\1\260\1\261\1\10\22\0\1\262\5\10\1\263"+ - "\13\10\2\0\1\10\1\262\1\10\1\0\6\10\1\264"+ - "\2\0\1\122\2\10\4\0\4\10\1\265\3\10\22\0"+ - "\4\10\1\134\15\10\2\0\1\265\2\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\266\4\10\22\0"+ - "\2\10\1\267\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\270\4\10\22\0\6\10"+ - "\1\271\13\10\2\0\3\10\1\0\4\10\1\272\2\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\273\1\10\1\274"+ - "\2\10\22\0\2\10\1\275\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\276\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\5\10\1\277\2\10\22\0\2\10\1\300"+ - "\17\10\2\0\3\10\1\0\6\10\1\301\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\10\63"+ - "\1\0\1\63\2\0\1\63\1\0\64\63\15\302\1\0"+ - "\64\302\1\0\2\303\2\0\1\303\1\0\1\303\3\0"+ - "\2\303\4\0\10\303\15\0\1\304\4\0\17\303\5\0"+ - "\3\303\12\70\2\0\1\70\1\0\33\70\1\0\30\70"+ - "\12\74\2\0\1\74\1\0\60\74\1\0\3\74\1\0"+ - "\2\305\2\0\1\305\1\0\1\305\3\0\2\305\4\0"+ - "\10\305\15\0\1\306\4\0\17\305\5\0\3\305\15\101"+ - "\1\0\1\101\1\0\57\101\17\0\1\307\65\0\15\101"+ - "\1\0\1\101\1\0\2\101\1\310\32\101\1\311\21\101"+ - "\3\0\15\101\1\0\1\101\1\0\2\101\1\312\54\101"+ - "\3\0\15\101\1\0\1\101\1\0\36\101\1\313\20\101"+ - "\2\0\1\314\22\0\1\315\32\0\1\316\46\0\1\317"+ - "\135\0\1\314\22\0\1\314\15\112\1\0\61\112\3\0"+ - "\15\112\1\0\4\112\1\320\32\112\1\321\21\112\3\0"+ - "\15\112\1\0\4\112\1\322\54\112\3\0\15\112\1\0"+ - "\40\112\1\323\20\112\2\0\1\324\22\0\1\325\32\0"+ - "\1\326\46\0\1\327\135\0\1\324\22\0\1\324\7\0"+ - "\1\330\72\0\10\123\1\0\3\123\5\0\10\123\17\0"+ - "\1\123\2\0\22\123\1\0\10\123\1\124\1\123\1\124"+ - "\1\123\1\0\3\123\5\0\10\123\17\0\1\123\2\0"+ - "\17\123\3\124\1\0\7\123\4\331\1\123\1\0\3\123"+ - "\5\0\3\123\3\331\2\123\17\0\1\123\2\0\5\123"+ - "\1\331\1\123\1\331\7\123\3\331\1\0\1\123\1\331"+ - "\2\123\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\332\2\10\22\0\2\10\1\333\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\334"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\10\10\1\335\11\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\336\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\337\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\340\5\10\22\0\2\10\1\341"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\342\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\3\10\1\343\3\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\344\7\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\345\2\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\346\6\10\22\0"+ - "\11\10\1\347\2\10\1\350\5\10\2\0\3\10\1\0"+ - "\2\351\2\0\1\351\1\0\1\351\3\0\2\351\4\0"+ - "\10\351\22\0\17\351\5\0\3\351\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\3\10\1\352\16\10"+ - "\2\0\2\10\1\352\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\353\3\10\1\354\1\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\355\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\356\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\11\10\1\357\10\10\2\0"+ - "\3\10\1\0\6\10\1\360\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\361\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\6\10\1\362\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\22\10\2\0\3\10\17\0\1\363"+ - "\63\0\7\10\2\0\1\122\2\10\4\0\7\10\1\364"+ - "\22\0\22\10\2\0\3\10\1\0\6\10\1\365\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\14\10\1\134\5\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\366\7\10\22\0\11\10\1\367\10\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\10\1\134\20\10\2\0\3\10\1\0\4\10\1\370"+ - "\2\10\2\0\1\122\2\10\4\0\1\10\1\371\3\10"+ - "\1\372\1\10\1\373\22\0\4\10\1\374\3\10\1\375"+ - "\5\10\1\376\3\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\7\10\1\377\12\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\10\10\1\u0100\11\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\7\10"+ - "\1\u0101\12\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\134\1\10\1\u0102\4\10\22\0"+ - "\1\10\1\u0103\3\10\1\u0104\14\10\2\0\3\10\1\0"+ - "\6\10\1\u0105\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\7\10\1\134\12\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\4\10\1\u0106\15\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\6\10\1\u0107\1\10\22\0\22\10\2\0\3\10\1\0"+ - "\6\10\1\u0108\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\6\10\1\u0109\1\10\22\0\4\10\1\u010a\15\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u010b\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\2\10\2\134\1\10\1\134\1\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\17\10\3\134\2\0\3\10\1\0"+ - "\3\10\1\134\3\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\17\10\3\134\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u010c\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u010d\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10"+ - "\1\u010e\14\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\134\4\10\1\u010f\1\10\22\0"+ - "\3\10\1\u0110\16\10\2\0\2\10\1\u0110\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u0111"+ - "\1\10\1\u0112\10\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\4\10\1\u0113\3\10\22\0\22\10"+ - "\2\0\1\u0113\2\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u0114\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\366"+ - "\22\0\5\10\1\u0115\14\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u0116\2\10\22\0"+ - "\10\10\1\u0117\11\10\2\0\3\10\1\0\4\10\1\u0118"+ - "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u0119\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u011a\3\10"+ - "\1\u011b\2\10\22\0\4\10\1\u011c\1\u011d\14\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u011e\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\203"+ - "\2\10\1\u011f\1\u0120\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u0121\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\6\10\1\u0122\1\10\22\0\22\10\2\0\3\10"+ - "\1\0\1\10\1\u0123\5\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0124\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\7\10\1\u0125\22\0\22\10\2\0\3\10\57\0\1\u0126"+ - "\45\0\1\u0127\3\0\1\u0128\27\0\1\u0129\1\u012a\103\0"+ - "\1\u012b\106\0\1\u012c\40\0\1\u012d\100\0\1\u012e\31\0"+ - "\1\u012f\17\0\1\u012e\30\0\1\u0130\135\0\1\u0131\43\0"+ - "\1\u0132\103\0\1\u0133\77\0\1\u0134\56\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\7\10\1\u0135\1\u0136"+ - "\11\10\2\0\3\10\1\0\6\10\1\134\2\0\1\122"+ - "\2\10\4\0\6\10\1\u0137\1\10\22\0\1\10\1\u0138"+ - "\3\10\1\u0139\1\10\1\u0138\12\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\7\10\1\u0104\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\10\10\1\u013a\11\10\2\0\3\10"+ - "\1\0\6\10\1\u013b\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\1\10\1\u013c\20\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u013d\1\u013e\1\u013f\1\u0140\2\10\22\0\4\10\1\u0141"+ - "\15\10\2\0\1\u013f\2\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\3\10\1\u0142\16\10\2\0"+ - "\2\10\1\u0142\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u0143\5\10\1\u0144\22\0\2\10\1\u0145\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u0146\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u0147\2\10"+ - "\1\u0148\2\10\22\0\2\10\1\u0149\1\10\1\u014a\1\u014b"+ - "\1\u014c\5\10\1\u014d\5\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u014e"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u014f\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\15\10\1\u0150\4\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\11\10\1\u013a\10\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u0151\5\10\22\0\1\10\1\u013c\2\10\1\u0152"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0153\4\10\1\u0154\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u0155\4\10\22\0\5\10\1\u0156\14\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u0157\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u0158\1\10\22\0\1\10"+ - "\1\u0159\20\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u015a\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u015b\1\10\1\u015c\2\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u015d"+ - "\1\10\22\0\1\10\1\u015e\2\10\1\u015f\4\10\1\u0160"+ - "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u0161\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\4\10\1\u0162"+ - "\3\10\22\0\22\10\2\0\1\u0162\2\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u0163\4\10\1\u0164"+ - "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u0165\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u0166\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0167\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\1\10\1\u0168\5\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u0169\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\4\10\1\u016a\15\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\7\10\1\u016b\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u016c"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u013c\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u016d"+ - "\1\u016e\1\10\22\0\1\10\1\u016f\3\10\1\u0170\1\10"+ - "\1\u0171\12\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u0172\17\10\2\0"+ - "\3\10\1\0\7\303\2\0\1\u0173\2\303\4\0\10\303"+ - "\22\0\22\303\2\0\3\303\1\0\2\u0174\2\0\1\u0174"+ - "\1\0\1\u0174\3\0\2\u0174\4\0\10\u0174\22\0\17\u0174"+ - "\5\0\3\u0174\1\0\7\305\2\0\1\u0175\2\305\4\0"+ - "\10\305\22\0\22\305\2\0\3\305\1\0\2\u0176\2\0"+ - "\1\u0176\1\0\1\u0176\3\0\2\u0176\4\0\10\u0176\22\0"+ - "\17\u0176\5\0\3\u0176\15\101\1\0\1\101\1\0\34\101"+ - "\1\u0177\22\101\3\0\15\101\1\0\1\101\1\0\7\101"+ - "\1\u0178\47\101\3\0\15\101\1\0\1\101\1\0\2\101"+ - "\1\u0179\54\101\3\0\15\101\1\0\1\101\1\0\36\101"+ - "\1\u017a\20\101\2\0\1\u017b\56\0\1\u017b\22\0\1\u017b"+ - "\54\0\1\u017c\54\0\1\u017d\74\0\1\u017e\57\0\15\112"+ - "\1\0\36\112\1\u017f\22\112\3\0\15\112\1\0\11\112"+ - "\1\u0180\47\112\3\0\15\112\1\0\4\112\1\u0181\54\112"+ - "\3\0\15\112\1\0\40\112\1\u0182\20\112\2\0\1\u0183"+ - "\56\0\1\u0183\22\0\1\u0183\54\0\1\u0184\54\0\1\u0185"+ - "\74\0\1\u0186\62\0\4\u0187\15\0\3\u0187\31\0\1\u0187"+ - "\1\0\1\u0187\7\0\3\u0187\2\0\1\u0187\3\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0188"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u0189\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u018a"+ - "\6\10\22\0\1\134\21\10\2\0\1\10\1\134\1\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u018b"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\1\10\1\u018c\20\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\134\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u018d\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u018e\15\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\11\10\1\160\10\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u018f\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u0190\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0191"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u0192\22\0\1\10\1\u0193"+ - "\20\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\7\10\1\u018f\22\0\22\10\2\0\3\10\1\0"+ - "\7\351\2\0\1\u0194\2\351\4\0\10\351\16\0\1\135"+ - "\3\0\22\351\2\0\3\351\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u0195\15\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u0196\13\10\2\0\3\10\1\0\6\10"+ - "\1\u0197\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\7\10\1\360\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u018f"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\7\10\1\u0198\12\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u018f"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u0199\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u019a\17\10\2\0\3\10\14\0\1\u019b"+ - "\66\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u019c"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u019d\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u019e\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\10"+ - "\1\u019f\20\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u01a0\13\10\2\0"+ - "\3\10\1\0\6\10\1\u01a1\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\7\10\1\u01a2\12\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u01a3\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\5\10\1\253\2\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\7\10\1\u01a4\12\10\2\0"+ - "\3\10\1\0\6\10\1\u01a5\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u01a6\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\1\u0113\21\10\2\0\1\10\1\u0113\1\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\2\10\1\277\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\5\10\1\u01a7\14\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\u01a8\2\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\u013c"+ - "\21\10\2\0\1\10\1\u013c\1\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\11\10\1\u01a9\10\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\5\10\1\u01aa\14\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\7\10\1\365\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\7\10\1\u01ab\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u01ac\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\7\10\1\u01ad\12\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\5\10\1\u0152\14\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u0172\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\6\10\1\u01ae\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\u01af\21\10\2\0\1\10\1\u01af\1\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u01b0"+ - "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\5\10\1\u01b1\2\10\22\0\22\10\2\0\3\10"+ - "\1\0\4\10\1\u01b2\2\10\2\0\1\122\2\10\4\0"+ - "\7\10\1\u01b3\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u01b4"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\134\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\10\10\1\u01b5\11\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u01b6\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\7\10\1\u01b7\12\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u01b8\5\10"+ - "\1\u01b9\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u01ba\22\0\5\10\1\u01bb"+ - "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\6\10\1\u01bc\1\10\22\0\5\10\1\u01bd\14\10"+ - "\2\0\3\10\1\0\4\10\1\u01be\2\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u013d\1\u013e\1\u01bf\1\u01c0\1\10"+ - "\1\u01c1\22\0\1\10\1\u01c2\1\10\1\u01c3\1\10\1\u01c4"+ - "\1\u01c5\1\u01c6\12\10\2\0\1\u01bf\1\10\1\u01c3\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u01c7\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\7\10\1\u01c8\12\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u01c9\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\242\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u01ca\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\3\10\1\u01cb\16\10\2\0\2\10\1\u01cb\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u01cc"+ - "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u01cd\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\u01ce"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u01cf\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u01d0\6\10\22\0\22\10\2\0\3\10\62\0\1\u01d1"+ - "\42\0\1\u01d2\106\0\1\u01d3\133\0\1\u01d4\72\0\1\u01d5"+ - "\24\0\1\u01d5\63\0\1\u01d6\47\0\1\u01d7\131\0\1\u01d8"+ - "\100\0\1\u0126\2\0\1\u01d1\47\0\1\u01d9\27\0\1\u01da"+ - "\44\0\1\u01db\103\0\1\u01dc\51\0\1\u01dc\62\0\1\u01dd"+ - "\44\0\1\u01de\57\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u01df\4\10\22\0\7\10\1\u01e0\12\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\1\u01e1\21\10\2\0\1\10\1\u01e1\1\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\11\10"+ - "\1\134\10\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\7\10\1\134\12\10\2\0"+ - "\3\10\1\0\6\10\1\134\2\0\1\122\2\10\4\0"+ - "\2\10\1\134\5\10\22\0\5\10\1\134\14\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u013c\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u01e2"+ - "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u01e3\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u01e4"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u01e5\17\10"+ - "\2\0\3\10\1\0\4\10\1\176\2\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u01e6\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u01e7\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\4\10"+ - "\1\u01e8\3\10\22\0\5\10\1\u01e9\1\242\13\10\2\0"+ - "\1\u01e8\2\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u01ea\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u01eb\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u013c\15\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u01ec\4\10\22\0\22\10\2\0\3\10\1\0\4\10"+ - "\1\u01ed\2\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\10\10\1\u01ee\11\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\6\10\1\134\13\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\5\10\1\u01ef\2\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\13\10\1\134\6\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u01f0\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\u01f1\6\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\7\10\1\u01f2\12\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u01f3\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\11\10\1\u01f4\10\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\134"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u01f5\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u018a\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\5\10\1\u01f6\2\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\5\10\1\u01f7\14\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\132\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\6\10\1\u01f8\1\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u01f9\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u01fa"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\5\10\1\u01fb\14\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\u01fc\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u01fd\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\14\10\1\u01fe\5\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u01ff\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\1\10\1\u0200"+ - "\20\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\4\10\1\u0201\3\10\22\0\22\10\2\0\1\u0201"+ - "\2\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10"+ - "\1\u0202\1\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u0203\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u0204\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u01b8"+ - "\1\10\1\u0205\3\10\1\u0206\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0207"+ - "\2\10\1\u0208\1\10\1\u0209\1\10\22\0\3\10\1\u020a"+ - "\1\10\1\u020b\1\10\1\u020c\12\10\2\0\1\u0208\1\10"+ - "\1\u020a\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u013c\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u020d\1\u020e\2\10"+ - "\1\u020f\1\10\1\u0210\22\0\2\10\1\u0211\3\10\1\u0212"+ - "\1\u0213\4\10\1\u0214\5\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\7\10\1\u0215\22\0\22\10"+ - "\2\0\3\10\1\0\6\10\1\u01f4\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u0216"+ - "\14\10\2\0\3\10\1\0\4\10\1\134\2\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\7\10\1\u0217\12\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u0218\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u0219\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u021a\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u021b\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u013c\6\10\22\0\22\10\2\0\3\10\7\0\1\u021c"+ - "\73\0\7\u0174\2\0\1\u021d\2\u0174\4\0\10\u0174\16\0"+ - "\1\u021e\3\0\22\u0174\2\0\3\u0174\7\0\1\u021f\73\0"+ - "\7\u0176\2\0\1\u0220\2\u0176\4\0\10\u0176\16\0\1\u0221"+ - "\3\0\22\u0176\2\0\3\u0176\15\101\1\0\1\101\1\0"+ - "\25\101\1\u0222\31\101\3\0\15\101\1\0\1\101\1\0"+ - "\4\101\1\u0177\52\101\3\0\15\101\1\0\1\101\1\0"+ - "\34\101\1\u0223\22\101\3\0\15\101\1\0\1\101\1\0"+ - "\12\101\1\u0224\44\101\35\0\1\u0225\114\0\1\u0226\60\0"+ - "\1\u017c\131\0\1\u0227\25\0\15\112\1\0\27\112\1\u0228"+ - "\31\112\3\0\15\112\1\0\6\112\1\u017f\52\112\3\0"+ - "\15\112\1\0\36\112\1\u0229\22\112\3\0\15\112\1\0"+ - "\14\112\1\u022a\44\112\35\0\1\u022b\114\0\1\u022c\60\0"+ - "\1\u0184\131\0\1\u022d\30\0\4\u022e\15\0\3\u022e\31\0"+ - "\1\u022e\1\0\1\u022e\7\0\3\u022e\2\0\1\u022e\3\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\7\10"+ - "\1\u022f\12\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\10\10\1\u0230\11\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u0137\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u0231\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\20\10\1\134\1\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\10\10\1\375\11\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u0232\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\7\10\1\u0233\12\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u0234"+ - "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0235\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0236"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u0237\5\10\22\0\22\10"+ - "\2\0\3\10\7\0\1\u0238\73\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\7\10\1\u0239\12\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\10\10\1\u023a\11\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u023b"+ - "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\13\10\1\u023c\6\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\5\10\1\u023d\14\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\14\10\1\u023e\5\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u023f\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u0240\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u0172\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u0146\5\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u0241\1\u0242\4\10"+ - "\22\0\2\10\1\u0243\3\10\1\u023f\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u0244"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u0245\1\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u0246\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u0247\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\u0248\22\0\3\10\1\u0249\16\10"+ - "\2\0\2\10\1\u0249\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u024a\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u024b"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u024c\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\1\u024d\21\10\2\0\1\10\1\u024d\1\10"+ - "\1\0\1\10\1\u024e\5\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u024f\1\u0250\3\10\1\u0251\22\0\3\10\1\u0252"+ - "\1\10\1\u0253\1\u0254\13\10\2\0\2\10\1\u0252\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\4\10\1\u0255\3\10"+ - "\22\0\3\10\1\u0142\1\u01b8\1\u0253\14\10\2\0\1\u0255"+ - "\1\10\1\u0142\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\5\10\1\u0256\14\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u0257\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\3\10\1\u0258\16\10\2\0"+ - "\2\10\1\u0258\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\14\10\1\u0259\5\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u025a\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u025b\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\134\15\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\7\10\1\u025c\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\u025d\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\u025e\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u025f\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u0172\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u0106\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\5\10\1\u0260\2\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0146"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\1\10\1\u0261\7\10"+ - "\1\u0262\10\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u025a\5\10\22\0\13\10\1\u0263"+ - "\6\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u0264\3\10\1\u0265\13\10"+ - "\2\0\3\10\1\0\6\10\1\u0266\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u0267\6\10\22\0"+ - "\1\u0268\21\10\2\0\1\10\1\u0268\1\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\6\10\1\u0269\1\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u026a\17\10\2\0\3\10"+ - "\1\0\6\10\1\u026b\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u026c\13\10\2\0\3\10\1\0\6\10"+ - "\1\u026d\2\0\1\122\2\10\4\0\10\10\22\0\15\10"+ - "\1\u026e\4\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u026f\1\10\1\u0270\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\5\10\1\u0271\14\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\11\10\1\u0272\10\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0273\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\134\7\10\22\0\22\10\2\0\3\10\1\0\6\10"+ - "\1\u0274\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u0275\1\u0142\16\10\2\0\2\10\1\u0142\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u0276\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u0277\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\u0278\21\10\2\0\1\10\1\u0278\1\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u0279\6\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u0137\4\10\22\0\22\10\2\0\3\10"+ - "\24\0\1\u027a\136\0\1\u027b\44\0\1\u0131\132\0\1\u027a"+ - "\105\0\1\u0131\74\0\1\u027c\1\u027d\46\0\1\u027e\145\0"+ - "\1\u027f\37\0\1\u0280\104\0\1\u0281\131\0\1\u0282\77\0"+ - "\1\u0283\47\0\1\u0284\63\0\1\u0285\75\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u01b4\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u0286\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u0287\17\10\2\0\3\10\1\0\4\10\1\u0288\2\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u0289\5\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\6\10\1\u028a\1\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\3\10\1\132\16\10\2\0\2\10"+ - "\1\132\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\u028b\15\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u0172"+ - "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\11\10\1\u028c\10\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u028d"+ - "\2\10\1\u028e\1\u028f\2\10\22\0\1\10\1\u0290\20\10"+ - "\2\0\1\u028e\2\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\10\1\u0291\20\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0292"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0293\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\u0294\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10"+ - "\1\u0295\15\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\134\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0296"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0297\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u0298\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\5\10\1\u0299\2\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u029a\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u029b\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\1\u029c\21\10"+ - "\2\0\1\10\1\u029c\1\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u029d\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\246\17\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u029e\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\13\10\1\u029f\6\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\10\10\1\u02a0\11\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u02a1\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\4\10\1\u02a2\3\10\22\0\22\10\2\0\1\u02a2\2\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u02a3"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u02a4\1\10\22\0\6\10"+ - "\1\u02a5\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u023e\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u02a6\17\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u02a7"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u02a8\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\5\10\1\u02a9\14\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\1\u02aa\21\10\2\0"+ - "\1\10\1\u02aa\1\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u02ab\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\6\10\1\u02ac\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u02ad\17\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u02ae\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u02af\17\10\2\0\3\10"+ - "\1\0\6\10\1\u02b0\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u02b1\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u02b2\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u02b3\4\10\22\0"+ - "\2\10\1\163\17\10\2\0\3\10\1\0\4\10\1\u02b4"+ - "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u02b5\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10"+ - "\1\u02b6\14\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\13\10\1\u02b7\6\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u02b8\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u02b9\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\5\10\1\u02ba\2\10\22\0\22\10\2\0\3\10"+ - "\1\0\4\10\1\u02bb\2\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\7\10\1\u02bc\12\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\10\10\1\u02bd\11\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u02be\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\11\10\1\u02bf\10\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u02c0\22\0\22\10\2\0\3\10\3\0\4\u02c1\15\0"+ - "\3\u02c1\31\0\1\u02c1\1\0\1\u02c1\7\0\3\u02c1\2\0"+ - "\1\u02c1\11\0\1\u02c2\75\0\4\u02c3\15\0\3\u02c3\31\0"+ - "\1\u02c3\1\0\1\u02c3\7\0\3\u02c3\2\0\1\u02c3\11\0"+ - "\1\u02c4\72\0\14\101\1\u02c5\1\0\1\101\1\0\57\101"+ - "\3\0\15\101\1\0\1\101\1\0\10\101\1\u0177\14\101"+ - "\1\u0222\31\101\3\0\1\101\7\u0224\1\101\1\u0224\1\101"+ - "\2\u0224\1\0\1\101\1\u02c6\15\u0224\1\101\1\u0224\2\101"+ - "\5\u0224\2\101\25\u0224\2\101\3\u0225\1\0\1\u0225\1\u02c6"+ - "\5\u0225\1\0\1\u02c6\1\0\2\u0225\2\0\2\u02c6\10\u0225"+ - "\4\u02c6\1\0\1\u02c6\2\0\5\u02c6\2\0\3\u02c6\22\u0225"+ - "\2\0\3\u0225\14\0\1\u02c7\115\0\1\u017c\14\0\1\u0226"+ - "\34\0\14\112\1\u02c8\1\0\61\112\3\0\15\112\1\0"+ - "\12\112\1\u017f\14\112\1\u0228\31\112\3\0\1\112\7\u022a"+ - "\1\112\1\u022a\1\112\2\u022a\1\0\1\112\16\u022a\1\112"+ - "\1\u022a\2\112\5\u022a\2\112\25\u022a\2\112\3\u022b\1\0"+ - "\1\u022b\1\u02c9\5\u022b\1\0\1\u02c9\1\0\2\u022b\2\0"+ - "\2\u02c9\10\u022b\4\u02c9\1\0\1\u02c9\2\0\5\u02c9\2\0"+ - "\3\u02c9\22\u022b\2\0\3\u022b\14\0\1\u02ca\115\0\1\u0184"+ - "\14\0\1\u022c\37\0\4\u02cb\15\0\3\u02cb\31\0\1\u02cb"+ - "\1\0\1\u02cb\7\0\3\u02cb\2\0\1\u02cb\3\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u02cc"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u02cd\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\7\10\1\u02ce\12\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u02cf\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\337\17\10\2\0\3\10\1\0"+ - "\6\10\1\u02d0\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u02d1\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u02d2"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u02d3\13\10"+ - "\2\0\3\10\3\0\4\u02d4\15\0\3\u02d4\31\0\1\u02d4"+ - "\1\0\1\u02d4\7\0\3\u02d4\2\0\1\u02d4\3\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\1\10\1\u02d5"+ - "\20\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u02d6\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\2\10\1\u02d7\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u02d8\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\13\10\1\u02d9\6\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\u013a\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u02da\15\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u02db\5\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u02dc\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u02dd\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u02de\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\15\10\1\u02df\4\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\6\10\1\u013c\1\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\7\10\1\u02e0\22\0"+ - "\22\10\2\0\3\10\1\0\4\10\1\u02e1\2\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\u02e2\21\10\2\0\1\10\1\u02e2\1\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\301\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\7\10\1\u02e3\12\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u02e4"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u02e5\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u02e6\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\5\10\1\u02e7\2\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u02e8\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u02e9\5\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u02ea\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u02eb\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u02ec"+ - "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\1\10\1\u01bc\20\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u02ed\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\u02ee\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\15\10\1\u0152\4\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u02ef\4\10\1\u02f0\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\7\10\1\u02f1\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\5\10\1\u02f2\2\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\12\10\1\u013a\7\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u02f3\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\7\10\1\u02f4\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u02f5\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\u0172\7\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\10"+ - "\1\u0159\20\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\14\10\1\u013c\5\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\1\10\1\u02f6\20\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u02f7"+ - "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\6\10\1\u02f8\1\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u0172\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u02f9\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\u02fa\2\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u02fb\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\6\10\1\u02fc\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u02fd\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u02fe\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\11\10\1\u02ff\10\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0300\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u0301\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u0302\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u0303\6\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\u0300\21\10\2\0\1\10\1\u0300"+ - "\1\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u0304\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0305"+ - "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u0306\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u0307\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u0308\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u0309\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u030a\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\1\134\21\10\2\0\1\10"+ - "\1\134\1\10\25\0\1\u0131\51\0\1\u0131\25\0\1\u0131"+ - "\105\0\1\u030b\131\0\1\u030c\46\0\1\u030d\130\0\1\u030e"+ - "\24\0\1\u030e\24\0\1\u030f\65\0\1\u0310\147\0\1\u0311"+ - "\103\0\1\u01d3\103\0\1\u0312\101\0\1\u0128\21\0\7\10"+ - "\2\0\1\122\2\10\4\0\7\10\1\u0113\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\164\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u0313\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u0314\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u0315\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u02aa"+ - "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\10\1\u0316\20\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\14\10\1\u0317\5\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0318\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\6\10\1\u0319\1\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u031a\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u031b\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u031c\5\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u0113\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\6\10\1\u031d\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\5\10\1\u031e\14\10\2\0\3\10\1\0\6\10\1\u031f"+ - "\2\0\1\122\2\10\4\0\2\10\1\u0320\5\10\22\0"+ - "\2\10\1\u0243\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\3\10\1\u0321\16\10"+ - "\2\0\2\10\1\u0321\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\7\10\1\u0322\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\134\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u0113\15\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u0323\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u0324\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u0325\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u013e"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\4\10\1\u0326"+ - "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u0327\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u0138\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u0328\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u0299\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u0329\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u032a\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u0152\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u032b\1\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u032c\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u032d\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u032e\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\11\10\1\u032f\10\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\6\10\1\u0330\1\10\22\0"+ - "\4\10\1\u0331\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u0332\1\10\22\0\22\10"+ - "\2\0\3\10\1\0\4\10\1\u0333\2\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10"+ - "\1\u0334\15\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u0335\5\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10"+ - "\1\u0336\1\10\22\0\10\10\1\u0337\11\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\10\1\u0338\20\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u0339\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u033a\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u033b\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u033c\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\5\10\1\u014b\14\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\4\10\1\u033d\3\10\22\0"+ - "\22\10\2\0\1\u033d\2\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\u033e\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\10\10\1\u033f\11\10\2\0\3\10\1\0\6\10\1\u0340"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\15\10\1\u0341\4\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u0342\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\7\10\1\u0343\12\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\10\1\u0344\7\10\1\u0345\10\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10"+ - "\1\u0346\14\10\2\0\3\10\3\0\4\u0347\15\0\3\u0347"+ - "\31\0\1\u0347\1\0\1\u0347\7\0\3\u0347\2\0\1\u0347"+ - "\5\0\4\u0348\15\0\3\u0348\31\0\1\u0348\1\0\1\u0348"+ - "\7\0\3\u0348\2\0\1\u0348\5\0\4\u0349\15\0\3\u0349"+ - "\31\0\1\u0349\1\0\1\u0349\7\0\3\u0349\2\0\1\u0349"+ - "\5\0\4\u034a\15\0\3\u034a\31\0\1\u034a\1\0\1\u034a"+ - "\7\0\3\u034a\2\0\1\u034a\2\0\14\101\1\u0224\1\0"+ - "\1\101\1\0\57\101\17\0\1\u0225\65\0\14\112\1\u022a"+ - "\1\0\61\112\17\0\1\u022b\70\0\4\10\15\0\3\10"+ - "\31\0\1\10\1\0\1\10\7\0\3\10\2\0\1\10"+ - "\3\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u034b\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u034c\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u034d\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\5\10\1\u034e\2\10"+ - "\22\0\1\10\1\u034f\3\10\1\u0350\14\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0351"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\11\10\1\u0352\10\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u0353\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\10\10"+ - "\1\u0354\11\10\2\0\3\10\3\0\4\u0355\15\0\3\u0355"+ - "\31\0\1\u0355\1\0\1\u0355\7\0\3\u0355\2\0\1\u0355"+ - "\3\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0356"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\5\10\1\u0357\2\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\350\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\160\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u0358\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10"+ - "\1\u031c\1\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u0292\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\10\10\1\u0359\11\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\15\10\1\u035a\4\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u035a\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u0161\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u035b\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\6\10\1\u035c\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u01a4"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u035d\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\10\10\1\u035e\11\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u035f\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u0360\15\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u0361\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u0362\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0363\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0364"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0365\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u0366\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u0367\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u0368\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u0369\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\13\10\1\u036a"+ - "\6\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\6\10\1\u036b\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u036c\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u036d\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u036e\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10"+ - "\1\u036f\15\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\u013c\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\6\10\1\u0370\13\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u0371\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u0372\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0373\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u0374\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\10\10\1\u0375\11\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u0376"+ - "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u0377\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\10\1\u0378\20\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\1\10\1\u0379\20\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u037a\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\5\10\1\u037b\2\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u037c\1\10\1\u037d\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\7\10\1\u037e\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10"+ - "\1\u037f\15\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u0275\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u0380\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u0381\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\6\10\1\u0382\2\0\1\122\2\10"+ - "\4\0\6\10\1\u0383\1\10\22\0\2\10\1\u0384\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\3\10\1\u0385\16\10\2\0\2\10\1\u0385"+ - "\7\0\1\u0386\152\0\1\u0387\105\0\1\u0131\77\0\1\u027b"+ - "\41\0\1\u0388\141\0\1\u01d3\76\0\1\u0389\46\0\1\u038a"+ - "\56\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\6\10\1\u038b\13\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u038c\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u038d\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\6\10\1\u013c\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\10\1\u038e\20\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u014d"+ - "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u038f\1\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u0390\13\10\2\0\3\10\1\0"+ - "\6\10\1\u0391\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\14\10\1\134\5\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u0152"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u0299\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\u0392\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u0393\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u0394\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\1\u0395\21\10\2\0\1\10\1\u0395\1\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\4\10\1\u0396\2\10"+ - "\1\u0397\22\0\7\10\1\u0398\12\10\2\0\1\u0396\2\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\5\10\1\u0364\14\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u0399\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u039a\3\10\1\u01ca\13\10\2\0\3\10"+ - "\1\0\6\10\1\u0360\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u039b\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u039c\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u039d\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\7\10\1\u0216\22\0\1\10\1\u039e\20\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u024b\5\10\22\0\2\10\1\u039f\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\6\10\1\u0292\13\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\3\10\1\u013c\16\10"+ - "\2\0\2\10\1\u013c\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\10\1\u03a0\20\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u03a1"+ - "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\5\10\1\u03a2\14\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u03a3\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u03a4\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\7\10\1\u03a5\12\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u03a6\5\10\22\0\2\10\1\u0377\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\15\10\1\u03a7\4\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u03a8\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\11\10\1\u03a9\10\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u03aa\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u03ab\5\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\4\10"+ - "\1\u03ac\3\10\22\0\22\10\2\0\1\u03ac\2\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10"+ - "\1\u03ad\15\10\2\0\3\10\1\0\4\10\1\u03ae\2\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\u03af\15\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u03b0\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u03b1\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u03b2"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u03b3\1\10\22\0\22\10"+ - "\2\0\3\10\1\0\6\10\1\u03b4\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u03b5\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u03b6\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u03b7"+ - "\5\10\22\0\22\10\2\0\3\10\3\0\4\u03b8\15\0"+ - "\3\u03b8\31\0\1\u03b8\1\0\1\u03b8\7\0\3\u03b8\2\0"+ - "\1\u03b8\5\0\4\u03b9\15\0\3\u03b9\31\0\1\u03b9\1\0"+ - "\1\u03b9\7\0\3\u03b9\2\0\1\u03b9\5\0\4\u03ba\15\0"+ - "\3\u03ba\31\0\1\u03ba\1\0\1\u03ba\7\0\3\u03ba\2\0"+ - "\1\u03ba\5\0\4\u03bb\15\0\3\u03bb\31\0\1\u03bb\1\0"+ - "\1\u03bb\7\0\3\u03bb\2\0\1\u03bb\3\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\10\10\1\u03bc\11\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\4\10\1\u03bd\3\10\22\0\22\10\2\0\1\u03bd\2\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0265"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\6\10\1\u03be\1\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\240\2\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u03bf\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\10\10\1\u0152\11\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u03c0\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u03c1\6\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u03c2\5\10\22\0\22\10\2\0\3\10"+ - "\3\0\4\u03c3\15\0\3\u03c3\31\0\1\u03c3\1\0\1\u03c3"+ - "\7\0\3\u03c3\2\0\1\u03c3\3\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\11\10\1\u03c4\10\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\u03c5\2\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\7\10\1\u03c6\22\0\7\10"+ - "\1\u03c7\12\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\u03c6\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u03c8"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u03c9\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\u03ca\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10"+ - "\1\u03cb\1\10\1\u03cc\4\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u03cd"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u013c\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u03ce"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\7\10\1\u03cf\12\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u03d0\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10"+ - "\1\u013c\6\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\u03d1\6\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u013a\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u0172\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u03d2\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u03d3\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u03d4\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\4\10\1\u03d5\3\10"+ - "\22\0\22\10\2\0\1\u03d5\2\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\7\10\1\u03d6\12\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u03d7\17\10\2\0\3\10\1\0"+ - "\4\10\1\u03d8\2\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u01b8\2\10\1\u03d9\3\10\22\0\7\10\1\u03da\12\10"+ - "\2\0\1\u03d9\2\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\10\10\1\u03db\11\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u03dc"+ - "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\5\10\1\u03dd\2\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\5\10\1\u0253\14\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u03de\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u03df\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u03e0\17\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u03e1"+ - "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u03e2\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u03e3"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\5\10\1\u03e4\2\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\3\10\1\u03e5\16\10\2\0\2\10\1\u03e5"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\2\10\1\u03e6\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u03e7\22\0\22\10\2\0"+ - "\3\10\1\0\4\10\1\u03e8\2\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\7\10\1\u034f\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u03e9\3\10\1\u03ea\22\0\2\10\1\u0146\5\10"+ - "\1\u03ea\11\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\u03eb\6\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\u03ec"+ - "\7\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\4\10\1\u03ed\15\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u03ee\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10"+ - "\1\u03ef\15\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u03f0\4\10\1\u03f1"+ - "\10\10\2\0\3\10\63\0\1\u03f2\45\0\1\u03f3\136\0"+ - "\1\u03f4\100\0\1\u0131\75\0\1\231\23\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u03f5\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\u03f6\7\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u03f7\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\4\10\1\u02bb\2\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\5\10\1\u03f8\1\10"+ - "\1\u03f9\12\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\10\10\1\u03fa\11\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\10\10\1\u03fb\11\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u03fc"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\10\10\1\u03fd\11\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\5\10\1\246\14\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u03fe\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u0265\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\u03ff"+ - "\21\10\2\0\1\10\1\u03ff\1\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0400\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\375\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0401\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u038c\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u0402\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0403"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0404\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u0405\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\4\10\1\u0406\3\10\22\0\22\10"+ - "\2\0\1\u0406\2\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\10\1\u0407\20\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0408"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u0409\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\6\10\1\u040a\1\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u040b\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u040c\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u040d\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u040e\6\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\6\10\1\u0286\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\14\10\1\u040f\5\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u0410\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u0411\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u0412\3\10"+ - "\1\u023c\22\0\2\10\1\u0413\13\10\1\u0414\3\10\2\0"+ - "\3\10\1\0\6\10\1\u0415\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u02b7\13\10"+ - "\2\0\3\10\1\0\4\10\1\u0416\2\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0417\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u0418\5\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u0419\6\10\22\0\5\10\1\u041a\14\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\5\10\1\u041b\14\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\4\10\1\u041c\15\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\u03ec\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u0260\17\10\2\0\3\10\3\0\4\303\15\0\3\303"+ - "\31\0\1\303\1\0\1\303\7\0\3\303\2\0\1\303"+ - "\5\0\4\u041d\15\0\3\u041d\31\0\1\u041d\1\0\1\u041d"+ - "\7\0\3\u041d\2\0\1\u041d\5\0\4\305\15\0\3\305"+ - "\31\0\1\305\1\0\1\305\7\0\3\305\2\0\1\305"+ - "\5\0\4\u041e\15\0\3\u041e\31\0\1\u041e\1\0\1\u041e"+ - "\7\0\3\u041e\2\0\1\u041e\3\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\u01b8\6\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u0396\5\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\6\10\1\u041f\1\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u0420\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u0421\15\10\2\0\3\10\1\0\6\10\1\160"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\u0422\2\10\22\0\22\10\2\0\3\10\3\0\4\351"+ - "\15\0\3\351\31\0\1\351\1\0\1\351\7\0\3\351"+ - "\2\0\1\351\3\0\7\10\2\0\1\122\2\10\4\0"+ - "\4\10\1\u028e\3\10\22\0\22\10\2\0\1\u028e\2\10"+ - "\1\0\6\10\1\u0423\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\277\6\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\3\10\1\u0424\16\10\2\0\2\10\1\u0424\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\u0425\7\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u0426\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\15\10\1\u0427\4\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u0261\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\u0428\2\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u03e9\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u0429\5\10\22\0\22\10\2\0"+ - "\3\10\1\0\4\10\1\u042a\2\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u03bc\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u03cf\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\244"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u042b\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\1\10\1\u01fe\20\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\4\10\1\134\3\10"+ - "\22\0\22\10\2\0\1\134\2\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u042c\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\u042d\15\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10"+ - "\1\u0263\6\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u042e\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\u042f\2\10\22\0\22\10\2\0\3\10\1\0\6\10"+ - "\1\u0430\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\277\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0431\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\5\10\1\u0432\14\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\15\10\1\u0433\4\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0434"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\3\10\1\u0435\16\10\2\0\2\10"+ - "\1\u0435\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u0436\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u0437\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u0104\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u0438\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u0439\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\u043a\2\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\6\10\1\u043b\1\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u043c\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u043d"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\7\10\1\u043e\12\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u038c\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u0384\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\10\10\1\134\11\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u043f\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0440\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\u0441\2\10\22\0\2\10\1\u0442\17\10\2\0"+ - "\3\10\55\0\1\u0443\33\0\1\u0444\120\0\1\u0445\54\0"+ - "\7\10\2\0\1\122\2\10\4\0\4\10\1\u0446\3\10"+ - "\22\0\22\10\2\0\1\u0446\2\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0447\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\7\10\1\u0448\22\0\10\10\1\u0448\11\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\6\10\1\u0449\13\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\2\10\1\u044a\17\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u044b\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u044c\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\4\10\1\u044d\15\10\2\0"+ - "\3\10\1\0\4\10\1\u044e\2\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u044f\3\10\1\u03c6\22\0\7\10\1\u03c7"+ - "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\3\10\1\134\16\10\2\0\2\10"+ - "\1\134\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u0450\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u0451\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\11\10\1\u0452\10\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\7\10\1\u03bc\12\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u0453\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u0265\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u0454\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u0455\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\u0456\2\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u0457"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u0458\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0459"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\3\10\1\u03bc\16\10"+ - "\2\0\2\10\1\u03bc\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u045a\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u045b"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u045c\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u045d\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u045e\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\u045f\7\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u0460\15\10\2\0\3\10\1\0\6\10\1\u0461"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u0462\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0463"+ - "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\6\10\1\u0464\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\u0465"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u0466\5\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u0467\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u0468\6\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\14\10\1\u0469\5\10\2\0\3\10"+ - "\3\0\4\u0174\15\0\3\u0174\31\0\1\u0174\1\0\1\u0174"+ - "\7\0\3\u0174\2\0\1\u0174\5\0\4\u0176\15\0\3\u0176"+ - "\31\0\1\u0176\1\0\1\u0176\7\0\3\u0176\2\0\1\u0176"+ - "\3\0\4\10\1\u02bb\2\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u01b8\5\10\1\u046a\22\0\2\10\1\u0394\2\10"+ - "\1\u01bb\14\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\4\10\1\u046b\3\10\22\0\22\10\2\0"+ - "\1\u046b\2\10\1\0\6\10\1\134\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u01f0"+ - "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u046c\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\6\10\1\u046d\13\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u046e\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u046f\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\7\10\1\u0470\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\6\10\1\u0471\1\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\2\10\1\u0472\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\14\10\1\u0473\5\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\7\10\1\u0474\12\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10"+ - "\1\u0475\15\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\10\10\1\u0476\11\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u0477\5\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\1\10\1\u0478\6\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\5\10\1\u0479\2\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u047a"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\4\10\1\u03d8"+ - "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\u047b\2\10\22\0\22\10\2\0\3\10\1\0"+ - "\6\10\1\u047c\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\6\10\1\u047d\1\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u047e"+ - "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u047f\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u0473\17\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\7\10\1\u0480\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\15\10\1\u013a\4\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u0481\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\7\10\1\u0482\12\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u0483\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u0484\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u0485\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u0151"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\u0486\7\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\u0486\15\10\2\0\3\10\57\0\1\u0487"+ - "\104\0\1\u0488\77\0\1\u0489\22\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u048a\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u03ec\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u048b\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\6\10\1\u0289\1\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u048c\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u048d\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\u048e\15\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\7\10\1\u048f\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u0146\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\u0490\7\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0491\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0492"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\5\10\1\242\2\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u01b8\5\10\1\134\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\u0493"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u0494\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u0495\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0496"+ - "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\11\10\1\u0497\10\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\7\10\1\u0498\12\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u040a\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\7\10\1\u0499\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u013c"+ - "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u049a\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u049b"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\5\10\1\u049c\14\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\4\10\1\u049d\3\10\22\0\22\10\2\0\1\u049d\2\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u049e"+ - "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u049f\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\u013c\7\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u03bc"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u04a0\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u04a1"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\1\10\1\u04a2\20\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\4\10\1\374\10\10\1\u04a3\4\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\374\15\10\2\0\3\10\1\0\6\10"+ - "\1\u04a4\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u04a5\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10"+ - "\1\u0279\14\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\2\10\1\u04a6\5\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\5\10\1\u04a7\14\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u01f0"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u04a8\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\6\10\1\u013a\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\4\10\1\u04a9\2\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u013a\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u04aa"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\10\10\1\u04ab\11\10\2\0\3\10"+ - "\1\0\6\10\1\242\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\5\10\1\u04ac\14\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\u013c\2\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u02df"+ - "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u04ad\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u04ae"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\4\10\1\u04af\15\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u04b0\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04b1\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\u04b2\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\10\1\u039e\13\10\1\u04b3\4\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10"+ - "\1\u04b4\14\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\u01b8\2\10\1\u04b5\2\10\1\u01b3"+ - "\22\0\2\10\1\u04b6\17\10\2\0\1\u04b5\2\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04b7\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\5\10\1\u01a4\2\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u04b8\17\10\2\0\3\10\62\0\1\u04b9"+ - "\43\0\1\u0487\100\0\1\u01d5\57\0\7\10\2\0\1\122"+ - "\2\10\4\0\5\10\1\u04ba\2\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u03bc\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u04bb\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\7\10\1\u04bc\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\7\10\1\164\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u04bd\6\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\10\1\u04be\20\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u04bf\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\5\10\1\u04c0\14\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\277\1\10"+ - "\1\u04c1\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u0469\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\1\u0469\21\10\2\0\1\10\1\u0469"+ - "\1\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\u040a\15\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u04c2\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\7\10\1\u04c3\12\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\2\10\1\u04c4\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u04c5\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\10\10\1\u04c6\11\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\u04c7\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u04c8\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10"+ - "\1\u04c9\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u04ca\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\6\10\1\u04cb\13\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\7\10"+ - "\1\u04cc\12\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\14\10\1\u04cd\5\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u04ce\4\10\22\0\22\10\2\0\3\10\1\0\4\10"+ - "\1\u04cf\2\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0137\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\7\10\1\u013c\12\10\2\0\3\10\1\0\6\10\1\u04d0"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10"+ - "\1\u04d1\5\10\22\0\22\10\2\0\3\10\1\0\6\10"+ - "\1\u04d2\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\2\10\1\u03ed\5\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u04d3\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u04d4\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u04d5\17\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u0417"+ - "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\6\10\1\u04d6\1\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u04ba\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\14\10\1\u04d7\5\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u04d8\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10"+ - "\1\u04d9\6\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\6\10\1\u04da\1\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\u04db\15\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\5\10\1\u04dc\2\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\11\10\1\u04dd\10\10\2\0\3\10"+ - "\55\0\1\u027b\25\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\10\10\1\u013c\11\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\3\10\1\u04de\4\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\7\10\1\u04df\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u04e0"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\5\10\1\u04e1\2\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\5\10\1\u04e2\14\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04e3\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\5\10\1\u013c\14\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10"+ - "\1\u04e4\1\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\u04e5\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\6\10\1\u04e6\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u04e7"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u04e8\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\u04e9\2\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\2\10\1\u04e9\5\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\1\10\1\u04ea\6\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\4\10\1\u04eb\15\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u04ec"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u04ed\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u04ee"+ - "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\2\10\1\u04ef\5\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\5\10\1\u01bb\14\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04f0\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\2\10\1\u04f1\17\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10"+ - "\1\u04f2\6\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u034f"+ - "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\7\10\1\u04f3\22\0\22\10\2\0\3\10\1\0"+ - "\4\10\1\u04f4\2\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u04f5\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\1\10\1\u013a\20\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u032e\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\6\10\1\u04f6\13\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u04f7"+ - "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u04f8\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u04f9\17\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u04fa"+ - "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\10\10\1\u04ec\11\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\4\10\1\u04b5"+ - "\3\10\22\0\22\10\2\0\1\u04b5\2\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\6\10\1\u04fb\1\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u04fc\15\10\2\0\3\10"+ - "\1\0\6\10\1\u0172\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\6\10\1\u04fd\13\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\6\10\1\u04fe\13\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\3\10\1\u04ff\4\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\4\10\1\u04c2\15\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\14\10\1\u0500\5\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0501\13\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\11\10\1\u0502\10\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10"+ - "\1\u0503\17\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\17\10\3\134\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\13\10\1\u03cb\6\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\11\10\1\u0504\10\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\2\10\1\u0505\17\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\7\10\1\u01f9\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\2\10\1\u0506\17\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\4\10\1\u04f7\15\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\3\10\1\u0507\4\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u0508\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\6\10\1\u0509\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\5\10\1\u04a6\2\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\10\1\u050a\20\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\10\10\1\u038c\11\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u050b\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\u038c\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\12\10\1\u02a1\7\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10"+ - "\1\u050c\1\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u035a"+ - "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0261\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\5\10\1\u050d\14\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\7\10\1\u038c\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\2\10\1\u0149\17\10\2\0\3\10\1\0\6\10"+ - "\1\u050e\2\0\1\122\2\10\4\0\10\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\5\10\1\u04c9\2\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10"+ - "\1\u01b4\13\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\5\10\1\u050f\2\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\10\10\1\u0510\11\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0511"+ - "\13\10\2\0\3\10\1\0\1\10\1\u0512\5\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u0513"+ - "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\1\10\1\u039b\6\10\22\0\22\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\1\10\1\u0514\6\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0515\6\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\277\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10"+ - "\1\u0245\2\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0138"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\2\10\1\u0516\5\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\1\u03ec\21\10\2\0\1\10\1\u03ec\1\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0517"+ - "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\1\10\1\u0518\1\u0519\2\10\1\u051a\1\10\1\u051b"+ - "\22\0\1\u051c\3\10\1\u03f0\1\10\1\u051d\13\10\2\0"+ - "\1\10\1\u051c\1\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u051e\4\10\22\0\22\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\2\10\1\u051f\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\14\10\1\u0520\5\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\10\10\22\0\13\10\1\u038c\6\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\6\10\1\u0521\1\10"+ - "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\3\10\1\u0522\4\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10"+ - "\1\u0523\4\10\22\0\22\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\2\10\1\200\5\10\22\0"+ - "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\14\10\1\220\5\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\2\10\1\u0524\17\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\4\10\1\u0525\3\10\22\0\22\10"+ - "\2\0\1\u0525\2\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\10\10\22\0\5\10\1\u0159\14\10\2\0\3\10"+ - "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0"+ - "\11\10\1\u01b3\10\10\2\0\3\10\1\0\7\10\2\0"+ - "\1\122\2\10\4\0\10\10\22\0\1\10\1\u039b\20\10"+ - "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0"+ - "\3\10\1\u0526\4\10\22\0\22\10\2\0\3\10\1\0"+ - "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\11\10"+ - "\1\367\10\10\2\0\3\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\5\10\1\u0527\2\10\22\0\22\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\7\10\1\u0528\12\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\4\10\1\u0198\3\10\22\0"+ - "\22\10\2\0\1\u0198\2\10\1\0\7\10\2\0\1\122"+ - "\2\10\4\0\10\10\22\0\15\10\1\u0529\4\10\2\0"+ - "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10"+ - "\22\0\7\10\1\u019e\12\10\2\0\3\10\1\0\7\10"+ - "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u01e0"+ - "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10"+ - "\4\0\3\10\1\u0245\4\10\22\0\22\10\2\0\3\10"; - - private static int [] zzUnpackTrans() { - int [] result = new int[84612]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\6\0\1\11\5\1\2\11\2\1\1\11\12\1\1\11"+ - "\5\1\1\11\1\1\1\11\15\1\1\11\1\1\1\11"+ - "\2\1\1\11\2\1\2\11\3\1\2\11\1\1\1\11"+ - "\10\1\1\11\6\1\1\0\12\1\1\11\5\1\1\0"+ - "\55\1\14\0\45\1\1\11\1\1\1\0\1\1\1\0"+ - "\1\11\4\1\4\0\4\1\5\0\20\1\1\0\11\1"+ - "\1\0\62\1\10\0\1\1\2\0\1\11\3\0\76\1"+ - "\4\0\4\1\4\0\4\1\5\0\14\1\1\0\6\1"+ - "\1\11\65\1\16\0\75\1\2\0\1\11\2\0\1\11"+ - "\4\1\2\0\4\1\3\0\11\1\1\0\101\1\14\0"+ - "\73\1\4\0\1\1\2\0\1\1\3\0\10\1\1\0"+ - "\66\1\7\0\65\1\4\0\12\1\1\0\60\1\5\0"+ - "\55\1\4\0\7\1\1\0\56\1\3\0\50\1\2\0"+ - "\44\1\3\0\101\1\3\0\57\1\1\0\160\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[1321]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 5; + public static final int STRING = 1; + public static final int CHAR_LITERAL = 2; + public static final int YYINITIAL = 0; + public static final int MLC = 4; + public static final int BACKTICKS = 3; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\16\1\15\1\0\1\16\1\75\22\0\1\16\1\42\1\10" + + "\1\11\1\13\1\41\1\44\1\51\2\31\1\17\1\33\1\52\1\34" + "\1\32\1\14\1\4\1\72\1\73\1\74\1\74\1\6\1\6\1\6" + + "\1\3\1\3\1\45\1\20\1\35\1\36\1\40\1\43\1\50\1\26" + "\1\5\1\60\1\62\1\24\1\25\1\63\1\53\1\55\1\1\1\66" + + "\1\27\1\64\1\57\1\61\1\54\1\71\1\23\1\30\1\22\1\7" + "\1\70\1\56\1\21\1\67\1\65\1\31\1\12\1\31\1\37\1\2" + + "\1\76\1\26\1\5\1\60\1\62\1\24\1\77\1\63\1\100\1\55" + "\1\1\1\66\1\27\1\64\1\57\1\61\1\54\1\71\1\23\1\30" + + "\1\22\1\7\1\70\1\101\1\21\1\67\1\65\1\46\1\37\1\47" + "\1\43\uff81\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 = "\6\0\2\1\2\2\2\1\1\3\1\4\1\1\1\5" + "\1\6\1\7\1\5\2\1\1\10\2\1\1\10\2\1" + + "\1\11\7\5\1\12\3\1\1\10\11\1\1\13\1\14" + "\1\15\1\16\1\14\1\17\1\14\1\20\1\21\1\22" + + "\1\14\1\23\1\14\1\24\1\25\1\14\1\26\10\14" + "\1\27\6\14\1\0\1\30\1\31\1\30\6\1\2\10" + + "\5\1\1\0\10\1\1\32\17\1\2\10\23\1\14\0" + "\45\1\1\33\1\34\1\0\1\35\1\0\1\36\4\14" + "\4\0\4\14\5\0\1\31\17\1\1\0\11\1\1\0" + + "\33\1\1\10\12\1\1\10\13\1\10\0\1\37\2\0" + "\1\37\3\0\7\1\1\40\26\1\1\10\16\1\1\10" + "\20\1\4\0\4\14\4\0\4\14\5\0\14\1\1\0" + + "\6\1\1\41\1\1\1\42\11\1\1\40\4\1\1\40" + "\1\1\1\10\34\1\1\10\5\1\16\0\1\10\30\1" + "\1\40\43\1\2\0\1\34\2\0\1\35\3\14\1\43" + + "\2\0\3\14\1\44\3\0\11\1\1\0\101\1\14\0" + "\61\1\1\10\11\1\4\0\1\14\2\0\1\14\3\0" + "\10\1\1\0\41\1\1\40\22\1\1\10\1\1\7\0" + + "\1\37\3\1\1\40\25\1\1\40\32\1\4\0\12\1" + "\1\0\30\1\1\10\20\1\1\37\6\1\5\0\55\1" + "\4\0\7\1\1\0\11\1\1\37\1\1\1\40\42\1" + + "\3\0\2\1\1\40\45\1\2\0\44\1\3\0\60\1" + "\1\40\13\1\1\37\4\1\3\0\2\1\1\40\45\1" + "\1\40\6\1\1\0\10\1\1\40\147\1"; + + private static int[] zzUnpackAction() { + int[] result = new int[1321]; + 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\102\0\204\0\306\0\u0108\0\u014a\0\u018c\0\u01ce" + + "\0\u0210\0\u0252\0\u0294\0\u02d6\0\u018c\0\u018c\0\u0318\0\u035a" + + "\0\u018c\0\u039c\0\u03de\0\u0420\0\u0462\0\u04a4\0\u04e6\0\u0528" + + "\0\u056a\0\u05ac\0\u05ee\0\u018c\0\u0630\0\u0672\0\u06b4\0\u06f6" + + "\0\u0738\0\u018c\0\u077a\0\u018c\0\u07bc\0\u07fe\0\u0840\0\u0882" + + "\0\u08c4\0\u0906\0\u0948\0\u098a\0\u09cc\0\u0a0e\0\u0a50\0\u0a92" + + "\0\u0ad4\0\u018c\0\u0b16\0\u018c\0\u0b58\0\u0b9a\0\u018c\0\u0bdc" + + "\0\u0b58\0\u018c\0\u018c\0\u0c1e\0\u0b58\0\u0c60\0\u018c\0\u018c" + + "\0\u0ca2\0\u018c\0\u0ce4\0\u0d26\0\u0d68\0\u0daa\0\u0dec\0\u0e2e" + + "\0\u0e70\0\u0eb2\0\u018c\0\u0ef4\0\u0f36\0\u0f78\0\u0fba\0\u0ffc" + + "\0\u103e\0\u1080\0\u10c2\0\u1104\0\u1146\0\u1188\0\u11ca\0\u120c" + + "\0\u124e\0\u1290\0\u12d2\0\u01ce\0\u018c\0\u1314\0\u1356\0\u1398" + + "\0\u13da\0\u141c\0\u145e\0\u14a0\0\u14e2\0\u1524\0\u1566\0\u15a8" + + "\0\u15ea\0\u162c\0\u166e\0\u16b0\0\u16f2\0\u1734\0\u1776\0\u17b8" + + "\0\u17fa\0\u183c\0\u187e\0\u18c0\0\u1902\0\u1944\0\u1986\0\u19c8" + + "\0\u1a0a\0\u1a4c\0\u1a8e\0\u1ad0\0\u1b12\0\u1b54\0\u1b96\0\u1bd8" + + "\0\u1c1a\0\u1c5c\0\u1c9e\0\u1ce0\0\u1d22\0\u1d64\0\u1da6\0\u1de8" + + "\0\u1e2a\0\u1e6c\0\u1eae\0\u1ef0\0\u1f32\0\u1f74\0\u1fb6\0\u1ff8" + + "\0\u03de\0\u203a\0\u207c\0\u20be\0\u2100\0\u2142\0\u2184\0\u21c6" + + "\0\u2208\0\u224a\0\u228c\0\u22ce\0\u2310\0\u2352\0\u2394\0\u23d6" + + "\0\u2418\0\u245a\0\u249c\0\u24de\0\u2520\0\u2562\0\u25a4\0\u25e6" + + "\0\u2628\0\u266a\0\u26ac\0\u26ee\0\u2730\0\u2772\0\u27b4\0\u27f6" + + "\0\u2838\0\u287a\0\u28bc\0\u28fe\0\u2940\0\u2982\0\u29c4\0\u2a06" + + "\0\u2a48\0\u2a8a\0\u2acc\0\u2b0e\0\u2b50\0\u2b92\0\u2bd4\0\u2c16" + + "\0\u2c58\0\u018c\0\u2c9a\0\u2cdc\0\u2d1e\0\u2d60\0\u018c\0\u2da2" + + "\0\u2de4\0\u2e26\0\u2e68\0\u2eaa\0\u2eec\0\u2f2e\0\u2f70\0\u2fb2" + + "\0\u2ff4\0\u3036\0\u3078\0\u30ba\0\u30fc\0\u313e\0\u3180\0\u31c2" + + "\0\u1146\0\u3204\0\u3246\0\u3288\0\u32ca\0\u330c\0\u334e\0\u3390" + + "\0\u33d2\0\u3414\0\u1ad0\0\u3456\0\u3498\0\u34da\0\u351c\0\u355e" + + "\0\u35a0\0\u35e2\0\u3624\0\u3666\0\u36a8\0\u36ea\0\u372c\0\u376e" + + "\0\u37b0\0\u37f2\0\u3834\0\u3876\0\u38b8\0\u38fa\0\u393c\0\u397e" + + "\0\u39c0\0\u3a02\0\u3a44\0\u3a86\0\u3ac8\0\u3b0a\0\u3b4c\0\u3b8e" + + "\0\u3bd0\0\u3c12\0\u3c54\0\u3c96\0\u3cd8\0\u3d1a\0\u3d5c\0\u3d9e" + + "\0\u3de0\0\u3e22\0\u3e64\0\u3ea6\0\u3ee8\0\u3f2a\0\u3f6c\0\u3fae" + + "\0\u3ff0\0\u4032\0\u4074\0\u40b6\0\u40f8\0\u413a\0\u417c\0\u41be" + + "\0\u4200\0\u4242\0\u4284\0\u42c6\0\u4308\0\u434a\0\u438c\0\u43ce" + + "\0\u4410\0\u4452\0\u4494\0\u44d6\0\u4518\0\u455a\0\u459c\0\u45de" + + "\0\u4620\0\u4662\0\u46a4\0\u46e6\0\u4728\0\u476a\0\u47ac\0\u47ee" + + "\0\u018c\0\u4830\0\u4872\0\u48b4\0\u48f6\0\u4938\0\u497a\0\u49bc" + + "\0\u49fe\0\u4a40\0\u4a82\0\u01ce\0\u4ac4\0\u4b06\0\u4b48\0\u4b8a" + + "\0\u4bcc\0\u4c0e\0\u4c50\0\u4c92\0\u4cd4\0\u4d16\0\u4d58\0\u4d9a" + + "\0\u4ddc\0\u4e1e\0\u4e60\0\u4ea2\0\u4ee4\0\u4f26\0\u4f68\0\u4faa" + + "\0\u4fec\0\u502e\0\u5070\0\u50b2\0\u50f4\0\u5136\0\u5178\0\u51ba" + + "\0\u51fc\0\u523e\0\u5280\0\u52c2\0\u5304\0\u5346\0\u5388\0\u53ca" + + "\0\u540c\0\u544e\0\u5490\0\u54d2\0\u5514\0\u5556\0\u5598\0\u55da" + + "\0\u561c\0\u565e\0\u56a0\0\u56e2\0\u5724\0\u5766\0\u57a8\0\u57ea" + + "\0\u582c\0\u586e\0\u58b0\0\u58f2\0\u5934\0\u5976\0\u59b8\0\u59fa" + + "\0\u5a3c\0\u5a7e\0\u5ac0\0\u5b02\0\u5b44\0\u5b86\0\u5bc8\0\u5c0a" + + "\0\u5c4c\0\u5c8e\0\u5cd0\0\u5d12\0\u5d54\0\u5d96\0\u5dd8\0\u5e1a" + + "\0\u5e5c\0\u5e9e\0\u5ee0\0\u5f22\0\u5f64\0\u5fa6\0\u5fe8\0\u602a" + + "\0\u606c\0\u60ae\0\u60f0\0\u6132\0\u6174\0\u61b6\0\u61f8\0\u544e" + + "\0\u623a\0\u627c\0\u018c\0\u62be\0\u01ce\0\u6300\0\u6342\0\u6384" + + "\0\u63c6\0\u6408\0\u644a\0\u648c\0\u64ce\0\u6510\0\u6552\0\u6594" + + "\0\u65d6\0\u6618\0\u665a\0\u669c\0\u66de\0\u6720\0\u6762\0\u67a4" + + "\0\u67e6\0\u6828\0\u686a\0\u68ac\0\u68ee\0\u6930\0\u6972\0\u69b4" + + "\0\u69f6\0\u6a38\0\u6a7a\0\u6abc\0\u6afe\0\u6b40\0\u6b82\0\u6bc4" + + "\0\u6c06\0\u6c48\0\u6c8a\0\u6ccc\0\u6d0e\0\u6d50\0\u6d92\0\u6dd4" + + "\0\u6e16\0\u6e58\0\u6e9a\0\u6edc\0\u6f1e\0\u6f60\0\u6fa2\0\u6fe4" + + "\0\u7026\0\u7068\0\u70aa\0\u70ec\0\u712e\0\u7170\0\u71b2\0\u71f4" + + "\0\u7236\0\u7278\0\u72ba\0\u72fc\0\u733e\0\u7380\0\u24de\0\u73c2" + + "\0\u7404\0\u7446\0\u7488\0\u74ca\0\u750c\0\u754e\0\u7590\0\u75d2" + + "\0\u7614\0\u7656\0\u7698\0\u76da\0\u771c\0\u775e\0\u77a0\0\u77e2" + + "\0\u7824\0\u7866\0\u78a8\0\u78ea\0\u792c\0\u796e\0\u79b0\0\u79f2" + + "\0\u7a34\0\u7a76\0\u7ab8\0\u7afa\0\u7b3c\0\u7b7e\0\u7bc0\0\u7c02" + + "\0\u7c44\0\u7c86\0\u7cc8\0\u7d0a\0\u7d4c\0\u7d8e\0\u7dd0\0\u7e12" + + "\0\u7e54\0\u7e96\0\u7ed8\0\u7f1a\0\u7f5c\0\u7f9e\0\u7fe0\0\u8022" + + "\0\u8064\0\u80a6\0\u80e8\0\u812a\0\u816c\0\u81ae\0\u81f0\0\u8232" + + "\0\u8274\0\u82b6\0\u82f8\0\u833a\0\u837c\0\u018c\0\u83be\0\u8400" + + "\0\u018c\0\u8442\0\u8484\0\u84c6\0\u8508\0\u854a\0\u858c\0\u85ce" + + "\0\u8610\0\u8652\0\u8694\0\u86d6\0\u8718\0\u875a\0\u879c\0\u87de" + + "\0\u8820\0\u8862\0\u88a4\0\u88e6\0\u8928\0\u896a\0\u89ac\0\u89ee" + + "\0\u8a30\0\u8a72\0\u8ab4\0\u8af6\0\u8b38\0\u8b7a\0\u8bbc\0\u8bfe" + + "\0\u8c40\0\u8c82\0\u8cc4\0\u8d06\0\u8d48\0\u8d8a\0\u8dcc\0\u8e0e" + + "\0\u8e50\0\u8e92\0\u8ed4\0\u8f16\0\u8f58\0\u8f9a\0\u8fdc\0\u901e" + + "\0\u9060\0\u90a2\0\u90e4\0\u9126\0\u9168\0\u91aa\0\u91ec\0\u922e" + + "\0\u9270\0\u92b2\0\u92f4\0\u9336\0\u9378\0\u93ba\0\u93fc\0\u943e" + + "\0\u9480\0\u94c2\0\u9504\0\u9546\0\u9588\0\u95ca\0\u960c\0\u964e" + + "\0\u9690\0\u96d2\0\u9714\0\u9756\0\u9798\0\u97da\0\u981c\0\u985e" + + "\0\u98a0\0\u98e2\0\u9924\0\u9966\0\u99a8\0\u99ea\0\u9a2c\0\u9a6e" + + "\0\u9ab0\0\u9af2\0\u9b34\0\u9b76\0\u9bb8\0\u9bfa\0\u9c3c\0\u9c7e" + + "\0\u9cc0\0\u9d02\0\u9d44\0\u9d86\0\u9dc8\0\u9e0a\0\u9e4c\0\u9e8e" + + "\0\u9ed0\0\u9f12\0\u9f54\0\u9f96\0\u9fd8\0\ua01a\0\ua05c\0\ua09e" + + "\0\ua0e0\0\ua122\0\ua164\0\ua1a6\0\ua1e8\0\ua22a\0\ua26c\0\ua2ae" + + "\0\ua2f0\0\ua332\0\ua374\0\ua3b6\0\ua3f8\0\ua43a\0\ua47c\0\ua4be" + + "\0\ua500\0\ua542\0\ua584\0\ua5c6\0\ua608\0\ua64a\0\ua68c\0\ua6ce" + + "\0\ua710\0\ua752\0\ua794\0\ua7d6\0\ua818\0\ua85a\0\ua89c\0\ua8de" + + "\0\ua920\0\ua962\0\ua9a4\0\ua9e6\0\uaa28\0\uaa6a\0\uaaac\0\uaaee" + + "\0\uab30\0\uab72\0\uabb4\0\uabf6\0\uac38\0\uac7a\0\uacbc\0\uacfe" + + "\0\uad40\0\uad82\0\uadc4\0\uae06\0\uae48\0\u8508\0\uae8a\0\uaecc" + + "\0\u8694\0\uaf0e\0\uaf50\0\uaf92\0\uafd4\0\ub016\0\ub058\0\ub09a" + + "\0\ub0dc\0\ub11e\0\ub160\0\ub1a2\0\ub1e4\0\ub226\0\ub268\0\ub2aa" + + "\0\ub2ec\0\ub32e\0\ub370\0\ub3b2\0\ub3f4\0\ub436\0\ub478\0\ub4ba" + + "\0\ub4fc\0\ub53e\0\ub580\0\ub5c2\0\ub604\0\ub646\0\ub688\0\ub6ca" + + "\0\ub70c\0\ub74e\0\ub790\0\ub7d2\0\ub814\0\ub856\0\ub898\0\ub8da" + + "\0\ub91c\0\ub95e\0\ub9a0\0\ub9e2\0\uba24\0\uba66\0\ubaa8\0\ubaea" + + "\0\ubb2c\0\ubb6e\0\ubbb0\0\ubbf2\0\ubc34\0\ubc76\0\ubcb8\0\ubcfa" + + "\0\ubd3c\0\ubd7e\0\ubdc0\0\ube02\0\ube44\0\ube86\0\ubec8\0\ubf0a" + + "\0\ubf4c\0\ubf8e\0\ubfd0\0\uc012\0\uc054\0\uc096\0\uc0d8\0\uc11a" + + "\0\uc15c\0\uc19e\0\uc1e0\0\uc222\0\uc264\0\uc2a6\0\uc2e8\0\uc32a" + + "\0\uc36c\0\uc3ae\0\uc3f0\0\uc432\0\uc474\0\uc4b6\0\uc4f8\0\uc53a" + + "\0\uc57c\0\uc5be\0\uc600\0\uc642\0\uc684\0\uc6c6\0\uc708\0\uc74a" + + "\0\uc78c\0\uc7ce\0\uc810\0\uc852\0\uc894\0\uc8d6\0\uc918\0\uc95a" + + "\0\uc99c\0\uc9de\0\uca20\0\uca62\0\ucaa4\0\ucae6\0\ucb28\0\ucb6a" + + "\0\ucbac\0\ucbee\0\ucc30\0\ucc72\0\uccb4\0\uccf6\0\ucd38\0\ucd7a" + + "\0\ucdbc\0\ucdfe\0\uce40\0\uce82\0\ucec4\0\ucf06\0\ucf48\0\ucf8a" + + "\0\ucfcc\0\ud00e\0\ud050\0\ud092\0\ud0d4\0\ud116\0\ud158\0\ud19a" + + "\0\ud1dc\0\ud21e\0\ud260\0\ud2a2\0\ud2e4\0\u5070\0\ud326\0\ud368" + + "\0\ud3aa\0\ud3ec\0\ud42e\0\ud470\0\ud4b2\0\ud4f4\0\ud536\0\ud578" + + "\0\ud5ba\0\ud5fc\0\ud63e\0\ud680\0\ud6c2\0\ud704\0\ud746\0\ud788" + + "\0\ud7ca\0\ud80c\0\ud84e\0\ud890\0\ud8d2\0\ud914\0\ud956\0\ud998" + + "\0\ud9da\0\uda1c\0\uda5e\0\udaa0\0\udae2\0\udb24\0\udb66\0\udba8" + + "\0\udbea\0\udc2c\0\udc6e\0\udcb0\0\udcf2\0\udd34\0\udd76\0\uddb8" + + "\0\uddfa\0\ude3c\0\ude7e\0\udec0\0\udf02\0\udf44\0\udf86\0\udfc8" + + "\0\ue00a\0\ue04c\0\ue08e\0\uba66\0\ue0d0\0\ue112\0\ue154\0\ue196" + + "\0\ue1d8\0\ue21a\0\ue25c\0\ue29e\0\ue2e0\0\ue322\0\ue364\0\ue3a6" + + "\0\ue3e8\0\ue42a\0\ue46c\0\ue4ae\0\ue4f0\0\ue532\0\ue574\0\ue5b6" + + "\0\ue5f8\0\ue63a\0\ue67c\0\ue6be\0\ue700\0\ue742\0\ue784\0\ue7c6" + + "\0\ue808\0\ue84a\0\ue88c\0\ue8ce\0\ue910\0\ue952\0\ue994\0\ue9d6" + + "\0\uea18\0\uea5a\0\uea9c\0\ueade\0\ueb20\0\ueb62\0\ueba4\0\uebe6" + + "\0\uec28\0\uec6a\0\uecac\0\uecee\0\ued30\0\ued72\0\uedb4\0\uedf6" + + "\0\uee38\0\uee7a\0\ueebc\0\ueefe\0\uef40\0\uef82\0\uefc4\0\uf006" + + "\0\uf048\0\uf08a\0\uf0cc\0\uf10e\0\uf150\0\uf192\0\uf1d4\0\uf216" + + "\0\uf258\0\uf29a\0\uf2dc\0\uf31e\0\uf360\0\uf3a2\0\uf3e4\0\uf426" + + "\0\uf468\0\uf4aa\0\uf4ec\0\uf52e\0\uf570\0\uf5b2\0\uf5f4\0\uf636" + + "\0\uf678\0\uf6ba\0\uf6fc\0\uf73e\0\uf780\0\uf7c2\0\uf804\0\uf846" + + "\0\uf888\0\uf8ca\0\uf90c\0\uf94e\0\uf990\0\uf9d2\0\ufa14\0\ufa56" + + "\0\ufa98\0\ufada\0\ufb1c\0\ufb5e\0\ufba0\0\ufbe2\0\ufc24\0\ufc66" + + "\0\ufca8\0\ufcea\0\ufd2c\0\ufd6e\0\ufdb0\0\ufdf2\0\ufe34\0\ufe76" + + "\0\ufeb8\0\ufefa\0\uff3c\0\uff7e\0\uffc0\1\2\1\104\1\206" + "\1\310\1\u010a\1\u014c\1\u018e\1\u01d0\1\u0212\0\uaaac\1\u0254" + + "\1\u0296\1\u02d8\1\u031a\1\u035c\1\u039e\1\u03e0\1\u0422\1\u0464" + + "\1\u04a6\1\u04e8\1\u052a\1\u056c\1\u05ae\1\u05f0\1\u0632\1\u0674" + + "\1\u06b6\1\u06f8\1\u073a\1\u077c\1\u07be\1\u0800\1\u0842\1\u0884" + + "\1\u08c6\1\u0908\1\u094a\1\u098c\1\u09ce\1\u0a10\1\u0a52\1\u0a94" + + "\1\u0ad6\1\u0b18\1\u0b5a\1\u0b9c\1\u0bde\1\u0c20\1\u0c62\1\u0ca4" + + "\1\u0ce6\1\u0d28\1\u0d6a\1\u0dac\1\u0dee\1\u0e30\1\u0e72\1\u0eb4" + + "\1\u0ef6\1\u0f38\1\u0f7a\1\u0fbc\1\u0ffe\1\u1040\1\u1082\1\u10c4" + + "\1\u1106\1\u1148\1\u118a\1\u11cc\1\u120e\1\u1250\1\u1292\1\u12d4" + + "\1\u1316\1\u1358\1\u139a\1\u13dc\1\u141e\1\u1460\1\u14a2\1\u14e4" + + "\1\u1526\1\u1568\1\u15aa\1\u15ec\1\u162e\1\u1670\1\u16b2\1\u16f4" + + "\1\u1736\1\u1778\1\u17ba\1\u17fc\1\u183e\1\u1880\1\u18c2\1\u1904" + + "\1\u1946\1\u1988\1\u19ca\1\u1a0c\1\u1a4e\1\u1a90\1\u1ad2\1\u1b14" + + "\1\u1b56\1\u1b98\1\u1bda\1\u1c1c\1\u1c5e\1\u1ca0\1\u1ce2\1\u1d24" + + "\1\u1d66\1\u1da8\1\u1dea\1\u1e2c\1\u1e6e\1\u1eb0\1\u1ef2\1\u1f34" + + "\1\u1f76\0\u01ce\1\u1fb8\1\u1ffa\1\u203c\1\u207e\1\u20c0\1\u2102" + + "\1\u2144\1\u2186\1\u21c8\1\u220a\1\u224c\1\u228e\1\u22d0\1\u2312" + + "\1\u2354\1\u2396\1\u23d8\1\u241a\1\u245c\1\u249e\1\u24e0\1\u2522" + + "\1\u2564\1\u25a6\1\u25e8\1\u262a\1\u266c\1\u26ae\1\u26f0\1\u2732" + + "\1\u2774\1\u27b6\1\u27f8\1\u283a\1\u287c\1\u28be\1\u2900\1\u2942" + + "\1\u2984\1\u29c6\1\u2a08\1\u2a4a\1\u2a8c\1\u2ace\1\u2b10\1\u2b52" + + "\1\u2b94\0\uf52e\1\u2bd6\1\u2c18\1\u2c5a\1\u2c9c\1\u2cde\1\u2d20" + + "\1\u2d62\1\u2da4\1\u2de6\1\u2e28\1\u2e6a\1\u2eac\1\u2eee\1\u2f30" + + "\1\u2f72\1\u2fb4\1\u2ff6\1\u3038\1\u307a\1\u30bc\1\u30fe\1\u3140" + + "\1\u3182\1\u31c4\1\u3206\1\u3248\1\u328a\1\u32cc\1\u330e\1\u3350" + + "\1\u3392\1\u33d4\1\u3416\1\u3458\1\u349a\1\u34dc\1\u351e\1\u3560" + + "\1\u35a2\1\u35e4\1\u3626\1\u3668\1\u36aa\1\u36ec\1\u372e\1\u3770" + + "\1\u37b2\1\u37f4\1\u3836\1\u3878\1\u38ba\1\u38fc\1\u393e\1\u3980" + + "\1\u39c2\1\u3a04\1\u3a46\1\u3a88\1\u3aca\1\u3b0c\1\u3b4e\1\u3b90" + + "\1\u3bd2\1\u3c14\1\u3c56\1\u3c98\1\u3cda\1\u3d1c\1\u3d5e\1\u3da0" + + "\1\u3de2\1\u3e24\1\u3e66\1\u3ea8\1\u3eea\1\u3f2c\1\u3f6e\1\u3fb0" + + "\1\u3ff2\1\u4034\1\u4076\1\u40b8\1\u40fa\1\u413c\1\u417e\1\u41c0" + + "\1\u4202\1\u4244\1\u4286\1\u42c8\1\u430a\1\u434c\1\u438e\1\u43d0" + + "\1\u4412\1\u4454\1\u4496\1\u44d8\1\u451a\1\u455c\1\u459e\1\u45e0" + + "\1\u4622\1\u4664\1\u46a6\1\u46e8\1\u472a\1\u476c\1\u47ae\1\u47f0" + + "\1\u4832\1\u4874\1\u48b6\1\u48f8\1\u493a\1\u497c\1\u49be\1\u4a00" + "\1\u4a42"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[1321]; + 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 = "\1\7\2\10\1\11\1\12\1\13\1\11\1\14\1\15" + "\1\16\1\7\1\17\1\20\1\21\1\22\1\23\1\16" + + "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33" + "\1\34\1\7\1\35\1\36\1\37\2\23\1\40\1\23" + + "\1\41\1\42\1\43\1\42\2\34\1\7\1\44\1\7" + "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54" + + "\1\55\1\56\1\57\2\10\1\60\1\61\3\11\1\7" + "\1\62\1\30\1\45\1\50\10\63\1\64\1\63\1\65" + + "\1\66\1\63\1\67\64\63\12\70\1\71\1\66\1\70" + "\1\72\33\70\1\73\30\70\12\74\1\75\1\76\1\74" + + "\1\77\60\74\1\100\3\74\15\101\1\102\1\101\1\103" + "\5\101\1\104\25\101\1\105\2\101\1\106\20\101\1\107" + + "\1\110\1\111\15\112\1\113\7\112\1\114\25\112\1\115" + "\2\112\1\116\20\112\1\117\1\120\1\121\103\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\3\123\2\11\1\123\1\11\1\123\1\0\3\123" + + "\5\0\10\123\17\0\1\123\2\0\17\123\3\11\1\0" + "\10\123\1\124\1\123\1\124\1\123\1\0\3\123\5\0" + + "\1\125\7\123\17\0\1\123\2\0\17\123\3\124\1\0" + "\4\123\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + + "\1\126\5\10\22\0\6\10\1\127\1\10\1\130\1\10" + "\1\131\7\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\7\10\1\132\22\0\4\10\1\133\15\10" + "\2\0\3\10\1\0\2\10\2\134\1\10\1\134\1\10" + + "\2\0\1\122\1\134\1\10\1\135\3\0\1\10\1\136" + "\1\137\1\140\2\10\1\141\1\142\15\0\1\143\4\0" + + "\1\144\1\145\1\146\1\147\1\10\1\150\1\151\1\152" + "\6\10\1\153\3\134\1\135\1\0\1\10\1\144\1\147" + + "\1\0\7\10\2\0\1\122\2\10\2\0\1\154\1\0" + "\10\10\5\0\1\42\14\0\22\10\2\0\3\10\16\0" + + "\1\22\121\0\1\42\44\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\1\10\1\155\20\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\156" + "\1\157\4\10\22\0\6\10\1\160\13\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\161" + "\1\10\1\162\2\10\22\0\2\10\1\163\3\10\1\134" + + "\2\10\1\164\10\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\165\7\10\22\0\4\10\1\166" + + "\15\10\2\0\3\10\1\0\2\10\1\134\2\10\1\134" + "\1\167\2\0\1\122\2\10\4\0\5\10\1\170\1\171" + + "\1\10\22\0\2\10\1\172\3\10\1\173\10\10\1\174" + "\1\175\1\134\2\0\3\10\1\0\4\10\1\176\1\10" + + "\1\177\2\0\1\122\2\10\4\0\2\10\1\200\3\10" + "\1\201\1\10\22\0\7\10\1\202\12\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\203" + "\1\10\1\204\2\10\22\0\2\10\1\205\3\10\1\206" + + "\13\10\2\0\3\10\1\0\6\10\1\207\2\0\1\122" + "\2\10\4\0\1\10\1\210\1\10\1\211\2\10\1\212" + + "\1\10\22\0\1\213\1\214\1\215\1\216\5\10\1\217" + "\2\10\1\220\5\10\2\0\1\10\1\213\1\216\33\0" + + "\1\42\2\0\1\42\77\0\1\42\1\0\1\42\100\0" + "\1\221\1\42\101\0\1\42\1\0\1\23\50\0\1\222" + + "\14\0\1\223\1\0\1\224\1\0\1\225\5\0\1\42" + "\15\0\1\226\1\227\1\230\1\0\1\231\1\0\1\232" + + "\1\0\1\233\3\0\1\234\10\0\1\230\36\0\1\42" + "\5\0\1\42\36\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\2\10\1\235\10\10\1\236\6\10\2\0" + "\3\10\1\0\6\10\1\237\2\0\1\122\2\10\4\0" + + "\5\10\1\240\1\241\1\10\22\0\6\10\1\242\13\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\4\10\1\243\2\10\1\244\22\0\4\10\1\245\1\246" + "\1\10\1\247\12\10\2\0\1\243\2\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\2\10\1\250\5\10\22\0" + "\2\10\1\251\17\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\252\1\10\1\253\2\10" + "\22\0\6\10\1\254\13\10\2\0\3\10\1\0\6\10" + + "\1\255\2\0\1\122\2\10\4\0\2\10\1\256\1\257" + "\1\10\1\260\1\261\1\10\22\0\1\262\5\10\1\263" + + "\13\10\2\0\1\10\1\262\1\10\1\0\6\10\1\264" + "\2\0\1\122\2\10\4\0\4\10\1\265\3\10\22\0" + + "\4\10\1\134\15\10\2\0\1\265\2\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\266\4\10\22\0" + + "\2\10\1\267\17\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\3\10\1\270\4\10\22\0\6\10" + + "\1\271\13\10\2\0\3\10\1\0\4\10\1\272\2\10" + "\2\0\1\122\2\10\4\0\3\10\1\273\1\10\1\274" + + "\2\10\22\0\2\10\1\275\17\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\6\10\1\276\1\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\5\10\1\277\2\10\22\0\2\10\1\300" + + "\17\10\2\0\3\10\1\0\6\10\1\301\2\0\1\122" + "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\10\63" + + "\1\0\1\63\2\0\1\63\1\0\64\63\15\302\1\0" + "\64\302\1\0\2\303\2\0\1\303\1\0\1\303\3\0" + + "\2\303\4\0\10\303\15\0\1\304\4\0\17\303\5\0" + "\3\303\12\70\2\0\1\70\1\0\33\70\1\0\30\70" + + "\12\74\2\0\1\74\1\0\60\74\1\0\3\74\1\0" + "\2\305\2\0\1\305\1\0\1\305\3\0\2\305\4\0" + + "\10\305\15\0\1\306\4\0\17\305\5\0\3\305\15\101" + "\1\0\1\101\1\0\57\101\17\0\1\307\65\0\15\101" + + "\1\0\1\101\1\0\2\101\1\310\32\101\1\311\21\101" + "\3\0\15\101\1\0\1\101\1\0\2\101\1\312\54\101" + + "\3\0\15\101\1\0\1\101\1\0\36\101\1\313\20\101" + "\2\0\1\314\22\0\1\315\32\0\1\316\46\0\1\317" + + "\135\0\1\314\22\0\1\314\15\112\1\0\61\112\3\0" + "\15\112\1\0\4\112\1\320\32\112\1\321\21\112\3\0" + + "\15\112\1\0\4\112\1\322\54\112\3\0\15\112\1\0" + "\40\112\1\323\20\112\2\0\1\324\22\0\1\325\32\0" + + "\1\326\46\0\1\327\135\0\1\324\22\0\1\324\7\0" + "\1\330\72\0\10\123\1\0\3\123\5\0\10\123\17\0" + + "\1\123\2\0\22\123\1\0\10\123\1\124\1\123\1\124" + "\1\123\1\0\3\123\5\0\10\123\17\0\1\123\2\0" + + "\17\123\3\124\1\0\7\123\4\331\1\123\1\0\3\123" + "\5\0\3\123\3\331\2\123\17\0\1\123\2\0\5\123" + + "\1\331\1\123\1\331\7\123\3\331\1\0\1\123\1\331" + "\2\123\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + + "\1\332\2\10\22\0\2\10\1\333\17\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\334" + + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\10\10\1\335\11\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\336\17\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\3\10\1\337\4\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\2\10\1\340\5\10\22\0\2\10\1\341" + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\342\4\10\22\0\22\10\2\0\3\10" + "\1\0\3\10\1\343\3\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\344\7\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + "\1\345\2\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\1\10\1\346\6\10\22\0" + "\11\10\1\347\2\10\1\350\5\10\2\0\3\10\1\0" + + "\2\351\2\0\1\351\1\0\1\351\3\0\2\351\4\0" + "\10\351\22\0\17\351\5\0\3\351\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\3\10\1\352\16\10" + "\2\0\2\10\1\352\1\0\7\10\2\0\1\122\2\10" + + "\4\0\2\10\1\353\3\10\1\354\1\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\355\15\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + + "\1\356\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\11\10\1\357\10\10\2\0" + + "\3\10\1\0\6\10\1\360\2\0\1\122\2\10\4\0" + "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\361\4\10\22\0\22\10" + "\2\0\3\10\1\0\6\10\1\362\2\0\1\122\2\10" + + "\4\0\10\10\22\0\22\10\2\0\3\10\17\0\1\363" + "\63\0\7\10\2\0\1\122\2\10\4\0\7\10\1\364" + + "\22\0\22\10\2\0\3\10\1\0\6\10\1\365\2\0" + "\1\122\2\10\4\0\10\10\22\0\14\10\1\134\5\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\366\7\10\22\0\11\10\1\367\10\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\1\10\1\134\20\10\2\0\3\10\1\0\4\10\1\370" + + "\2\10\2\0\1\122\2\10\4\0\1\10\1\371\3\10" + "\1\372\1\10\1\373\22\0\4\10\1\374\3\10\1\375" + + "\5\10\1\376\3\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\7\10\1\377\12\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\10\10\1\u0100\11\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\7\10" + "\1\u0101\12\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\1\10\1\134\1\10\1\u0102\4\10\22\0" + "\1\10\1\u0103\3\10\1\u0104\14\10\2\0\3\10\1\0" + + "\6\10\1\u0105\2\0\1\122\2\10\4\0\10\10\22\0" + "\7\10\1\134\12\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\4\10\1\u0106\15\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\6\10\1\u0107\1\10\22\0\22\10\2\0\3\10\1\0" + "\6\10\1\u0108\2\0\1\122\2\10\4\0\10\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\6\10\1\u0109\1\10\22\0\4\10\1\u010a\15\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\2\10\1\u010b\5\10\22\0\22\10\2\0\3\10\1\0" + + "\2\10\2\134\1\10\1\134\1\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\17\10\3\134\2\0\3\10\1\0" + + "\3\10\1\134\3\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\17\10\3\134\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u010c\13\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\10\1\u010d\6\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10" + + "\1\u010e\14\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\1\10\1\134\4\10\1\u010f\1\10\22\0" + + "\3\10\1\u0110\16\10\2\0\2\10\1\u0110\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u0111" + + "\1\10\1\u0112\10\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\4\10\1\u0113\3\10\22\0\22\10" + + "\2\0\1\u0113\2\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u0114\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\366" + "\22\0\5\10\1\u0115\14\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\5\10\1\u0116\2\10\22\0" + "\10\10\1\u0117\11\10\2\0\3\10\1\0\4\10\1\u0118" + + "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\2\10\1\u0119\5\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u011a\3\10" + + "\1\u011b\2\10\22\0\4\10\1\u011c\1\u011d\14\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u011e\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\203" + + "\2\10\1\u011f\1\u0120\13\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u0121\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\6\10\1\u0122\1\10\22\0\22\10\2\0\3\10" + + "\1\0\1\10\1\u0123\5\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0124\13\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\7\10\1\u0125\22\0\22\10\2\0\3\10\57\0\1\u0126" + "\45\0\1\u0127\3\0\1\u0128\27\0\1\u0129\1\u012a\103\0" + + "\1\u012b\106\0\1\u012c\40\0\1\u012d\100\0\1\u012e\31\0" + "\1\u012f\17\0\1\u012e\30\0\1\u0130\135\0\1\u0131\43\0" + + "\1\u0132\103\0\1\u0133\77\0\1\u0134\56\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\7\10\1\u0135\1\u0136" + + "\11\10\2\0\3\10\1\0\6\10\1\134\2\0\1\122" + "\2\10\4\0\6\10\1\u0137\1\10\22\0\1\10\1\u0138" + + "\3\10\1\u0139\1\10\1\u0138\12\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\7\10\1\u0104\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\10\10\1\u013a\11\10\2\0\3\10" + + "\1\0\6\10\1\u013b\2\0\1\122\2\10\4\0\10\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\1\10\1\u013c\20\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + + "\1\u013d\1\u013e\1\u013f\1\u0140\2\10\22\0\4\10\1\u0141" + "\15\10\2\0\1\u013f\2\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\3\10\1\u0142\16\10\2\0" + "\2\10\1\u0142\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\10\1\u0143\5\10\1\u0144\22\0\2\10\1\u0145\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u0146\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u0147\2\10" + + "\1\u0148\2\10\22\0\2\10\1\u0149\1\10\1\u014a\1\u014b" + "\1\u014c\5\10\1\u014d\5\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u014e" + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\4\10\1\u014f\15\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\15\10\1\u0150\4\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\11\10\1\u013a\10\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\2\10\1\u0151\5\10\22\0\1\10\1\u013c\2\10\1\u0152" + + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u0153\4\10\1\u0154\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + "\1\u0155\4\10\22\0\5\10\1\u0156\14\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\4\10\1\u0157\15\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\6\10\1\u0158\1\10\22\0\1\10" + "\1\u0159\20\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\3\10\1\u015a\4\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u015b\1\10\1\u015c\2\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u015d" + + "\1\10\22\0\1\10\1\u015e\2\10\1\u015f\4\10\1\u0160" + "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\1\10\1\u0161\6\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\4\10\1\u0162" + + "\3\10\22\0\22\10\2\0\1\u0162\2\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\1\10\1\u0163\4\10\1\u0164" + + "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\2\10\1\u0165\5\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\10\1\u0166\6\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0167\6\10" + "\22\0\22\10\2\0\3\10\1\0\1\10\1\u0168\5\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + + "\1\u0169\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\4\10\1\u016a\15\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\7\10\1\u016b\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u016c" + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\2\10\1\u013c\5\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u016d" + + "\1\u016e\1\10\22\0\1\10\1\u016f\3\10\1\u0170\1\10" + "\1\u0171\12\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\2\10\1\u0172\17\10\2\0" + "\3\10\1\0\7\303\2\0\1\u0173\2\303\4\0\10\303" + + "\22\0\22\303\2\0\3\303\1\0\2\u0174\2\0\1\u0174" + "\1\0\1\u0174\3\0\2\u0174\4\0\10\u0174\22\0\17\u0174" + + "\5\0\3\u0174\1\0\7\305\2\0\1\u0175\2\305\4\0" + "\10\305\22\0\22\305\2\0\3\305\1\0\2\u0176\2\0" + + "\1\u0176\1\0\1\u0176\3\0\2\u0176\4\0\10\u0176\22\0" + "\17\u0176\5\0\3\u0176\15\101\1\0\1\101\1\0\34\101" + + "\1\u0177\22\101\3\0\15\101\1\0\1\101\1\0\7\101" + "\1\u0178\47\101\3\0\15\101\1\0\1\101\1\0\2\101" + + "\1\u0179\54\101\3\0\15\101\1\0\1\101\1\0\36\101" + "\1\u017a\20\101\2\0\1\u017b\56\0\1\u017b\22\0\1\u017b" + + "\54\0\1\u017c\54\0\1\u017d\74\0\1\u017e\57\0\15\112" + "\1\0\36\112\1\u017f\22\112\3\0\15\112\1\0\11\112" + + "\1\u0180\47\112\3\0\15\112\1\0\4\112\1\u0181\54\112" + "\3\0\15\112\1\0\40\112\1\u0182\20\112\2\0\1\u0183" + + "\56\0\1\u0183\22\0\1\u0183\54\0\1\u0184\54\0\1\u0185" + "\74\0\1\u0186\62\0\4\u0187\15\0\3\u0187\31\0\1\u0187" + + "\1\0\1\u0187\7\0\3\u0187\2\0\1\u0187\3\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0188" + + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u0189\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u018a" + "\6\10\22\0\1\134\21\10\2\0\1\10\1\134\1\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u018b" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\1\10\1\u018c\20\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\2\10\1\134\5\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u018d\4\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\4\10\1\u018e\15\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\11\10\1\160\10\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u018f\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\4\10\1\u0190\15\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0191" + + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\7\10\1\u0192\22\0\1\10\1\u0193" + + "\20\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\7\10\1\u018f\22\0\22\10\2\0\3\10\1\0" + + "\7\351\2\0\1\u0194\2\351\4\0\10\351\16\0\1\135" + "\3\0\22\351\2\0\3\351\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\4\10\1\u0195\15\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\6\10\1\u0196\13\10\2\0\3\10\1\0\6\10" + "\1\u0197\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\7\10\1\360\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u018f" + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\7\10\1\u0198\12\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u018f" + + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\7\10\1\u0199\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\2\10\1\u019a\17\10\2\0\3\10\14\0\1\u019b" + + "\66\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u019c" + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u019d\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\10\1\u019e\6\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\10" + + "\1\u019f\20\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\6\10\1\u01a0\13\10\2\0" + + "\3\10\1\0\6\10\1\u01a1\2\0\1\122\2\10\4\0" + "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\7\10\1\u01a2\12\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\3\10\1\u01a3\4\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\5\10\1\253\2\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\7\10\1\u01a4\12\10\2\0" + + "\3\10\1\0\6\10\1\u01a5\2\0\1\122\2\10\4\0" + "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u01a6\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\1\u0113\21\10\2\0\1\10\1\u0113\1\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\2\10\1\277\17\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\5\10\1\u01a7\14\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\5\10\1\u01a8\2\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\u013c" + "\21\10\2\0\1\10\1\u013c\1\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\11\10\1\u01a9\10\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\5\10\1\u01aa\14\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\7\10\1\365\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\7\10\1\u01ab\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u01ac\4\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\7\10\1\u01ad\12\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\5\10\1\u0152\14\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\2\10\1\u0172\5\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\6\10\1\u01ae\13\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\1\u01af\21\10\2\0\1\10\1\u01af\1\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u01b0" + "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\5\10\1\u01b1\2\10\22\0\22\10\2\0\3\10" + "\1\0\4\10\1\u01b2\2\10\2\0\1\122\2\10\4\0" + + "\7\10\1\u01b3\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u01b4" + + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\134\6\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\10\10\1\u01b5\11\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u01b6\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\7\10\1\u01b7\12\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u01b8\5\10" + + "\1\u01b9\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\7\10\1\u01ba\22\0\5\10\1\u01bb" + + "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\6\10\1\u01bc\1\10\22\0\5\10\1\u01bd\14\10" + + "\2\0\3\10\1\0\4\10\1\u01be\2\10\2\0\1\122" + "\2\10\4\0\2\10\1\u013d\1\u013e\1\u01bf\1\u01c0\1\10" + + "\1\u01c1\22\0\1\10\1\u01c2\1\10\1\u01c3\1\10\1\u01c4" + "\1\u01c5\1\u01c6\12\10\2\0\1\u01bf\1\10\1\u01c3\1\0" + + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u01c7\5\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\7\10\1\u01c8\12\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u01c9\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\242\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\u01ca\6\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\3\10\1\u01cb\16\10\2\0\2\10\1\u01cb\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u01cc" + "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u01cd\4\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\u01ce" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\6\10\1\u01cf\13\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + "\1\u01d0\6\10\22\0\22\10\2\0\3\10\62\0\1\u01d1" + + "\42\0\1\u01d2\106\0\1\u01d3\133\0\1\u01d4\72\0\1\u01d5" + "\24\0\1\u01d5\63\0\1\u01d6\47\0\1\u01d7\131\0\1\u01d8" + + "\100\0\1\u0126\2\0\1\u01d1\47\0\1\u01d9\27\0\1\u01da" + "\44\0\1\u01db\103\0\1\u01dc\51\0\1\u01dc\62\0\1\u01dd" + + "\44\0\1\u01de\57\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u01df\4\10\22\0\7\10\1\u01e0\12\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\1\u01e1\21\10\2\0\1\10\1\u01e1\1\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\11\10" + "\1\134\10\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\7\10\1\134\12\10\2\0" + "\3\10\1\0\6\10\1\134\2\0\1\122\2\10\4\0" + + "\2\10\1\134\5\10\22\0\5\10\1\134\14\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u013c\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u01e2" + + "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\3\10\1\u01e3\4\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u01e4" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u01e5\17\10" + "\2\0\3\10\1\0\4\10\1\176\2\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u01e6\4\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\2\10\1\u01e7\17\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\4\10" + "\1\u01e8\3\10\22\0\5\10\1\u01e9\1\242\13\10\2\0" + + "\1\u01e8\2\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\10\1\u01ea\6\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u01eb\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\4\10\1\u013c\15\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u01ec\4\10\22\0\22\10\2\0\3\10\1\0\4\10" + "\1\u01ed\2\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\10\10\1\u01ee\11\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\6\10\1\134\13\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\5\10\1\u01ef\2\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\13\10\1\134\6\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u01f0\4\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\1\10\1\u01f1\6\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\7\10\1\u01f2\12\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u01f3\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\11\10\1\u01f4\10\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\134" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\2\10\1\u01f5\5\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\10\1\u018a\6\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\5\10\1\u01f6\2\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\5\10\1\u01f7\14\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\132\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\6\10\1\u01f8\1\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\u01f9\6\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u01fa" + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\5\10\1\u01fb\14\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\u01fc\15\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + + "\1\u01fd\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\14\10\1\u01fe\5\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + "\1\u01ff\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\1\10\1\u0200" + "\20\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\4\10\1\u0201\3\10\22\0\22\10\2\0\1\u0201" + "\2\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10" + + "\1\u0202\1\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u0203\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\3\10\1\u0204\4\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u01b8" + "\1\10\1\u0205\3\10\1\u0206\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0207" + "\2\10\1\u0208\1\10\1\u0209\1\10\22\0\3\10\1\u020a" + + "\1\10\1\u020b\1\10\1\u020c\12\10\2\0\1\u0208\1\10" + "\1\u020a\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\6\10\1\u013c\13\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\1\10\1\u020d\1\u020e\2\10" + + "\1\u020f\1\10\1\u0210\22\0\2\10\1\u0211\3\10\1\u0212" + "\1\u0213\4\10\1\u0214\5\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\7\10\1\u0215\22\0\22\10" + "\2\0\3\10\1\0\6\10\1\u01f4\2\0\1\122\2\10" + + "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u0216" + + "\14\10\2\0\3\10\1\0\4\10\1\134\2\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\7\10\1\u0217\12\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u0218\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\2\10\1\u0219\5\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + + "\1\u021a\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\3\10\1\u021b\4\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + "\1\u013c\6\10\22\0\22\10\2\0\3\10\7\0\1\u021c" + + "\73\0\7\u0174\2\0\1\u021d\2\u0174\4\0\10\u0174\16\0" + "\1\u021e\3\0\22\u0174\2\0\3\u0174\7\0\1\u021f\73\0" + + "\7\u0176\2\0\1\u0220\2\u0176\4\0\10\u0176\16\0\1\u0221" + "\3\0\22\u0176\2\0\3\u0176\15\101\1\0\1\101\1\0" + + "\25\101\1\u0222\31\101\3\0\15\101\1\0\1\101\1\0" + "\4\101\1\u0177\52\101\3\0\15\101\1\0\1\101\1\0" + + "\34\101\1\u0223\22\101\3\0\15\101\1\0\1\101\1\0" + "\12\101\1\u0224\44\101\35\0\1\u0225\114\0\1\u0226\60\0" + + "\1\u017c\131\0\1\u0227\25\0\15\112\1\0\27\112\1\u0228" + "\31\112\3\0\15\112\1\0\6\112\1\u017f\52\112\3\0" + + "\15\112\1\0\36\112\1\u0229\22\112\3\0\15\112\1\0" + "\14\112\1\u022a\44\112\35\0\1\u022b\114\0\1\u022c\60\0" + + "\1\u0184\131\0\1\u022d\30\0\4\u022e\15\0\3\u022e\31\0" + "\1\u022e\1\0\1\u022e\7\0\3\u022e\2\0\1\u022e\3\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\7\10" + "\1\u022f\12\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\10\10\1\u0230\11\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\6\10\1\u0137\13\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u0231\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\20\10\1\134\1\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\10\10\1\375\11\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\7\10\1\u0232\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\7\10\1\u0233\12\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u0234" + + "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u0235\5\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0236" + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\2\10\1\u0237\5\10\22\0\22\10" + "\2\0\3\10\7\0\1\u0238\73\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\7\10\1\u0239\12\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\10\10\1\u023a\11\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u023b" + + "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\13\10\1\u023c\6\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\5\10\1\u023d\14\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\14\10\1\u023e\5\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u023f\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + + "\1\u0240\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\6\10\1\u0172\13\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + "\1\u0146\5\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\2\10\1\u0241\1\u0242\4\10" + "\22\0\2\10\1\u0243\3\10\1\u023f\13\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u0244" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\6\10\1\u0245\1\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\3\10\1\u0246\4\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + + "\1\u0247\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\7\10\1\u0248\22\0\3\10\1\u0249\16\10" + + "\2\0\2\10\1\u0249\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u024a\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u024b" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\1\10\1\u024c\6\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\1\u024d\21\10\2\0\1\10\1\u024d\1\10" + "\1\0\1\10\1\u024e\5\10\2\0\1\122\2\10\4\0" + + "\2\10\1\u024f\1\u0250\3\10\1\u0251\22\0\3\10\1\u0252" + "\1\10\1\u0253\1\u0254\13\10\2\0\2\10\1\u0252\1\0" + + "\7\10\2\0\1\122\2\10\4\0\4\10\1\u0255\3\10" + "\22\0\3\10\1\u0142\1\u01b8\1\u0253\14\10\2\0\1\u0255" + + "\1\10\1\u0142\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\5\10\1\u0256\14\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + "\1\u0257\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\3\10\1\u0258\16\10\2\0" + "\2\10\1\u0258\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\14\10\1\u0259\5\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u025a\5\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\2\10\1\u025b\17\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\4\10\1\134\15\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\7\10\1\u025c\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\u025d\15\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\6\10\1\u025e\1\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\3\10\1\u025f\4\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + "\1\u0172\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u0106\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\5\10\1\u0260\2\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0146" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\1\10\1\u0261\7\10" + + "\1\u0262\10\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\2\10\1\u025a\5\10\22\0\13\10\1\u0263" + + "\6\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\2\10\1\u0264\3\10\1\u0265\13\10" + + "\2\0\3\10\1\0\6\10\1\u0266\2\0\1\122\2\10" + "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\1\10\1\u0267\6\10\22\0" + "\1\u0268\21\10\2\0\1\10\1\u0268\1\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\6\10\1\u0269\1\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\2\10\1\u026a\17\10\2\0\3\10" + "\1\0\6\10\1\u026b\2\0\1\122\2\10\4\0\10\10" + + "\22\0\6\10\1\u026c\13\10\2\0\3\10\1\0\6\10" + "\1\u026d\2\0\1\122\2\10\4\0\10\10\22\0\15\10" + + "\1\u026e\4\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\3\10\1\u026f\1\10\1\u0270\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\5\10\1\u0271\14\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\11\10\1\u0272\10\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0273\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\134\7\10\22\0\22\10\2\0\3\10\1\0\6\10" + "\1\u0274\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + + "\1\u0275\1\u0142\16\10\2\0\2\10\1\u0142\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u0276\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u0277\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\1\u0278\21\10\2\0\1\10\1\u0278\1\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\1\10\1\u0279\6\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u0137\4\10\22\0\22\10\2\0\3\10" + "\24\0\1\u027a\136\0\1\u027b\44\0\1\u0131\132\0\1\u027a" + + "\105\0\1\u0131\74\0\1\u027c\1\u027d\46\0\1\u027e\145\0" + "\1\u027f\37\0\1\u0280\104\0\1\u0281\131\0\1\u0282\77\0" + + "\1\u0283\47\0\1\u0284\63\0\1\u0285\75\0\7\10\2\0" + "\1\122\2\10\4\0\3\10\1\u01b4\4\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u0286\4\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + "\1\u0287\17\10\2\0\3\10\1\0\4\10\1\u0288\2\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + + "\1\u0289\5\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\6\10\1\u028a\1\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\3\10\1\132\16\10\2\0\2\10" + + "\1\132\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\4\10\1\u028b\15\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u0172" + "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\11\10\1\u028c\10\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u028d" + + "\2\10\1\u028e\1\u028f\2\10\22\0\1\10\1\u0290\20\10" + "\2\0\1\u028e\2\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\1\10\1\u0291\20\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0292" + + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0293\13\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\4\10\1\u0294\15\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10" + "\1\u0295\15\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\7\10\1\134\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0296" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0297\13\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\2\10\1\u0298\5\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\5\10\1\u0299\2\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\3\10\1\u029a\4\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u029b\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\1\u029c\21\10" + + "\2\0\1\10\1\u029c\1\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\2\10\1\u029d\17\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\2\10\1\246\17\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\2\10\1\u029e\5\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\13\10\1\u029f\6\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\10\10\1\u02a0\11\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\2\10\1\u02a1\5\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\4\10\1\u02a2\3\10\22\0\22\10\2\0\1\u02a2\2\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u02a3" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\6\10\1\u02a4\1\10\22\0\6\10" + "\1\u02a5\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\2\10\1\u023e\17\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\2\10\1\u02a6\17\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u02a7" + + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\u02a8\6\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\5\10\1\u02a9\14\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\1\u02aa\21\10\2\0" + "\1\10\1\u02aa\1\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u02ab\4\10\22\0\22\10\2\0\3\10" + "\1\0\6\10\1\u02ac\2\0\1\122\2\10\4\0\10\10" + + "\22\0\2\10\1\u02ad\17\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u02ae\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\2\10\1\u02af\17\10\2\0\3\10" + + "\1\0\6\10\1\u02b0\2\0\1\122\2\10\4\0\10\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\6\10\1\u02b1\1\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\6\10\1\u02b2\13\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u02b3\4\10\22\0" + + "\2\10\1\163\17\10\2\0\3\10\1\0\4\10\1\u02b4" + "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u02b5\4\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10" + "\1\u02b6\14\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\13\10\1\u02b7\6\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u02b8\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u02b9\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\5\10\1\u02ba\2\10\22\0\22\10\2\0\3\10" + + "\1\0\4\10\1\u02bb\2\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\7\10\1\u02bc\12\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\10\10\1\u02bd\11\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + + "\1\u02be\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\11\10\1\u02bf\10\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + "\1\u02c0\22\0\22\10\2\0\3\10\3\0\4\u02c1\15\0" + + "\3\u02c1\31\0\1\u02c1\1\0\1\u02c1\7\0\3\u02c1\2\0" + "\1\u02c1\11\0\1\u02c2\75\0\4\u02c3\15\0\3\u02c3\31\0" + + "\1\u02c3\1\0\1\u02c3\7\0\3\u02c3\2\0\1\u02c3\11\0" + "\1\u02c4\72\0\14\101\1\u02c5\1\0\1\101\1\0\57\101" + + "\3\0\15\101\1\0\1\101\1\0\10\101\1\u0177\14\101" + "\1\u0222\31\101\3\0\1\101\7\u0224\1\101\1\u0224\1\101" + + "\2\u0224\1\0\1\101\1\u02c6\15\u0224\1\101\1\u0224\2\101" + "\5\u0224\2\101\25\u0224\2\101\3\u0225\1\0\1\u0225\1\u02c6" + + "\5\u0225\1\0\1\u02c6\1\0\2\u0225\2\0\2\u02c6\10\u0225" + "\4\u02c6\1\0\1\u02c6\2\0\5\u02c6\2\0\3\u02c6\22\u0225" + + "\2\0\3\u0225\14\0\1\u02c7\115\0\1\u017c\14\0\1\u0226" + "\34\0\14\112\1\u02c8\1\0\61\112\3\0\15\112\1\0" + + "\12\112\1\u017f\14\112\1\u0228\31\112\3\0\1\112\7\u022a" + "\1\112\1\u022a\1\112\2\u022a\1\0\1\112\16\u022a\1\112" + + "\1\u022a\2\112\5\u022a\2\112\25\u022a\2\112\3\u022b\1\0" + "\1\u022b\1\u02c9\5\u022b\1\0\1\u02c9\1\0\2\u022b\2\0" + + "\2\u02c9\10\u022b\4\u02c9\1\0\1\u02c9\2\0\5\u02c9\2\0" + "\3\u02c9\22\u022b\2\0\3\u022b\14\0\1\u02ca\115\0\1\u0184" + + "\14\0\1\u022c\37\0\4\u02cb\15\0\3\u02cb\31\0\1\u02cb" + "\1\0\1\u02cb\7\0\3\u02cb\2\0\1\u02cb\3\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u02cc" + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\1\10\1\u02cd\6\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\7\10\1\u02ce\12\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u02cf\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\337\17\10\2\0\3\10\1\0" + + "\6\10\1\u02d0\2\0\1\122\2\10\4\0\10\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\1\10\1\u02d1\6\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u02d2" + + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u02d3\13\10" + + "\2\0\3\10\3\0\4\u02d4\15\0\3\u02d4\31\0\1\u02d4" + "\1\0\1\u02d4\7\0\3\u02d4\2\0\1\u02d4\3\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\1\10\1\u02d5" + "\20\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\2\10\1\u02d6\5\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\2\10\1\u02d7\17\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u02d8\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\13\10\1\u02d9\6\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\6\10\1\u013a\1\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\4\10\1\u02da\15\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + + "\1\u02db\5\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u02dc\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u02dd\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\4\10\1\u02de\15\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\15\10\1\u02df\4\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\6\10\1\u013c\1\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\7\10\1\u02e0\22\0" + + "\22\10\2\0\3\10\1\0\4\10\1\u02e1\2\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\1\u02e2\21\10\2\0\1\10\1\u02e2\1\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\5\10\1\301\2\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\7\10\1\u02e3\12\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u02e4" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u02e5\17\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\u02e6\17\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\5\10\1\u02e7\2\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\3\10\1\u02e8\4\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + + "\1\u02e9\5\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u02ea\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u02eb\5\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u02ec" + "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\1\10\1\u01bc\20\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\2\10\1\u02ed\17\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\6\10\1\u02ee\1\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\15\10\1\u0152\4\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + "\1\u02ef\4\10\1\u02f0\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\7\10\1\u02f1\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\5\10\1\u02f2\2\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\12\10\1\u013a\7\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u02f3\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\7\10\1\u02f4\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\5\10\1\u02f5\2\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\1\u0172\7\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\10" + + "\1\u0159\20\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\14\10\1\u013c\5\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\1\10\1\u02f6\20\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u02f7" + "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\6\10\1\u02f8\1\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u0172\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u02f9\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\5\10\1\u02fa\2\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u02fb\4\10" + "\22\0\22\10\2\0\3\10\1\0\6\10\1\u02fc\2\0" + + "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u02fd\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\2\10\1\u02fe\5\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\11\10\1\u02ff\10\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0300\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\3\10\1\u0301\4\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u0302\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\1\10\1\u0303\6\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\1\u0300\21\10\2\0\1\10\1\u0300" + + "\1\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + "\1\u0304\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0305" + "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\4\10\1\u0306\15\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u0307\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u0308\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\10\1\u0309\6\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + "\1\u030a\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\1\134\21\10\2\0\1\10" + "\1\134\1\10\25\0\1\u0131\51\0\1\u0131\25\0\1\u0131" + + "\105\0\1\u030b\131\0\1\u030c\46\0\1\u030d\130\0\1\u030e" + "\24\0\1\u030e\24\0\1\u030f\65\0\1\u0310\147\0\1\u0311" + + "\103\0\1\u01d3\103\0\1\u0312\101\0\1\u0128\21\0\7\10" + "\2\0\1\122\2\10\4\0\7\10\1\u0113\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\4\10\1\164\15\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + "\1\u0313\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\6\10\1\u0314\13\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u0315\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u02aa" + + "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\1\10\1\u0316\20\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\14\10\1\u0317\5\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0318\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\6\10\1\u0319\1\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u031a\5\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\6\10\1\u031b\1\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + "\1\u031c\5\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\2\10\1\u0113\5\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\6\10\1\u031d\13\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\5\10\1\u031e\14\10\2\0\3\10\1\0\6\10\1\u031f" + "\2\0\1\122\2\10\4\0\2\10\1\u0320\5\10\22\0" + + "\2\10\1\u0243\17\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\3\10\1\u0321\16\10" + + "\2\0\2\10\1\u0321\1\0\7\10\2\0\1\122\2\10" + "\4\0\7\10\1\u0322\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\6\10\1\134\1\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\4\10\1\u0113\15\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u0323\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u0324\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u0325\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u013e" + "\4\10\22\0\22\10\2\0\3\10\1\0\4\10\1\u0326" + + "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\3\10\1\u0327\4\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u0138\4\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\2\10\1\u0328\17\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\6\10\1\u0299\13\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u0329\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\4\10\1\u032a\15\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u0152\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\6\10\1\u032b\1\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u032c\4\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u032d\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\6\10\1\u032e\13\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\11\10\1\u032f\10\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\6\10\1\u0330\1\10\22\0" + + "\4\10\1\u0331\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\6\10\1\u0332\1\10\22\0\22\10" + + "\2\0\3\10\1\0\4\10\1\u0333\2\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10" + "\1\u0334\15\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\2\10\1\u0335\5\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10" + + "\1\u0336\1\10\22\0\10\10\1\u0337\11\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\1\10\1\u0338\20\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u0339\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\6\10\1\u033a\13\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u033b\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\6\10\1\u033c\13\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\5\10\1\u014b\14\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\4\10\1\u033d\3\10\22\0" + + "\22\10\2\0\1\u033d\2\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\7\10\1\u033e\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\10\10\1\u033f\11\10\2\0\3\10\1\0\6\10\1\u0340" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\15\10\1\u0341\4\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u0342\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\7\10\1\u0343\12\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\1\10\1\u0344\7\10\1\u0345\10\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10" + "\1\u0346\14\10\2\0\3\10\3\0\4\u0347\15\0\3\u0347" + + "\31\0\1\u0347\1\0\1\u0347\7\0\3\u0347\2\0\1\u0347" + "\5\0\4\u0348\15\0\3\u0348\31\0\1\u0348\1\0\1\u0348" + + "\7\0\3\u0348\2\0\1\u0348\5\0\4\u0349\15\0\3\u0349" + "\31\0\1\u0349\1\0\1\u0349\7\0\3\u0349\2\0\1\u0349" + + "\5\0\4\u034a\15\0\3\u034a\31\0\1\u034a\1\0\1\u034a" + "\7\0\3\u034a\2\0\1\u034a\2\0\14\101\1\u0224\1\0" + + "\1\101\1\0\57\101\17\0\1\u0225\65\0\14\112\1\u022a" + "\1\0\61\112\17\0\1\u022b\70\0\4\10\15\0\3\10" + + "\31\0\1\10\1\0\1\10\7\0\3\10\2\0\1\10" + "\3\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u034b\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u034c\13\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\u034d\17\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\5\10\1\u034e\2\10" + "\22\0\1\10\1\u034f\3\10\1\u0350\14\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0351" + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\11\10\1\u0352\10\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\2\10\1\u0353\5\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\10\10" + + "\1\u0354\11\10\2\0\3\10\3\0\4\u0355\15\0\3\u0355" + "\31\0\1\u0355\1\0\1\u0355\7\0\3\u0355\2\0\1\u0355" + + "\3\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0356" + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\5\10\1\u0357\2\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\350\15\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + + "\1\160\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\6\10\1\u0358\1\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10" + "\1\u031c\1\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\5\10\1\u0292\2\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\10\10\1\u0359\11\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\15\10\1\u035a\4\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u035a\17\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u0161\4\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u035b\6\10" + "\22\0\22\10\2\0\3\10\1\0\6\10\1\u035c\2\0" + + "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u01a4" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\3\10\1\u035d\4\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\10\10\1\u035e\11\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + "\1\u035f\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\4\10\1\u0360\15\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u0361\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u0362\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u0363\5\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0364" + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0365\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u0366\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u0367\5\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\6\10\1\u0368\13\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\6\10\1\u0369\13\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\13\10\1\u036a" + "\6\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\6\10\1\u036b\13\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u036c\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\2\10\1\u036d\5\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u036e\4\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10" + "\1\u036f\15\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\7\10\1\u013c\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\6\10\1\u0370\13\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\3\10\1\u0371\4\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\6\10\1\u0372\13\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0373\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\6\10\1\u0374\1\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\10\10\1\u0375\11\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u0376" + + "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\2\10\1\u0377\17\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\1\10\1\u0378\20\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\1\10\1\u0379\20\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\2\10\1\u037a\5\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\5\10\1\u037b\2\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\3\10\1\u037c\1\10\1\u037d\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\7\10\1\u037e\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10" + "\1\u037f\15\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\2\10\1\u0275\17\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + + "\1\u0380\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\3\10\1\u0381\4\10\22\0\22\10" + + "\2\0\3\10\1\0\6\10\1\u0382\2\0\1\122\2\10" + "\4\0\6\10\1\u0383\1\10\22\0\2\10\1\u0384\17\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\3\10\1\u0385\16\10\2\0\2\10\1\u0385" + + "\7\0\1\u0386\152\0\1\u0387\105\0\1\u0131\77\0\1\u027b" + "\41\0\1\u0388\141\0\1\u01d3\76\0\1\u0389\46\0\1\u038a" + + "\56\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\6\10\1\u038b\13\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\2\10\1\u038c\5\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\3\10\1\u038d\4\10\22\0\22\10\2\0\3\10\1\0" + "\6\10\1\u013c\2\0\1\122\2\10\4\0\10\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\1\10\1\u038e\20\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u014d" + "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\6\10\1\u038f\1\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u0390\13\10\2\0\3\10\1\0" + "\6\10\1\u0391\2\0\1\122\2\10\4\0\10\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\14\10\1\134\5\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u0152" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u0299\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\u0392\15\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u0393\4\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\2\10\1\u0394\17\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\1\u0395\21\10\2\0\1\10\1\u0395\1\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\4\10\1\u0396\2\10" + "\1\u0397\22\0\7\10\1\u0398\12\10\2\0\1\u0396\2\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\5\10\1\u0364\14\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\7\10\1\u0399\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\2\10\1\u039a\3\10\1\u01ca\13\10\2\0\3\10" + "\1\0\6\10\1\u0360\2\0\1\122\2\10\4\0\10\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\6\10\1\u039b\1\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + "\1\u039c\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u039d\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\7\10\1\u0216\22\0\1\10\1\u039e\20\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + + "\1\u024b\5\10\22\0\2\10\1\u039f\17\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\6\10\1\u0292\13\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\3\10\1\u013c\16\10" + + "\2\0\2\10\1\u013c\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\1\10\1\u03a0\20\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u03a1" + "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\5\10\1\u03a2\14\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\3\10\1\u03a3\4\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u03a4\4\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\7\10\1\u03a5\12\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + "\1\u03a6\5\10\22\0\2\10\1\u0377\17\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\15\10\1\u03a7\4\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u03a8\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\11\10\1\u03a9\10\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u03aa\5\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\2\10\1\u03ab\5\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\4\10" + "\1\u03ac\3\10\22\0\22\10\2\0\1\u03ac\2\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10" + "\1\u03ad\15\10\2\0\3\10\1\0\4\10\1\u03ae\2\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\4\10\1\u03af\15\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u03b0\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\u03b1\6\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u03b2" + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\6\10\1\u03b3\1\10\22\0\22\10" + "\2\0\3\10\1\0\6\10\1\u03b4\2\0\1\122\2\10" + + "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u03b5\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\3\10\1\u03b6\4\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u03b7" + "\5\10\22\0\22\10\2\0\3\10\3\0\4\u03b8\15\0" + + "\3\u03b8\31\0\1\u03b8\1\0\1\u03b8\7\0\3\u03b8\2\0" + "\1\u03b8\5\0\4\u03b9\15\0\3\u03b9\31\0\1\u03b9\1\0" + + "\1\u03b9\7\0\3\u03b9\2\0\1\u03b9\5\0\4\u03ba\15\0" + "\3\u03ba\31\0\1\u03ba\1\0\1\u03ba\7\0\3\u03ba\2\0" + + "\1\u03ba\5\0\4\u03bb\15\0\3\u03bb\31\0\1\u03bb\1\0" + "\1\u03bb\7\0\3\u03bb\2\0\1\u03bb\3\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\10\10\1\u03bc\11\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\4\10\1\u03bd\3\10\22\0\22\10\2\0\1\u03bd\2\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0265" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\6\10\1\u03be\1\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\5\10\1\240\2\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + "\1\u03bf\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\10\10\1\u0152\11\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u03c0\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\1\10\1\u03c1\6\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u03c2\5\10\22\0\22\10\2\0\3\10" + + "\3\0\4\u03c3\15\0\3\u03c3\31\0\1\u03c3\1\0\1\u03c3" + "\7\0\3\u03c3\2\0\1\u03c3\3\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\11\10\1\u03c4\10\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + + "\1\u03c5\2\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\7\10\1\u03c6\22\0\7\10" + + "\1\u03c7\12\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\7\10\1\u03c6\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u03c8" + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\1\10\1\u03c9\6\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\u03ca\15\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10" + + "\1\u03cb\1\10\1\u03cc\4\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u03cd" + + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\2\10\1\u013c\17\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u03ce" + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\7\10\1\u03cf\12\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u03d0\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10" + + "\1\u013c\6\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\1\10\1\u03d1\6\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + "\1\u013a\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\7\10\1\u0172\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + + "\1\u03d2\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u03d3\13\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\u03d4\17\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\4\10\1\u03d5\3\10" + "\22\0\22\10\2\0\1\u03d5\2\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\7\10\1\u03d6\12\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\2\10\1\u03d7\17\10\2\0\3\10\1\0" + "\4\10\1\u03d8\2\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u01b8\2\10\1\u03d9\3\10\22\0\7\10\1\u03da\12\10" + "\2\0\1\u03d9\2\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\10\10\1\u03db\11\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u03dc" + + "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\5\10\1\u03dd\2\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\5\10\1\u0253\14\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + "\1\u03de\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\6\10\1\u03df\1\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\2\10\1\u03e0\17\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u03e1" + + "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u03e2\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u03e3" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\5\10\1\u03e4\2\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\3\10\1\u03e5\16\10\2\0\2\10\1\u03e5" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\2\10\1\u03e6\17\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\7\10\1\u03e7\22\0\22\10\2\0" + + "\3\10\1\0\4\10\1\u03e8\2\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\7\10\1\u034f\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\3\10\1\u03e9\3\10\1\u03ea\22\0\2\10\1\u0146\5\10" + "\1\u03ea\11\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\1\10\1\u03eb\6\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\u03ec" + + "\7\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\4\10\1\u03ed\15\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\6\10\1\u03ee\13\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10" + "\1\u03ef\15\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\4\10\1\u03f0\4\10\1\u03f1" + "\10\10\2\0\3\10\63\0\1\u03f2\45\0\1\u03f3\136\0" + + "\1\u03f4\100\0\1\u0131\75\0\1\231\23\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u03f5\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\u03f6\7\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u03f7\4\10\22\0" + "\22\10\2\0\3\10\1\0\4\10\1\u02bb\2\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\5\10\1\u03f8\1\10" + "\1\u03f9\12\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\10\10\1\u03fa\11\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\10\10\1\u03fb\11\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u03fc" + + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\10\10\1\u03fd\11\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\5\10\1\246\14\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u03fe\13\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u0265\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\1\u03ff" + + "\21\10\2\0\1\10\1\u03ff\1\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0400\17\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\10\1\375\6\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0401\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\3\10\1\u038c\4\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u0402\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0403" + + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u0404\5\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\4\10\1\u0405\15\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\4\10\1\u0406\3\10\22\0\22\10" + "\2\0\1\u0406\2\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\1\10\1\u0407\20\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u0408" + + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u0409\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\6\10\1\u040a\1\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + "\1\u040b\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\3\10\1\u040c\4\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u040d\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\1\10\1\u040e\6\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\6\10\1\u0286\13\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\14\10\1\u040f\5\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\1\10\1\u0410\6\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u0411\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u0412\3\10" + + "\1\u023c\22\0\2\10\1\u0413\13\10\1\u0414\3\10\2\0" + "\3\10\1\0\6\10\1\u0415\2\0\1\122\2\10\4\0" + + "\10\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u02b7\13\10" + + "\2\0\3\10\1\0\4\10\1\u0416\2\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0417\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\2\10\1\u0418\5\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u0419\6\10\22\0\5\10\1\u041a\14\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\5\10\1\u041b\14\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\4\10\1\u041c\15\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\4\10\1\u03ec\15\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + "\1\u0260\17\10\2\0\3\10\3\0\4\303\15\0\3\303" + + "\31\0\1\303\1\0\1\303\7\0\3\303\2\0\1\303" + "\5\0\4\u041d\15\0\3\u041d\31\0\1\u041d\1\0\1\u041d" + + "\7\0\3\u041d\2\0\1\u041d\5\0\4\305\15\0\3\305" + "\31\0\1\305\1\0\1\305\7\0\3\305\2\0\1\305" + + "\5\0\4\u041e\15\0\3\u041e\31\0\1\u041e\1\0\1\u041e" + "\7\0\3\u041e\2\0\1\u041e\3\0\7\10\2\0\1\122" + + "\2\10\4\0\1\10\1\u01b8\6\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + + "\1\u0396\5\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\6\10\1\u041f\1\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u0420\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\4\10\1\u0421\15\10\2\0\3\10\1\0\6\10\1\160" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + + "\1\u0422\2\10\22\0\22\10\2\0\3\10\3\0\4\351" + "\15\0\3\351\31\0\1\351\1\0\1\351\7\0\3\351" + + "\2\0\1\351\3\0\7\10\2\0\1\122\2\10\4\0" + "\4\10\1\u028e\3\10\22\0\22\10\2\0\1\u028e\2\10" + + "\1\0\6\10\1\u0423\2\0\1\122\2\10\4\0\10\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\1\10\1\277\6\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\3\10\1\u0424\16\10\2\0\2\10\1\u0424\1\0" + "\7\10\2\0\1\122\2\10\4\0\1\u0425\7\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\u0426\6\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\15\10\1\u0427\4\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u0261\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\5\10\1\u0428\2\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u03e9\4\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\2\10\1\u0429\5\10\22\0\22\10\2\0" + + "\3\10\1\0\4\10\1\u042a\2\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\2\10\1\u03bc\5\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u03cf\4\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\244" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u042b\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\1\10\1\u01fe\20\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\4\10\1\134\3\10" + "\22\0\22\10\2\0\1\134\2\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u042c\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\u042d\15\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10" + + "\1\u0263\6\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\6\10\1\u042e\13\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + "\1\u042f\2\10\22\0\22\10\2\0\3\10\1\0\6\10" + + "\1\u0430\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\277\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0431\6\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\5\10\1\u0432\14\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\15\10\1\u0433\4\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0434" + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\3\10\1\u0435\16\10\2\0\2\10" + "\1\u0435\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + + "\1\u0436\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\3\10\1\u0437\4\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\10\1\u0104\6\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u0438\5\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\6\10\1\u0439\1\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + + "\1\u043a\2\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\6\10\1\u043b\1\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u043c\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u043d" + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\7\10\1\u043e\12\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\10\1\u038c\6\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + + "\1\u0384\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\10\10\1\134\11\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + "\1\u043f\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0440\13\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\5\10\1\u0441\2\10\22\0\2\10\1\u0442\17\10\2\0" + "\3\10\55\0\1\u0443\33\0\1\u0444\120\0\1\u0445\54\0" + + "\7\10\2\0\1\122\2\10\4\0\4\10\1\u0446\3\10" + "\22\0\22\10\2\0\1\u0446\2\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u0447\17\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\7\10\1\u0448\22\0\10\10\1\u0448\11\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\6\10\1\u0449\13\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\2\10\1\u044a\17\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\2\10\1\u044b\5\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + "\1\u044c\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\4\10\1\u044d\15\10\2\0" + "\3\10\1\0\4\10\1\u044e\2\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u044f\3\10\1\u03c6\22\0\7\10\1\u03c7" + "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\3\10\1\134\16\10\2\0\2\10" + "\1\134\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\6\10\1\u0450\13\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\2\10\1\u0451\5\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\11\10\1\u0452\10\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\7\10\1\u03bc\12\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\1\10\1\u0453\6\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\2\10\1\u0265\17\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + + "\1\u0454\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\2\10\1\u0455\17\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + "\1\u0456\2\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u0457" + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\2\10\1\u0458\17\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u0459" + + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\3\10\1\u03bc\16\10" + + "\2\0\2\10\1\u03bc\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u045a\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u045b" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u045c\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\2\10\1\u045d\5\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u045e\5\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\1\u045f\7\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\4\10\1\u0460\15\10\2\0\3\10\1\0\6\10\1\u0461" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u0462\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0463" + + "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\6\10\1\u0464\13\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\u0465" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\2\10\1\u0466\5\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\6\10\1\u0467\13\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\1\10\1\u0468\6\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\14\10\1\u0469\5\10\2\0\3\10" + + "\3\0\4\u0174\15\0\3\u0174\31\0\1\u0174\1\0\1\u0174" + "\7\0\3\u0174\2\0\1\u0174\5\0\4\u0176\15\0\3\u0176" + + "\31\0\1\u0176\1\0\1\u0176\7\0\3\u0176\2\0\1\u0176" + "\3\0\4\10\1\u02bb\2\10\2\0\1\122\2\10\4\0" + + "\1\10\1\u01b8\5\10\1\u046a\22\0\2\10\1\u0394\2\10" + "\1\u01bb\14\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\4\10\1\u046b\3\10\22\0\22\10\2\0" + "\1\u046b\2\10\1\0\6\10\1\134\2\0\1\122\2\10" + + "\4\0\10\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u01f0" + + "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\4\10\1\u046c\15\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\6\10\1\u046d\13\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u046e\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u046f\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\7\10\1\u0470\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\6\10\1\u0471\1\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\2\10\1\u0472\17\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\14\10\1\u0473\5\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\7\10\1\u0474\12\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\4\10" + + "\1\u0475\15\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\10\10\1\u0476\11\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + "\1\u0477\5\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\1\10\1\u0478\6\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\5\10\1\u0479\2\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u047a" + + "\6\10\22\0\22\10\2\0\3\10\1\0\4\10\1\u03d8" + "\2\10\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\5\10\1\u047b\2\10\22\0\22\10\2\0\3\10\1\0" + + "\6\10\1\u047c\2\0\1\122\2\10\4\0\10\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\6\10\1\u047d\1\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\1\10\1\u047e" + + "\6\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\7\10\1\u047f\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\2\10\1\u0473\17\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\7\10\1\u0480\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\15\10\1\u013a\4\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + + "\1\u0481\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\7\10\1\u0482\12\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + "\1\u0483\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u0484\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\1\10\1\u0485\6\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u0151" + + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\u0486\7\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\4\10\1\u0486\15\10\2\0\3\10\57\0\1\u0487" + + "\104\0\1\u0488\77\0\1\u0489\22\0\7\10\2\0\1\122" + "\2\10\4\0\6\10\1\u048a\1\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + "\1\u03ec\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\3\10\1\u048b\4\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\6\10\1\u0289\1\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u048c\5\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\3\10\1\u048d\4\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\4\10\1\u048e\15\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\7\10\1\u048f\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\2\10\1\u0146\17\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\1\u0490\7\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u0491\5\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u0492" + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\5\10\1\242\2\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\10\1\u01b8\5\10\1\134\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\7\10\1\u0493" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\6\10\1\u0494\1\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + "\1\u0495\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0496" + "\13\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\11\10\1\u0497\10\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\7\10\1\u0498\12\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u040a\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\7\10\1\u0499\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u013c" + "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u049a\4\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u049b" + + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\5\10\1\u049c\14\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\4\10\1\u049d\3\10\22\0\22\10\2\0\1\u049d\2\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\3\10\1\u049e" + "\4\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\1\10\1\u049f\6\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\u013c\7\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u03bc" + + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\2\10\1\u04a0\17\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u04a1" + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\1\10\1\u04a2\20\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\4\10\1\374\10\10\1\u04a3\4\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\4\10\1\374\15\10\2\0\3\10\1\0\6\10" + "\1\u04a4\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\u04a5\17\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10" + "\1\u0279\14\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\2\10\1\u04a6\5\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\5\10\1\u04a7\14\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u01f0" + + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\u04a8\6\10\22\0\22\10\2\0\3\10" + + "\1\0\6\10\1\u013a\2\0\1\122\2\10\4\0\10\10" + "\22\0\22\10\2\0\3\10\1\0\4\10\1\u04a9\2\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u013a\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u04aa" + + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\10\10\1\u04ab\11\10\2\0\3\10" + + "\1\0\6\10\1\242\2\0\1\122\2\10\4\0\10\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\5\10\1\u04ac\14\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + + "\1\u013c\2\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\10\10\1\u02df" + + "\11\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u04ad\5\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u04ae" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\4\10\1\u04af\15\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u04b0\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04b1\6\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\7\10\1\u04b2\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\1\10\1\u039e\13\10\1\u04b3\4\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\5\10" + "\1\u04b4\14\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\1\10\1\u01b8\2\10\1\u04b5\2\10\1\u01b3" + "\22\0\2\10\1\u04b6\17\10\2\0\1\u04b5\2\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04b7\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\5\10\1\u01a4\2\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\2\10\1\u04b8\17\10\2\0\3\10\62\0\1\u04b9" + "\43\0\1\u0487\100\0\1\u01d5\57\0\7\10\2\0\1\122" + + "\2\10\4\0\5\10\1\u04ba\2\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u03bc\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\2\10\1\u04bb\5\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\7\10\1\u04bc\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\7\10\1\164\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\1\10\1\u04bd\6\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\1\10\1\u04be\20\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\1\10\1\u04bf\6\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\5\10\1\u04c0\14\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\277\1\10" + "\1\u04c1\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u0469\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\1\u0469\21\10\2\0\1\10\1\u0469" + "\1\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\4\10\1\u040a\15\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u04c2\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\7\10\1\u04c3\12\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\2\10\1\u04c4\17\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\1\10\1\u04c5\6\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\10\10\1\u04c6\11\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\6\10\1\u04c7\1\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\6\10\1\u04c8\13\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\7\10" + "\1\u04c9\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u04ca\13\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\10\10\22\0\6\10\1\u04cb\13\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\7\10" + + "\1\u04cc\12\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\14\10\1\u04cd\5\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + "\1\u04ce\4\10\22\0\22\10\2\0\3\10\1\0\4\10" + + "\1\u04cf\2\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\2\10\1\u0137\5\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\7\10\1\u013c\12\10\2\0\3\10\1\0\6\10\1\u04d0" + "\2\0\1\122\2\10\4\0\10\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\2\10" + "\1\u04d1\5\10\22\0\22\10\2\0\3\10\1\0\6\10" + + "\1\u04d2\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\2\10\1\u03ed\5\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + + "\1\u04d3\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\3\10\1\u04d4\4\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\2\10\1\u04d5\17\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\5\10\1\u0417" + "\14\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\6\10\1\u04d6\1\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u04ba\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\14\10\1\u04d7\5\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\u04d8\17\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\13\10" + "\1\u04d9\6\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\6\10\1\u04da\1\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\4\10\1\u04db\15\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\5\10\1\u04dc\2\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\11\10\1\u04dd\10\10\2\0\3\10" + + "\55\0\1\u027b\25\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\10\10\1\u013c\11\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\3\10\1\u04de\4\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\7\10\1\u04df\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u04e0" + + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\5\10\1\u04e1\2\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\5\10\1\u04e2\14\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04e3\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\5\10\1\u013c\14\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10" + + "\1\u04e4\1\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\2\10\1\u04e5\5\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\6\10\1\u04e6\13\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u04e7" + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\2\10\1\u04e8\5\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\5\10\1\u04e9\2\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\2\10\1\u04e9\5\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\1\10\1\u04ea\6\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\4\10\1\u04eb\15\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u04ec" + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u04ed\4\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\2\10\1\u04ee" + + "\5\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\2\10\1\u04ef\5\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\5\10\1\u01bb\14\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u04f0\6\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\2\10\1\u04f1\17\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\1\10" + + "\1\u04f2\6\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\11\10\1\u034f" + + "\10\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\7\10\1\u04f3\22\0\22\10\2\0\3\10\1\0" + + "\4\10\1\u04f4\2\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\6\10\1\u04f5\13\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\1\10\1\u013a\20\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\3\10\1\u032e\4\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\6\10\1\u04f6\13\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\5\10\1\u04f7" + "\2\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\7\10\1\u04f8\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\2\10\1\u04f9\17\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\2\10\1\u04fa" + + "\17\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\10\10\1\u04ec\11\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\4\10\1\u04b5" + "\3\10\22\0\22\10\2\0\1\u04b5\2\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\6\10\1\u04fb\1\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\4\10\1\u04fc\15\10\2\0\3\10" + "\1\0\6\10\1\u0172\2\0\1\122\2\10\4\0\10\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\6\10\1\u04fd\13\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\6\10\1\u04fe\13\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\3\10\1\u04ff\4\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\4\10\1\u04c2\15\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\14\10\1\u0500\5\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\6\10\1\u0501\13\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\11\10\1\u0502\10\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\2\10" + "\1\u0503\17\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\17\10\3\134\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\13\10\1\u03cb\6\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\11\10\1\u0504\10\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\2\10\1\u0505\17\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\7\10\1\u01f9\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\2\10\1\u0506\17\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\4\10\1\u04f7\15\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\3\10\1\u0507\4\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u0508\4\10\22\0\22\10\2\0\3\10\1\0" + + "\6\10\1\u0509\2\0\1\122\2\10\4\0\10\10\22\0" + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\5\10\1\u04a6\2\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\1\10\1\u050a\20\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\10\10\1\u038c\11\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\1\10\1\u050b\6\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\6\10\1\u038c\1\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\10\10\22\0\12\10\1\u02a1\7\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\6\10" + + "\1\u050c\1\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u035a" + + "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\2\10\1\u0261\5\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\5\10\1\u050d\14\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\7\10\1\u038c\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\2\10\1\u0149\17\10\2\0\3\10\1\0\6\10" + "\1\u050e\2\0\1\122\2\10\4\0\10\10\22\0\22\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\5\10\1\u04c9\2\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\6\10" + "\1\u01b4\13\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\5\10\1\u050f\2\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\10\10\1\u0510\11\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\6\10\1\u0511" + + "\13\10\2\0\3\10\1\0\1\10\1\u0512\5\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\22\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\6\10\1\u0513" + "\1\10\22\0\22\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\1\10\1\u039b\6\10\22\0\22\10" + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + + "\1\10\1\u0514\6\10\22\0\22\10\2\0\3\10\1\0" + "\7\10\2\0\1\122\2\10\4\0\1\10\1\u0515\6\10" + + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\3\10\1\277\4\10\22\0\22\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\5\10" + "\1\u0245\2\10\22\0\22\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0138" + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\2\10\1\u0516\5\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\1\u03ec\21\10\2\0\1\10\1\u03ec\1\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\10\10\22\0\4\10\1\u0517" + + "\15\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\1\10\1\u0518\1\u0519\2\10\1\u051a\1\10\1\u051b" + + "\22\0\1\u051c\3\10\1\u03f0\1\10\1\u051d\13\10\2\0" + "\1\10\1\u051c\1\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u051e\4\10\22\0\22\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\2\10\1\u051f\17\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\14\10\1\u0520\5\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\10\10\22\0\13\10\1\u038c\6\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\6\10\1\u0521\1\10" + "\22\0\22\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\3\10\1\u0522\4\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\3\10" + + "\1\u0523\4\10\22\0\22\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\2\10\1\200\5\10\22\0" + + "\22\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + "\4\0\10\10\22\0\14\10\1\220\5\10\2\0\3\10" + + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + "\2\10\1\u0524\17\10\2\0\3\10\1\0\7\10\2\0" + + "\1\122\2\10\4\0\4\10\1\u0525\3\10\22\0\22\10" + "\2\0\1\u0525\2\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\10\10\22\0\5\10\1\u0159\14\10\2\0\3\10" + "\1\0\7\10\2\0\1\122\2\10\4\0\10\10\22\0" + + "\11\10\1\u01b3\10\10\2\0\3\10\1\0\7\10\2\0" + "\1\122\2\10\4\0\10\10\22\0\1\10\1\u039b\20\10" + + "\2\0\3\10\1\0\7\10\2\0\1\122\2\10\4\0" + "\3\10\1\u0526\4\10\22\0\22\10\2\0\3\10\1\0" + + "\7\10\2\0\1\122\2\10\4\0\10\10\22\0\11\10" + "\1\367\10\10\2\0\3\10\1\0\7\10\2\0\1\122" + + "\2\10\4\0\5\10\1\u0527\2\10\22\0\22\10\2\0" + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + + "\22\0\7\10\1\u0528\12\10\2\0\3\10\1\0\7\10" + "\2\0\1\122\2\10\4\0\4\10\1\u0198\3\10\22\0" + + "\22\10\2\0\1\u0198\2\10\1\0\7\10\2\0\1\122" + "\2\10\4\0\10\10\22\0\15\10\1\u0529\4\10\2\0" + + "\3\10\1\0\7\10\2\0\1\122\2\10\4\0\10\10" + "\22\0\7\10\1\u019e\12\10\2\0\3\10\1\0\7\10" + + "\2\0\1\122\2\10\4\0\10\10\22\0\7\10\1\u01e0" + "\12\10\2\0\3\10\1\0\7\10\2\0\1\122\2\10" + + "\4\0\3\10\1\u0245\4\10\22\0\22\10\2\0\3\10"; + + private static int[] zzUnpackTrans() { + int[] result = new int[84612]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\6\0\1\11\5\1\2\11\2\1\1\11\12\1\1\11" + "\5\1\1\11\1\1\1\11\15\1\1\11\1\1\1\11" + + "\2\1\1\11\2\1\2\11\3\1\2\11\1\1\1\11" + "\10\1\1\11\6\1\1\0\12\1\1\11\5\1\1\0" + "\55\1\14\0\45\1\1\11\1\1\1\0\1\1\1\0" + + "\1\11\4\1\4\0\4\1\5\0\20\1\1\0\11\1" + "\1\0\62\1\10\0\1\1\2\0\1\11\3\0\76\1" + "\4\0\4\1\4\0\4\1\5\0\14\1\1\0\6\1" + + "\1\11\65\1\16\0\75\1\2\0\1\11\2\0\1\11" + "\4\1\2\0\4\1\3\0\11\1\1\0\101\1\14\0" + "\73\1\4\0\1\1\2\0\1\1\3\0\10\1\1\0" + + "\66\1\7\0\65\1\4\0\12\1\1\0\60\1\5\0" + "\55\1\4\0\7\1\1\0\56\1\3\0\50\1\2\0" + "\44\1\3\0\101\1\3\0\57\1\1\0\160\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[1321]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public NSISTokenMaker() { - } - - + public NSISTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -2468,26 +1443,26 @@ public class NSISTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -2504,7 +1479,6 @@ public class NSISTokenMaker extends AbstractJFlexCTokenMaker { state = MLC; break; } - start = text.offset; s = text; try { @@ -2515,21 +1489,18 @@ public class NSISTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -2538,7 +1509,8 @@ public class NSISTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -2547,430 +1519,480 @@ public class NSISTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 NSISTokenMaker(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 NSISTokenMaker(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 < 204) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 1: { + addToken(Token.IDENTIFIER); + } + case 37: + break; + case 34: { + addToken(Token.LITERAL_BOOLEAN); + } + case 38: + break; + case 29: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 39: + break; + case 19: { /* Line ending in '\' => continue to next line. */ + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + return firstToken; + } + case 40: + break; + case 27: { /* Skip all escaped chars. */ + } + case 41: + break; + case 24: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 42: + break; + case 3: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 43: + break; + case 32: { + addToken(Token.FUNCTION); + } + case 44: + break; + case 8: { + addToken(Token.VARIABLE); + } + case 45: + break; + case 16: { /* Line ending in '\' => continue to next line. */ + addToken(start, zzStartRead, Token.LITERAL_CHAR); + return firstToken; + } + case 46: + break; + case 14: { /* Line ending in '\' => continue to next line. */ + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 47: + break; + case 17: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + return firstToken; + } + case 48: + break; + case 18: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 49: + break; + case 25: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 50: + break; + case 26: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 51: + break; + case 7: { + addToken(Token.WHITESPACE); + } + case 52: + break; + case 30: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 53: + break; + case 10: { + start = zzMarkedPos - 1; + yybegin(CHAR_LITERAL); + } + case 54: + break; + case 2: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 55: + break; + case 28: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 56: + break; + case 4: { + start = zzMarkedPos - 1; + yybegin(EOL_COMMENT); + } + case 57: + break; + case 21: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + } + case 58: + break; + case 13: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 59: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + return firstToken; + } + case 60: + break; + case 31: { + addToken(Token.RESERVED_WORD); + } + case 61: + break; + case 35: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 62: + break; + case 20: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + return firstToken; + } + case 63: + break; + case 23: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 64: + break; + case 9: { + addToken(Token.SEPARATOR); + } + case 65: + break; + case 6: { + addNullToken(); + return firstToken; + } + case 66: + break; + case 22: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 67: + break; + case 5: { + addToken(Token.OPERATOR); + } + case 68: + break; + case 36: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 69: + break; + case 33: { + addToken(Token.COMMENT_MULTILINE); + } + case 70: + break; + case 11: { + start = zzMarkedPos - 1; + yybegin(BACKTICKS); + } + case 71: + break; + case 12: {} + case 72: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 1322: + break; + case STRING: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + return firstToken; + } + case 1323: + break; + case CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + return firstToken; + } + case 1324: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 1325: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 1326: + break; + case BACKTICKS: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + return firstToken; + } + case 1327: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 NSISTokenMaker(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 NSISTokenMaker(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 < 204) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 1: - { addToken(Token.IDENTIFIER); - } - case 37: break; - case 34: - { addToken(Token.LITERAL_BOOLEAN); - } - case 38: break; - case 29: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 39: break; - case 19: - { /* Line ending in '\' => continue to next line. */ - addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - return firstToken; - } - case 40: break; - case 27: - { /* Skip all escaped chars. */ - } - case 41: break; - case 24: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 42: break; - case 3: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 43: break; - case 32: - { addToken(Token.FUNCTION); - } - case 44: break; - case 8: - { addToken(Token.VARIABLE); - } - case 45: break; - case 16: - { /* Line ending in '\' => continue to next line. */ - addToken(start,zzStartRead, Token.LITERAL_CHAR); - return firstToken; - } - case 46: break; - case 14: - { /* Line ending in '\' => continue to next line. */ - addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - return firstToken; - } - case 47: break; - case 17: - { addToken(start,zzStartRead-1, Token.ERROR_CHAR); return firstToken; - } - case 48: break; - case 18: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 49: break; - case 25: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 50: break; - case 26: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 51: break; - case 7: - { addToken(Token.WHITESPACE); - } - case 52: break; - case 30: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 53: break; - case 10: - { start = zzMarkedPos-1; yybegin(CHAR_LITERAL); - } - case 54: break; - case 2: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 55: break; - case 28: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 56: break; - case 4: - { start = zzMarkedPos-1; yybegin(EOL_COMMENT); - } - case 57: break; - case 21: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - } - case 58: break; - case 13: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 59: break; - case 15: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); return firstToken; - } - case 60: break; - case 31: - { addToken(Token.RESERVED_WORD); - } - case 61: break; - case 35: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 62: break; - case 20: - { addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); return firstToken; - } - case 63: break; - case 23: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 64: break; - case 9: - { addToken(Token.SEPARATOR); - } - case 65: break; - case 6: - { addNullToken(); return firstToken; - } - case 66: break; - case 22: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 67: break; - case 5: - { addToken(Token.OPERATOR); - } - case 68: break; - case 36: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 69: break; - case 33: - { addToken(Token.COMMENT_MULTILINE); - } - case 70: break; - case 11: - { start = zzMarkedPos-1; yybegin(BACKTICKS); - } - case 71: break; - case 12: - { - } - case 72: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 1322: break; - case STRING: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); return firstToken; - } - case 1323: break; - case CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.ERROR_CHAR); return firstToken; - } - case 1324: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 1325: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 1326: break; - case BACKTICKS: { - addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); return firstToken; - } - case 1327: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/PHPTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/PHPTokenMaker.java index a12ae16..82a2f80 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/PHPTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/PHPTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 12/29/16 11:15 PM */ - /* * 01/28/2009 - * * PHPTokenMaker.java - Generates tokens for PHP syntax highlighting. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -22,24601 +19,13024 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** * Scanner for PHP files. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated PHPTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated PHPTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.9 */ - public class PHPTokenMaker extends AbstractMarkupTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int PHP = 19; - public static final int INATTR_SINGLE_SCRIPT = 9; - public static final int JS_CHAR = 14; - public static final int CSS_STRING = 26; - public static final int JS_DOCCOMMENT = 17; - public static final int JS_MLC = 16; - public static final int CSS_CHAR_LITERAL = 27; - public static final int INTAG_SCRIPT = 7; - public static final int JS_TEMPLATE_LITERAL_EXPR = 30; - public static final int CSS_PROPERTY = 24; - public static final int CSS_C_STYLE_COMMENT = 28; - public static final int PHP_MLC = 20; - public static final int CSS = 23; - public static final int CSS_VALUE = 25; - public static final int COMMENT = 1; - public static final int INATTR_DOUBLE_SCRIPT = 8; - public static final int PHP_STRING = 21; - public static final int JAVASCRIPT = 13; - public static final int INTAG = 3; - public static final int INTAG_CHECK_TAG_NAME = 4; - public static final int INATTR_SINGLE_STYLE = 12; - public static final int DTD = 2; - public static final int PHP_CHAR = 22; - public static final int JS_EOL_COMMENT = 18; - public static final int INATTR_DOUBLE_STYLE = 11; - public static final int INATTR_SINGLE = 6; - public static final int JS_TEMPLATE_LITERAL = 29; - public static final int YYINITIAL = 0; - public static final int INATTR_DOUBLE = 5; - public static final int JS_STRING = 15; - public static final int INTAG_STYLE = 10; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\4\1\2\1\0\1\1\1\33\22\0\1\4\1\51\1\7"+ - "\1\34\1\36\1\50\1\5\1\116\1\114\1\113\1\37\1\42\1\45"+ - "\1\31\1\43\1\10\1\25\1\137\1\132\1\136\1\134\1\126\1\133"+ - "\1\27\1\140\1\24\1\53\1\6\1\3\1\46\1\17\1\52\1\112"+ - "\1\110\1\26\1\12\1\41\1\22\1\107\1\121\1\125\1\14\1\127"+ - "\1\122\1\21\1\120\1\111\1\117\1\15\1\123\1\13\1\11\1\16"+ - "\1\106\1\124\1\23\1\40\1\20\1\23\1\115\1\35\1\115\1\47"+ - "\1\30\1\131\1\64\1\67\1\70\1\77\1\62\1\63\1\71\1\73"+ - "\1\56\1\135\1\76\1\65\1\57\1\72\1\74\1\100\1\104\1\61"+ - "\1\66\1\60\1\32\1\102\1\75\1\103\1\101\1\130\1\105\1\55"+ - "\1\44\1\54\uff81\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\2\1\1\0\2\1\1\0\2\1\14\0\1\2"+ - "\5\0\2\2\1\3\1\4\1\5\1\6\1\1\1\7"+ - "\5\1\1\10\1\11\3\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\20\1\21\1\22\2\20\2\22\3\20\2\22"+ - "\3\20\1\22\5\20\1\22\1\1\1\23\1\24\1\1"+ - "\1\25\1\14\1\26\1\27\1\30\1\31\1\32\1\33"+ - "\1\34\1\35\1\36\2\16\1\2\1\37\1\16\2\2"+ - "\1\16\2\40\1\16\1\2\1\35\2\16\1\2\1\41"+ - "\1\35\21\2\1\42\1\43\1\1\1\44\1\23\1\45"+ - "\1\46\1\1\1\47\1\23\1\50\1\51\1\1\1\52"+ - "\6\1\1\53\10\1\1\54\4\1\1\55\1\16\1\56"+ - "\1\16\3\2\1\57\1\2\1\16\32\2\1\35\1\60"+ - "\2\2\1\1\1\61\2\1\1\62\1\63\1\64\2\1"+ - "\1\65\1\66\1\67\1\70\1\71\1\70\1\72\1\70"+ - "\1\73\1\70\1\74\1\75\1\70\1\76\1\77\1\100"+ - "\2\77\1\101\1\77\1\102\1\103\1\104\1\105\1\104"+ - "\1\106\2\2\1\40\1\2\2\104\1\107\1\110\1\111"+ - "\1\112\1\113\1\114\1\115\2\1\1\116\1\117\1\120"+ - "\1\121\1\1\1\122\1\1\1\123\1\4\2\124\1\125"+ - "\1\126\1\6\5\0\1\127\32\20\2\22\2\20\1\22"+ - "\44\20\1\130\1\131\2\0\1\127\1\0\1\132\1\0"+ - "\1\133\1\16\1\35\1\2\1\16\1\134\1\40\1\134"+ - "\2\135\1\134\1\136\1\134\2\2\1\101\1\2\1\101"+ - "\45\2\1\101\5\2\1\137\1\140\1\141\1\142\1\143"+ - "\1\0\1\144\6\0\1\145\1\146\33\0\1\147\11\2"+ - "\1\150\1\151\105\2\1\101\102\2\1\101\23\2\1\152"+ - "\4\2\1\101\1\2\1\152\30\2\1\153\12\2\1\154"+ - "\1\64\1\155\1\66\1\0\1\156\1\150\15\0\1\157"+ - "\1\40\5\0\1\40\1\0\1\160\1\161\1\162\1\163"+ - "\2\124\2\0\1\164\4\0\1\12\14\20\1\22\63\20"+ - "\3\0\1\165\1\166\1\35\1\2\1\135\1\0\2\136"+ - "\4\2\1\73\23\2\1\167\34\2\71\0\14\2\1\101"+ - "\53\2\1\152\22\2\1\152\13\2\1\152\44\2\1\152"+ - "\3\2\1\152\27\2\1\101\16\2\1\152\2\2\1\152"+ - "\13\2\1\152\16\2\1\152\65\2\1\152\5\2\1\152"+ - "\11\2\1\152\61\2\1\152\1\2\1\152\44\2\1\152"+ - "\6\2\1\101\15\2\1\35\13\2\25\0\2\124\1\170"+ - "\3\0\1\171\1\12\21\20\1\22\17\20\1\22\1\20"+ - "\3\0\1\172\1\35\7\2\1\173\4\2\1\174\5\2"+ - "\1\73\17\2\2\0\1\1\4\0\1\175\2\0\1\176"+ - "\41\0\1\177\24\0\1\200\15\2\1\152\21\2\1\152"+ - "\77\2\1\152\3\2\1\152\16\2\1\152\22\2\1\152"+ - "\1\2\1\101\11\2\1\201\3\2\1\152\6\2\1\152"+ - "\3\2\1\152\15\2\1\152\16\2\1\152\4\2\1\152"+ - "\11\2\2\152\12\2\1\152\156\2\1\152\11\2\2\152"+ - "\122\2\2\152\24\2\1\152\63\2\1\35\12\2\17\0"+ - "\1\101\4\0\2\124\1\126\2\0\1\127\17\20\1\22"+ - "\4\20\1\130\1\0\1\127\1\35\5\2\1\101\3\2"+ - "\1\101\12\2\1\137\1\143\17\0\1\177\23\0\1\177"+ - "\12\0\56\2\1\152\53\2\1\152\44\2\1\152\41\2"+ - "\1\152\2\2\3\152\6\2\1\101\135\2\1\152\35\2"+ - "\1\152\13\2\1\152\13\2\1\101\1\152\1\101\6\2"+ - "\1\152\1\101\251\2\1\152\17\2\1\152\23\2\1\101"+ - "\102\2\1\152\13\2\1\152\2\2\1\35\14\2\16\0"+ - "\1\124\1\202\12\20\1\0\1\35\13\2\34\0\14\2"+ - "\1\152\41\2\1\152\2\2\1\152\31\2\1\152\106\2"+ - "\1\152\7\2\1\152\1\2\2\152\54\2\2\152\16\2"+ - "\1\152\26\2\1\152\130\2\1\152\163\2\2\152\31\2"+ - "\1\152\20\2\1\152\103\2\1\152\1\2\1\152\17\2"+ - "\1\152\1\2\1\101\13\2\1\101\131\2\1\35\12\2"+ - "\12\0\1\203\3\20\1\0\6\2\2\0\1\177\1\0"+ - "\1\177\14\0\35\2\1\152\105\2\1\152\10\2\1\101"+ - "\17\2\1\152\113\2\1\152\23\2\2\152\4\2\1\152"+ - "\134\2\1\152\133\2\1\152\10\2\1\152\1\2\1\152"+ - "\2\2\1\152\34\2\1\152\1\2\1\152\6\2\1\152"+ - "\331\2\1\152\42\2\1\35\11\2\6\0\1\20\1\0"+ - "\2\2\7\0\303\2\1\152\24\2\1\101\46\2\1\152"+ - "\50\2\1\152\141\2\1\152\14\2\1\152\60\2\1\152"+ - "\54\2\1\152\170\2\1\152\15\2\1\152\4\2\1\152"+ - "\37\2\1\204\4\0\1\20\1\205\1\2\1\206\2\0"+ - "\1\207\12\2\1\152\14\2\1\152\1\2\1\152\12\2"+ - "\1\152\5\2\1\152\7\2\1\152\70\2\1\152\150\2"+ - "\1\152\174\2\1\152\15\2\1\152\57\2\2\152\12\2"+ - "\1\152\135\2\1\152\13\2\1\152\62\2\1\152\36\2"+ - "\1\152\17\2\4\0\263\2\2\152\72\2\1\152\134\2"+ - "\1\152\13\2\1\152\124\2\1\152\15\2\1\152\132\2"+ - "\1\152\5\2\3\0\1\210\13\2\1\152\21\2\1\152"+ - "\14\2\1\152\144\2\1\152\1\2\1\152\72\2\1\152"+ - "\122\2\1\152\153\2\1\152\24\2\1\152\120\2\1\152"+ - "\13\2\1\152\157\2\1\152\113\2\1\152\10\2\1\152"+ - "\2\2\1\152\4\2\1\152\55\2\1\152\25\2\1\152"+ - "\12\2\1\152\4\2\1\152\116\2\1\152\47\2\1\152"+ - "\104\2\1\152\51\2\1\152\21\2\1\152\32\2\1\152"+ - "\23\2\1\152\24\2\1\152\27\2\1\152\5\2\1\152"+ - "\7\2\1\152\13\2\1\152\75\2\1\152\16\2\1\152"+ - "\2\2\1\152\3\2\1\152\137\2\1\152\33\2\1\152"+ - "\13\2\1\152\10\2\1\152\151\2\1\152\107\2\1\152"+ - "\4\2\1\152\74\2\1\152\1\2\1\152\3\2\1\152"+ - "\25\2\1\152\110\2\1\152\54\2\1\152\7\2\1\152"+ - "\61\2\1\152\12\2\1\152\165\2\1\152\157\2\1\152"+ - "\33\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[8198]; - 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\141\0\302\0\u0123\0\u0184\0\u01e5\0\u0246\0\u02a7"+ - "\0\u0308\0\u0369\0\u03ca\0\u042b\0\u048c\0\u04ed\0\u054e\0\u05af"+ - "\0\u0610\0\u0671\0\u06d2\0\u0733\0\u0794\0\u07f5\0\u0856\0\u08b7"+ - "\0\u0918\0\u0979\0\u09da\0\u0a3b\0\u0a9c\0\u0afd\0\u0b5e\0\u0bbf"+ - "\0\u0c20\0\u0c81\0\u0ce2\0\u0d43\0\u0da4\0\u0e05\0\u0c81\0\u0e66"+ - "\0\u0ec7\0\u0f28\0\u0f89\0\u0fea\0\u0c81\0\u0c81\0\u104b\0\u10ac"+ - "\0\u110d\0\u0c81\0\u116e\0\u0c81\0\u0c81\0\u0c81\0\u11cf\0\u0c81"+ - "\0\u1230\0\u1291\0\u12f2\0\u1353\0\u13b4\0\u1415\0\u1476\0\u14d7"+ - "\0\u1538\0\u1599\0\u15fa\0\u165b\0\u16bc\0\u171d\0\u177e\0\u17df"+ - "\0\u1840\0\u18a1\0\u1902\0\u11cf\0\u1963\0\u19c4\0\u0c81\0\u1a25"+ - "\0\u0c81\0\u1a86\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81"+ - "\0\u0c81\0\u1ae7\0\u0c81\0\u1b48\0\u1ba9\0\u0c81\0\u0c81\0\u1c0a"+ - "\0\u1c6b\0\u1ccc\0\u1d2d\0\u1d8e\0\u1def\0\u1e50\0\u1eb1\0\u0c81"+ - "\0\u1f12\0\u1f73\0\u1fd4\0\u0c81\0\u2035\0\u2096\0\u20f7\0\u2158"+ - "\0\u21b9\0\u221a\0\u227b\0\u22dc\0\u233d\0\u239e\0\u23ff\0\u2460"+ - "\0\u24c1\0\u2522\0\u2583\0\u25e4\0\u2645\0\u26a6\0\u0c81\0\u0c81"+ - "\0\u2707\0\u0c81\0\u2768\0\u27c9\0\u0c81\0\u282a\0\u0c81\0\u288b"+ - "\0\u0c81\0\u27c9\0\u28ec\0\u0c81\0\u294d\0\u29ae\0\u2a0f\0\u2a70"+ - "\0\u2ad1\0\u2b32\0\u0c81\0\u2b93\0\u2bf4\0\u2c55\0\u2cb6\0\u2d17"+ - "\0\u2d78\0\u2dd9\0\u2e3a\0\u0c81\0\u2e9b\0\u2efc\0\u2f5d\0\u2fbe"+ - "\0\u0c81\0\u301f\0\u0c81\0\u3080\0\u30e1\0\u3142\0\u31a3\0\u3204"+ - "\0\u3265\0\u32c6\0\u2035\0\u3327\0\u3388\0\u33e9\0\u344a\0\u34ab"+ - "\0\u350c\0\u356d\0\u35ce\0\u362f\0\u3690\0\u36f1\0\u3752\0\u37b3"+ - "\0\u3814\0\u3875\0\u38d6\0\u3937\0\u3998\0\u39f9\0\u3a5a\0\u3abb"+ - "\0\u3b1c\0\u3b7d\0\u3bde\0\u3c3f\0\u3ca0\0\u0c81\0\u3d01\0\u3d62"+ - "\0\u3dc3\0\u0c81\0\u3e24\0\u3e85\0\u0c81\0\u0c81\0\u3ee6\0\u3f47"+ - "\0\u3fa8\0\u0c81\0\u4009\0\u0c81\0\u0c81\0\u0c81\0\u406a\0\u0c81"+ - "\0\u40cb\0\u412c\0\u418d\0\u41ee\0\u0c81\0\u424f\0\u0c81\0\u0c81"+ - "\0\u0c81\0\u406a\0\u40cb\0\u42b0\0\u4311\0\u0c81\0\u0c81\0\u0c81"+ - "\0\u0c81\0\u406a\0\u0c81\0\u4372\0\u43d3\0\u4434\0\u4495\0\u44f6"+ - "\0\u4557\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81"+ - "\0\u45b8\0\u4619\0\u0c81\0\u27c9\0\u467a\0\u0c81\0\u46db\0\u0c81"+ - "\0\u473c\0\u0c81\0\u479d\0\u47fe\0\u485f\0\u48c0\0\u4921\0\u0c81"+ - "\0\u4982\0\u49e3\0\u4a44\0\u4aa5\0\u4b06\0\u4b67\0\u4bc8\0\u4c29"+ - "\0\u4c8a\0\u4ceb\0\u4d4c\0\u4dad\0\u4e0e\0\u4e6f\0\u4ed0\0\u4f31"+ - "\0\u4f92\0\u4ff3\0\u5054\0\u50b5\0\u5116\0\u5177\0\u51d8\0\u5239"+ - "\0\u529a\0\u52fb\0\u535c\0\u53bd\0\u541e\0\u547f\0\u54e0\0\u5541"+ - "\0\u55a2\0\u5603\0\u5664\0\u56c5\0\u5726\0\u5787\0\u57e8\0\u5849"+ - "\0\u58aa\0\u590b\0\u596c\0\u59cd\0\u5a2e\0\u5a8f\0\u5af0\0\u5b51"+ - "\0\u5bb2\0\u5c13\0\u5c74\0\u5cd5\0\u5d36\0\u5d97\0\u5df8\0\u5e59"+ - "\0\u5eba\0\u5f1b\0\u5f7c\0\u5fdd\0\u603e\0\u609f\0\u6100\0\u6161"+ - "\0\u61c2\0\u6223\0\u6284\0\u62e5\0\u6346\0\u63a7\0\u6408\0\u6469"+ - "\0\u64ca\0\u652b\0\u0c81\0\u1f12\0\u658c\0\u65ed\0\u664e\0\u0c81"+ - "\0\u66af\0\u6710\0\u664e\0\u6771\0\u67d2\0\u6833\0\u6894\0\u6894"+ - "\0\u68f5\0\u6894\0\u6956\0\u69b7\0\u6a18\0\u6a79\0\u6ada\0\u6b3b"+ - "\0\u1c6b\0\u6b9c\0\u6bfd\0\u6c5e\0\u6cbf\0\u6d20\0\u6d81\0\u6de2"+ - "\0\u6e43\0\u6ea4\0\u6f05\0\u6f66\0\u6fc7\0\u7028\0\u7089\0\u70ea"+ - "\0\u714b\0\u71ac\0\u720d\0\u726e\0\u72cf\0\u7330\0\u7391\0\u73f2"+ - "\0\u7453\0\u74b4\0\u7515\0\u7576\0\u75d7\0\u7638\0\u7699\0\u76fa"+ - "\0\u775b\0\u77bc\0\u781d\0\u787e\0\u78df\0\u7940\0\u79a1\0\u7a02"+ - "\0\u7a63\0\u7ac4\0\u7b25\0\u7b86\0\u7be7\0\u7c48\0\u7ca9\0\u0c81"+ - "\0\u7d0a\0\u7d6b\0\u7dcc\0\u7e2d\0\u0c81\0\u7e8e\0\u7eef\0\u7f50"+ - "\0\u7fb1\0\u8012\0\u8073\0\u0c81\0\u0c81\0\u80d4\0\u8135\0\u8196"+ - "\0\u81f7\0\u8258\0\u82b9\0\u831a\0\u837b\0\u83dc\0\u843d\0\u849e"+ - "\0\u84ff\0\u8560\0\u85c1\0\u8622\0\u8683\0\u86e4\0\u8745\0\u87a6"+ - "\0\u8807\0\u8868\0\u88c9\0\u892a\0\u898b\0\u89ec\0\u8a4d\0\u8aae"+ - "\0\u8b0f\0\u8b70\0\u8bd1\0\u8c32\0\u8c93\0\u8cf4\0\u8d55\0\u8db6"+ - "\0\u8e17\0\u8e78\0\u8ed9\0\u0c81\0\u8f3a\0\u8f9b\0\u8ffc\0\u905d"+ - "\0\u90be\0\u911f\0\u9180\0\u91e1\0\u9242\0\u92a3\0\u9304\0\u9365"+ - "\0\u93c6\0\u9427\0\u9488\0\u94e9\0\u954a\0\u95ab\0\u960c\0\u966d"+ - "\0\u96ce\0\u972f\0\u9790\0\u97f1\0\u9852\0\u98b3\0\u9914\0\u9975"+ - "\0\u99d6\0\u9a37\0\u9a98\0\u9af9\0\u9b5a\0\u9bbb\0\u9c1c\0\u9c7d"+ - "\0\u9cde\0\u9d3f\0\u9da0\0\u9e01\0\u9e62\0\u9ec3\0\u9f24\0\u9f85"+ - "\0\u9fe6\0\ua047\0\ua0a8\0\ua109\0\ua16a\0\ua1cb\0\ua22c\0\ua28d"+ - "\0\ua2ee\0\ua34f\0\ua3b0\0\ua411\0\ua472\0\ua4d3\0\ua534\0\ua595"+ - "\0\ua5f6\0\ua657\0\ua6b8\0\ua719\0\ua77a\0\ua7db\0\ua83c\0\ua89d"+ - "\0\ua8fe\0\ua95f\0\ua9c0\0\uaa21\0\uaa82\0\uaae3\0\uab44\0\uaba5"+ - "\0\uac06\0\uac67\0\uacc8\0\uad29\0\uad8a\0\uadeb\0\uae4c\0\uaead"+ - "\0\uaf0e\0\uaf6f\0\uafd0\0\ub031\0\ub092\0\ub0f3\0\ub154\0\ub1b5"+ - "\0\ub216\0\ub277\0\ub2d8\0\ub339\0\ub39a\0\ub3fb\0\ub45c\0\ub4bd"+ - "\0\ub51e\0\ub57f\0\ub5e0\0\ub641\0\ub6a2\0\ub703\0\ub764\0\ub7c5"+ - "\0\ub826\0\ub887\0\ub8e8\0\ub949\0\ub9aa\0\uba0b\0\uba6c\0\ubacd"+ - "\0\ubb2e\0\ubb8f\0\ubbf0\0\ubc51\0\ubcb2\0\ubd13\0\ubd74\0\ubdd5"+ - "\0\ube36\0\ube97\0\ubef8\0\ubf59\0\ubfba\0\uc01b\0\uc07c\0\uc0dd"+ - "\0\uc13e\0\uc19f\0\uc200\0\uc261\0\uc2c2\0\uc323\0\uc384\0\uc3e5"+ - "\0\uc446\0\uc4a7\0\uc508\0\uc569\0\uc5ca\0\uc62b\0\uc68c\0\uc6ed"+ - "\0\uc74e\0\uc7af\0\uc810\0\uc871\0\uc8d2\0\uc933\0\uc994\0\uc9f5"+ - "\0\u1c6b\0\uca56\0\ucab7\0\ucb18\0\ucb79\0\ucbda\0\ucc3b\0\ucc9c"+ - "\0\uccfd\0\ucd5e\0\ucdbf\0\uce20\0\uce81\0\ucee2\0\ucf43\0\ucfa4"+ - "\0\ud005\0\ud066\0\ud0c7\0\ud128\0\ud189\0\ud1ea\0\ud24b\0\ud2ac"+ - "\0\ud30d\0\ud36e\0\ud3cf\0\ud430\0\ud491\0\ud4f2\0\ud553\0\ud5b4"+ - "\0\ud615\0\ud676\0\ud6d7\0\ud738\0\ud799\0\ud7fa\0\ud85b\0\ud8bc"+ - "\0\ud91d\0\ud97e\0\ud9df\0\u0c81\0\u0c81\0\uda40\0\u0c81\0\udaa1"+ - "\0\u0c81\0\udb02\0\udb63\0\udbc4\0\udc25\0\udc86\0\udce7\0\udd48"+ - "\0\udda9\0\ude0a\0\ude6b\0\udecc\0\udf2d\0\udf8e\0\udfef\0\ue050"+ - "\0\u0c81\0\ue0b1\0\ue112\0\ue173\0\ue1d4\0\ue235\0\u44f6\0\ue296"+ - "\0\u0c81\0\u0c81\0\u0c81\0\u479d\0\ue2f7\0\ue358\0\ue3b9\0\ue41a"+ - "\0\u0c81\0\ue47b\0\ue4dc\0\ue53d\0\ue59e\0\ue5ff\0\ue660\0\ue6c1"+ - "\0\ue722\0\ue783\0\ue7e4\0\ue845\0\ue8a6\0\ue907\0\ue968\0\ue9c9"+ - "\0\uea2a\0\uea8b\0\ueaec\0\ueb4d\0\uebae\0\uec0f\0\uec70\0\uecd1"+ - "\0\ued32\0\ued93\0\uedf4\0\uee55\0\ueeb6\0\uef17\0\uef78\0\uefd9"+ - "\0\uf03a\0\uf09b\0\uf0fc\0\uf15d\0\u5603\0\uf1be\0\uf21f\0\uf280"+ - "\0\uf2e1\0\uf342\0\uf3a3\0\uf404\0\uf465\0\uf4c6\0\uf527\0\uf588"+ - "\0\uf5e9\0\uf64a\0\uf6ab\0\uf70c\0\uf76d\0\uf7ce\0\uf82f\0\uf890"+ - "\0\uf8f1\0\uf952\0\uf9b3\0\ufa14\0\ufa75\0\ufad6\0\ufb37\0\ufb98"+ - "\0\u1599\0\ufbf9\0\ufc5a\0\ufcbb\0\ufd1c\0\ufd7d\0\ufdde\0\ufe3f"+ - "\0\ufea0\0\uff01\0\uff62\0\uffc3\1\44\1\205\1\346\0\u6894"+ - "\1\u0147\1\u01a8\1\u0209\1\u026a\1\u02cb\1\u032c\1\u038d\1\u03ee"+ - "\1\u044f\1\u04b0\1\u0511\1\u0572\1\u05d3\1\u0634\1\u0695\1\u06f6"+ - "\1\u0757\1\u07b8\1\u0819\1\u087a\1\u08db\1\u093c\1\u099d\1\u09fe"+ - "\1\u0a5f\0\u1c6b\1\u0ac0\1\u0b21\1\u0b82\1\u0be3\1\u0c44\1\u0ca5"+ - "\1\u0d06\1\u0d67\1\u0dc8\1\u0e29\1\u0e8a\1\u0eeb\1\u0f4c\1\u0fad"+ - "\1\u100e\1\u106f\1\u10d0\1\u1131\1\u1192\1\u11f3\1\u1254\1\u12b5"+ - "\1\u1316\1\u1377\1\u13d8\1\u1439\1\u149a\1\u14fb\1\u155c\1\u15bd"+ - "\1\u161e\1\u167f\1\u16e0\1\u1741\1\u17a2\1\u1803\1\u1864\1\u18c5"+ - "\1\u1926\1\u1987\1\u19e8\1\u1a49\1\u1aaa\1\u1b0b\1\u1b6c\1\u1bcd"+ - "\1\u1c2e\1\u1c8f\1\u1cf0\1\u1d51\1\u1db2\1\u1e13\1\u1e74\1\u1ed5"+ - "\1\u1f36\1\u1f97\1\u1ff8\1\u2059\1\u20ba\1\u211b\1\u217c\1\u21dd"+ - "\1\u223e\1\u229f\1\u2300\1\u2361\1\u23c2\1\u2423\1\u2484\1\u24e5"+ - "\1\u2546\1\u25a7\1\u2608\1\u2669\1\u26ca\1\u272b\1\u278c\1\u27ed"+ - "\1\u284e\1\u28af\1\u2910\1\u2971\1\u29d2\1\u2a33\0\uff62\1\u2a94"+ - "\1\u2af5\1\u2b56\1\u2bb7\1\u2c18\1\u2c79\1\u2cda\1\u2d3b\1\u2d9c"+ - "\1\u2dfd\1\u2e5e\1\u2ebf\1\u2f20\1\u2f81\1\u2fe2\1\u3043\1\u30a4"+ - "\1\u3105\1\u3166\1\u31c7\1\u3228\1\u3289\1\u32ea\1\u334b\1\u33ac"+ - "\1\u340d\1\u346e\1\u34cf\1\u3530\1\u3591\1\u35f2\1\u3653\1\u36b4"+ - "\1\u3715\1\u3776\1\u37d7\1\u3838\1\u3899\1\u38fa\1\u395b\1\u39bc"+ - "\1\u3a1d\1\u3a7e\1\u3adf\1\u3b40\1\u3ba1\1\u3c02\1\u3c63\1\u3cc4"+ - "\1\u3d25\1\u3d86\1\u3de7\1\u3e48\1\u3ea9\1\u3f0a\1\u3f6b\1\u3fcc"+ - "\1\u402d\1\u408e\1\u40ef\1\u4150\1\u41b1\1\u4212\1\u4273\1\u42d4"+ - "\1\u4335\1\u4396\1\u43f7\1\u4458\1\u44b9\1\u451a\1\u457b\1\u45dc"+ - "\1\u463d\1\u469e\1\u46ff\1\u4760\1\u47c1\1\u4822\1\u4883\1\u48e4"+ - "\1\u4945\1\u49a6\1\u4a07\1\u4a68\1\u4ac9\1\u4b2a\1\u4b8b\1\u4bec"+ - "\1\u4c4d\1\u4cae\1\u4d0f\1\u4d70\1\u4dd1\1\u4e32\1\u4e93\1\u4ef4"+ - "\1\u4f55\1\u4fb6\1\u5017\1\u5078\1\u50d9\1\u513a\1\u519b\1\u51fc"+ - "\1\u525d\1\u52be\1\u531f\1\u5380\1\u53e1\1\u5442\1\u54a3\1\u5504"+ - "\1\u5565\1\u55c6\1\u5627\1\u5688\1\u56e9\1\u4b8b\1\u574a\1\u57ab"+ - "\1\u580c\1\u586d\1\u58ce\1\u592f\1\u5990\1\u59f1\1\u5a52\1\u5ab3"+ - "\1\u5b14\1\u5b75\1\u5bd6\1\u5c37\1\u5c98\1\u5cf9\1\u5d5a\1\u5dbb"+ - "\1\u5e1c\1\u5e7d\1\u5ede\1\u5f3f\1\u5fa0\1\u6001\1\u6062\1\u60c3"+ - "\1\u6124\1\u6185\1\u61e6\1\u6247\1\u62a8\1\u6309\1\u636a\1\u63cb"+ - "\1\u642c\1\u648d\1\u64ee\1\u654f\1\u65b0\1\u6611\1\u6672\1\u66d3"+ - "\1\u6734\1\u6795\1\u67f6\1\u6857\1\u68b8\1\u6919\1\u0a5f\1\u697a"+ - "\1\u69db\1\u6a3c\1\u6a9d\1\u6afe\1\u6b5f\1\u6bc0\1\u6c21\1\u6c82"+ - "\1\u6ce3\1\u6d44\1\u6da5\1\u6e06\1\u6e67\1\u6ec8\1\u6f29\1\u6f8a"+ - "\1\u6feb\1\u704c\1\u70ad\1\u710e\1\u716f\1\u71d0\1\u7231\1\u7292"+ - "\1\u72f3\1\u7354\1\u73b5\1\u7416\1\u7477\1\u74d8\1\u7539\1\u759a"+ - "\1\u75fb\1\u765c\1\u76bd\1\u771e\1\u777f\1\u77e0\1\u7841\1\u78a2"+ - "\1\u7903\1\u7964\1\u79c5\1\u7a26\1\u7a87\1\u7ae8\1\u7b49\1\u7baa"+ - "\1\u7c0b\1\u7c6c\1\u7ccd\1\u7d2e\1\u7d8f\1\u7df0\1\u7e51\1\u7eb2"+ - "\1\u7f13\1\u7f74\1\u7fd5\1\u8036\1\u8097\1\u80f8\1\u8159\1\u81ba"+ - "\1\u821b\1\u827c\1\u82dd\1\u833e\1\u839f\1\u8400\1\u8461\1\u84c2"+ - "\1\u8523\1\u8584\1\u85e5\1\u8646\1\u86a7\1\u8708\1\u8769\1\u87ca"+ - "\1\u882b\1\u888c\1\u88ed\1\u894e\1\u89af\1\u8a10\1\u8a71\1\u8ad2"+ - "\1\u8b33\1\u8b94\1\u8bf5\1\u8c56\1\u8cb7\1\u8d18\1\u8d79\1\u8dda"+ - "\1\u8e3b\1\u8e9c\1\u8efd\1\u8f5e\1\u8fbf\1\u9020\1\u9081\1\u90e2"+ - "\1\u9143\1\u91a4\1\u9205\1\u9266\1\u92c7\1\u9328\1\u9389\1\u93ea"+ - "\1\u944b\1\u94ac\1\u950d\1\u956e\1\u95cf\1\u9630\1\u9691\1\u96f2"+ - "\1\u9753\1\u97b4\1\u9815\1\u9876\1\u98d7\1\u9938\1\u9999\1\u99fa"+ - "\1\u9a5b\1\u9abc\1\u9b1d\1\u9b7e\1\u9bdf\1\u9c40\1\u9ca1\1\u9d02"+ - "\1\u9d63\1\u9dc4\1\u9e25\1\u9e86\1\u9ee7\1\u9f48\1\u9fa9\1\ua00a"+ - "\1\ua06b\1\ua0cc\1\ua12d\1\ua18e\1\ua1ef\1\ua250\1\u4b2a\1\ua2b1"+ - "\1\ua312\1\ua373\1\ua3d4\1\ua435\1\ua496\1\ua4f7\1\ua558\1\ua5b9"+ - "\1\ua61a\1\ua67b\1\ua6dc\1\ua73d\1\ua79e\1\ua7ff\1\ua860\1\ua8c1"+ - "\1\ua922\1\ua983\1\ua9e4\1\uaa45\1\uaaa6\1\uab07\1\uab68\1\uabc9"+ - "\1\uac2a\1\uac8b\1\uacec\1\uad4d\1\uadae\1\uae0f\1\uae70\1\uaed1"+ - "\1\uaf32\1\uaf93\1\uaff4\1\ub055\1\ub0b6\1\ub117\1\ub178\1\ub1d9"+ - "\1\ub23a\1\ub29b\1\ub2fc\1\ub35d\1\ub3be\1\ub41f\1\ub480\1\ub4e1"+ - "\1\ub542\1\ub5a3\1\ub604\1\ub665\1\ub6c6\1\ub727\1\ub788\1\ub7e9"+ - "\1\ub84a\1\ub8ab\1\ub90c\1\ub96d\1\ub9ce\1\uba2f\1\uba90\1\ubaf1"+ - "\1\ubb52\1\ubbb3\1\ubc14\1\ubc75\1\ubcd6\1\ubd37\1\ubd98\1\ubdf9"+ - "\1\ube5a\1\ubebb\1\ubf1c\1\ubf7d\1\ubfde\1\uc03f\1\uc0a0\1\uc101"+ - "\1\uc162\1\uc1c3\1\uc224\1\uc285\1\uc2e6\1\uc347\1\uc3a8\1\uc409"+ - "\1\uc46a\1\uc4cb\1\uc52c\0\u0c81\1\uc58d\1\uc5ee\1\uc64f\1\uc6b0"+ - "\1\uc711\1\uc772\1\uc7d3\1\uc834\1\uc895\1\uc8f6\1\uc957\1\uc9b8"+ - "\1\uca19\1\uca7a\1\ucadb\1\ucb3c\1\ucb9d\1\ucbfe\1\ucc5f\1\uccc0"+ - "\1\ucd21\1\ucd82\1\ucde3\1\uce44\1\ucea5\1\ucf06\1\ucf67\1\ucfc8"+ - "\1\ud029\1\ud08a\1\ud0eb\1\ud14c\1\ud1ad\1\ud20e\1\ud26f\1\ud2d0"+ - "\0\u5726\1\ud331\0\uf03a\1\ud392\1\ud3f3\1\ud454\1\ud4b5\0\u0c81"+ - "\1\ud516\1\ud577\1\ud5d8\1\ud639\1\ud69a\1\ud6fb\1\ud75c\1\ud7bd"+ - "\0\u1c6b\1\ud81e\1\ud87f\1\ud8e0\1\ud941\0\u1c6b\1\ud9a2\1\uda03"+ - "\1\uda64\1\udac5\1\udb26\0\u1c6b\1\udb87\1\udbe8\1\udc49\1\udcaa"+ - "\1\udd0b\1\udd6c\1\uddcd\1\ude2e\1\ude8f\1\udef0\1\udf51\1\udfb2"+ - "\1\ue013\1\ue074\1\ue0d5\1\ue136\0\u7d6b\0\u0c81\1\ue197\1\ue1f8"+ - "\1\ue259\1\ue2ba\1\ue31b\1\ue37c\1\ue3dd\1\ue43e\1\ue49f\1\ue500"+ - "\1\ue561\1\ue5c2\1\ue623\1\ue684\1\ue6e5\1\ue746\1\ue7a7\1\ue808"+ - "\1\ue869\1\ue8ca\1\ue92b\1\ue98c\1\ue9ed\1\uea4e\1\ueaaf\1\ueb10"+ - "\1\ueb71\1\uebd2\1\uec33\1\uec94\1\uecf5\1\ued56\1\uedb7\1\uee18"+ - "\1\uee79\1\ueeda\1\uef3b\1\uef9c\1\ueffd\1\uf05e\1\uf0bf\0\u0c81"+ - "\1\uf120\1\uf181\1\uf1e2\1\uf243\1\uf2a4\1\uf305\1\uf366\1\uf3c7"+ - "\1\uf428\1\uf489\1\uf4ea\1\uf54b\1\uf5ac\1\uf60d\1\uf66e\1\uf6cf"+ - "\1\uf730\1\uf791\1\uf7f2\1\uf853\1\uf8b4\1\uf915\1\uf976\1\uf9d7"+ - "\1\ufa38\1\ufa99\1\ufafa\1\ufb5b\1\ufbbc\1\ufc1d\1\ufc7e\1\ufcdf"+ - "\1\ufd40\1\ufda1\1\ufe02\1\ufe63\1\ufec4\1\uff25\1\uff86\1\uffe7"+ - "\2\110\2\251\2\u010a\2\u016b\2\u01cc\2\u022d\2\u028e\2\u02ef"+ - "\2\u0350\2\u03b1\2\u0412\2\u0473\2\u04d4\2\u0535\2\u0596\2\u05f7"+ - "\2\u0658\2\u06b9\2\u071a\2\u077b\2\u07dc\2\u083d\2\u089e\2\u08ff"+ - "\2\u0960\2\u09c1\2\u0a22\2\u0a83\2\u0ae4\2\u0b45\2\u0ba6\2\u0c07"+ - "\2\u0c68\2\u0cc9\2\u0d2a\2\u0d8b\2\u04d4\2\u0dec\2\u0e4d\2\u0eae"+ - "\2\u0f0f\2\u0f70\2\u0fd1\2\u1032\2\u1093\2\u10f4\2\u1155\2\u11b6"+ - "\2\u1217\2\u1278\2\u12d9\2\u133a\2\u139b\2\u13fc\2\u145d\2\u14be"+ - "\2\u151f\2\u1580\2\u15e1\2\u1642\2\u16a3\2\u1704\2\u1765\2\u17c6"+ - "\2\u1827\2\u1888\2\u18e9\2\u194a\2\u19ab\2\u1a0c\2\u1a6d\2\u1ace"+ - "\2\u1b2f\2\u1b90\2\u1bf1\2\u1c52\2\u1cb3\2\u1d14\2\u1d75\2\u1dd6"+ - "\2\u1e37\2\u1e98\2\u1ef9\2\u1f5a\2\u1fbb\2\u201c\2\u207d\2\u20de"+ - "\2\u213f\2\u21a0\2\u2201\2\u2262\2\u22c3\2\u2324\2\u2385\2\u23e6"+ - "\2\u2447\2\u24a8\2\u2509\2\u256a\2\u25cb\2\u262c\2\u268d\2\u26ee"+ - "\2\u274f\2\u27b0\2\u2811\2\u2872\2\u28d3\2\u2934\2\u2995\2\u29f6"+ - "\2\u2a57\2\u2ab8\2\u2b19\2\u2b7a\2\u2bdb\2\u2c3c\2\u2c9d\2\u2cfe"+ - "\2\u2d5f\2\u2dc0\2\u2e21\2\u2e82\2\u2ee3\2\u2f44\0\u1c6b\2\u2fa5"+ - "\2\u3006\2\u3067\2\u30c8\2\u3129\2\u318a\2\u31eb\2\u324c\2\u32ad"+ - "\2\u330e\2\u336f\2\u33d0\2\u3431\2\u3492\2\u34f3\2\u3554\2\u35b5"+ - "\2\u3616\2\u3677\2\u36d8\2\u3739\2\u379a\2\u37fb\2\u385c\2\u38bd"+ - "\2\u391e\2\u397f\2\u39e0\2\u3a41\2\u3aa2\2\u3b03\2\u3b64\2\u3bc5"+ - "\2\u3c26\2\u3c87\2\u3ce8\2\u3d49\2\u3daa\2\u3e0b\2\u3e6c\2\u3ecd"+ - "\2\u3f2e\2\u3f8f\1\u8fbf\2\u3ff0\2\u4051\2\u40b2\2\u4113\2\u4174"+ - "\2\u41d5\2\u4236\2\u4297\2\u42f8\2\u4359\2\u43ba\2\u441b\2\u447c"+ - "\2\u44dd\2\u453e\2\u459f\2\u4600\2\u4661\2\u46c2\2\u4723\2\u4784"+ - "\2\u47e5\2\u4846\2\u48a7\2\u4908\2\u4969\1\udb87\2\u49ca\2\u4a2b"+ - "\2\u4a8c\2\u4aed\2\u4b4e\2\u4baf\2\u4c10\2\u4c71\2\u4cd2\2\u4d33"+ - "\2\u4d94\2\u4df5\2\u4e56\2\u4eb7\2\u4f18\2\u4f79\2\u4fda\2\u503b"+ - "\2\u509c\2\u50fd\2\u515e\2\u51bf\2\u5220\2\u5281\2\u52e2\2\u5343"+ - "\2\u53a4\2\u5405\2\u5466\2\u54c7\2\u5528\2\u5589\2\u55ea\2\u564b"+ - "\2\u56ac\2\u570d\2\u576e\2\u57cf\2\u5830\2\u5891\2\u58f2\2\u5953"+ - "\2\u59b4\2\u5a15\2\u5a76\2\u5ad7\2\u5b38\2\u5b99\2\u5bfa\2\u5c5b"+ - "\2\u5cbc\2\u5d1d\2\u5d7e\2\u5ddf\2\u5e40\2\u5ea1\2\u5f02\2\u5f63"+ - "\2\u5fc4\2\u6025\2\u6086\2\u60e7\2\u6148\2\u61a9\2\u620a\2\u626b"+ - "\2\u62cc\2\u632d\2\u638e\2\u63ef\2\u6450\2\u64b1\2\u6512\2\u6573"+ - "\2\u65d4\2\u6635\2\u6696\2\u66f7\2\u6758\2\u67b9\2\u681a\2\u687b"+ - "\2\u68dc\2\u693d\2\u699e\2\u69ff\2\u6a60\2\u6ac1\2\u6b22\2\u6b83"+ - "\2\u6be4\2\u6c45\2\u6ca6\2\u6d07\2\u6d68\2\u6dc9\2\u6e2a\2\u6e8b"+ - "\2\u6eec\2\u6f4d\2\u6fae\2\u700f\2\u7070\2\u70d1\2\u7132\2\u7193"+ - "\2\u71f4\2\u7255\2\u72b6\2\u7317\0\ua0a8\2\u7378\2\u73d9\2\u743a"+ - "\2\u749b\2\u74fc\2\u755d\2\u75be\2\u761f\2\u7680\2\u76e1\2\u7742"+ - "\2\u77a3\2\u7804\2\u7865\2\u78c6\2\u7927\2\u7988\2\u79e9\2\u7a4a"+ - "\2\u7aab\2\u7b0c\2\u7b6d\2\u7bce\2\u7c2f\2\u7c90\2\u7cf1\2\u7d52"+ - "\2\u7db3\2\u7e14\2\u7e75\2\u7ed6\2\u7f37\1\u88ed\2\u7f98\2\u7ff9"+ - "\2\u805a\2\u80bb\2\u811c\2\u817d\2\u81de\2\u823f\2\u82a0\2\u8301"+ - "\2\u8362\2\u83c3\2\u8424\2\u8485\2\u84e6\2\u8547\2\u85a8\2\u8609"+ - "\2\u866a\2\u86cb\2\u872c\2\u878d\2\u87ee\2\u884f\2\u88b0\2\u8911"+ - "\2\u8972\2\u89d3\2\u8a34\2\u8a95\2\u8af6\2\u8b57\2\u8bb8\2\u8c19"+ - "\2\u8c7a\2\u8cdb\2\u8d3c\2\u8d9d\2\u8dfe\2\u8e5f\2\u8ec0\2\u8f21"+ - "\2\u8f82\2\u8fe3\2\u9044\2\u90a5\2\u9106\2\u9167\2\u91c8\2\u9229"+ - "\2\u928a\2\u92eb\2\u934c\2\u93ad\2\u940e\2\u946f\2\u94d0\2\u9531"+ - "\2\u9592\2\u95f3\2\u9654\2\u96b5\2\u9716\2\u9777\2\u97d8\2\u9839"+ - "\2\u989a\2\u98fb\2\u995c\2\u99bd\2\u9a1e\2\u9a7f\2\u9ae0\2\u9b41"+ - "\2\u9ba2\2\u9c03\2\u9c64\2\u9cc5\2\u9d26\2\u9d87\2\u9de8\2\u9e49"+ - "\2\u9eaa\2\u9f0b\2\u9f6c\2\u9fcd\2\ua02e\2\ua08f\2\ua0f0\2\ua151"+ - "\2\ua1b2\2\ua213\2\ua274\2\ua2d5\2\ua336\2\ua397\2\ua3f8\2\ua459"+ - "\2\ua4ba\2\ua51b\2\ua57c\2\ua5dd\2\ua63e\2\ua69f\2\ua700\2\ua761"+ - "\2\ua7c2\2\ua823\2\ua884\2\ua8e5\2\ua946\2\ua9a7\2\uaa08\2\uaa69"+ - "\2\uaaca\2\uab2b\2\uab8c\2\uabed\2\uac4e\2\uacaf\2\uad10\2\uad71"+ - "\2\uadd2\2\uae33\2\uae94\2\uaef5\2\uaf56\2\uafb7\2\ub018\2\ub079"+ - "\2\ub0da\2\ub13b\2\ub19c\2\ub1fd\2\ub25e\2\ub2bf\2\ub320\2\ub381"+ - "\2\ub3e2\2\ub443\2\ub4a4\2\ub505\2\ub566\2\ub5c7\2\ub628\2\ub689"+ - "\2\ub6ea\2\ub74b\2\ub7ac\2\ub80d\2\ub86e\2\ub8cf\2\ub930\2\ub991"+ - "\2\ub9f2\2\uba53\2\ubab4\2\ubb15\2\ubb76\2\ubbd7\0\u0c81\2\ubc38"+ - "\2\ubc99\2\ubcfa\2\ubd5b\2\ubdbc\2\ube1d\0\u0c81\2\ube7e\1\uc6b0"+ - "\0\u104b\2\ubedf\2\ubf40\2\ubfa1\2\uc002\2\uc063\2\uc0c4\2\uc125"+ - "\2\uc186\2\uc1e7\2\uc248\2\uc2a9\2\uc30a\2\uc36b\2\uc3cc\2\uc42d"+ - "\2\uc48e\2\uc48e\2\uc4ef\2\uc550\2\uc5b1\0\u0c81\2\uc612\0\u0c81"+ - "\2\uc673\2\uc6d4\2\uc735\2\uc796\2\uc7f7\2\uc858\1\u04b0\2\uc8b9"+ - "\2\uc91a\2\uc97b\2\uc9dc\2\uca3d\2\uca9e\2\ucaff\2\ucb60\2\ucbc1"+ - "\2\ucc22\2\ucc83\2\ucce4\2\ucd45\2\ucda6\0\u0c81\0\u0c81\2\uce07"+ - "\2\uce68\1\ue31b\2\ucec9\1\ue43e\2\ucf2a\2\ucf8b\2\ucfec\2\ud04d"+ - "\2\ud0ae\2\ud10f\2\ud170\2\ud1d1\2\ud232\2\ud293\2\ud2f4\2\ud355"+ - "\2\ud3b6\2\ud417\2\ud478\2\ud4d9\2\ud53a\2\ud59b\2\ud5fc\2\ud65d"+ - "\2\ud6be\2\ud71f\2\ud780\2\ud7e1\2\ud842\2\ud8a3\2\ud904\2\ud965"+ - "\2\ud9c6\2\uda27\2\uda88\2\udae9\2\udb4a\2\udbab\2\udc0c\2\udc6d"+ - "\2\udcce\2\udd2f\2\udd90\2\uddf1\1\uf8b4\2\ude52\2\udeb3\2\udf14"+ - "\2\udf75\2\udfd6\2\ue037\2\ue098\2\ue0f9\2\ue15a\2\ue1bb\2\ue21c"+ - "\2\ue27d\2\ue2de\2\ue33f\2\ue3a0\2\ue401\2\ue462\2\ue4c3\2\ue524"+ - "\2\ue585\2\ue5e6\2\ue647\2\ue6a8\2\ue709\2\ue76a\2\ue7cb\0\ucc9c"+ - "\2\ue82c\2\ue88d\2\ue8ee\2\ue94f\2\ue9b0\2\uea11\2\uea72\2\uead3"+ - "\2\ueb34\2\ueb95\2\uebf6\2\uec57\2\uecb8\2\ued19\2\ued7a\2\ueddb"+ - "\2\uee3c\2\uee9d\2\ueefe\2\uef5f\2\uefc0\2\uf021\2\uf082\2\uf0e3"+ - "\2\uf144\2\uf1a5\2\uf206\2\uf267\2\uf2c8\2\uf329\2\uf38a\2\uf3eb"+ - "\2\uf44c\2\uf4ad\2\uf50e\2\uf56f\2\uf5d0\2\uf631\2\uf692\2\uf6f3"+ - "\2\uf754\2\uf7b5\2\uf816\2\uf877\2\uf8d8\2\uf939\2\uf99a\2\uf9fb"+ - "\2\ufa5c\2\ufabd\2\ufb1e\2\ufb7f\2\ufbe0\2\ufc41\2\ufca2\2\ufd03"+ - "\2\ufd64\2\ufdc5\2\ufe26\2\ufe87\2\ufee8\2\uff49\2\uffaa\3\13"+ - "\3\154\3\315\3\u012e\3\u018f\3\u01f0\3\u0251\3\u02b2\3\u0313"+ - "\3\u0374\3\u03d5\3\u0436\3\u0497\3\u04f8\3\u0559\3\u05ba\3\u061b"+ - "\3\u067c\3\u06dd\3\u073e\3\u079f\3\u0800\3\u0861\3\u08c2\3\u0923"+ - "\3\u0984\3\u09e5\3\u0a46\3\u0aa7\3\u0b08\3\u0b69\3\u0bca\3\u0c2b"+ - "\3\u0c8c\3\u0ced\3\u0d4e\3\u0daf\3\u0e10\3\u0e71\3\u0ed2\3\u0f33"+ - "\3\u0f94\3\u0ff5\3\u1056\3\u10b7\3\u1118\3\u1179\3\u11da\3\u123b"+ - "\3\u129c\3\u12fd\3\u135e\3\u13bf\3\u1420\3\u1481\3\u14e2\3\u1543"+ - "\3\u15a4\3\u1605\3\u1666\3\u16c7\3\u1728\3\u1789\3\u17ea\3\u184b"+ - "\3\u18ac\3\u190d\3\u196e\3\u19cf\3\u1a30\3\u1a91\3\u1af2\3\u1b53"+ - "\3\u1bb4\3\u1c15\3\u1c76\3\u1cd7\3\u1cd7\3\u1d38\3\u1d99\3\u1dfa"+ - "\3\u1e5b\3\u1ebc\3\u1f1d\3\u1f7e\3\u1fdf\3\u2040\3\u20a1\3\u2102"+ - "\3\u2163\3\u21c4\3\u2225\3\u2286\3\u22e7\3\u2348\3\u23a9\3\u240a"+ - "\3\u246b\3\u24cc\3\u252d\3\u258e\3\u25ef\3\u2650\3\u26b1\3\u2712"+ - "\3\u2773\3\u27d4\3\u2835\3\u2896\3\u28f7\3\u2958\3\u29b9\3\u2a1a"+ - "\3\u2a7b\3\u2adc\3\u2b3d\3\u2b9e\3\u2bff\3\u2c60\3\u2cc1\3\u2d22"+ - "\3\u2d83\3\u2de4\3\u2e45\3\u2ea6\3\u2f07\3\u2f68\3\u2fc9\3\u302a"+ - "\3\u308b\3\u30ec\3\u314d\3\u31ae\3\u320f\3\u1c76\2\u34f3\3\u3270"+ - "\3\u32d1\3\u3332\3\u3393\3\u33f4\3\u3455\3\u34b6\3\u3517\3\u3578"+ - "\3\u35d9\3\u363a\3\u369b\3\u36fc\3\u375d\3\u37be\3\u381f\3\u3880"+ - "\3\u38e1\3\u3942\3\u39a3\3\u3a04\3\u3a65\3\u3ac6\3\u3b27\3\u3b88"+ - "\3\u3be9\3\u3c4a\3\u3cab\3\u3d0c\3\u3d6d\3\u3dce\3\u3e2f\3\u3e90"+ - "\3\u3ef1\3\u3f52\3\u3fb3\3\u4014\3\u4075\3\u40d6\3\u4137\3\u4198"+ - "\3\u41f9\3\u425a\3\u42bb\3\u431c\3\u437d\3\u43de\3\u443f\3\u44a0"+ - "\3\u4501\3\u4562\3\u45c3\3\u4624\3\u4685\3\u46e6\3\u4747\3\u47a8"+ - "\3\u4809\3\u486a\3\u48cb\3\u492c\3\u498d\3\u49ee\3\u4a4f\3\u4ab0"+ - "\3\u4b11\3\u4b72\3\u4bd3\3\u4c34\3\u4c95\3\u4cf6\3\u4d57\3\u4db8"+ - "\3\u4e19\3\u4e7a\3\u4edb\3\u4f3c\3\u4f9d\3\u4ffe\3\u505f\3\u50c0"+ - "\3\u5121\3\u5182\3\u51e3\3\u5244\3\u52a5\3\u5306\3\u5367\3\u53c8"+ - "\3\u5429\3\u548a\3\u54eb\3\u554c\3\u55ad\3\u560e\3\u566f\3\u56d0"+ - "\3\u5731\3\u5792\3\u57f3\3\u5854\3\u58b5\3\u5916\3\u5977\3\u59d8"+ - "\3\u5a39\3\u5a9a\3\u5afb\3\u5b5c\3\u5bbd\3\u5c1e\3\u5c7f\3\u5ce0"+ - "\3\u5d41\3\u5da2\3\u5e03\3\u5e64\3\u5ec5\3\u5f26\3\u5f87\3\u5fe8"+ - "\3\u6049\3\u60aa\3\u610b\3\u616c\3\u61cd\3\u622e\3\u628f\3\u62f0"+ - "\3\u6351\3\u63b2\3\u6413\3\u6474\3\u64d5\3\u6536\3\u6597\3\u65f8"+ - "\3\u6659\3\u66ba\3\u671b\3\u677c\3\u67dd\3\u683e\3\u689f\3\u6900"+ - "\3\u6961\3\u69c2\3\u6a23\3\u6a84\3\u6ae5\3\u6b46\3\u6ba7\3\u6c08"+ - "\3\u6c69\3\u6cca\3\u6d2b\3\u6d8c\3\u6ded\3\u6e4e\3\u6eaf\3\u6f10"+ - "\3\u6f71\3\u6fd2\3\u7033\3\u7094\3\u70f5\3\u7156\3\u71b7\3\u7218"+ - "\3\u7279\3\u72da\3\u733b\3\u739c\3\u73fd\3\u745e\3\u74bf\3\u7520"+ - "\3\u7581\3\u75e2\3\u7643\3\u76a4\3\u7705\3\u7766\3\u77c7\3\u7828"+ - "\3\u7889\3\u78ea\3\u794b\3\u79ac\3\u7a0d\3\u7a6e\3\u7acf\3\u7b30"+ - "\3\u7b91\3\u7bf2\3\u7c53\3\u7cb4\3\u7d15\3\u7d76\3\u7dd7\3\u7e38"+ - "\3\u7e99\3\u7efa\3\u7f5b\3\u7fbc\3\u801d\3\u807e\3\u80df\3\u8140"+ - "\3\u81a1\3\u8202\3\u8263\3\u82c4\3\u8325\3\u8386\3\u83e7\3\u8448"+ - "\3\u84a9\3\u850a\3\u856b\3\u85cc\3\u862d\3\u868e\3\u86ef\3\u8750"+ - "\3\u87b1\3\u8812\3\u8873\3\u88d4\3\u8935\3\u8996\3\u89f7\3\u8a58"+ - "\3\u8ab9\3\u8b1a\3\u8b7b\3\u8bdc\3\u8c3d\3\u8c9e\3\u8cff\3\u8d60"+ - "\3\u8dc1\3\u8e22\3\u8e83\3\u8ee4\3\u8f45\3\u8fa6\3\u9007\3\u9068"+ - "\3\u90c9\3\u912a\3\u918b\3\u91ec\3\u924d\3\u92ae\3\u930f\3\u9370"+ - "\3\u93d1\3\u9432\3\u9493\3\u94f4\3\u9555\3\u95b6\3\u9617\3\u9678"+ - "\3\u96d9\3\u973a\3\u979b\3\u97fc\3\u985d\3\u98be\3\u991f\3\u9980"+ - "\3\u99e1\3\u9a42\3\u9aa3\3\u9b04\3\u9b65\3\u9bc6\3\u9c27\3\u9c88"+ - "\3\u9ce9\3\u9d4a\3\u9dab\3\u9e0c\3\u9e6d\3\u9ece\3\u9f2f\3\u9f90"+ - "\3\u9ff1\3\ua052\3\ua0b3\3\ua114\3\ua175\3\ua1d6\3\ua237\3\ua298"+ - "\3\ua2f9\3\ua35a\3\ua3bb\3\ua41c\3\ua47d\3\ua4de\3\ua53f\3\ua5a0"+ - "\3\ua601\3\ua662\3\ua6c3\3\ua724\3\ua785\3\ua7e6\3\ua847\3\ua8a8"+ - "\3\ua909\3\ua96a\3\ua9cb\3\uaa2c\3\uaa8d\3\uaaee\3\uab4f\3\uabb0"+ - "\3\uac11\3\uac72\3\uacd3\3\uad34\3\uad95\3\uadf6\3\uae57\3\uaeb8"+ - "\3\uaf19\3\uaf7a\3\uafdb\3\ub03c\3\ub09d\3\ub0fe\3\ub15f\3\ub1c0"+ - "\3\ub221\3\ub282\3\ub2e3\3\ub344\3\ub3a5\3\ub406\3\ub467\3\ub4c8"+ - "\3\ub529\3\ub58a\3\ub5eb\3\ub64c\3\ub6ad\3\ub70e\3\ub76f\3\ub7d0"+ - "\3\ub831\3\ub892\3\ub8f3\3\ub954\3\ub9b5\3\uba16\3\uba77\3\ubad8"+ - "\3\ubb39\3\ubb9a\3\ubbfb\3\ubc5c\3\ubcbd\3\ubd1e\3\ubd7f\3\ubde0"+ - "\3\ube41\3\ubea2\3\ubf03\3\ubf64\3\ubfc5\3\uc026\3\uc087\3\uc0e8"+ - "\3\uc149\1\u8dda\3\uc1aa\3\uc20b\3\uc26c\3\uc2cd\3\uc32e\3\uc38f"+ - "\3\uc3f0\3\uc451\3\uc4b2\3\uc513\3\uc574\3\uc5d5\3\uc636\3\uc697"+ - "\3\uc6f8\3\uc759\3\uc7ba\3\uc81b\3\uc87c\3\uc8dd\3\uc93e\3\uc99f"+ - "\3\uca00\3\uca61\3\ucac2\3\ucb23\3\ucb84\3\ucbe5\3\ucc46\3\ucca7"+ - "\3\ucd08\3\ucd69\3\ucdca\3\uce2b\3\uce8c\3\uceed\3\ucf4e\3\ucfaf"+ - "\3\ud010\3\ud071\3\ud0d2\3\ud133\0\u485f\3\ud194\3\ud1f5\3\ud256"+ - "\3\ud2b7\3\ud318\3\ud379\3\ud3da\3\ud43b\3\ud49c\3\ud4fd\3\ud55e"+ - "\3\ud5bf\3\ud620\3\ud681\3\ud6e2\3\ud743\3\ud7a4\3\ud805\3\ud866"+ - "\3\ud8c7\3\ud928\3\ud989\3\ud9ea\3\uda4b\3\udaac\3\udb0d\3\udb6e"+ - "\3\udbcf\3\udc30\3\udc91\3\udcf2\3\udd53\3\uddb4\3\ude15\3\ude76"+ - "\3\uded7\3\udf38\3\udf99\3\udffa\3\ue05b\3\ue0bc\3\ue11d\3\ue17e"+ - "\3\ue1df\3\ue240\3\ue2a1\3\ue302\3\ue363\3\ue3c4\3\ue425\3\ue486"+ - "\3\ue4e7\3\ue548\3\ue5a9\3\ue60a\3\ue66b\3\ue6cc\3\ue72d\3\ue78e"+ - "\3\ue7ef\3\ue850\3\ue8b1\3\ue912\3\ue973\3\ue9d4\3\uea35\3\uea96"+ - "\3\ueaf7\3\ueb58\3\uebb9\3\uec1a\3\uec7b\3\uecdc\3\ued3d\3\ued9e"+ - "\3\uedff\3\uee60\3\ueec1\3\uef22\3\uef83\3\uefe4\3\uf045\3\uf0a6"+ - "\3\uf107\3\uf168\3\uf1c9\3\uf22a\3\uf28b\3\uf2ec\3\uf34d\3\uf3ae"+ - "\3\uf40f\3\uf470\3\uf4d1\3\uf532\3\uf593\3\uf5f4\3\uf655\3\uf6b6"+ - "\3\uf717\3\uf778\3\uf7d9\3\uf83a\3\uf89b\3\uf8fc\3\uf95d\3\uf9be"+ - "\3\ufa1f\3\ufa80\3\ufae1\3\ufb42\3\ufba3\3\ufc04\3\ufc65\3\ufcc6"+ - "\3\ufd27\3\ufd88\3\ufde9\3\ufe4a\3\ufeab\3\uff0c\3\uff6d\3\uffce"+ - "\4\57\4\220\4\361\4\u0152\4\u01b3\4\u0214\4\u0275\4\u02d6"+ - "\4\u0337\4\u0398\4\u03f9\4\u045a\4\u04bb\4\u051c\4\u057d\4\u05de"+ - "\1\ua1ef\4\u063f\4\u06a0\4\u0701\4\u0762\4\u07c3\4\u0824\4\u0885"+ - "\4\u08e6\4\u0947\4\u09a8\4\u0a09\4\u0a6a\4\u0acb\4\u0b2c\4\u0b8d"+ - "\4\u0bee\4\u0c4f\4\u0cb0\4\u0d11\4\u0d72\4\u0dd3\4\u0e34\4\u0e95"+ - "\4\u0ef6\4\u0f57\4\u0fb8\4\u1019\4\u107a\4\u10db\4\u113c\4\u119d"+ - "\4\u11fe\4\u125f\4\u12c0\4\u1321\4\u1382\4\u13e3\4\u1444\4\u14a5"+ - "\4\u1506\4\u1567\4\u15c8\4\u1629\4\u168a\4\u16eb\4\u174c\4\u17ad"+ - "\4\u180e\4\u186f\4\u18d0\4\u1931\4\u1992\4\u19f3\4\u1a54\4\u1ab5"+ - "\4\u1b16\4\u1b77\4\u1bd8\4\u1c39\4\u1c9a\4\u1cfb\4\u1d5c\4\u1dbd"+ - "\4\u1e1e\4\u1e7f\4\u1ee0\4\u1f41\4\u1fa2\0\u9a98\4\u2003\4\u2064"+ - "\4\u20c5\4\u2126\4\u2187\4\u21e8\4\u2249\4\u22aa\4\u230b\4\u236c"+ - "\4\u23cd\4\u242e\4\u248f\4\u24f0\4\u2551\4\u25b2\4\u2613\4\u2674"+ - "\4\u26d5\4\u2736\4\u2797\4\u27f8\4\u2859\4\u28ba\4\u291b\4\u297c"+ - "\4\u29dd\4\u2a3e\4\u2a9f\4\u2b00\4\u2b61\4\u2bc2\4\u2c23\4\u2c84"+ - "\4\u2ce5\4\u2d46\4\u2da7\4\u2e08\4\u2e69\4\u2eca\4\u2f2b\4\u2f8c"+ - "\4\u2fed\4\u304e\4\u30af\4\u3110\4\u3171\4\u31d2\4\u3233\4\u3294"+ - "\4\u32f5\4\u3356\4\u33b7\4\u3418\4\u3479\4\u34da\4\u353b\4\u359c"+ - "\4\u35fd\4\u365e\4\u36bf\4\u3720\4\u3781\4\u37e2\4\u3843\4\u38a4"+ - "\4\u3905\4\u3966\4\u39c7\4\u3a28\4\u3a89\4\u3aea\4\u3b4b\4\u3bac"+ - "\4\u3c0d\4\u3c6e\4\u3ccf\4\u3d30\4\u3d91\4\u3df2\4\u3e53\4\u3eb4"+ - "\4\u3f15\4\u3f76\4\u3fd7\4\u4038\4\u4099\4\u40fa\4\u415b\4\u41bc"+ - "\4\u421d\4\u427e\4\u42df\4\u4340\4\u43a1\4\u4402\4\u4463\4\u44c4"+ - "\4\u4525\4\u4586\4\u45e7\4\u4648\4\u46a9\4\u470a\4\u476b\4\u47cc"+ - "\4\u482d\4\u488e\4\u48ef\4\u4950\4\u49b1\4\u4a12\4\u4a73\4\u4ad4"+ - "\4\u4b35\4\u4b96\4\u4bf7\4\u4c58\4\u4cb9\4\u4d1a\4\u4d7b\4\u4ddc"+ - "\4\u4e3d\4\u4e9e\4\u4eff\4\u4f60\4\u4fc1\4\u5022\4\u5083\4\u50e4"+ - "\4\u5145\4\u51a6\4\u5207\4\u5268\4\u52c9\4\u532a\4\u538b\4\u53ec"+ - "\4\u544d\4\u54ae\4\u550f\4\u5570\4\u55d1\4\u5632\4\u5693\4\u56f4"+ - "\4\u5755\4\u57b6\4\u5817\4\u5878\4\u58d9\4\u593a\4\u599b\4\u59fc"+ - "\4\u5a5d\4\u5abe\4\u5b1f\4\u5b80\4\u5be1\4\u5c42\4\u5ca3\4\u5d04"+ - "\4\u5d65\4\u5dc6\4\u5e27\4\u5e88\4\u5ee9\4\u5f4a\4\u5fab\4\u600c"+ - "\4\u606d\4\u60ce\4\u612f\4\u6190\4\u61f1\4\u6252\4\u62b3\4\u6314"+ - "\4\u6375\4\u63d6\4\u6437\4\u6498\4\u64f9\4\u655a\4\u65bb\4\u661c"+ - "\4\u667d\4\u66de\4\u673f\4\u67a0\4\u6801\4\u6862\4\u68c3\4\u6924"+ - "\4\u6985\4\u69e6\4\u6a47\4\u6aa8\4\u6b09\4\u6b6a\4\u6bcb\4\u6c2c"+ - "\4\u6c8d\4\u6cee\4\u6d4f\4\u6db0\4\u6e11\4\u6e72\4\u6ed3\4\u6f34"+ - "\4\u6f95\4\u6ff6\4\u7057\4\u70b8\4\u7119\4\u717a\4\u71db\4\u723c"+ - "\4\u729d\4\u72fe\4\u735f\4\u73c0\4\u7421\4\u7482\4\u74e3\4\u7544"+ - "\4\u75a5\4\u7606\4\u7667\4\u76c8\4\u7729\4\u778a\4\u77eb\4\u784c"+ - "\4\u78ad\4\u790e\4\u796f\4\u79d0\4\u7a31\4\u7a92\4\u7af3\4\u7b54"+ - "\4\u7bb5\4\u7c16\4\u7c77\4\u7cd8\4\u7d39\4\u7d9a\4\u7dfb\4\u7e5c"+ - "\4\u7ebd\4\u7f1e\4\u7f7f\4\u7fe0\4\u8041\4\u80a2\4\u8103\4\u8164"+ - "\4\u81c5\4\u8226\4\u8287\4\u82e8\4\u8349\4\u83aa\4\u840b\4\u846c"+ - "\4\u84cd\4\u852e\4\u858f\4\u85f0\4\u8651\4\u86b2\4\u8713\4\u8774"+ - "\4\u87d5\4\u8836\4\u8897\4\u88f8\4\u8959\4\u89ba\4\u8a1b\4\u8a7c"+ - "\4\u8add\4\u8b3e\4\u8b9f\4\u8c00\4\u8c61\4\u8cc2\4\u8d23\3\u4f9d"+ - "\4\u8d84\4\u8de5\4\u8e46\4\u8ea7\4\u8f08\4\u8f69\4\u8fca\4\u902b"+ - "\4\u908c\4\u90ed\4\u914e\4\u91af\4\u9210\4\u9271\4\u92d2\4\u9333"+ - "\4\u9394\4\u93f5\4\u9456\4\u94b7\4\u9518\4\u9579\4\u95da\4\u963b"+ - "\4\u969c\4\u96fd\4\u975e\4\u97bf\4\u9820\4\u9881\4\u98e2\4\u9943"+ - "\4\u99a4\4\u9a05\4\u9a66\4\u9ac7\4\u9b28\4\u9b89\4\u9bea\4\u9c4b"+ - "\4\u9cac\4\u9d0d\4\u9d6e\4\u9dcf\4\u9e30\4\u9e91\4\u9ef2\4\u9f53"+ - "\4\u9fb4\4\ua015\4\ua076\4\ua0d7\4\ua138\4\ua199\4\ua1fa\4\ua25b"+ - "\4\ua2bc\4\ua31d\4\ua37e\4\ua3df\4\ua440\4\ua4a1\4\ua502\4\ua563"+ - "\4\ua5c4\4\ua625\4\ua686\4\ua6e7\4\ua748\4\ua7a9\4\ua80a\4\ua86b"+ - "\4\ua8cc\4\ua92d\4\ua98e\4\ua9ef\4\uaa50\4\uaab1\4\uab12\4\uab73"+ - "\4\uabd4\4\uac35\4\uac96\4\uacf7\4\uad58\4\uadb9\4\uae1a\4\uae7b"+ - "\4\uaedc\4\uaf3d\4\uaf9e\4\uafff\4\ub060\4\ub0c1\4\ub122\4\ub183"+ - "\4\ub1e4\4\ub245\4\ub2a6\4\ub307\4\ub368\4\ub3c9\4\ub42a\4\ub48b"+ - "\4\ub4ec\4\ub54d\4\ub5ae\4\ub60f\4\ub670\4\ub6d1\4\ub732\4\ub793"+ - "\4\ub7f4\4\ub855\4\ub8b6\4\ub917\4\ub978\4\ub9d9\4\uba3a\4\uba9b"+ - "\4\ubafc\4\ubb5d\4\ubbbe\4\ubc1f\4\ubc80\4\ubce1\4\ubd42\4\ubda3"+ - "\4\ube04\4\ube65\4\u612f\4\ubec6\4\ubf27\4\ubf88\4\ubfe9\4\uc04a"+ - "\4\uc0ab\4\uc10c\4\uc16d\4\uc1ce\4\uc22f\4\uc290\4\uc2f1\4\uc352"+ - "\4\uc3b3\4\uc414\4\uc475\4\uc4d6\4\uc537\4\uc598\4\uc5f9\4\uc65a"+ - "\4\uc6bb\4\uc71c\4\uc77d\4\uc7de\4\uc83f\4\uc8a0\4\uc901\4\uc962"+ - "\4\uc9c3\4\uca24\4\uca85\4\ucae6\4\ucb47\4\ucba8\4\ucc09\4\ucc6a"+ - "\4\ucccb\4\ucd2c\4\ucd8d\4\ucdee\4\uce4f\4\uceb0\4\ucf11\4\ucf72"+ - "\4\ucfd3\4\ud034\4\ud095\4\ud0f6\4\ud157\4\ud1b8\4\ud219\4\ud27a"+ - "\4\ud2db\4\ud33c\4\ud39d\4\ud3fe\4\ud45f\4\ud4c0\4\ud521\4\ud582"+ - "\4\ud5e3\4\ud644\4\ud6a5\4\ud706\4\ud767\4\ud7c8\4\ud829\4\ud88a"+ - "\4\ud8eb\4\ud94c\4\ud9ad\4\uda0e\4\uda6f\4\udad0\4\udb31\4\udb92"+ - "\4\udbf3\4\udc54\4\udcb5\4\udd16\4\udd77\4\uddd8\4\ude39\4\ude9a"+ - "\4\udefb\4\udf5c\4\udfbd\4\ue01e\4\ue07f\4\ue0e0\4\ue141\4\ue1a2"+ - "\4\ue203\4\ue264\4\ue2c5\4\ue326\4\ue387\4\ue3e8\4\ue449\4\ue4aa"+ - "\4\ue50b\4\ue56c\4\ue5cd\4\ue62e\4\ue68f\4\ue6f0\4\ue751\4\ue7b2"+ - "\4\ue813\4\ue874\4\ue8d5\4\ue936\4\ue997\4\ue9f8\4\uea59\4\ueaba"+ - "\4\ueb1b\4\ueb7c\4\uebdd\4\uec3e\4\uec9f\0\u485f\4\ued00\4\ued61"+ - "\4\uedc2\4\uee23\4\uee84\4\ueee5\4\uef46\4\uefa7\4\uf008\4\uf069"+ - "\4\uf0ca\4\uf12b\4\uf18c\4\uf1ed\1\ue808\4\uf24e\4\uf2af\4\uf310"+ - "\4\uf371\4\uf3d2\4\uf433\4\uf494\4\uf4f5\4\uf556\4\uf5b7\4\uf618"+ - "\4\uf679\4\uf6da\4\uf73b\4\uf79c\4\uf7fd\4\uf85e\4\uf8bf\4\uf920"+ - "\4\uf981\4\uf9e2\4\ufa43\4\ufaa4\4\ufb05\4\ufb66\4\ufbc7\4\ufc28"+ - "\4\ufc89\4\ufcea\4\ufd4b\4\ufdac\4\ufe0d\4\ufe6e\4\ufecf\4\uff30"+ - "\4\uff91\4\ufff2\5\123\5\264\5\u0115\5\u0176\2\u620a\5\u01d7"+ - "\5\u0238\5\u0299\5\u02fa\5\u035b\5\u03bc\5\u041d\5\u047e\5\u04df"+ - "\5\u0540\5\u05a1\5\u0602\5\u0663\5\u06c4\5\u0725\5\u0786\5\u07e7"+ - "\5\u0848\5\u08a9\5\u090a\5\u096b\5\u09cc\5\u0a2d\5\u0a8e\5\u0aef"+ - "\5\u0b50\5\u0bb1\5\u0c12\5\u0c73\5\u0cd4\5\u0d35\5\u0d96\5\u0df7"+ - "\5\u0e58\5\u0eb9\5\u0f1a\5\u0f7b\5\u0fdc\5\u103d\5\u109e\5\u10ff"+ - "\5\u1160\5\u11c1\5\u1222\5\u1283\5\u12e4\5\u1345\5\u13a6\5\u1407"+ - "\5\u1468\5\u14c9\5\u152a\5\u158b\5\u15ec\5\u164d\5\u16ae\5\u170f"+ - "\5\u1770\5\u17d1\5\u1832\5\u1893\5\u18f4\5\u1955\5\u19b6\5\u1a17"+ - "\5\u1a78\5\u1ad9\5\u1b3a\5\u1b9b\5\u1bfc\5\u1c5d\5\u1cbe\5\u1d1f"+ - "\5\u1d80\5\u1de1\5\u1e42\5\u1ea3\5\u1f04\5\u1f65\5\u1fc6\5\u2027"+ - "\5\u2088\5\u20e9\5\u214a\5\u21ab\5\u220c\5\u226d\5\u22ce\5\u232f"+ - "\5\u2390\5\u23f1\5\u2452\5\u24b3\5\u2514\5\u2575\5\u25d6\5\u2637"+ - "\5\u2698\5\u26f9\5\u275a\5\u27bb\5\u281c\5\u287d\5\u28de\5\u293f"+ - "\5\u29a0\5\u2a01\5\u2a62\5\u2ac3\5\u2b24\5\u2b85\5\u2be6\5\u2c47"+ - "\5\u2ca8\5\u2d09\5\u2d6a\5\u2dcb\5\u2e2c\5\u2e8d\5\u2eee\5\u2f4f"+ - "\5\u2fb0\5\u3011\5\u3072\5\u30d3\5\u3134\5\u3195\5\u31f6\5\u3257"+ - "\5\u32b8\5\u3319\5\u337a\5\u33db\5\u343c\5\u349d\5\u34fe\5\u355f"+ - "\5\u35c0\5\u3621\5\u3682\5\u36e3\5\u3744\5\u37a5\5\u3806\5\u3867"+ - "\5\u38c8\5\u3929\5\u398a\5\u39eb\5\u3a4c\5\u3aad\5\u3b0e\5\u3b6f"+ - "\5\u3bd0\5\u3c31\5\u3c92\5\u3cf3\5\u3d54\5\u3db5\5\u3e16\5\u3e77"+ - "\5\u3ed8\5\u3f39\5\u3f9a\5\u3ffb\5\u405c\5\u40bd\5\u411e\5\u417f"+ - "\5\u41e0\5\u4241\5\u42a2\5\u4303\5\u4364\5\u43c5\5\u4426\5\u4487"+ - "\5\u44e8\5\u4549\5\u45aa\5\u460b\5\u466c\5\u46cd\5\u472e\5\u478f"+ - "\5\u47f0\5\u4851\5\u48b2\5\u4913\5\u4974\5\u49d5\5\u4a36\5\u4a97"+ - "\5\u4af8\5\u4b59\5\u4bba\5\u4af8\5\u4c1b\5\u4c7c\5\u4cdd\5\u4d3e"+ - "\5\u4d9f\5\u4e00\5\u4e61\5\u4ec2\5\u4f23\5\u4f84\5\u4fe5\5\u5046"+ - "\5\u50a7\5\u5108\5\u5169\5\u51ca\5\u522b\5\u528c\5\u52ed\5\u534e"+ - "\5\u53af\5\u5410\5\u5471\5\u54d2\5\u5533\5\u5594\5\u55f5\5\u5656"+ - "\5\u56b7\5\u5718\5\u5779\5\u57da\5\u583b\5\u589c\5\u58fd\5\u595e"+ - "\5\u59bf\5\u5a20\5\u5a81\5\u5ae2\5\u5b43\5\u5ba4\5\u5c05\5\u5c66"+ - "\5\u5cc7\5\u5d28\5\u5d89\5\u5dea\5\u5e4b\5\u5eac\5\u5f0d\5\u5f6e"+ - "\5\u5fcf\5\u6030\5\u6091\5\u60f2\5\u6153\5\u61b4\5\u6215\5\u6276"+ - "\5\u62d7\5\u6338\5\u6399\5\u63fa\5\u645b\5\u64bc\5\u651d\5\u657e"+ - "\5\u65df\5\u6640\5\u66a1\5\u6702\5\u6763\5\u67c4\5\u6825\5\u6886"+ - "\5\u68e7\5\u6948\5\u69a9\5\u6a0a\5\u6a6b\5\u6acc\5\u6b2d\5\u6b8e"+ - "\5\u6bef\5\u6c50\5\u6cb1\5\u6d12\5\u6d73\5\u6dd4\5\u6e35\5\u6e96"+ - "\5\u6ef7\5\u6f58\5\u6fb9\5\u701a\5\u707b\5\u70dc\5\u713d\5\u719e"+ - "\5\u71ff\5\u7260\5\u72c1\5\u7322\5\u7383\5\u73e4\5\u7445\5\u74a6"+ - "\5\u7507\5\u7568\5\u75c9\5\u762a\5\u768b\5\u76ec\5\u774d\5\u77ae"+ - "\5\u780f\5\u7870\5\u78d1\5\u7932\5\u7993\5\u79f4\5\u7a55\5\u7ab6"+ - "\5\u7b17\5\u7b78\5\u7bd9\5\u7c3a\5\u7c9b\5\u7cfc\5\u7d5d\5\u7dbe"+ - "\5\u7e1f\5\u7e80\5\u7ee1\5\u7f42\5\u7fa3\5\u8004\5\u8065\5\u80c6"+ - "\5\u8127\5\u8188\5\u81e9\5\u824a\5\u82ab\5\u830c\5\u836d\5\u83ce"+ - "\5\u842f\5\u8490\5\u84f1\5\u8552\5\u85b3\5\u8614\5\u8675\5\u86d6"+ - "\5\u8737\5\u8798\5\u87f9\5\u885a\5\u88bb\5\u891c\5\u897d\5\u89de"+ - "\5\u8a3f\5\u8aa0\5\u8b01\5\u8b62\5\u8bc3\5\u8c24\5\u8c85\5\u8ce6"+ - "\5\u8d47\5\u8da8\5\u8e09\5\u8e6a\5\u8ecb\5\u8f2c\5\u8f8d\5\u8fee"+ - "\5\u904f\5\u90b0\5\u9111\5\u9172\5\u91d3\5\u9234\5\u9295\5\u92f6"+ - "\5\u9357\5\u93b8\5\u9419\5\u947a\5\u94db\1\u34cf\5\u953c\5\u959d"+ - "\5\u95fe\5\u965f\2\u2262\5\u96c0\5\u9721\5\u9782\5\u97e3\5\u9844"+ - "\5\u98a5\5\u9906\5\u9967\5\u99c8\5\u9a29\5\u9a8a\5\u9aeb\5\u9b4c"+ - "\5\u9bad\5\u9c0e\5\u9c6f\5\u9cd0\5\u9d31\5\u9d92\5\u9df3\5\u9e54"+ - "\5\u9eb5\5\u9f16\5\u9f77\5\u9fd8\5\ua039\5\ua09a\5\ua0fb\5\ua15c"+ - "\5\ua1bd\5\u6e96\5\ua21e\3\u51e3\5\ua27f\5\ua2e0\5\ua341\5\ua3a2"+ - "\5\ua403\5\ua464\5\ua4c5\5\ua526\5\ua587\5\ua5e8\5\ua649\5\ua6aa"+ - "\5\ua70b\5\ua76c\5\ua7cd\5\ua82e\5\ua88f\5\ua8f0\5\ua951\5\ua9b2"+ - "\5\uaa13\5\uaa74\5\uaad5\5\uab36\5\uab97\5\uabf8\5\uac59\5\uacba"+ - "\5\uad1b\5\uad7c\5\uaddd\5\uae3e\5\uae9f\5\uaf00\5\uaf61\5\uafc2"+ - "\5\ub023\5\ub084\5\ub0e5\5\ub146\5\ub1a7\5\ub208\5\ub269\5\ub2ca"+ - "\5\ub32b\5\ub38c\5\ub3ed\5\ub44e\5\ub4af\5\ub510\5\ub571\5\ub5d2"+ - "\5\ub633\5\ub694\5\ub6f5\5\ub756\5\ub7b7\5\ub818\5\ub879\5\ub8da"+ - "\5\ub93b\5\ub99c\5\ub9fd\5\uba5e\5\ubabf\5\ubb20\5\ubb81\5\ubbe2"+ - "\5\ubc43\5\ubca4\5\ubd05\5\ubd66\5\ubdc7\5\ube28\5\ube89\5\ubeea"+ - "\5\ubf4b\5\ubfac\5\uc00d\5\uc06e\5\uc0cf\5\uc130\5\uc191\5\uc1f2"+ - "\5\uc253\5\uc2b4\5\uc315\2\u30c8\5\uc376\5\uc3d7\5\uc438\5\uc499"+ - "\5\uc4fa\5\uc55b\5\uc5bc\5\uc61d\5\uc67e\5\uc6df\5\uc740\5\uc7a1"+ - "\5\uc802\5\uc863\5\uc8c4\5\uc925\5\uc986\5\uc9e7\5\uca48\5\ucaa9"+ - "\5\ucb0a\5\ucb6b\5\ucbcc\5\ucc2d\5\ucc8e\5\uccef\5\ucd50\5\ucdb1"+ - "\5\uce12\5\uce73\5\uced4\5\ucf35\5\ucf96\5\ucff7\5\ud058\5\ud0b9"+ - "\5\ud11a\5\ud17b\5\ud1dc\5\ud23d\5\ud29e\5\ud2ff\5\ud360\5\ud3c1"+ - "\5\ud422\5\ud483\5\ud4e4\5\ud545\5\ud5a6\5\ud607\5\ud668\5\ud6c9"+ - "\5\ud72a\5\ud78b\5\ud7ec\5\ud84d\5\ud8ae\5\ud90f\5\ud970\5\ud9d1"+ - "\5\uda32\5\uda93\5\udaf4\5\udb55\5\udbb6\5\udc17\5\udc78\5\udcd9"+ - "\5\udd3a\5\udd9b\5\uddfc\5\ude5d\5\udebe\5\udf1f\5\udf80\5\udfe1"+ - "\5\ue042\5\ue0a3\5\ue104\5\ue165\5\ue1c6\5\ue227\5\ue288\5\ue2e9"+ - "\5\ue34a\5\ue3ab\5\ue40c\5\ue46d\5\ue4ce\5\ue52f\5\ue590\5\ue5f1"+ - "\5\ue652\5\ue6b3\5\ue714\5\ue775\5\ue7d6\5\ue837\5\ue898\5\ue8f9"+ - "\5\ue95a\5\ue9bb\5\uea1c\5\uea7d\5\ueade\5\ueb3f\5\ueba0\5\uec01"+ - "\5\uec62\5\uecc3\5\ued24\5\ued85\5\uede6\5\uee47\5\ueea8\5\uef09"+ - "\5\uef6a\5\uefcb\5\uf02c\5\uf08d\5\uf0ee\5\uf14f\5\uf1b0\5\uf211"+ - "\5\uf272\5\uf2d3\5\uf334\5\uf395\5\uf3f6\5\uf457\5\uf4b8\5\uf519"+ - "\5\uf57a\5\uf5db\1\ubb52\5\uf63c\5\uf69d\5\uf6fe\5\uf75f\5\uf7c0"+ - "\5\uf821\5\uf882\5\uf8e3\5\uf944\5\uf9a5\5\ufa06\5\ufa67\5\ufac8"+ - "\5\ufb29\5\ufb8a\5\ufbeb\5\ufc4c\5\ufcad\5\ufd0e\5\ufd6f\5\ufdd0"+ - "\5\ufe31\5\ufe92\5\ufef3\5\uff54\5\uffb5\6\26\6\167\6\330"+ - "\6\u0139\6\u019a\6\u01fb\6\u025c\6\u02bd\6\u031e\6\u037f\6\u03e0"+ - "\6\u0441\6\u04a2\6\u0503\6\u0564\6\u05c5\6\u0626\6\u0687\6\u06e8"+ - "\6\u0749\6\u07aa\6\u080b\6\u086c\6\u08cd\6\u092e\6\u098f\6\u09f0"+ - "\6\u0a51\6\u0ab2\6\u0b13\6\u0b74\6\u0bd5\6\u0c36\6\u0c97\6\u0cf8"+ - "\6\u0d59\6\u0dba\6\u0e1b\6\u0e7c\6\u0edd\6\u0f3e\6\u0f9f\6\u1000"+ - "\6\u1061\6\u10c2\6\u1123\6\u1184\6\u11e5\6\u1246\6\u12a7\6\u1308"+ - "\6\u1369\6\u13ca\6\u142b\6\u148c\6\u14ed\6\u154e\6\u15af\6\u1610"+ - "\6\u1671\6\u16d2\6\u1733\6\u1794\6\u17f5\6\u1856\6\u18b7\6\u1918"+ - "\6\u1979\6\u19da\6\u1a3b\6\u1a9c\6\u1afd\6\u1b5e\6\u1bbf\6\u1c20"+ - "\6\u1c81\6\u1ce2\6\u1d43\6\u1da4\6\u1e05\6\u1e66\6\u1ec7\6\u1f28"+ - "\6\u1f89\6\u1fea\6\u204b\6\u20ac\6\u210d\6\u216e\6\u21cf\6\u2230"+ - "\6\u2291\6\u22f2\6\u2353\6\u23b4\6\u2415\6\u2476\6\u24d7\6\u2538"+ - "\6\u2599\6\u25fa\6\u265b\6\u26bc\6\u271d\3\ue973\6\u277e\6\u27df"+ - "\6\u2840\6\u28a1\6\u2902\6\u2963\6\u29c4\6\u2a25\6\u2a86\6\u2ae7"+ - "\6\u2b48\6\u2ba9\6\u2c0a\6\u2c6b\6\u2ccc\6\u2d2d\6\u2d8e\6\u2def"+ - "\6\u2e50\6\u2eb1\6\u2f12\6\u2f73\6\u2fd4\6\u3035\6\u3096\6\u30f7"+ - "\6\u3158\6\u31b9\6\u321a\6\u327b\6\u32dc\6\u333d\6\u339e\6\u33ff"+ - "\6\u3460\6\u34c1\6\u3522\6\u3583\6\u35e4\6\u3645\6\u36a6\6\u3707"+ - "\6\u3768\6\u37c9\6\u382a\6\u388b\6\u38ec\6\u394d\6\u39ae\6\u3a0f"+ - "\6\u3a70\6\u3ad1\6\u3b32\6\u3b93\6\u3bf4\6\u3c55\6\u3cb6\6\u3d17"+ - "\6\u3d78\6\u3dd9\6\u3e3a\6\u3e9b\6\u3efc\6\u3f5d\6\u3fbe\6\u401f"+ - "\6\u4080\6\u40e1\6\u4142\6\u41a3\6\u4204\6\u4265\6\u42c6\6\u4327"+ - "\6\u4388\6\u43e9\6\u444a\6\u44ab\6\u450c\6\u456d\6\u45ce\6\u462f"+ - "\6\u4690\6\u46f1\6\u4752\6\u47b3\6\u4814\6\u4875\6\u48d6\6\u4937"+ - "\6\u4998\6\u49f9\6\u4a5a\6\u4abb\6\u4b1c\6\u4b7d\6\u4bde\6\u4c3f"+ - "\6\u4ca0\6\u4d01\6\u4d62\6\u4dc3\6\u4e24\6\u4e85\6\u4ee6\6\u4f47"+ - "\6\u4fa8\6\u5009\6\u506a\6\u50cb\6\u512c\6\u518d\6\u51ee\6\u524f"+ - "\6\u52b0\6\u5311\6\u5372\6\u53d3\6\u5434\6\u5495\6\u54f6\6\u5557"+ - "\6\u55b8\6\u5619\6\u567a\6\u56db\6\u573c\6\u579d\6\u57fe\6\u585f"+ - "\6\u58c0\6\u5921\6\u5982\6\u59e3\6\u5a44\6\u5aa5\6\u5b06\6\u5b67"+ - "\6\u5bc8\6\u5c29\6\u5c8a\6\u5ceb\6\u5d4c\6\u5dad\6\u5e0e\6\u5e6f"+ - "\1\ua1ef\6\u5ed0\6\u5f31\6\u5f92\6\u5ff3\6\u6054\6\u60b5\6\u6116"+ - "\6\u6177\6\u61d8\6\u6239\6\u629a\6\u62fb\6\u635c\6\u63bd\6\u641e"+ - "\6\u647f\6\u64e0\6\u6541\6\u65a2\6\u6603\6\u6664\6\u66c5\6\u6726"+ - "\6\u6787\6\u67e8\6\u6849\6\u68aa\6\u690b\6\u696c\6\u69cd\6\u6a2e"+ - "\6\u6a8f\6\u6af0\6\u6b51\6\u6bb2\6\u6c13\6\u6c74\6\u6cd5\1\u48e4"+ - "\6\u6d36\6\u6d97\6\u6df8\6\u6e59\6\u6eba\6\u6f1b\6\u6f7c\6\u6fdd"+ - "\6\u703e\6\u709f\6\u7100\6\u7161\6\u71c2\6\u7223\6\u7284\6\u72e5"+ - "\6\u7346\6\u73a7\6\u7408\6\u7469\6\u74ca\6\u752b\6\u758c\6\u75ed"+ - "\6\u764e\6\u76af\6\u7710\6\u7771\6\u77d2\6\u7833\6\u7894\6\u78f5"+ - "\6\u7956\6\u79b7\6\u7a18\6\u7a79\6\u7ada\6\u7b3b\6\u7b9c\6\u7bfd"+ - "\6\u696c\6\u7c5e\6\u7cbf\6\u7d20\6\u7d81\6\u7de2\6\u7e43\6\u7ea4"+ - "\6\u7f05\6\u7f66\6\u7fc7\6\u8028\6\u8089\6\u80ea\6\u814b\6\u81ac"+ - "\6\u820d\6\u826e\6\u82cf\6\u8330\6\u8391\6\u83f2\6\u8453\6\u84b4"+ - "\6\u8515\6\u8576\6\u85d7\6\u8638\6\u8699\6\u86fa\6\u875b\6\u87bc"+ - "\6\u881d\6\u887e\6\u88df\6\u8940\6\u89a1\6\u8a02\6\u8a63\6\u8ac4"+ - "\6\u8b25\6\u8b86\6\u8be7\6\u8c48\6\u8ca9\6\u8d0a\6\u8d6b\6\u8dcc"+ - "\6\u8e2d\6\u8e8e\6\u8eef\6\u8f50\6\u8fb1\6\u9012\6\u9073\6\u90d4"+ - "\6\u9135\6\u9196\6\u91f7\6\u9258\6\u92b9\6\u931a\6\u937b\6\u93dc"+ - "\6\u943d\6\u949e\6\u94ff\6\u9560\6\u95c1\6\u9622\6\u9683\6\u96e4"+ - "\6\u9745\6\u97a6\6\u9807\6\u9868\6\u98c9\6\u992a\6\u998b\6\u99ec"+ - "\6\u9a4d\6\u9aae\6\u9b0f\6\u9b70\6\u9bd1\6\u9c32\6\u9c93\6\u9cf4"+ - "\6\u9d55\6\u9db6\6\u9e17\6\u9e78\6\u9ed9\6\u9f3a\6\u9f9b\6\u9ffc"+ - "\6\ua05d\6\ua0be\6\ua11f\6\ua180\6\ua1e1\6\ua242\6\ua2a3\6\ua304"+ - "\6\ua365\6\ua3c6\6\ua427\6\ua488\6\ua4e9\6\ua54a\6\ua5ab\6\ua60c"+ - "\6\ua66d\6\ua6ce\6\ua72f\6\ua790\6\ua7f1\6\ua852\6\ua8b3\6\ua914"+ - "\6\ua975\6\ua9d6\6\uaa37\6\uaa98\6\uaaf9\6\uab5a\6\uabbb\6\uac1c"+ - "\6\uac7d\6\uacde\6\uad3f\6\uada0\6\uae01\6\uae62\6\uaec3\6\uaf24"+ - "\6\uaf85\6\uafe6\6\ub047\6\ub0a8\6\ub109\6\ub16a\6\ub1cb\6\ub22c"+ - "\6\ub28d\6\ub2ee\6\ub34f\6\ub3b0\6\ub411\6\ub472\6\ub4d3\6\ub534"+ - "\6\ub595\6\ub5f6\6\ub657\6\ub6b8\6\ub719\6\ub77a\6\ub7db\6\ub83c"+ - "\6\ub89d\6\ub8fe\6\ub95f\6\ub9c0\6\uba21\6\uba82\6\ubae3\6\ubb44"+ - "\6\ubba5\6\ubc06\6\ubc67\6\ubcc8\6\ubd29\6\ubd8a\6\ubdeb\6\ube4c"+ - "\6\ubead\6\ubf0e\6\ubf6f\6\ubfd0\6\uc031\6\uc092\6\uc0f3\6\uc154"+ - "\6\uc1b5\6\uc216\6\uc277\6\uc2d8\6\uc339\6\uc39a\6\uc3fb\6\uc45c"+ - "\6\uc4bd\6\uc51e\6\uc57f\6\uc5e0\6\uc641\6\uc6a2\6\uc703\6\uc764"+ - "\6\uc7c5\6\uc826\6\uc887\6\uc8e8\6\uc949\6\uc9aa\6\uca0b\6\uca6c"+ - "\6\ucacd\6\ucb2e\6\ucb8f\6\ucbf0\6\ucc51\6\uccb2\6\ucd13\6\ucd74"+ - "\6\ucdd5\6\uce36\6\uce97\6\ucef8\6\ucf59\6\ucfba\6\ud01b\6\ud07c"+ - "\6\ud0dd\6\ud13e\6\ud19f\6\ud200\6\ud261\6\ud2c2\6\ud323\6\ud384"+ - "\6\ud3e5\6\ud446\6\ud4a7\6\ud508\6\ud569\6\ud5ca\4\u1fa2\6\ud62b"+ - "\6\ud68c\6\ud6ed\6\ud74e\6\ud7af\6\ud810\6\ud871\6\ud8d2\6\ud933"+ - "\6\ud994\6\ud9f5\6\uda56\6\udab7\6\udb18\6\udb79\6\udbda\6\udc3b"+ - "\6\udc9c\6\udcfd\6\udd5e\6\uddbf\6\ude20\6\ude81\6\udee2\6\udf43"+ - "\6\udfa4\6\ue005\6\ue066\6\ue0c7\6\ue128\6\ue189\6\ue1ea\6\ue24b"+ - "\6\ue2ac\6\ue30d\6\ue36e\6\ue3cf\6\ue430\6\ue491\6\ue4f2\6\ue553"+ - "\6\ue5b4\6\ue615\6\ue676\6\ue6d7\6\ue738\6\ue799\4\ub7f4\6\ue7fa"+ - "\6\ue85b\6\ue8bc\6\ue91d\6\ue97e\6\ue9df\6\uea40\6\ueaa1\6\ueb02"+ - "\6\ueb63\6\uebc4\6\uec25\6\uec86\6\uece7\6\ued48\6\ueda9\6\uee0a"+ - "\6\uee6b\6\ueecc\6\uef2d\6\uef8e\6\uefef\6\uf050\6\uf0b1\6\uf112"+ - "\6\uf173\6\uf1d4\6\uf235\6\uf296\6\uf2f7\6\uf358\6\uf3b9\6\uf41a"+ - "\6\uf47b\6\uf4dc\6\uf53d\3\u41f9\6\uf59e\6\uf5ff\6\uf660\6\uf6c1"+ - "\6\uf722\6\uf783\6\uf7e4\6\uf845\6\uf8a6\6\uf907\6\uf968\6\uf9c9"+ - "\6\ufa2a\6\ufa8b\6\ufaec\6\ufb4d\6\ufbae\6\ufc0f\6\ufc70\6\ufcd1"+ - "\6\ufd32\6\ufd93\6\ufdf4\6\ufe55\6\ufeb6\6\uff17\6\uff78\6\uffd9"+ - "\7\72\7\233\7\374\7\u015d\7\u01be\7\u021f\7\u0280\7\u02e1"+ - "\7\u0342\7\u03a3\7\u0404\7\u0465\7\u04c6\7\u0527\7\u0588\7\u05e9"+ - "\7\u064a\7\u06ab\7\u070c\7\u076d\7\u07ce\7\u082f\7\u0890\7\u08f1"+ - "\7\u0952\0\u0c81\7\u09b3\7\u0a14\7\u0a75\7\u0ad6\7\u0b37\0\u0c81"+ - "\7\u0b98\0\u0c81\7\u0bf9\7\u0c5a\0\u0c81\7\u0cbb\7\u0d1c\7\u0d7d"+ - "\7\u0dde\7\u0e3f\7\u0ea0\7\u0f01\7\u0f62\7\u0fc3\7\u1024\7\u1085"+ - "\7\u10e6\7\u1147\7\u11a8\7\u1209\7\u126a\7\u12cb\7\u132c\7\u138d"+ - "\7\u13ee\7\u144f\7\u14b0\7\u1511\4\u2ce5\7\u1572\7\u15d3\7\u1634"+ - "\7\u1695\7\u16f6\7\u1757\7\u17b8\7\u1819\7\u187a\7\u18db\7\u193c"+ - "\7\u199d\7\u19fe\7\u1a5f\7\u1ac0\7\u1b21\7\u1b82\7\u1be3\7\u1c44"+ - "\7\u1ca5\7\u1d06\7\u1d67\7\u1dc8\7\u1e29\7\u1e8a\7\u1eeb\2\udf75"+ - "\7\u1f4c\7\u1fad\7\u200e\7\u206f\7\u20d0\7\u2131\7\u2192\7\u21f3"+ - "\7\u2254\7\u22b5\7\u2316\7\u2377\7\u23d8\7\u2439\7\u249a\7\u24fb"+ - "\7\u255c\7\u25bd\7\u261e\7\u267f\7\u26e0\7\u2741\7\u27a2\7\u2803"+ - "\7\u2864\4\u612f\7\u28c5\7\u2926\7\u2987\7\u29e8\7\u2a49\7\u2aaa"+ - "\7\u2b0b\7\u2b6c\7\u2bcd\7\u2c2e\7\u2c8f\7\u2cf0\7\u2d51\7\u2db2"+ - "\7\u2e13\7\u2e74\7\u2ed5\7\u2f36\7\u2f97\7\u2ff8\7\u3059\7\u30ba"+ - "\7\u311b\7\u317c\7\u31dd\7\u323e\7\u329f\7\u3300\7\u3361\7\u33c2"+ - "\6\u758c\7\u3423\7\u3484\7\u34e5\7\u3546\7\u35a7\7\u3608\7\u3669"+ - "\7\u36ca\7\u372b\7\u378c\7\u37ed\7\u384e\7\u38af\7\u3910\7\u3971"+ - "\7\u39d2\7\u3a33\7\u3a94\7\u3af5\7\u3b56\7\u3bb7\7\u3c18\7\u3c79"+ - "\7\u3cda\7\u3d3b\7\u3d9c\7\u3dfd\7\u3e5e\7\u3ebf\7\u3f20\7\u3f81"+ - "\7\u3fe2\7\u4043\7\u40a4\7\u4105\7\u4166\7\u41c7\7\u4228\7\u4289"+ - "\7\u42ea\7\u434b\7\u43ac\7\u440d\7\u446e\7\u44cf\7\u4530\7\u4591"+ - "\7\u45f2\7\u4653\7\u46b4\7\u4715\7\u4776\7\u47d7\7\u4838\7\u4899"+ - "\7\u48fa\7\u495b\7\u49bc\7\u4a1d\5\u1bfc\7\u4a7e\7\u4adf\7\u4b40"+ - "\7\u4ba1\7\u4c02\7\u4c63\7\u4cc4\7\u4d25\7\u4d86\7\u4de7\7\u4e48"+ - "\7\u4ea9\7\u4f0a\7\u4f6b\7\u4fcc\7\u502d\7\u508e\7\u50ef\7\u5150"+ - "\7\u51b1\7\u5212\7\u5273\7\u52d4\7\u5335\7\u5396\7\u53f7\7\u5458"+ - "\7\u54b9\7\u551a\7\u557b\7\u55dc\7\u563d\7\u569e\7\u56ff\7\u5760"+ - "\7\u57c1\7\u5822\7\u5883\7\u58e4\7\u5945\7\u59a6\7\u5a07\7\u5a68"+ - "\7\u5ac9\7\u5b2a\7\u5b8b\7\u5bec\7\u5c4d\7\u5cae\7\u5d0f\7\u5d70"+ - "\7\u5dd1\7\u5e32\7\u5e93\7\u5ef4\7\u5f55\7\u5fb6\7\u6017\7\u6078"+ - "\7\u60d9\7\u613a\7\u619b\7\u61fc\7\u625d\7\u62be\7\u631f\7\u6380"+ - "\7\u63e1\7\u6442\7\u64a3\7\u6504\7\u6565\7\u65c6\7\u6627\7\u6688"+ - "\7\u66e9\7\u674a\7\u67ab\7\u680c\7\u686d\7\u68ce\7\u692f\7\u6990"+ - "\7\u69f1\7\u6a52\7\u6ab3\7\u6b14\7\u6b75\7\u6bd6\7\u6c37\7\u6c98"+ - "\7\u6cf9\7\u6d5a\7\u6dbb\7\u6e1c\7\u6e7d\7\u6ede\7\u6f3f\7\u6fa0"+ - "\7\u7001\7\u7062\7\u70c3\7\u7124\7\u7185\7\u71e6\7\u7247\7\u72a8"+ - "\7\u7309\7\u736a\7\u73cb\7\u742c\7\u748d\7\u74ee\7\u754f\7\u75b0"+ - "\7\u7611\7\u7672\7\u76d3\7\u7734\7\u7795\7\u77f6\7\u7857\7\u78b8"+ - "\7\u7919\7\u797a\7\u79db\7\u7a3c\7\u7a9d\7\u7afe\7\u7b5f\7\u7bc0"+ - "\7\u7c21\7\u7c82\7\u7ce3\7\u7d44\7\u7da5\7\u7e06\7\u7e67\7\u7ec8"+ - "\7\u7f29\7\u7f8a\7\u7feb\7\u804c\7\u80ad\7\u810e\7\u816f\7\u81d0"+ - "\7\u8231\7\u8292\7\u82f3\7\u8354\7\u83b5\7\u8416\7\u8477\7\u84d8"+ - "\7\u8539\7\u859a\7\u85fb\7\u865c\7\u86bd\7\u871e\7\u877f\7\u87e0"+ - "\7\u8841\7\u88a2\7\u8903\7\u8964\7\u89c5\7\u8a26\2\u0c07\7\u8a87"+ - "\7\u8ae8\7\u8b49\7\u8baa\7\u8c0b\7\u8c6c\7\u8ccd\7\u8d2e\7\u8d8f"+ - "\7\u8df0\7\u8e51\7\u8eb2\7\u8f13\7\u8f74\7\u8fd5\7\u9036\7\u9097"+ - "\7\u90f8\7\u9159\7\u91ba\7\u921b\7\u927c\7\u92dd\7\u933e\7\u939f"+ - "\7\u9400\7\u9461\7\u94c2\7\u9523\7\u9584\7\u95e5\7\u9646\7\u96a7"+ - "\7\u9708\4\u1ee0\7\u9769\7\u97ca\7\u982b\7\u988c\7\u98ed\7\u994e"+ - "\7\u99af\7\u9a10\7\u9a71\7\u9ad2\7\u9b33\7\u9b94\7\u9bf5\7\u9c56"+ - "\7\u9cb7\7\u9d18\7\u9d79\7\u9dda\7\u9e3b\7\u9e9c\7\u9efd\7\u9f5e"+ - "\7\u9fbf\7\ua020\7\ua081\7\ua0e2\2\u749b\7\ua143\7\ua1a4\7\ua205"+ - "\7\ua266\7\ua2c7\7\ua328\7\ua389\7\ua3ea\7\ua44b\7\ua4ac\7\ua50d"+ - "\7\ua56e\7\ua5cf\7\ua630\7\ua691\7\ua6f2\7\ua753\7\ua7b4\7\ua815"+ - "\7\ua876\7\ua8d7\7\ua938\7\ua999\7\ua9fa\7\uaa5b\7\uaabc\7\uab1d"+ - "\7\uab7e\7\uabdf\7\uac40\7\uaca1\7\uad02\7\uad63\7\uadc4\7\uae25"+ - "\7\uae86\7\uaee7\7\uaf48\7\uafa9\7\ub00a\7\ub06b\7\ub0cc\7\ub12d"+ - "\7\ub18e\7\ub1ef\7\ub250\7\ub2b1\7\ub312\7\ub373\7\ub3d4\7\ub435"+ - "\7\ub496\7\ub4f7\7\ub558\7\ub5b9\7\ub61a\7\ub67b\7\ub6dc\7\ub73d"+ - "\7\ub79e\7\ub7ff\7\ub860\7\ub8c1\7\ub922\7\ub983\7\ub9e4\7\uba45"+ - "\7\ubaa6\7\ubb07\7\ubb68\7\ubbc9\7\ubc2a\7\ubc8b\7\ubcec\7\ubd4d"+ - "\7\ubdae\7\ube0f\7\ube70\7\ubed1\7\ubf32\7\ubf93\7\ubff4\7\uc055"+ - "\7\uc0b6\7\uc117\7\uc178\7\uc1d9\7\uc23a\7\uc29b\7\uc2fc\7\uc35d"+ - "\7\uc3be\7\uc41f\7\uc480\1\u46ff\7\uc4e1\7\uc542\7\uc5a3\7\uc604"+ - "\7\uc665\7\uc6c6\7\uc727\7\uc788\7\uc7e9\7\uc84a\7\uc8ab\7\uc90c"+ - "\7\uc96d\7\uc9ce\7\uca2f\7\uca90\7\ucaf1\7\ucb52\7\ucbb3\7\ucc14"+ - "\7\ucc75\7\uccd6\6\u32dc\7\ucd37\7\ucd98\7\ucdf9\7\uce5a\7\ucebb"+ - "\7\ucf1c\7\ucf7d\7\ucfde\7\ud03f\7\ud0a0\7\ud101\7\ud162\7\ud1c3"+ - "\7\ud224\7\ud285\7\ud2e6\7\ud347\7\ud3a8\7\ud409\7\ud46a\7\ud4cb"+ - "\7\ud52c\7\ud58d\7\ud5ee\7\ud64f\7\ud6b0\7\ud711\7\ud772\7\ud7d3"+ - "\7\ud834\7\ud895\7\ud8f6\7\ud957\7\ud9b8\7\uda19\7\uda7a\7\udadb"+ - "\7\udb3c\7\udb9d\7\udbfe\7\udc5f\7\udcc0\7\udd21\7\udd82\7\udde3"+ - "\7\ude44\7\udea5\7\udf06\7\udf67\7\udfc8\7\ue029\7\ue08a\7\ue0eb"+ - "\7\ue14c\7\ue1ad\7\ue20e\7\ue26f\7\ue2d0\7\ue331\7\ue392\7\ue3f3"+ - "\7\ue454\7\ue4b5\7\ue516\7\ue577\7\ue5d8\7\ue639\7\ue69a\7\ue6fb"+ - "\7\ue75c\7\ue7bd\7\ue81e\7\ue87f\7\ue8e0\7\ue941\7\ue9a2\7\uea03"+ - "\7\uea64\7\ueac5\7\ueb26\7\ueb87\7\uebe8\7\uec49\7\uecaa\7\ued0b"+ - "\7\ued6c\7\uedcd\7\uee2e\7\uee8f\7\ueef0\7\uef51\7\uefb2\7\uf013"+ - "\7\uf074\7\uf0d5\7\uf136\7\uf197\7\uf1f8\7\uf259\7\uf2ba\7\uf31b"+ - "\7\uf37c\7\uf3dd\7\uf43e\7\uf49f\7\uf500\7\uf561\7\uf5c2\7\uf623"+ - "\7\uf684\7\uf6e5\7\uf746\7\uf7a7\7\uf808\7\uf869\7\uf8ca\7\uf92b"+ - "\7\uf98c\7\uf9ed\7\ufa4e\7\ufaaf\7\ufb10\7\ufb71\7\ufbd2\7\ufc33"+ - "\7\ufc94\7\ufcf5\7\ufd56\7\ufdb7\7\ufe18\7\ufe79\7\ufeda\7\uff3b"+ - "\7\uff9c\7\ufffd\10\136\10\277\10\u0120\10\u0181\10\u01e2\10\u0243"+ - "\10\u02a4\10\u0305\10\u0366\10\u03c7\10\u0428\10\u0489\10\u04ea\10\u054b"+ - "\10\u05ac\10\u060d\10\u066e\10\u06cf\10\u0730\10\u0791\10\u07f2\10\u0853"+ - "\10\u08b4\10\u0915\10\u0976\10\u09d7\10\u0a38\10\u0a99\10\u0afa\10\u0b5b"+ - "\10\u0bbc\10\u0c1d\10\u0c7e\10\u0cdf\10\u0d40\10\u0da1\10\u0e02\10\u0e63"+ - "\10\u0ec4\10\u0f25\10\u0f86\10\u0fe7\10\u1048\10\u10a9\10\u110a\10\u116b"+ - "\10\u11cc\10\u122d\10\u128e\10\u12ef\10\u1350\10\u13b1\10\u1412\10\u1473"+ - "\10\u14d4\10\u1535\10\u1596\10\u15f7\10\u1658\10\u16b9\10\u171a\10\u177b"+ - "\10\u17dc\10\u183d\10\u189e\10\u18ff\10\u1960\10\u19c1\10\u1a22\10\u1a83"+ - "\10\u1ae4\10\u1b45\10\u1ba6\10\u1c07\10\u1c68\10\u1cc9\10\u1d2a\10\u1d8b"+ - "\10\u1dec\10\u1e4d\10\u1eae\10\u1f0f\10\u1f70\10\u1fd1\10\u2032\10\u2093"+ - "\10\u20f4\10\u2155\10\u21b6\10\u2217\10\u2278\10\u22d9\10\u233a\10\u239b"+ - "\10\u23fc\10\u245d\10\u24be\10\u251f\2\u96b5\10\u2580\10\u25e1\10\u2642"+ - "\10\u26a3\10\u2704\10\u2765\10\u27c6\10\u2827\10\u2888\10\u28e9\10\u294a"+ - "\10\u29ab\10\u2a0c\10\u2a6d\10\u2ace\10\u2b2f\10\u2b90\10\u2bf1\10\u2c52"+ - "\10\u2cb3\10\u2d14\10\u2d75\10\u2dd6\10\u2e37\10\u2e98\10\u2ef9\10\u2f5a"+ - "\10\u2fbb\10\u301c\10\u307d\10\u30de\10\u313f\10\u31a0\10\u3201\10\u3262"+ - "\10\u32c3\10\u3324\10\u3385\10\u33e6\10\u3447\10\u34a8\10\u3509\10\u356a"+ - "\10\u35cb\10\u362c\10\u368d\10\u36ee\10\u374f\10\u37b0\10\u3811\10\u3872"+ - "\10\u38d3\10\u3934\10\u3995\10\u39f6\10\u3a57\10\u3ab8\10\u3b19\10\u3b7a"+ - "\10\u3bdb\10\u3c3c\10\u3c9d\10\u3cfe\10\u3d5f\10\u3dc0\10\u3e21\10\u3e82"+ - "\10\u3ee3\10\u3f44\10\u3fa5\10\u4006\10\u4067\10\u40c8\10\u4129\10\u418a"+ - "\10\u41eb\10\u424c\10\u42ad\10\u430e\10\u436f\10\u43d0\10\u4431\10\u4492"+ - "\10\u44f3\10\u4554\10\u45b5\10\u4616\10\u4677\10\u46d8\10\u4739\10\u479a"+ - "\10\u47fb\10\u485c\10\u48bd\10\u491e\10\u497f\10\u49e0\10\u4a41\10\u4aa2"+ - "\10\u4b03\10\u4b64\10\u4bc5\10\u4c26\10\u4c87\10\u4ce8\10\u4d49\5\u774d"+ - "\10\u4daa\10\u4e0b\10\u4e6c\10\u4ecd\10\u4f2e\10\u4f8f\10\u4ff0\10\u5051"+ - "\10\u50b2\10\u5113\10\u5174\3\u5a39\10\u51d5\10\u5236\10\u5297\10\u52f8"+ - "\10\u5359\10\u53ba\10\u541b\10\u547c\10\u54dd\10\u553e\10\u559f\10\u5600"+ - "\10\u5661\10\u56c2\10\u5723\10\u5784\10\u57e5\10\u5846\10\u58a7\10\u5908"+ - "\10\u5969\10\u59ca\10\u5a2b\10\u5a8c\10\u5aed\10\u5b4e\10\u5baf\10\u5c10"+ - "\10\u5c71\10\u5cd2\10\u5d33\10\u5d94\10\u5df5\10\u5e56\10\u5eb7\10\u5f18"+ - "\10\u5f79\10\u5fda\10\u603b\10\u609c\10\u60fd\10\u615e\10\u61bf\10\u6220"+ - "\10\u6281\10\u62e2\10\u6343\10\u63a4\10\u6405\10\u6466\10\u64c7\10\u6528"+ - "\10\u6589\10\u65ea\10\u664b\10\u66ac\10\u670d\10\u676e\10\u67cf\10\u6830"+ - "\10\u6891\10\u68f2\10\u6953\10\u69b4\10\u6a15\10\u6a76\10\u6ad7\10\u6b38"+ - "\10\u6b99\10\u6bfa\10\u6c5b\10\u6cbc\10\u6d1d\10\u6d7e\10\u6ddf\10\u6e40"+ - "\10\u6ea1\10\u6f02\10\u6f63\10\u6fc4\10\u7025\10\u7086\10\u70e7\10\u7148"+ - "\10\u71a9\10\u720a\10\u726b\10\u72cc\10\u732d\10\u738e\10\u73ef\10\u7450"+ - "\4\ua502\10\u74b1\10\u7512\10\u7573\10\u75d4\10\u7635\10\u7696\10\u76f7"+ - "\10\u7758\10\u77b9\10\u781a\10\u787b\10\u78dc\10\u793d\10\u799e\10\u79ff"+ - "\10\u7a60\10\u7ac1\10\u7b22\10\u7b83\10\u7be4\10\u7c45\10\u7ca6\4\u30af"+ - "\10\u7d07\10\u7d68\10\u7dc9\10\u7e2a\10\u7e8b\10\u7eec\10\u7f4d\10\u7fae"+ - "\10\u800f\10\u8070\10\u80d1\10\u8132\10\u8193\10\u81f4\10\u8255\10\u82b6"+ - "\10\u8317\10\u8378\10\u83d9\10\u843a\10\u849b\10\u84fc\10\u855d\10\u85be"+ - "\10\u861f\10\u8680\10\u86e1\10\u8742\10\u87a3\10\u8804\10\u8865\10\u88c6"+ - "\10\u8927\10\u8988\10\u89e9\10\u8a4a\10\u8aab\10\u8b0c\10\u8b6d\10\u8bce"+ - "\10\u8c2f\10\u8c90\10\u8cf1\10\u8d52\10\u8db3\10\u8e14\10\u8e75\10\u8ed6"+ - "\10\u8f37\10\u8f98\10\u8ff9\10\u905a\10\u90bb\10\u911c\10\u917d\10\u91de"+ - "\10\u923f\10\u92a0\10\u9301\10\u9362\10\u93c3\3\u7dd7\10\u9424\10\u9485"+ - "\10\u94e6\10\u9547\10\u95a8\10\u9609\10\u966a\10\u96cb\10\u972c\10\u978d"+ - "\10\u97ee\10\u984f\10\u98b0\10\u9911\10\u9972\10\u99d3\10\u9a34\10\u9a95"+ - "\10\u9af6\10\u9b57\10\u9bb8\10\u9c19\10\u9c7a\10\u9cdb\10\u9d3c\10\u9d9d"+ - "\10\u9dfe\10\u9e5f\10\u9ec0\10\u9f21\10\u9f82\10\u9fe3\10\ua044\10\ua0a5"+ - "\10\ua106\10\ua167\10\ua1c8\10\ua229\10\ua28a\10\ua2eb\10\ua34c\10\ua3ad"+ - "\10\ua40e\10\ua46f\10\ua4d0\10\ua531\10\ua592\10\ua5f3\10\ua654\10\ua6b5"+ - "\10\ua716\10\ua777\10\ua7d8\10\ua839\10\ua89a\10\ua8fb\10\ua95c\10\ua9bd"+ - "\10\uaa1e\10\uaa7f\10\uaae0\10\uab41\10\uaba2\10\uac03\10\uac64\10\uacc5"+ - "\10\uad26\10\uad87\10\uade8\10\uae49\10\uaeaa\10\uaf0b\10\uaf6c\10\uafcd"+ - "\10\ub02e\10\ub08f\10\ub0f0\10\ub151\10\ub1b2\10\ub213\10\ub274\10\ub2d5"+ - "\10\ub336\10\ub397\10\ub3f8\10\ub459\10\ub4ba\10\ub51b\10\ub57c\10\ub5dd"+ - "\10\ub63e\10\ub69f\10\ub700\10\ub761\10\ub7c2\10\ub823\10\ub884\10\ub8e5"+ - "\10\ub946\10\ub9a7\10\uba08\10\uba69\10\ubaca\10\ubb2b\10\ubb8c\10\ubbed"+ - "\10\ubc4e\10\ubcaf\10\ubd10\10\ubd71\10\ubdd2\10\ube33\10\ube94\0\u0c81"+ - "\10\ubef5\10\ubf56\10\ubfb7\10\uc018\10\uc079\10\uc0da\10\uc13b\10\uc19c"+ - "\10\uc1fd\10\uc25e\10\uc2bf\10\uc320\10\uc381\10\uc3e2\10\uc443\10\uc4a4"+ - "\10\uc505\10\uc566\10\uc5c7\10\uc628\10\uc689\10\uc6ea\10\uc74b\10\uc7ac"+ - "\10\uc80d\10\uc86e\10\uc8cf\10\uc930\10\uc991\7\u1e8a\10\uc9f2\10\uca53"+ - "\10\ucab4\10\ucb15\10\ucb76\10\ucbd7\10\ucc38\10\ucc99\10\uccfa\10\ucd5b"+ - "\10\ucdbc\10\uce1d\10\uce7e\10\ucedf\10\ucf40\10\ucfa1\10\ud002\10\ud063"+ - "\10\ud0c4\10\ud125\10\ud186\10\ud1e7\10\ud248\10\ud2a9\10\ud30a\10\ud36b"+ - "\10\ud3cc\10\ud42d\10\ud48e\10\ud4ef\10\ud550\10\ud5b1\10\ud612\10\ud673"+ - "\10\ud6d4\10\ud735\10\ud796\10\ud7f7\10\ud858\10\ud8b9\10\ud91a\10\ud97b"+ - "\10\ud9dc\10\uda3d\10\uda9e\10\udaff\10\udb60\10\udbc1\10\udc22\10\udc83"+ - "\10\udce4\10\udd45\10\udda6\10\ude07\10\ude68\10\udec9\10\udf2a\10\udf8b"+ - "\10\udfec\10\ue04d\10\ue0ae\10\ue10f\10\ue170\10\ue1d1\10\ue232\10\ue293"+ - "\10\ue2f4\10\ue355\10\ue3b6\10\ue417\10\ue478\10\ue4d9\10\ue53a\10\ue59b"+ - "\10\ue5fc\10\ue65d\10\ue6be\10\ue71f\10\ue780\10\ue7e1\10\ue842\10\ue8a3"+ - "\10\ue904\10\ue965\10\ue9c6\10\uea27\10\uea88\10\ueae9\10\ueb4a\10\uebab"+ - "\10\uec0c\10\uec6d\10\uecce\10\ued2f\10\ued90\10\uedf1\10\uee52\10\ueeb3"+ - "\10\uef14\10\uef75\10\uefd6\10\uf037\10\uf098\10\uf0f9\10\uf15a\10\uf1bb"+ - "\10\uf21c\10\uf27d\10\uf2de\10\uf33f\10\uf3a0\10\uf401\10\uf462\10\uf4c3"+ - "\10\uf524\10\uf585\10\uf5e6\10\uf647\10\uf6a8\10\uf709\10\uf76a\10\uf7cb"+ - "\10\uf82c\10\uf88d\10\uf8ee\10\uf94f\10\uf9b0\10\ufa11\10\ufa72\10\ufad3"+ - "\10\ufb34\10\ufb95\10\ufbf6\10\ufc57\10\ufcb8\10\ufd19\10\ufd7a\10\ufddb"+ - "\10\ufe3c\10\ufe9d\10\ufefe\10\uff5f\10\uffc0\11\41\11\202\11\343"+ - "\11\u0144\11\u01a5\11\u0206\11\u0267\11\u02c8\11\u0329\11\u038a\11\u03eb"+ - "\11\u044c\11\u04ad\11\u050e\11\u056f\6\ub89d\11\u05d0\11\u0631\11\u0692"+ - "\11\u06f3\11\u0754\11\u07b5\11\u0816\11\u0877\11\u08d8\11\u0939\11\u099a"+ - "\11\u09fb\11\u0a5c\11\u0abd\11\u0b1e\11\u0b7f\11\u0be0\11\u0c41\11\u0ca2"+ - "\11\u0d03\11\u0d64\11\u0dc5\11\u0e26\11\u0e87\11\u0ee8\11\u0f49\11\u0faa"+ - "\11\u100b\11\u106c\11\u10cd\11\u112e\11\u118f\11\u11f0\11\u1251\11\u12b2"+ - "\11\u1313\11\u1374\11\u13d5\11\u1436\11\u1497\11\u14f8\11\u1559\11\u15ba"+ - "\11\u161b\11\u167c\11\u16dd\11\u173e\11\u179f\11\u1800\11\u1861\11\u18c2"+ - "\11\u1923\11\u1984\11\u19e5\11\u1a46\11\u1aa7\11\u1b08\11\u1b69\11\u1bca"+ - "\11\u1c2b\11\u1c8c\11\u1ced\11\u1d4e\11\u1daf\11\u1e10\11\u1e71\11\u1ed2"+ - "\11\u1f33\11\u1f94\11\u1ff5\11\u2056\11\u20b7\11\u2118\11\u2179\11\u21da"+ - "\11\u223b\11\u229c\11\u22fd\11\u235e\11\u23bf\11\u2420\11\u2481\11\u24e2"+ - "\11\u2543\11\u25a4\11\u2605\11\u2666\11\u26c7\11\u2728\11\u2789\11\u27ea"+ - "\11\u284b\11\u28ac\11\u290d\11\u296e\11\u29cf\11\u2a30\11\u2a91\11\u2af2"+ - "\11\u2b53\11\u2bb4\11\u2c15\11\u2c76\11\u2cd7\11\u2d38\11\u2d99\11\u2dfa"+ - "\11\u2e5b\11\u2ebc\11\u2f1d\11\u2f7e\11\u2fdf\11\u3040\11\u30a1\11\u3102"+ - "\11\u3163\11\u31c4\11\u3225\11\u3286\11\u32e7\11\u3348\11\u33a9\11\u340a"+ - "\11\u346b\11\u34cc\11\u352d\11\u358e\11\u35ef\11\u3650\11\u36b1\11\u3712"+ - "\11\u3773\11\u37d4\11\u3835\11\u3896\11\u38f7\11\u3958\11\u39b9\11\u3a1a"+ - "\11\u3a7b\11\u3adc\11\u3b3d\11\u3b9e\11\u3bff\11\u3c60\11\u3cc1\11\u3d22"+ - "\11\u3d83\11\u3de4\11\u3e45\11\u3ea6\11\u3f07\11\u3f68\11\u3fc9\11\u402a"+ - "\11\u408b\11\u40ec\11\u414d\11\u41ae\11\u420f\11\u4270\11\u42d1\11\u4332"+ - "\11\u4393\11\u43f4\11\u4455\11\u44b6\11\u4517\11\u4578\11\u45d9\11\u463a"+ - "\11\u469b\11\u46fc\11\u475d\11\u47be\11\u481f\11\u4880\11\u48e1\11\u4942"+ - "\11\u49a3\11\u4a04\11\u4a65\11\u4ac6\11\u4b27\11\u4b88\11\u4be9\11\u4c4a"+ - "\11\u4cab\11\u4d0c\11\u4d6d\11\u4dce\11\u4e2f\11\u4e90\11\u4ef1\11\u4f52"+ - "\11\u4fb3\11\u5014\11\u5075\11\u50d6\11\u5137\11\u5198\11\u51f9\11\u525a"+ - "\11\u52bb\11\u531c\11\u537d\11\u53de\11\u543f\11\u54a0\11\u5501\11\u5562"+ - "\11\u55c3\11\u5624\11\u5685\11\u56e6\11\u5747\11\u57a8\11\u5809\11\u586a"+ - "\11\u58cb\11\u592c\11\u598d\11\u59ee\11\u5a4f\11\u5ab0\11\u5b11\11\u5b72"+ - "\7\u4d86\11\u5bd3\11\u5c34\11\u5c95\11\u5cf6\11\u5d57\11\u5db8\11\u5e19"+ - "\11\u5e7a\11\u5edb\11\u5f3c\11\u5f9d\11\u5ffe\11\u605f\11\u60c0\11\u6121"+ - "\11\u6182\11\u61e3\11\u6244\11\u62a5\11\u6306\11\u6367\11\u63c8\11\u6429"+ - "\11\u648a\11\u64eb\11\u654c\11\u65ad\11\u660e\11\u666f\11\u66d0\11\u6731"+ - "\11\u6792\11\u67f3\11\u6854\11\u68b5\11\u6916\11\u6977\11\u69d8\11\u6a39"+ - "\11\u6a9a\11\u6afb\11\u6b5c\11\u6bbd\11\u6c1e\11\u6c7f\11\u6ce0\11\u6d41"+ - "\11\u6da2\11\u6e03\11\u6e64\11\u6ec5\11\u6f26\11\u6f87\11\u6fe8\11\u7049"+ - "\11\u70aa\11\u710b\11\u716c\11\u71cd\11\u722e\11\u728f\11\u72f0\11\u7351"+ - "\11\u73b2\11\u7413\11\u7474\11\u74d5\11\u7536\11\u7597\11\u75f8\11\u7659"+ - "\2\u453e\11\u76ba\11\u771b\11\u777c\11\u77dd\11\u783e\11\u789f\11\u7900"+ - "\11\u7961\11\u79c2\11\u7a23\11\u7a84\11\u7ae5\11\u7b46\11\u7ba7\11\u7c08"+ - "\11\u7c69\11\u7cca\11\u7d2b\11\u7d8c\11\u7ded\11\u7e4e\4\u3110\11\u7eaf"+ - "\11\u7f10\11\u7f71\11\u7fd2\11\u8033\11\u8094\11\u80f5\11\u8156\11\u81b7"+ - "\11\u8218\11\u8279\11\u82da\11\u833b\11\u839c\11\u83fd\11\u845e\11\u84bf"+ - "\11\u8520\11\u8581\11\u85e2\11\u8643\11\u86a4\11\u8705\11\u8766\11\u87c7"+ - "\11\u8828\11\u8889\11\u88ea\11\u894b\11\u89ac\11\u8a0d\11\u8a6e\11\u8acf"+ - "\11\u8b30\11\u8b91\11\u8bf2\11\u8c53\11\u8cb4\11\u8d15\11\u8d76\11\u8dd7"+ - "\11\u8e38\11\u8e99\11\u8efa\11\u8f5b\11\u8fbc\11\u901d\11\u907e\11\u90df"+ - "\11\u9140\11\u91a1\11\u9202\11\u9263\11\u92c4\11\u9325\11\u9386\11\u93e7"+ - "\11\u9448\11\u94a9\11\u950a\11\u956b\11\u95cc\11\u962d\11\u968e\11\u96ef"+ - "\11\u9750\11\u97b1\11\u9812\11\u9873\11\u98d4\11\u9935\11\u9996\11\u99f7"+ - "\11\u9a58\11\u9ab9\11\u9b1a\11\u9b7b\11\u9bdc\11\u9c3d\11\u9c9e\11\u9cff"+ - "\11\u9d60\11\u9dc1\11\u9e22\11\u9e83\11\u9ee4\11\u9f45\11\u9fa6\11\ua007"+ - "\11\ua068\11\ua0c9\11\ua12a\11\ua18b\11\ua1ec\11\ua24d\11\ua2ae\11\ua30f"+ - "\11\ua370\11\ua3d1\11\ua432\11\ua493\11\ua4f4\11\ua555\11\ua5b6\11\ua617"+ - "\11\ua678\11\ua6d9\11\ua73a\11\ua79b\11\ua7fc\11\ua85d\11\ua8be\11\ua91f"+ - "\11\ua980\11\ua9e1\11\uaa42\11\uaaa3\11\uab04\11\uab65\11\uabc6\11\uac27"+ - "\11\uac88\11\uace9\11\uad4a\11\uadab\11\uae0c\11\uae6d\11\uaece\11\uaf2f"+ - "\11\uaf90\11\uaff1\11\ub052\11\ub0b3\11\ub114\11\ub175\11\ub1d6\11\ub237"+ - "\11\ub298\11\ub2f9\11\ub35a\11\ub3bb\11\ub41c\11\ub47d\11\ub4de\11\ub53f"+ - "\11\ub5a0\11\ub601\11\ub662\11\ub6c3\11\ub724\11\ub785\11\ub7e6\11\ub847"+ - "\11\ub8a8\11\ub909\11\ub96a\11\ub9cb\11\uba2c\11\uba8d\11\ubaee\11\ubb4f"+ - "\11\ubbb0\11\ubc11\11\ubc72\11\ubcd3\11\ubd34\11\ubd95\11\ubdf6\11\ube57"+ - "\11\ubeb8\11\ubf19\11\ubf7a\11\ubfdb\11\uc03c\11\uc09d\11\uc0fe\11\uc15f"+ - "\11\uc1c0\11\uc221\11\uc282\11\uc2e3\11\uc344\11\uc3a5\11\uc406\11\uc467"+ - "\11\uc4c8\3\u991f\11\uc529\11\uc58a\11\uc5eb\11\uc64c\11\uc6ad\11\uc70e"+ - "\11\uc76f\11\uc7d0\11\uc831\11\uc892\11\uc8f3\11\uc954\11\uc9b5\11\uca16"+ - "\11\uca77\11\ucad8\11\ucb39\11\ucb9a\11\ucbfb\11\ucc5c\11\uccbd\11\ucd1e"+ - "\11\ucd7f\11\ucde0\11\uce41\11\ucea2\11\ucf03\11\ucf64\11\ucfc5\11\ud026"+ - "\11\ud087\11\ud0e8\11\ud149\11\ud1aa\11\ud20b\11\ud26c\11\ud2cd\11\ud32e"+ - "\11\ud38f\11\ud3f0\11\ud451\11\ud4b2\11\ud513\11\ud574\11\ud5d5\11\ud636"+ - "\11\ud697\11\ud6f8\11\ud759\11\ud7ba\11\ud81b\11\ud87c\11\ud8dd\11\ud93e"+ - "\11\ud99f\11\uda00\11\uda61\11\udac2\11\udb23\11\udb84\11\udbe5\11\udc46"+ - "\11\udca7\11\udd08\11\udd69\11\uddca\11\ude2b\11\ude8c\11\udeed\11\udf4e"+ - "\11\udfaf\11\ue010\11\ue071\11\ue0d2\11\ue133\11\ue194\11\ue1f5\11\ue256"+ - "\11\ue2b7\11\ue318\11\ue379\11\ue3da\11\ue43b\11\ue49c\11\ue4fd\11\ue55e"+ - "\11\ue5bf\11\ue620\11\ue681\11\ue6e2\11\ue743\11\ue7a4\11\ue805\11\ue866"+ - "\11\ue8c7\11\ue928\11\ue989\11\ue9ea\11\uea4b\11\ueaac\11\u4dce\11\ueb0d"+ - "\11\ueb6e\11\uebcf\11\uec30\11\uec91\11\uecf2\11\ued53\11\uedb4\11\uee15"+ - "\11\uee76\11\ueed7\11\uef38\11\uef99\11\ueffa\11\uf05b\11\uf0bc\11\uf11d"+ - "\11\uf17e\11\uf1df\11\uf240\11\uf2a1\11\uf302\11\uf363\11\uf3c4\11\uf425"+ - "\11\uf486\11\uf4e7\11\uf548\11\uf5a9\11\uf60a\11\uf66b\11\uf6cc\11\uf72d"+ - "\11\uf78e\11\uf7ef\11\uf850\11\uf8b1\11\uf912\11\uf973\11\uf9d4\11\ufa35"+ - "\11\ufa96\11\ufaf7\11\ufb58\11\ufbb9\11\ufc1a\11\ufc7b\11\ufcdc\11\ufd3d"+ - "\11\ufd9e\11\ufdff\11\ufe60\11\ufec1\11\uff22\11\uff83\11\uffe4\12\105"+ - "\12\246\12\u0107\12\u0168\12\u01c9\12\u022a\12\u028b\12\u02ec\12\u034d"+ - "\12\u03ae\12\u040f\12\u0470\12\u04d1\12\u0532\12\u0593\12\u05f4\12\u0655"+ - "\12\u06b6\12\u0717\12\u0778\12\u07d9\12\u083a\6\u82cf\12\u089b\12\u08fc"+ - "\12\u095d\12\u09be\12\u0a1f\12\u0a80\12\u0ae1\12\u0b42\12\u0ba3\12\u0c04"+ - "\12\u0c65\12\u0cc6\12\u0d27\12\u0d88\12\u0de9\12\u0e4a\12\u0eab\12\u0f0c"+ - "\12\u0f6d\12\u0fce\12\u102f\12\u1090\12\u10f1\12\u1152\12\u11b3\12\u1214"+ - "\12\u1275\12\u12d6\12\u1337\12\u1398\12\u13f9\12\u145a\12\u14bb\12\u151c"+ - "\12\u157d\12\u15de\12\u163f\12\u16a0\12\u1701\12\u1762\12\u17c3\12\u1824"+ - "\12\u1885\12\u18e6\12\u1947\12\u19a8\12\u1a09\12\u1a6a\12\u1acb\12\u1b2c"+ - "\12\u1b8d\12\u1bee\12\u1c4f\12\u1cb0\12\u1d11\12\u1d72\12\u1dd3\12\u1e34"+ - "\12\u1e95\12\u1ef6\12\u1f57\12\u1fb8\12\u2019\12\u207a\12\u20db\12\u213c"+ - "\12\u219d\12\u21fe\12\u225f\12\u22c0\12\u2321\12\u2382\12\u23e3\12\u2444"+ - "\12\u24a5\12\u2506\12\u2567\12\u25c8\12\u2629\12\u268a\12\u26eb\12\u274c"+ - "\12\u27ad\12\u280e\12\u286f\12\u28d0\12\u2931\12\u2992\12\u29f3\12\u2a54"+ - "\12\u2ab5\12\u2b16\12\u2b77\12\u2bd8\12\u2c39\12\u2c9a\12\u2cfb\12\u2d5c"+ - "\12\u2dbd\12\u2e1e\12\u2e7f\12\u2ee0\12\u2f41\12\u2fa2\12\u3003\12\u3064"+ - "\12\u30c5\12\u3126\12\u3187\12\u31e8\12\u3249\12\u32aa\12\u330b\12\u336c"+ - "\12\u33cd\12\u342e\12\u348f\12\u34f0\12\u3551\12\u35b2\12\u3613\12\u3674"+ - "\12\u36d5\12\u3736\12\u3797\12\u37f8\12\u3859\12\u38ba\12\u391b\12\u397c"+ - "\12\u39dd\12\u3a3e\12\u3a9f\12\u3b00\12\u3b61\12\u3bc2\12\u3c23\12\u3c84"+ - "\12\u3ce5\12\u3d46\12\u3da7\12\u3e08\12\u3e69\12\u3eca\12\u3f2b\12\u3f8c"+ - "\12\u3fed\12\u404e\12\u40af\12\u4110\1\u07b8\12\u4171\12\u41d2\12\u4233"+ - "\12\u4294\12\u42f5\12\u4356\12\u43b7\12\u4418\12\u4479\12\u44da\12\u453b"+ - "\12\u459c\12\u45fd\12\u465e\12\u46bf\12\u4720\12\u4781\12\u47e2\12\u4843"+ - "\12\u48a4\12\u4905\12\u4966\12\u49c7\12\u4a28\12\u4a89\12\u4aea\12\u4b4b"+ - "\12\u4bac\12\u4c0d\12\u4c6e\12\u4ccf\12\u4d30\12\u4d91\12\u4df2\12\u4e53"+ - "\12\u4eb4\12\u4f15\12\u4f76\12\u4fd7\12\u5038\12\u5099\12\u50fa\12\u515b"+ - "\12\u51bc\12\u521d\12\u527e\12\u52df\12\u5340\12\u53a1\12\u5402\12\u5463"+ - "\12\u54c4\12\u5525\12\u5586\12\u55e7\12\u5648\12\u56a9\12\u570a\12\u576b"+ - "\12\u57cc\5\u6ef7\12\u582d\12\u588e\12\u58ef\12\u5950\12\u59b1\12\u5a12"+ - "\12\u5a73\12\u5ad4\12\u5b35\12\u5b96\12\u5bf7\12\u5c58\12\u5cb9\12\u5d1a"+ - "\12\u5d7b\12\u5ddc\12\u5e3d\12\u5e9e\12\u5eff\12\u5f60\12\u5fc1\12\u6022"+ - "\12\u6083\12\u60e4\12\u6145\12\u61a6\12\u6207\12\u6268\12\u62c9\12\u632a"+ - "\12\u638b\12\u63ec\12\u644d\12\u64ae\12\u650f\12\u6570\12\u65d1\12\u6632"+ - "\12\u6693\12\u66f4\12\u6755\12\u67b6\12\u6817\12\u6878\12\u68d9\12\u693a"+ - "\12\u699b\12\u69fc\12\u6a5d\12\u6abe\12\u6b1f\12\u6b80\12\u6be1\12\u6c42"+ - "\10\u6f63\12\u6ca3\12\u6d04\12\u6d65\12\u6dc6\12\u6e27\12\u6e88\12\u6ee9"+ - "\12\u6f4a\12\u6fab\12\u700c\12\u706d\12\u70ce\12\u712f\12\u7190\12\u71f1"+ - "\12\u7252\12\u72b3\12\u7314\12\u7375\12\u73d6\12\u7437\12\u7498\12\u74f9"+ - "\12\u755a\12\u75bb\12\u761c\12\u767d\12\u76de\12\u773f\12\u77a0\12\u7801"+ - "\12\u7862\12\u78c3\12\u7924\12\u7985\12\u79e6\12\u7a47\12\u7aa8\12\u7b09"+ - "\12\u7b6a\12\u7bcb\12\u7c2c\12\u7c8d\12\u7cee\12\u7d4f\12\u7db0\12\u7e11"+ - "\12\u7e72\12\u7ed3\12\u7f34\12\u7f95\12\u7ff6\12\u8057\12\u80b8\12\u8119"+ - "\12\u817a\12\u81db\12\u823c\12\u829d\12\u82fe\12\u835f\12\u83c0\12\u8421"+ - "\12\u8482\12\u84e3\12\u8544\12\u85a5\12\u8606\12\u8667\12\u86c8\12\u8729"+ - "\12\u878a\12\u87eb\12\u884c\12\u88ad\12\u890e\12\u896f\12\u89d0\12\u8a31"+ - "\12\u8a92\12\u8af3\3\u45c3\12\u8b54\12\u8bb5\12\u8c16\12\u8c77\12\u8cd8"+ - "\12\u8d39\12\u8d9a\12\u8dfb\12\u8e5c\12\u8ebd\12\u8f1e\12\u8f7f\12\u8fe0"+ - "\12\u9041\12\u90a2\12\u9103\12\u9164\12\u91c5\12\u9226\12\u9287\12\u92e8"+ - "\10\ucf40\12\u9349\12\u93aa\12\u940b\12\u946c\12\u94cd\12\u952e\12\u958f"+ - "\12\u95f0\12\u9651\12\u96b2\12\u9713\12\u9774\12\u97d5\12\u9836\12\u9897"+ - "\12\u98f8\12\u9959\12\u99ba\12\u9a1b\12\u9a7c\12\u9add\12\u9b3e\12\u9b9f"+ - "\12\u9c00\12\u9c61\12\u9cc2\12\u9d23\12\u9d84\12\u9de5\12\u9e46\12\u9ea7"+ - "\12\u9f08\12\u9f69\12\u9fca\12\ua02b\12\ua08c\12\ua0ed\12\ua14e\12\ua1af"+ - "\12\ua210\12\ua271\12\ua2d2\12\ua333\12\ua394\12\ua3f5\12\u47e2\12\ua456"+ - "\12\ua4b7\12\ua518\12\ua579\12\ua5da\12\ua63b\12\ua69c\12\ua6fd\12\ua75e"+ - "\12\ua7bf\12\ua820\12\ua881\12\ua8e2\12\ua943\12\ua9a4\12\uaa05\12\uaa66"+ - "\12\uaac7\12\uab28\12\uab89\12\uabea\12\uac4b\12\uacac\12\uad0d\12\uad6e"+ - "\12\uadcf\12\uae30\12\uae91\12\uaef2\12\uaf53\12\uafb4\12\ub015\12\ub076"+ - "\12\ub0d7\12\ub138\12\ub199\12\ub1fa\12\ub25b\12\ub2bc\12\ub31d\12\ub37e"+ - "\12\ub3df\12\ub440\12\ub4a1\12\ub502\12\ub563\12\ub5c4\12\ub625\12\ub686"+ - "\7\u14b0\12\ub6e7\12\ub748\12\ub7a9\12\ub80a\12\ub86b\12\ub8cc\12\ub92d"+ - "\12\ub98e\12\ub9ef\12\uba50\12\ubab1\12\ubb12\12\ubb73\12\ubbd4\12\ubc35"+ - "\12\ubc96\12\ubcf7\12\ubd58\12\ubdb9\12\ube1a\12\ube7b\12\ubedc\12\ubf3d"+ - "\12\ubf9e\12\ubfff\12\uc060\12\uc0c1\12\uc122\12\uc183\12\uc1e4\12\uc245"+ - "\12\uc2a6\12\uc307\12\uc368\12\uc3c9\12\uc42a\12\uc48b\12\uc4ec\12\uc54d"+ - "\12\u213c\12\uc5ae\12\uc60f\12\uc670\12\uc6d1\12\uc732\12\uc793\12\uc7f4"+ - "\12\uc855\12\uc8b6\12\uc917\12\uc978\12\uc9d9\12\uca3a\12\uca9b\12\ucafc"+ - "\12\ucb5d\12\ucbbe\12\ucc1f\12\ucc80\12\ucce1\12\ucd42\12\ucda3\12\uce04"+ - "\12\uce65\12\ucec6\12\ucf27\12\ucf88\12\ucfe9\12\ud04a\12\ud0ab\12\ud10c"+ - "\12\ud16d\12\ud1ce\12\ud22f\12\ud290\12\ud2f1\12\ud352\12\ud3b3\12\ud414"+ - "\12\ud475\12\ud4d6\12\ud537\12\ud598\12\ud5f9\12\ud65a\12\ud6bb\12\ud71c"+ - "\12\ud77d\12\ud7de\12\ud83f\12\ud8a0\12\ud901\12\ud962\11\u2af2\12\ud9c3"+ - "\12\uda24\12\uda85\12\udae6\12\udb47\12\udba8\12\udc09\12\udc6a\12\udccb"+ - "\12\udd2c\12\udd8d\12\uddee\12\ude4f\12\udeb0\12\udf11\12\udf72\12\udfd3"+ - "\12\ue034\12\ue095\12\ue0f6\12\ue157\12\ue1b8\12\ue219\12\ue27a\12\ue2db"+ - "\12\ue33c\12\ue39d\12\ue3fe\12\ue45f\12\ue4c0\12\ue521\12\ue582\12\ue5e3"+ - "\12\ue644\12\ue6a5\12\ue706\12\ue767\12\ue7c8\12\ue829\12\ue88a\12\ue8eb"+ - "\12\ue94c\12\ue9ad\12\uea0e\12\uea6f\12\uead0\12\ueb31\12\ueb92\12\uebf3"+ - "\12\uec54\12\uecb5\12\ued16\12\ued77\12\uedd8\12\uee39\12\uee9a\12\ueefb"+ - "\12\uef5c\12\uefbd\12\uf01e\12\uf07f\12\uf0e0\12\uf141\12\uf1a2\12\uf203"+ - "\12\uf264\12\uf2c5\12\uf326\12\uf387\12\uf3e8\12\uf449\12\uf4aa\12\uf50b"+ - "\12\uf56c\12\uf5cd\12\uf62e\12\uf68f\12\uf6f0\12\uf751\12\uf7b2\12\uf813"+ - "\12\uf874\12\uf8d5\12\uf936\12\uf997\12\uf9f8\12\ufa59\12\ufaba\12\ufb1b"+ - "\12\ufb7c\12\ufbdd\12\ufc3e\12\ufc9f\12\ufd00\12\ufd61\12\ufdc2\12\ufe23"+ - "\12\ufe84\12\ufee5\12\uff46\12\uffa7\13\10\13\151\13\312\13\u012b"+ - "\13\u018c\13\u01ed\13\u024e\13\u02af\13\u0310\13\u0371\13\u03d2\13\u0433"+ - "\13\u0494\13\u04f5\13\u0556\13\u05b7\13\u0618\13\u0679\13\u06da\13\u073b"+ - "\13\u079c\13\u07fd\13\u085e\13\u08bf\13\u0920\13\u0981\13\u09e2\13\u0a43"+ - "\13\u0aa4\13\u0b05\13\u0b66\3\uf532\13\u0bc7\13\u0c28\13\u0c89\13\u0cea"+ - "\6\u752b\13\u0d4b\13\u0dac\13\u0e0d\13\u0e6e\13\u0ecf\13\u0f30\13\u0f91"+ - "\13\u0ff2\13\u1053\13\u10b4\13\u1115\13\u1176\13\u11d7\13\u1238\13\u1299"+ - "\13\u12fa\13\u135b\13\u13bc\13\u141d\13\u147e\13\u14df\13\u1540\13\u15a1"+ - "\13\u1602\13\u1663\13\u16c4\13\u1725\13\u1786\13\u17e7\13\u1848\13\u18a9"+ - "\13\u190a\13\u196b\13\u19cc\13\u1a2d\13\u1a8e\13\u1aef\13\u1b50\13\u1bb1"+ - "\13\u1c12\13\u1c73\13\u1cd4\13\u1d35\13\u1d96\13\u1df7\13\u1e58\13\u1eb9"+ - "\13\u1f1a\13\u1f7b\13\u1fdc\13\u203d\13\u209e\13\u20ff\13\u2160\13\u21c1"+ - "\13\u2222\13\u2283\13\u22e4\13\u2345\13\u23a6\13\u2407\13\u2468\13\u24c9"+ - "\13\u252a\13\u258b\13\u25ec\12\u4233\13\u264d\13\u26ae\13\u270f\13\u2770"+ - "\13\u27d1\13\u2832\13\u2893\13\u28f4\13\u2955\13\u29b6\13\u2a17\13\u2a78"+ - "\13\u2ad9\13\u2b3a\13\u2b9b\13\u2bfc\13\u2c5d\13\u2cbe\13\u2d1f\13\u2d80"+ - "\13\u2de1\13\u2e42\13\u2ea3\13\u2f04\13\u2f65\13\u2fc6\13\u3027\13\u3088"+ - "\13\u30e9\13\u314a\13\u31ab\13\u320c\13\u326d\13\u32ce\13\u332f\13\u3390"+ - "\13\u33f1\13\u3452\13\u34b3\13\u3514\13\u3575\13\u35d6\13\u3637\13\u3698"+ - "\13\u36f9\13\u375a\13\u37bb\13\u381c\13\u387d\13\u38de\13\u393f\13\u39a0"+ - "\13\u3a01\13\u3a62\13\u3ac3\13\u3b24\13\u3b85\13\u3be6\13\u3c47\13\u3ca8"+ - "\13\u3d09\13\u3d6a\13\u3dcb\13\u3e2c\13\u3e8d\13\u3eee\13\u3f4f\13\u3fb0"+ - "\13\u4011\13\u4072\13\u40d3\13\u4134\13\u4195\13\u41f6\13\u4257\13\u42b8"+ - "\13\u4319\13\u437a\13\u43db\13\u443c\13\u449d\13\u44fe\13\u455f\13\u45c0"+ - "\13\u4621\13\u4682\13\u46e3\13\u4744\13\u47a5\13\u4806\13\u4867\13\u48c8"+ - "\13\u4929\13\u498a\13\u49eb\13\u4a4c\13\u4aad\13\u4b0e\13\u4b6f\13\u4bd0"+ - "\13\u4c31\13\u4c92\13\u4cf3\13\u4d54\13\u4db5\13\u4e16\13\u4e77\13\u4ed8"+ - "\13\u4f39\13\u4f9a\13\u4ffb\13\u505c\13\u50bd\13\u511e\13\u517f\13\u51e0"+ - "\13\u5241\13\u52a2\13\u5303\13\u5364\13\u53c5\11\u0b7f\13\u5426\13\u5487"+ - "\13\u54e8\13\u5549\13\u55aa\13\u560b\13\u566c\13\u56cd\13\u572e\13\u578f"+ - "\13\u57f0\13\u5851\13\u58b2\13\u5913\13\u5974\13\u59d5\13\u5a36\13\u5a97"+ - "\13\u5af8\13\u5b59\13\u5bba\13\u5c1b\13\u5c7c\6\uf660\13\u5cdd\12\uaa05"+ - "\13\u5d3e\13\u5d9f\13\u5e00\13\u5e61\13\u5ec2\13\u5f23\13\u5f84\13\u5fe5"+ - "\13\u6046\13\u60a7\13\u6108\13\u6169\13\u61ca\13\u622b\13\u628c\13\u62ed"+ - "\13\u634e\13\u63af\13\u6410\13\u6471\13\u64d2\13\u6533\13\u6594\13\u65f5"+ - "\13\u6656\13\u66b7\13\u6718\13\u6779\13\u67da\13\u683b\13\u689c\13\u68fd"+ - "\13\u695e\13\u69bf\13\u6a20\13\u6a81\13\u6ae2\13\u6b43\13\u6ba4\13\u6c05"+ - "\13\u6c66\13\u6cc7\13\u6d28\13\u6d89\13\u6dea\13\u6e4b\13\u6eac\13\u6f0d"+ - "\13\u6f6e\13\u6fcf\13\u7030\13\u7091\13\u70f2\13\u7153\13\u71b4\13\u7215"+ - "\13\u7276\13\u72d7\13\u7338\13\u7399\13\u73fa\13\u745b\13\u74bc\13\u751d"+ - "\13\u757e\13\u75df\13\u7640\13\u76a1\13\u7702\13\u7763\13\u77c4\13\u7825"+ - "\13\u7886\13\u78e7\13\u7948\13\u79a9\13\u7a0a\13\u7a6b\13\u7acc\13\u7b2d"+ - "\13\u7b8e\13\u7bef\13\u7c50\13\u7cb1\13\u7d12\13\u7d73\13\u7dd4\13\u7e35"+ - "\13\u7e96\13\u7ef7\13\u7f58\13\u7fb9\13\u801a\13\u807b\13\u80dc\13\u813d"+ - "\13\u819e\13\u81ff\13\u8260\13\u82c1\13\u8322\13\u8383\13\u83e4\13\u8445"+ - "\13\u84a6\13\u8507\13\u8568\13\u85c9\13\u862a\13\u868b\13\u86ec\13\u874d"+ - "\13\u87ae\13\u880f\13\u8870\13\u88d1\13\u8932\13\u8993\13\u89f4\13\u8a55"+ - "\13\u8ab6\13\u8b17\13\u8b78\13\u8bd9\13\u8c3a\13\u8c9b\13\u8cfc\13\u8d5d"+ - "\13\u8dbe\5\u4a36\13\u8e1f\13\u8e80\13\u8ee1\13\u8f42\13\u8fa3\13\u9004"+ - "\13\u9065\13\u90c6\13\u9127\13\u9188\13\u91e9\13\u924a\13\u92ab\13\u930c"+ - "\13\u936d\13\u93ce\13\u942f\13\u9490\13\u94f1\13\u9552\13\u95b3\13\u9614"+ - "\13\u9675\13\u96d6\13\u9737\13\u9798\13\u97f9\13\u985a\13\u98bb\13\u991c"+ - "\13\u997d\13\u99de\13\u9a3f\13\u9aa0\13\u9b01\13\u9b62\13\u9bc3\13\u9c24"+ - "\13\u9c85\13\u9ce6\13\u9d47\13\u9da8\13\u9e09\13\u9e6a\13\u9ecb\13\u9f2c"+ - "\13\u9f8d\13\u9fee\13\ua04f\13\ua0b0\13\ua111\13\ua172\13\ua1d3\13\ua234"+ - "\13\ua295\13\ua2f6\13\ua357\13\ua3b8\13\ua419\13\ua47a\13\ua4db\13\ua53c"+ - "\13\ua59d\13\ua5fe\13\ua65f\13\ua6c0\13\ua721\13\ua782\13\ua7e3\13\ua844"+ - "\13\ua8a5\13\ua906\13\ua967\13\ua9c8\13\uaa29\13\uaa8a\13\uaaeb\13\uab4c"+ - "\13\uabad\13\uac0e\13\uac6f\13\uacd0\13\uad31\13\uad92\13\uadf3\13\uae54"+ - "\13\uaeb5\13\uaf16\13\uaf77\13\uafd8\13\ub039\13\ub09a\13\ub0fb\13\ub15c"+ - "\13\ub1bd\13\ub21e\13\ub27f\13\ub2e0\13\ub341\13\ub3a2\13\ub403\13\ub464"+ - "\13\ub4c5\13\ub526\13\ub587\13\ub5e8\13\ub649\13\ub6aa\13\ub70b\13\ub76c"+ - "\13\ub7cd\13\ub82e\13\ub88f\13\ub8f0\13\ub951\13\ub9b2\13\uba13\13\uba74"+ - "\13\ubad5\13\ubb36\13\ubb97\13\ubbf8\13\ubc59\13\ubcba\13\ubd1b\13\ubd7c"+ - "\13\ubddd\13\ube3e\13\ube9f\13\ubf00\13\ubf61\13\ubfc2\13\uc023\13\uc084"+ - "\13\uc0e5\13\uc146\13\uc1a7\13\uc208\13\uc269\13\uc2ca\13\uc32b\13\uc38c"+ - "\13\uc3ed\13\uc44e\13\uc4af\13\uc510\13\uc571\13\uc5d2\13\uc633\13\uc694"+ - "\13\uc6f5\13\uc756\13\uc7b7\13\uc818\13\uc879\13\uc8da\13\uc93b\13\uc99c"+ - "\13\uc9fd\13\uca5e\13\ucabf\13\ucb20\13\ucb81\13\ucbe2\13\ucc43\13\ucca4"+ - "\13\ucd05\13\ucd66\13\ucdc7\13\uce28\13\uce89\13\uceea\13\ucf4b\13\ucfac"+ - "\13\ud00d\13\ud06e\13\ud0cf\13\ud130\13\ud191\13\ud1f2\13\ud253\13\ud2b4"+ - "\13\ud315\13\ud376\13\ud3d7\13\ud438\13\ud499\11\udca7"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[8198]; - 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 = - "\1\40\1\41\1\42\1\43\1\44\1\45\133\40\2\46"+ - "\1\47\26\46\1\50\31\46\1\51\7\46\1\52\1\46"+ - "\1\53\43\46\2\54\1\55\14\54\1\56\121\54\1\57"+ - "\1\60\1\0\1\61\1\44\2\57\1\62\1\63\6\57"+ - "\1\64\26\57\1\65\47\57\1\66\22\57\2\67\1\0"+ - "\1\67\1\70\2\67\2\70\1\71\1\72\1\73\1\74"+ - "\1\75\1\76\1\70\1\67\1\77\1\100\3\67\1\101"+ - "\3\67\1\102\6\67\1\103\4\67\1\70\7\67\1\74"+ - "\1\104\1\76\1\73\1\100\1\105\1\106\1\77\1\71"+ - "\1\101\1\72\1\67\1\107\1\110\1\111\1\67\1\112"+ - "\1\103\1\75\1\67\1\113\1\67\1\114\1\67\1\102"+ - "\1\105\1\106\1\107\4\67\1\70\1\111\1\104\1\67"+ - "\1\112\1\114\1\113\1\110\13\67\3\115\1\116\3\115"+ - "\1\117\131\115\3\120\1\116\112\120\1\117\22\120\1\57"+ - "\1\60\1\0\1\61\1\44\2\57\1\121\1\122\6\57"+ - "\1\123\26\57\1\65\47\57\1\124\22\57\3\115\1\116"+ - "\3\115\1\125\131\115\3\120\1\116\112\120\1\125\22\120"+ - "\1\57\1\60\1\0\1\61\1\44\2\57\1\126\1\122"+ - "\6\57\1\127\26\57\1\65\47\57\1\130\22\57\3\115"+ - "\1\116\3\115\1\131\131\115\3\120\1\116\112\120\1\131"+ - "\22\120\1\132\1\44\1\133\1\134\1\44\1\135\1\136"+ - "\1\137\1\140\3\141\1\142\2\141\1\143\4\141\1\144"+ - "\1\145\1\141\1\144\1\141\1\146\1\147\1\150\2\132"+ - "\1\141\1\151\2\141\1\152\1\153\1\154\1\136\4\151"+ - "\3\65\1\155\1\156\1\141\1\157\1\160\1\161\1\162"+ - "\1\163\1\164\1\165\1\166\1\167\1\170\1\171\2\141"+ - "\1\172\1\141\1\173\1\174\1\141\1\175\2\141\1\154"+ - "\3\141\1\176\1\132\3\154\1\177\7\141\1\144\2\141"+ - "\1\200\3\144\1\141\3\144\2\201\1\202\1\203\31\201"+ - "\1\204\60\201\1\205\22\201\2\206\1\207\1\210\3\206"+ - "\1\211\25\206\1\212\103\206\2\213\1\214\1\215\33\213"+ - "\1\216\23\213\1\217\7\213\1\220\1\213\1\221\43\213"+ - "\2\222\1\223\1\224\33\222\1\225\23\222\1\226\7\222"+ - "\1\227\1\222\1\230\7\222\1\231\4\222\1\232\26\222"+ - "\2\233\1\234\1\235\57\233\1\236\7\233\1\237\1\233"+ - "\1\240\43\233\1\132\1\44\1\241\1\242\1\44\1\135"+ - "\1\136\1\243\1\244\5\141\1\245\1\143\4\141\1\144"+ - "\1\145\1\141\1\144\1\246\1\146\1\247\1\136\1\250"+ - "\1\132\1\251\1\151\2\141\1\152\1\153\1\154\1\136"+ - "\4\151\1\252\2\65\1\253\1\254\1\255\1\256\1\257"+ - "\1\260\1\261\1\262\1\263\1\264\1\265\1\266\1\267"+ - "\1\270\1\271\1\272\1\273\1\274\1\275\1\276\1\277"+ - "\1\300\1\301\1\302\1\154\1\141\1\303\1\141\1\304"+ - "\1\305\3\154\1\306\7\141\1\144\1\141\1\307\1\136"+ - "\3\144\1\310\3\144\2\311\1\312\34\311\1\313\23\311"+ - "\1\217\7\311\1\220\1\311\1\221\43\311\2\314\1\315"+ - "\4\314\1\316\25\314\1\317\1\320\102\314\2\321\1\322"+ - "\32\321\1\323\60\321\1\324\22\321\1\325\1\44\1\326"+ - "\1\327\1\44\1\325\1\154\1\330\1\331\6\332\1\65"+ - "\4\332\2\325\1\332\1\325\3\332\1\325\1\333\1\325"+ - "\1\65\3\332\1\65\1\332\1\325\1\136\2\65\3\325"+ - "\1\334\2\65\27\332\1\335\4\332\1\336\3\154\1\337"+ - "\7\332\1\325\2\332\4\325\1\332\3\325\1\340\1\44"+ - "\1\341\1\342\1\44\3\340\1\343\6\344\1\340\4\344"+ - "\2\340\1\344\1\340\3\344\4\340\1\345\2\344\2\340"+ - "\1\346\6\340\1\347\2\340\27\344\1\340\4\344\5\340"+ - "\7\344\1\340\2\344\4\340\1\344\3\340\1\350\1\44"+ - "\1\351\1\352\1\44\1\350\1\353\1\330\1\354\6\355"+ - "\1\350\4\355\2\356\1\355\1\356\1\355\1\357\1\355"+ - "\1\350\1\360\1\355\2\350\2\355\1\350\1\136\1\346"+ - "\1\136\3\350\1\361\4\350\27\355\1\350\4\355\1\350"+ - "\1\362\1\363\1\350\1\337\7\355\1\356\2\355\1\350"+ - "\3\356\1\355\3\356\2\206\1\364\1\203\3\206\1\365"+ - "\25\206\1\317\103\206\2\201\1\366\1\203\31\201\1\317"+ - "\60\201\1\367\22\201\2\213\1\370\1\203\33\213\1\371"+ - "\23\213\1\217\7\213\1\220\1\213\1\221\43\213\2\372"+ - "\1\373\32\372\1\374\1\375\72\372\1\376\7\372\2\377"+ - "\1\u0100\33\377\1\u0101\5\377\1\u0102\74\377\2\40\4\0"+ - "\134\40\1\41\2\0\1\44\1\0\133\40\151\0\1\u0103"+ - "\1\u0104\5\u0105\1\0\10\u0105\2\0\1\u0105\5\0\2\u0105"+ - "\7\0\1\u0106\1\u0107\3\0\10\u0105\1\u0104\16\u0105\1\0"+ - "\4\u0105\5\0\12\u0105\1\0\7\u0105\1\0\1\44\2\0"+ - "\1\44\134\0\4\45\1\0\1\45\1\u0108\132\45\2\46"+ - "\1\0\26\46\1\0\31\46\1\0\7\46\1\0\1\46"+ - "\1\0\43\46\31\0\1\u0109\165\0\1\u010a\1\0\1\u010b"+ - "\140\0\1\u010c\155\0\1\u010d\43\0\2\54\1\0\14\54"+ - "\1\0\121\54\2\57\1\0\1\57\1\0\2\57\2\0"+ - "\6\57\1\0\26\57\1\0\47\57\1\0\23\57\1\60"+ - "\1\0\1\57\1\44\2\57\2\0\6\57\1\0\26\57"+ - "\1\0\47\57\1\0\24\57\1\0\1\57\1\0\2\57"+ - "\2\0\6\57\1\0\26\57\1\0\3\57\1\u010e\43\57"+ - "\1\0\22\57\17\0\1\64\121\0\2\67\1\0\1\67"+ - "\1\0\2\67\2\0\6\67\1\0\26\67\1\0\47\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\1\67"+ - "\1\u010f\2\67\1\u0110\1\u0111\1\0\2\67\1\u0112\7\67"+ - "\1\u0113\13\67\1\0\10\67\1\u0114\1\u0111\1\67\1\u0112"+ - "\1\67\1\u0115\3\67\1\u010f\3\67\1\u0116\3\67\1\u0110"+ - "\5\67\1\u0113\1\67\1\u0115\5\67\1\0\1\u0116\1\u0114"+ - "\22\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u0117"+ - "\2\67\1\0\2\67\1\u0118\23\67\1\0\7\67\1\u0117"+ - "\3\67\1\u0118\1\67\1\u0119\7\67\1\u011a\13\67\1\u0119"+ - "\5\67\1\0\1\u011a\23\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\12\67\1\u011b\13\67\1\0\37\67"+ - "\1\u011b\7\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\1\u011c\5\67\1\0\1\67\1\u011d\24\67\1\0"+ - "\10\67\1\u011e\3\67\1\u011f\1\67\1\u011d\1\u011c\3\67"+ - "\1\u0120\14\67\1\u011f\1\67\1\u0120\4\67\1\0\1\67"+ - "\1\u011e\22\67\1\0\1\67\1\0\2\67\2\0\2\67"+ - "\1\u0121\3\67\1\0\1\67\1\u0122\24\67\1\0\12\67"+ - "\1\u0121\2\67\1\u0123\1\u0122\22\67\1\u0123\5\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\2\67\1\114"+ - "\1\u0124\1\67\1\114\1\0\2\67\1\u0125\3\67\1\u0126"+ - "\12\67\1\114\4\67\1\0\7\67\1\u0124\1\67\2\114"+ - "\1\u0125\1\u0127\1\u0128\2\67\1\u0126\3\67\1\u0129\3\67"+ - "\1\114\7\67\1\u0127\1\u0128\5\67\1\0\6\67\1\u0129"+ - "\15\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u012a"+ - "\2\67\1\0\2\67\1\u012b\23\67\1\0\7\67\1\u012a"+ - "\3\67\1\u012b\1\67\1\u012c\23\67\1\u012c\5\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\26\67\1\0\10\67\1\u012d\22\67\1\u012e\13\67\1\0"+ - "\1\67\1\u012d\3\67\1\u012e\16\67\1\0\1\67\1\0"+ - "\2\67\2\0\2\67\1\114\1\u011e\2\67\1\0\1\67"+ - "\1\u012f\10\67\1\u0130\6\67\1\u0131\4\67\1\0\7\67"+ - "\1\u011e\2\67\1\114\2\67\1\u0132\1\u012f\3\67\1\u0133"+ - "\2\67\1\u0134\2\67\1\u0131\6\67\1\u0130\1\67\1\u0132"+ - "\5\67\1\0\1\u0134\1\67\1\u0133\21\67\1\0\1\67"+ - "\1\0\2\67\2\0\6\67\1\0\1\67\1\114\24\67"+ - "\1\0\16\67\1\114\30\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\3\67\1\u0135\1\67\1\114\1\0"+ - "\1\67\1\114\1\u0136\16\67\1\114\4\67\1\0\7\67"+ - "\1\u0135\1\67\1\114\1\67\1\u0136\1\u0137\1\u0138\1\114"+ - "\11\67\1\114\7\67\1\u0137\1\u0138\5\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67"+ - "\1\u0139\7\67\1\u013a\13\67\1\0\13\67\1\u0139\1\67"+ - "\1\u013b\21\67\1\u013a\1\67\1\u013b\5\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\2\67\1\u013c\1\u013d"+ - "\2\67\1\0\26\67\1\0\7\67\1\u013d\2\67\1\u013c"+ - "\12\67\1\u013e\21\67\1\0\1\u013e\23\67\1\0\1\67"+ - "\1\0\2\67\2\0\1\u013f\1\u0140\1\u0141\1\67\1\u0142"+ - "\1\67\1\0\6\67\1\u0143\3\67\1\u0144\6\67\1\u0145"+ - "\4\67\1\0\12\67\1\u0141\4\67\1\u013f\1\u0143\1\u0140"+ - "\6\67\1\u0145\1\u0142\5\67\1\u0144\7\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67"+ - "\1\u0146\23\67\1\0\13\67\1\u0146\1\67\1\u0147\7\67"+ - "\1\u0148\13\67\1\u0147\5\67\1\0\1\u0148\23\67\1\0"+ - "\1\67\1\0\2\67\2\0\2\67\1\114\2\67\1\u0149"+ - "\1\0\2\67\1\u014a\23\67\1\0\11\67\1\u0149\1\114"+ - "\1\u014a\33\67\1\0\7\67\1\114\3\67\3\114\1\67"+ - "\2\114\3\67\1\0\1\67\1\0\2\67\2\0\4\67"+ - "\1\u014b\1\67\1\0\1\67\1\114\4\67\1\u014c\3\67"+ - "\1\u014d\13\67\1\0\16\67\1\114\1\67\1\u014c\10\67"+ - "\1\u014b\5\67\1\u014d\7\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\6\67\1\0\2\67\1\u014e\3\67"+ - "\1\u014f\17\67\1\0\13\67\1\u014e\4\67\1\u014f\26\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\3\67"+ - "\1\u0150\2\67\1\0\26\67\1\0\7\67\1\u0150\5\67"+ - "\1\u0151\23\67\1\u0151\5\67\1\0\22\67\3\115\1\0"+ - "\3\115\1\0\131\115\52\0\1\u0152\66\0\3\120\1\0"+ - "\112\120\1\0\22\120\17\0\1\u0153\121\0\1\132\10\0"+ - "\6\132\1\0\11\132\1\0\1\132\1\0\3\132\1\0"+ - "\2\132\14\0\27\132\1\0\5\132\4\0\12\132\1\0"+ - "\7\132\3\0\1\u0154\4\0\1\u0155\35\0\1\65\3\0"+ - "\1\u0156\73\0\1\65\40\0\1\65\72\0\10\u0157\1\u0158"+ - "\24\u0157\1\u0159\1\u0157\1\u015a\6\u0157\1\u015b\72\u0157\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u015d\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\17\0\1\u015e\26\0"+ - "\1\65\72\0\1\u015f\10\0\6\u015f\1\0\1\u015f\1\u0160"+ - "\1\u0161\1\u015f\2\144\1\u015f\1\144\1\u015f\1\0\1\u015f"+ - "\1\0\3\u015f\1\0\1\u015f\1\u0162\1\0\1\u0163\12\0"+ - "\4\u015f\1\u0161\1\u0162\1\u015f\1\u0160\11\u015f\1\u0162\5\u015f"+ - "\1\0\1\u015f\1\u0162\3\u015f\4\0\7\u015f\1\144\2\u015f"+ - "\1\0\3\144\1\u015f\3\144\1\u015f\10\0\6\u015f\1\0"+ - "\1\u015f\1\u0160\1\u0161\1\u015f\1\u0164\1\u0165\1\u015f\1\u0165"+ - "\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u0166\1\u0162"+ - "\1\0\1\u0163\12\0\4\u015f\1\u0161\1\u0162\1\u015f\1\u0160"+ - "\11\u015f\1\u0162\3\u015f\1\u0166\1\u015f\1\0\1\u015f\1\u0162"+ - "\3\u015f\4\0\7\u015f\1\u0165\2\u015f\1\0\3\u0165\1\u015f"+ - "\2\u0165\1\u0164\31\0\1\65\14\0\1\65\72\0\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0167\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\46\0"+ - "\1\65\134\0\1\65\3\0\1\65\116\0\2\u0163\1\0"+ - "\1\u0163\76\0\1\u0163\3\0\3\u0163\1\0\3\u0163\46\0"+ - "\1\65\6\0\1\65\63\0\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0168\3\141\1\u0169\2\141\1\u016a"+ - "\3\141\1\u016b\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u016c\11\141\1\u016d\5\141\1\u016e\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u016f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0170\1\u0171\1\u0172"+ - "\3\141\1\u0173\7\141\1\u0174\1\u0175\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0176\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0177\5\141\1\u0178\1\u0179\6\141"+ - "\1\u017a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u017b\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u017c\11\141\1\u017d\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u017e\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u017f\12\141\1\u0180\1\141\1\u0181\3\141"+ - "\1\u0182\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0183\12\141\1\u0184\4\141\1\u0185\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0186\1\u0187\5\141\1\u0188"+ - "\1\u0189\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u018a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u018b"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u018c\1\141\1\u018d\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u018e\14\141\1\u018f\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0190\11\141\1\u0191\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0192\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0193\2\141\1\u0194"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u017a"+ - "\7\141\1\u0195\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0196\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\2\201\2\0\31\201\1\0\60\201\1\0"+ - "\22\201\52\0\1\u0197\66\0\2\u0198\1\0\27\u0198\1\u0199"+ - "\50\u0198\1\u019a\35\u0198\2\206\2\0\3\206\1\0\25\206"+ - "\1\0\103\206\52\0\1\u019b\66\0\2\213\2\0\33\213"+ - "\1\0\23\213\1\0\7\213\1\0\1\213\1\0\43\213"+ - "\10\0\1\u019c\140\0\1\u019d\206\0\1\u019e\1\0\1\u019f"+ - "\140\0\1\u01a0\155\0\1\u01a1\43\0\2\222\2\0\33\222"+ - "\1\0\23\222\1\0\7\222\1\0\1\222\1\0\7\222"+ - "\1\0\4\222\1\0\26\222\10\0\1\u01a2\6\u01a3\1\u01a4"+ - "\4\u01a3\2\0\1\u01a3\3\0\1\u01a3\5\0\2\u01a3\14\0"+ - "\27\u01a3\1\0\4\u01a3\5\0\7\u01a3\1\0\2\u01a3\4\0"+ - "\1\u01a3\13\0\1\u01a5\206\0\1\u01a6\1\0\1\u01a7\140\0"+ - "\1\u01a8\155\0\1\u01a9\155\0\1\u01aa\104\0\1\u01ab\1\u01ac"+ - "\1\u01ad\1\u01ae\1\u01af\1\u01b0\1\u01b1\1\u01b2\1\u01b3\1\u01b4"+ - "\1\u01b5\1\u01b6\1\u01b7\3\0\1\u01b8\1\u01b9\1\u01ba\1\0"+ - "\1\u01bb\36\0\2\233\2\0\57\233\1\0\7\233\1\0"+ - "\1\233\1\0\43\233\10\0\1\u01bc\206\0\1\u01bd\1\0"+ - "\1\u01be\140\0\1\u01bf\155\0\1\u01c0\46\0\1\u0154\42\0"+ - "\1\65\102\0\1\250\26\0\1\u01c1\6\0\1\65\72\0"+ - "\1\132\10\0\2\141\1\u01c2\3\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u01c3\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u01c4\1\u01c5"+ - "\1\u01c6\2\141\1\u01c7\1\141\1\u01c8\1\141\1\u01c9\1\141"+ - "\1\u01ca\3\141\1\u01c7\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\2\250\1\0\136\250\1\132\10\0"+ - "\6\u01cb\1\0\4\u01cb\2\141\1\u01cb\1\141\1\u01cb\1\0"+ - "\1\u01cb\1\0\1\132\1\u015c\1\141\1\0\2\u01cb\14\0"+ - "\27\u01cb\1\0\4\u01cb\1\132\4\0\7\u01cb\1\141\2\u01cb"+ - "\1\0\3\141\1\u01cb\3\141\17\0\1\u01cc\121\0\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u01cd\1\u01ce"+ - "\2\141\1\u0169\2\141\1\u01cf\1\u01d0\1\u01d1\1\u01d2\1\u01d3"+ - "\4\141\1\u01d4\1\u01d5\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u01d6\1\141\1\u01d7\1\141\1\u01d8\1\141\1\u01d9"+ - "\1\141\1\u01da\1\u01db\1\u01dc\2\141\1\u01dd\1\u01de\1\141"+ - "\1\u01df\1\u01e0\1\141\1\u01e1\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u01e2\1\u01e3\1\141\1\u01e4\1\u01e5\1\141"+ - "\1\u01e6\3\141\1\u01e7\2\141\1\u01e8\1\u01e9\4\141\1\u01ea"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u01eb"+ - "\1\u01ec\1\141\1\u01ed\1\141\1\u01ee\1\141\1\u01ef\5\141"+ - "\1\u01f0\3\141\1\u01f1\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u01f2\1\141\1\u01f3\2\141\1\u01f4\1\u01f5"+ - "\1\u01f6\1\u01f7\1\u01f8\1\141\1\u01f9\1\141\1\u01fa\5\141"+ - "\1\u01fb\1\u01fc\1\141\1\0\4\141\1\132\4\0\11\141"+ - "\1\u01fd\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u01fe\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u01ff\1\u0200\1\u0201\1\u0202\1\u0203\1\u0204\1\u0178"+ - "\1\u0205\1\u0206\1\u0207\1\u0208\1\u0209\1\u020a\1\141\1\u020b"+ - "\1\u020c\2\141\1\u020d\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u020e\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u020f\1\u0210\3\141\1\u0211\1\u0212\1\u0213"+ - "\1\u0214\1\u0215\1\u0216\4\141\1\u0217\1\u0218\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0219\1\141\1\u01ec\1\141"+ - "\1\u021a\1\141\1\u021b\1\141\1\u021c\1\141\1\u021d\3\141"+ - "\1\u021e\2\141\1\u021f\5\141\1\0\4\141\1\132\4\0"+ - "\11\141\1\u0220\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0221\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0222\1\141\1\u0223\1\u0224\1\u0225\1\141"+ - "\1\u0226\1\u0227\1\u0228\1\141\1\u0229\1\141\1\u022a\1\u022b"+ - "\1\u022c\1\u022d\1\u022e\1\141\1\u022f\1\u0230\2\141\1\u0231"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0232\2\141\1\u0183"+ - "\1\u0233\1\141\1\u0234\3\141\1\u0235\14\141\1\0\4\141"+ - "\1\132\4\0\11\141\1\u0236\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0237\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0238\1\u0239\1\u023a"+ - "\1\u023b\1\u023c\2\141\1\u023d\2\141\1\u023e\1\u023f\4\141"+ - "\1\u0240\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0241\1\141\1\u0242\1\u0243\2\141\1\u0244\6\141\1\u018a"+ - "\2\141\1\u0245\5\141\1\0\4\141\1\132\4\0\11\141"+ - "\1\u0246\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0247\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0248\1\141\1\u0249\1\u024a\1\u024b\2\141"+ - "\1\u024c\2\141\1\u024d\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u024e\1\141\1\u024f\1\141\1\u0250\1\141\1\u0251"+ - "\10\141\1\u0252\3\141\1\u0253\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0254\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0255\1\141\1\u0256\1\141\1\u0257"+ - "\1\141\1\u0258\1\u0259\4\141\1\u025a\1\141\1\u025b\1\u025c"+ - "\1\141\1\u025d\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u025e\11\141\1\u018f\1\u025f\2\141\1\u0260\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\4\141\1\u0261"+ - "\2\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0262"+ - "\2\141\1\u01c7\1\u0263\3\141\1\u01ef\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0264\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0265\2\141\1\u0266\1\u0267\1\141"+ - "\1\u0268\1\u0269\1\u026a\1\u026b\1\u026c\1\u024c\1\u026d\1\141"+ - "\1\u026e\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u026f"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0270"+ - "\2\141\1\u0271\1\141\1\u0272\1\u0273\3\141\1\u0274\1\u0275"+ - "\1\u0276\1\u0277\1\u0278\2\141\1\u0279\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u027a\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u027b\3\141\1\u027c\1\u027d\1\u027e"+ - "\1\141\1\u027d\11\141\1\u027f\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0280\1\u0281\4\141\1\u0282\1\141\1\u0283"+ - "\5\141\1\u017a\3\141\1\u0284\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0285\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0286\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\2\141\1\u0287\1\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\1\u0288\3\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\u0289\1\0\4\u0289"+ - "\2\132\1\u0289\1\132\1\u0289\1\0\1\u0289\1\0\2\132"+ - "\1\u0289\1\0\2\u0289\14\0\27\u0289\1\0\4\u0289\1\132"+ - "\4\0\7\u0289\1\132\2\u0289\1\0\3\132\1\u0289\4\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u028a\3\141\1\u028b"+ - "\2\141\1\u028c\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u028d\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u028e\1\141\1\u028f\1\141\1\u0290\5\141\1\u0291"+ - "\2\141\1\u0292\1\u0293\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\2\311\1\0\34\311\1\0\23\311"+ - "\1\0\7\311\1\0\1\311\1\0\43\311\10\0\1\u0294"+ - "\130\0\2\314\1\0\4\314\1\0\25\314\2\0\102\314"+ - "\2\u0295\1\0\136\u0295\11\0\6\u0296\1\0\4\u0296\2\0"+ - "\1\u0296\1\0\1\u0296\1\0\1\u0296\5\0\2\u0296\14\0"+ - "\27\u0296\1\0\4\u0296\5\0\7\u0296\1\0\2\u0296\4\0"+ - "\1\u0296\3\0\2\321\1\0\32\321\1\0\60\321\1\0"+ - "\22\321\2\u0297\1\0\136\u0297\10\0\1\u0298\41\0\1\u0156"+ - "\125\0\1\u0299\112\0\6\332\1\0\13\332\5\0\2\332"+ - "\1\0\1\332\12\0\27\332\1\0\4\332\5\0\12\332"+ - "\1\0\7\332\11\0\6\u029a\1\0\4\u029a\2\0\1\u029a"+ - "\1\0\3\u029a\4\0\3\u029a\1\0\1\u029a\12\0\27\u029a"+ - "\1\0\4\u029a\5\0\7\u029a\1\0\2\u029a\4\0\1\u029a"+ - "\56\0\1\u029b\4\0\1\u029c\1\u029d\1\u029e\1\u029f\1\u02a0"+ - "\1\u02a1\2\0\1\u02a2\1\0\1\u02a3\1\u02a4\1\u02a5\2\0"+ - "\1\u02a6\2\0\1\u02a7\47\0\6\u02a8\1\0\4\u02a8\2\0"+ - "\1\u02a8\1\0\3\u02a8\4\0\3\u02a8\1\0\1\u02a8\12\0"+ - "\27\u02a8\1\0\4\u02a8\5\0\7\u02a8\1\0\2\u02a8\4\0"+ - "\1\u02a8\14\0\6\344\1\0\13\344\5\0\2\344\14\0"+ - "\27\344\1\0\4\344\5\0\12\344\1\0\7\344\11\0"+ - "\6\344\1\0\4\344\2\0\1\344\1\0\3\344\5\0"+ - "\2\344\14\0\27\344\1\0\4\344\5\0\7\344\1\0"+ - "\2\344\4\0\1\344\13\0\7\355\1\0\4\355\2\0"+ - "\1\355\1\0\3\355\2\0\1\355\1\0\1\u0299\2\355"+ - "\14\0\27\355\1\0\4\355\2\0\1\363\2\0\7\355"+ - "\1\0\2\355\4\0\1\355\13\0\7\355\1\0\4\355"+ - "\2\0\1\355\1\0\3\355\2\0\1\355\2\0\2\355"+ - "\14\0\27\355\1\0\4\355\2\0\1\363\2\0\7\355"+ - "\1\0\2\355\4\0\1\355\27\0\2\356\1\0\1\356"+ - "\13\0\1\356\4\0\1\u02a9\5\0\1\u02aa\1\u02ab\2\0"+ - "\1\u02ac\3\0\1\u02a9\1\0\1\u02ad\7\0\1\u02ae\25\0"+ - "\1\356\3\0\3\356\1\0\3\356\10\0\7\355\1\0"+ - "\4\355\2\356\1\355\1\356\3\355\2\0\1\355\2\0"+ - "\2\355\14\0\27\355\1\0\4\355\2\0\1\363\2\0"+ - "\7\355\1\356\2\355\1\0\3\356\1\355\3\356\12\0"+ - "\1\u02af\7\0\1\u02af\1\0\4\u02af\11\0\1\u02af\20\0"+ - "\3\u02af\2\0\2\u02af\6\0\1\u02af\7\0\2\u02af\15\0"+ - "\1\u02af\3\0\3\u02af\1\0\3\u02af\56\0\1\u02b0\72\0"+ - "\1\u02b1\130\0\2\372\1\0\32\372\2\0\72\372\1\0"+ - "\7\372\105\0\1\u02b2\33\0\2\377\1\0\33\377\1\0"+ - "\5\377\1\0\74\377\105\0\1\u02b3\44\0\6\u02b4\1\0"+ - "\10\u02b4\2\0\1\u02b4\5\0\2\u02b4\14\0\27\u02b4\1\0"+ - "\4\u02b4\5\0\12\u02b4\1\0\7\u02b4\11\0\1\u0105\1\u02b5"+ - "\3\u0105\1\u02b6\1\0\10\u0105\2\0\1\u0105\5\0\2\u0105"+ - "\14\0\2\u0105\1\u02b6\7\u0105\1\u02b5\14\u0105\1\0\4\u0105"+ - "\5\0\12\u0105\1\0\7\u0105\11\0\6\u0105\1\0\10\u0105"+ - "\2\0\1\u0105\5\0\2\u0105\14\0\27\u0105\1\0\4\u0105"+ - "\5\0\12\u0105\1\0\7\u0105\31\0\1\u02b7\207\0\1\u02b8"+ - "\57\0\1\u02b9\206\0\1\u02ba\153\0\1\u02bb\120\0\1\u02bc"+ - "\155\0\1\u02bd\43\0\2\57\1\0\1\57\1\0\2\57"+ - "\2\0\6\57\1\0\26\57\1\0\31\57\1\u02be\15\57"+ - "\1\0\22\57\2\67\1\0\1\67\1\0\2\67\2\0"+ - "\2\67\1\u02bf\3\67\1\0\26\67\1\0\12\67\1\u02bf"+ - "\34\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\15\67\1\u02c0\23\67\1\u02c0"+ - "\5\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\2\67\1\u02c1\3\67\1\0\1\u011b\25\67\1\0\12\67"+ - "\1\u02c1\17\67\1\u011b\14\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\1\67\1\u02c2\1\u02c3\3\67\1\0"+ - "\1\67\1\u02c4\24\67\1\0\12\67\1\u02c3\3\67\1\u02c4"+ - "\2\67\1\u02c2\25\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\4\67\1\114\1\67\1\0\6\67\1\114"+ - "\17\67\1\0\20\67\1\114\10\67\1\114\15\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\26\67\1\0\15\67\1\u02c5\23\67\1\u02c5\5\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\26\67\1\0\10\67\1\u02c6\36\67\1\0\1\67\1\u02c6"+ - "\22\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\12\67\1\u02c7\13\67\1\0\37\67\1\u02c7\7\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\5\67\1\u02c8"+ - "\1\0\26\67\1\0\11\67\1\u02c8\35\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\23\67\1\u02c9\16\67\1\u02c9\4\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\4\67\1\u02c2\1\67"+ - "\1\0\26\67\1\0\23\67\1\u02ca\5\67\1\u02c2\10\67"+ - "\1\u02ca\4\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\1\67\1\u02cb\17\67\1\u02c8\4\67"+ - "\1\0\10\67\1\u02cc\5\67\1\u02cb\11\67\1\u02c8\16\67"+ - "\1\0\1\67\1\u02cc\22\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\1\67\1\u02c8\24\67\1\0\16\67"+ - "\1\u02c8\30\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\3\67\1\u02cd\2\67\1\0\26\67\1\0\7\67"+ - "\1\u02cd\37\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\15\67\1\u02ce\23\67"+ - "\1\u02ce\5\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\22\67\1\114\24\67"+ - "\1\0\2\67\1\114\21\67\1\0\1\67\1\0\2\67"+ - "\2\0\2\67\1\u02cf\3\67\1\0\26\67\1\0\12\67"+ - "\1\u02cf\34\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\1\114\3\67\1\u02d0\1\67\1\0\26\67\1\0"+ - "\17\67\1\114\11\67\1\u02d0\15\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\2\67\1\114"+ - "\23\67\1\0\13\67\1\114\11\67\1\u02d1\21\67\1\0"+ - "\1\u02d1\23\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\15\67\1\u02d2\23\67\1\u02d2\5\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\2\67"+ - "\1\u02d3\3\67\1\0\26\67\1\0\12\67\1\u02d3\34\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\5\67"+ - "\1\u011b\1\0\26\67\1\0\10\67\1\u02c8\1\u011b\35\67"+ - "\1\0\1\67\1\u02c8\22\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\20\67\1\u02d4\5\67\1\0\34\67"+ - "\1\u02d4\12\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\25\67\1\u0134\21\67"+ - "\1\0\1\u0134\23\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\25\67\1\u02d5\21\67\1\0"+ - "\1\u02d5\23\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\6\67\1\u011b\17\67\1\0\20\67\1\u011b\26\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\2\67\1\u02d6\23\67\1\0\13\67\1\u02d6\33\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\23\67\1\u02d7\16\67\1\u02d7\4\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\22\67\1\u02d8\24\67\1\0\2\67"+ - "\1\u02d8\21\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\1\u02d9\5\67\1\u02da\17\67\1\0\20\67\1\u02da"+ - "\11\67\1\u02d9\14\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\6\67\1\u02db\17\67\1\0"+ - "\20\67\1\u02db\26\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\2\67\1\u02dc\23\67\1\0"+ - "\13\67\1\u02dc\33\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\3\67\1\u02dd\2\67\1\0\26\67\1\0"+ - "\7\67\1\u02dd\15\67\1\u02de\21\67\1\0\1\u02de\23\67"+ - "\1\0\1\67\1\0\2\67\2\0\5\67\1\u02df\1\0"+ - "\26\67\1\0\11\67\1\u02df\35\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0"+ - "\25\67\1\114\21\67\1\0\1\114\23\67\1\0\1\67"+ - "\1\0\2\67\2\0\1\u02e0\5\67\1\0\26\67\1\0"+ - "\17\67\1\u02e0\27\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\1\u02e1\5\67\1\0\26\67\1\0\17\67"+ - "\1\u02e1\27\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\21\67\1\u02e2\4\67\1\0\30\67"+ - "\1\u02e2\16\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\2\67\1\114\3\67\1\0\26\67\1\0\12\67"+ - "\1\114\2\67\1\u02e3\15\67\1\114\5\67\1\u02e3\5\67"+ - "\1\0\5\67\1\114\16\67\1\0\1\67\1\0\2\67"+ - "\2\0\5\67\1\u02e4\1\0\1\67\1\114\24\67\1\0"+ - "\11\67\1\u02e4\4\67\1\114\30\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0"+ - "\23\67\1\114\16\67\1\114\4\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\5\67\1\u02e5\1\0\26\67"+ - "\1\0\11\67\1\u02e5\35\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\5\67\1\u02e6\1\0\26\67\1\0"+ - "\11\67\1\u02e6\11\67\1\u02e7\16\67\1\u02e7\4\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\1\67\1\u02e8\24\67\1\0\16\67\1\u02e8\30\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u02e9"+ - "\1\67\1\114\1\67\1\0\26\67\1\0\12\67\1\u02e9"+ - "\16\67\1\114\15\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u02ea"+ - "\23\67\1\u02ea\5\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\2\67\1\u02eb\23\67\1\0"+ - "\13\67\1\u02eb\6\67\1\u02ec\24\67\1\0\2\67\1\u02ec"+ - "\21\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u02ed"+ - "\3\67\1\0\26\67\1\0\12\67\1\u02ed\10\67\1\u02ee"+ - "\1\67\1\u02c9\14\67\1\u02ee\4\67\1\0\1\u02c9\23\67"+ - "\1\0\1\67\1\0\2\67\2\0\3\67\1\u02ef\2\67"+ - "\1\0\26\67\1\0\7\67\1\u02ef\37\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\2\67\1\u02f0\3\67"+ - "\1\0\26\67\1\0\12\67\1\u02f0\34\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\5\67\1\u02f1\1\0"+ - "\2\67\1\u02f2\23\67\1\0\11\67\1\u02f1\1\67\1\u02f2"+ - "\33\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\4\67\1\u02f3\1\67\1\0\26\67\1\0\31\67\1\u02f3"+ - "\15\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\6\67\1\u0151\17\67\1\0\20\67\1\u0151"+ - "\26\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\21\67\1\u02f4\4\67\1\0\30\67\1\u02f4"+ - "\16\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\21\67\1\u02f5\4\67\1\0\30\67\1\u02f5"+ - "\16\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\1\u02ee\5\67\1\0\26\67\1\0\17\67\1\u02ee\27\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\33\67\1\114\13\67\1\0\5\67"+ - "\1\114\16\67\1\0\1\67\1\0\2\67\2\0\1\u02f6"+ - "\5\67\1\0\1\67\1\u011d\1\u02f7\3\67\1\u0151\17\67"+ - "\1\0\13\67\1\u02f7\1\u02f8\1\67\1\u011d\1\u02f6\1\u0151"+ - "\17\67\1\u02f8\6\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\10\67\1\u02f9"+ - "\36\67\1\0\1\67\1\u02f9\22\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u02fa"+ - "\23\67\1\u02fa\5\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\5\67\1\u02fb\1\0\26\67\1\0\11\67"+ - "\1\u02fb\35\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\47\67\1\0\10\67"+ - "\1\u02c4\5\67\1\u02c4\5\67\1\0\1\67\1\0\2\67"+ - "\2\0\5\67\1\u02fc\1\0\26\67\1\0\11\67\1\u02fc"+ - "\35\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\1\u02fd\25\67\1\0\32\67\1\u02fd\14\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\21\67\1\114\4\67\1\0\30\67\1\114\16\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\21\67\1\u02fe\4\67\1\0\30\67\1\u02fe\16\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\2\67"+ - "\1\114\3\67\1\0\26\67\1\0\12\67\1\114\34\67"+ - "\1\0\22\67\100\0\1\u02ff\51\0\1\u0300\54\0\1\u0300"+ - "\152\0\1\u0301\40\0\10\u0157\1\u0302\24\u0157\1\u0159\105\u0157"+ - "\1\0\136\u0157\37\0\1\u0303\101\0\1\132\10\0\6\132"+ - "\1\0\11\132\1\0\1\u0304\1\0\3\132\1\0\2\132"+ - "\14\0\27\132\1\0\5\132\4\0\12\132\1\0\10\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0305\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\17\0"+ - "\1\151\26\0\1\65\72\0\1\u015f\10\0\6\u015f\1\0"+ - "\11\u015f\1\0\1\u015f\1\0\3\u015f\1\0\2\u015f\14\0"+ - "\27\u015f\1\0\5\u015f\4\0\12\u015f\1\0\10\u015f\10\0"+ - "\6\u015f\1\0\4\u015f\2\u0306\1\u015f\1\u0306\1\u015f\1\u0307"+ - "\1\u015f\1\0\3\u015f\1\0\2\u015f\1\u0307\13\0\27\u015f"+ - "\1\0\5\u015f\4\0\7\u015f\1\u0306\2\u015f\1\0\3\u0306"+ - "\1\u015f\3\u0306\1\u015f\10\0\6\u015f\1\0\2\u015f\1\u0161"+ - "\1\u015f\2\u0163\1\u015f\1\u0163\1\u015f\1\0\1\u015f\1\0"+ - "\3\u015f\1\0\1\u015f\1\u0162\14\0\4\u015f\1\u0161\1\u0162"+ - "\13\u015f\1\u0162\5\u015f\1\0\1\u015f\1\u0162\3\u015f\4\0"+ - "\7\u015f\1\u0163\2\u015f\1\0\3\u0163\1\u015f\3\u0163\1\u015f"+ - "\10\0\6\u015f\1\0\2\u015f\1\u0161\1\u015f\2\u0164\1\u015f"+ - "\1\u0164\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u015f"+ - "\1\u0162\1\0\1\u0163\12\0\4\u015f\1\u0161\1\u0162\13\u015f"+ - "\1\u0162\5\u015f\1\0\1\u015f\1\u0162\3\u015f\4\0\7\u015f"+ - "\1\u0164\2\u015f\1\0\3\u0164\1\u015f\3\u0164\1\u015f\10\0"+ - "\6\u015f\1\0\1\u015f\1\u0308\1\u0161\1\u015f\1\u0164\1\u0165"+ - "\1\u015f\1\u0165\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0"+ - "\1\u015f\1\u0162\1\0\1\u0163\12\0\4\u015f\1\u0161\1\u0162"+ - "\1\u015f\1\u0308\11\u015f\1\u0162\5\u015f\1\0\1\u015f\1\u0162"+ - "\3\u015f\4\0\7\u015f\1\u0165\2\u015f\1\0\3\u0165\1\u015f"+ - "\2\u0165\1\u0164\1\u015f\10\0\1\u015f\1\u0309\4\u015f\1\0"+ - "\2\u015f\1\u0309\1\u015f\4\u0309\1\u015f\1\0\1\u015f\1\0"+ - "\3\u015f\1\0\1\u015f\1\u0309\14\0\4\u015f\3\u0309\2\u015f"+ - "\2\u0309\6\u015f\1\u0309\5\u015f\1\0\1\u015f\2\u0309\2\u015f"+ - "\4\0\7\u015f\1\u0309\2\u015f\1\0\3\u0309\1\u015f\3\u0309"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u030a"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u030b"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\1\141\1\u030c\1\141\1\u030d\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u030e\5\141\1\u030f\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0310\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0311\14\141\1\u0169\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0312\2\141\1\u0313\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u0314\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0315\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0316\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0317\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0318\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0319\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u031a\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u031b\17\141\1\u031c\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u031d\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u031e\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u031f\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0320\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0169\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0321\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0322\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0323\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u0324\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0325\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0326\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0327\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0328\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0329\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u032a\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u032b\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u032c\5\141\1\u0317\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u032d\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u032e\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u032f\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0330\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0331\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0169\7\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0332\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0333\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0334\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u0335\1\141\1\u0336"+ - "\1\141\1\u0337\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0338\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0339"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u033a\15\141"+ - "\1\u033b\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u033c\6\141\1\u033d\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0216\6\141\1\u033e\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\3\141\1\u0169\1\132\4\0"+ - "\12\141\1\0\7\141\100\0\1\u033f\52\0\1\u0340\7\0"+ - "\1\u0340\1\0\4\u0340\11\0\1\u0340\20\0\3\u0340\2\0"+ - "\2\u0340\6\0\1\u0340\7\0\2\u0340\15\0\1\u0340\3\0"+ - "\3\u0340\1\0\3\u0340\12\0\1\u0341\7\0\1\u0341\1\0"+ - "\4\u0341\11\0\1\u0341\20\0\3\u0341\2\0\2\u0341\6\0"+ - "\1\u0341\7\0\2\u0341\15\0\1\u0341\3\0\3\u0341\1\0"+ - "\3\u0341\100\0\1\u0342\51\0\1\u0343\54\0\1\u0343\137\0"+ - "\1\u0344\153\0\1\u0345\120\0\1\u0346\155\0\1\u0347\54\0"+ - "\6\u01a3\1\u01a4\4\u01a3\2\0\1\u01a3\3\0\1\u01a3\5\0"+ - "\2\u01a3\14\0\27\u01a3\1\0\4\u01a3\5\0\7\u01a3\1\0"+ - "\2\u01a3\4\0\1\u01a3\3\0\17\u01a3\1\u01a4\121\u01a3\65\0"+ - "\1\u0348\153\0\1\u0349\120\0\1\u034a\155\0\1\u034b\123\0"+ - "\1\u034c\4\0\1\u034d\144\0\1\u034e\1\u034f\124\0\1\u0350"+ - "\3\0\1\u0351\11\0\1\u0352\137\0\1\u0353\1\u0354\4\0"+ - "\1\u0355\121\0\1\u0356\150\0\1\u0357\7\0\1\u0358\1\u0359"+ - "\113\0\1\u035a\114\0\1\u035b\32\0\1\u035c\1\0\1\u035d"+ - "\1\u035e\126\0\1\u035f\3\0\1\u0360\110\0\1\u0361\23\0"+ - "\1\u0362\1\0\1\u0363\1\0\1\u0364\152\0\1\u0365\130\0"+ - "\1\u0366\1\u0367\6\0\1\u0368\131\0\1\u0369\137\0\1\u036a"+ - "\132\0\1\u036b\144\0\1\u036c\110\0\1\u036d\26\0\1\u036e"+ - "\2\0\1\u036f\136\0\1\u0370\1\0\1\u0371\65\0\1\u0372"+ - "\54\0\1\u0372\137\0\1\u0373\153\0\1\u0374\120\0\1\u0375"+ - "\155\0\1\u0376\102\0\1\u0377\101\0\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\1\u0378\3\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\1\141\1\u0379"+ - "\4\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\1\141\1\u037a\14\0\2\141\1\u037b\7\141"+ - "\1\u037c\1\u037d\13\141\1\0\1\141\1\u037e\1\141\1\u037f"+ - "\1\132\4\0\1\141\1\u0380\10\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0381\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0382\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0383\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u01ef\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0384\2\141"+ - "\1\u0385\6\141\1\u0386\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u0387\11\141\1\u0388\7\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0389\2\141\1\u038a\3\141\1\u038b"+ - "\1\u038c\11\141\1\u038d\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\u01cb\1\0\11\u01cb"+ - "\1\0\1\u01cb\1\0\1\132\1\u015c\1\141\1\0\2\u01cb"+ - "\14\0\27\u01cb\1\0\4\u01cb\1\132\4\0\12\u01cb\1\0"+ - "\7\u01cb\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u038e\13\141\1\u038f\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0390\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0391\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0392\1\141\1\u0393\1\u0394\1\u0395\1\u0396"+ - "\1\u0397\1\u0398\1\u0399\1\141\1\u039a\2\141\1\u039b\1\141"+ - "\1\u039c\1\141\1\u039d\1\u039e\2\141\1\u039f\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\3\141\1\u03a0\3\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u03a1"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u03a2"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03a3"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u03a4\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u03a5"+ - "\1\141\1\u03a6\1\141\1\u03a7\1\u03a8\2\141\1\u03a9\1\141"+ - "\1\u03aa\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u03ab\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u03ac\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\1\u03ad\6\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u03ae\10\141\1\u03af\1\141\1\u03b0\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u03b1\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u03b2\1\u03b3\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u03b4\7\141\1\u03b5\2\141"+ - "\1\u03b6\11\141\1\u0269\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u03b7\6\141\1\u03b8\12\141\1\u031a\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u03b9\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u03ba\2\141\1\u03bb\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u03bc\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03bd\10\141"+ - "\1\u03be\7\141\1\u03bf\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u03c0\16\141\1\u03c1\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u03c2\22\141\1\0\4\141"+ - "\1\132\4\0\7\141\1\u03c3\2\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u03c4\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u03c5\1\u03c6"+ - "\16\141\1\u03c7\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u03c8\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u03c9\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u03ca\22\141\1\u0169\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u03cb\5\141\1\u031a\15\141\1\u03cc\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03cd\7\141"+ - "\1\u03ce\1\u03cf\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u03d0\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u03d1\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u03d2\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\20\141\1\u03d3\6\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u03d4\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u03c1\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u03d5\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u03d6\1\u0315\3\141\1\u03d7\1\u03d8\1\u03d9\1\141"+ - "\1\u03da\1\u03db\1\u03dc\2\141\1\u03dd\2\141\1\u03de\3\141"+ - "\1\u03df\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03e0"+ - "\10\141\1\u03e1\2\141\1\u03e2\1\141\1\u03e3\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0386\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u03e4\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u03e5\4\141\1\u03e6"+ - "\7\141\1\u03e7\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u03e8\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u03e9\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u03ea\1\u03eb\1\141\1\u03ec\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u03ed\1\141\1\u03ee\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u03ef\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u03f0\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u03f1\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0330\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03f2\3\141"+ - "\1\u03f3\12\141\1\u03f4\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u0269\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0331\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u03f5\1\141\1\u03f6\1\141\1\u03f7\15\141\1\u03f8"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u03f9"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03fa"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03fb"+ - "\1\u03fc\2\141\1\u03fd\4\141\1\u03fe\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0392\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u03ff\1\u0262\3\141\1\u021c"+ - "\5\141\1\u0400\3\141\1\u0401\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0402\3\141\1\u0403\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0404\13\141\1\u01fa\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0405\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0406\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0407\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0408\1\141"+ - "\1\u0409\5\141\1\u040a\3\141\1\u040b\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u040c\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u040d\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u040e\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u040f\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0410\16\141\1\u0411\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0412\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0413\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0414\2\141"+ - "\1\u0415\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0416\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0417\3\141\1\u0418\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0419\4\141\1\u01ef\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u041a\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u041b\7\141\1\u041c\1\141\1\u041d\3\141"+ - "\1\u0386\6\141\1\u041e\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u041f\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0420\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0421\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0169\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0422\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0423\12\141\1\u0424\1\u0425\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0426\3\141\1\u0427"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0428"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0429"+ - "\3\141\1\u042a\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0408\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u042b\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u042c\3\141\1\u042d\1\u042e\1\u042f\1\141\1\u0430"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0431"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0432"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0433"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0434"+ - "\12\141\1\u03cf\12\141\1\0\4\141\1\132\4\0\11\141"+ - "\1\u0435\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0436\1\141\1\u0437\2\141\1\u0438\7\141"+ - "\1\u0439\2\141\1\u043a\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u03e4\3\141\1\u043b\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u043c\1\u043d\1\u043e\1\u0400"+ - "\2\141\1\u043f\1\u0440\3\141\1\u0441\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u0442\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0443\1\141\1\u0444\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0445\2\141"+ - "\1\u040a\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0446\6\141\1\u0447\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0448\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0449\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u044a\2\141\1\u044b\1\141\1\u044c\7\141"+ - "\1\u044d\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u044e"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u044f\6\141\1\u0450\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0327\4\141\1\u0451\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0452\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0414\1\u0453\2\141\1\u0454\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0455\6\141"+ - "\1\u0456\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u044f\3\141\1\u0457\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0458\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0459\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u045a\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u045b\4\141\1\u045c\1\141\1\u045d\1\141"+ - "\1\u045e\6\141\1\u045f\1\u0460\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0461\1\u0462\1\u0204\4\141\1\u0463"+ - "\3\141\1\u0464\1\u020c\1\141\1\u0465\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0466\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0467\1\141\1\u0468\3\141"+ - "\1\u0469\10\141\1\u046a\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u031a\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0176\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u032c"+ - "\4\141\1\u046b\1\u0317\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u046c\3\141\1\u046d\1\141\1\u046e\7\141\1\u046f"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0470"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0471\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0472\1\u0200"+ - "\1\141\1\u0473\1\u0474\1\141\1\u0475\4\141\1\u0476\2\141"+ - "\1\u0477\2\141\1\u03c1\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0478\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0479\6\141\1\u03cf\3\141\1\u047a\5\141"+ - "\1\u047b\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u047c\5\141\1\u047d\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u047e\6\141\1\u047f\10\141\1\u0480\1\u0481"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0482"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0483"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0484"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0485\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0486\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0487\1\141\1\u0488"+ - "\1\u0489\1\u048a\1\u0396\2\141\1\u048b\1\141\1\u0463\1\u048c"+ - "\2\141\1\u0464\1\u020c\1\141\1\u048d\1\u048e\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u048f\5\141\1\u0331"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0169"+ - "\5\141\1\u0490\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u0491\1\u0492\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0493\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\1\u0494\6\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0495\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0496\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0497\1\u0498\15\141\1\u0499\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u049a\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u049b\1\u049c\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u049d\2\141"+ - "\1\u049e\13\141\1\u049f\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u04a0\3\141\1\u04a1\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u04a2\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u04a3\1\141\1\u021c"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u04a4"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u04a5"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u04a6"+ - "\12\141\1\u0269\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u04a7\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u04a8\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u04a9"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\3\141\1\u04aa\3\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u04ab\1\141\1\u049f\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u04ac\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u04ad\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u04ae\1\141\1\u04af\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u04b0\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u04b1\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u04b2\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u04b3\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\1\u04b4\6\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u031a\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u04b5\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u04b6\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u04b7\1\u0169\3\141\1\u04b8\5\141"+ - "\1\u04b9\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u04ba\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u04bb\1\u04bc\1\u04bd\1\u04be\1\u04bf\1\u04c0\1\u04c1\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u04c2\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u04c3\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u04c4\5\141"+ - "\1\u04c5\1\u021c\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u021c\2\141\1\u024c\1\u04c6\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u04c7\2\141\1\u024c\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u04c8\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u04c9\1\u04ca"+ - "\7\141\1\u04cb\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u04cc\6\141\1\u04cd\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u04ce\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u04cf\3\141\1\u04d0\11\141\1\u04d1\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u04d2\11\141"+ - "\1\u04d3\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u04d4\1\u04d5\4\141\1\u04d6\1\141\1\u0400\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u040d\4\141\1\u04d7"+ - "\1\141\1\u04d8\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u04d9"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u04da\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u04db\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u04dc\6\141\1\u0269\2\141\1\u0411\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u04dd\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u04de\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u04df\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u04e0\3\141\1\u04e1\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u04e2\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u04e3\3\141\1\u04e4"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0414"+ - "\12\141\1\u04e5\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u04e6\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u04e7\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u04e8\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u04e9\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u04ea\3\141\1\u04eb\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u04ec\11\141\1\u04ed\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u04ee\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\1\141\1\u04ef\7\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\1\141\1\u04f0\7\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\u0289\1\0\11\u0289\1\0\1\u0289\1\0\1\132\1\u04f1"+ - "\1\u0289\1\0\2\u0289\14\0\27\u0289\1\0\4\u0289\1\132"+ - "\4\0\12\u0289\1\0\7\u0289\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u04f2\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u04f3\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u04f4\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u04f5\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u04f6\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u04f7\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u04f8\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u04f9\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u04fa\1\u04fb\16\141\1\u04fc\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0276\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\11\0\6\u0296\1\0"+ - "\11\u0296\1\0\1\u0296\5\0\2\u0296\14\0\27\u0296\1\0"+ - "\4\u0296\5\0\12\u0296\1\0\7\u0296\11\0\1\u04fd\54\0"+ - "\1\u04fd\63\0\6\u029a\1\0\13\u029a\5\0\2\u029a\1\0"+ - "\1\u029a\12\0\27\u029a\1\0\4\u029a\5\0\12\u029a\1\0"+ - "\7\u029a\63\0\1\u04fe\1\u04ff\2\0\1\u0500\135\0\1\u0501"+ - "\150\0\1\u0502\123\0\1\u0503\12\0\1\u0504\124\0\1\u0505"+ - "\15\0\1\u0506\134\0\1\u0507\126\0\1\u0508\5\0\1\u0509"+ - "\147\0\1\u050a\125\0\1\u050b\13\0\1\u050c\140\0\1\u050d"+ - "\136\0\1\u050e\124\0\1\u050f\140\0\1\u0510\73\0\6\u02a8"+ - "\1\0\13\u02a8\5\0\2\u02a8\1\0\1\u02a8\12\0\27\u02a8"+ - "\1\0\4\u02a8\5\0\12\u02a8\1\0\7\u02a8\72\0\1\u02a9"+ - "\125\0\1\u02a9\6\0\1\u02a9\131\0\1\u02a9\23\0\1\u02a9"+ - "\114\0\1\u02a9\141\0\1\u02a9\7\0\1\u02a9\12\0\1\u02a9"+ - "\114\0\1\u0511\72\0\2\u0105\1\u0512\3\u0105\1\0\10\u0105"+ - "\2\0\1\u0105\5\0\2\u0105\14\0\3\u0105\1\u0512\23\u0105"+ - "\1\0\4\u0105\5\0\12\u0105\1\0\7\u0105\11\0\6\u0105"+ - "\1\0\1\u0513\7\u0105\2\0\1\u0105\5\0\2\u0105\14\0"+ - "\23\u0105\1\u0513\3\u0105\1\0\4\u0105\5\0\12\u0105\1\0"+ - "\7\u0105\31\0\1\u0514\202\0\1\u0515\127\0\1\u02bb\131\0"+ - "\1\u0516\165\0\1\u0517\103\0\1\u0518\75\0\2\57\1\0"+ - "\1\57\1\0\2\57\2\0\6\57\1\0\26\57\1\0"+ - "\24\57\1\u0519\22\57\1\0\22\57\2\67\1\0\1\67"+ - "\1\0\2\67\2\0\3\67\1\u051a\2\67\1\0\26\67"+ - "\1\0\7\67\1\u051a\37\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\1\67\1\u02d9\4\67\1\0\26\67"+ - "\1\0\21\67\1\u02d9\1\67\1\114\16\67\1\114\4\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\3\67"+ - "\1\u051b\2\67\1\0\26\67\1\0\7\67\1\u051b\15\67"+ - "\1\u051c\21\67\1\0\1\u051c\23\67\1\0\1\67\1\0"+ - "\2\67\2\0\5\67\1\u051d\1\0\26\67\1\0\11\67"+ - "\1\u051d\35\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\33\67\1\u02d9\13\67"+ - "\1\0\5\67\1\u02d9\16\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u051e\23\67\1\0\13\67"+ - "\1\u051e\33\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\1\67\1\u02f9\24\67\1\0\16\67"+ - "\1\u02f9\30\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\4\67\1\114\1\67\1\0\26\67\1\0\31\67"+ - "\1\114\15\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\2\67\1\u051f\3\67\1\0\26\67\1\0\12\67"+ - "\1\u051f\34\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\114\23\67\1\0\13\67"+ - "\1\114\33\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\5\67\1\u02d9\1\0\26\67\1\0\11\67\1\u02d9"+ - "\35\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\33\67\1\u0520\13\67\1\0"+ - "\5\67\1\u0520\16\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\22\67\1\u0521\24\67\1\0"+ - "\2\67\1\u0521\21\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\10\67\1\u0522\36\67\1\0"+ - "\1\67\1\u0522\22\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\23\67\1\u0523\16\67\1\u0523"+ - "\4\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\1\u02d9\25\67\1\0\32\67\1\u02d9\14\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\15\67\1\u0524\23\67\1\u0524\5\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\12\67\1\u02ee\13\67\1\0\37\67\1\u02ee\7\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\22\67\1\u02f5\24\67\1\0\2\67"+ - "\1\u02f5\21\67\1\0\1\67\1\0\2\67\2\0\3\67"+ - "\1\u0525\2\67\1\0\26\67\1\0\7\67\1\u0525\37\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\15\67\1\u02ed\23\67\1\u02ed\5\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\5\67"+ - "\1\u0526\1\0\26\67\1\0\11\67\1\u0526\35\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\26\67\1\0\25\67\1\u02ee\21\67\1\0\1\u02ee\23\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\15\67\1\u014f\23\67\1\u014f\5\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\27\67\1\114\17\67\1\0\3\67\1\114\20\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67"+ - "\1\u0527\23\67\1\0\13\67\1\u0527\33\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67"+ - "\1\u0151\23\67\1\0\13\67\1\u0151\33\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67"+ - "\1\u02f9\23\67\1\0\13\67\1\u02f9\33\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67"+ - "\1\u014f\23\67\1\0\13\67\1\u014f\33\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\23\67\1\u0528\16\67\1\u0528\4\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\1\67\1\u0529\4\67"+ - "\1\0\26\67\1\0\21\67\1\u0529\25\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\5\67\1\u052a\1\0"+ - "\26\67\1\0\11\67\1\u052a\35\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\2\67\1\u052b"+ - "\23\67\1\0\13\67\1\u052b\33\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0"+ - "\25\67\1\u052c\21\67\1\0\1\u052c\23\67\1\0\1\67"+ - "\1\0\2\67\2\0\6\67\1\0\1\114\25\67\1\0"+ - "\32\67\1\114\14\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\1\67\1\u052d\24\67\1\0"+ - "\16\67\1\u052d\30\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u052e"+ - "\23\67\1\u052e\5\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u052f"+ - "\23\67\1\u052f\5\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\2\67\1\u0151\23\67\1\0"+ - "\13\67\1\u0151\1\67\1\114\23\67\1\114\5\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\12\67\1\114\13\67\1\0\37\67\1\114\7\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\5\67\1\u0530"+ - "\1\0\26\67\1\0\11\67\1\u0530\35\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\27\67\1\114\5\67\1\u0531\11\67\1\0\3\67"+ - "\1\114\1\u0531\17\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\10\67\1\u0532\36\67\1\0"+ - "\1\67\1\u0532\22\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\1\67\1\u0533\24\67\1\0\16\67\1\u0533"+ - "\30\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\12\67\1\u0534\13\67\1\0\37\67\1\u0534"+ - "\7\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\10\67\1\114\36\67\1\0"+ - "\1\67\1\114\22\67\1\0\1\67\1\0\2\67\2\0"+ - "\5\67\1\114\1\0\26\67\1\0\11\67\1\114\35\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\21\67\1\u02c8\4\67\1\0\30\67\1\u02c8\16\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\25\67\1\u0535\21\67\1\0\1\u0535"+ - "\23\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u0536"+ - "\2\67\1\0\26\67\1\0\7\67\1\u0536\37\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\26\67\1\0\15\67\1\114\23\67\1\114\5\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\1\67\1\u0537\24\67\1\0\16\67\1\u0537\30\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u0131"+ - "\2\67\1\0\26\67\1\0\7\67\1\u0131\37\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u0538"+ - "\3\67\1\0\26\67\1\0\12\67\1\u0538\34\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\1\67\1\u010f"+ - "\4\67\1\0\26\67\1\0\21\67\1\u010f\25\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\26\67\1\0\10\67\1\u0539\36\67\1\0\1\67\1\u0539"+ - "\22\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u053a"+ - "\3\67\1\0\26\67\1\0\12\67\1\u053a\34\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\21\67\1\u053b\4\67\1\0\30\67\1\u053b\16\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u052a"+ - "\2\67\1\0\26\67\1\0\7\67\1\u052a\12\67\1\u0521"+ - "\24\67\1\0\2\67\1\u0521\21\67\1\0\1\67\1\0"+ - "\2\67\2\0\4\67\1\u02d0\1\67\1\0\26\67\1\0"+ - "\31\67\1\u02d0\15\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\22\67\1\u053c"+ - "\24\67\1\0\2\67\1\u053c\21\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\2\67\1\u0131\23\67\1\0"+ - "\13\67\1\u0131\33\67\1\0\22\67\73\0\1\u053d\57\0"+ - "\1\u053e\55\0\1\u053e\143\0\1\u053f\123\0\2\u0302\11\0"+ - "\1\u0302\57\0\1\u0540\130\0\1\132\10\0\1\132\1\u0541"+ - "\4\132\1\0\2\132\1\u0541\1\132\4\u0541\1\132\1\0"+ - "\1\132\1\0\3\132\1\0\1\132\1\u0541\14\0\4\132"+ - "\3\u0541\2\132\2\u0541\6\132\1\u0541\5\132\1\0\1\132"+ - "\2\u0541\2\132\4\0\7\132\1\u0541\2\132\1\0\3\u0541"+ - "\1\132\3\u0541\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0542\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\u015f\10\0\6\u015f\1\0\4\u015f\2\u0306\1\u015f"+ - "\1\u0306\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u015f"+ - "\1\u0162\14\0\5\u015f\1\u0162\13\u015f\1\u0162\5\u015f\1\0"+ - "\1\u015f\1\u0162\3\u015f\4\0\7\u015f\1\u0306\2\u015f\1\0"+ - "\3\u0306\1\u015f\3\u0306\24\0\2\u0306\1\0\1\u0306\76\0"+ - "\1\u0306\3\0\3\u0306\1\0\3\u0306\1\u015f\10\0\1\u015f"+ - "\1\u0309\4\u015f\1\0\1\u015f\1\u0308\1\u0309\1\u015f\4\u0309"+ - "\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u015f\1\u0309"+ - "\14\0\4\u015f\3\u0309\1\u0308\1\u015f\2\u0309\6\u015f\1\u0309"+ - "\5\u015f\1\0\1\u015f\2\u0309\2\u015f\4\0\7\u015f\1\u0309"+ - "\2\u015f\1\0\3\u0309\1\u015f\3\u0309\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0172\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0543\6\141\1\u0544\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0545\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0546\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0547\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0548\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0549\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u054a\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0169\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u054b\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u054c\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u054d\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u054e\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0169\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u01ea\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0169\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0269\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u054f\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0544\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0550\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0551\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0310\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0552\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0553\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u0554\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u017a\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0555\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0552\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u032c\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0556\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0557\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0558\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0554\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0333\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0312\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0554\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0559\5\141\1\u0426\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0169\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0169\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u055a\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u0169\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0317\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u055b\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u055c\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u055d\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u055e\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0555\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u055f\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0560\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0561\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u0562\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0563\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\73\0\1\u0564\57\0\1\u0565\7\0"+ - "\1\u0565\1\0\4\u0565\11\0\1\u0565\20\0\3\u0565\2\0"+ - "\2\u0565\6\0\1\u0565\7\0\2\u0565\15\0\1\u0565\3\0"+ - "\3\u0565\1\0\3\u0565\12\0\1\u0566\7\0\1\u0566\1\0"+ - "\4\u0566\11\0\1\u0566\20\0\3\u0566\2\0\2\u0566\6\0"+ - "\1\u0566\7\0\2\u0566\15\0\1\u0566\3\0\3\u0566\1\0"+ - "\3\u0566\73\0\1\u0567\57\0\1\u0568\55\0\1\u0568\132\0"+ - "\1\u0345\131\0\1\u0569\165\0\1\u056a\103\0\1\u056b\157\0"+ - "\1\u0349\131\0\1\u056c\165\0\1\u056d\103\0\1\u056e\127\0"+ - "\1\u056f\164\0\1\u0570\154\0\1\u0571\134\0\1\u0572\3\0"+ - "\1\u0573\151\0\1\u0574\114\0\1\u0575\1\u0576\157\0\1\u0577"+ - "\117\0\1\u0578\2\0\1\u0579\156\0\1\u057a\141\0\1\u057b"+ - "\120\0\1\u057c\3\0\1\u057d\17\0\1\u057e\66\0\1\u057f"+ - "\170\0\1\u0580\136\0\1\u0581\3\0\1\u0582\13\0\1\u0583"+ - "\121\0\1\u0584\3\0\1\u0364\133\0\1\u0585\10\0\1\u0586"+ - "\125\0\1\u0587\150\0\1\u0588\142\0\1\u0589\140\0\1\u058a"+ - "\1\0\1\u058b\140\0\1\u058c\125\0\1\u058d\153\0\1\u058e"+ - "\132\0\1\u058f\136\0\1\u0590\137\0\1\u0591\144\0\1\u0592"+ - "\137\0\1\u0593\146\0\1\u0594\5\0\1\u0595\134\0\1\u0596"+ - "\123\0\1\u0597\153\0\1\u0598\131\0\1\u0599\2\0\1\u059a"+ - "\11\0\1\u059b\127\0\1\u059c\127\0\1\u059d\15\0\1\u059e"+ - "\125\0\1\u059f\140\0\1\u05a0\140\0\1\u05a1\71\0\1\u05a2"+ - "\55\0\1\u05a2\132\0\1\u0374\131\0\1\u05a3\165\0\1\u05a4"+ - "\103\0\1\u05a5\75\0\1\132\10\0\6\141\1\0\2\141"+ - "\1\u0549\6\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\1\141"+ - "\1\u05a6\7\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\3\141\1\u05a7\2\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u05a8\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0262\7\141\1\u05a9\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u05aa\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\3\141"+ - "\1\u05ab\2\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\1\u05ac"+ - "\3\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\2\141\1\u05ad"+ - "\1\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\2\141\1\u05ae\6\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0400\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\6\141\1\u05af\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u05b0\14\141\1\u05b1\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u05b2\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u05b3"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0443"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u044f"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u05b4\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u05b5\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u05b6\1\u05b7"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u05b8\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u05b9\15\141\1\u05ba"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u05bb"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05ba"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u05bc"+ - "\6\141\1\u05bd\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u05be\6\141\1\u05bf\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0269\1\141\1\u05c0\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u05c1\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u05c2\2\141\1\u05c3\1\u0395"+ - "\1\u05c4\1\u05c5\1\u05c6\1\u05c7\1\u05c8\1\u05c9\1\141\1\u05ca"+ - "\1\141\1\u05cb\1\u05cc\1\141\1\u05cd\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u0269\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u05ce\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u05cf\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\25\141\1\u05d0\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u03c6\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u05d1\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u05d2\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u05d3\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0426\1\141\1\u05d4\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u05d5\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u041e\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u05d6\11\141\1\u05d7\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u05d8\15\141\1\u044f"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u05d1"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u031a"+ - "\13\141\1\u039b\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u05d9\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u05da\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u05db\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u05dc\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u05dd\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u05de"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0269\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u05df\17\141\1\u0174\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u05e0\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0269\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0548\1\141\1\u05e1\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u05e2\3\141"+ - "\1\u05e3\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u05e4\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u05e5\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u05e6\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u05e7\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u05e8\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u05e9\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u05ea\4\141\1\u05eb\2\141\1\u05ec\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u05ed\3\141\1\u05ee\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05ef\6\141"+ - "\1\u05f0\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0269\4\141\1\u0269\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u05f1\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u05f2\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u05f3\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u05f4"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u05f5"+ - "\2\141\1\u05f6\1\u05f7\2\141\1\u05f8\1\u05f9\1\141\1\u05fa"+ - "\1\u05fb\1\141\1\u05fc\1\u05fd\2\141\1\u05fe\1\u05ff\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0600\3\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0601\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0602\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0603\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0604\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0605\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0606\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u05d8\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u0607\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u03c8\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\26\141\1\u0608\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0609\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u03d4\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u060a\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u0396\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0549\7\141\1\u060b\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0269\11\141\1\u060c\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u060d\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u060e\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u060f\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0610\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0269\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0611\7\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0612\11\141"+ - "\1\u018c\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u03ee\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0613\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0269\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0614"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0615"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0616"+ - "\1\u0617\10\141\1\u0618\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0619\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u061a\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u061b\1\141\1\u044f\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u061c\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u061d\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u061e\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u061f\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0620\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0621\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0622\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u03d4"+ - "\5\141\1\u0269\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0623\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\1\u0624\6\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0392\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0625\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0626\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0627\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0628\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0629\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u062a\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u062b\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u03d4\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u062c\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u062d\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u062e\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u062f\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0630\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u0631\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0632\4\141\1\u0633\2\141\1\u0634"+ - "\6\141\1\u0635\1\141\1\u0636\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0637\2\141\1\u0638\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0639\1\u063a\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u063b\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u063c\5\141"+ - "\1\u063d\6\141\1\u0386\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u063e\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u063f\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0640\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0641\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0642\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0331\12\141\1\u0269\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0643\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u0269\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0644\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0645\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0646\1\141\1\u0392\5\141\1\u0647\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0648\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0406\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u03ee\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0649\3\141\1\u0400\3\141\1\u05d8"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u044f"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0400"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u064a"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u064b"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u064c"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u03ec\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u064d\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u064e\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u064f\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u04f9\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u05d9\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0650\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0651\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u04d6\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0652\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0653\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0654\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0655\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u04f9\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u03cf\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0656\3\141\1\u0657\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0658\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u031a\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u03cf\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0659\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u065a\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u065b\1\u065c\1\u065d"+ - "\1\141\1\u065e\1\141\1\u065f\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0660\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0661\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0662\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0169\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u0663\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0664\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0665\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0666\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0667\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0668\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0669\11\141\1\u0269\6\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\5\141\1\u066a\1\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u066b\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\20\141\1\u066c\6\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u066d\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u066e\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u066f\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0670\21\141\1\u0671\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0672\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0673\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0674\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0675\1\141\1\u0676\1\u0677\1\u0678"+ - "\1\u0679\1\141\1\u0411\1\u067a\1\141\1\u067b\1\141\1\u067c"+ - "\5\141\1\u067d\1\141\1\u0174\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u067e\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u067f\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\1\141\1\u0680"+ - "\4\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0681\1\141\1\u0682\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0683\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0684\1\0\1\u05d1\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0685\1\u0686\1\u0687\1\u0688"+ - "\1\141\1\u0689\1\u068a\1\u068b\1\u068c\1\u068d\1\u068e\1\141"+ - "\1\u0610\1\u068f\1\u0690\2\141\1\u0691\1\u0692\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0693\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0694\1\u0169\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0695\1\141\1\u0696"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0697"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0668"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u05d1"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0698"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0699\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u069a\4\141"+ - "\1\u01eb\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u069b\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u069c\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u069d\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u069e\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u069f\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u06a0\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\5\141"+ - "\1\u03c3\1\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\17\141\1\u06a1\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u06a2\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0269\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\20\141\1\u06a3\6\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u06a4"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u06a5\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u06a6\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u06a7\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u06a8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u06a9\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0398\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u06aa\4\141\1\u06ab\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u06ac\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u06ad\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u06ae\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\1\u06af\6\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u06b0\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u06b1\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u031a\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0392\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u0392\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u06b2\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u06b3\13\141\1\u0386\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u06b4\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u06b5\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u06b6\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u06b7\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u06b8\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u040d\6\141\1\u06b9\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0411\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06ba\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u06bb\3\141"+ - "\1\u06bc\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u06bd\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u06be\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\4\141\1\u06bf"+ - "\2\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u044f\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u06c0\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u06c1\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u06c2\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u06c3\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u06c4\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u06c5\3\141\1\u06c6\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u06c7\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u06c8\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u06c9\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u04a4\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u06ca\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u06cb\10\141\1\u06cc\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u05d1\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\17\141\1\u04f9\2\141\1\u0269"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06cd"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u06ce"+ - "\20\141\1\u0639\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u06cf\5\141\1\u06d0\3\141\1\u06d1\7\141\1\u06d2"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0269"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u06d3\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u06d4\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u0679\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u06d5\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u05d9\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u06d6\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u06d7\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u06d8\1\0\1\u06d9\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u06da\1\u06db\1\u06dc\1\u06dd"+ - "\1\u06de\1\u06df\1\u06e0\1\u06e1\1\u06e2\1\u06e3\1\u06e4\1\u06e5"+ - "\1\u06e6\1\u06e7\1\u06e8\1\u06e9\1\141\1\u06ea\1\u06eb\1\141"+ - "\1\u06ec\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u06ed\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u06ee"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06ba"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06ef"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0262"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06f0"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06f1"+ - "\1\141\1\u01fa\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0409\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u06f2\22\141\1\0\4\141\1\132\4\0\11\141"+ - "\1\u06f3\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u06ef\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u06f4\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0415\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u06f5\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u06f6\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u06f7\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u06f8\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u01ef\1\141\1\u06f9\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u06fa\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u05d8\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u06fb\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u06fc\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u06fd\1\141\1\u06fe"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0693"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06ff"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0700"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0701"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0702"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0703"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0704"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0705"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0706\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0707\1\u0708\1\141\1\u0709\1\141\1\u070a\1\141\1\u0393"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u03c6"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u070b\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u070c\1\u070d"+ - "\1\141\1\u070e\1\u070f\1\u0710\1\u0711\1\141\1\u0712\1\141"+ - "\1\u0713\1\u0714\1\u0715\1\141\1\u0716\1\u0717\1\141\1\u0718"+ - "\1\u0719\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u071a\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u044f\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u071b\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u071c\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u071d"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u071e\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u071f\1\141\1\u0720"+ - "\1\141\1\u0721\1\u0204\1\141\1\u0722\1\u0723\1\141\1\u0724"+ - "\1\u0725\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0726\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0727\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0728\2\141\1\u0729\1\u072a\1\u072b\1\141\1\u072c\1\u072d"+ - "\1\u072e\1\u072f\1\141\1\u0730\2\141\1\u0731\1\141\1\u0732"+ - "\1\u0733\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0734\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u0735\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0736"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0737"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0738"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0739"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u073a"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u073b"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u073c"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u073d\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u073e\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u03f3\11\141"+ - "\1\u073f\6\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0740\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0741"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0742\5\141"+ - "\1\u055b\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u0743\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0744\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u0745\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0746"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u05e2\3\141"+ - "\1\u0747\1\141\1\u0291\3\141\1\u0748\1\u0749\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\1\u074a\6\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u074b\1\141\1\u074c\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0681\7\141"+ - "\1\u074d\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u074e"+ - "\2\141\1\u074f\1\u0750\1\u0751\4\141\1\u0208\1\141\1\u0752"+ - "\1\141\1\u0464\2\141\1\u0753\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0754\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u024c\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0755\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0756\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0757"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\25\141\1\u0758\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0759\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u075a\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0687\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u075b\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u075c\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0269\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u075d\7\141\1\u055f\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u075e\5\141\1\u075f\6\141"+ - "\1\u0760\1\141\1\u0761\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0560\7\141\1\u0762\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u040b\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0763\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u0485\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0764\3\141\1\u0765\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0766\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0767\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0768\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0769\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u074e\1\u076a\1\u076b"+ - "\1\u076c\1\u076d\1\u076e\1\u076f\1\u0770\1\u0771\1\141\1\u0772"+ - "\1\u0773\1\u0774\1\u0775\1\u0776\2\141\1\u0777\1\u0778\1\141"+ - "\1\u06ec\1\141\1\u0779\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\u077a"+ - "\6\141\1\132\10\0\6\141\1\0\10\141\1\u077b\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u06ee\11\141\1\u077c\11\141\1\u06ec\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u077d\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u077e\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u077f\2\141\1\u0780\1\u0387\1\u0262\3\141"+ - "\1\u0408\1\u0781\1\u0393\6\141\1\u0782\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0783\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0784\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0785\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0414\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0786\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0787\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0788\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0789\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u078a\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u078b\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u078c\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u078d\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u078e\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u078f\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0790\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0791\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0792\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u047b\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0793\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0794\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\1\u0378\5\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\1\141\1\u0169\7\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\132"+ - "\1\0\11\132\1\0\1\u0795\1\0\3\132\1\0\2\132"+ - "\14\0\27\132\1\0\5\132\4\0\12\132\1\0\10\132"+ - "\10\0\6\141\1\0\10\141\1\u0796\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u0797\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u0798\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0799\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u079a\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u079b\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u079c\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0269\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u079d\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u079e\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u079f\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\16\0\1\u07a0\41\0\1\u07a0"+ - "\136\0\1\u07a1\145\0\1\u07a2\137\0\1\u07a3\137\0\1\u07a4"+ - "\153\0\1\u050c\144\0\1\u07a5\124\0\1\u07a6\135\0\1\u07a7"+ - "\147\0\1\u07a8\130\0\1\u07a9\152\0\1\u07aa\134\0\1\u07ab"+ - "\3\0\1\u07ac\130\0\1\u07ad\151\0\1\u07ae\125\0\1\u07af"+ - "\162\0\1\u07b0\123\0\1\u07b1\141\0\1\u0504\140\0\1\u07b2"+ - "\152\0\1\u07b3\51\0\3\u0105\1\u07b4\2\u0105\1\0\10\u0105"+ - "\2\0\1\u0105\5\0\2\u0105\14\0\1\u07b4\26\u0105\1\0"+ - "\4\u0105\5\0\12\u0105\1\0\7\u0105\11\0\6\u0105\1\0"+ - "\1\u0105\1\u07b5\6\u0105\2\0\1\u0105\5\0\2\u0105\14\0"+ - "\7\u0105\1\u07b5\17\u0105\1\0\4\u0105\5\0\12\u0105\1\0"+ - "\7\u0105\100\0\1\u07b6\50\0\1\u07b7\203\0\1\u0516\12\0"+ - "\1\u02bb\57\0\2\u07b8\1\0\7\u0518\1\0\10\u0518\2\u07b8"+ - "\1\u0518\1\0\1\u07b8\1\0\1\u0518\1\u07b8\2\u0518\2\u07b8"+ - "\1\0\2\u07b8\1\0\5\u07b8\1\0\27\u0518\1\0\4\u0518"+ - "\5\u07b8\12\u0518\1\0\7\u0518\2\57\1\0\1\57\1\0"+ - "\2\57\2\0\6\57\1\0\26\57\1\0\31\57\1\u07b9"+ - "\15\57\1\0\22\57\2\67\1\0\1\67\1\0\2\67"+ - "\2\0\4\67\1\u02ee\1\67\1\0\26\67\1\0\31\67"+ - "\1\u02ee\15\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\27\67\1\u02c8\17\67"+ - "\1\0\3\67\1\u02c8\20\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\23\67\1\u011e\16\67"+ - "\1\u011e\4\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\3\67\1\u052a\2\67\1\0\26\67\1\0\7\67"+ - "\1\u052a\37\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\1\67\1\u02ee\4\67\1\0\26\67\1\0\21\67"+ - "\1\u02ee\25\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\1\67\1\u02c8\4\67\1\0\26\67\1\0\21\67"+ - "\1\u02c8\25\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\15\67\1\u07ba\23\67"+ - "\1\u07ba\5\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\2\67\1\u07bb\3\67\1\0\26\67\1\0\12\67"+ - "\1\u07bb\34\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u07bc\23\67\1\0\13\67"+ - "\1\u07bc\1\67\1\u0527\23\67\1\u0527\5\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\21\67"+ - "\1\u07bd\4\67\1\0\30\67\1\u07bd\16\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\10\67\1\u02c8\36\67\1\0\1\67\1\u02c8\22\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\23\67\1\u07be\16\67\1\u07be\4\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\15\67\1\u07bf\23\67\1\u07bf\5\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\23\67\1\u014f\16\67\1\u014f\4\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\5\67\1\u07c0\1\0"+ - "\26\67\1\0\11\67\1\u07c0\35\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0"+ - "\27\67\1\u07c1\17\67\1\0\3\67\1\u07c1\20\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0"+ - "\25\67\1\u0137\21\67\1\0\1\u0137\23\67\1\0\1\67"+ - "\1\0\2\67\2\0\6\67\1\0\26\67\1\0\14\67"+ - "\1\u07c2\23\67\1\u07c2\6\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\6\67\1\0\12\67\1\u0527\13\67"+ - "\1\0\37\67\1\u0527\7\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\6\67\1\0\26\67\1\0\25\67"+ - "\1\u011e\21\67\1\0\1\u011e\23\67\1\0\1\67\1\0"+ - "\2\67\2\0\3\67\1\u07c3\2\67\1\0\26\67\1\0"+ - "\7\67\1\u07c3\37\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\5\67\1\u07c4\1\0\1\67\1\u07c5\24\67"+ - "\1\0\11\67\1\u07c4\4\67\1\u07c5\3\67\1\u07c6\24\67"+ - "\1\0\2\67\1\u07c6\21\67\1\0\1\67\1\0\2\67"+ - "\2\0\3\67\1\u07c7\2\67\1\0\26\67\1\0\7\67"+ - "\1\u07c7\37\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\12\67\1\u07c8\13\67\1\0\37\67"+ - "\1\u07c8\7\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u07c9\23\67\1\0\13\67"+ - "\1\u07c9\33\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\21\67\1\u07ca\4\67\1\0\30\67"+ - "\1\u07ca\16\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\2\67\1\u02c8\3\67\1\0\26\67\1\0\12\67"+ - "\1\u02c8\34\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\23\67\1\u07cb\16\67"+ - "\1\u07cb\4\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\1\67\1\u011b\4\67\1\0\26\67\1\0\21\67"+ - "\1\u011b\25\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u02ee\23\67\1\0\13\67"+ - "\1\u02ee\33\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u07cc\23\67\1\0\13\67"+ - "\1\u07cc\33\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\15\67\1\u07cd\23\67"+ - "\1\u07cd\5\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u0137\23\67\1\0\13\67"+ - "\1\u0137\33\67\1\0\22\67\100\0\1\u07ce\53\0\1\u07cf"+ - "\45\0\1\u07cf\157\0\1\u07d0\40\0\1\132\10\0\1\132"+ - "\1\u07d1\4\132\1\0\2\132\1\u07d1\1\132\4\u07d1\1\132"+ - "\1\0\1\132\1\0\3\132\1\0\1\132\1\u07d1\14\0"+ - "\4\132\3\u07d1\2\132\2\u07d1\6\132\1\u07d1\5\132\1\0"+ - "\1\132\2\u07d1\2\132\4\0\7\132\1\u07d1\2\132\1\0"+ - "\3\u07d1\1\132\3\u07d1\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u07d2\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u07d3\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0426\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0412\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\3\141\1\u0269\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u07d4\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u07d5\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u07d6\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\17\141\1\u07d7\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0632\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u07d8\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u07d9\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u07da\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u07db\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0554\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u07dc\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u07dd\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u07de\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141"+ - "\1\u0169\6\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u07df\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u07e0"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0317"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u07e1\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0317\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u07e2\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u032b\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u055c\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u07e3\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u07e4\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u07e5\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u018f\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\100\0\1\u07e6"+ - "\140\0\1\u07e7\53\0\1\u07e8\45\0\1\u07e8\67\0\1\u07e9"+ - "\203\0\1\u0569\12\0\1\u0345\57\0\2\u07ea\1\0\7\u056b"+ - "\1\0\10\u056b\2\u07ea\1\u056b\1\0\1\u07ea\1\0\1\u056b"+ - "\1\u07ea\2\u056b\2\u07ea\1\0\2\u07ea\1\0\5\u07ea\1\0"+ - "\27\u056b\1\0\4\u056b\5\u07ea\12\u056b\1\0\7\u056b\10\0"+ - "\1\u07eb\203\0\1\u056c\12\0\1\u0349\57\0\2\u07ec\1\0"+ - "\7\u056e\1\0\10\u056e\2\u07ec\1\u056e\1\0\1\u07ec\1\0"+ - "\1\u056e\1\u07ec\2\u056e\2\u07ec\1\0\2\u07ec\1\0\5\u07ec"+ - "\1\0\27\u056e\1\0\4\u056e\5\u07ec\12\u056e\1\0\7\u056e"+ - "\60\0\1\u07ed\152\0\1\u07ee\142\0\1\u07ef\124\0\1\u07f0"+ - "\142\0\1\u07f1\134\0\1\u07f2\3\0\1\u0578\145\0\1\u07f3"+ - "\144\0\1\u07f4\77\0\1\u07f5\174\0\1\u0590\146\0\1\u07f6"+ - "\140\0\1\u0590\126\0\1\u07f7\110\0\1\u07f8\205\0\1\u07f9"+ - "\73\0\1\u07fa\165\0\1\u0590\153\0\1\u07fb\130\0\1\u07fc"+ - "\135\0\1\u07fd\155\0\1\u07fe\126\0\1\u0578\151\0\1\u07ff"+ - "\124\0\1\u0800\145\0\1\u0578\134\0\1\u0801\142\0\1\u0802"+ - "\140\0\1\u0803\154\0\1\u0590\141\0\1\u0578\120\0\1\u0804"+ - "\151\0\1\u0364\130\0\1\u0805\141\0\1\u0579\144\0\1\u0806"+ - "\141\0\1\u0807\140\0\1\u0808\153\0\1\u0809\126\0\1\u080a"+ - "\133\0\1\u080b\155\0\1\u0590\125\0\1\u080c\144\0\1\u0590"+ - "\131\0\1\u080d\144\0\1\u0805\155\0\1\u080e\116\0\1\u080f"+ - "\17\0\1\u0810\124\0\1\u057f\142\0\1\u0811\130\0\1\u0812"+ - "\75\0\1\u0813\45\0\1\u0813\67\0\1\u0814\203\0\1\u05a3"+ - "\12\0\1\u0374\57\0\2\u0815\1\0\7\u05a5\1\0\10\u05a5"+ - "\2\u0815\1\u05a5\1\0\1\u0815\1\0\1\u05a5\1\u0815\2\u05a5"+ - "\2\u0815\1\0\2\u0815\1\0\5\u0815\1\0\27\u05a5\1\0"+ - "\4\u05a5\5\u0815"; - - private static final String ZZ_TRANS_PACKED_1 = - "\12\u05a5\1\0\7\u05a5\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\2\141\1\u0816\1\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\2\141\1\u0817\3\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0818\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0819\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u081a\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\1\141"+ - "\1\u081b\7\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\3\141\1\u081c\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\1\141\1\u081d\10\141"+ - "\1\0\7\141\1\132\10\0\5\141\1\u081e\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0383\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06f1"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06f1"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u081f"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0820\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u04c5\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0754\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0821\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0822\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0392"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0823"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0824"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0400"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0169"+ - "\1\u043e\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0825\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0826\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u07d3"+ - "\11\141\1\u0827\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0828\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0829\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u082a\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u082b\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u082c\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u082d\6\141\1\u082e\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u082f\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u05d2\15\141\1\u0830\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0831\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0832\7\141\1\u0833\3\141\1\u0834"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0835"+ - "\6\141\1\u0836\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0837\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0838\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u04f9\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0839\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u083a\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u05d8\15\141\1\u083b\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\25\141\1\u044f\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u083c\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u083d\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0269\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0400\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u083e\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u083f\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0840\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0841\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0842\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0269\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u03d4\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0843\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u0844\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0845\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0846\2\141\1\u0847\1\141\1\u060f\2\141\1\u0848\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0849\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u084a\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u084b\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0840\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u084c\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u084d\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u084e\15\141\1\u084f\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0830\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0850\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0687\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0679\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0851\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u03e4\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u05ea\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0852\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0853\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0854\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u0855\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0856\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0857\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0858\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0859\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u085a\4\141\1\u085b"+ - "\2\141\1\u085c\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u085d\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u085e\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u085f\10\141\1\u0860\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0861\5\141\1\u0862\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0863\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0864\1\141\1\u0865\15\141"+ - "\1\u0866\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0867\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0868\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0869\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u086a"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u086b\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u086c\2\141"+ - "\1\u086d\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u086e\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u086f\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0870"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0871\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0872\3\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0873\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03a8"+ - "\17\141\1\u0874\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u03d4\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0875\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u0876\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0877"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0878\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0480"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0879"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u087a"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u087b"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u044f"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0606"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u087c"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u087d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u087e"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0269"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u087f"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0880\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u0881\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u04f9\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0882\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u0396\1\141\1\u0883\3\141\1\u0884\5\141\1\u03c1"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0885"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0886"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0887"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0888"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0889"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u088a"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u088b"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u088c"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u088d\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u088e\2\141"+ - "\1\u04c5\2\141\1\u0208\3\141\1\u0464\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u01c6\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u088f\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u069a\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u038d\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0890\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0891\3\141\1\u0892\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u0169\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0893\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0894\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0895\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0896\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0632\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0897\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0898\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0899\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u089a\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u0169\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u089b\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\17\141\1\u0181\7\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u018f\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u089c\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u089d\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0749\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u089e\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u05d9\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\5\141\1\u0269"+ - "\1\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0827\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u089f\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u08a0\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u08a1\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u08a2\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u08a3\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u08a4"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u08a5\1\u0679\1\u0687\3\141\1\u0679\1\141\1\u08a6"+ - "\1\141\1\u0679\1\u06e5\2\141\1\u08a7\3\141\1\u08a8\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u060b\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u08a9\1\141"+ - "\1\u08aa\1\u08ab\1\u08ac\1\u08ad\1\u08ae\1\u08af\1\141\1\u08b0"+ - "\1\u08b1\1\u08b2\4\141\1\u0753\1\u08b3\3\141\1\u08b4\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u08b5\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u05b2\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u08b6\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u08b7\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u08b8\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u01fa\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\20\141\1\u08b9\6\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u08ba\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u08bb\1\141\1\u08bc\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u03d2\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u032c\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0269\1\141\1\u08bd"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08be"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u08bf"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u08c0\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08c1"+ - "\3\141\1\u08c2\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u0269\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\1\u0269\6\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u08c3\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u08c4\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u08c5\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u08c6\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u08c7\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u070e\10\141\1\u08c8\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u08c9\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u08ca\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0262\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u08cb\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0832\4\141\1\u08cc\5\141\1\u0318\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u08cd\5\141"+ - "\1\u08ce\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u08cf\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u08d0\3\141\1\u08d1\1\u08d2\1\u08d3\1\u08d4\5\141\1\u08d5"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08d6"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08d7"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u08d8\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08d9"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u08da"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u08db"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u08dc"+ - "\7\141\1\u041e\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u08dd\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\5\141\1\u0269"+ - "\3\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u0269\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\1\u08de\6\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u08df\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u08e0\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u08e1"+ - "\3\141\1\u08e2\2\141\1\u0465\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u08e3\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u08e4\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u08e5\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u01fa\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u08e6\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0894\2\141\1\u08e7\4\141\1\u08e8\6\141\1\u08e9"+ - "\2\141\1\u06b7\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u08ea\11\141\1\u08eb\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0269\12\141\1\u08ec\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u08ed\3\141\1\u06b5\5\141"+ - "\1\u08ee\7\141\1\u08ef\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u08f0\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u03c0\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u05d8\17\141\1\u04f9\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u05d1\4\141\1\u08f1\1\141"+ - "\1\u08f2\4\141\1\u05d8\1\u0262\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u08f3\3\141\1\u08f4\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u03c0\6\141\1\u08f5"+ - "\4\141\1\u08f6\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u08f7\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u0187\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u08f8\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u08f9\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u08fa\2\141\1\u08fb\4\141\1\u060f\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u08fc\1\u08fd\1\u08fe\1\141"+ - "\1\u08ff\1\u0900\1\u0901\1\u0902\2\141\1\u0903\1\141\1\u0904"+ - "\1\141\1\u046a\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0905\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0906\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u01ea\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0907\5\141\1\u0908\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0909\12\141\1\u090a\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u090b\7\141\1\u08cb\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u090c\3\141\1\u090d"+ - "\11\141\1\u090e\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u090f\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0910\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0911\7\141\1\u0912\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0913\6\141\1\u0914\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u044f\3\141\1\u0915\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0916\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0917\3\141\1\u0918"+ - "\11\141\1\u0919\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u091a\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u091b\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u091c\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u091d\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u091e\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u091f\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0920"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u060f"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0921"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0922"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0923"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u03c6"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0924"+ - "\2\141\1\u0925\4\141\1\u0926\5\141\1\u0927\1\u0928\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0929\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u092a\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u092b\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u0748\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u092c\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u092d\1\u092e\1\u092f"+ - "\1\u0930\1\u0931\1\u0932\1\u0933\1\u0934\1\141\1\u0935\1\u0936"+ - "\1\u0937\1\141\1\u0938\2\141\1\u0939\1\u093a\1\141\1\u093b"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u093c\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u0921\1\141\1\u0921"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u093d\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u093e\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u093f\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0940\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u04ce\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0941\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0942\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0943\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0944"+ - "\1\141\1\u0945\5\141\1\u0946\7\141\1\u0947\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0748\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0948\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0949\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0610\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\1\141\1\u094a"+ - "\5\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u0269\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u03c6\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u05d1\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u0269\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u094b\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0392\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u094c\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u094d\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u08e1\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u090a\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u094e\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u094f"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0950"+ - "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\1\u0269\6\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u06ee\1\141\1\u0951"+ - "\2\141\1\u0952\13\141\1\u0953\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0954\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0955\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0956\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0957\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0958\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0959\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u095a\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\20\141\1\u095b\6\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u095c\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\20\141\1\u095d\6\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u095e\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u095f\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0960\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u044f\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u07e0"+ - "\3\141\1\u090a\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0961\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0962\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0963\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0964\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0965\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0966\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0967\1\u045b\1\141\1\u0968\1\141\1\u0639\1\u0969\1\u096a"+ - "\1\u096b\1\141\1\u096c\1\u096d\1\u088f\1\u096e\1\u05d8\2\141"+ - "\1\u096f\1\u0970\2\141\1\u0971\1\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\3\141\1\u0972\3\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0973\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0974\1\u0975\1\141\1\u0976"+ - "\1\u0977\1\141\1\u0978\1\u0979\1\u097a\1\u097b\1\u097c\1\141"+ - "\1\u097d\1\u097e\1\u097f\2\141\1\u0980\1\u0981\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0982\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0983\1\u0984\11\141"+ - "\1\u0985\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u03c0\1\141\1\u0986\16\141\1\u0987\1\141\1\u0988\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0989\3\141\1\u05ce"+ - "\16\141\1\u01ea\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u098a\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u098b\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u098c\4\141\1\u06b5\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u098d\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u098e\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u098f\4\141\1\u0990\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0991\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0992\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0993\1\141\1\u0994\1\141\1\u0995"+ - "\10\141\1\u0996\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0910\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03c0"+ - "\1\u0945\11\141\1\u0997\1\141\1\u0392\7\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0998\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0999\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0915\11\141\1\u099a\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u099b\2\141"+ - "\1\u044f\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u099c"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0918"+ - "\1\141\1\u05d9\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u099d\1\u099e\1\141\1\u099f\7\141\1\u09a0\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09a1\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u09a2\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u09a3\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0392\10\141"+ - "\1\u09a4\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u063d\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u09a5\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u020c\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u08f6\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u09a6\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u09a7\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u09a8\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u09a9\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u09aa\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u09ab\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u09ac\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u09ad\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0393\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u09ae\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u04ae\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u09af\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u09b0"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u09b1\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u09b2\3\141\1\u09b3\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u09b4\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u09b5\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u09b6\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0945\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u09b7\3\141\1\u09b8\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u09b9\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u09ba\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u09bb\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u09bc\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u09bd\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u09be\4\141\1\u01d4\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u09bf\7\141\1\u09c0\5\141"+ - "\1\u0269\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u09c1\15\141\1\u09c2\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u09c3\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u09c4\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0408\1\141\1\u09c5\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u040d\5\141\1\u09c6\1\u09c7"+ - "\3\141\1\u0269\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u09c8\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u09c9\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u09ca\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u09cb\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u03a8\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u09cc\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u09cd\11\141\1\u09ce\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u09cf\11\141\1\u09d0\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u09d1\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u09d2\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u09d3\1\u09d4\1\u09d5\1\141\1\u09d6\1\141\1\u09a4"+ - "\1\u09d7\1\u09d8\1\u09d9\1\141\1\u0464\2\141\1\u03a8\1\u09da"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09db"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u023a"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u09dc"+ - "\10\141\1\u09dd\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u09de\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u09df\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u09e0"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u09e1"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u09e2"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09e3"+ - "\22\141\1\0\4\141\1\132\4\0\11\141\1\u09e4\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u09e5\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u09e6"+ - "\2\141\1\u09e7\1\u072a\1\u09e8\1\141\1\u09e9\1\u09ea\1\u09eb"+ - "\1\u09ec\1\141\1\u09ed\4\141\1\u09ee\1\u09ef\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u09f0\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u09f1\11\141\1\u09f2"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u09f3"+ - "\21\141\1\u09f4\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u09f5\1\u09f6\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u09f7\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u09f8\1\141\1\u09f9\1\141\1\u09fa\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u09fb\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u09fc\1\u09fd\6\141"+ - "\1\u09fe\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u09ff"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0a00\2\141\1\u0a01\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0a02\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0a03\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0a04\1\u0a01\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0a05\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0a06\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0a07\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u06ab\1\u0a08\10\141\1\u03c1\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0a09\3\141\1\u0a0a"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a0b"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0a0c"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0a0d\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0a0e\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0750\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0a0f\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0a10\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0a11\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0a12\1\u0461"+ - "\1\141\1\u0a13\2\141\1\u0a14\1\141\1\u0208\3\141\1\u0464"+ - "\1\u020c\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0a15\2\141\1\u0a16\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0a17\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0a18\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0a19\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0a1a\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0a1b\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0a1c\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0a1d\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u044f\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u06b7\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0a1e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0a1f"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0a20\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0a21\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0a22\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141"+ - "\1\u0a23\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a24"+ - "\3\141\1\u064e\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0a25\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0a26\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u044f\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u0a27\1\u0a28\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0a29\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0a2a\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u0a2b\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0a2c\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u0a2d\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u06b5\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0a2e\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0a2f\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a1d"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0a30\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0a31\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0a32\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0a33\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a34\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0a35\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0a36\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a37\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0a38\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0a39\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0a3a\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0a3b\5\141"+ - "\1\u0a3c\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0a3d\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u047b\1\u0a3e\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0a3f\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0a40\4\141\1\u0a41\3\141\1\u0a42\10\141\1\u0705"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a43\2\141"+ - "\1\u0a44\1\u0a45\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u0a46\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0a47\7\141\1\u0a48\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0a49\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0a4a\4\141\1\u0a4b\1\u0a4c\6\141"+ - "\1\u0a4d\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0a4e\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0a4f"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0754\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u06fe\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a26\4\141"+ - "\1\u03ce\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0a50"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0830"+ - "\5\141\1\u0a51\3\141\1\u09d0\3\141\1\u0386\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0a52\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\17\141\1\u0a53\7\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u03ce\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0a54\6\141\1\u0a55\1\u0a56\1\141\1\u0a57"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0a58"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0a59"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a5a\1\u0a5b"+ - "\1\u0a5c\1\u0a5d\1\u0a5e\1\u0a5f\1\u0a60\1\u0a61\1\u0a62\1\u0a63"+ - "\1\u0a64\1\u0a65\1\u0a66\1\141\1\u0a67\2\141\1\u0753\1\u0a68"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0a69"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0a6a"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a6b"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0a6c"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0174\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0a6d\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u0a6e\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0a6f\14\141\1\u0a70\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0a71\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u08bb\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0a72\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0a73\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0a74\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a75\3\141"+ - "\1\u0a76\2\141\1\u0a77\6\141\1\u0a78\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0a79\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0a7a\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\25\141\1\u0a7b\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0a7c\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0a7d\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u0a7e\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0a7f\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0a80\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\1\132\1\u0a81\4\132\1\0"+ - "\2\132\1\u0a81\1\132\4\u0a81\1\132\1\0\1\132\1\0"+ - "\3\132\1\0\1\132\1\u0a81\14\0\4\132\3\u0a81\2\132"+ - "\2\u0a81\6\132\1\u0a81\5\132\1\0\1\132\2\u0a81\2\132"+ - "\4\0\7\132\1\u0a81\2\132\1\0\3\u0a81\1\132\3\u0a81"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0461"+ - "\1\u0a82\5\141\1\u0208\3\141\1\u0464\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0a83\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0a84\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0a85\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u08b6\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0a86\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0a87"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0a88\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0a89"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0a8a\5\141\1\u0a8b\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\3\141\1\u0a8c\3\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u0a8d\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\20\0\1\u0a8e\60\0"+ - "\1\u0a8e\120\0\1\u0a8f\137\0\1\u07b0\143\0\1\u0a90\146\0"+ - "\1\u0a91\127\0\1\u0a92\147\0\1\u0a93\137\0\1\u07ab\104\0"+ - "\1\u0a94\164\0\1\u0a95\160\0\1\u07af\122\0\1\u0a96\151\0"+ - "\1\u07af\137\0\1\u0a97\101\0\1\u0a98\171\0\1\u0a99\157\0"+ - "\1\u0a96\115\0\1\u0a9a\156\0\1\u0a9b\55\0\4\u0105\1\u0a9c"+ - "\1\u0105\1\0\10\u0105\2\0\1\u0105\5\0\2\u0105\14\0"+ - "\22\u0105\1\u0a9c\4\u0105\1\0\4\u0105\5\0\12\u0105\1\0"+ - "\7\u0105\11\0\6\u0105\1\0\2\u0105\1\u0a9d\5\u0105\2\0"+ - "\1\u0105\5\0\2\u0105\14\0\4\u0105\1\u0a9d\22\u0105\1\0"+ - "\4\u0105\5\0\12\u0105\1\0\7\u0105\10\0\1\u0518\130\0"+ - "\2\67\1\0\1\67\1\0\2\67\2\0\1\114\5\67"+ - "\1\0\26\67\1\0\17\67\1\114\27\67\1\0\24\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67"+ - "\1\0\25\67\1\u0a9e\21\67\1\0\1\u0a9e\23\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0"+ - "\23\67\1\u02ee\16\67\1\u02ee\4\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\6\67\1\0\2\67\1\u0a9f"+ - "\23\67\1\0\13\67\1\u0a9f\33\67\1\0\24\67\1\0"+ - "\1\67\1\0\2\67\2\0\5\67\1\u0aa0\1\0\26\67"+ - "\1\0\11\67\1\u0aa0\35\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\2\67\1\u0aa1\3\67\1\0\26\67"+ - "\1\0\12\67\1\u0aa1\34\67\1\0\24\67\1\0\1\67"+ - "\1\0\2\67\2\0\1\u0aa2\5\67\1\0\26\67\1\0"+ - "\17\67\1\u0aa2\27\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\35\67\1\u0aa3"+ - "\11\67\1\0\4\67\1\u0aa3\17\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\25\67\1\u07bc"+ - "\21\67\1\0\1\u07bc\23\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\1\67\1\u07ba\24\67\1\0\16\67"+ - "\1\u07ba\30\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u0aa4\23\67\1\0\13\67"+ - "\1\u0aa4\33\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\3\67\1\u0146\2\67\1\0\26\67\1\0\7\67"+ - "\1\u0146\37\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\2\67\1\u0aa5\3\67\1\0\26\67\1\0\12\67"+ - "\1\u0aa5\34\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\1\67\1\u0aa6\4\67\1\0\26\67\1\0\21\67"+ - "\1\u0aa6\25\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\2\67\1\u02c8\23\67\1\0\13\67"+ - "\1\u02c8\33\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\1\u0537\5\67\1\0\26\67\1\0\17\67\1\u0537"+ - "\27\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\1\u02ed\25\67\1\0\32\67\1\u02ed\14\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\1\u07ba"+ - "\5\67\1\0\26\67\1\0\17\67\1\u07ba\27\67\1\0"+ - "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0"+ - "\26\67\1\0\10\67\1\u0aa7\36\67\1\0\1\67\1\u0aa7"+ - "\20\67\14\0\1\u0aa8\41\0\1\u0aa8\62\0\1\132\10\0"+ - "\1\132\1\u0aa9\4\132\1\0\2\132\1\u0aa9\1\132\4\u0aa9"+ - "\1\132\1\0\1\132\1\0\3\132\1\0\1\132\1\u0aa9"+ - "\14\0\4\132\3\u0aa9\2\132\2\u0aa9\6\132\1\u0aa9\5\132"+ - "\1\0\1\132\2\u0aa9\2\132\4\0\7\132\1\u0aa9\2\132"+ - "\1\0\3\u0aa9\1\132\3\u0aa9\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u03e9\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0aaa\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u0aab\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0aac\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0aad\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0637\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0312\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0aae\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0629\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0aaf\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u0169\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0ab0\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0ab1\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0ab2\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0426\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u0324\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u0ab3\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\3\141\1\u090a\2\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\1\141\1\u0ab4\2\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0317\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\14\0\1\u0ab5\41\0\1\u0ab5\72\0"+ - "\1\u056b\140\0\1\u056e\224\0\1\u0ab6\142\0\1\u0ab7\123\0"+ - "\1\u0364\143\0\1\u0362\135\0\1\u0590\151\0\1\u0590\130\0"+ - "\1\u0ab8\152\0\1\u0598\131\0\1\u0364\150\0\1\u0578\142\0"+ - "\1\u0ab9\122\0\1\u0aba\153\0\1\u0abb\122\0\1\u0abc\142\0"+ - "\1\u0590\141\0\1\u0abd\157\0\1\u07f5\121\0\1\u0abe\153\0"+ - "\1\u07f1\126\0\1\u0abf\137\0\1\u0ac0\145\0\1\u0578\144\0"+ - "\1\u0ac1\132\0\1\u0ac2\132\0\1\u059a\151\0\1\u0ac3\137\0"+ - "\1\u0ac4\132\0\1\u0ac5\141\0\1\u0ac6\143\0\1\u0ac7\142\0"+ - "\1\u0ac8\104\0\1\u0ac9\170\0\1\u0aca\142\0\1\u0acb\136\0"+ - "\1\u0acc\140\0\1\u0acd\134\0\1\u0ace\146\0\1\u0acf\70\0"+ - "\1\u0ad0\41\0\1\u0ad0\72\0\1\u05a5\130\0\1\132\10\0"+ - "\1\u0ad1\5\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0ad2\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0832\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0ad3\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0ad4\2\141\1\u0ad5\1\141\1\u0ad6"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\2\141\1\u0817\6\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\1\141\1\u0ad7\4\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\2\141\1\u0ad8\6\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\6\141\1\u0ad9\3\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09f1"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ada"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u08f6"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0adb"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0adc\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0add\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0ade\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0adf\1\141"+ - "\1\u0ae0\1\u0ae1\1\u0ae2\1\u0ae3\1\u0ae4\1\u0ae5\1\u0ae6\1\141"+ - "\1\u0ae7\1\u0ae8\3\141\1\u0a53\1\141\1\u0ae9\1\u0aea\2\141"+ - "\1\u0aeb\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\1\u077a\2\141\1\u0aec\3\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0aed\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0aee\1\u0aef\1\u0af0\1\u0af1\1\u0af2"+ - "\1\u0af3\1\u0af4\1\u0af5\1\u0af6\1\u0af7\1\u0af8\1\u0af9\1\u0afa"+ - "\1\u0464\2\141\1\u0afb\1\u0afc\3\141\1\u0afd\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\6\141\1\u0afe\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u03d4\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0aff\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0b00\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0b01\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0b02\2\141\1\u030c"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0b03"+ - "\1\141\1\u0b04\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u03d4\4\141\1\u0412\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0408\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0b05\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u0b06\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0afc\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0b07\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0b08\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0b09\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u031a\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0b0a\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0b0b\5\141\1\u031a\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\3\141\1\u0a3a\3\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0b0c\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0b0d\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0b0e\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0b0f\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0b10\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u08a5\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u06bb\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0b0e\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0b11\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0b12\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b13"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b14\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b15\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0b16\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b17\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0b18\6\141\1\u0b19\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0b1a\5\141\1\u0b1b\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0b1c\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u0b1d\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0b1e\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0b1f\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0b20\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0b21\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0b22\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0b23\7\141\1\u0b24\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0b25\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0b26\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u0b27\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0b28\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u0b29\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0920\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0b2a\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0b2b\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0b2c\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0b2d\1\141\1\u0b2e\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0b2f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0b30\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u0b31\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0b32\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0b33\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0b34\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0b35\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u0b36\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0b37\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0b38\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u06ce\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0b39\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0245\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0b3a\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0b3b\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0b3c\7\141\1\u0b33"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0b3d"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0b3e"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0b3f"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b40\1\141"+ - "\1\u0b41\1\u0b42\1\u0b43\1\u0b44\1\u0b45\1\u0b46\1\u0b47\1\141"+ - "\1\u0b48\1\141\1\u0b49\1\141\1\u0464\1\u0b4a\1\141\1\u0b4b"+ - "\1\u08b9\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b4c\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0b4d"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0b4e\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u05c1\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0b4f\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u0b50\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0b51\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0b52\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0b53\2\141\1\u0b54\1\u0b55\1\141\1\u0b56"+ - "\1\u0b57\1\u0b58\1\141\1\u0b59\1\u0b5a\3\141\1\u0b5b\1\141"+ - "\1\u0b5c\1\u0b5d\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0b5e\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0614\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0b5f\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0b60\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0b61\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b62"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b63\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b64\5\141\1\u09d0\13\141\1\u0779\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0b65\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0b66\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0b67\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u03c8"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0b68\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0b69\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0b6a\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0b6b\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0b6c\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0b6d\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0b6e\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u0b6f\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0b1d\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0b70\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u04ce\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u090a\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0b71"+ - "\2\141\1\u0b72\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0b73\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0b74\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u06ee"+ - "\11\141\1\u063d\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u074f\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0894"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0b75\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b76\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u0b77\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b78"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0b79"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0410"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0b7a"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b7b\1\141"+ - "\1\u0b7c\1\u0b7d\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0b7e\10\141\1\u0312\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0b7f\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0b80\1\u0b81\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0b82\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u08d8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b83"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0750\6\141\1\u0b84\6\141\1\u0b85\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u063d\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0993\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\17\141\1\u099b\7\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0b86\1\u099e\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u01eb\1\u0b87\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u01eb\2\141\1\u03ce"+ - "\1\141\1\u0b88\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\25\141\1\u0705\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u060f\6\141\1\u0b89\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0b8a\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0b8b\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0b8c\3\141\1\u0b8d\3\141\1\u0b8e\12\141"+ - "\1\u0b8f\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u040d\5\141\1\u0b90\1\u04d8\2\141\1\u0b91\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0b92\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u04c5\1\141\1\u0b93"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u044f\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u08bd"+ - "\10\141\1\u0392\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u06ce\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0b94"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u05b6"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0b95\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0262\1\141\1\u0b96\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u0174\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0464\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0b97\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0269\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u06b5\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u01fa\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0b98\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u060f\2\141\1\u060f\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u0b99\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u05d6\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0b9a\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0b9b\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0b9c\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\1\u0b9d\6\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u0b9e\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0b9f\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u04ec\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u065d\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0ba0\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0ba1\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u08cc\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u0971\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0ba2\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u0717\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0ba3\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0ba4\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0ba5\2\141\1\u0ba6\1\u0ba7\6\141\1\u0ba8\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ba9\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0baa\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u0bab\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0bac\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u0bad\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0bae\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0baf\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0bb0\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0bb1\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u03c0\1\141\1\u0bb2\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u05d1\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u0bb3\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0bb4\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0bb5\1\u0bb6\1\u0bb7"+ - "\1\u0bb8\1\u0bb9\1\u045c\1\u04c5\1\u0bba\1\u09a4\1\u0bbb\1\u0bbc"+ - "\1\u0bbd\4\141\1\u0bbe\1\u0bbf\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\6\141\1\u0bc0\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u06b9\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0bc1\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0bc2\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0bc3\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0bc4\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0bc5\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0bc6\11\141\1\u0bc7\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0bc8\4\141\1\u0866"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0bc9"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u05d8"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0bca\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u08cd\1\141\1\u0bcb\3\141\1\u08f6\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0bcc\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u03c0\4\141\1\u0bcd\10\141"+ - "\1\u0269\6\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u08ef\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u05d8\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u08f6\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0bce\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0bcf\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u04f9\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0bd0\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u05d1\4\141\1\u08f1\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0400\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0bd1\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u0bd2\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0bd3\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0bd4\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0bd5\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0bd6\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0bd7\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0bd8\21\141\1\u0bd9\1\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0bda\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0bdb\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0bdc\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0bdd\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0bde\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0bdf\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0be0\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0be1\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0be2\14\141\1\u0be3\7\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0be4\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u044f\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0be5\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0be6\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u0be7\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u06b3\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0be8\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u0be9\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u0bea\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0beb\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0a34\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0bec\5\141\1\u0971\6\141\1\u0bed\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0bee\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u05d8\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0bef\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u0b65\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\17\141\1\u04f9\7\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0bf0\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u08a6\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0bf1\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0bf2\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0bf3\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0bf4\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0bf5\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u03a8\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0bf6\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0bf7\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0bf8\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0bf9\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0bfa\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0bf9\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0bfa\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0bfb"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0bfc\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0b04"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0bfd"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0bfe\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u09c0"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0bff"+ - "\1\u0c00\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0c01\11\141\1\u0c02\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0c03\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0c04\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0c05\6\141\1\u0c06\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0c07\7\141\1\u0c08\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0c09\1\141"+ - "\1\u0c0a\5\141\1\u06b3\2\141\1\u0c0b\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0c0c\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0c0d\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0c0e\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0c0f\10\141\1\u0c10\5\141"+ - "\1\u0c11\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0c12\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0c13"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0c14\2\141\1\u0c15\6\141\1\u0c16\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0c17\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0c18\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u0c19\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0c1a\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0269\1\141\1\u0393\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0c1b\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0c1c\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0c1d\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0c1e\1\u081f\16\141\1\u0947"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c1f"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0269"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0c20"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0c21"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0c22"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0c23"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\2\141\1\u05af\4\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0200"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u08ea"+ - "\3\141\1\u03a8\1\141\1\u05d8\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u0c24\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0bc5\1\u0c25\2\141\1\u0c26\3\141\1\u0c27"+ - "\1\141\1\u0c28\1\u0c29\10\141\1\u06ec\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0c2a\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0c2b\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0c2c\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0c2d\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0c2e\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0c2f\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0c30\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0c31\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0c32"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u0c33\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u06ab\11\141\1\u03c1\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u08a5\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u063d\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0bc5\1\141\1\u0c34\1\u0c35"+ - "\2\141\1\u0c36\1\u0c37\1\u0c38\1\141\1\u0c39\1\141\1\u0a66"+ - "\4\141\1\u0c3a\2\141\1\u0c3b\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0c3c\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0c3d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0411\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u04f9\15\141\1\u0b89\2\141\1\u0c3e\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0c3f\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c40\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0c41\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u090a\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0c42\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0c43\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0c44\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u0c45\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u0679\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0c46\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0c47\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u08f6\2\141\1\u0392\4\141"+ - "\1\u0392\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0c48\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u06b2"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u041a"+ - "\1\141\1\u0c49\1\141\1\u0c4a\5\141\1\u0c4b\13\141\1\u0c4c"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u05d1\5\141"+ - "\1\u0c4d\6\141\1\u0614\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0c4e\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0c4f\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0c50\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0c51\1\u0c52\11\141\1\u0c53\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u05d8\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0c54\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u04f5\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0c55\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0c56\1\141\1\u0c57\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c58\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0c59\15\141"+ - "\1\u0c5a\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0c5b\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0c5c\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0c5d\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0c5e\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0c5f"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0c60\1\141\1\u0c61\6\141\1\u0bdd\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0c62\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0c63\1\141\1\u0c64\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0c65\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c66\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0c67\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0c68\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0c69\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c6a\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0c6b\1\141"+ - "\1\u0827\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0c6c\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08a5"+ - "\12\141\1\u05b7\6\141\1\u05b7\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u05d8\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0c6d\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0c6e\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0c6f\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0c70\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0c71\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0c72\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0606\1\141\1\u0c73\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0c74\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0c75\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u0c76\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\11\141\1\u03d4\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u06f4\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0c77\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0c78\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0c79\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0b91\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0c7a\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0c7b\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0916\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0b65\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0c7c\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0c7d\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0c7e\7\141\1\u0c7f\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0c80\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0c81\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u03a8\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0480\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u03e4\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u08bb\1\141\1\u0269\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0c82\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0872\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u081f\4\141\1\u0c83"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0610"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0aab"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0c84"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0c85"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0c86\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0c87\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0687\11\141\1\u0610"+ - "\7\141\1\u08db\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0c88\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0c89\14\141\1\u0c8a\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0c8b\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0c8c\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0c8d\5\141\1\u0c8e\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0c8f\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u0c90\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0c91\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u0c92\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0c93\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0c94\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u0c95\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0c96\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0c97\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u03a8\2\141\1\u0c98\1\141\1\u0c99"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u05b7"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0c9a"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0c9b"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0496\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c9c\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0c9d\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0c9e\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0c9f\5\141\1\u0ca0"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0ca1"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0ca2"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0a05"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0ca3"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\3\141\1\u0ca4\3\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0ca5"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0ca6"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0ca7"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0ca8"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u04d8"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0ca9\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0caa\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0cab\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0cac\21\141"+ - "\1\u0705\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0cad\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0cae\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u040d\6\141\1\u0caf\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0cb0\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0cb1\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0b20\1\u0a01\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0cb2\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u0cb3\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0cb4\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0cb5\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0cb6\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0cb7\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0386\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0cb8\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0cb9\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u0cba\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0cbb\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0cbc\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u09f1\11\141\1\u0cab\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0cbd\2\141\1\u0cbe\1\u0cbf\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0cc0\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0cc1\1\141\1\u0cc2"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0cc3\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u09fc\1\u040d"+ - "\6\141\1\u0cc4\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0cc5\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0cc6\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0cc7\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0cc8\3\141\1\u09d0\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0cc9\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0cca\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u03e6\7\141\1\u03e7\7\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0971\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0ccb\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0ccc\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0ccd\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0cce\4\141\1\u0ccf"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0cd0"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0cd1"+ - "\1\u0cd2\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u0cd3\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0cd4\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0cd5\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0cd6\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0cd7\5\141\1\u0cd8\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0cd9\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u0cda\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0cdb\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0cdc\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u0cdd\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u03ec\4\141\1\u0cde\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0cdf\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0ce0\1\u0ce1\1\u0ce2\1\u0ce3\1\u0ce4\1\u0ce5"+ - "\1\u0ce6\1\u0ce7\1\u0ce8\1\u0ce9\1\u0cea\4\141\1\u0ceb\1\u0cec"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08f6"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ced"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0cee\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u06b7\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0cef\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0cf0\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0cf1\1\141"+ - "\1\u0cf2\10\141\1\u0cf3\1\u0cf4\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0cf5\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0cf6\3\141\1\u0396\6\141\1\u063d\4\141"+ - "\1\u0cf7\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0cf8\2\141\1\u0cf9\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0cfa\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u03ff\6\141\1\u0cfb\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u0cfc\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0408\1\141\1\u0409\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0cfd\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0cfe\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0cff\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141"; - - private static final String ZZ_TRANS_PACKED_2 = - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d00"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d01"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d02\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0d03\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0d04"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0317"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0269"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d05"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u048b"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d06"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d07"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0d08"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d09\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d0a\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0d0b\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0d0c\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0d0d\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d0e\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u08b8\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0d0f\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0d10\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d11\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d12\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0d13\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u05d8\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d14"+ - "\1\u0269\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0d15\1\141\1\u0d16\4\141\1\u0d17\2\141\1\u0d18\12\141"+ - "\1\u0d19\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03d4"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0d1a"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d1b"+ - "\7\141\1\u0208\1\u0d1c\1\u0d1d\1\141\1\u0464\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u08f6\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0d1e\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0d1f\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0d20\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u0d21\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0d22\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0d23\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0749\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0d24\1\141\1\u0d25\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0480\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d26\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d27\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d28\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d29\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0d2a\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0d2b\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d2c\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d2d\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d2e\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0d2f\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d30\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0d31\1\0\1\u0d32\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d33\2\141"+ - "\1\u0d34\1\u0a6f\5\141\1\u0d35\3\141\1\u0464\1\u020c\7\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d36\4\141"+ - "\1\u0a3a\4\141\1\u0d37\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0d38\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0d39\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0d3a\15\141\1\u03ec\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0d3b\5\141\1\u0d3c\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0d3d\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0d3e\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0d3f\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0d40\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u04ec\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u06b4\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0d41\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0d42\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0d43\3\141\1\u0d44"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0d45"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d46"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0d47\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0d48\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d49\7\141"+ - "\1\u0d4a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0bff\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0d4b\11\141\1\u0c02\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0d4c\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0d4d\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0d4e\1\u0d4f\15\141\1\u0d50\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0d51\15\141\1\u0d52\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0d53\1\141\1\u0d54"+ - "\1\141\1\u0d55\3\141\1\u06b3\2\141\1\u0d56\2\141\1\u0a66"+ - "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d57"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0d58\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d59\6\141"+ - "\1\u0d5a\6\141\1\u0d5b\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0d5c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0d5d\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0d5e\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0d5f\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u03d2\5\141\1\u0b16\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0d60\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0d61\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0d62\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0d63\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0d64\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\25\141\1\u0d65\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u06b4\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0d66\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0d67\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0827"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d68\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d69\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d6a\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d6b\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0d6c\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0d6d\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0d6e\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0d6f\1\u0d70\2\141"+ - "\1\u0d71\1\u0d72\1\u0d73\1\u0c27\6\141\1\u0d74\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u08b8\7\141\1\u0d75"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0d76\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0d77\17\141"+ - "\1\u0d78\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0d70\1\141\1\u0ada\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\1\132\1\u0d79\4\132"+ - "\1\0\2\132\1\u0d79\1\132\4\u0d79\1\132\1\0\1\132"+ - "\1\0\3\132\1\0\1\132\1\u0d79\14\0\4\132\3\u0d79"+ - "\2\132\2\u0d79\6\132\1\u0d79\5\132\1\0\1\132\2\u0d79"+ - "\2\132\4\0\7\132\1\u0d79\2\132\1\0\3\u0d79\1\132"+ - "\3\u0d79\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0d7a\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0a55\14\141\1\u06ec\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u0d7b\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u05b6\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0d7c\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u05b0\2\141\1\u0d7d\11\141\1\u05b1\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d7e\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u075e\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d7f\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d80\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0d81\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d82\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0d83\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\21\0"+ - "\1\u0d84\43\0\1\u0d84\141\0\1\u0d85\146\0\1\u0d86\126\0"+ - "\1\u050c\157\0\1\u07af\124\0\1\u0d87\141\0\1\u07af\154\0"+ - "\1\u0d88\67\0\1\u0d89\205\0\1\u0d87\127\0\1\u0d8a\2\0"+ - "\1\u0d8b\3\0\1\u0d8c\125\0\1\u07af\137\0\1\u0d87\141\0"+ - "\1\u0d8d\70\0\5\u0105\1\u0d8e\1\0\10\u0105\2\0\1\u0105"+ - "\5\0\2\u0105\14\0\2\u0105\1\u0d8e\24\u0105\1\0\4\u0105"+ - "\5\0\12\u0105\1\0\7\u0105\2\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\12\67\1\u02c6\13\67\1\0"+ - "\37\67\1\u02c6\7\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\20\67\1\114\5\67\1\0"+ - "\34\67\1\114\12\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\2\67\1\u0d8f\23\67\1\0"+ - "\13\67\1\u0d8f\33\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\2\67\1\u02f2\23\67\1\0"+ - "\13\67\1\u02f2\33\67\1\0\24\67\1\0\1\67\1\0"+ - "\2\67\2\0\6\67\1\0\26\67\1\0\25\67\1\u0116"+ - "\21\67\1\0\1\u0116\23\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\12\67\1\u0d90\13\67\1\0\37\67"+ - "\1\u0d90\7\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\10\67\1\u0d91\36\67"+ - "\1\0\1\67\1\u0d91\22\67\1\0\1\67\1\0\2\67"+ - "\2\0\3\67\1\u014f\2\67\1\0\26\67\1\0\7\67"+ - "\1\u014f\37\67\1\0\24\67\1\0\1\67\1\0\2\67"+ - "\2\0\6\67\1\0\26\67\1\0\25\67\1\u02f9\21\67"+ - "\1\0\1\u02f9\23\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\2\67\1\u07ba\23\67\1\0\13\67\1\u07ba"+ - "\33\67\1\0\22\67\15\0\1\u0d92\62\0\1\u0d92\40\0"+ - "\1\132\10\0\1\132\1\141\4\132\1\0\2\132\1\141"+ - "\1\132\4\141\1\132\1\0\1\132\1\0\3\132\1\0"+ - "\1\132\1\141\14\0\4\132\3\141\2\132\2\141\6\132"+ - "\1\141\5\132\1\0\1\132\2\141\2\132\4\0\7\132"+ - "\1\141\2\132\1\0\3\141\1\132\3\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0d93\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0d94\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0314\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0d95\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0d96\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0426\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0d97\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0554\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0317\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0d98\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u082e\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\15\0\1\u0d99\62\0\1\u0d99"+ - "\121\0\1\u0d9a\57\0\44\u0ab7\1\u0590\74\u0ab7\61\0\1\u0d9b"+ - "\141\0\1\u0d9c\150\0\1\u0d9d\140\0\1\u0d9e\127\0\1\u0584"+ - "\151\0\1\u080a\126\0\1\u0578\152\0\1\u0abe\132\0\1\u0d9f"+ - "\142\0\1\u0364\133\0\1\u0da0\143\0\1\u0da1\153\0\1\u0da2"+ - "\122\0\1\u0da3\2\0\1\u0580\132\0\1\u0da4\147\0\1\u0590"+ - "\153\0\1\u0da5\125\0\1\u07fb\143\0\1\u0da6\130\0\1\u0364"+ - "\150\0\1\u0da7\131\0\1\u0da8\153\0\1\u07f2\124\0\1\u0811"+ - "\75\0\1\u0da9\62\0\1\u0da9\40\0\1\132\10\0\1\u0817"+ - "\5\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0169\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0daa\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u0dab\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u098d\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0dac\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\5\141\1\u0dad\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\1\u0dae\5\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\1\u0daf\11\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u09f3\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\3\141\1\u0392\3\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0db0\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u08a5\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0db1\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0db2\3\141\1\u0db3\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0db4\1\u0db5"+ - "\17\141\1\u0dab\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0db6\11\141\1\u0c02\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0db7\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0db8\1\141\1\u0db9\13\141\1\u0dba\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0945\3\141"+ - "\1\u0dbb\4\141\1\u0dbc\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0dbd\5\141\1\u0dbe\7\141\1\u0dbf\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0dc0\1\141\1\u0dc1"+ - "\1\141\1\u0dc2\14\141\1\u0269\1\141\1\u0269\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0dc3\11\141\1\u0dc4"+ - "\1\u0dc5\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u01fa"+ - "\5\141\1\u0dc6\12\141\1\u0dc7\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0dc8\1\141\1\u0dc9\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0dca\1\141\1\u0dcb"+ - "\3\141\1\u04ce\1\141\1\u0dcc\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u0614\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u088f\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0392\1\141\1\u0dcd\11\141\1\u0dce\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0dcf\5\141\1\u0dd0"+ - "\1\141\1\u0dd1\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0dd2\14\141\1\u0dd3\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0dd4\1\u0dd5\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0dd6\21\141\1\u0dd7\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0dd8\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0dd9\12\141\1\u0dda"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0ddb\5\141"+ - "\1\u0ddc\1\141\1\u0ddd\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0dde\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0ddf\1\141\1\u0de0\5\141\1\u0de1\3\141"+ - "\1\u0386\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0de2"+ - "\5\141\1\u0de3\7\141\1\u0de4\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0de5\3\141\1\u0de6\5\141\1\u0de7"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0de8"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0de9\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0dea\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0deb\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0830\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0dec\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u06ce\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0ded\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u063d\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0dee\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0def\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0df0\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0269\11\141\1\u0b0e"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0df1"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u047b"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0df2"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0df3"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0df4"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0df5"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0b0e"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0df6"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0df7"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u03c6"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0b0d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0841\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0df8\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0df9\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0dfa\1\u0dfb\1\u0dfc"+ - "\1\u0dfd\1\u0dfe\1\u0dff\1\141\1\u0e00\1\u0e01\1\u0e02\1\u0e03"+ - "\1\u0e04\2\141\1\u0e05\1\141\1\u0e06\1\u0e07\3\141\1\u0779"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0e08\6\141"+ - "\1\u0e09\2\141\1\u0e0a\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0e0b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0e0c\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0916\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0e0d\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0e0e\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0e0f\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0e10\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0617\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0e11"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0e12\2\141\1\u0e13\1\u0e14\6\141\1\u0e15"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e16"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u047b"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0e17"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03ec"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0e18"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e19"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e1a"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e1b"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e1c"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0e1d"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0e1e\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0dbd\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0e1f\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0e20\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0e21\10\141\1\u0e22"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0b2f"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0e23"+ - "\11\141\1\u0392\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0e23\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0e24\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0e25\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u0e26\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0e27\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0e28\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u0e29\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0e2a\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0e2b\1\141\1\u0e2c\1\u08ed\3\141\1\u0411\2\141\1\u0b89"+ - "\4\141\1\u06e9\2\141\1\u08ef\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0e2d\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\24\141\1\u0e2e\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u0e2f\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u0e30\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0e31\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u0e32\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0e33\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0e34\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0e35\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0e36\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0e37\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\24\141\1\u0e38\1\u0dd7\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0e39\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0e3a\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0e3b\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0e3c\11\141\1\u0e3d\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0e3e\3\141\1\u040d\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0e3f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0e40\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0e41\1\141\1\u0e42"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0627"+ - "\1\u0e43\4\141\1\u0e44\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0e45\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u0e46\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0921\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0e47\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0e48\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0e49\1\141\1\u0e4a\1\u0e4b\1\u0e4c\1\u0e4d\1\u076f"+ - "\1\u0e4e\1\u0e4f\1\141\1\u0e50\1\u0e51\1\u0e52\4\141\1\u0e53"+ - "\1\u0e54\3\141\1\u0779\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0e55\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0e56\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0e57\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0e58\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u0e59\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0e5a\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0e5b\1\141\1\u0e5c\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0e5d\6\141\1\u0e5e\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0e5f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0e60\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0e61\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0e62\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0e63\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0e64\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0e65\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0e66\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u0e67\1\u0610\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0e68\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0e69\3\141\1\u0bad"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e6a"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03ee"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0e6b"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0e6c"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0bf6"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0e6d\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e6e\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0e6f\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0e70\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0e71\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0e72\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0e73\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0e74\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0e75\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0e76\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0e77\3\141\1\u06ab\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0e78\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u05a8\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e79\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\1\u0e7a\6\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u08f6\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0e7b\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0747\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0e7c\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0e7d\6\141\1\u0e7e\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e7f\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0e80\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0e81\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0e82\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0e83\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0e84\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u048b\1\141\1\u0627\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0e85\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0e85\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0e86\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0614\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\17\141\1\u0e87\7\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u044f\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u0e88\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u0291\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u03d4\24\141\1\0\4\141\1\132\4\0\11\141"+ - "\1\u03d4\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0e89\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0e8a\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0e8b\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0200\17\141\1\u03c1\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u05d1\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0e8c\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0e8d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0e8e\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0e8f\1\141\1\u0e90\1\u0e91\7\141\1\u05cb\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0e92\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0e93\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0cd7\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0e94\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0e95\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0e96\1\u0e97\1\141\1\u0e98\1\141\1\u0e99\2\141"+ - "\1\u0e9a\1\141\1\u0e9b\4\141\1\u0e9c\1\u0e9d\1\u0e9e\1\u0e9f"+ - "\1\141\1\u0ea0\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0ea1\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0ea2"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0ea3\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0ea4\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0ea5\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0617"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ea6"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0ea7\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0ea8\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ea9\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0eaa\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0eab\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u05d2\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0eac\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0ead\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0eae\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0eaf\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0bad\6\141\1\u0eb0"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0eb1"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0eb2"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0eb3"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0667"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0eb4"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0eb5"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0eb6"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0eb7"+ - "\5\141\1\u0eb8\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0eb9\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0eba\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\141"+ - "\1\u0ebb\5\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0ebc\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0ebd\21\141\1\u0ebe\1\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0ebf\2\141\1\u0ec0\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0ec1\1\141\1\u0ec2\1\141"+ - "\1\u0ec3\7\141\1\u0386\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u040d\6\141\1\u0ec4\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0ec5\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0ec6\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0a26\7\141\1\u0ec7\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0ec8\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\6\141\1\u0ec9\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0eca\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0ecb\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0ecc\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0ecd\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u0ece\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u06ce\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u0ecf\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0ed0\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0449\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0ed1\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0ed2\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u08cd\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u0ed3\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0ed4\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0ed5\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0ed6\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0ed7\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u08f4\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u0ed8\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u0754\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0ed9\5\141\1\u0eda\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0edb\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0edc\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u03b6\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0edd\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0ede\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0edf\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0ee0\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0ee1\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0ee2\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0ee3\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0ee4\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0ee5\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u0ee6\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0be7\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u03a8\3\141\1\u0269\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0ee7\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0b78\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0ee8\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ee9\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0eea\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0afc\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0eeb\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0eec\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0821\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0eed\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0eee\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0eef\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ef0\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ef1\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0ef2\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u09d3\1\u0ef3\1\u0ef4"+ - "\1\u076f\1\141\1\u0ef5\1\141\1\u0ef6\1\141\1\u0ef7\4\141"+ - "\1\u0ef8\4\141\1\u0779\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0ef9\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0efa\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\26\141\1\u0779\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u0efb\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0efc\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0efd\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0efe\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0eff\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0461\4\141\1\u08a6\1\141\1\u0208\3\141\1\u0464\1\u020c"+ - "\1\141\1\u0753\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u08ab\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0f00"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0f01\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0f02\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141"+ - "\1\u0f03\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0f04\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0480\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u0f05\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0f06\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0f07\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u0f08\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u0f09\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0f0a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0f0b\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0f0c\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0f0d\7\141\1\u0f0e\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0f0f\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0f10\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\25\141\1\u0f11\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0f12\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0f13\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0f14\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u0f15\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0f16\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0f17\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0f18\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0f19\1\u0f1a\11\141\1\u0f1b\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0f1c\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0f1d\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0e17\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0f1e\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u05b7\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u0f1f\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0f20\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0f21\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\25\141\1\u03cc\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0f22\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u087a\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0f23\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0f24\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0f25\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0f26\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0f27\21\141\1\u0705\1\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0f28\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u040d\6\141\1\u0f29\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0f2a\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0f2b\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0f2c\1\141\1\u0f2d"+ - "\1\141\1\u0f2e\3\141\1\u0f2f\6\141\1\u0f30\1\u0f31\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f32\1\u0f33"+ - "\2\141\1\u0f34\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0adb"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0f35\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141"+ - "\1\u0f36\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0f37\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0f38\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f39"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0f3a\3\141"+ - "\1\u0750\15\141\1\u0f3b\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0f3c\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0f3d\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0f3e\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0b65\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0392\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0f3f\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0ddf\3\141\1\u03c6\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0f40\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0a26\11\141\1\u0dbd\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u05b7\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0d17\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u097d\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u05d9\5\141\1\u0f41"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f42"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0f43\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f44\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f45\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f46\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0bb4\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0f47\2\141"+ - "\1\u09a4\1\u0f48\13\141\1\u0779\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0f49\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u044f\1\141\1\u08b8\21\141\1\u0d07\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0f4a\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u0f4b\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u08b8\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0afe\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0f4c\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0f4d\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0afe\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u0f4e\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0f4f\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u0f50\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0f51\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0f52\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\17\141\1\u0f53\2\141\1\u03e7"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f54"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f55"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f56"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0f57"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0f58"+ - "\15\141\1\u0f59\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0f5a\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0f5b\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0f5c\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0f5d\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0f5e\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0f5f\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0f60\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u0eff\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0f61"+ - "\5\141\1\u0f62\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0b78\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u0f63\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0f64\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\3\141"+ - "\1\u0f65\3\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u0f66\4\141\1\u0f67\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0f68\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0f69\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u0f6a\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0f6b\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0f6c\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u0200\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0f6d\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0f6e\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0f6f\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0f70\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u06fe\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0f71\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0f72\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u0f73\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0f74\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0f75\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u0f76\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0f77\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0f78\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0f79\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0f7a\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0f7b\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u08f6\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u04b7\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u0f7c\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u08cb\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0ba0\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\17\141\1\u08f6\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0f7d\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u01c7\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u0485\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0f7e\20\141\1\u0f7f\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0f80\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0f81\3\141\1\u0f82\1\141\1\u0f83\1\u0f84"+ - "\1\u0f85\1\u0f86\1\141\1\u0f87\1\u0f88\3\141\1\u0f89\2\141"+ - "\1\u06ec\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u0f8a\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0f8b\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0f8c"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03f2\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0f8d\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0f8e\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0f8f\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0f90\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0f91\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0f92\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0f93\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0f94\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0f95\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0f96\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u05ba\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0f97\5\141\1\u0f98\6\141\1\u0e88"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0f99"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0f9a\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0f9b\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a05\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0f9c\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0f9d\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0f9e\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0f9f\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0fa0\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0fa1\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0393\1\u0fa2"+ - "\2\141\1\u0fa3\1\141\1\u0fa4\1\141\1\u0fa5\3\141\1\u0fa6"+ - "\3\141\1\u0fa7\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u0fa8\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0fa9\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u047b\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0faa\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0fab\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0fac\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0cdf\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u0fad\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0fae"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u03e6\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0faf\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0fb0\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u0ccf\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0fb1\5\141\1\u0fb2\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0fb3\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0fb4\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0fb5\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0750\3\141\1\u060f\2\141\1\u060f\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0fb6\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0fb7\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u09e4\3\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0fb8\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0fb9\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u04f9\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0fba\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0fbb\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u0fbc\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0fbd\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0fbe\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0fbf\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0fc0\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u0fc1\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0fc2\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0fc3\1\u0fc4\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0fc5\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0cd7\12\141\1\u0768"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0fc6"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0fc7"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0fc8"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03ec"+ - "\4\141\1\u0fc9\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0fca\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0fcb\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fcc"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0fcd"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fce"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0fcf"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0fd0"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0fd1"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0fd2"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0fd3"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0fd4"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0fd5"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fd6"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0fd7"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u06ce"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0fd8\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0fd9"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fda"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fdb"+ - "\6\141\1\u0fdc\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u0617\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0fdd\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0fde\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0fdf\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u0fe0\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0fe1\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0fe2\11\141\1\u0cab\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u09c1\21\141\1\u0fe3\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0fe4\2\141\1\u0ec0\1\u0fe5\11\141"+ - "\1\u0fe6\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u020e"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0fe7\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0fe8\1\141"+ - "\1\u0fe9\15\141\1\u0fea\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0feb\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0fec\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u0fed\6\141\1\u0fee\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0fef\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0cc5\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0ff0\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0ff1\7\141\1\u0269\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0ff2\6\141\1\u09d0"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0ff3"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0ff4"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ff5"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05d1"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0ff6"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ff7"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ff8"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0ff9"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0ffa\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0614\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ffb\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0ffc\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0ffd\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ea5\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ffe\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0fff\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u069a\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1000\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1001\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0269"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1002"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0eb0"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u08cb"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1003"+ - "\10\141\1\u1004\4\141\1\0\4\141\1\132\4\0\11\141"+ - "\1\u1005\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1006\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u1007\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1008\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0386\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u0a3e\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u06f4\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0d0b\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1009\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u05d9\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u100a\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u100b\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u100c\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u100d\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u100e\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u100f\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1010\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1011\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1012\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0866\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0443\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u1013\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1014\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1015\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1016\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0d27\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0bc5\11\141\1\u1017\7\141\1\u1018\1\141\1\u06ec\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u08a5\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0269"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1019\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u101a\7\141"+ - "\1\u08ea\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u101b"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u101c"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u08ab"+ - "\1\u101d\1\u101e\1\141\1\u101f\2\141\1\u1020\3\141\1\u1021"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0a3e"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1022"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1023"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u03d4"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1024\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1025\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1026\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1027\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1028\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1029\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u102a\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u102b\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u102c\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0d32\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0d33\1\141\1\u0488\1\u102d\1\u0a6f"+ - "\3\141\1\u048b\1\141\1\u0d35\3\141\1\u0464\1\u020c\7\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0455\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0d65\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u102e\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u102f\3\141"+ - "\1\u040d\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1030\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1031\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0920\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1032\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1033\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1034\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1035\7\141\1\u0d07\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1036\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1037\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1038\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1039\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u09a6\1\141\1\u103a"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u103b\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u103c\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u103d\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u103e\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u103f\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1040\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1041\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1042\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u03ce\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1043\1\u1044\1\u1045\1\141"+ - "\1\u1046\3\141\1\u1047\1\141\1\u1048\1\u1049\4\141\1\u104a"+ - "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u104b\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u104c\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u104d\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e0c\1\141"+ - "\1\u044f\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u104e\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u104f\4\141\1\u1050\4\141\1\u1051\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1052\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1053\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u1054\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u104d\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1055\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1056\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1057\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u03d4\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1058\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u1059\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0d4a\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u105a\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u05d1\15\141\1\u105b\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u105c\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u105d\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\17\141\1\u0269\7\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u105e\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u105f\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u05a8\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03a8\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1060\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1061\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1062\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1063\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u01ef\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1064\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1065\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1066\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1067\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1068\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1069\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u106a\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u106b\3\141\1\u04c5\1\u106c\2\141"+ - "\1\u060f\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u106d\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0f27\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u106e\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u106f\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1070\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u102f\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1071\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1072\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1073\7\141\1\u0d75\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1074\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1075\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\1\132\1\u1076\4\132\1\0"+ - "\2\132\1\u1076\1\132\4\u1076\1\132\1\0\1\132\1\0"+ - "\3\132\1\0\1\132\1\u1076\14\0\4\132\3\u1076\2\132"+ - "\2\u1076\6\132\1\u1076\5\132\1\0\1\132\2\u1076\2\132"+ - "\4\0\7\132\1\u1076\2\132\1\0\3\u1076\1\132\3\u1076"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1077"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1078"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1079"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u107a"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u03ce"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u107b"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u107c"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u107d"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u107e"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u107f"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\22\0\1\u1080\37\0\1\u1080\136\0\1\u1081\141\0\1\u0d88"+ - "\141\0\1\u1082\140\0\1\u07af\146\0\1\u0d8b\3\0\1\u0d8c"+ - "\130\0\1\u07a7\147\0\1\u1083\130\0\1\u1084\135\0\1\u1085"+ - "\60\0\2\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\20\67\1\u02ee\5\67\1\0\34\67\1\u02ee\12\67"+ - "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67"+ - "\1\0\26\67\1\0\25\67\1\u0117\21\67\1\0\1\u0117"+ - "\23\67\1\0\1\67\1\0\2\67\2\0\4\67\1\u1086"+ - "\1\67\1\0\26\67\1\0\31\67\1\u1086\15\67\1\0"+ - "\22\67\16\0\1\u1087\41\0\1\u1087\60\0\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1088\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0317\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0426\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0169\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1089\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0216\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\16\0\1\u108a"+ - "\41\0\1\u108a\136\0\1\u108b\156\0\1\u0d9c\127\0\1\u0590"+ - "\142\0\1\u0da0\143\0\1\u07fb\151\0\1\u0590\127\0\1\u058b"+ - "\132\0\1\u108c\110\0\1\u108d\177\0\1\u108e\133\0\1\u058e"+ - "\140\0\1\u0da7\134\0\1\u108f\140\0\1\u0da0\76\0\1\u1090"+ - "\41\0\1\u1090\60\0\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1091\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0b78\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1092\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\3\141\1\u1093\2\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\4\141\1\u1094\1\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\1\141"+ - "\1\u0817\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1095\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u1096\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1097\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1098\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u0db9\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1099\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u109a"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u109b"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u109c"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0393"+ - "\6\141\1\u109d\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u109e\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u109f\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u10a0\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u03d4\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u10a1\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1051\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u10a2\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u10a3\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\24\141\1\u10a4\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u10a5\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u10a6\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u10a7\12\141\1\u10a8\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u10a9\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u10aa\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u10ab\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u10ac\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0393\1\141\1\u10ad\1\u10ae\1\141"+ - "\1\u10af\1\u10b0\1\u109d\1\u10b1\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u10b2\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u10b3\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u10b4\10\141\1\u0753\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u10b5\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u10b6\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u10b7\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u10b8\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0461\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u10b9\1\141\1\u0464\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u10ba\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0ed8\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u10bb\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u10bc\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u10bd\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u10be\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10bf\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10c0\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u06b2\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u10c1\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u10c2\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u10c3\3\141\1\u10c4\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u10c5\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u10c6\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10c7\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u10c8\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u10c9\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u10ca\11\141"+ - "\1\u03ec\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u05ba\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u10cb\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u10cc\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u10cd\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u10ce\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u10cf\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u10d0\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u10d1\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u10d2\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u0916\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u10d3"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u10d4\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05d8\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u10d5\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u10d6\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u10d7\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0b0e\1\141\1\u0b0d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u10d8"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10d9"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u10da"+ - "\7\141\1\u10db\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u10dc\2\141\1\u10dd\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0b15\11\141\1\u10de\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u10df\21\141\1\u09f4\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u10e0\2\141\1\u10e1"+ - "\1\u10e2\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0a46\13\141\1\u10e3\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u10e4\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u10e5\1\u10e6\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u040d\6\141\1\u10e7\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u10e8\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u10e9\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u10ea\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u10eb\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u10ec\1\u10ed\4\141"+ - "\1\u0245\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u10ee\2\141\1\u10ef\3\141\1\u09d0\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u10f0\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u10f1\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u10f2\1\141\1\u0955\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0955\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u10f3\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u10f4\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u10f5\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u10f6\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u10f7\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u05d1\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u0e13\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u10f8\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u10f9\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u10fa\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1074\7\141\1\u10fb\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u10fc\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0392\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u10fd\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u10fe\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u10ff\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u094d\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u098b\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1100\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1101\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1102\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1103\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1104\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1105\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1106"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1107\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141"+ - "\1\u1108\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1109\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0895\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u110a\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u110b\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0c6e\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u110c\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u110d\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u110e\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u110f\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1110\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1111\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1112\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1113\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1114\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1115\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1116\2\141\1\u1117\2\141\1\u1118\2\141\1\u1119"+ - "\1\u111a\2\141\1\u111b\2\141\1\u111c\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u111d\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u111e\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u111f\1\141\1\u0464\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1120\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1121\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1122\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1123\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1124\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1125\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1126\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u1127\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1128\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1129\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u112a\20\141\1\u112b"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u112c"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u112d"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u112e"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u112f"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1130"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1131"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1132"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1133"+ - "\6\141\1\u1134\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1135\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0f27\4\141\1\u0e6a\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1136\2\141\1\u0ec0\1\u1137\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1138\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0408\1\141\1\u1139\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u113a\3\141"+ - "\1\u113b\6\141\1\u04d8\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u113c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0cc5\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u10ec\2\141\1\u113d\2\141\1\u113e\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0830\11\141\1\u09d0\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u113f\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1140\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1141\11\141\1\u1142\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1143\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1144\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1145\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1146\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1147\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1148\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1149\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u114a\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u114b\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u114c\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u114d\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0820\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0291\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u114e\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u114f\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1150\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0901\3\141\1\u0bad\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1151\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1152\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1153\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1154\13\141\1\u0269"+ - "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1155"+ - "\17\141\1\u1156\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1157"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0396\2\141\1\u0818\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1158\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u1159\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u115a\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0bad\6\141\1\u0eb0\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u115b\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u03d4\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u115c\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u115d\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u115e\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u115f\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u1160\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1161\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1162\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1163\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u03ce\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1164\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1165\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1166\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0406\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1167\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u1168\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1169\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u116a\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u116b\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u04c5\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0945\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u116c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u116d"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0"; - - private static final String ZZ_TRANS_PACKED_3 = - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0687\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u08ac\4\141\1\u116e"+ - "\1\u060f\6\141\1\u0b89\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u116f\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0d5d\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1170\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u082f\4\141\1\u1171\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1172\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1133\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0b78\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1173\13\141\1\u1174\4\141\1\u1175\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1176\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1177\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1178\1\141\1\u05d1"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1179"+ - "\1\141\1\u03e4\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u117a\6\141\1\u08de\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0614\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u117b\2\141\1\u0d1d\5\141\1\u117c\4\141"+ - "\1\u117d\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u117e\1\u117f\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1180\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1181\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1182\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0406"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0392\7\141\1\u05d1\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1183\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0cf6\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0776\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u1184\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1185\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1186\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u0b78\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0f7e\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1187\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1188\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0400\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1189\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u118a\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u118b"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u118c\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0c83\1\141\1\u0bad\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1074\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u118d\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u118e\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u118f\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u03d4\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1190"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u075b"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1191"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1192"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u09a4"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1193"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\5\141\1\u1194\1\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0392"+ - "\5\141\1\u0610\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1195\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1196\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1197\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u067f\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1198\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1199\3\141\1\u10c4\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u119a\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u119b\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u119c\12\141\1\u0768\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u119d\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u119e\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\1\u119f\6\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u11a0\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\7\141\1\u11a1\2\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u11a2\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u074f\6\141\1\u11a3\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u11a4\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u06fc\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u11a5\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0408\2\141\1\u0a3e\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\5\141\1\u11a6\1\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u11a7\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u11a8\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0916\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0916\7\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11a9\1\141"+ - "\1\u11aa\2\141\1\u11ab\1\141\1\u11ac\1\u11ad\3\141\1\u11ae"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u11a6"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u06b4"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11af"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0d55"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u11b0"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u11b1\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u11b2\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u11b3\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u11b4\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u11b5\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u11b6\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u11b7\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u11b8\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u06bb\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u11b9\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u11ba\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0a07\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u11bb\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u11bc\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u068c\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u11bd\3\141\1\u104a\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0832\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u0f1a\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u11be\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u03d4\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u044f\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0c81\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u11bf\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u06b2\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u11c0\21\141\1\u11c1\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u11c2\2\141\1\u0ec0\1\u11c3\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u11c4\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0cc4\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u11c5\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u11c6\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u11c7\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u11c8\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u11c9\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u0c3b\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u11ca\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u03d2\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u11cb\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u11cc\2\141\1\u11cd\1\u11ce\1\u11cf\1\u09a4\1\u11d0"+ - "\1\u11d1\3\141\1\u020c\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u11d2\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u11d3\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u110d\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u11d4\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u11d5\1\u11d6\7\141\1\u11d7\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u11d8\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u11d9\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u11da\1\u11d2\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u11db\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u0408\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u11dc\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u11dd\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u11de\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\17\141\1\u11df\7\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u11e0\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u11e1\3\141\1\u11e2"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u05b7"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u11e3"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11e4"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03c8"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u11e5\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0f1b\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u11e6\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u11e7\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u11e8\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11e9\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u11ea\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0d65\7\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11eb\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u11ec\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u11b0\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u11ed\7\141"+ - "\1\u11ee\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141"+ - "\1\u11ef\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u11f0"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u11f1\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u11f2\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a34\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u11f3\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11f4\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u11f5\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u11f6\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0485\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u11f7\1\141"+ - "\1\u11f8\1\u1159\1\u0901\3\141\1\u11f9\7\141\1\u11fa\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u11fb\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u11fc\4\141"+ - "\1\u11fd\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u11fe\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u05d5\2\141\1\u11ff\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1200\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1201\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1202\5\141\1\u0de7\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1203\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u1204\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u0c2c\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1205\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1206\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1207\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1208\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u1209\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u120a\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u120b\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\25\141\1\u120c\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u120d\17\141\1\u01ef\1\141"+ - "\1\u120e\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u120f\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u090a"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1210\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0988\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1211\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1212"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1213\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1214\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1215\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1216\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u040d\6\141\1\u04d8\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1217\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u1218\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1219\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u121a\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u121b\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u04c5\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u121c\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u121d\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u121e\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u121f\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1220\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1221\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1222\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1223\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1224\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1225\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u1226\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1227\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1228\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1229\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u122a\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u1212\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u122b\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u122c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u122d\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u122e\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u122f\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1230\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1231\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1232\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1233\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u0c7f\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1234\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1235\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0c76\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1236\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u03d4\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1237\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1238\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u03c0\11\141\1\u0610\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0c64\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0984\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1239\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u123a\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u123b\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u123c\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u123d\4\141\1\u08f6\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u123e\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u123f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u1240\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1241\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u027b\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0dd3\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1242\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1243\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1244\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u117b\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1245\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1246\12\141\1\u1247\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1248\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1249\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u10ec\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u124a\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u124b\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u124c\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u124d\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u124e\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u124f\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1250\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1251\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1252\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0a31\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1253"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1254\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1255\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1256\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0262\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1257\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1258\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1259\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u125a\3\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u125b\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u125c\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u11e7\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u125d\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u125e\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u125f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1260\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1261\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u1262\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u1263\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1264\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1265\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1266\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u11e7\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u1267\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1268\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1269\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u126a\2\141\1\u126b\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u126c\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u126d\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u126e\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u126f\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0946\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u09a6\6\141\1\u0fda\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0699\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1270\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u1271\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u0204\4\141\1\u0724\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1272\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u0204\1\141\1\u1273"+ - "\1\u1274\1\141\1\u1275\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1276\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u1277\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1278\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1279\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u127a\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u127b\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u127c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u127d\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0cd1"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u127e\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u127f\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1039\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1280\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1281\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1282\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1283\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u044f\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1284\1\141\1\u0fdb"+ - "\6\141\1\u1285\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u1286\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1287\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u01fa\6\141\1\u0269\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1288\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1289\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u128a\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u128b\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u128c\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u031a\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0fcf\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u128d\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u1237\1\u01ec\3\141\1\u128e\1\141"+ - "\1\u08a6\2\141\1\u128f\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1290\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0fec\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u10fa\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1291\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1292\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1293\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u1294\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u10fb\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u1295\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1296\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u03f7\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1297\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1298\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1299\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u129a\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u129b\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u116c\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u129c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u129d\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u129e\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u129f\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0cd7\5\141\1\u12a0\4\141\1\u0768\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u12a1\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u12a2\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u12a3\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u12a4\3\141\1\u119c"+ - "\11\141\1\u12a5\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u12a6"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u12a7\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u12a8\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u12a9\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u12aa\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u12ab\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u12ac\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u12ad"+ - "\2\141\1\u12ae\4\141\1\u12af\10\141\1\u12b0\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u12b1\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u12b2\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u12b3\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u12b4\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u031a\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u069a\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u12b5\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u0480\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u12b6\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u12b7\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u12b8\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u12b9\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u12ba\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u12bb\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u12bc\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u12bd\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u12be\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u12bf\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u12c0\1\141\1\u12c1\5\141"+ - "\1\u06ec\1\u12c2\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u0a0a\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u12c3\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u12c4"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u12c5\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u12c6\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u05d9\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u12c7\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u12c8\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u12c9\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u12ca\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u12cb\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u031a\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u12cc\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u12cd\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0269"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u08f5\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u12ce\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u12cf\3\141\1\u12d0"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u12d0"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u12d1\1\141"+ - "\1\u12d2\1\141\1\u12d3\1\141\1\u12d4\1\141\1\u12d5\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u12d6\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u12d7\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u12d8\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u12d9\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u12da\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u12db\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u12dc\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u05b2\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u081f\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u12dd\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u12de\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u12df\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u12e0\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u12e1\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0480\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u12e2\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u12e3\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u12e4\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u12e5\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u12e6\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u12e7\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u12e8\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u081f\10\141\1\u12e9\5\141\1\u05b7\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u12ea\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u09a6\1\141"+ - "\1\u103a\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u12eb"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u12ec"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u12ed"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u12ee\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u12ef\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u12f0\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u12f1\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u12f2\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u06f4\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u12f3\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\20\141\1\u12f4\6\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0be4\1\141\1\u128c\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u12f5\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u12f6\1\141\1\u12f7\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u12f8\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u12f9\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0262\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u12fa\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u12fb\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u12fc\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u12fd\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0881\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u12fe\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u12ff\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1300\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1301\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1302\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u1303\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1304\15\141\1\u1305\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1306\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1307\1\141"+ - "\1\u1308\1\141\1\u1309\1\141\1\u130a\2\141\1\u11d2\1\u130b"+ - "\5\141\1\u0e81\1\u130c\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u130d\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u130e\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u03c6\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u130f\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1310\7\141\1\u0408\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1311\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1312\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1313\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1314\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1315\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1316\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1317"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1318\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1319"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u131a"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u131b\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u131c\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u131d\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u131e\3\141\1\u131f\3\141"+ - "\1\u1320\2\141\1\u1321\5\141\1\u1322\1\u1323\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1324\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u05d3\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u044f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1325\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u03d4\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1326\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1327\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1328\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\17\141\1\u1329\7\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u132a\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u132b\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u132c\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\1\132\1\u0289\4\132\1\0\2\132\1\u0289\1\132\4\u0289"+ - "\1\132\1\0\1\132\1\0\3\132\1\0\1\132\1\u0289"+ - "\14\0\4\132\3\u0289\2\132\2\u0289\6\132\1\u0289\5\132"+ - "\1\0\1\132\2\u0289\2\132\4\0\7\132\1\u0289\2\132"+ - "\1\0\3\u0289\1\132\3\u0289\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u132d\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u132e\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u132f\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1330\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u03d2\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1331\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0cb8\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0406\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\17\141\1\u048b\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\17\0\1\u1332\152\0\1\u1333\206\0\1\u07af"+ - "\117\0\1\u1334\113\0\1\u1335\173\0\1\u1336\54\0\2\67"+ - "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\1\67"+ - "\1\u1337\24\67\1\0\16\67\1\u1337\30\67\1\0\22\67"+ - "\17\0\1\u1338\121\0\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0312\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1339\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\17\0\1\u133a\205\0\1\u133b\142\0\1\u059a"+ - "\142\0\1\u133c\143\0\1\u07fb\127\0\1\u0598\75\0\1\u133d"+ - "\121\0\1\132\10\0\6\141\1\0\11\141\1\0\1\u0749"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u133e\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\1\u133f\11\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\2\141\1\u1340"+ - "\1\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1341\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1342\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1343\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1344\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1345\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1346\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1347\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0916\4\141\1\u1348\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1349\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u134a\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u134b\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u134c\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u134d\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u134e\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u134f\5\141\1\u1350\1\u1351"+ - "\10\141\1\u1352\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1353\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1354\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1355\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1356\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u1357\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1358\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1359\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u135a\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u135b\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u135c\10\141\1\u135d\1\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u135e\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0dbf\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u135f\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1360\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u0cdb\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\7\141\1\u05af\1\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\6\141\1\u0269\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u0dde\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1361\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1362\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u03a8\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1363\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1364\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\6\141\1\u1365\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1366\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1367"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u06f4"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u03e4"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1368"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0e63"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1369"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u136a"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u136b\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u136c\1\u136d\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u03d2\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u136e\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u04ec\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u136f\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u1370\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1371\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1372\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1373"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u1374\4\141\1\u136d\1\141\1\u1375\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1376\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1377\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1371\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u090a\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1378\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1379\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u137a\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0d27\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u137b\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u137c\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0945\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0e17\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u137d\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u137e\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u137f\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1380\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0a07\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1381\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1382\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1383\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1384\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1385\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0c40\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1386\1\u1387\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u120f\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1388\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u1389\12\141\1\u0768\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u138a\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u138b\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u067f\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u138c\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u138d\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u138e\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u119c\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u138f\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u1390\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1391\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1392\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1393\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0a31\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0262\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1169\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1394\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1395\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u10f4\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1396\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1397\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1398\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1399\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u139a\1\141\1\u139b\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u090e\1\141\1\u139c\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u139d\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u139e\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u139f\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u13a0\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u13a1\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0d55\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\26\141\1\u13a2\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u13a3\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u13a4\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u040f\1\141\1\u074f\4\141\1\u13a5\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u13a6\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u13a7\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u13a8\2\141\1\u13a9\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u06e9\7\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0bcc\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0bcd\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u13aa\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13ab\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u13ac\15\141\1\u13ad"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1271"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u13ae"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13af"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1391\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u13b0\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u06b2\1\141"+ - "\1\u13b1\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u13b2"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13b3"+ - "\1\141\1\u06b2\3\141\1\u0945\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u13b4\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u06b2\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u13b5\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u13b6\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u13b7\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u13b8\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u13b9\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u13ba\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u13bb\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u13bc\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u13bd\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0993\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u13be\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u13bf\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\20\141\1\u13c0\6\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u13c1\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u13c2\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u13c3\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1205\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u13c4\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u13c5\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u13c6\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u13c7\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u13c8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u13c9\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u03a8\2\141\1\u13ca\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u13cb\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u13cc\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u13cd\1\141\1\u0cca\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u13ce\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u13cf\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u13d0\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u13d1\4\141\1\u13d2"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u13d3"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u046c\15\141"+ - "\1\u03ec\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u13d4\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u13d5\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u13d6\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u13d7"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u039f"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u13d8"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u13d9"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u13da"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u13db"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u13dc"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0f38\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u046a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u13dc\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u13dd\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u13de\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u13df\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u046a\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u13e0\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u13e1\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u13e2\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u13e3\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u13e4\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u13e5\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u13e6\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u13e7\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u1023\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u13e8"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u13e9\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u13ea"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u08fc\3\141\1\u08ff"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u13eb\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u08c8\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u08ca"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0bad\1\141"+ - "\1\u063d\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141"+ - "\1\u13ec\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u13ed\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141"+ - "\1\u13ee\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u13ef\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u13f0\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u13f1\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u13f2\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u13f3\15\141\1\u13f4\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u13f5\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u13f6\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1023\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u13f7\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u13f8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u13f9"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u13fa\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13fb"+ - "\1\141\1\u13fc\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0d02\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u09d0\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0ba8\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u13fd\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u13fe\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0e88\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u03c6\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u13ff\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1400\7\141\1\u1401\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1402\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1403\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1404\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1405\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u1406\2\141\1\u120e\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1407\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u10c4\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1408\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0d1d\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u05d2\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1409\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u140a\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u140b\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u140c\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u140d\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u140e\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u140f\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1410\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1411\3\141\1\u1412\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1413\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1414\11\141\1\u1415\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u1416\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1417\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1418\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1419\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u141a\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0291\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0392\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0f11\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u141b\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u141c\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u141d\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0b1e\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u141e\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u03a8\1\141\1\u05d8\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\1\u1391\6\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u141f\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u119e\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1420\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1421\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1422\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1423\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0760\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1424\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1425\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1426\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1427\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\4\141\1\u1428"+ - "\4\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1429\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u142a\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u12d7\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u142b\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\4\141"+ - "\1\u0269\2\141\1\132\10\0\6\141\1\0\10\141\1\u03e7"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u08f6\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u142c\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u142d"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u142e"+ - "\11\141\1\u142f\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1430\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1431\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1432\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u08f6\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u03ec\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0a31\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1433"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1434\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1271\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1435\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1436\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1437\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1438\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1439\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0bed\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u143a\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u143b\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u143c\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u143d\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u143e\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u143f\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1440\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1441\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1442\3\141\1\u1443\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1444\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1445\1\141\1\u116d"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1446\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1447\1\u1448"+ - "\1\141\1\u1449\1\u05b0\3\141\1\u144a\1\141\1\u144b\1\u144c"+ - "\1\u0610\2\141\1\u144d\1\141\1\u144e\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u1023\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u144f\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u1450\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u0df3\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1451\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1452\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1453\5\141\1\u0ddc\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u12f6\1\141\1\u1454"+ - "\10\141\1\u1455\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1456\3\141\1\u1457\6\141\1\u04d8\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1458\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u08ce\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u09a3\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u11e7\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0318\5\141\1\u1459"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u145a\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u145b\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u145c\5\141\1\u145d"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u145e"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u145f\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u11df\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0f05\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0610\12\141\1\u090a"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1460"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u09a9"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u03c8"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0610"+ - "\12\141\1\u1461\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1462\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0dc7\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1463\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1464\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1465\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1466\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1467\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1468\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1469\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u146a\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0b78\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u146b\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u146c\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u146d\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u04f9\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u146e\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u0d07\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u146f\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u03a8\1\141\1\u05d8\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u046a\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u1470\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1471\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1472\4\141\1\u1473\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u05d5\2\141\1\u1474\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1475\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1476\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1477\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1478\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1479\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u147a\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u147b\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u147c\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u147d\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u147e\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u147f\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1480\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1481\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1482\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1483\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1484\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1485\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1486\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0667\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1487\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0b20\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u0b91\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u05ea\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1488\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0916\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u11af\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1489\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u148a\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u148b\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u148c\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u148d\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u0614\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u148e\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\5\141"+ - "\1\u0269\3\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\5\141\1\u0269\1\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0cf6\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0269\22\141\1\u148f\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u0639\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1490\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1491\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u1492\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1493\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0bca\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1494\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1495\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1496\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1497\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1498\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1499\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u149a\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u149b\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u149c\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0868\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u149d\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u149e\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u11af\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u149f\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u14a0\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u14a1\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u14a2\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u08a6\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0971\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u14a3\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u0a1d\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u14a4\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u14a5\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\1\u0269\4\141\1\u0269\1\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0411\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u14a6\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u14a7\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u14a8\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u1234\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0afc\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u14a9\15\141\1\u14aa\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u14ab\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u14ac\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u14ad\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u047b\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u14ae\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u14af\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u14b0\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u14b1\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u14b2\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u14b3\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u14b4\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u14b5\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u14b6\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0d37\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u04c5\1\u06bb\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u14b7\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u14b8\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u14b9\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u11a8\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0411\10\141\1\u097d\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u14ba\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u14bb\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1466\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u14bc\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\1\u14bd\6\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u14be\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u14bf\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u14c0\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u14c1\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u14c2\5\141\1\u0455\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14c3\6\141"+ - "\1\u09bd\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u14c4\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u14c5"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\3\141\1\u14c6\3\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u14c7"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0a05"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14c8"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14c9"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u14ca"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0397"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14cb"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u14cc"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u14cd"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u14ce"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u14cf\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u14d0\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14d1\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u09e4\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u14d2\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u14d3\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0ddf\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u09e2\6\141\1\u14d4"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u14d5"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0e12"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u14d6"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u14d7"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u14d8\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u14d9\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u14da\11\141\1\u12db"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14db"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14dc"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u14dd\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14de\6\141"+ - "\1\u0fdc\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u14df\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u14e0\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u14e1\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u14e2\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u14e3\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u14e4"+ - "\7\141\1\u1284\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u06b2\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u14e5\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u14e6\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u14e7\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u14e8\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u03ce\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u14e9\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u14ea\11\141\1\u0dda\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u14eb\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u08f6\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u14ec\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u14ed\4\141\1\u14ee\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0fd5\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u14ef\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u14f0\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u14f1\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u14f2\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u14f3\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u14f4\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u14f5\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u14f6\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u14f7\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u063d\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0971\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u14f8\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u14f9\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u14fa\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u08f7\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u06a1\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u14fb\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u14fc\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0a75\1\u14fd\2\141\1\u14fe\1\141\1\u14ff\1\u1500"+ - "\2\141\1\u0464\3\141\1\u1501\1\141\1\u1502\1\u1503\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1504\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1505\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1506\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1507\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u1508\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1509\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u150a\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u150b\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u150c\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u150d\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u150e\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u150f\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1510\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u1511\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1512\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1513\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1514\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0ccf"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1515\4\141\1\u060f\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0681\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u047b\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u1516\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0a1d\1\141\1\u1517\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1518\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1519\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u151a\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u151b\6\141\1\u151c\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u151d\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u151e\1\141\1\u151f"+ - "\1\u1520\1\u1521\1\141\1\u1522\1\u1523\2\141\1\u0464\1\u020c"+ - "\1\141\1\u1524\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1525\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1526\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1527"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1528\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1529\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u152a"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u152b"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u152c\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u152d\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u152e\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u152f\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1530\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u1531\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1532\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u1533\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1534\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1535\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1536\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1537\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u1538\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1539\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u153a\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u153b\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u153c"; - - private static final String ZZ_TRANS_PACKED_4 = - "\1\141\1\u0687\5\141\1\u08a6\3\141\1\u153d\5\141\1\u153e"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u153f\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1540\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ada\7\141"+ - "\1\u1541\1\141\1\u05b7\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1542\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1543\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1544\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1545\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1546\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u0920\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1547\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1548\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u03a8\2\141\1\u1549\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u05e4\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u154a\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u154b\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0dbd\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u154c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u154d\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u154e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u154f\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u03ce"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141"+ - "\1\u1550\6\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1551\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u1552\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u10b7\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0820\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1553\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1554\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1555\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u1556\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1557\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1558\17\141\1\u1559\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u155a\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u155b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u155c\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u155d\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u155e\3\141\1\u155f\1\u1560\1\141\1\u1561\2\141"+ - "\1\u1013\1\141\1\u1562\1\u1563\2\141\1\u1564\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1300\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1565\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u03d4\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1566\1\141\1\u1567\2\141\1\u155c"+ - "\1\141\1\u1568\1\141\1\u1569\1\u156a\2\141\1\u156b\1\141"+ - "\1\u156c\1\141\1\u156d\1\u156e\1\141\1\u08db\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u156f\5\141\1\u1469\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1570\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0408\6\141"+ - "\1\u090a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1571"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1572"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1573"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1574\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1575\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1576\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1577\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1578\1\u1579\3\141\1\u157a"+ - "\3\141\1\u157b\10\141\1\u157c\1\141\1\u08db\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u157d\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u157e\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u157f\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u0916\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1580\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u09e7\1\u08ab\1\u1581\1\u0ce4"+ - "\3\141\1\u1582\3\141\1\u1583\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1584\1\u045b\1\141\1\u11e9\1\u1585\1\u075e"+ - "\1\u0969\1\141\1\u1586\1\141\1\u1587\1\u1321\1\u1588\1\141"+ - "\1\u05d8\2\141\1\u1589\1\u0e8f\2\141\1\u0971\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u158a\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u158b\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u158c\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u158d\3\141\1\u158e\1\141"+ - "\1\u158f\1\141\1\u1590\1\141\1\u05cb\2\141\1\u1591\1\u1592"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1593"+ - "\5\141\1\u1594\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1595\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0df4\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1596\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1597\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1598\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1596\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1599\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u0ed9\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u159a\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u159b"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u046a\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u159c\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0f25\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u159d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u159e\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0269\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u159f\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u15a0\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u15a1"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u15a2\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u15a3\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u15a4\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\65\0\1\u15a5\140\0\1\u1082\133\0\1\u15a6\152\0"+ - "\1\u15a7\46\0\2\67\1\0\1\67\1\0\2\67\2\0"+ - "\6\67\1\0\26\67\1\0\15\67\1\u0117\23\67\1\u0117"+ - "\5\67\1\0\22\67\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u0d98"+ - "\1\0\7\141\65\0\1\u0ab7\133\0\1\u15a8\60\0\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15a9\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\3\141"+ - "\1\u0817\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\1\141\1\u081b\4\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u15aa\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u15ab\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u15ac\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0d08\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u15ad\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0e92\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u03ec\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u15ae\1\141\1\u15af\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0a1d\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u15b0\1\141\1\u06e9"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15b1"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15b2"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15b3"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u15b4"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u03c6\14\141"+ - "\1\u15b5\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u15b6\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0405\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u15b7"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15b8"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15b9"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15ba"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u15bb"+ - "\1\141\1\u15bc\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u15bd\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u15be\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u15bf\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u15c0\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u15c1\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u15c2\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u15c3\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u15c4\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u15c5\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u15c6"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u15c7\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u15c8\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0b89\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u15c9\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\u15ca"+ - "\6\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0f6e\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u15cb\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u15cc\6\141\1\u15cd\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u15ce\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u08f6\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141"+ - "\1\u15cf\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u15d0"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u031a"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u15cc"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\1\141\1\u15d1\5\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15c9"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15d2"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u15d3"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15d4\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u15d5\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u14bc\1\141\1\u15d6\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15d7\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u15d8\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u15d9\7\141\1\u0627"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15da"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u15db"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0cca"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15dc"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u15dd"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u15de\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15df\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u15e0\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u14bc\10\141"+ - "\1\u063d\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u15e1\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u15e2\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u15e3\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u15e4\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u15e5"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u15e6"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u15e7"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u15e8\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15e9\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0bf1\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15ea\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15eb\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15ec\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u08ea\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u08ed\3\141"+ - "\1\u0411\12\141\1\u08ef\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u15ed\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u15ee\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u0971\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u15ef\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u0840\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0d94\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u15f0\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u15f1\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u15f2\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u15f3"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u15f4\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15f5\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15f6\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u15f7\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u15f8\1\141\1\u15f9"+ - "\1\u15fa\1\141\1\u09a4\1\141\1\u15fb\1\u15fc\1\141\1\u15fd"+ - "\1\u15fc\5\141\1\u15fe\1\u15ff\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0e23\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1600\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1601\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1207\3\141\1\u1602\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1603\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1604\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1605\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1606\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0239\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1607\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1608\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u1609\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u160a\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u160b"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u160c"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u160d"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u160e"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u160f"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1610"+ - "\11\141\1\u1611\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1612\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1613\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1614"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1615\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1616\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u1617\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1618\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1619\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15e9"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1615"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u161a\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u161b\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u161c\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u161d\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u161e\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u161f\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1620\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u06f4\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0408\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1621\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1622\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1623\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1624\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1625\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1626\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1627\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1628\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1629\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u162a"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0694\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u162b\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u162c\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u162d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0610"+ - "\11\141\1\u0779\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u162e\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u13dc\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u162f"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11a7"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1630"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1631\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1632\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1633\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1634\1\u1635\3\141"+ - "\1\u1274\1\u0f85\1\u1636\2\141\1\u1637\1\u13ad\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1638\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u040d\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u14b2\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u0de7\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u03d4\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1639\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u163a\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u06ee\2\141\1\u163b\2\141\1\u163c"+ - "\1\u163d\2\141\1\u163e\3\141\1\u163f\1\u1640\7\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1641\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1642\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1643\5\141\1\u1644"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u03cd\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1645\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0e8b\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1646\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u03d4\20\141\1\u08f6\3\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1647\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1648\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1649\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u164a\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e8b\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u164b\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u164c\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u164d\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u164e\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u164f\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1650\11\141\1\u1651"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1652\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1653\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1654\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1655\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0eb4\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u117c\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u1656\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1657\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1658\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1659\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0d27\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0916\4\141\1\u0269\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u044f\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u165a\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u165b\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u12ec\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u165c\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u073d\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0269\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u165d\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0b78\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u10d7\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u165e\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u165f\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u0a3e\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1660\11\141\1\u1661\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1662\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1663\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u038d\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0eb4\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1664\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1665\1\141\1\u1666"+ - "\14\141\1\u1667\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1668\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u075e\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u074f\2\141\1\u045c\12\141\1\u0fd6\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1669\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u166a\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u166b\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u166c\12\141\1\u0d02"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u0eb9\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u166d\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u166e\1\141"+ - "\1\u166f\7\141\1\u0d02\2\141\1\u04f9\2\141\1\u1670\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1671\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u04f9\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1672\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1673\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1674\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u090a\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u119c\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1675\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u1676\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1677\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1678\4\141\1\u0a3a\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1679\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u167a\5\141\1\u167b\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u167c\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u167d\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u167e\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u167f\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1680\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u157b\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0fcc\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1681\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u08cb\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1682\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0b8b\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1683\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1684\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1685\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1686\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1687\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1688\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\20\141\1\u1689\6\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u168a\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u168b\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u168c\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u168d\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u168e\10\141\1\u0269\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u168f\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1690\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u09e1\1\141\1\u1691\1\141"+ - "\1\u1692\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1693\7\141\1\u0b98\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1694\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1695\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1696\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1697\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1698\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0392\3\141\1\u1699\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u169a\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u169b\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u169c\4\141\1\u0a3a\4\141\1\u169d"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u169e\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u169f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u16a0\11\141\1\u03ec"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16a1"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u16a2"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0b1b"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u065d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u16a3"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0993\6\141"+ - "\1\u16a4\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u16a5\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u16a6\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u16a7\3\141\1\u16a8\1\u16a9\1\u16aa\2\141\1\u16ab\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0f2a\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16ac\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0c80\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16ad\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16ae\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u05cb\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u16af\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u03e4\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u16b0\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u16b1\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u16b2\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u16b3\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u16b4\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u145b\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u16b5\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u16b6\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\25\141\1\u16b7\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u16b8\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u16b9\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u16ba\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u16bb\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u08a5\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u16bc\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u16bd\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u16be\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u16bf\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u16c0"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u16c1\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u16c2\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u16c3\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u16c4\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u16c5\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u16c6\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u16c7\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u16c8\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u16c9\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u16ca\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u0d33\1\u16cb\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u04f9\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u16cc\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u16cd\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0383\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u131a\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u16ce\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u16cf"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u0a31\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u16d0\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u16d1\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0269"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u16d2"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u16d3\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u16d4\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u16d5\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u16d6\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u16d7\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u16d8\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u16d9\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0245\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u16da\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u16db\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u16dc\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u12a9\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u16dd\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u16de\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u16df\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u0b05\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u16e0\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0610\5\141\1\u01ef"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16e1"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u16e2"+ - "\5\141\1\u16e3\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u16e4\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u16e5\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u16e6\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u16e7"+ - "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u16e8"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16e9"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u16ea"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0bf1"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u16eb\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u122a\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16ec\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u16ed\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u16ee\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u16ef\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u16f0\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u0c3d\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u16f1\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u0681\7\141\1\u05cb\2\141\1\u0fe0\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c71\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u04ce\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u16f2\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u16f3\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16f4\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16f5\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03ce\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u16f6\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u16f7\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u16f8\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u16f9\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16fa\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16fb\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\1\u03a4\6\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u16fc\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u16fd\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u16fe\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u16ff\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1700\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1701\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1702\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1703\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1704\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1705\7\141\1\u0fd6\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1706\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0916\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1707\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1708\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1284\1\141\1\u1709\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u170a\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u170b\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1399\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u170c\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u170d\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u0fec\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u170e\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u127f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u170f\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1710\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1711\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0945\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u12fc\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1712\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u1713\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u06ec\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u1190\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u153c\1\141\1\u1714\5\141"+ - "\1\u1715\3\141\1\u0610\5\141\1\u1716\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1717\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1718\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1719\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u171a\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u171b\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u171c\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u171d\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0b17\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u171e\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u171f\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1720\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1721\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1722\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1723\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0e0d\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1724\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u1725\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1726\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1727\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1728\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u041a\3\141\1\u0174\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1729\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u172a\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u172b\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u172c\14\141\1\u172d\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u172e\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\7\141\1\u172f\2\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1730\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u1213\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1731\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u043e\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1732\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1733\23\141\1\u1734\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1735\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1736\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u0e8b\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u0245\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u150f\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1186\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1737\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1738\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u1739\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u173a\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u173b\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u03ec\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u173c\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u173d\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u173e\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u173f\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1740\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1741\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1742\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1743\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1744\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u01ef\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0754\15\141\1\u1745\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1746\1\141\1\u1747\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1748\3\141\1\u040d"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0b8d"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1749"+ - "\1\u174a\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u0e0d\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u174b\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u0c83\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u174c"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1274"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u174d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u174e"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u174f"+ - "\4\141\1\u1750\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0614\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0174\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1751\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1752\3\141\1\u1753\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1754\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1755\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1756\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1757\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u1758\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1759\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u175a\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u175b"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u047b\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u175c"+ - "\1\141\1\u0687\5\141\1\u08a6\3\141\1\u153d\5\141\1\u153e"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u175d"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0614\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0606"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u175e"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u175f"+ - "\2\141\1\u1760\7\141\1\u05cb\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1761\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1762\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0e0d\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u046c\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1763\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0b78\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0f38\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1207\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1764\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1218\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0c3b\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0821\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1765\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1766\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1767\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1768\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1769\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u176a\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u09a2\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u176b\3\141\1\u05b7\2\141\1\u05b7\6\141\1\u176c\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u176d\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u176e\1\0\1\u05b7\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1434"+ - "\1\u176b\2\141\1\u08ae\1\u05b7\1\141\1\u176f\1\u1770\6\141"+ - "\1\u1771\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1772\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1773\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1774\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1775\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1776\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1777\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u090a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u152c\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u0e7e\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1778\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1779\7\141\1\u177a\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u177b\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u177c\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u177d\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u177e\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u110d\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u177f\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1780\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1781\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1782\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u1783\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1784\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1785\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1786"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1787\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1788\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1789\15\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u178a\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u178b\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u178c\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u178d\13\141"+ - "\1\u047b\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u12fd\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u178e\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u178f\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1790\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1791\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1792"+ - "\5\141\1\u1793\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1794\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1795\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1787"+ - "\12\141\1\u1796\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1797\1\u1798\1\u1799\2\141\1\u0396\4\141\1\u179a\1\u179b"+ - "\6\141\1\u179c\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\3\141\1\u0aec\3\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u179d\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u179e\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u179f\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u17a0\2\141\1\u17a1\1\u064e\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u040d\6\141\1\u0cc4\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u17a2\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u05d1\12\141"+ - "\1\u044f\4\141\1\u045f\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\26\141\1\u06b5\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u06b2\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u17a3\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u05d1\4\141\1\u17a4\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u04ce\11\141\1\u044f\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u06b5\5\141\1\u17a5\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ada\1\141"+ - "\1\u17a6\1\141\1\u17a7\10\141\1\u17a8\1\u17a9\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u05a8\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u17aa\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u17ab\4\141\1\u17ac\10\141"+ - "\1\u17ad\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u17ae\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u17af\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u17b0\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u17b1\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u17b2\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u17b3\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u17b4"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u17b5\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u17b6"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17b7"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u13ee"+ - "\1\u17b8\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u13ee\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u17b9\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u17ba\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u17bb\2\141\1\u06ab\1\u17bc\1\u11b0\4\141\1\u05cb\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17bd\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17be\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u17bf\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u17c0\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u17c1\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u17c2\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u17c3\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u17c4\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u107d\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\56\0\1\u17c5\3\0\1\u17c6\157\0"+ - "\1\u17c7\117\0\1\u17c8\146\0\1\u0590\5\0\1\u07f1\44\0"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17c9"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u17ca\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u17cb\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0f01\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u17cc\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u17cd\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u17ce\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0915\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u17cf\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u17d0\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u17d1\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1355\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u17d2\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u03c6\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\25\141\1\u0fd6\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u17d3\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u17d4\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u040f\1\u17d5\1\u17d6\1\u17d7"+ - "\1\141\1\u17d8\1\141\1\u17d9\1\141\1\u17da\6\141\1\u17db"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17dc"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17dd"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17de"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u047b"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u103b"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u17df"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u17e0"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17e1"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1300"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u17e2"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1300"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u17e3"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0ed9"+ - "\10\141\1\u17e4\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u17e5\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u17e6\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\u17e7"+ - "\6\141\1\132\10\0\6\141\1\0\10\141\1\u17e8\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0393\5\141\1\u17e9\1\u0f85\3\141\1\u17ea\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u17eb\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u15d5\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0cb8\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u17ec\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u17ed\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u17ee\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\2\141\1\u0269\4\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u136c\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u17ef\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u17f0\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u17f1\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u17f2\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u17f3\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u17f4\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u17f5"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u152c"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u17f6"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17f7"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u17f8"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u17f9"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u17fa"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u17fb"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0245"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u17fc\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u17fd\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17fe\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u17ff\3\141\1\u149b"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1800\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1801\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u103a\14\141\1\u1802"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1803\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u095f\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0245\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1804\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1805\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1806\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u065d\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1598\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u14e7\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1807\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1808\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1809\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u180a\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u180b\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u180c\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0945\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0dd2\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u180d\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u180e\15\141\1\u05ba\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u180f\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u102f\12\141\1\u1810\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1811\3\141\1\u0dc8\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1812\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0eb4\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0c30\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1813\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1814\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1815\12\141\1\u1816"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1817"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1818\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1819\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0b89\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1608\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1207\11\141\1\u1061\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u181a\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u181b\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u181c\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u181d\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u181e\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u181f\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1820\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1821\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u181d\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1822\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u1823\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1824\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1825\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1826\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u15e9\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1827\1\141\1\u1828\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1829\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u182a\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u182b\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1580\11\141\1\u1823\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u182c\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u182d\3\141"+ - "\1\u182e\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u182f\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1830\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u1831\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1832\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u03ce\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1833\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1834\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1835"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1836"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1837\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1838\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1839\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u097a\1\141"+ - "\1\u183a\2\141\1\u183b\4\141\1\u183c\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0385\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u14b2\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u11a7\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1636\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u183d\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u11a7\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u183e\11\141\1\u04a4\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u183f\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1840\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1841\1\141\1\u06b7"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1633"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1842\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u158b\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1843\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1844\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1845\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1846\1\u1847\6\141"+ - "\1\u1848\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1849\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u184a\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u12d7\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u184b\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u184c"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u184d"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u184e"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u184f"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1850"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1492\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1851\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1852\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u13aa\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1853\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1854\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u11a8\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u14d4\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1855\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\17\141\1\u03e7\7\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1856\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1857\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1858\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1859\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u185a\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u185b\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u01c7\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u165c\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u185c\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u185d\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u185e\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u185f\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u0245\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u06ee\1\u1860\20\141\1\u1861\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1862\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1863\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1864\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u10cf\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1865\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1866\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1867\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1868\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1869\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u186a\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u186b\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u186c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u186d\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u186e"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u186f\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1870\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1871\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1872\1\u065b\1\141\1\u0901\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1873\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1874\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u1875"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1876\6\141\1\u1877\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1878\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1879\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u187a"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141"+ - "\1\u187b\6\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u187c\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141"+ - "\1\u187d\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u187e\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u187f"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1880"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0cd7\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1881\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1882\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1883\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u14e7\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1884\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1885\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1886\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1887\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u1888\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1889\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u188a\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u103a\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u188b\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u188c\4\141\1\u060f\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u188d\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u188e\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u188f\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1890\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\24\141\1\u167e\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1891\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1892\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1893\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u10aa\1\141\1\u063d\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u1894\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u1895\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u046a\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0411\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1896\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u046a\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u0921\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1897\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1898\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0b5e\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1899\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u189a\5\141"+ - "\1\u046a\3\141\1\u189b\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u0836\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u189c\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u189d\5\141\1\u189e\2\141\1\u189f\1\u18a0"+ - "\2\141\1\u18a1\2\141\1\u18a2\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u18a3\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u0d4a\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u18a4\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0945\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u18a5\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u18a6\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u18a7"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0393"+ - "\1\u0a3a\1\141\1\u155c\1\141\1\u12ec\1\141\1\u18a8\10\141"+ - "\1\u18a9\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u18aa\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a66"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u075e"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0b24"+ - "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18ab"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u18ac\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u18ad\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u18ae\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u18af\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u10d6\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u18b0\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u18b1\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u18b2\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u18b3\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u18b4\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u18b5\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u18b6\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u18b7\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u18b8\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u18b9\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u16c4\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u18ba\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u18bb\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u18bc\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u18bd\3\141\1\u18be\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u18bf\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u18c0\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u18c1\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u06f4\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u18c2\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u18c3\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u18c4\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u18c5\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u18c6\4\141\1\u18c7\7\141"+ - "\1\u18c8\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u03c0\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u18c9\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u18ca\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141"+ - "\1\u18cb\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18cc"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u18cd"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u18ce"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u18cf\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u18d0\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u18d1\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0c40\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u18d2\22\141\1\u1213\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u18d3\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u18d4\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u18d5\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u18d6\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u18d7\1\u18d8\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u18d9\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u18da\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u18db\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u18dc\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u18dd\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u18de\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u18df\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u18e0\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u18e1\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u18e2\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u0d73\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u18e3\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0cf6\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0c41\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u18e4\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u18e5\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u18e6\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u18e7\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u070e\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u18e8\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1411"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u18e9"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u18ea"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u18eb"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u18ec"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18ed"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u18ee"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u18ef"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18f0"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u18f1"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u18f2\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u14e4\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0687\5\141\1\u08a6"+ - "\3\141\1\u0610\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u18f3\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u18f4\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u0b65\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1485\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u18f5\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u175c\1\141\1\u18f6\5\141\1\u1715\3\141\1\u0610\5\141"+ - "\1\u1716\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0fec"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e8f\2\141"+ - "\1\u1760\7\141\1\u05cb\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u18f7\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u14e7"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141"+ - "\1\u12f1\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1396\4\141\1\u0768\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u18f8\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u139d\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u05e2\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u18f9\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u064e\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u18fa\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0993\11\141\1\u06b3\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u18fb\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0656\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u18fc\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u18fd\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u18fe\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u18ff\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0269\11\141\1\u1900\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1901\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1902\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u1903\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1904\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1905\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1906\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u171d\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u1907\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1908\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1909\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u190a\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u190b\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u190c\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\11\141\1\u190d\15\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u190e\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u190f\5\141\1\u1910\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132"; - - private static final String ZZ_TRANS_PACKED_5 = - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u084d\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\5\141\1\u1911\3\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u10c6\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1912\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1913\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1914\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1915\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1916\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1917\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u08ea\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1918\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0d24\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1919\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u191a\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1517\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u191b\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u191c\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u191d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u184b\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0d70\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u191e\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u05e2\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u191f\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u1920\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1921\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0e89\4\141\1\u1922\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1923\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1924\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1925\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1926\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0480\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0b91\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1927\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1928\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1929\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u192a\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\25\141\1\u192b\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u192c\1\141\1\u192d\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u192e\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1529\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u192e\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u192f\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0ada\3\141\1\u1930\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u098a\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0818\1\u1931\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1932\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1933\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1934\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u09f1\11\141\1\u0d5d"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u082f"+ - "\3\141\1\u031a\1\u1171\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1935\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0d1d\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1936\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1937\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1938\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1939\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u05b7\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u193a"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u193b"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u047b"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u05b7"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u05b7"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u05b7"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u193c"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0392"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0392\2\141"+ - "\1\u193d\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0392"+ - "\12\141\1\u193e\3\141\1\u193f\2\141\1\u05b7\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1940\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1941\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1942\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1943\10\141\1\u03d4"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1944\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1945\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1946\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u1947\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1948\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1949\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u103b\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u0455\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u0455\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u194a\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\25\141\1\u194b\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u18bf\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u194c\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u194d\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u194e\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u194f\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1439\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1950\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1951\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1952\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1953\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u1954\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u1955\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1956\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1957\21\141\1\u1958\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1959\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u195a\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u195b\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u195c\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\3\141\1\u195c\3\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u195d\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u195e\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u195f\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u1960\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1961\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1962\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1963\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u01fa\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u04ce\4\141\1\u1964\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1957\21\141\1\u155a\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1965\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u119c\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1966\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1967\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u1968\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1969\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0269\5\141\1\u044f\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u196a\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u196b\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u196c\11\141\1\u196d"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u196e"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u196f"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1970"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1971"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1972"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1973"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1974"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1975"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1976"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1977"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1978"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1979"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u197a"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u197b"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u197c\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u197d\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u197e\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u197f\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1980\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1981\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0bd8\10\141\1\u1482"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1982"+ - "\3\141\1\u1983\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1984\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1985\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1986"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1987\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u0461\1\141\1\u1988\4\141\1\u1989\1\141\1\u0610\1\141"+ - "\1\u0464\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u198a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u198b\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u198c\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\72\0\1\u0d88\126\0\1\u07a2\160\0\1\u0d88\40\0"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u198d"+ - "\15\141\1\u198e\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1643\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u198f\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1990\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u0d62\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1991\1\u0ae2\1\141\1\u16a9\13\141\1\u1992\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1993\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1994\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u1995\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1996\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u1997\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1097\2\141\1\u1998\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1999\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u199a\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u199b\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0269\4\141"+ - "\1\u199c\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u199d\1\141\1\u044f\1\u199e\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u199f\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u19a0\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u19a1\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u19a2\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u19a3\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1027\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u15c3\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1051\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1300\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u19a4\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u19a5\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\25\141\1\u19a6\1\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u19a7\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u19a8\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u19a9\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u19aa\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u19ab\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0e74\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1074\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u19ac\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u19ad\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u19ae\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u19af\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u06bb\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u06ee"+ - "\7\141\1\u0269\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u19b0\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u03a4"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u19b1\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u19b2"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u19b3"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0c40"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u044f"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u19b4"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u081f"+ - "\1\u17fe\21\141\1\u0779\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u19b5"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u19b6\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u19b7\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u19b8"+ - "\3\141\1\u08d0\1\141\1\u045c\3\141\1\u19b9\1\u060f\2\141"+ - "\1\u0464\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u19ba\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u19bb\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u19bc\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u05b0\14\141\1\u19bd\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u19be\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0699\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u19bf\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u19c0\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u19c1\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u098a"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u19c2\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u19c3\6\141\1\u0c97"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u19c4"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u19c5"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u19c6"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u090a\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0768"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u116d"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0b8b\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u19c7\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u19c8\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u19c9\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u19ca\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u19cb\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u19cc\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1207\5\141\1\u11b0\5\141\1\u19cd\3\141"+ - "\1\u19ce\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u19cf\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u19d0\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u19d1"+ - "\7\141\1\u19d2\2\141\1\u19d3\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u046a\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u19d4\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u19d5\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u19d6\10\141\1\u182d\1\u19d7\5\141\1\u19d8\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u19d9\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u19da\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u19db\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u19dc\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0bc5\5\141\1\u19dd\1\141"+ - "\1\u19de\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u19bc\5\141\1\u19df\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u1485\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u19e0\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u19e1\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u19da\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u19e2\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u19e3"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u19e4\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u19e5\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u19e6\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u0b0b\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u19e7\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u138a\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u138a\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b64\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u19e8\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u19e9\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u19ea\2\141"+ - "\1\u103a\13\141\1\u19eb\1\u19ec\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u19ed\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0bf1\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u19ee\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u19ef\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u19f0\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u19f1\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0eda\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u19f2\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u19f3\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u19f4\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u19f5\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1844\12\141\1\u19f6\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u19f7\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u19f8\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u19f9\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u19fa\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u19fb\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u19fc\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u19fd\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u19fe\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u19ff\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u1a00\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1a01\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0afc\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1a02\3\141\1\u1a03\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1a04\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u084f\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1a05\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u08bb\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1a06\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1a07\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\1\u1a08\6\141\1\132\10\0\6\141\1\0\10\141\1\u1a09"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0269\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1a0a\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1a0b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1a0c\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1a0d\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a0e"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1a0f\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1a10"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1a11\11\141\1\u12bc\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1a12\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1a13\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1a14\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u1a15\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1a16\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1a17\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u1a18\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1a19\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1a1a\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1a1b\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a1c"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a1d\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1290\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u1a1e\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u166e\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1a1f\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1a20\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1a21\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a22\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1a23\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1a24\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a25\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1a26\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1a27\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1a28\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a29\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u15f9\6\141\1\u1a2a\5\141\1\u1a2b\7\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1a2c\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1a2d\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1a2e\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u076a\1\u1a2f\2\141\1\u1a30\1\141"+ - "\1\u12ec\2\141\1\u164f\4\141\1\u1a31\7\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u1a32\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1a33\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1a34\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1a35\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1a36\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0d27\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u0614\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1a37\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1a38\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0e8f\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a39"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1a3a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a3b\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1a3c\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1a3d"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1a3e\3\141\1\u1a3f"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1a40\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1a41\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1a42\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1a43\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1a44\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u1549\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u15f9\6\141\1\u1a45"+ - "\2\141\1\u1a46\1\141\1\u0d02\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1a47\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1a48\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1274\5\141\1\u0d02\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1a49\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u125e\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1a4a\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1a4b\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0e10\1\141\1\u1a4c"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1a4d"+ - "\11\141\1\u1a4e\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1a4f\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1a50\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1a51\3\141\1\u0b05\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1a52\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1a53\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1a54\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1a55\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1a56\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1a57\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1a58\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1105\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u158b\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u10f4\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u1a59\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1a5a\2\141\1\u1a5b\1\u08ab\1\141\1\u1a5c\1\141"+ - "\1\u1a5d\1\141\1\u0208\1\u1a5e\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1a5f\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1a60\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1a61\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1a62\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1a63\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1a64\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1a65\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1a66\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u15ef\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1a67\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1a68\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1a69\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u0749\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1a6a\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1a6b\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1a6c\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0afc"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1a6d"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1485"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1a6e"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1a6f"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15f9"+ - "\3\141\1\u1a70\1\141\1\u1274\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1a71\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1a72\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1a73\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1a72\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1a74\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1a33\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1a75\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1a76\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u13ee\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u1a75\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a77"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1a78\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1a79\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1a7a\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1a7b\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1a7c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1a7d\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1a7e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u1a7f\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1a80\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u1a81\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u05b7\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1a82\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u05d8\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1a83\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1a84\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u0606\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1a85\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1a86\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u0f80\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u0461\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1013\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1a87\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1a88\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a89"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1a8a\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0788\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a8b\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\3\141\1\u1a8c"+ - "\3\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1a8d\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a8e\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1a8f\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1a90\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1a91\6\141\1\u1a92\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1a93\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1a8f\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1a94\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u1a95\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1a96\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1a97\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a98"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1a99\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1100\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141"+ - "\1\u1a9a\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a9b\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1a9c\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0e8b\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1a9d\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1a9e\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1a9f"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1aa0"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1aa1"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1aa2"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1aa3"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0687"+ - "\4\141\1\u0411\1\u090e\3\141\1\u153d\5\141\1\u1716\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u14e4\2\141\1\u0e8f"+ - "\2\141\1\u05dd\7\141\1\u05cb\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1aa4\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1aa5\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1aa6\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1aa7\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0485\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1aa4\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1aa8\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1aa9\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1aaa"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1aab\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1aac"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1aad"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1aae"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1aaf"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\4\141\1\u1ab0\4\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ab1\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1ab2\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1ab3\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u0ff4\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1ab4\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1ab5\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1ab6\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1ab7\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0a70\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1ab8\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1ab9\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0e88\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1aba\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1abb\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1abc\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1abd\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1abe\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1abf\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u1ac0\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1abf\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1ac1\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1ac2\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1ac3\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1ac4\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ac5"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u10d8\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1ac6\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1ac7\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ac8\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1ac9\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0ddf\1\141\1\u0409"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1aca"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u175d\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u0262\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u0411\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u06f5\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0f38\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1acb\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u12c9\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1acc\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u1acd\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1ace\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0ddc\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u05b7\1\u087a\1\141\1\u1acf\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0392\2\141\1\u05d1"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u087a"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1ad0"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f01"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u09a3"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ad1"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1ad2\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ad3\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11ba\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1ad4\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1ad5\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1ad6\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1ad7\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ad8\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1ad9\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ada\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1adb\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1ada\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1adc\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1434\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1add\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u0cf0\4\141\1\u06e9"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\3\141"+ - "\1\u1ade\3\141\1\132\10\0\6\141\1\0\10\141\1\u1adf"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u0e81\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141"+ - "\1\u0e17\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0c6e\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1964\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1ae0\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0ecd\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u1ae1\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u128a\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1ae2\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0916\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ae3\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1ae4"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1ae5"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u01fa"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ae6\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1ae7\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1ae8\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1ae9\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u05b2\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1aea\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1aeb\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1aec\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1aed\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u1aee\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1aef\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1af0\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1af1\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1af2\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u19b6\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1af3"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1af4\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1af5\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1af6\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1af7\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1af8\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1af9\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1afa\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1afb\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1afc\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u0d70\2\141\1\u1523\1\141\1\u1afd\1\u1523\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1afe\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1aff\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1b00\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1b01\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u1b02\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u1b03\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1b04\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u06fc\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1b05\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1b06\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1b07\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u040d\6\141\1\u1b08\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1b09\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1b0a\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1b0b\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1b0c\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u1b0d\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1b0e\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1b0f\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0db6\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0dcc\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1b10\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u08f6\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u0a3a\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u1b11\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u132b\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1b12\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1b13\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1b14\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1b15\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1b16\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1b17\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1b18\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1b19\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1b1a\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u1b1b\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1b1c\5\141\1\u1b1d\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1b1e\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1b1f\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1b20\20\141\1\u047b"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1b21"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u1b22"+ - "\2\141\1\u1b23\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\24\141\1\u1b24\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1b25\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1315\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u109d\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b26"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1b27\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u1b28\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1b29\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1b2a\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b2b"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b2c\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b2d\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e8f\2\141"+ - "\1\u1a11\7\141\1\u05cb\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1b2e\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1b2f\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0d65\12\141\1\u09a2\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u102f\2\141\1\u09fc\1\u040d"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1b30\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1b31\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u06bb\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b32\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u151f\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1b33\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b34\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u04ce\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1b35\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\26\141\1\u0269\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1391\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1b36\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1b37\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1b38\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1b39\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1b3a\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u0f95\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1b3b\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1b3c\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1b3d\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b3e"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1b3f\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1b40\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1b41\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1b42\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u097d\4\141\1\u1b43\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1b44\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u1b45\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1b46\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1b47\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1b48\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b49\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u05b7"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b4a"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1b4b"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b4c"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1b4d\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u099e\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1b4e\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u19bc\5\141\1\u1b4a"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u048b"+ - "\3\141\1\u1b4f\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1b50\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1b51\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b52"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1b53\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1b54\2\141\1\u1b55\1\141\1\u0411\1\u048b\3\141\1\u0610"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e8f"+ - "\1\141\1\u1b56\1\u0e91\1\u1b57\6\141\1\u05cb\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1b58\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u08f6\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1b59\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1b5a\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u0f61\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0868\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1b5b\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1b5c\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1b5d\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u1ac8\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1b5e\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1b5f\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1b60\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b61"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u19f7\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1b62\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1b63\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1b64\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1b65\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1b66\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0cf6\3\141\1\u0396\21\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u12a7\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1b67\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1b68\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u04ce\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0392\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1b69\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1b6a\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1b6b\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1b6c\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u1b6d\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1b6e\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1b6f\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1b70"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1a11\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1b71\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b72\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0ea0"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b73"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1a11"+ - "\11\141\1\u12bc\6\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1171\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1b74\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1b75\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1b76\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1b77\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u1b78\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u1b79\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1b7a"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b7b\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1b7c\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1b7d\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\6\141\1\u1b7e\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1b7f\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1b80\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0899\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1b81\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1b82\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u1b83\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1b84\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b85"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1b86\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1b87\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1b88\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1b89\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1b8a\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1b8b\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1b8c\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1b8d\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141"+ - "\1\u1b8e\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1b8f\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1b90\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b91"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1b92"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b93"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0881"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1271"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1b94"+ - "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1b95"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05dd"+ - "\5\141\1\u0610\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u175f\2\141\1\u05dd\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1b96\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1b97\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1b98\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1b99\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1b9a\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0b16\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1b9b\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1b9c\1\141\1\u1b9d\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1b9e\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1b9d\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1b9f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1ba0\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1ba1\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1ba2\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u0919\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1ba3\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1ba4\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u0afc\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1ba5\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1ba6\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1ba7\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1ba8\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u1ba9\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1baa\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1bab\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u173c\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1bac\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1bad\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u1bae\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0485\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1baf\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u047b\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1bb0\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1bb1\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1bb2\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u1bb3\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1bb4\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1bb5\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u04a1\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1bb6\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u1bb7\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u18b7\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1bb8\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1a82\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1872\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1bb9\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1bba\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1bbb\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u12d9\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1bbc\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1bbd\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1bbe\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u03d4\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u1bbf\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u12f1\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0b10\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1bc0\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u05d8\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1bc1\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1bc2\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1bc3"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1bc4\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u1bc5\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1bc6\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1bc7"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0add"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1bc8"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1bc9"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1bca"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0ad5"+ - "\4\141\1\u139b\11\141\1\u1213\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1bcb\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u0913\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u1bcc\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1bcd\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u1bce\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1bcf\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1bd0\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u11a8\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1bd1\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u05b1\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1bd2\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u0269\3\141\1\u08f6\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0705\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1bd3\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1bd4\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u18e8\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1bd5\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1bd6\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1bd7\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1bd8\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u166f\1\141\1\u1bd9\1\u1bda\1\u0903"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1bdb"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1bdc\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1bdd\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0204\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u122f\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1bde\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0783\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u18ff\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1bdf\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1be0\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u1235\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1be1\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u03c8\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u1be2\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1be3\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\20\141\1\u1be4\6\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1934\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1be5\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1be6\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1be7\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1009\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1be8\3\141\1\u0211\3\141\1\u0a66\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1be9\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1bea\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1beb\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1bec\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\7\141\1\u1bed\1\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1bee\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u1bef"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u03e4\3\141\1\u0723\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0e8b\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1bf0\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1bf1\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1bf2\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1003\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0392\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1bf3\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1bf4\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0e88\1\u0c6e\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1bf5\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u191f\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1bf6\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1bf7\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1bf8\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1bf9\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1bfa\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1bfb\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1bfc\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1bfd\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1bfe\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1bff\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u04ce\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u1931\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1c00\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1c01\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u16d5\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1c02"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1c03"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1c04\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u1aa6\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1487\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u0c6e\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1305\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1c05\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0455\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1c06\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1c07\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1c08\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1c09\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1c0a\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u1c0b"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1c0c\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1c0d\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u0291\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u104a\2\141\1\u1777\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u1c0e\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1c0f\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u08a6\3\141\1\u0610\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u156e\1\141\1\u08db"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1c10"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1c11"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u044f"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1c12"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1c13"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0ce4"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1c14\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0c40\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1c15\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1c16\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1c17\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1c18\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u176f\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1c19\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1c1a\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1c1b\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1973\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1c1c\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1c1d\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1c1e\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1c1f\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1bd2\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1c20\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1c21\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1c22\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1c23\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1c24\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c25"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1c26\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c27\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c28"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1c29\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1c2a\1\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1c2b\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0f6a\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1c2c\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1c2d\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1c2e\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1c2f\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1c30\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0754\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1c31\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1c32\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u18bf\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u0f25\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1c33\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1c34\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1c35\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1c36\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1c37\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u0174\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1c38\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1c39\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1c3a\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1c3b\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\11\141\1\u0e17\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u1c3c\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0a3a\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1c3d\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u040d\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u0c85\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1c3e\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1c3f\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u11e8\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1c40\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u1933\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1c41\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1c42\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1c43\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1bf2\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1c44\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u0bf1\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\20\141\1\u19ba\6\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1112\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c45"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u060f\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u0c7d\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1c46\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u16ca\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1c47\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1c48\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u05dd\12\141\1\u0eb0\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u1c49\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1c4a\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1c4b\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1c4c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u132b\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1c4d\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1c4e\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c4f"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c50\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1c51"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1c52"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1c53"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u045f\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1234\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1c54\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1b45\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1c55\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1b4f\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1c56\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1c57\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1c58\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1c59\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1c5a\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0df3\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1c5b\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u12f1\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1c5c\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1c5d\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0b0d\14\141\1\u01ea\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0ed2\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1c5e\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1c5f\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u1546\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1c60\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u0699\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1c61\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u1c62\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u11b6\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u0690\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1c63\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\10\141\1\u1c64\16\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u1c65\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1c66\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u19f7\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1c67\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1c68\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u19f7\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1c69\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u1c6a\15\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\5\141\1\u1c6b\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0e17\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u0d55\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u0687\7\141\1\u0627\1\141\1\u0610"+ - "\2\141\1\u06e9\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u08f6\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b1e"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c6c"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1a11"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1c6d"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1c6e"+ - "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1c6f"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1c70"+ - "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1c71"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1c72"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1c73"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1739\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0"; - - private static final String ZZ_TRANS_PACKED_6 = - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1c74\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1c75\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1c76\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1c77\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1c78\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\6\141"+ - "\1\u1c79\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u04f9\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1c7a\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08c1"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c7b"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c7c"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1b83"+ - "\2\141\1\u0cca\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1c7d\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c7e"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1c7f\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u14b2\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1c80\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c81\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u189c"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1c82\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1c83\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1c84\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1c85\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1c86\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1c87\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1c88\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1c89\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1c8a\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0269\5\141\1\u1c8b\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c8c\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u10d7\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1a3e\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1c8d\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u12f1\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1c8e\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1c8f\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1c90\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1c91\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1c92\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1c93\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1c94\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1c95\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1c96\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\20\141\1\u03ce\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\13\141\1\u1c97\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1c98\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u1019\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1c99\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u11df\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1c9a\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u11df\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1c9b\1\u1c9c\4\141\1\u1962\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u03a8\5\141\1\u1c9b\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1c9d\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u0cf0\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1c9e\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u044f\4\141\1\u1c9f\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1ca0\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1470\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u0a3a\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1ca1\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1ca2\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1a65\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1ca3\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1ca4\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1ca5\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1ca6\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1ca7\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u1ca8\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1ca9\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1caa\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u060b\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1cab\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\26\141\1\u1cac\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u1cad\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1cae\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u138a\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u1caf\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cb0"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1cb1\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u1cb2\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1cb3\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1cb4"+ - "\11\141\1\u093e\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1cb5\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0916\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1bd0\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0c74"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1013\4\141\1\u06b2\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u06f1\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\3\141"+ - "\1\u0269\3\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u0997\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1cb6\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1cb7\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1cb8\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\23\141\1\u1cb9\3\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0993\3\141\1\u1bb5\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1cba\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u18e8\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1cbb\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\17\141\1\u1cbc\7\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1bfa\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1cbd\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0c81\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1cbe\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1366\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\24\141\1\u1cbf\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1cc0\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u08f6\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1cc1\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1cc2\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\25\141\1\u1cc3\1\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1cc4\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1cc5\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1cc6\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1cc7\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1be8\6\141\1\u1cc8\1\u0a66\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1cc9\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0461\1\u1be8\1\u0d70\4\141\1\u1cca"+ - "\7\141\1\u084f\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1ccb\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1ccc\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1ccd\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cce"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1ccf\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1cd0\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1cd1\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1cd2\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1cd3\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0393\1\u1cd4\1\u0db7\2\141\1\u12ec\1\141\1\u06b4\1\u1cd5"+ - "\7\141\1\u0eee\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1cd6\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cd7"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cd8\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1cd9\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1cda\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1c6a\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0e17\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u132b\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1cdb\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u0ea5\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1237\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u08f6\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0455\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u08f5\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1cdc\3\141\1\u1cdd"+ - "\1\141\1\u1cde\1\141\1\u1cdf\5\141\1\u1ce0\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u11ea\1\141\1\u1ce1"+ - "\16\141\1\u08ef\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1ce2\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ce3"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0b16\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1ce4\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ce5\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u134a\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u03c3\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ce6\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ce7\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u153d\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ce8\2\141"+ - "\1\u1ce9\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1cea\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1212"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1ceb\12\141\1\u1cec\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u1ced\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1212"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1cec\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1cee\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1cef\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1cf0\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1cf1\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1cf2"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1112"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1cf3"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1cf4"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1cf5"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1cf6"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1cf7\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1cf8\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1cf9\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1cfa\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u1cfb\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1cfc\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u0610\7\141\1\u06ec"+ - "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1cfd"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1cfe"+ - "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1cff"+ - "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1d00"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d01"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1d02"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03ec"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1d03"+ - "\2\141\1\u1d04\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1d05\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1d06\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1d07\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1d08\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1d09\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1d0a\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u044e\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1d0b\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1d0c\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u082f\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1c6a\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1d0d\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d0e"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d0f"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0c93"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0b78"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b1f\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d10\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0925\12\141"+ - "\1\u0927\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1d11\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u1d12\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1d13"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1d14\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u17ea\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1d15\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1d16\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u19ea\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1d17\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u19d1\7\141\1\u19d2\1\141\1\u0208\1\u1d18"+ - "\2\141\1\u0464\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u1d19\15\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u1d1a\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d1b"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u1d1c\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u1d1d\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d1e\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1d1f"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1d20\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1d21\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1d22\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1c7c\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u1b45\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\1\u0400\6\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u0d37\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u118e\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1d23\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1d24\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0245\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u03c1\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1d25\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u1d26\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1d27\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1d28\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1d29\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\17\141\1\u0d3f\7\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1d2a\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u0e17\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1d2b\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1d2c\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u165d\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1d2d\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1d2e\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1d2f\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1d30\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1d31\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d32"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d33\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1d34"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d35\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1d36\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d37\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\7\141\1\u1d38\2\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1d39\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1d3a\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1684\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\1\141\1\u063c\5\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0971\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d3b\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d3c\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d3d\2\141"+ - "\1\u1d3e\13\141\1\u1d3f\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u0ee0\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1d40\1\u1d41\1\141\1\u11cd\1\141\1\u1d42"+ - "\1\141\1\u1d43\1\u18c3\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1d44\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d45"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1d46\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u122f\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1d47\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d48\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1d49"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1ca4"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0948"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d4a\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d4b\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1d4c\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1d4d\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d4e\2\141"+ - "\1\u1d4f\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u0208\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1d50\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u09bd\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1d51\12\141\1\u1c62\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1d52\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1d53\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\5\141\1\u09a9\1\141\1\u1d54\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u1d55\21\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u19db\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1d56\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1d57\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1d58\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1d59\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1d5a\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u0903\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0a07\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1d5b\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1a82\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u0687\2\141\1\u1d5c\21\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1d5d\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u0b65\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1d5e\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1d5f\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\1\141\1\u094a\5\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u0760\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1546\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1d60\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141"+ - "\1\u1d61\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u1d62\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1d63\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u0821\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1d64\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1d65\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1d66\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1d67\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u18e8\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1a91\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141"+ - "\1\u1d68\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1d69"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d6a"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d6b"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d5d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1d6c"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d6d\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u08f6\3\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1d6e\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0269\1\141"+ - "\1\u1be6\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1d6f\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u1d70\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d71"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1d72\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1cc6\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d73\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d74\3\141"+ - "\1\u0211\10\141\1\u111c\2\141\1\u1502\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u1d75\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1d76\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u12a7\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1d77\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\24\141\1\u19ce\2\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u1d78\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1d79\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1d7a\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1d7b\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1d7c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0db6\11\141\1\u1d7d\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u191b\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u0cab\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1d7e\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u13e2\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u176a\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1d7f\4\141\1\u1274\1\u1d80\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1d81\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1d82\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u05cb\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1d83\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1d84\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u03ec"+ - "\3\141\1\u1d85\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d86"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1d87\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1954\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u1d88\2\141\1\u1777\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u1d89\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u060e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1d8a\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1d8b\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d8c"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1d8d\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1d8e\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1d8f\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1d90\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1d91\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1d92\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1d93\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1d94\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1d95\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1d96\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0819\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1d97"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d98"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d99"+ - "\2\141\1\u1d9a\3\141\1\u1d9b\6\141\1\u1d9c\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1d9d\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1d9e\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1d9f\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1b02\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1da0\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1da1\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1da2\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u13ee\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1da3\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1da4\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1da5\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\25\141\1\u1da6\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1da7\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u0818\2\141\1\u1da8\3\141"+ - "\1\u0a53\2\141\1\u0830\2\141\1\u1da9\1\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\3\141\1\u0aec\3\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1daa\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1dab\2\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1dac\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dad\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u060b\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u18e3\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1dae\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1daf\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1db0\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1db1\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1db2\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0679\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u0bc5\2\141\1\u1db3"+ - "\4\141\1\u1db4\2\141\1\u1db5\6\141\1\u08ef\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1db6\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u1db7\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u1b9a\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1db8\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1db9\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1dba\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u19d6\1\u1dbb\4\141\1\u1dbc\1\141\1\u1dbd"+ - "\1\u182d\6\141\1\u19d8\6\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1dbe\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1dbf\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u0bc5\3\141\1\u03e4\14\141\1\u1dc0\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1dc1\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0901\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1cdc\1\u1dc2\1\u03e4"+ - "\1\141\1\u101e\1\141\1\u0723\1\141\1\u1dc3\6\141\1\u1dc4"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1dc5"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1dc6"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0f1e"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1dc7"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0b05"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dc8"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1dc9"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1dca"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u1dcb"+ - "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1dcc"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u185a"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1dcd"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1dce"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1dcf"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1dd0"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dd1"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dd2"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1dd3"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1dd4"+ - "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1dd5"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1dd6\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\4\141\1\u0269\4\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1dd7\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1934\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1dd8\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1dd9\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1dda\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u0dda\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1ddb\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1ddc\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1ddd\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1dde\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1ddf\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1de0\1\141\1\u0d73\1\u1de1\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1de2\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1de3\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u122f\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1de4\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1de5\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1de6\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1de7\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1de8\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1271\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u1de9\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u1dea\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1deb\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u1dec\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1453\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1ded\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u03cd\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1dee\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1def\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1df0\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1df1\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1df2\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u0dd3\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\24\141\1\u1df3\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1df4\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1df5\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u1df6\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u1ca9\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1df7"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1df8\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1df9\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1dfa\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1dfb\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1b7b\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1dfc\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1dfd\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1dfe\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1dff\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\17\141\1\u1e00\7\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1e01\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1e02\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1e03\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u1e04\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1e05\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1e06\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u1e07\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1d74\14\141\1\u111c\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e08\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u13b5\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1e09\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\24\141\1\u1e0a\2\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1e0b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1e0c\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1e0d\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e0e"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u155c\3\141\1\u1351\10\141\1\u0411\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u155c\3\141\1\u1351\7\141"+ - "\1\u0945\1\u0411\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1e0f\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0c85"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0699"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1e10\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u03c6\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1395\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u0f6b\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1e11\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1e12\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1350\1\141\1\u11d2"+ - "\6\141\1\u0e81\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u1e13\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1e14\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e15\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1e16\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1e17\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u045c\4\141"+ - "\1\u0848\5\141\1\u1e18\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1e19\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1e1a\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1e1b\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u1e1c\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1e1d\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u1e1e\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1e1f\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1e20\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1e21\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e22\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1e23"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1e24"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1e25"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1e26"+ - "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u102f"+ - "\2\141\1\u1bf1\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u0dc8\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1e27\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1e28\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1e29\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1e2a\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u18e3\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1e2b\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1e2c\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1885"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u18cc\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0bef\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1e2d\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u01fa"+ - "\20\141\1\u1e2e\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\11\141\1\u0614\10\141\1\u0614\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1e2f\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1d09\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1dab\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1e30\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e31\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e32\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e33\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e34\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e35\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u11a8\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e36\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e37\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1e38\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1e39\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1e3a\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1e3b\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1b0d\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1e3c\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\7\141\1\u1e3d\17\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1e3e\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1e3f\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u12f1\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u08e6\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1e40\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1e41\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1e42\1\u0913\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1e43\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1e44\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e45\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u0269\5\141\1\u0827\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1e46\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u1e47\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1e48\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u12a7\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u1e49\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u0f1f\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1105\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1e4a\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e4b\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1e4c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u1e4d\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1e4e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\14\141\1\u1e4f\12\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1e50\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1492\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1e51\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0f4a"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u1e52\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u0ed9\11\141\1\u1b98\13\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u0dda\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1e53\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1e54\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u0690\10\141\1\u1e55\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u06bb\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e56\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e57\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1e58\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u1e59\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1e5a\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1e5b\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1e5c\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e5d\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e5e\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1e5f\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u11b1\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\141\1\u1e60\25\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\26\141\1\u1e61\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141"+ - "\1\u0fd6\15\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u11df\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1e62\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1e63\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1470\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141"+ - "\1\u1e64\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1e65\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1e66"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1e67"+ - "\2\141\1\u045c\3\141\1\u12db\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1e68\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e69\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1be5\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u04ae\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1e6a\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1e6b\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1e6c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e6d\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1e6e\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1e6f\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\23\141\1\u0fcf\3\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1e70\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0a07\25\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1e71\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\u1e72\26\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1e73\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e74"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1e75\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1e76\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1e77\25\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1e78\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1e79\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141"+ - "\1\u1e7a\21\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u1e7b\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u047b\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u0388\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u0eeb\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1240\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1e7c\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1957"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1e7d"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1d8a"+ - "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1e7e"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1e7f"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1e80"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1e81"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1e82\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1e83\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1e84\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1e85\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1e86\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1e87\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1e88\1\141\1\u1e89\1\u1e8a"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1ca2"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u198e"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1e8b\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1e8c\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1e8d\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1e8e\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1e8f\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0c81\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1e90\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1e91\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1e92\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\1\u1e93\6\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u06bb\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u15b8\6\141\1\u1e94\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1e95\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1e96\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u1e97\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1e98\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u08ed\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1e99\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1e9a\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1e9b\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1e9c\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u1e9d\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1e9e\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1e9f\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u1ea0\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1ea1\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u0df3\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1ea2\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1ea3\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u04be\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1ea4\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u08f6\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u04ec\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1ea5\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1dcb\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ea6"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ea7\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ea8\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ea9\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1eaa\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1eab\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u0841\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1eac\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u0e88\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1ead\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\24\141\1\u1eae\2\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u1eaf\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u12fc\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1eb0\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1eb1\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1eb2\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u10bd\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u188c\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u0e0c\2\141\1\u1b98"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0cba"+ - "\3\141\1\u1eb3\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1eb4\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u138a\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1eb5\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u0b16\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1eb6"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1eb7\20\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1eb8\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1df6\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u0840\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1eb9\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1eba\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1c48\7\141\1\u1ebb"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0e7d"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ebc"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1ebd"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ebe"+ - "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u04ce"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ebf\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0eff\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0b78\13\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ec0\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1009\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ec1\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1ec2\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1ec3\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u08f6\3\141"+ - "\1\u0eb4\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u0986\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141"+ - "\1\u041e\1\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1ec4\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1ec5\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1b1e\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1ec6\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ec7"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1ec8"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ec9"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1eca\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u136b\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1ecb\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1ecc\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1ecd\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1ece\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\21\141\1\u1ecf\5\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u1ed0\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1ed1\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\23\141\1\u1ed2\3\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\16\141\1\u1ed3\10\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1ed4\26\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1ed5\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1ed6\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ed7"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1ed8\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1ed9\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1eda\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1edb\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u09e1\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141"+ - "\1\u06b2\7\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1edc\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1edd\6\141\1\u0f73\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1ede\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\15\141\1\u1edf\11\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1db3\16\141\1\u08ef\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1ee0\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1ee1\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1ee2\1\141\1\u1dbd\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1ee3\6\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1ee4\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1ee5\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1ee6\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ee7\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\u1ee8\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1ee9\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1eea\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1eeb\11\141\1\u1eec\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1eed\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u1eee\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1dcf\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1eef\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u0fda\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1ef0\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1dd3\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u0bcc\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1ef1\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1ef2\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1ef3\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u087a\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u10d5\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u0e17\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1ef4\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1ef5\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u1ef6\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\21\141\1\u1d7f\5\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\10\141\1\u1ef7\16\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\1\141\1\u0ed9\12\141\1\u0610\4\141\1\u1ef8\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0945\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1ef9\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1ca4\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1efa\3\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1efb\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1efc\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1009\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\u1efd\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1efe\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1eff\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1f00\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1f01\11\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1f02\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1f03\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1f04\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1f05\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1f06\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1f07\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1f08\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1f09\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1f0a\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1f0b\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u1f0c\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1f0d\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\7\141\1\u1f0e\17\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1f0f\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1f10\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u1f11\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\u1f12\1\141\1\u1f13\1\u1f14\4\141\1\u1f15"+ - "\2\141\1\u1f15\1\141\1\u1f16\7\141\1\u1f17\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1f18\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1f19\3\141\1\u123f\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1f1a\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1f1b\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1f1c\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1f1d\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1bb5\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u118e\10\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1cda\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0b16\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1f1e\17\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1f1f\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u12f1\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1f20\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1f21\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u0c7d\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1f22\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\13\141\1\u1e46\13\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1f23\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1f24\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1f25\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1a3e\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1f26\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1f27\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1f28\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1f29\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u0d02\3\141\1\u1802\4\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0776\2\141"+ - "\1\u1eb3\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141"+ - "\1\u1802\4\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1cda\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u0396\7\141\1\u1f2a\14\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1f2b\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\4\141\1\u1f2c\22\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\6\141\1\u1f2d\20\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\12\141\1\u1a91\3\141\1\u1a8d\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u12a9\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1f2e\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\11\141\1\u1f2f\15\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\u1f30\26\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\22\141\1\u1f31\4\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1f32\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1f33\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u1f34\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1f35\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\21\141\1\u1cec\5\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0748"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1f36\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1f37\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1f38\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141"+ - "\1\u1f39\20\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1f3a\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1f3b"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1f3c"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1f3d"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1f3e\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1f3f\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1f40\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1f41\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u1f42\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1f43\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1f44\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1f45\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1f46\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1f47\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u08bb\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1f48\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1f49\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u05d9\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0c24\5\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\3\141\1\u1f4a\23\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\13\141\1\u1f4b\13\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u063d\4\141\1\u1f4c\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1f4d\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1f4e\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1f4f\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\2\141\1\u1f50\24\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\6\141\1\u1f51\20\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\14\141\1\u1f52\12\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1f53\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1f54\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\16\141\1\u1f55\10\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1f56\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u08de\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1f57\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\5\141\1\u12ec\21\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\12\141\1\u0b78\14\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u152c\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\7\141\1\u10d7\17\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\24\141\1\u0480\2\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1f58\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\3\141\1\u1b20\23\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1f59\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u15b0\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1f5a\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1f5b\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1e20\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1f5c"+ - "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1f5d"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1271"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1f5e"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\10\141\1\u1f5f\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1c38\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1f60\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1f61\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1f62\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1f63\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\22\141\1\u1f64\4\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1f65\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1f66\11\141\1\u1f67"+ - "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1f68"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1f69"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1f6a"+ - "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1e0b"+ - "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1f6b"+ - "\1\u060f\13\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141"+ - "\1\u1f6c\10\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1f6d\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1f6e\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1f6f\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141"+ - "\1\u1f70\12\141\1\u0b28\2\141\1\u1f71\1\141\1\u1f72\1\141"+ - "\1\u1f73\3\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1f74\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1f75\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141"+ - "\1\u1f76\5\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1f77\3\141\1\u04c5\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1b78\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\u1f78\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141"+ - "\1\u1f79\14\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u065d"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\u1f7a\26\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1f7b\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1f7c\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1f7d\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1f7e\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\6\141\1\u1271\20\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1f7f\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1f80\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1f3c\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1f81\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1f82\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1f83\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1f84\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1f85\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1f86\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1f87\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1f88\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1f89\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\2\141\1\u1f8a\24\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\7\141\1\u1b4f\17\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1f8b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\13\141\1\u1f8c\13\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\15\141\1\u1f8d\11\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1f8e\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1f8f\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1f90\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1f91\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1f92\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1f93\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1f94"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1f95\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141"+ - "\1\u1f96\22\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1f2d\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141"+ - "\1\u1f97\23\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141"+ - "\1\u1f98\2\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1f99\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u06b4"+ - "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1e20"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1f9a"+ - "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1f9b"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1a84\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1f9c\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u1f9d\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1f9e\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1f9f\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1fa0\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\24\141\1\u1fa1\2\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\10\141\1\u1fa2\16\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u156e\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1fa3\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1fa4\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\11\141\1\u182d\6\141\1\u19d8\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1fa5\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\141\1\u1ee4\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\21\141\1\u1fa6\5\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1fa7\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1fa8\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1a58\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1fa9\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1faa\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\12\141\1\u1fab\14\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1fac\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\13\141\1\u1fad\13\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\23\141\1\u1fae\3\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\6\141\1\u1faf\20\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\5\141\1\u0396\13\141\1\u0e88\5\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1fb0\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1fb1\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1fb2\1\u1e77\25\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\10\141\1\u1fb3\16\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1fb4\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1fb5\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u1fb6\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1f68\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1fb7\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\25\141\1\u1fb8\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\11\141\1\u1fb9\15\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\3\141\1\u1fba\23\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1fbb\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u1fbc\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\20\141\1\u1a58\6\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1a58\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\1\141\1\u15e9\25\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\15\141\1\u0df3\11\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1fbd\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\4\141\1\u1fbe\22\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u12fc\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\2\141\1\u190a\24\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\3\141\1\u1fbf\23\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\u1fc0\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\14\141\1\u1fc1\12\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\22\141\1\u1fc2\4\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141"+ - "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141"+ - "\14\0\3\141\1\u1fc3\23\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1fc4\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1fc5\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1fc6\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1fc7\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\6\141\1\u1fc8\20\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1fc9\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141"+ - "\1\u1fca\6\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u1fcb\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1fcc\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u05d1"+ - "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1fcd"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1435"+ - "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1fce"+ - "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1fcf"+ - "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0776\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1fd0\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1fd1\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1fd2\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1fd3\17\141"+ - "\1\0"; - - private static final String ZZ_TRANS_PACKED_7 = - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\12\141\1\u1fd4\14\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1fd5\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u1fd6\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\7\141\1\u1fd7\17\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u1fd8\2\141\1\u106b\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1271\21\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1fd9\23\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1fda\14\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1fdb\24\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1fdc\25\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1fdd\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1fde\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\20\141\1\u1fdf\6\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\15\141\1\u1fe0\11\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1fe1\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1fe2\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\14\141\1\u1fe3\12\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\16\141\1\u1fe4\10\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u1fe5\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\23\141\1\u1fe6\3\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u1fe7\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u1fe8\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\10\141\1\u1fe9\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\4\141\1\u1fea\22\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\1\141\1\u1feb\25\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\10\141\1\u1fec\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141"+ - "\1\u1fed\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1fee\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\10\141\1\u1fef\16\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\1\u1ff0\26\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141"+ - "\1\u1ff1\17\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141"+ - "\1\u1ff2\24\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141"+ - "\1\u1ff3\11\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141"+ - "\1\u1ff4\16\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141"+ - "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141"+ - "\1\u15e1\12\141\1\0\4\141\1\132\4\0\12\141\1\0"+ - "\7\141\1\132\10\0\6\141\1\0\10\141\1\u129d\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ff5"+ - "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u14a3"+ - "\15\141\1\u14a3\7\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\2\141\1\u10f5\24\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1ff6\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1ff7\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\4\141\1\u1ff8\22\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\16\141\1\u1ff9\10\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\22\141\1\u1ffa\4\141\1\0\4\141\1\132\4\0\12\141"+ - "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0"+ - "\1\u1ffb\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0"+ - "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141"+ - "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ffc\26\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1ffd\22\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1023\12\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ffe\16\141"+ - "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132"+ - "\10\0\6\141\1\0\10\141\1\u1fff\1\0\1\141\1\0"+ - "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\10\141\1\u2000\1\0\1\141\1\0\1\132"+ - "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\22\141\1\u0d65\4\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0"+ - "\11\141\1\u0b78\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\12\141\1\u2001\14\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\15\141\1\u2002\11\141\1\0\4\141\1\132"+ - "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0"+ - "\11\141\1\0\1\u1dd6\1\0\1\132\1\u015c\1\141\1\0"+ - "\2\141\14\0\21\141\1\u0e88\3\141\1\u041e\1\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\5\141\1\u0ad5\21\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\2\141\1\u2003\24\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\4\141\1\u060f\22\141\1\0"+ - "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0"+ - "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c"+ - "\1\141\1\0\2\141\14\0\1\u2004\26\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\16\141\1\u2005\10\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141"+ - "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141"+ - "\1\0\2\141\14\0\14\141\1\u2006\12\141\1\0\4\141"+ - "\1\132\4\0\12\141\1\0\7\141"; - - private static int [] zzUnpackTrans() { - int [] result = new int[775418]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_2, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_3, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_4, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_5, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_6, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_7, 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\5\0\2\1\1\0\2\1\1\0\2\1\14\0\1\1"+ - "\5\0\2\1\1\11\4\1\1\11\5\1\2\11\3\1"+ - "\1\11\1\1\3\11\1\1\1\11\26\1\1\11\1\1"+ - "\1\11\1\1\7\11\1\1\1\11\2\1\2\11\10\1"+ - "\1\11\3\1\1\11\22\1\2\11\1\1\1\11\2\1"+ - "\1\11\1\1\1\11\1\1\1\11\2\1\1\11\6\1"+ - "\1\11\10\1\1\11\4\1\1\11\1\1\1\11\42\1"+ - "\1\11\3\1\1\11\2\1\2\11\3\1\1\11\1\1"+ - "\3\11\1\1\1\11\4\1\1\11\1\1\3\11\4\1"+ - "\4\11\1\1\1\11\6\1\7\11\2\1\1\11\2\1"+ - "\1\11\1\1\1\11\1\1\1\11\5\1\1\11\5\0"+ - "\105\1\1\11\2\0\1\1\1\0\1\11\1\0\76\1"+ - "\1\11\3\1\1\0\1\11\6\0\2\11\33\0\13\1"+ - "\1\11\307\1\2\11\1\1\1\11\1\0\1\11\1\1"+ - "\15\0\1\1\1\11\5\0\1\1\1\0\3\11\3\1"+ - "\2\0\1\11\4\0\101\1\3\0\5\1\1\0\67\1"+ - "\71\0\u0185\1\25\0\2\1\1\11\3\0\45\1\3\0"+ - "\1\11\43\1\2\0\1\11\4\0\1\1\2\0\1\1"+ - "\41\0\1\11\24\0\u01fb\1\17\0\1\11\4\0\2\1"+ - "\1\11\2\0\25\1\1\11\1\0\1\11\25\1\2\11"+ - "\17\0\1\1\23\0\1\1\12\0\u0278\1\16\0\14\1"+ - "\1\0\14\1\34\0\u02b3\1\12\0\4\1\1\0\6\1"+ - "\2\0\1\1\1\0\1\1\14\0\u02d6\1\6\0\1\1"+ - "\1\0\2\1\7\0\u02a1\1\1\11\4\0\1\1\1\11"+ - "\1\1\1\11\2\0\1\11\u0267\1\4\0\u021c\1\3\0"+ - "\1\11\u083e\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[8198]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int PHP = 19; + public static final int INATTR_SINGLE_SCRIPT = 9; + public static final int JS_CHAR = 14; + public static final int CSS_STRING = 26; + public static final int JS_DOCCOMMENT = 17; + public static final int JS_MLC = 16; + public static final int CSS_CHAR_LITERAL = 27; + public static final int INTAG_SCRIPT = 7; + public static final int JS_TEMPLATE_LITERAL_EXPR = 30; + public static final int CSS_PROPERTY = 24; + public static final int CSS_C_STYLE_COMMENT = 28; + public static final int PHP_MLC = 20; + public static final int CSS = 23; + public static final int CSS_VALUE = 25; + public static final int COMMENT = 1; + public static final int INATTR_DOUBLE_SCRIPT = 8; + public static final int PHP_STRING = 21; + public static final int JAVASCRIPT = 13; + public static final int INTAG = 3; + public static final int INTAG_CHECK_TAG_NAME = 4; + public static final int INATTR_SINGLE_STYLE = 12; + public static final int DTD = 2; + public static final int PHP_CHAR = 22; + public static final int JS_EOL_COMMENT = 18; + public static final int INATTR_DOUBLE_STYLE = 11; + public static final int INATTR_SINGLE = 6; + public static final int JS_TEMPLATE_LITERAL = 29; + public static final int YYINITIAL = 0; + public static final int INATTR_DOUBLE = 5; + public static final int JS_STRING = 15; + public static final int INTAG_STYLE = 10; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\4\1\2\1\0\1\1\1\33\22\0\1\4\1\51\1\7" + + "\1\34\1\36\1\50\1\5\1\116\1\114\1\113\1\37\1\42\1\45" + "\1\31\1\43\1\10\1\25\1\137\1\132\1\136\1\134\1\126\1\133" + + "\1\27\1\140\1\24\1\53\1\6\1\3\1\46\1\17\1\52\1\112" + "\1\110\1\26\1\12\1\41\1\22\1\107\1\121\1\125\1\14\1\127" + + "\1\122\1\21\1\120\1\111\1\117\1\15\1\123\1\13\1\11\1\16" + "\1\106\1\124\1\23\1\40\1\20\1\23\1\115\1\35\1\115\1\47" + + "\1\30\1\131\1\64\1\67\1\70\1\77\1\62\1\63\1\71\1\73" + "\1\56\1\135\1\76\1\65\1\57\1\72\1\74\1\100\1\104\1\61" + + "\1\66\1\60\1\32\1\102\1\75\1\103\1\101\1\130\1\105\1\55" + "\1\44\1\54\uff81\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\2\1\1\0\2\1\1\0\2\1\14\0\1\2" + "\5\0\2\2\1\3\1\4\1\5\1\6\1\1\1\7" + + "\5\1\1\10\1\11\3\12\1\13\1\14\1\15\1\16" + "\1\17\1\20\1\21\1\22\2\20\2\22\3\20\2\22" + + "\3\20\1\22\5\20\1\22\1\1\1\23\1\24\1\1" + "\1\25\1\14\1\26\1\27\1\30\1\31\1\32\1\33" + + "\1\34\1\35\1\36\2\16\1\2\1\37\1\16\2\2" + "\1\16\2\40\1\16\1\2\1\35\2\16\1\2\1\41" + + "\1\35\21\2\1\42\1\43\1\1\1\44\1\23\1\45" + "\1\46\1\1\1\47\1\23\1\50\1\51\1\1\1\52" + + "\6\1\1\53\10\1\1\54\4\1\1\55\1\16\1\56" + "\1\16\3\2\1\57\1\2\1\16\32\2\1\35\1\60" + "\2\2\1\1\1\61\2\1\1\62\1\63\1\64\2\1" + + "\1\65\1\66\1\67\1\70\1\71\1\70\1\72\1\70" + "\1\73\1\70\1\74\1\75\1\70\1\76\1\77\1\100" + + "\2\77\1\101\1\77\1\102\1\103\1\104\1\105\1\104" + "\1\106\2\2\1\40\1\2\2\104\1\107\1\110\1\111" + + "\1\112\1\113\1\114\1\115\2\1\1\116\1\117\1\120" + "\1\121\1\1\1\122\1\1\1\123\1\4\2\124\1\125" + + "\1\126\1\6\5\0\1\127\32\20\2\22\2\20\1\22" + "\44\20\1\130\1\131\2\0\1\127\1\0\1\132\1\0" + + "\1\133\1\16\1\35\1\2\1\16\1\134\1\40\1\134" + "\2\135\1\134\1\136\1\134\2\2\1\101\1\2\1\101" + + "\45\2\1\101\5\2\1\137\1\140\1\141\1\142\1\143" + "\1\0\1\144\6\0\1\145\1\146\33\0\1\147\11\2" + + "\1\150\1\151\105\2\1\101\102\2\1\101\23\2\1\152" + "\4\2\1\101\1\2\1\152\30\2\1\153\12\2\1\154" + + "\1\64\1\155\1\66\1\0\1\156\1\150\15\0\1\157" + "\1\40\5\0\1\40\1\0\1\160\1\161\1\162\1\163" + + "\2\124\2\0\1\164\4\0\1\12\14\20\1\22\63\20" + "\3\0\1\165\1\166\1\35\1\2\1\135\1\0\2\136" + + "\4\2\1\73\23\2\1\167\34\2\71\0\14\2\1\101" + "\53\2\1\152\22\2\1\152\13\2\1\152\44\2\1\152" + + "\3\2\1\152\27\2\1\101\16\2\1\152\2\2\1\152" + "\13\2\1\152\16\2\1\152\65\2\1\152\5\2\1\152" + + "\11\2\1\152\61\2\1\152\1\2\1\152\44\2\1\152" + "\6\2\1\101\15\2\1\35\13\2\25\0\2\124\1\170" + + "\3\0\1\171\1\12\21\20\1\22\17\20\1\22\1\20" + "\3\0\1\172\1\35\7\2\1\173\4\2\1\174\5\2" + + "\1\73\17\2\2\0\1\1\4\0\1\175\2\0\1\176" + "\41\0\1\177\24\0\1\200\15\2\1\152\21\2\1\152" + + "\77\2\1\152\3\2\1\152\16\2\1\152\22\2\1\152" + "\1\2\1\101\11\2\1\201\3\2\1\152\6\2\1\152" + + "\3\2\1\152\15\2\1\152\16\2\1\152\4\2\1\152" + "\11\2\2\152\12\2\1\152\156\2\1\152\11\2\2\152" + + "\122\2\2\152\24\2\1\152\63\2\1\35\12\2\17\0" + "\1\101\4\0\2\124\1\126\2\0\1\127\17\20\1\22" + + "\4\20\1\130\1\0\1\127\1\35\5\2\1\101\3\2" + "\1\101\12\2\1\137\1\143\17\0\1\177\23\0\1\177" + + "\12\0\56\2\1\152\53\2\1\152\44\2\1\152\41\2" + "\1\152\2\2\3\152\6\2\1\101\135\2\1\152\35\2" + + "\1\152\13\2\1\152\13\2\1\101\1\152\1\101\6\2" + "\1\152\1\101\251\2\1\152\17\2\1\152\23\2\1\101" + + "\102\2\1\152\13\2\1\152\2\2\1\35\14\2\16\0" + "\1\124\1\202\12\20\1\0\1\35\13\2\34\0\14\2" + + "\1\152\41\2\1\152\2\2\1\152\31\2\1\152\106\2" + "\1\152\7\2\1\152\1\2\2\152\54\2\2\152\16\2" + + "\1\152\26\2\1\152\130\2\1\152\163\2\2\152\31\2" + "\1\152\20\2\1\152\103\2\1\152\1\2\1\152\17\2" + + "\1\152\1\2\1\101\13\2\1\101\131\2\1\35\12\2" + "\12\0\1\203\3\20\1\0\6\2\2\0\1\177\1\0" + + "\1\177\14\0\35\2\1\152\105\2\1\152\10\2\1\101" + "\17\2\1\152\113\2\1\152\23\2\2\152\4\2\1\152" + + "\134\2\1\152\133\2\1\152\10\2\1\152\1\2\1\152" + "\2\2\1\152\34\2\1\152\1\2\1\152\6\2\1\152" + + "\331\2\1\152\42\2\1\35\11\2\6\0\1\20\1\0" + "\2\2\7\0\303\2\1\152\24\2\1\101\46\2\1\152" + + "\50\2\1\152\141\2\1\152\14\2\1\152\60\2\1\152" + "\54\2\1\152\170\2\1\152\15\2\1\152\4\2\1\152" + + "\37\2\1\204\4\0\1\20\1\205\1\2\1\206\2\0" + "\1\207\12\2\1\152\14\2\1\152\1\2\1\152\12\2" + + "\1\152\5\2\1\152\7\2\1\152\70\2\1\152\150\2" + "\1\152\174\2\1\152\15\2\1\152\57\2\2\152\12\2" + + "\1\152\135\2\1\152\13\2\1\152\62\2\1\152\36\2" + "\1\152\17\2\4\0\263\2\2\152\72\2\1\152\134\2" + + "\1\152\13\2\1\152\124\2\1\152\15\2\1\152\132\2" + "\1\152\5\2\3\0\1\210\13\2\1\152\21\2\1\152" + + "\14\2\1\152\144\2\1\152\1\2\1\152\72\2\1\152" + "\122\2\1\152\153\2\1\152\24\2\1\152\120\2\1\152" + + "\13\2\1\152\157\2\1\152\113\2\1\152\10\2\1\152" + "\2\2\1\152\4\2\1\152\55\2\1\152\25\2\1\152" + + "\12\2\1\152\4\2\1\152\116\2\1\152\47\2\1\152" + "\104\2\1\152\51\2\1\152\21\2\1\152\32\2\1\152" + + "\23\2\1\152\24\2\1\152\27\2\1\152\5\2\1\152" + "\7\2\1\152\13\2\1\152\75\2\1\152\16\2\1\152" + + "\2\2\1\152\3\2\1\152\137\2\1\152\33\2\1\152" + "\13\2\1\152\10\2\1\152\151\2\1\152\107\2\1\152" + + "\4\2\1\152\74\2\1\152\1\2\1\152\3\2\1\152" + "\25\2\1\152\110\2\1\152\54\2\1\152\7\2\1\152" + + "\61\2\1\152\12\2\1\152\165\2\1\152\157\2\1\152" + "\33\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[8198]; + 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\141\0\302\0\u0123\0\u0184\0\u01e5\0\u0246\0\u02a7" + + "\0\u0308\0\u0369\0\u03ca\0\u042b\0\u048c\0\u04ed\0\u054e\0\u05af" + + "\0\u0610\0\u0671\0\u06d2\0\u0733\0\u0794\0\u07f5\0\u0856\0\u08b7" + + "\0\u0918\0\u0979\0\u09da\0\u0a3b\0\u0a9c\0\u0afd\0\u0b5e\0\u0bbf" + + "\0\u0c20\0\u0c81\0\u0ce2\0\u0d43\0\u0da4\0\u0e05\0\u0c81\0\u0e66" + + "\0\u0ec7\0\u0f28\0\u0f89\0\u0fea\0\u0c81\0\u0c81\0\u104b\0\u10ac" + + "\0\u110d\0\u0c81\0\u116e\0\u0c81\0\u0c81\0\u0c81\0\u11cf\0\u0c81" + + "\0\u1230\0\u1291\0\u12f2\0\u1353\0\u13b4\0\u1415\0\u1476\0\u14d7" + + "\0\u1538\0\u1599\0\u15fa\0\u165b\0\u16bc\0\u171d\0\u177e\0\u17df" + + "\0\u1840\0\u18a1\0\u1902\0\u11cf\0\u1963\0\u19c4\0\u0c81\0\u1a25" + + "\0\u0c81\0\u1a86\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81" + + "\0\u0c81\0\u1ae7\0\u0c81\0\u1b48\0\u1ba9\0\u0c81\0\u0c81\0\u1c0a" + + "\0\u1c6b\0\u1ccc\0\u1d2d\0\u1d8e\0\u1def\0\u1e50\0\u1eb1\0\u0c81" + + "\0\u1f12\0\u1f73\0\u1fd4\0\u0c81\0\u2035\0\u2096\0\u20f7\0\u2158" + + "\0\u21b9\0\u221a\0\u227b\0\u22dc\0\u233d\0\u239e\0\u23ff\0\u2460" + + "\0\u24c1\0\u2522\0\u2583\0\u25e4\0\u2645\0\u26a6\0\u0c81\0\u0c81" + + "\0\u2707\0\u0c81\0\u2768\0\u27c9\0\u0c81\0\u282a\0\u0c81\0\u288b" + + "\0\u0c81\0\u27c9\0\u28ec\0\u0c81\0\u294d\0\u29ae\0\u2a0f\0\u2a70" + + "\0\u2ad1\0\u2b32\0\u0c81\0\u2b93\0\u2bf4\0\u2c55\0\u2cb6\0\u2d17" + + "\0\u2d78\0\u2dd9\0\u2e3a\0\u0c81\0\u2e9b\0\u2efc\0\u2f5d\0\u2fbe" + + "\0\u0c81\0\u301f\0\u0c81\0\u3080\0\u30e1\0\u3142\0\u31a3\0\u3204" + + "\0\u3265\0\u32c6\0\u2035\0\u3327\0\u3388\0\u33e9\0\u344a\0\u34ab" + + "\0\u350c\0\u356d\0\u35ce\0\u362f\0\u3690\0\u36f1\0\u3752\0\u37b3" + + "\0\u3814\0\u3875\0\u38d6\0\u3937\0\u3998\0\u39f9\0\u3a5a\0\u3abb" + + "\0\u3b1c\0\u3b7d\0\u3bde\0\u3c3f\0\u3ca0\0\u0c81\0\u3d01\0\u3d62" + + "\0\u3dc3\0\u0c81\0\u3e24\0\u3e85\0\u0c81\0\u0c81\0\u3ee6\0\u3f47" + + "\0\u3fa8\0\u0c81\0\u4009\0\u0c81\0\u0c81\0\u0c81\0\u406a\0\u0c81" + + "\0\u40cb\0\u412c\0\u418d\0\u41ee\0\u0c81\0\u424f\0\u0c81\0\u0c81" + + "\0\u0c81\0\u406a\0\u40cb\0\u42b0\0\u4311\0\u0c81\0\u0c81\0\u0c81" + + "\0\u0c81\0\u406a\0\u0c81\0\u4372\0\u43d3\0\u4434\0\u4495\0\u44f6" + + "\0\u4557\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81\0\u0c81" + + "\0\u45b8\0\u4619\0\u0c81\0\u27c9\0\u467a\0\u0c81\0\u46db\0\u0c81" + + "\0\u473c\0\u0c81\0\u479d\0\u47fe\0\u485f\0\u48c0\0\u4921\0\u0c81" + + "\0\u4982\0\u49e3\0\u4a44\0\u4aa5\0\u4b06\0\u4b67\0\u4bc8\0\u4c29" + + "\0\u4c8a\0\u4ceb\0\u4d4c\0\u4dad\0\u4e0e\0\u4e6f\0\u4ed0\0\u4f31" + + "\0\u4f92\0\u4ff3\0\u5054\0\u50b5\0\u5116\0\u5177\0\u51d8\0\u5239" + + "\0\u529a\0\u52fb\0\u535c\0\u53bd\0\u541e\0\u547f\0\u54e0\0\u5541" + + "\0\u55a2\0\u5603\0\u5664\0\u56c5\0\u5726\0\u5787\0\u57e8\0\u5849" + + "\0\u58aa\0\u590b\0\u596c\0\u59cd\0\u5a2e\0\u5a8f\0\u5af0\0\u5b51" + + "\0\u5bb2\0\u5c13\0\u5c74\0\u5cd5\0\u5d36\0\u5d97\0\u5df8\0\u5e59" + + "\0\u5eba\0\u5f1b\0\u5f7c\0\u5fdd\0\u603e\0\u609f\0\u6100\0\u6161" + + "\0\u61c2\0\u6223\0\u6284\0\u62e5\0\u6346\0\u63a7\0\u6408\0\u6469" + + "\0\u64ca\0\u652b\0\u0c81\0\u1f12\0\u658c\0\u65ed\0\u664e\0\u0c81" + + "\0\u66af\0\u6710\0\u664e\0\u6771\0\u67d2\0\u6833\0\u6894\0\u6894" + + "\0\u68f5\0\u6894\0\u6956\0\u69b7\0\u6a18\0\u6a79\0\u6ada\0\u6b3b" + + "\0\u1c6b\0\u6b9c\0\u6bfd\0\u6c5e\0\u6cbf\0\u6d20\0\u6d81\0\u6de2" + + "\0\u6e43\0\u6ea4\0\u6f05\0\u6f66\0\u6fc7\0\u7028\0\u7089\0\u70ea" + + "\0\u714b\0\u71ac\0\u720d\0\u726e\0\u72cf\0\u7330\0\u7391\0\u73f2" + + "\0\u7453\0\u74b4\0\u7515\0\u7576\0\u75d7\0\u7638\0\u7699\0\u76fa" + + "\0\u775b\0\u77bc\0\u781d\0\u787e\0\u78df\0\u7940\0\u79a1\0\u7a02" + + "\0\u7a63\0\u7ac4\0\u7b25\0\u7b86\0\u7be7\0\u7c48\0\u7ca9\0\u0c81" + + "\0\u7d0a\0\u7d6b\0\u7dcc\0\u7e2d\0\u0c81\0\u7e8e\0\u7eef\0\u7f50" + + "\0\u7fb1\0\u8012\0\u8073\0\u0c81\0\u0c81\0\u80d4\0\u8135\0\u8196" + + "\0\u81f7\0\u8258\0\u82b9\0\u831a\0\u837b\0\u83dc\0\u843d\0\u849e" + + "\0\u84ff\0\u8560\0\u85c1\0\u8622\0\u8683\0\u86e4\0\u8745\0\u87a6" + + "\0\u8807\0\u8868\0\u88c9\0\u892a\0\u898b\0\u89ec\0\u8a4d\0\u8aae" + + "\0\u8b0f\0\u8b70\0\u8bd1\0\u8c32\0\u8c93\0\u8cf4\0\u8d55\0\u8db6" + + "\0\u8e17\0\u8e78\0\u8ed9\0\u0c81\0\u8f3a\0\u8f9b\0\u8ffc\0\u905d" + + "\0\u90be\0\u911f\0\u9180\0\u91e1\0\u9242\0\u92a3\0\u9304\0\u9365" + + "\0\u93c6\0\u9427\0\u9488\0\u94e9\0\u954a\0\u95ab\0\u960c\0\u966d" + + "\0\u96ce\0\u972f\0\u9790\0\u97f1\0\u9852\0\u98b3\0\u9914\0\u9975" + + "\0\u99d6\0\u9a37\0\u9a98\0\u9af9\0\u9b5a\0\u9bbb\0\u9c1c\0\u9c7d" + + "\0\u9cde\0\u9d3f\0\u9da0\0\u9e01\0\u9e62\0\u9ec3\0\u9f24\0\u9f85" + + "\0\u9fe6\0\ua047\0\ua0a8\0\ua109\0\ua16a\0\ua1cb\0\ua22c\0\ua28d" + + "\0\ua2ee\0\ua34f\0\ua3b0\0\ua411\0\ua472\0\ua4d3\0\ua534\0\ua595" + + "\0\ua5f6\0\ua657\0\ua6b8\0\ua719\0\ua77a\0\ua7db\0\ua83c\0\ua89d" + + "\0\ua8fe\0\ua95f\0\ua9c0\0\uaa21\0\uaa82\0\uaae3\0\uab44\0\uaba5" + + "\0\uac06\0\uac67\0\uacc8\0\uad29\0\uad8a\0\uadeb\0\uae4c\0\uaead" + + "\0\uaf0e\0\uaf6f\0\uafd0\0\ub031\0\ub092\0\ub0f3\0\ub154\0\ub1b5" + + "\0\ub216\0\ub277\0\ub2d8\0\ub339\0\ub39a\0\ub3fb\0\ub45c\0\ub4bd" + + "\0\ub51e\0\ub57f\0\ub5e0\0\ub641\0\ub6a2\0\ub703\0\ub764\0\ub7c5" + + "\0\ub826\0\ub887\0\ub8e8\0\ub949\0\ub9aa\0\uba0b\0\uba6c\0\ubacd" + + "\0\ubb2e\0\ubb8f\0\ubbf0\0\ubc51\0\ubcb2\0\ubd13\0\ubd74\0\ubdd5" + + "\0\ube36\0\ube97\0\ubef8\0\ubf59\0\ubfba\0\uc01b\0\uc07c\0\uc0dd" + + "\0\uc13e\0\uc19f\0\uc200\0\uc261\0\uc2c2\0\uc323\0\uc384\0\uc3e5" + + "\0\uc446\0\uc4a7\0\uc508\0\uc569\0\uc5ca\0\uc62b\0\uc68c\0\uc6ed" + + "\0\uc74e\0\uc7af\0\uc810\0\uc871\0\uc8d2\0\uc933\0\uc994\0\uc9f5" + + "\0\u1c6b\0\uca56\0\ucab7\0\ucb18\0\ucb79\0\ucbda\0\ucc3b\0\ucc9c" + + "\0\uccfd\0\ucd5e\0\ucdbf\0\uce20\0\uce81\0\ucee2\0\ucf43\0\ucfa4" + + "\0\ud005\0\ud066\0\ud0c7\0\ud128\0\ud189\0\ud1ea\0\ud24b\0\ud2ac" + + "\0\ud30d\0\ud36e\0\ud3cf\0\ud430\0\ud491\0\ud4f2\0\ud553\0\ud5b4" + + "\0\ud615\0\ud676\0\ud6d7\0\ud738\0\ud799\0\ud7fa\0\ud85b\0\ud8bc" + + "\0\ud91d\0\ud97e\0\ud9df\0\u0c81\0\u0c81\0\uda40\0\u0c81\0\udaa1" + + "\0\u0c81\0\udb02\0\udb63\0\udbc4\0\udc25\0\udc86\0\udce7\0\udd48" + + "\0\udda9\0\ude0a\0\ude6b\0\udecc\0\udf2d\0\udf8e\0\udfef\0\ue050" + + "\0\u0c81\0\ue0b1\0\ue112\0\ue173\0\ue1d4\0\ue235\0\u44f6\0\ue296" + + "\0\u0c81\0\u0c81\0\u0c81\0\u479d\0\ue2f7\0\ue358\0\ue3b9\0\ue41a" + + "\0\u0c81\0\ue47b\0\ue4dc\0\ue53d\0\ue59e\0\ue5ff\0\ue660\0\ue6c1" + + "\0\ue722\0\ue783\0\ue7e4\0\ue845\0\ue8a6\0\ue907\0\ue968\0\ue9c9" + + "\0\uea2a\0\uea8b\0\ueaec\0\ueb4d\0\uebae\0\uec0f\0\uec70\0\uecd1" + + "\0\ued32\0\ued93\0\uedf4\0\uee55\0\ueeb6\0\uef17\0\uef78\0\uefd9" + + "\0\uf03a\0\uf09b\0\uf0fc\0\uf15d\0\u5603\0\uf1be\0\uf21f\0\uf280" + + "\0\uf2e1\0\uf342\0\uf3a3\0\uf404\0\uf465\0\uf4c6\0\uf527\0\uf588" + + "\0\uf5e9\0\uf64a\0\uf6ab\0\uf70c\0\uf76d\0\uf7ce\0\uf82f\0\uf890" + + "\0\uf8f1\0\uf952\0\uf9b3\0\ufa14\0\ufa75\0\ufad6\0\ufb37\0\ufb98" + + "\0\u1599\0\ufbf9\0\ufc5a\0\ufcbb\0\ufd1c\0\ufd7d\0\ufdde\0\ufe3f" + + "\0\ufea0\0\uff01\0\uff62\0\uffc3\1\44\1\205\1\346\0\u6894" + + "\1\u0147\1\u01a8\1\u0209\1\u026a\1\u02cb\1\u032c\1\u038d\1\u03ee" + + "\1\u044f\1\u04b0\1\u0511\1\u0572\1\u05d3\1\u0634\1\u0695\1\u06f6" + + "\1\u0757\1\u07b8\1\u0819\1\u087a\1\u08db\1\u093c\1\u099d\1\u09fe" + + "\1\u0a5f\0\u1c6b\1\u0ac0\1\u0b21\1\u0b82\1\u0be3\1\u0c44\1\u0ca5" + + "\1\u0d06\1\u0d67\1\u0dc8\1\u0e29\1\u0e8a\1\u0eeb\1\u0f4c\1\u0fad" + + "\1\u100e\1\u106f\1\u10d0\1\u1131\1\u1192\1\u11f3\1\u1254\1\u12b5" + + "\1\u1316\1\u1377\1\u13d8\1\u1439\1\u149a\1\u14fb\1\u155c\1\u15bd" + + "\1\u161e\1\u167f\1\u16e0\1\u1741\1\u17a2\1\u1803\1\u1864\1\u18c5" + + "\1\u1926\1\u1987\1\u19e8\1\u1a49\1\u1aaa\1\u1b0b\1\u1b6c\1\u1bcd" + + "\1\u1c2e\1\u1c8f\1\u1cf0\1\u1d51\1\u1db2\1\u1e13\1\u1e74\1\u1ed5" + + "\1\u1f36\1\u1f97\1\u1ff8\1\u2059\1\u20ba\1\u211b\1\u217c\1\u21dd" + + "\1\u223e\1\u229f\1\u2300\1\u2361\1\u23c2\1\u2423\1\u2484\1\u24e5" + + "\1\u2546\1\u25a7\1\u2608\1\u2669\1\u26ca\1\u272b\1\u278c\1\u27ed" + + "\1\u284e\1\u28af\1\u2910\1\u2971\1\u29d2\1\u2a33\0\uff62\1\u2a94" + + "\1\u2af5\1\u2b56\1\u2bb7\1\u2c18\1\u2c79\1\u2cda\1\u2d3b\1\u2d9c" + + "\1\u2dfd\1\u2e5e\1\u2ebf\1\u2f20\1\u2f81\1\u2fe2\1\u3043\1\u30a4" + + "\1\u3105\1\u3166\1\u31c7\1\u3228\1\u3289\1\u32ea\1\u334b\1\u33ac" + + "\1\u340d\1\u346e\1\u34cf\1\u3530\1\u3591\1\u35f2\1\u3653\1\u36b4" + + "\1\u3715\1\u3776\1\u37d7\1\u3838\1\u3899\1\u38fa\1\u395b\1\u39bc" + + "\1\u3a1d\1\u3a7e\1\u3adf\1\u3b40\1\u3ba1\1\u3c02\1\u3c63\1\u3cc4" + + "\1\u3d25\1\u3d86\1\u3de7\1\u3e48\1\u3ea9\1\u3f0a\1\u3f6b\1\u3fcc" + + "\1\u402d\1\u408e\1\u40ef\1\u4150\1\u41b1\1\u4212\1\u4273\1\u42d4" + + "\1\u4335\1\u4396\1\u43f7\1\u4458\1\u44b9\1\u451a\1\u457b\1\u45dc" + + "\1\u463d\1\u469e\1\u46ff\1\u4760\1\u47c1\1\u4822\1\u4883\1\u48e4" + + "\1\u4945\1\u49a6\1\u4a07\1\u4a68\1\u4ac9\1\u4b2a\1\u4b8b\1\u4bec" + + "\1\u4c4d\1\u4cae\1\u4d0f\1\u4d70\1\u4dd1\1\u4e32\1\u4e93\1\u4ef4" + + "\1\u4f55\1\u4fb6\1\u5017\1\u5078\1\u50d9\1\u513a\1\u519b\1\u51fc" + + "\1\u525d\1\u52be\1\u531f\1\u5380\1\u53e1\1\u5442\1\u54a3\1\u5504" + + "\1\u5565\1\u55c6\1\u5627\1\u5688\1\u56e9\1\u4b8b\1\u574a\1\u57ab" + + "\1\u580c\1\u586d\1\u58ce\1\u592f\1\u5990\1\u59f1\1\u5a52\1\u5ab3" + + "\1\u5b14\1\u5b75\1\u5bd6\1\u5c37\1\u5c98\1\u5cf9\1\u5d5a\1\u5dbb" + + "\1\u5e1c\1\u5e7d\1\u5ede\1\u5f3f\1\u5fa0\1\u6001\1\u6062\1\u60c3" + + "\1\u6124\1\u6185\1\u61e6\1\u6247\1\u62a8\1\u6309\1\u636a\1\u63cb" + + "\1\u642c\1\u648d\1\u64ee\1\u654f\1\u65b0\1\u6611\1\u6672\1\u66d3" + + "\1\u6734\1\u6795\1\u67f6\1\u6857\1\u68b8\1\u6919\1\u0a5f\1\u697a" + + "\1\u69db\1\u6a3c\1\u6a9d\1\u6afe\1\u6b5f\1\u6bc0\1\u6c21\1\u6c82" + + "\1\u6ce3\1\u6d44\1\u6da5\1\u6e06\1\u6e67\1\u6ec8\1\u6f29\1\u6f8a" + + "\1\u6feb\1\u704c\1\u70ad\1\u710e\1\u716f\1\u71d0\1\u7231\1\u7292" + + "\1\u72f3\1\u7354\1\u73b5\1\u7416\1\u7477\1\u74d8\1\u7539\1\u759a" + + "\1\u75fb\1\u765c\1\u76bd\1\u771e\1\u777f\1\u77e0\1\u7841\1\u78a2" + + "\1\u7903\1\u7964\1\u79c5\1\u7a26\1\u7a87\1\u7ae8\1\u7b49\1\u7baa" + + "\1\u7c0b\1\u7c6c\1\u7ccd\1\u7d2e\1\u7d8f\1\u7df0\1\u7e51\1\u7eb2" + + "\1\u7f13\1\u7f74\1\u7fd5\1\u8036\1\u8097\1\u80f8\1\u8159\1\u81ba" + + "\1\u821b\1\u827c\1\u82dd\1\u833e\1\u839f\1\u8400\1\u8461\1\u84c2" + + "\1\u8523\1\u8584\1\u85e5\1\u8646\1\u86a7\1\u8708\1\u8769\1\u87ca" + + "\1\u882b\1\u888c\1\u88ed\1\u894e\1\u89af\1\u8a10\1\u8a71\1\u8ad2" + + "\1\u8b33\1\u8b94\1\u8bf5\1\u8c56\1\u8cb7\1\u8d18\1\u8d79\1\u8dda" + + "\1\u8e3b\1\u8e9c\1\u8efd\1\u8f5e\1\u8fbf\1\u9020\1\u9081\1\u90e2" + + "\1\u9143\1\u91a4\1\u9205\1\u9266\1\u92c7\1\u9328\1\u9389\1\u93ea" + + "\1\u944b\1\u94ac\1\u950d\1\u956e\1\u95cf\1\u9630\1\u9691\1\u96f2" + + "\1\u9753\1\u97b4\1\u9815\1\u9876\1\u98d7\1\u9938\1\u9999\1\u99fa" + + "\1\u9a5b\1\u9abc\1\u9b1d\1\u9b7e\1\u9bdf\1\u9c40\1\u9ca1\1\u9d02" + + "\1\u9d63\1\u9dc4\1\u9e25\1\u9e86\1\u9ee7\1\u9f48\1\u9fa9\1\ua00a" + + "\1\ua06b\1\ua0cc\1\ua12d\1\ua18e\1\ua1ef\1\ua250\1\u4b2a\1\ua2b1" + + "\1\ua312\1\ua373\1\ua3d4\1\ua435\1\ua496\1\ua4f7\1\ua558\1\ua5b9" + + "\1\ua61a\1\ua67b\1\ua6dc\1\ua73d\1\ua79e\1\ua7ff\1\ua860\1\ua8c1" + + "\1\ua922\1\ua983\1\ua9e4\1\uaa45\1\uaaa6\1\uab07\1\uab68\1\uabc9" + + "\1\uac2a\1\uac8b\1\uacec\1\uad4d\1\uadae\1\uae0f\1\uae70\1\uaed1" + + "\1\uaf32\1\uaf93\1\uaff4\1\ub055\1\ub0b6\1\ub117\1\ub178\1\ub1d9" + + "\1\ub23a\1\ub29b\1\ub2fc\1\ub35d\1\ub3be\1\ub41f\1\ub480\1\ub4e1" + + "\1\ub542\1\ub5a3\1\ub604\1\ub665\1\ub6c6\1\ub727\1\ub788\1\ub7e9" + + "\1\ub84a\1\ub8ab\1\ub90c\1\ub96d\1\ub9ce\1\uba2f\1\uba90\1\ubaf1" + + "\1\ubb52\1\ubbb3\1\ubc14\1\ubc75\1\ubcd6\1\ubd37\1\ubd98\1\ubdf9" + + "\1\ube5a\1\ubebb\1\ubf1c\1\ubf7d\1\ubfde\1\uc03f\1\uc0a0\1\uc101" + + "\1\uc162\1\uc1c3\1\uc224\1\uc285\1\uc2e6\1\uc347\1\uc3a8\1\uc409" + + "\1\uc46a\1\uc4cb\1\uc52c\0\u0c81\1\uc58d\1\uc5ee\1\uc64f\1\uc6b0" + + "\1\uc711\1\uc772\1\uc7d3\1\uc834\1\uc895\1\uc8f6\1\uc957\1\uc9b8" + + "\1\uca19\1\uca7a\1\ucadb\1\ucb3c\1\ucb9d\1\ucbfe\1\ucc5f\1\uccc0" + + "\1\ucd21\1\ucd82\1\ucde3\1\uce44\1\ucea5\1\ucf06\1\ucf67\1\ucfc8" + + "\1\ud029\1\ud08a\1\ud0eb\1\ud14c\1\ud1ad\1\ud20e\1\ud26f\1\ud2d0" + + "\0\u5726\1\ud331\0\uf03a\1\ud392\1\ud3f3\1\ud454\1\ud4b5\0\u0c81" + + "\1\ud516\1\ud577\1\ud5d8\1\ud639\1\ud69a\1\ud6fb\1\ud75c\1\ud7bd" + + "\0\u1c6b\1\ud81e\1\ud87f\1\ud8e0\1\ud941\0\u1c6b\1\ud9a2\1\uda03" + + "\1\uda64\1\udac5\1\udb26\0\u1c6b\1\udb87\1\udbe8\1\udc49\1\udcaa" + + "\1\udd0b\1\udd6c\1\uddcd\1\ude2e\1\ude8f\1\udef0\1\udf51\1\udfb2" + + "\1\ue013\1\ue074\1\ue0d5\1\ue136\0\u7d6b\0\u0c81\1\ue197\1\ue1f8" + + "\1\ue259\1\ue2ba\1\ue31b\1\ue37c\1\ue3dd\1\ue43e\1\ue49f\1\ue500" + + "\1\ue561\1\ue5c2\1\ue623\1\ue684\1\ue6e5\1\ue746\1\ue7a7\1\ue808" + + "\1\ue869\1\ue8ca\1\ue92b\1\ue98c\1\ue9ed\1\uea4e\1\ueaaf\1\ueb10" + + "\1\ueb71\1\uebd2\1\uec33\1\uec94\1\uecf5\1\ued56\1\uedb7\1\uee18" + + "\1\uee79\1\ueeda\1\uef3b\1\uef9c\1\ueffd\1\uf05e\1\uf0bf\0\u0c81" + + "\1\uf120\1\uf181\1\uf1e2\1\uf243\1\uf2a4\1\uf305\1\uf366\1\uf3c7" + + "\1\uf428\1\uf489\1\uf4ea\1\uf54b\1\uf5ac\1\uf60d\1\uf66e\1\uf6cf" + + "\1\uf730\1\uf791\1\uf7f2\1\uf853\1\uf8b4\1\uf915\1\uf976\1\uf9d7" + + "\1\ufa38\1\ufa99\1\ufafa\1\ufb5b\1\ufbbc\1\ufc1d\1\ufc7e\1\ufcdf" + + "\1\ufd40\1\ufda1\1\ufe02\1\ufe63\1\ufec4\1\uff25\1\uff86\1\uffe7" + + "\2\110\2\251\2\u010a\2\u016b\2\u01cc\2\u022d\2\u028e\2\u02ef" + + "\2\u0350\2\u03b1\2\u0412\2\u0473\2\u04d4\2\u0535\2\u0596\2\u05f7" + + "\2\u0658\2\u06b9\2\u071a\2\u077b\2\u07dc\2\u083d\2\u089e\2\u08ff" + + "\2\u0960\2\u09c1\2\u0a22\2\u0a83\2\u0ae4\2\u0b45\2\u0ba6\2\u0c07" + + "\2\u0c68\2\u0cc9\2\u0d2a\2\u0d8b\2\u04d4\2\u0dec\2\u0e4d\2\u0eae" + + "\2\u0f0f\2\u0f70\2\u0fd1\2\u1032\2\u1093\2\u10f4\2\u1155\2\u11b6" + + "\2\u1217\2\u1278\2\u12d9\2\u133a\2\u139b\2\u13fc\2\u145d\2\u14be" + + "\2\u151f\2\u1580\2\u15e1\2\u1642\2\u16a3\2\u1704\2\u1765\2\u17c6" + + "\2\u1827\2\u1888\2\u18e9\2\u194a\2\u19ab\2\u1a0c\2\u1a6d\2\u1ace" + + "\2\u1b2f\2\u1b90\2\u1bf1\2\u1c52\2\u1cb3\2\u1d14\2\u1d75\2\u1dd6" + + "\2\u1e37\2\u1e98\2\u1ef9\2\u1f5a\2\u1fbb\2\u201c\2\u207d\2\u20de" + + "\2\u213f\2\u21a0\2\u2201\2\u2262\2\u22c3\2\u2324\2\u2385\2\u23e6" + + "\2\u2447\2\u24a8\2\u2509\2\u256a\2\u25cb\2\u262c\2\u268d\2\u26ee" + + "\2\u274f\2\u27b0\2\u2811\2\u2872\2\u28d3\2\u2934\2\u2995\2\u29f6" + + "\2\u2a57\2\u2ab8\2\u2b19\2\u2b7a\2\u2bdb\2\u2c3c\2\u2c9d\2\u2cfe" + + "\2\u2d5f\2\u2dc0\2\u2e21\2\u2e82\2\u2ee3\2\u2f44\0\u1c6b\2\u2fa5" + + "\2\u3006\2\u3067\2\u30c8\2\u3129\2\u318a\2\u31eb\2\u324c\2\u32ad" + + "\2\u330e\2\u336f\2\u33d0\2\u3431\2\u3492\2\u34f3\2\u3554\2\u35b5" + + "\2\u3616\2\u3677\2\u36d8\2\u3739\2\u379a\2\u37fb\2\u385c\2\u38bd" + + "\2\u391e\2\u397f\2\u39e0\2\u3a41\2\u3aa2\2\u3b03\2\u3b64\2\u3bc5" + + "\2\u3c26\2\u3c87\2\u3ce8\2\u3d49\2\u3daa\2\u3e0b\2\u3e6c\2\u3ecd" + + "\2\u3f2e\2\u3f8f\1\u8fbf\2\u3ff0\2\u4051\2\u40b2\2\u4113\2\u4174" + + "\2\u41d5\2\u4236\2\u4297\2\u42f8\2\u4359\2\u43ba\2\u441b\2\u447c" + + "\2\u44dd\2\u453e\2\u459f\2\u4600\2\u4661\2\u46c2\2\u4723\2\u4784" + + "\2\u47e5\2\u4846\2\u48a7\2\u4908\2\u4969\1\udb87\2\u49ca\2\u4a2b" + + "\2\u4a8c\2\u4aed\2\u4b4e\2\u4baf\2\u4c10\2\u4c71\2\u4cd2\2\u4d33" + + "\2\u4d94\2\u4df5\2\u4e56\2\u4eb7\2\u4f18\2\u4f79\2\u4fda\2\u503b" + + "\2\u509c\2\u50fd\2\u515e\2\u51bf\2\u5220\2\u5281\2\u52e2\2\u5343" + + "\2\u53a4\2\u5405\2\u5466\2\u54c7\2\u5528\2\u5589\2\u55ea\2\u564b" + + "\2\u56ac\2\u570d\2\u576e\2\u57cf\2\u5830\2\u5891\2\u58f2\2\u5953" + + "\2\u59b4\2\u5a15\2\u5a76\2\u5ad7\2\u5b38\2\u5b99\2\u5bfa\2\u5c5b" + + "\2\u5cbc\2\u5d1d\2\u5d7e\2\u5ddf\2\u5e40\2\u5ea1\2\u5f02\2\u5f63" + + "\2\u5fc4\2\u6025\2\u6086\2\u60e7\2\u6148\2\u61a9\2\u620a\2\u626b" + + "\2\u62cc\2\u632d\2\u638e\2\u63ef\2\u6450\2\u64b1\2\u6512\2\u6573" + + "\2\u65d4\2\u6635\2\u6696\2\u66f7\2\u6758\2\u67b9\2\u681a\2\u687b" + + "\2\u68dc\2\u693d\2\u699e\2\u69ff\2\u6a60\2\u6ac1\2\u6b22\2\u6b83" + + "\2\u6be4\2\u6c45\2\u6ca6\2\u6d07\2\u6d68\2\u6dc9\2\u6e2a\2\u6e8b" + + "\2\u6eec\2\u6f4d\2\u6fae\2\u700f\2\u7070\2\u70d1\2\u7132\2\u7193" + + "\2\u71f4\2\u7255\2\u72b6\2\u7317\0\ua0a8\2\u7378\2\u73d9\2\u743a" + + "\2\u749b\2\u74fc\2\u755d\2\u75be\2\u761f\2\u7680\2\u76e1\2\u7742" + + "\2\u77a3\2\u7804\2\u7865\2\u78c6\2\u7927\2\u7988\2\u79e9\2\u7a4a" + + "\2\u7aab\2\u7b0c\2\u7b6d\2\u7bce\2\u7c2f\2\u7c90\2\u7cf1\2\u7d52" + + "\2\u7db3\2\u7e14\2\u7e75\2\u7ed6\2\u7f37\1\u88ed\2\u7f98\2\u7ff9" + + "\2\u805a\2\u80bb\2\u811c\2\u817d\2\u81de\2\u823f\2\u82a0\2\u8301" + + "\2\u8362\2\u83c3\2\u8424\2\u8485\2\u84e6\2\u8547\2\u85a8\2\u8609" + + "\2\u866a\2\u86cb\2\u872c\2\u878d\2\u87ee\2\u884f\2\u88b0\2\u8911" + + "\2\u8972\2\u89d3\2\u8a34\2\u8a95\2\u8af6\2\u8b57\2\u8bb8\2\u8c19" + + "\2\u8c7a\2\u8cdb\2\u8d3c\2\u8d9d\2\u8dfe\2\u8e5f\2\u8ec0\2\u8f21" + + "\2\u8f82\2\u8fe3\2\u9044\2\u90a5\2\u9106\2\u9167\2\u91c8\2\u9229" + + "\2\u928a\2\u92eb\2\u934c\2\u93ad\2\u940e\2\u946f\2\u94d0\2\u9531" + + "\2\u9592\2\u95f3\2\u9654\2\u96b5\2\u9716\2\u9777\2\u97d8\2\u9839" + + "\2\u989a\2\u98fb\2\u995c\2\u99bd\2\u9a1e\2\u9a7f\2\u9ae0\2\u9b41" + + "\2\u9ba2\2\u9c03\2\u9c64\2\u9cc5\2\u9d26\2\u9d87\2\u9de8\2\u9e49" + + "\2\u9eaa\2\u9f0b\2\u9f6c\2\u9fcd\2\ua02e\2\ua08f\2\ua0f0\2\ua151" + + "\2\ua1b2\2\ua213\2\ua274\2\ua2d5\2\ua336\2\ua397\2\ua3f8\2\ua459" + + "\2\ua4ba\2\ua51b\2\ua57c\2\ua5dd\2\ua63e\2\ua69f\2\ua700\2\ua761" + + "\2\ua7c2\2\ua823\2\ua884\2\ua8e5\2\ua946\2\ua9a7\2\uaa08\2\uaa69" + + "\2\uaaca\2\uab2b\2\uab8c\2\uabed\2\uac4e\2\uacaf\2\uad10\2\uad71" + + "\2\uadd2\2\uae33\2\uae94\2\uaef5\2\uaf56\2\uafb7\2\ub018\2\ub079" + + "\2\ub0da\2\ub13b\2\ub19c\2\ub1fd\2\ub25e\2\ub2bf\2\ub320\2\ub381" + + "\2\ub3e2\2\ub443\2\ub4a4\2\ub505\2\ub566\2\ub5c7\2\ub628\2\ub689" + + "\2\ub6ea\2\ub74b\2\ub7ac\2\ub80d\2\ub86e\2\ub8cf\2\ub930\2\ub991" + + "\2\ub9f2\2\uba53\2\ubab4\2\ubb15\2\ubb76\2\ubbd7\0\u0c81\2\ubc38" + + "\2\ubc99\2\ubcfa\2\ubd5b\2\ubdbc\2\ube1d\0\u0c81\2\ube7e\1\uc6b0" + + "\0\u104b\2\ubedf\2\ubf40\2\ubfa1\2\uc002\2\uc063\2\uc0c4\2\uc125" + + "\2\uc186\2\uc1e7\2\uc248\2\uc2a9\2\uc30a\2\uc36b\2\uc3cc\2\uc42d" + + "\2\uc48e\2\uc48e\2\uc4ef\2\uc550\2\uc5b1\0\u0c81\2\uc612\0\u0c81" + + "\2\uc673\2\uc6d4\2\uc735\2\uc796\2\uc7f7\2\uc858\1\u04b0\2\uc8b9" + + "\2\uc91a\2\uc97b\2\uc9dc\2\uca3d\2\uca9e\2\ucaff\2\ucb60\2\ucbc1" + + "\2\ucc22\2\ucc83\2\ucce4\2\ucd45\2\ucda6\0\u0c81\0\u0c81\2\uce07" + + "\2\uce68\1\ue31b\2\ucec9\1\ue43e\2\ucf2a\2\ucf8b\2\ucfec\2\ud04d" + + "\2\ud0ae\2\ud10f\2\ud170\2\ud1d1\2\ud232\2\ud293\2\ud2f4\2\ud355" + + "\2\ud3b6\2\ud417\2\ud478\2\ud4d9\2\ud53a\2\ud59b\2\ud5fc\2\ud65d" + + "\2\ud6be\2\ud71f\2\ud780\2\ud7e1\2\ud842\2\ud8a3\2\ud904\2\ud965" + + "\2\ud9c6\2\uda27\2\uda88\2\udae9\2\udb4a\2\udbab\2\udc0c\2\udc6d" + + "\2\udcce\2\udd2f\2\udd90\2\uddf1\1\uf8b4\2\ude52\2\udeb3\2\udf14" + + "\2\udf75\2\udfd6\2\ue037\2\ue098\2\ue0f9\2\ue15a\2\ue1bb\2\ue21c" + + "\2\ue27d\2\ue2de\2\ue33f\2\ue3a0\2\ue401\2\ue462\2\ue4c3\2\ue524" + + "\2\ue585\2\ue5e6\2\ue647\2\ue6a8\2\ue709\2\ue76a\2\ue7cb\0\ucc9c" + + "\2\ue82c\2\ue88d\2\ue8ee\2\ue94f\2\ue9b0\2\uea11\2\uea72\2\uead3" + + "\2\ueb34\2\ueb95\2\uebf6\2\uec57\2\uecb8\2\ued19\2\ued7a\2\ueddb" + + "\2\uee3c\2\uee9d\2\ueefe\2\uef5f\2\uefc0\2\uf021\2\uf082\2\uf0e3" + + "\2\uf144\2\uf1a5\2\uf206\2\uf267\2\uf2c8\2\uf329\2\uf38a\2\uf3eb" + + "\2\uf44c\2\uf4ad\2\uf50e\2\uf56f\2\uf5d0\2\uf631\2\uf692\2\uf6f3" + + "\2\uf754\2\uf7b5\2\uf816\2\uf877\2\uf8d8\2\uf939\2\uf99a\2\uf9fb" + + "\2\ufa5c\2\ufabd\2\ufb1e\2\ufb7f\2\ufbe0\2\ufc41\2\ufca2\2\ufd03" + + "\2\ufd64\2\ufdc5\2\ufe26\2\ufe87\2\ufee8\2\uff49\2\uffaa\3\13" + + "\3\154\3\315\3\u012e\3\u018f\3\u01f0\3\u0251\3\u02b2\3\u0313" + + "\3\u0374\3\u03d5\3\u0436\3\u0497\3\u04f8\3\u0559\3\u05ba\3\u061b" + + "\3\u067c\3\u06dd\3\u073e\3\u079f\3\u0800\3\u0861\3\u08c2\3\u0923" + + "\3\u0984\3\u09e5\3\u0a46\3\u0aa7\3\u0b08\3\u0b69\3\u0bca\3\u0c2b" + + "\3\u0c8c\3\u0ced\3\u0d4e\3\u0daf\3\u0e10\3\u0e71\3\u0ed2\3\u0f33" + + "\3\u0f94\3\u0ff5\3\u1056\3\u10b7\3\u1118\3\u1179\3\u11da\3\u123b" + + "\3\u129c\3\u12fd\3\u135e\3\u13bf\3\u1420\3\u1481\3\u14e2\3\u1543" + + "\3\u15a4\3\u1605\3\u1666\3\u16c7\3\u1728\3\u1789\3\u17ea\3\u184b" + + "\3\u18ac\3\u190d\3\u196e\3\u19cf\3\u1a30\3\u1a91\3\u1af2\3\u1b53" + + "\3\u1bb4\3\u1c15\3\u1c76\3\u1cd7\3\u1cd7\3\u1d38\3\u1d99\3\u1dfa" + + "\3\u1e5b\3\u1ebc\3\u1f1d\3\u1f7e\3\u1fdf\3\u2040\3\u20a1\3\u2102" + + "\3\u2163\3\u21c4\3\u2225\3\u2286\3\u22e7\3\u2348\3\u23a9\3\u240a" + + "\3\u246b\3\u24cc\3\u252d\3\u258e\3\u25ef\3\u2650\3\u26b1\3\u2712" + + "\3\u2773\3\u27d4\3\u2835\3\u2896\3\u28f7\3\u2958\3\u29b9\3\u2a1a" + + "\3\u2a7b\3\u2adc\3\u2b3d\3\u2b9e\3\u2bff\3\u2c60\3\u2cc1\3\u2d22" + + "\3\u2d83\3\u2de4\3\u2e45\3\u2ea6\3\u2f07\3\u2f68\3\u2fc9\3\u302a" + + "\3\u308b\3\u30ec\3\u314d\3\u31ae\3\u320f\3\u1c76\2\u34f3\3\u3270" + + "\3\u32d1\3\u3332\3\u3393\3\u33f4\3\u3455\3\u34b6\3\u3517\3\u3578" + + "\3\u35d9\3\u363a\3\u369b\3\u36fc\3\u375d\3\u37be\3\u381f\3\u3880" + + "\3\u38e1\3\u3942\3\u39a3\3\u3a04\3\u3a65\3\u3ac6\3\u3b27\3\u3b88" + + "\3\u3be9\3\u3c4a\3\u3cab\3\u3d0c\3\u3d6d\3\u3dce\3\u3e2f\3\u3e90" + + "\3\u3ef1\3\u3f52\3\u3fb3\3\u4014\3\u4075\3\u40d6\3\u4137\3\u4198" + + "\3\u41f9\3\u425a\3\u42bb\3\u431c\3\u437d\3\u43de\3\u443f\3\u44a0" + + "\3\u4501\3\u4562\3\u45c3\3\u4624\3\u4685\3\u46e6\3\u4747\3\u47a8" + + "\3\u4809\3\u486a\3\u48cb\3\u492c\3\u498d\3\u49ee\3\u4a4f\3\u4ab0" + + "\3\u4b11\3\u4b72\3\u4bd3\3\u4c34\3\u4c95\3\u4cf6\3\u4d57\3\u4db8" + + "\3\u4e19\3\u4e7a\3\u4edb\3\u4f3c\3\u4f9d\3\u4ffe\3\u505f\3\u50c0" + + "\3\u5121\3\u5182\3\u51e3\3\u5244\3\u52a5\3\u5306\3\u5367\3\u53c8" + + "\3\u5429\3\u548a\3\u54eb\3\u554c\3\u55ad\3\u560e\3\u566f\3\u56d0" + + "\3\u5731\3\u5792\3\u57f3\3\u5854\3\u58b5\3\u5916\3\u5977\3\u59d8" + + "\3\u5a39\3\u5a9a\3\u5afb\3\u5b5c\3\u5bbd\3\u5c1e\3\u5c7f\3\u5ce0" + + "\3\u5d41\3\u5da2\3\u5e03\3\u5e64\3\u5ec5\3\u5f26\3\u5f87\3\u5fe8" + + "\3\u6049\3\u60aa\3\u610b\3\u616c\3\u61cd\3\u622e\3\u628f\3\u62f0" + + "\3\u6351\3\u63b2\3\u6413\3\u6474\3\u64d5\3\u6536\3\u6597\3\u65f8" + + "\3\u6659\3\u66ba\3\u671b\3\u677c\3\u67dd\3\u683e\3\u689f\3\u6900" + + "\3\u6961\3\u69c2\3\u6a23\3\u6a84\3\u6ae5\3\u6b46\3\u6ba7\3\u6c08" + + "\3\u6c69\3\u6cca\3\u6d2b\3\u6d8c\3\u6ded\3\u6e4e\3\u6eaf\3\u6f10" + + "\3\u6f71\3\u6fd2\3\u7033\3\u7094\3\u70f5\3\u7156\3\u71b7\3\u7218" + + "\3\u7279\3\u72da\3\u733b\3\u739c\3\u73fd\3\u745e\3\u74bf\3\u7520" + + "\3\u7581\3\u75e2\3\u7643\3\u76a4\3\u7705\3\u7766\3\u77c7\3\u7828" + + "\3\u7889\3\u78ea\3\u794b\3\u79ac\3\u7a0d\3\u7a6e\3\u7acf\3\u7b30" + + "\3\u7b91\3\u7bf2\3\u7c53\3\u7cb4\3\u7d15\3\u7d76\3\u7dd7\3\u7e38" + + "\3\u7e99\3\u7efa\3\u7f5b\3\u7fbc\3\u801d\3\u807e\3\u80df\3\u8140" + + "\3\u81a1\3\u8202\3\u8263\3\u82c4\3\u8325\3\u8386\3\u83e7\3\u8448" + + "\3\u84a9\3\u850a\3\u856b\3\u85cc\3\u862d\3\u868e\3\u86ef\3\u8750" + + "\3\u87b1\3\u8812\3\u8873\3\u88d4\3\u8935\3\u8996\3\u89f7\3\u8a58" + + "\3\u8ab9\3\u8b1a\3\u8b7b\3\u8bdc\3\u8c3d\3\u8c9e\3\u8cff\3\u8d60" + + "\3\u8dc1\3\u8e22\3\u8e83\3\u8ee4\3\u8f45\3\u8fa6\3\u9007\3\u9068" + + "\3\u90c9\3\u912a\3\u918b\3\u91ec\3\u924d\3\u92ae\3\u930f\3\u9370" + + "\3\u93d1\3\u9432\3\u9493\3\u94f4\3\u9555\3\u95b6\3\u9617\3\u9678" + + "\3\u96d9\3\u973a\3\u979b\3\u97fc\3\u985d\3\u98be\3\u991f\3\u9980" + + "\3\u99e1\3\u9a42\3\u9aa3\3\u9b04\3\u9b65\3\u9bc6\3\u9c27\3\u9c88" + + "\3\u9ce9\3\u9d4a\3\u9dab\3\u9e0c\3\u9e6d\3\u9ece\3\u9f2f\3\u9f90" + + "\3\u9ff1\3\ua052\3\ua0b3\3\ua114\3\ua175\3\ua1d6\3\ua237\3\ua298" + + "\3\ua2f9\3\ua35a\3\ua3bb\3\ua41c\3\ua47d\3\ua4de\3\ua53f\3\ua5a0" + + "\3\ua601\3\ua662\3\ua6c3\3\ua724\3\ua785\3\ua7e6\3\ua847\3\ua8a8" + + "\3\ua909\3\ua96a\3\ua9cb\3\uaa2c\3\uaa8d\3\uaaee\3\uab4f\3\uabb0" + + "\3\uac11\3\uac72\3\uacd3\3\uad34\3\uad95\3\uadf6\3\uae57\3\uaeb8" + + "\3\uaf19\3\uaf7a\3\uafdb\3\ub03c\3\ub09d\3\ub0fe\3\ub15f\3\ub1c0" + + "\3\ub221\3\ub282\3\ub2e3\3\ub344\3\ub3a5\3\ub406\3\ub467\3\ub4c8" + + "\3\ub529\3\ub58a\3\ub5eb\3\ub64c\3\ub6ad\3\ub70e\3\ub76f\3\ub7d0" + + "\3\ub831\3\ub892\3\ub8f3\3\ub954\3\ub9b5\3\uba16\3\uba77\3\ubad8" + + "\3\ubb39\3\ubb9a\3\ubbfb\3\ubc5c\3\ubcbd\3\ubd1e\3\ubd7f\3\ubde0" + + "\3\ube41\3\ubea2\3\ubf03\3\ubf64\3\ubfc5\3\uc026\3\uc087\3\uc0e8" + + "\3\uc149\1\u8dda\3\uc1aa\3\uc20b\3\uc26c\3\uc2cd\3\uc32e\3\uc38f" + + "\3\uc3f0\3\uc451\3\uc4b2\3\uc513\3\uc574\3\uc5d5\3\uc636\3\uc697" + + "\3\uc6f8\3\uc759\3\uc7ba\3\uc81b\3\uc87c\3\uc8dd\3\uc93e\3\uc99f" + + "\3\uca00\3\uca61\3\ucac2\3\ucb23\3\ucb84\3\ucbe5\3\ucc46\3\ucca7" + + "\3\ucd08\3\ucd69\3\ucdca\3\uce2b\3\uce8c\3\uceed\3\ucf4e\3\ucfaf" + + "\3\ud010\3\ud071\3\ud0d2\3\ud133\0\u485f\3\ud194\3\ud1f5\3\ud256" + + "\3\ud2b7\3\ud318\3\ud379\3\ud3da\3\ud43b\3\ud49c\3\ud4fd\3\ud55e" + + "\3\ud5bf\3\ud620\3\ud681\3\ud6e2\3\ud743\3\ud7a4\3\ud805\3\ud866" + + "\3\ud8c7\3\ud928\3\ud989\3\ud9ea\3\uda4b\3\udaac\3\udb0d\3\udb6e" + + "\3\udbcf\3\udc30\3\udc91\3\udcf2\3\udd53\3\uddb4\3\ude15\3\ude76" + + "\3\uded7\3\udf38\3\udf99\3\udffa\3\ue05b\3\ue0bc\3\ue11d\3\ue17e" + + "\3\ue1df\3\ue240\3\ue2a1\3\ue302\3\ue363\3\ue3c4\3\ue425\3\ue486" + + "\3\ue4e7\3\ue548\3\ue5a9\3\ue60a\3\ue66b\3\ue6cc\3\ue72d\3\ue78e" + + "\3\ue7ef\3\ue850\3\ue8b1\3\ue912\3\ue973\3\ue9d4\3\uea35\3\uea96" + + "\3\ueaf7\3\ueb58\3\uebb9\3\uec1a\3\uec7b\3\uecdc\3\ued3d\3\ued9e" + + "\3\uedff\3\uee60\3\ueec1\3\uef22\3\uef83\3\uefe4\3\uf045\3\uf0a6" + + "\3\uf107\3\uf168\3\uf1c9\3\uf22a\3\uf28b\3\uf2ec\3\uf34d\3\uf3ae" + + "\3\uf40f\3\uf470\3\uf4d1\3\uf532\3\uf593\3\uf5f4\3\uf655\3\uf6b6" + + "\3\uf717\3\uf778\3\uf7d9\3\uf83a\3\uf89b\3\uf8fc\3\uf95d\3\uf9be" + + "\3\ufa1f\3\ufa80\3\ufae1\3\ufb42\3\ufba3\3\ufc04\3\ufc65\3\ufcc6" + + "\3\ufd27\3\ufd88\3\ufde9\3\ufe4a\3\ufeab\3\uff0c\3\uff6d\3\uffce" + + "\4\57\4\220\4\361\4\u0152\4\u01b3\4\u0214\4\u0275\4\u02d6" + + "\4\u0337\4\u0398\4\u03f9\4\u045a\4\u04bb\4\u051c\4\u057d\4\u05de" + + "\1\ua1ef\4\u063f\4\u06a0\4\u0701\4\u0762\4\u07c3\4\u0824\4\u0885" + + "\4\u08e6\4\u0947\4\u09a8\4\u0a09\4\u0a6a\4\u0acb\4\u0b2c\4\u0b8d" + + "\4\u0bee\4\u0c4f\4\u0cb0\4\u0d11\4\u0d72\4\u0dd3\4\u0e34\4\u0e95" + + "\4\u0ef6\4\u0f57\4\u0fb8\4\u1019\4\u107a\4\u10db\4\u113c\4\u119d" + + "\4\u11fe\4\u125f\4\u12c0\4\u1321\4\u1382\4\u13e3\4\u1444\4\u14a5" + + "\4\u1506\4\u1567\4\u15c8\4\u1629\4\u168a\4\u16eb\4\u174c\4\u17ad" + + "\4\u180e\4\u186f\4\u18d0\4\u1931\4\u1992\4\u19f3\4\u1a54\4\u1ab5" + + "\4\u1b16\4\u1b77\4\u1bd8\4\u1c39\4\u1c9a\4\u1cfb\4\u1d5c\4\u1dbd" + + "\4\u1e1e\4\u1e7f\4\u1ee0\4\u1f41\4\u1fa2\0\u9a98\4\u2003\4\u2064" + + "\4\u20c5\4\u2126\4\u2187\4\u21e8\4\u2249\4\u22aa\4\u230b\4\u236c" + + "\4\u23cd\4\u242e\4\u248f\4\u24f0\4\u2551\4\u25b2\4\u2613\4\u2674" + + "\4\u26d5\4\u2736\4\u2797\4\u27f8\4\u2859\4\u28ba\4\u291b\4\u297c" + + "\4\u29dd\4\u2a3e\4\u2a9f\4\u2b00\4\u2b61\4\u2bc2\4\u2c23\4\u2c84" + + "\4\u2ce5\4\u2d46\4\u2da7\4\u2e08\4\u2e69\4\u2eca\4\u2f2b\4\u2f8c" + + "\4\u2fed\4\u304e\4\u30af\4\u3110\4\u3171\4\u31d2\4\u3233\4\u3294" + + "\4\u32f5\4\u3356\4\u33b7\4\u3418\4\u3479\4\u34da\4\u353b\4\u359c" + + "\4\u35fd\4\u365e\4\u36bf\4\u3720\4\u3781\4\u37e2\4\u3843\4\u38a4" + + "\4\u3905\4\u3966\4\u39c7\4\u3a28\4\u3a89\4\u3aea\4\u3b4b\4\u3bac" + + "\4\u3c0d\4\u3c6e\4\u3ccf\4\u3d30\4\u3d91\4\u3df2\4\u3e53\4\u3eb4" + + "\4\u3f15\4\u3f76\4\u3fd7\4\u4038\4\u4099\4\u40fa\4\u415b\4\u41bc" + + "\4\u421d\4\u427e\4\u42df\4\u4340\4\u43a1\4\u4402\4\u4463\4\u44c4" + + "\4\u4525\4\u4586\4\u45e7\4\u4648\4\u46a9\4\u470a\4\u476b\4\u47cc" + + "\4\u482d\4\u488e\4\u48ef\4\u4950\4\u49b1\4\u4a12\4\u4a73\4\u4ad4" + + "\4\u4b35\4\u4b96\4\u4bf7\4\u4c58\4\u4cb9\4\u4d1a\4\u4d7b\4\u4ddc" + + "\4\u4e3d\4\u4e9e\4\u4eff\4\u4f60\4\u4fc1\4\u5022\4\u5083\4\u50e4" + + "\4\u5145\4\u51a6\4\u5207\4\u5268\4\u52c9\4\u532a\4\u538b\4\u53ec" + + "\4\u544d\4\u54ae\4\u550f\4\u5570\4\u55d1\4\u5632\4\u5693\4\u56f4" + + "\4\u5755\4\u57b6\4\u5817\4\u5878\4\u58d9\4\u593a\4\u599b\4\u59fc" + + "\4\u5a5d\4\u5abe\4\u5b1f\4\u5b80\4\u5be1\4\u5c42\4\u5ca3\4\u5d04" + + "\4\u5d65\4\u5dc6\4\u5e27\4\u5e88\4\u5ee9\4\u5f4a\4\u5fab\4\u600c" + + "\4\u606d\4\u60ce\4\u612f\4\u6190\4\u61f1\4\u6252\4\u62b3\4\u6314" + + "\4\u6375\4\u63d6\4\u6437\4\u6498\4\u64f9\4\u655a\4\u65bb\4\u661c" + + "\4\u667d\4\u66de\4\u673f\4\u67a0\4\u6801\4\u6862\4\u68c3\4\u6924" + + "\4\u6985\4\u69e6\4\u6a47\4\u6aa8\4\u6b09\4\u6b6a\4\u6bcb\4\u6c2c" + + "\4\u6c8d\4\u6cee\4\u6d4f\4\u6db0\4\u6e11\4\u6e72\4\u6ed3\4\u6f34" + + "\4\u6f95\4\u6ff6\4\u7057\4\u70b8\4\u7119\4\u717a\4\u71db\4\u723c" + + "\4\u729d\4\u72fe\4\u735f\4\u73c0\4\u7421\4\u7482\4\u74e3\4\u7544" + + "\4\u75a5\4\u7606\4\u7667\4\u76c8\4\u7729\4\u778a\4\u77eb\4\u784c" + + "\4\u78ad\4\u790e\4\u796f\4\u79d0\4\u7a31\4\u7a92\4\u7af3\4\u7b54" + + "\4\u7bb5\4\u7c16\4\u7c77\4\u7cd8\4\u7d39\4\u7d9a\4\u7dfb\4\u7e5c" + + "\4\u7ebd\4\u7f1e\4\u7f7f\4\u7fe0\4\u8041\4\u80a2\4\u8103\4\u8164" + + "\4\u81c5\4\u8226\4\u8287\4\u82e8\4\u8349\4\u83aa\4\u840b\4\u846c" + + "\4\u84cd\4\u852e\4\u858f\4\u85f0\4\u8651\4\u86b2\4\u8713\4\u8774" + + "\4\u87d5\4\u8836\4\u8897\4\u88f8\4\u8959\4\u89ba\4\u8a1b\4\u8a7c" + + "\4\u8add\4\u8b3e\4\u8b9f\4\u8c00\4\u8c61\4\u8cc2\4\u8d23\3\u4f9d" + + "\4\u8d84\4\u8de5\4\u8e46\4\u8ea7\4\u8f08\4\u8f69\4\u8fca\4\u902b" + + "\4\u908c\4\u90ed\4\u914e\4\u91af\4\u9210\4\u9271\4\u92d2\4\u9333" + + "\4\u9394\4\u93f5\4\u9456\4\u94b7\4\u9518\4\u9579\4\u95da\4\u963b" + + "\4\u969c\4\u96fd\4\u975e\4\u97bf\4\u9820\4\u9881\4\u98e2\4\u9943" + + "\4\u99a4\4\u9a05\4\u9a66\4\u9ac7\4\u9b28\4\u9b89\4\u9bea\4\u9c4b" + + "\4\u9cac\4\u9d0d\4\u9d6e\4\u9dcf\4\u9e30\4\u9e91\4\u9ef2\4\u9f53" + + "\4\u9fb4\4\ua015\4\ua076\4\ua0d7\4\ua138\4\ua199\4\ua1fa\4\ua25b" + + "\4\ua2bc\4\ua31d\4\ua37e\4\ua3df\4\ua440\4\ua4a1\4\ua502\4\ua563" + + "\4\ua5c4\4\ua625\4\ua686\4\ua6e7\4\ua748\4\ua7a9\4\ua80a\4\ua86b" + + "\4\ua8cc\4\ua92d\4\ua98e\4\ua9ef\4\uaa50\4\uaab1\4\uab12\4\uab73" + + "\4\uabd4\4\uac35\4\uac96\4\uacf7\4\uad58\4\uadb9\4\uae1a\4\uae7b" + + "\4\uaedc\4\uaf3d\4\uaf9e\4\uafff\4\ub060\4\ub0c1\4\ub122\4\ub183" + + "\4\ub1e4\4\ub245\4\ub2a6\4\ub307\4\ub368\4\ub3c9\4\ub42a\4\ub48b" + + "\4\ub4ec\4\ub54d\4\ub5ae\4\ub60f\4\ub670\4\ub6d1\4\ub732\4\ub793" + + "\4\ub7f4\4\ub855\4\ub8b6\4\ub917\4\ub978\4\ub9d9\4\uba3a\4\uba9b" + + "\4\ubafc\4\ubb5d\4\ubbbe\4\ubc1f\4\ubc80\4\ubce1\4\ubd42\4\ubda3" + + "\4\ube04\4\ube65\4\u612f\4\ubec6\4\ubf27\4\ubf88\4\ubfe9\4\uc04a" + + "\4\uc0ab\4\uc10c\4\uc16d\4\uc1ce\4\uc22f\4\uc290\4\uc2f1\4\uc352" + + "\4\uc3b3\4\uc414\4\uc475\4\uc4d6\4\uc537\4\uc598\4\uc5f9\4\uc65a" + + "\4\uc6bb\4\uc71c\4\uc77d\4\uc7de\4\uc83f\4\uc8a0\4\uc901\4\uc962" + + "\4\uc9c3\4\uca24\4\uca85\4\ucae6\4\ucb47\4\ucba8\4\ucc09\4\ucc6a" + + "\4\ucccb\4\ucd2c\4\ucd8d\4\ucdee\4\uce4f\4\uceb0\4\ucf11\4\ucf72" + + "\4\ucfd3\4\ud034\4\ud095\4\ud0f6\4\ud157\4\ud1b8\4\ud219\4\ud27a" + + "\4\ud2db\4\ud33c\4\ud39d\4\ud3fe\4\ud45f\4\ud4c0\4\ud521\4\ud582" + + "\4\ud5e3\4\ud644\4\ud6a5\4\ud706\4\ud767\4\ud7c8\4\ud829\4\ud88a" + + "\4\ud8eb\4\ud94c\4\ud9ad\4\uda0e\4\uda6f\4\udad0\4\udb31\4\udb92" + + "\4\udbf3\4\udc54\4\udcb5\4\udd16\4\udd77\4\uddd8\4\ude39\4\ude9a" + + "\4\udefb\4\udf5c\4\udfbd\4\ue01e\4\ue07f\4\ue0e0\4\ue141\4\ue1a2" + + "\4\ue203\4\ue264\4\ue2c5\4\ue326\4\ue387\4\ue3e8\4\ue449\4\ue4aa" + + "\4\ue50b\4\ue56c\4\ue5cd\4\ue62e\4\ue68f\4\ue6f0\4\ue751\4\ue7b2" + + "\4\ue813\4\ue874\4\ue8d5\4\ue936\4\ue997\4\ue9f8\4\uea59\4\ueaba" + + "\4\ueb1b\4\ueb7c\4\uebdd\4\uec3e\4\uec9f\0\u485f\4\ued00\4\ued61" + + "\4\uedc2\4\uee23\4\uee84\4\ueee5\4\uef46\4\uefa7\4\uf008\4\uf069" + + "\4\uf0ca\4\uf12b\4\uf18c\4\uf1ed\1\ue808\4\uf24e\4\uf2af\4\uf310" + + "\4\uf371\4\uf3d2\4\uf433\4\uf494\4\uf4f5\4\uf556\4\uf5b7\4\uf618" + + "\4\uf679\4\uf6da\4\uf73b\4\uf79c\4\uf7fd\4\uf85e\4\uf8bf\4\uf920" + + "\4\uf981\4\uf9e2\4\ufa43\4\ufaa4\4\ufb05\4\ufb66\4\ufbc7\4\ufc28" + + "\4\ufc89\4\ufcea\4\ufd4b\4\ufdac\4\ufe0d\4\ufe6e\4\ufecf\4\uff30" + + "\4\uff91\4\ufff2\5\123\5\264\5\u0115\5\u0176\2\u620a\5\u01d7" + + "\5\u0238\5\u0299\5\u02fa\5\u035b\5\u03bc\5\u041d\5\u047e\5\u04df" + + "\5\u0540\5\u05a1\5\u0602\5\u0663\5\u06c4\5\u0725\5\u0786\5\u07e7" + + "\5\u0848\5\u08a9\5\u090a\5\u096b\5\u09cc\5\u0a2d\5\u0a8e\5\u0aef" + + "\5\u0b50\5\u0bb1\5\u0c12\5\u0c73\5\u0cd4\5\u0d35\5\u0d96\5\u0df7" + + "\5\u0e58\5\u0eb9\5\u0f1a\5\u0f7b\5\u0fdc\5\u103d\5\u109e\5\u10ff" + + "\5\u1160\5\u11c1\5\u1222\5\u1283\5\u12e4\5\u1345\5\u13a6\5\u1407" + + "\5\u1468\5\u14c9\5\u152a\5\u158b\5\u15ec\5\u164d\5\u16ae\5\u170f" + + "\5\u1770\5\u17d1\5\u1832\5\u1893\5\u18f4\5\u1955\5\u19b6\5\u1a17" + + "\5\u1a78\5\u1ad9\5\u1b3a\5\u1b9b\5\u1bfc\5\u1c5d\5\u1cbe\5\u1d1f" + + "\5\u1d80\5\u1de1\5\u1e42\5\u1ea3\5\u1f04\5\u1f65\5\u1fc6\5\u2027" + + "\5\u2088\5\u20e9\5\u214a\5\u21ab\5\u220c\5\u226d\5\u22ce\5\u232f" + + "\5\u2390\5\u23f1\5\u2452\5\u24b3\5\u2514\5\u2575\5\u25d6\5\u2637" + + "\5\u2698\5\u26f9\5\u275a\5\u27bb\5\u281c\5\u287d\5\u28de\5\u293f" + + "\5\u29a0\5\u2a01\5\u2a62\5\u2ac3\5\u2b24\5\u2b85\5\u2be6\5\u2c47" + + "\5\u2ca8\5\u2d09\5\u2d6a\5\u2dcb\5\u2e2c\5\u2e8d\5\u2eee\5\u2f4f" + + "\5\u2fb0\5\u3011\5\u3072\5\u30d3\5\u3134\5\u3195\5\u31f6\5\u3257" + + "\5\u32b8\5\u3319\5\u337a\5\u33db\5\u343c\5\u349d\5\u34fe\5\u355f" + + "\5\u35c0\5\u3621\5\u3682\5\u36e3\5\u3744\5\u37a5\5\u3806\5\u3867" + + "\5\u38c8\5\u3929\5\u398a\5\u39eb\5\u3a4c\5\u3aad\5\u3b0e\5\u3b6f" + + "\5\u3bd0\5\u3c31\5\u3c92\5\u3cf3\5\u3d54\5\u3db5\5\u3e16\5\u3e77" + + "\5\u3ed8\5\u3f39\5\u3f9a\5\u3ffb\5\u405c\5\u40bd\5\u411e\5\u417f" + + "\5\u41e0\5\u4241\5\u42a2\5\u4303\5\u4364\5\u43c5\5\u4426\5\u4487" + + "\5\u44e8\5\u4549\5\u45aa\5\u460b\5\u466c\5\u46cd\5\u472e\5\u478f" + + "\5\u47f0\5\u4851\5\u48b2\5\u4913\5\u4974\5\u49d5\5\u4a36\5\u4a97" + + "\5\u4af8\5\u4b59\5\u4bba\5\u4af8\5\u4c1b\5\u4c7c\5\u4cdd\5\u4d3e" + + "\5\u4d9f\5\u4e00\5\u4e61\5\u4ec2\5\u4f23\5\u4f84\5\u4fe5\5\u5046" + + "\5\u50a7\5\u5108\5\u5169\5\u51ca\5\u522b\5\u528c\5\u52ed\5\u534e" + + "\5\u53af\5\u5410\5\u5471\5\u54d2\5\u5533\5\u5594\5\u55f5\5\u5656" + + "\5\u56b7\5\u5718\5\u5779\5\u57da\5\u583b\5\u589c\5\u58fd\5\u595e" + + "\5\u59bf\5\u5a20\5\u5a81\5\u5ae2\5\u5b43\5\u5ba4\5\u5c05\5\u5c66" + + "\5\u5cc7\5\u5d28\5\u5d89\5\u5dea\5\u5e4b\5\u5eac\5\u5f0d\5\u5f6e" + + "\5\u5fcf\5\u6030\5\u6091\5\u60f2\5\u6153\5\u61b4\5\u6215\5\u6276" + + "\5\u62d7\5\u6338\5\u6399\5\u63fa\5\u645b\5\u64bc\5\u651d\5\u657e" + + "\5\u65df\5\u6640\5\u66a1\5\u6702\5\u6763\5\u67c4\5\u6825\5\u6886" + + "\5\u68e7\5\u6948\5\u69a9\5\u6a0a\5\u6a6b\5\u6acc\5\u6b2d\5\u6b8e" + + "\5\u6bef\5\u6c50\5\u6cb1\5\u6d12\5\u6d73\5\u6dd4\5\u6e35\5\u6e96" + + "\5\u6ef7\5\u6f58\5\u6fb9\5\u701a\5\u707b\5\u70dc\5\u713d\5\u719e" + + "\5\u71ff\5\u7260\5\u72c1\5\u7322\5\u7383\5\u73e4\5\u7445\5\u74a6" + + "\5\u7507\5\u7568\5\u75c9\5\u762a\5\u768b\5\u76ec\5\u774d\5\u77ae" + + "\5\u780f\5\u7870\5\u78d1\5\u7932\5\u7993\5\u79f4\5\u7a55\5\u7ab6" + + "\5\u7b17\5\u7b78\5\u7bd9\5\u7c3a\5\u7c9b\5\u7cfc\5\u7d5d\5\u7dbe" + + "\5\u7e1f\5\u7e80\5\u7ee1\5\u7f42\5\u7fa3\5\u8004\5\u8065\5\u80c6" + + "\5\u8127\5\u8188\5\u81e9\5\u824a\5\u82ab\5\u830c\5\u836d\5\u83ce" + + "\5\u842f\5\u8490\5\u84f1\5\u8552\5\u85b3\5\u8614\5\u8675\5\u86d6" + + "\5\u8737\5\u8798\5\u87f9\5\u885a\5\u88bb\5\u891c\5\u897d\5\u89de" + + "\5\u8a3f\5\u8aa0\5\u8b01\5\u8b62\5\u8bc3\5\u8c24\5\u8c85\5\u8ce6" + + "\5\u8d47\5\u8da8\5\u8e09\5\u8e6a\5\u8ecb\5\u8f2c\5\u8f8d\5\u8fee" + + "\5\u904f\5\u90b0\5\u9111\5\u9172\5\u91d3\5\u9234\5\u9295\5\u92f6" + + "\5\u9357\5\u93b8\5\u9419\5\u947a\5\u94db\1\u34cf\5\u953c\5\u959d" + + "\5\u95fe\5\u965f\2\u2262\5\u96c0\5\u9721\5\u9782\5\u97e3\5\u9844" + + "\5\u98a5\5\u9906\5\u9967\5\u99c8\5\u9a29\5\u9a8a\5\u9aeb\5\u9b4c" + + "\5\u9bad\5\u9c0e\5\u9c6f\5\u9cd0\5\u9d31\5\u9d92\5\u9df3\5\u9e54" + + "\5\u9eb5\5\u9f16\5\u9f77\5\u9fd8\5\ua039\5\ua09a\5\ua0fb\5\ua15c" + + "\5\ua1bd\5\u6e96\5\ua21e\3\u51e3\5\ua27f\5\ua2e0\5\ua341\5\ua3a2" + + "\5\ua403\5\ua464\5\ua4c5\5\ua526\5\ua587\5\ua5e8\5\ua649\5\ua6aa" + + "\5\ua70b\5\ua76c\5\ua7cd\5\ua82e\5\ua88f\5\ua8f0\5\ua951\5\ua9b2" + + "\5\uaa13\5\uaa74\5\uaad5\5\uab36\5\uab97\5\uabf8\5\uac59\5\uacba" + + "\5\uad1b\5\uad7c\5\uaddd\5\uae3e\5\uae9f\5\uaf00\5\uaf61\5\uafc2" + + "\5\ub023\5\ub084\5\ub0e5\5\ub146\5\ub1a7\5\ub208\5\ub269\5\ub2ca" + + "\5\ub32b\5\ub38c\5\ub3ed\5\ub44e\5\ub4af\5\ub510\5\ub571\5\ub5d2" + + "\5\ub633\5\ub694\5\ub6f5\5\ub756\5\ub7b7\5\ub818\5\ub879\5\ub8da" + + "\5\ub93b\5\ub99c\5\ub9fd\5\uba5e\5\ubabf\5\ubb20\5\ubb81\5\ubbe2" + + "\5\ubc43\5\ubca4\5\ubd05\5\ubd66\5\ubdc7\5\ube28\5\ube89\5\ubeea" + + "\5\ubf4b\5\ubfac\5\uc00d\5\uc06e\5\uc0cf\5\uc130\5\uc191\5\uc1f2" + + "\5\uc253\5\uc2b4\5\uc315\2\u30c8\5\uc376\5\uc3d7\5\uc438\5\uc499" + + "\5\uc4fa\5\uc55b\5\uc5bc\5\uc61d\5\uc67e\5\uc6df\5\uc740\5\uc7a1" + + "\5\uc802\5\uc863\5\uc8c4\5\uc925\5\uc986\5\uc9e7\5\uca48\5\ucaa9" + + "\5\ucb0a\5\ucb6b\5\ucbcc\5\ucc2d\5\ucc8e\5\uccef\5\ucd50\5\ucdb1" + + "\5\uce12\5\uce73\5\uced4\5\ucf35\5\ucf96\5\ucff7\5\ud058\5\ud0b9" + + "\5\ud11a\5\ud17b\5\ud1dc\5\ud23d\5\ud29e\5\ud2ff\5\ud360\5\ud3c1" + + "\5\ud422\5\ud483\5\ud4e4\5\ud545\5\ud5a6\5\ud607\5\ud668\5\ud6c9" + + "\5\ud72a\5\ud78b\5\ud7ec\5\ud84d\5\ud8ae\5\ud90f\5\ud970\5\ud9d1" + + "\5\uda32\5\uda93\5\udaf4\5\udb55\5\udbb6\5\udc17\5\udc78\5\udcd9" + + "\5\udd3a\5\udd9b\5\uddfc\5\ude5d\5\udebe\5\udf1f\5\udf80\5\udfe1" + + "\5\ue042\5\ue0a3\5\ue104\5\ue165\5\ue1c6\5\ue227\5\ue288\5\ue2e9" + + "\5\ue34a\5\ue3ab\5\ue40c\5\ue46d\5\ue4ce\5\ue52f\5\ue590\5\ue5f1" + + "\5\ue652\5\ue6b3\5\ue714\5\ue775\5\ue7d6\5\ue837\5\ue898\5\ue8f9" + + "\5\ue95a\5\ue9bb\5\uea1c\5\uea7d\5\ueade\5\ueb3f\5\ueba0\5\uec01" + + "\5\uec62\5\uecc3\5\ued24\5\ued85\5\uede6\5\uee47\5\ueea8\5\uef09" + + "\5\uef6a\5\uefcb\5\uf02c\5\uf08d\5\uf0ee\5\uf14f\5\uf1b0\5\uf211" + + "\5\uf272\5\uf2d3\5\uf334\5\uf395\5\uf3f6\5\uf457\5\uf4b8\5\uf519" + + "\5\uf57a\5\uf5db\1\ubb52\5\uf63c\5\uf69d\5\uf6fe\5\uf75f\5\uf7c0" + + "\5\uf821\5\uf882\5\uf8e3\5\uf944\5\uf9a5\5\ufa06\5\ufa67\5\ufac8" + + "\5\ufb29\5\ufb8a\5\ufbeb\5\ufc4c\5\ufcad\5\ufd0e\5\ufd6f\5\ufdd0" + + "\5\ufe31\5\ufe92\5\ufef3\5\uff54\5\uffb5\6\26\6\167\6\330" + + "\6\u0139\6\u019a\6\u01fb\6\u025c\6\u02bd\6\u031e\6\u037f\6\u03e0" + + "\6\u0441\6\u04a2\6\u0503\6\u0564\6\u05c5\6\u0626\6\u0687\6\u06e8" + + "\6\u0749\6\u07aa\6\u080b\6\u086c\6\u08cd\6\u092e\6\u098f\6\u09f0" + + "\6\u0a51\6\u0ab2\6\u0b13\6\u0b74\6\u0bd5\6\u0c36\6\u0c97\6\u0cf8" + + "\6\u0d59\6\u0dba\6\u0e1b\6\u0e7c\6\u0edd\6\u0f3e\6\u0f9f\6\u1000" + + "\6\u1061\6\u10c2\6\u1123\6\u1184\6\u11e5\6\u1246\6\u12a7\6\u1308" + + "\6\u1369\6\u13ca\6\u142b\6\u148c\6\u14ed\6\u154e\6\u15af\6\u1610" + + "\6\u1671\6\u16d2\6\u1733\6\u1794\6\u17f5\6\u1856\6\u18b7\6\u1918" + + "\6\u1979\6\u19da\6\u1a3b\6\u1a9c\6\u1afd\6\u1b5e\6\u1bbf\6\u1c20" + + "\6\u1c81\6\u1ce2\6\u1d43\6\u1da4\6\u1e05\6\u1e66\6\u1ec7\6\u1f28" + + "\6\u1f89\6\u1fea\6\u204b\6\u20ac\6\u210d\6\u216e\6\u21cf\6\u2230" + + "\6\u2291\6\u22f2\6\u2353\6\u23b4\6\u2415\6\u2476\6\u24d7\6\u2538" + + "\6\u2599\6\u25fa\6\u265b\6\u26bc\6\u271d\3\ue973\6\u277e\6\u27df" + + "\6\u2840\6\u28a1\6\u2902\6\u2963\6\u29c4\6\u2a25\6\u2a86\6\u2ae7" + + "\6\u2b48\6\u2ba9\6\u2c0a\6\u2c6b\6\u2ccc\6\u2d2d\6\u2d8e\6\u2def" + + "\6\u2e50\6\u2eb1\6\u2f12\6\u2f73\6\u2fd4\6\u3035\6\u3096\6\u30f7" + + "\6\u3158\6\u31b9\6\u321a\6\u327b\6\u32dc\6\u333d\6\u339e\6\u33ff" + + "\6\u3460\6\u34c1\6\u3522\6\u3583\6\u35e4\6\u3645\6\u36a6\6\u3707" + + "\6\u3768\6\u37c9\6\u382a\6\u388b\6\u38ec\6\u394d\6\u39ae\6\u3a0f" + + "\6\u3a70\6\u3ad1\6\u3b32\6\u3b93\6\u3bf4\6\u3c55\6\u3cb6\6\u3d17" + + "\6\u3d78\6\u3dd9\6\u3e3a\6\u3e9b\6\u3efc\6\u3f5d\6\u3fbe\6\u401f" + + "\6\u4080\6\u40e1\6\u4142\6\u41a3\6\u4204\6\u4265\6\u42c6\6\u4327" + + "\6\u4388\6\u43e9\6\u444a\6\u44ab\6\u450c\6\u456d\6\u45ce\6\u462f" + + "\6\u4690\6\u46f1\6\u4752\6\u47b3\6\u4814\6\u4875\6\u48d6\6\u4937" + + "\6\u4998\6\u49f9\6\u4a5a\6\u4abb\6\u4b1c\6\u4b7d\6\u4bde\6\u4c3f" + + "\6\u4ca0\6\u4d01\6\u4d62\6\u4dc3\6\u4e24\6\u4e85\6\u4ee6\6\u4f47" + + "\6\u4fa8\6\u5009\6\u506a\6\u50cb\6\u512c\6\u518d\6\u51ee\6\u524f" + + "\6\u52b0\6\u5311\6\u5372\6\u53d3\6\u5434\6\u5495\6\u54f6\6\u5557" + + "\6\u55b8\6\u5619\6\u567a\6\u56db\6\u573c\6\u579d\6\u57fe\6\u585f" + + "\6\u58c0\6\u5921\6\u5982\6\u59e3\6\u5a44\6\u5aa5\6\u5b06\6\u5b67" + + "\6\u5bc8\6\u5c29\6\u5c8a\6\u5ceb\6\u5d4c\6\u5dad\6\u5e0e\6\u5e6f" + + "\1\ua1ef\6\u5ed0\6\u5f31\6\u5f92\6\u5ff3\6\u6054\6\u60b5\6\u6116" + + "\6\u6177\6\u61d8\6\u6239\6\u629a\6\u62fb\6\u635c\6\u63bd\6\u641e" + + "\6\u647f\6\u64e0\6\u6541\6\u65a2\6\u6603\6\u6664\6\u66c5\6\u6726" + + "\6\u6787\6\u67e8\6\u6849\6\u68aa\6\u690b\6\u696c\6\u69cd\6\u6a2e" + + "\6\u6a8f\6\u6af0\6\u6b51\6\u6bb2\6\u6c13\6\u6c74\6\u6cd5\1\u48e4" + + "\6\u6d36\6\u6d97\6\u6df8\6\u6e59\6\u6eba\6\u6f1b\6\u6f7c\6\u6fdd" + + "\6\u703e\6\u709f\6\u7100\6\u7161\6\u71c2\6\u7223\6\u7284\6\u72e5" + + "\6\u7346\6\u73a7\6\u7408\6\u7469\6\u74ca\6\u752b\6\u758c\6\u75ed" + + "\6\u764e\6\u76af\6\u7710\6\u7771\6\u77d2\6\u7833\6\u7894\6\u78f5" + + "\6\u7956\6\u79b7\6\u7a18\6\u7a79\6\u7ada\6\u7b3b\6\u7b9c\6\u7bfd" + + "\6\u696c\6\u7c5e\6\u7cbf\6\u7d20\6\u7d81\6\u7de2\6\u7e43\6\u7ea4" + + "\6\u7f05\6\u7f66\6\u7fc7\6\u8028\6\u8089\6\u80ea\6\u814b\6\u81ac" + + "\6\u820d\6\u826e\6\u82cf\6\u8330\6\u8391\6\u83f2\6\u8453\6\u84b4" + + "\6\u8515\6\u8576\6\u85d7\6\u8638\6\u8699\6\u86fa\6\u875b\6\u87bc" + + "\6\u881d\6\u887e\6\u88df\6\u8940\6\u89a1\6\u8a02\6\u8a63\6\u8ac4" + + "\6\u8b25\6\u8b86\6\u8be7\6\u8c48\6\u8ca9\6\u8d0a\6\u8d6b\6\u8dcc" + + "\6\u8e2d\6\u8e8e\6\u8eef\6\u8f50\6\u8fb1\6\u9012\6\u9073\6\u90d4" + + "\6\u9135\6\u9196\6\u91f7\6\u9258\6\u92b9\6\u931a\6\u937b\6\u93dc" + + "\6\u943d\6\u949e\6\u94ff\6\u9560\6\u95c1\6\u9622\6\u9683\6\u96e4" + + "\6\u9745\6\u97a6\6\u9807\6\u9868\6\u98c9\6\u992a\6\u998b\6\u99ec" + + "\6\u9a4d\6\u9aae\6\u9b0f\6\u9b70\6\u9bd1\6\u9c32\6\u9c93\6\u9cf4" + + "\6\u9d55\6\u9db6\6\u9e17\6\u9e78\6\u9ed9\6\u9f3a\6\u9f9b\6\u9ffc" + + "\6\ua05d\6\ua0be\6\ua11f\6\ua180\6\ua1e1\6\ua242\6\ua2a3\6\ua304" + + "\6\ua365\6\ua3c6\6\ua427\6\ua488\6\ua4e9\6\ua54a\6\ua5ab\6\ua60c" + + "\6\ua66d\6\ua6ce\6\ua72f\6\ua790\6\ua7f1\6\ua852\6\ua8b3\6\ua914" + + "\6\ua975\6\ua9d6\6\uaa37\6\uaa98\6\uaaf9\6\uab5a\6\uabbb\6\uac1c" + + "\6\uac7d\6\uacde\6\uad3f\6\uada0\6\uae01\6\uae62\6\uaec3\6\uaf24" + + "\6\uaf85\6\uafe6\6\ub047\6\ub0a8\6\ub109\6\ub16a\6\ub1cb\6\ub22c" + + "\6\ub28d\6\ub2ee\6\ub34f\6\ub3b0\6\ub411\6\ub472\6\ub4d3\6\ub534" + + "\6\ub595\6\ub5f6\6\ub657\6\ub6b8\6\ub719\6\ub77a\6\ub7db\6\ub83c" + + "\6\ub89d\6\ub8fe\6\ub95f\6\ub9c0\6\uba21\6\uba82\6\ubae3\6\ubb44" + + "\6\ubba5\6\ubc06\6\ubc67\6\ubcc8\6\ubd29\6\ubd8a\6\ubdeb\6\ube4c" + + "\6\ubead\6\ubf0e\6\ubf6f\6\ubfd0\6\uc031\6\uc092\6\uc0f3\6\uc154" + + "\6\uc1b5\6\uc216\6\uc277\6\uc2d8\6\uc339\6\uc39a\6\uc3fb\6\uc45c" + + "\6\uc4bd\6\uc51e\6\uc57f\6\uc5e0\6\uc641\6\uc6a2\6\uc703\6\uc764" + + "\6\uc7c5\6\uc826\6\uc887\6\uc8e8\6\uc949\6\uc9aa\6\uca0b\6\uca6c" + + "\6\ucacd\6\ucb2e\6\ucb8f\6\ucbf0\6\ucc51\6\uccb2\6\ucd13\6\ucd74" + + "\6\ucdd5\6\uce36\6\uce97\6\ucef8\6\ucf59\6\ucfba\6\ud01b\6\ud07c" + + "\6\ud0dd\6\ud13e\6\ud19f\6\ud200\6\ud261\6\ud2c2\6\ud323\6\ud384" + + "\6\ud3e5\6\ud446\6\ud4a7\6\ud508\6\ud569\6\ud5ca\4\u1fa2\6\ud62b" + + "\6\ud68c\6\ud6ed\6\ud74e\6\ud7af\6\ud810\6\ud871\6\ud8d2\6\ud933" + + "\6\ud994\6\ud9f5\6\uda56\6\udab7\6\udb18\6\udb79\6\udbda\6\udc3b" + + "\6\udc9c\6\udcfd\6\udd5e\6\uddbf\6\ude20\6\ude81\6\udee2\6\udf43" + + "\6\udfa4\6\ue005\6\ue066\6\ue0c7\6\ue128\6\ue189\6\ue1ea\6\ue24b" + + "\6\ue2ac\6\ue30d\6\ue36e\6\ue3cf\6\ue430\6\ue491\6\ue4f2\6\ue553" + + "\6\ue5b4\6\ue615\6\ue676\6\ue6d7\6\ue738\6\ue799\4\ub7f4\6\ue7fa" + + "\6\ue85b\6\ue8bc\6\ue91d\6\ue97e\6\ue9df\6\uea40\6\ueaa1\6\ueb02" + + "\6\ueb63\6\uebc4\6\uec25\6\uec86\6\uece7\6\ued48\6\ueda9\6\uee0a" + + "\6\uee6b\6\ueecc\6\uef2d\6\uef8e\6\uefef\6\uf050\6\uf0b1\6\uf112" + + "\6\uf173\6\uf1d4\6\uf235\6\uf296\6\uf2f7\6\uf358\6\uf3b9\6\uf41a" + + "\6\uf47b\6\uf4dc\6\uf53d\3\u41f9\6\uf59e\6\uf5ff\6\uf660\6\uf6c1" + + "\6\uf722\6\uf783\6\uf7e4\6\uf845\6\uf8a6\6\uf907\6\uf968\6\uf9c9" + + "\6\ufa2a\6\ufa8b\6\ufaec\6\ufb4d\6\ufbae\6\ufc0f\6\ufc70\6\ufcd1" + + "\6\ufd32\6\ufd93\6\ufdf4\6\ufe55\6\ufeb6\6\uff17\6\uff78\6\uffd9" + + "\7\72\7\233\7\374\7\u015d\7\u01be\7\u021f\7\u0280\7\u02e1" + + "\7\u0342\7\u03a3\7\u0404\7\u0465\7\u04c6\7\u0527\7\u0588\7\u05e9" + + "\7\u064a\7\u06ab\7\u070c\7\u076d\7\u07ce\7\u082f\7\u0890\7\u08f1" + + "\7\u0952\0\u0c81\7\u09b3\7\u0a14\7\u0a75\7\u0ad6\7\u0b37\0\u0c81" + + "\7\u0b98\0\u0c81\7\u0bf9\7\u0c5a\0\u0c81\7\u0cbb\7\u0d1c\7\u0d7d" + + "\7\u0dde\7\u0e3f\7\u0ea0\7\u0f01\7\u0f62\7\u0fc3\7\u1024\7\u1085" + + "\7\u10e6\7\u1147\7\u11a8\7\u1209\7\u126a\7\u12cb\7\u132c\7\u138d" + + "\7\u13ee\7\u144f\7\u14b0\7\u1511\4\u2ce5\7\u1572\7\u15d3\7\u1634" + + "\7\u1695\7\u16f6\7\u1757\7\u17b8\7\u1819\7\u187a\7\u18db\7\u193c" + + "\7\u199d\7\u19fe\7\u1a5f\7\u1ac0\7\u1b21\7\u1b82\7\u1be3\7\u1c44" + + "\7\u1ca5\7\u1d06\7\u1d67\7\u1dc8\7\u1e29\7\u1e8a\7\u1eeb\2\udf75" + + "\7\u1f4c\7\u1fad\7\u200e\7\u206f\7\u20d0\7\u2131\7\u2192\7\u21f3" + + "\7\u2254\7\u22b5\7\u2316\7\u2377\7\u23d8\7\u2439\7\u249a\7\u24fb" + + "\7\u255c\7\u25bd\7\u261e\7\u267f\7\u26e0\7\u2741\7\u27a2\7\u2803" + + "\7\u2864\4\u612f\7\u28c5\7\u2926\7\u2987\7\u29e8\7\u2a49\7\u2aaa" + + "\7\u2b0b\7\u2b6c\7\u2bcd\7\u2c2e\7\u2c8f\7\u2cf0\7\u2d51\7\u2db2" + + "\7\u2e13\7\u2e74\7\u2ed5\7\u2f36\7\u2f97\7\u2ff8\7\u3059\7\u30ba" + + "\7\u311b\7\u317c\7\u31dd\7\u323e\7\u329f\7\u3300\7\u3361\7\u33c2" + + "\6\u758c\7\u3423\7\u3484\7\u34e5\7\u3546\7\u35a7\7\u3608\7\u3669" + + "\7\u36ca\7\u372b\7\u378c\7\u37ed\7\u384e\7\u38af\7\u3910\7\u3971" + + "\7\u39d2\7\u3a33\7\u3a94\7\u3af5\7\u3b56\7\u3bb7\7\u3c18\7\u3c79" + + "\7\u3cda\7\u3d3b\7\u3d9c\7\u3dfd\7\u3e5e\7\u3ebf\7\u3f20\7\u3f81" + + "\7\u3fe2\7\u4043\7\u40a4\7\u4105\7\u4166\7\u41c7\7\u4228\7\u4289" + + "\7\u42ea\7\u434b\7\u43ac\7\u440d\7\u446e\7\u44cf\7\u4530\7\u4591" + + "\7\u45f2\7\u4653\7\u46b4\7\u4715\7\u4776\7\u47d7\7\u4838\7\u4899" + + "\7\u48fa\7\u495b\7\u49bc\7\u4a1d\5\u1bfc\7\u4a7e\7\u4adf\7\u4b40" + + "\7\u4ba1\7\u4c02\7\u4c63\7\u4cc4\7\u4d25\7\u4d86\7\u4de7\7\u4e48" + + "\7\u4ea9\7\u4f0a\7\u4f6b\7\u4fcc\7\u502d\7\u508e\7\u50ef\7\u5150" + + "\7\u51b1\7\u5212\7\u5273\7\u52d4\7\u5335\7\u5396\7\u53f7\7\u5458" + + "\7\u54b9\7\u551a\7\u557b\7\u55dc\7\u563d\7\u569e\7\u56ff\7\u5760" + + "\7\u57c1\7\u5822\7\u5883\7\u58e4\7\u5945\7\u59a6\7\u5a07\7\u5a68" + + "\7\u5ac9\7\u5b2a\7\u5b8b\7\u5bec\7\u5c4d\7\u5cae\7\u5d0f\7\u5d70" + + "\7\u5dd1\7\u5e32\7\u5e93\7\u5ef4\7\u5f55\7\u5fb6\7\u6017\7\u6078" + + "\7\u60d9\7\u613a\7\u619b\7\u61fc\7\u625d\7\u62be\7\u631f\7\u6380" + + "\7\u63e1\7\u6442\7\u64a3\7\u6504\7\u6565\7\u65c6\7\u6627\7\u6688" + + "\7\u66e9\7\u674a\7\u67ab\7\u680c\7\u686d\7\u68ce\7\u692f\7\u6990" + + "\7\u69f1\7\u6a52\7\u6ab3\7\u6b14\7\u6b75\7\u6bd6\7\u6c37\7\u6c98" + + "\7\u6cf9\7\u6d5a\7\u6dbb\7\u6e1c\7\u6e7d\7\u6ede\7\u6f3f\7\u6fa0" + + "\7\u7001\7\u7062\7\u70c3\7\u7124\7\u7185\7\u71e6\7\u7247\7\u72a8" + + "\7\u7309\7\u736a\7\u73cb\7\u742c\7\u748d\7\u74ee\7\u754f\7\u75b0" + + "\7\u7611\7\u7672\7\u76d3\7\u7734\7\u7795\7\u77f6\7\u7857\7\u78b8" + + "\7\u7919\7\u797a\7\u79db\7\u7a3c\7\u7a9d\7\u7afe\7\u7b5f\7\u7bc0" + + "\7\u7c21\7\u7c82\7\u7ce3\7\u7d44\7\u7da5\7\u7e06\7\u7e67\7\u7ec8" + + "\7\u7f29\7\u7f8a\7\u7feb\7\u804c\7\u80ad\7\u810e\7\u816f\7\u81d0" + + "\7\u8231\7\u8292\7\u82f3\7\u8354\7\u83b5\7\u8416\7\u8477\7\u84d8" + + "\7\u8539\7\u859a\7\u85fb\7\u865c\7\u86bd\7\u871e\7\u877f\7\u87e0" + + "\7\u8841\7\u88a2\7\u8903\7\u8964\7\u89c5\7\u8a26\2\u0c07\7\u8a87" + + "\7\u8ae8\7\u8b49\7\u8baa\7\u8c0b\7\u8c6c\7\u8ccd\7\u8d2e\7\u8d8f" + + "\7\u8df0\7\u8e51\7\u8eb2\7\u8f13\7\u8f74\7\u8fd5\7\u9036\7\u9097" + + "\7\u90f8\7\u9159\7\u91ba\7\u921b\7\u927c\7\u92dd\7\u933e\7\u939f" + + "\7\u9400\7\u9461\7\u94c2\7\u9523\7\u9584\7\u95e5\7\u9646\7\u96a7" + + "\7\u9708\4\u1ee0\7\u9769\7\u97ca\7\u982b\7\u988c\7\u98ed\7\u994e" + + "\7\u99af\7\u9a10\7\u9a71\7\u9ad2\7\u9b33\7\u9b94\7\u9bf5\7\u9c56" + + "\7\u9cb7\7\u9d18\7\u9d79\7\u9dda\7\u9e3b\7\u9e9c\7\u9efd\7\u9f5e" + + "\7\u9fbf\7\ua020\7\ua081\7\ua0e2\2\u749b\7\ua143\7\ua1a4\7\ua205" + + "\7\ua266\7\ua2c7\7\ua328\7\ua389\7\ua3ea\7\ua44b\7\ua4ac\7\ua50d" + + "\7\ua56e\7\ua5cf\7\ua630\7\ua691\7\ua6f2\7\ua753\7\ua7b4\7\ua815" + + "\7\ua876\7\ua8d7\7\ua938\7\ua999\7\ua9fa\7\uaa5b\7\uaabc\7\uab1d" + + "\7\uab7e\7\uabdf\7\uac40\7\uaca1\7\uad02\7\uad63\7\uadc4\7\uae25" + + "\7\uae86\7\uaee7\7\uaf48\7\uafa9\7\ub00a\7\ub06b\7\ub0cc\7\ub12d" + + "\7\ub18e\7\ub1ef\7\ub250\7\ub2b1\7\ub312\7\ub373\7\ub3d4\7\ub435" + + "\7\ub496\7\ub4f7\7\ub558\7\ub5b9\7\ub61a\7\ub67b\7\ub6dc\7\ub73d" + + "\7\ub79e\7\ub7ff\7\ub860\7\ub8c1\7\ub922\7\ub983\7\ub9e4\7\uba45" + + "\7\ubaa6\7\ubb07\7\ubb68\7\ubbc9\7\ubc2a\7\ubc8b\7\ubcec\7\ubd4d" + + "\7\ubdae\7\ube0f\7\ube70\7\ubed1\7\ubf32\7\ubf93\7\ubff4\7\uc055" + + "\7\uc0b6\7\uc117\7\uc178\7\uc1d9\7\uc23a\7\uc29b\7\uc2fc\7\uc35d" + + "\7\uc3be\7\uc41f\7\uc480\1\u46ff\7\uc4e1\7\uc542\7\uc5a3\7\uc604" + + "\7\uc665\7\uc6c6\7\uc727\7\uc788\7\uc7e9\7\uc84a\7\uc8ab\7\uc90c" + + "\7\uc96d\7\uc9ce\7\uca2f\7\uca90\7\ucaf1\7\ucb52\7\ucbb3\7\ucc14" + + "\7\ucc75\7\uccd6\6\u32dc\7\ucd37\7\ucd98\7\ucdf9\7\uce5a\7\ucebb" + + "\7\ucf1c\7\ucf7d\7\ucfde\7\ud03f\7\ud0a0\7\ud101\7\ud162\7\ud1c3" + + "\7\ud224\7\ud285\7\ud2e6\7\ud347\7\ud3a8\7\ud409\7\ud46a\7\ud4cb" + + "\7\ud52c\7\ud58d\7\ud5ee\7\ud64f\7\ud6b0\7\ud711\7\ud772\7\ud7d3" + + "\7\ud834\7\ud895\7\ud8f6\7\ud957\7\ud9b8\7\uda19\7\uda7a\7\udadb" + + "\7\udb3c\7\udb9d\7\udbfe\7\udc5f\7\udcc0\7\udd21\7\udd82\7\udde3" + + "\7\ude44\7\udea5\7\udf06\7\udf67\7\udfc8\7\ue029\7\ue08a\7\ue0eb" + + "\7\ue14c\7\ue1ad\7\ue20e\7\ue26f\7\ue2d0\7\ue331\7\ue392\7\ue3f3" + + "\7\ue454\7\ue4b5\7\ue516\7\ue577\7\ue5d8\7\ue639\7\ue69a\7\ue6fb" + + "\7\ue75c\7\ue7bd\7\ue81e\7\ue87f\7\ue8e0\7\ue941\7\ue9a2\7\uea03" + + "\7\uea64\7\ueac5\7\ueb26\7\ueb87\7\uebe8\7\uec49\7\uecaa\7\ued0b" + + "\7\ued6c\7\uedcd\7\uee2e\7\uee8f\7\ueef0\7\uef51\7\uefb2\7\uf013" + + "\7\uf074\7\uf0d5\7\uf136\7\uf197\7\uf1f8\7\uf259\7\uf2ba\7\uf31b" + + "\7\uf37c\7\uf3dd\7\uf43e\7\uf49f\7\uf500\7\uf561\7\uf5c2\7\uf623" + + "\7\uf684\7\uf6e5\7\uf746\7\uf7a7\7\uf808\7\uf869\7\uf8ca\7\uf92b" + + "\7\uf98c\7\uf9ed\7\ufa4e\7\ufaaf\7\ufb10\7\ufb71\7\ufbd2\7\ufc33" + + "\7\ufc94\7\ufcf5\7\ufd56\7\ufdb7\7\ufe18\7\ufe79\7\ufeda\7\uff3b" + + "\7\uff9c\7\ufffd\10\136\10\277\10\u0120\10\u0181\10\u01e2\10\u0243" + + "\10\u02a4\10\u0305\10\u0366\10\u03c7\10\u0428\10\u0489\10\u04ea\10\u054b" + + "\10\u05ac\10\u060d\10\u066e\10\u06cf\10\u0730\10\u0791\10\u07f2\10\u0853" + + "\10\u08b4\10\u0915\10\u0976\10\u09d7\10\u0a38\10\u0a99\10\u0afa\10\u0b5b" + + "\10\u0bbc\10\u0c1d\10\u0c7e\10\u0cdf\10\u0d40\10\u0da1\10\u0e02\10\u0e63" + + "\10\u0ec4\10\u0f25\10\u0f86\10\u0fe7\10\u1048\10\u10a9\10\u110a\10\u116b" + + "\10\u11cc\10\u122d\10\u128e\10\u12ef\10\u1350\10\u13b1\10\u1412\10\u1473" + + "\10\u14d4\10\u1535\10\u1596\10\u15f7\10\u1658\10\u16b9\10\u171a\10\u177b" + + "\10\u17dc\10\u183d\10\u189e\10\u18ff\10\u1960\10\u19c1\10\u1a22\10\u1a83" + + "\10\u1ae4\10\u1b45\10\u1ba6\10\u1c07\10\u1c68\10\u1cc9\10\u1d2a\10\u1d8b" + + "\10\u1dec\10\u1e4d\10\u1eae\10\u1f0f\10\u1f70\10\u1fd1\10\u2032\10\u2093" + + "\10\u20f4\10\u2155\10\u21b6\10\u2217\10\u2278\10\u22d9\10\u233a\10\u239b" + + "\10\u23fc\10\u245d\10\u24be\10\u251f\2\u96b5\10\u2580\10\u25e1\10\u2642" + + "\10\u26a3\10\u2704\10\u2765\10\u27c6\10\u2827\10\u2888\10\u28e9\10\u294a" + + "\10\u29ab\10\u2a0c\10\u2a6d\10\u2ace\10\u2b2f\10\u2b90\10\u2bf1\10\u2c52" + + "\10\u2cb3\10\u2d14\10\u2d75\10\u2dd6\10\u2e37\10\u2e98\10\u2ef9\10\u2f5a" + + "\10\u2fbb\10\u301c\10\u307d\10\u30de\10\u313f\10\u31a0\10\u3201\10\u3262" + + "\10\u32c3\10\u3324\10\u3385\10\u33e6\10\u3447\10\u34a8\10\u3509\10\u356a" + + "\10\u35cb\10\u362c\10\u368d\10\u36ee\10\u374f\10\u37b0\10\u3811\10\u3872" + + "\10\u38d3\10\u3934\10\u3995\10\u39f6\10\u3a57\10\u3ab8\10\u3b19\10\u3b7a" + + "\10\u3bdb\10\u3c3c\10\u3c9d\10\u3cfe\10\u3d5f\10\u3dc0\10\u3e21\10\u3e82" + + "\10\u3ee3\10\u3f44\10\u3fa5\10\u4006\10\u4067\10\u40c8\10\u4129\10\u418a" + + "\10\u41eb\10\u424c\10\u42ad\10\u430e\10\u436f\10\u43d0\10\u4431\10\u4492" + + "\10\u44f3\10\u4554\10\u45b5\10\u4616\10\u4677\10\u46d8\10\u4739\10\u479a" + + "\10\u47fb\10\u485c\10\u48bd\10\u491e\10\u497f\10\u49e0\10\u4a41\10\u4aa2" + + "\10\u4b03\10\u4b64\10\u4bc5\10\u4c26\10\u4c87\10\u4ce8\10\u4d49\5\u774d" + + "\10\u4daa\10\u4e0b\10\u4e6c\10\u4ecd\10\u4f2e\10\u4f8f\10\u4ff0\10\u5051" + + "\10\u50b2\10\u5113\10\u5174\3\u5a39\10\u51d5\10\u5236\10\u5297\10\u52f8" + + "\10\u5359\10\u53ba\10\u541b\10\u547c\10\u54dd\10\u553e\10\u559f\10\u5600" + + "\10\u5661\10\u56c2\10\u5723\10\u5784\10\u57e5\10\u5846\10\u58a7\10\u5908" + + "\10\u5969\10\u59ca\10\u5a2b\10\u5a8c\10\u5aed\10\u5b4e\10\u5baf\10\u5c10" + + "\10\u5c71\10\u5cd2\10\u5d33\10\u5d94\10\u5df5\10\u5e56\10\u5eb7\10\u5f18" + + "\10\u5f79\10\u5fda\10\u603b\10\u609c\10\u60fd\10\u615e\10\u61bf\10\u6220" + + "\10\u6281\10\u62e2\10\u6343\10\u63a4\10\u6405\10\u6466\10\u64c7\10\u6528" + + "\10\u6589\10\u65ea\10\u664b\10\u66ac\10\u670d\10\u676e\10\u67cf\10\u6830" + + "\10\u6891\10\u68f2\10\u6953\10\u69b4\10\u6a15\10\u6a76\10\u6ad7\10\u6b38" + + "\10\u6b99\10\u6bfa\10\u6c5b\10\u6cbc\10\u6d1d\10\u6d7e\10\u6ddf\10\u6e40" + + "\10\u6ea1\10\u6f02\10\u6f63\10\u6fc4\10\u7025\10\u7086\10\u70e7\10\u7148" + + "\10\u71a9\10\u720a\10\u726b\10\u72cc\10\u732d\10\u738e\10\u73ef\10\u7450" + + "\4\ua502\10\u74b1\10\u7512\10\u7573\10\u75d4\10\u7635\10\u7696\10\u76f7" + + "\10\u7758\10\u77b9\10\u781a\10\u787b\10\u78dc\10\u793d\10\u799e\10\u79ff" + + "\10\u7a60\10\u7ac1\10\u7b22\10\u7b83\10\u7be4\10\u7c45\10\u7ca6\4\u30af" + + "\10\u7d07\10\u7d68\10\u7dc9\10\u7e2a\10\u7e8b\10\u7eec\10\u7f4d\10\u7fae" + + "\10\u800f\10\u8070\10\u80d1\10\u8132\10\u8193\10\u81f4\10\u8255\10\u82b6" + + "\10\u8317\10\u8378\10\u83d9\10\u843a\10\u849b\10\u84fc\10\u855d\10\u85be" + + "\10\u861f\10\u8680\10\u86e1\10\u8742\10\u87a3\10\u8804\10\u8865\10\u88c6" + + "\10\u8927\10\u8988\10\u89e9\10\u8a4a\10\u8aab\10\u8b0c\10\u8b6d\10\u8bce" + + "\10\u8c2f\10\u8c90\10\u8cf1\10\u8d52\10\u8db3\10\u8e14\10\u8e75\10\u8ed6" + + "\10\u8f37\10\u8f98\10\u8ff9\10\u905a\10\u90bb\10\u911c\10\u917d\10\u91de" + + "\10\u923f\10\u92a0\10\u9301\10\u9362\10\u93c3\3\u7dd7\10\u9424\10\u9485" + + "\10\u94e6\10\u9547\10\u95a8\10\u9609\10\u966a\10\u96cb\10\u972c\10\u978d" + + "\10\u97ee\10\u984f\10\u98b0\10\u9911\10\u9972\10\u99d3\10\u9a34\10\u9a95" + + "\10\u9af6\10\u9b57\10\u9bb8\10\u9c19\10\u9c7a\10\u9cdb\10\u9d3c\10\u9d9d" + + "\10\u9dfe\10\u9e5f\10\u9ec0\10\u9f21\10\u9f82\10\u9fe3\10\ua044\10\ua0a5" + + "\10\ua106\10\ua167\10\ua1c8\10\ua229\10\ua28a\10\ua2eb\10\ua34c\10\ua3ad" + + "\10\ua40e\10\ua46f\10\ua4d0\10\ua531\10\ua592\10\ua5f3\10\ua654\10\ua6b5" + + "\10\ua716\10\ua777\10\ua7d8\10\ua839\10\ua89a\10\ua8fb\10\ua95c\10\ua9bd" + + "\10\uaa1e\10\uaa7f\10\uaae0\10\uab41\10\uaba2\10\uac03\10\uac64\10\uacc5" + + "\10\uad26\10\uad87\10\uade8\10\uae49\10\uaeaa\10\uaf0b\10\uaf6c\10\uafcd" + + "\10\ub02e\10\ub08f\10\ub0f0\10\ub151\10\ub1b2\10\ub213\10\ub274\10\ub2d5" + + "\10\ub336\10\ub397\10\ub3f8\10\ub459\10\ub4ba\10\ub51b\10\ub57c\10\ub5dd" + + "\10\ub63e\10\ub69f\10\ub700\10\ub761\10\ub7c2\10\ub823\10\ub884\10\ub8e5" + + "\10\ub946\10\ub9a7\10\uba08\10\uba69\10\ubaca\10\ubb2b\10\ubb8c\10\ubbed" + + "\10\ubc4e\10\ubcaf\10\ubd10\10\ubd71\10\ubdd2\10\ube33\10\ube94\0\u0c81" + + "\10\ubef5\10\ubf56\10\ubfb7\10\uc018\10\uc079\10\uc0da\10\uc13b\10\uc19c" + + "\10\uc1fd\10\uc25e\10\uc2bf\10\uc320\10\uc381\10\uc3e2\10\uc443\10\uc4a4" + + "\10\uc505\10\uc566\10\uc5c7\10\uc628\10\uc689\10\uc6ea\10\uc74b\10\uc7ac" + + "\10\uc80d\10\uc86e\10\uc8cf\10\uc930\10\uc991\7\u1e8a\10\uc9f2\10\uca53" + + "\10\ucab4\10\ucb15\10\ucb76\10\ucbd7\10\ucc38\10\ucc99\10\uccfa\10\ucd5b" + + "\10\ucdbc\10\uce1d\10\uce7e\10\ucedf\10\ucf40\10\ucfa1\10\ud002\10\ud063" + + "\10\ud0c4\10\ud125\10\ud186\10\ud1e7\10\ud248\10\ud2a9\10\ud30a\10\ud36b" + + "\10\ud3cc\10\ud42d\10\ud48e\10\ud4ef\10\ud550\10\ud5b1\10\ud612\10\ud673" + + "\10\ud6d4\10\ud735\10\ud796\10\ud7f7\10\ud858\10\ud8b9\10\ud91a\10\ud97b" + + "\10\ud9dc\10\uda3d\10\uda9e\10\udaff\10\udb60\10\udbc1\10\udc22\10\udc83" + + "\10\udce4\10\udd45\10\udda6\10\ude07\10\ude68\10\udec9\10\udf2a\10\udf8b" + + "\10\udfec\10\ue04d\10\ue0ae\10\ue10f\10\ue170\10\ue1d1\10\ue232\10\ue293" + + "\10\ue2f4\10\ue355\10\ue3b6\10\ue417\10\ue478\10\ue4d9\10\ue53a\10\ue59b" + + "\10\ue5fc\10\ue65d\10\ue6be\10\ue71f\10\ue780\10\ue7e1\10\ue842\10\ue8a3" + + "\10\ue904\10\ue965\10\ue9c6\10\uea27\10\uea88\10\ueae9\10\ueb4a\10\uebab" + + "\10\uec0c\10\uec6d\10\uecce\10\ued2f\10\ued90\10\uedf1\10\uee52\10\ueeb3" + + "\10\uef14\10\uef75\10\uefd6\10\uf037\10\uf098\10\uf0f9\10\uf15a\10\uf1bb" + + "\10\uf21c\10\uf27d\10\uf2de\10\uf33f\10\uf3a0\10\uf401\10\uf462\10\uf4c3" + + "\10\uf524\10\uf585\10\uf5e6\10\uf647\10\uf6a8\10\uf709\10\uf76a\10\uf7cb" + + "\10\uf82c\10\uf88d\10\uf8ee\10\uf94f\10\uf9b0\10\ufa11\10\ufa72\10\ufad3" + + "\10\ufb34\10\ufb95\10\ufbf6\10\ufc57\10\ufcb8\10\ufd19\10\ufd7a\10\ufddb" + + "\10\ufe3c\10\ufe9d\10\ufefe\10\uff5f\10\uffc0\11\41\11\202\11\343" + + "\11\u0144\11\u01a5\11\u0206\11\u0267\11\u02c8\11\u0329\11\u038a\11\u03eb" + + "\11\u044c\11\u04ad\11\u050e\11\u056f\6\ub89d\11\u05d0\11\u0631\11\u0692" + + "\11\u06f3\11\u0754\11\u07b5\11\u0816\11\u0877\11\u08d8\11\u0939\11\u099a" + + "\11\u09fb\11\u0a5c\11\u0abd\11\u0b1e\11\u0b7f\11\u0be0\11\u0c41\11\u0ca2" + + "\11\u0d03\11\u0d64\11\u0dc5\11\u0e26\11\u0e87\11\u0ee8\11\u0f49\11\u0faa" + + "\11\u100b\11\u106c\11\u10cd\11\u112e\11\u118f\11\u11f0\11\u1251\11\u12b2" + + "\11\u1313\11\u1374\11\u13d5\11\u1436\11\u1497\11\u14f8\11\u1559\11\u15ba" + + "\11\u161b\11\u167c\11\u16dd\11\u173e\11\u179f\11\u1800\11\u1861\11\u18c2" + + "\11\u1923\11\u1984\11\u19e5\11\u1a46\11\u1aa7\11\u1b08\11\u1b69\11\u1bca" + + "\11\u1c2b\11\u1c8c\11\u1ced\11\u1d4e\11\u1daf\11\u1e10\11\u1e71\11\u1ed2" + + "\11\u1f33\11\u1f94\11\u1ff5\11\u2056\11\u20b7\11\u2118\11\u2179\11\u21da" + + "\11\u223b\11\u229c\11\u22fd\11\u235e\11\u23bf\11\u2420\11\u2481\11\u24e2" + + "\11\u2543\11\u25a4\11\u2605\11\u2666\11\u26c7\11\u2728\11\u2789\11\u27ea" + + "\11\u284b\11\u28ac\11\u290d\11\u296e\11\u29cf\11\u2a30\11\u2a91\11\u2af2" + + "\11\u2b53\11\u2bb4\11\u2c15\11\u2c76\11\u2cd7\11\u2d38\11\u2d99\11\u2dfa" + + "\11\u2e5b\11\u2ebc\11\u2f1d\11\u2f7e\11\u2fdf\11\u3040\11\u30a1\11\u3102" + + "\11\u3163\11\u31c4\11\u3225\11\u3286\11\u32e7\11\u3348\11\u33a9\11\u340a" + + "\11\u346b\11\u34cc\11\u352d\11\u358e\11\u35ef\11\u3650\11\u36b1\11\u3712" + + "\11\u3773\11\u37d4\11\u3835\11\u3896\11\u38f7\11\u3958\11\u39b9\11\u3a1a" + + "\11\u3a7b\11\u3adc\11\u3b3d\11\u3b9e\11\u3bff\11\u3c60\11\u3cc1\11\u3d22" + + "\11\u3d83\11\u3de4\11\u3e45\11\u3ea6\11\u3f07\11\u3f68\11\u3fc9\11\u402a" + + "\11\u408b\11\u40ec\11\u414d\11\u41ae\11\u420f\11\u4270\11\u42d1\11\u4332" + + "\11\u4393\11\u43f4\11\u4455\11\u44b6\11\u4517\11\u4578\11\u45d9\11\u463a" + + "\11\u469b\11\u46fc\11\u475d\11\u47be\11\u481f\11\u4880\11\u48e1\11\u4942" + + "\11\u49a3\11\u4a04\11\u4a65\11\u4ac6\11\u4b27\11\u4b88\11\u4be9\11\u4c4a" + + "\11\u4cab\11\u4d0c\11\u4d6d\11\u4dce\11\u4e2f\11\u4e90\11\u4ef1\11\u4f52" + + "\11\u4fb3\11\u5014\11\u5075\11\u50d6\11\u5137\11\u5198\11\u51f9\11\u525a" + + "\11\u52bb\11\u531c\11\u537d\11\u53de\11\u543f\11\u54a0\11\u5501\11\u5562" + + "\11\u55c3\11\u5624\11\u5685\11\u56e6\11\u5747\11\u57a8\11\u5809\11\u586a" + + "\11\u58cb\11\u592c\11\u598d\11\u59ee\11\u5a4f\11\u5ab0\11\u5b11\11\u5b72" + + "\7\u4d86\11\u5bd3\11\u5c34\11\u5c95\11\u5cf6\11\u5d57\11\u5db8\11\u5e19" + + "\11\u5e7a\11\u5edb\11\u5f3c\11\u5f9d\11\u5ffe\11\u605f\11\u60c0\11\u6121" + + "\11\u6182\11\u61e3\11\u6244\11\u62a5\11\u6306\11\u6367\11\u63c8\11\u6429" + + "\11\u648a\11\u64eb\11\u654c\11\u65ad\11\u660e\11\u666f\11\u66d0\11\u6731" + + "\11\u6792\11\u67f3\11\u6854\11\u68b5\11\u6916\11\u6977\11\u69d8\11\u6a39" + + "\11\u6a9a\11\u6afb\11\u6b5c\11\u6bbd\11\u6c1e\11\u6c7f\11\u6ce0\11\u6d41" + + "\11\u6da2\11\u6e03\11\u6e64\11\u6ec5\11\u6f26\11\u6f87\11\u6fe8\11\u7049" + + "\11\u70aa\11\u710b\11\u716c\11\u71cd\11\u722e\11\u728f\11\u72f0\11\u7351" + + "\11\u73b2\11\u7413\11\u7474\11\u74d5\11\u7536\11\u7597\11\u75f8\11\u7659" + + "\2\u453e\11\u76ba\11\u771b\11\u777c\11\u77dd\11\u783e\11\u789f\11\u7900" + + "\11\u7961\11\u79c2\11\u7a23\11\u7a84\11\u7ae5\11\u7b46\11\u7ba7\11\u7c08" + + "\11\u7c69\11\u7cca\11\u7d2b\11\u7d8c\11\u7ded\11\u7e4e\4\u3110\11\u7eaf" + + "\11\u7f10\11\u7f71\11\u7fd2\11\u8033\11\u8094\11\u80f5\11\u8156\11\u81b7" + + "\11\u8218\11\u8279\11\u82da\11\u833b\11\u839c\11\u83fd\11\u845e\11\u84bf" + + "\11\u8520\11\u8581\11\u85e2\11\u8643\11\u86a4\11\u8705\11\u8766\11\u87c7" + + "\11\u8828\11\u8889\11\u88ea\11\u894b\11\u89ac\11\u8a0d\11\u8a6e\11\u8acf" + + "\11\u8b30\11\u8b91\11\u8bf2\11\u8c53\11\u8cb4\11\u8d15\11\u8d76\11\u8dd7" + + "\11\u8e38\11\u8e99\11\u8efa\11\u8f5b\11\u8fbc\11\u901d\11\u907e\11\u90df" + + "\11\u9140\11\u91a1\11\u9202\11\u9263\11\u92c4\11\u9325\11\u9386\11\u93e7" + + "\11\u9448\11\u94a9\11\u950a\11\u956b\11\u95cc\11\u962d\11\u968e\11\u96ef" + + "\11\u9750\11\u97b1\11\u9812\11\u9873\11\u98d4\11\u9935\11\u9996\11\u99f7" + + "\11\u9a58\11\u9ab9\11\u9b1a\11\u9b7b\11\u9bdc\11\u9c3d\11\u9c9e\11\u9cff" + + "\11\u9d60\11\u9dc1\11\u9e22\11\u9e83\11\u9ee4\11\u9f45\11\u9fa6\11\ua007" + + "\11\ua068\11\ua0c9\11\ua12a\11\ua18b\11\ua1ec\11\ua24d\11\ua2ae\11\ua30f" + + "\11\ua370\11\ua3d1\11\ua432\11\ua493\11\ua4f4\11\ua555\11\ua5b6\11\ua617" + + "\11\ua678\11\ua6d9\11\ua73a\11\ua79b\11\ua7fc\11\ua85d\11\ua8be\11\ua91f" + + "\11\ua980\11\ua9e1\11\uaa42\11\uaaa3\11\uab04\11\uab65\11\uabc6\11\uac27" + + "\11\uac88\11\uace9\11\uad4a\11\uadab\11\uae0c\11\uae6d\11\uaece\11\uaf2f" + + "\11\uaf90\11\uaff1\11\ub052\11\ub0b3\11\ub114\11\ub175\11\ub1d6\11\ub237" + + "\11\ub298\11\ub2f9\11\ub35a\11\ub3bb\11\ub41c\11\ub47d\11\ub4de\11\ub53f" + + "\11\ub5a0\11\ub601\11\ub662\11\ub6c3\11\ub724\11\ub785\11\ub7e6\11\ub847" + + "\11\ub8a8\11\ub909\11\ub96a\11\ub9cb\11\uba2c\11\uba8d\11\ubaee\11\ubb4f" + + "\11\ubbb0\11\ubc11\11\ubc72\11\ubcd3\11\ubd34\11\ubd95\11\ubdf6\11\ube57" + + "\11\ubeb8\11\ubf19\11\ubf7a\11\ubfdb\11\uc03c\11\uc09d\11\uc0fe\11\uc15f" + + "\11\uc1c0\11\uc221\11\uc282\11\uc2e3\11\uc344\11\uc3a5\11\uc406\11\uc467" + + "\11\uc4c8\3\u991f\11\uc529\11\uc58a\11\uc5eb\11\uc64c\11\uc6ad\11\uc70e" + + "\11\uc76f\11\uc7d0\11\uc831\11\uc892\11\uc8f3\11\uc954\11\uc9b5\11\uca16" + + "\11\uca77\11\ucad8\11\ucb39\11\ucb9a\11\ucbfb\11\ucc5c\11\uccbd\11\ucd1e" + + "\11\ucd7f\11\ucde0\11\uce41\11\ucea2\11\ucf03\11\ucf64\11\ucfc5\11\ud026" + + "\11\ud087\11\ud0e8\11\ud149\11\ud1aa\11\ud20b\11\ud26c\11\ud2cd\11\ud32e" + + "\11\ud38f\11\ud3f0\11\ud451\11\ud4b2\11\ud513\11\ud574\11\ud5d5\11\ud636" + + "\11\ud697\11\ud6f8\11\ud759\11\ud7ba\11\ud81b\11\ud87c\11\ud8dd\11\ud93e" + + "\11\ud99f\11\uda00\11\uda61\11\udac2\11\udb23\11\udb84\11\udbe5\11\udc46" + + "\11\udca7\11\udd08\11\udd69\11\uddca\11\ude2b\11\ude8c\11\udeed\11\udf4e" + + "\11\udfaf\11\ue010\11\ue071\11\ue0d2\11\ue133\11\ue194\11\ue1f5\11\ue256" + + "\11\ue2b7\11\ue318\11\ue379\11\ue3da\11\ue43b\11\ue49c\11\ue4fd\11\ue55e" + + "\11\ue5bf\11\ue620\11\ue681\11\ue6e2\11\ue743\11\ue7a4\11\ue805\11\ue866" + + "\11\ue8c7\11\ue928\11\ue989\11\ue9ea\11\uea4b\11\ueaac\11\u4dce\11\ueb0d" + + "\11\ueb6e\11\uebcf\11\uec30\11\uec91\11\uecf2\11\ued53\11\uedb4\11\uee15" + + "\11\uee76\11\ueed7\11\uef38\11\uef99\11\ueffa\11\uf05b\11\uf0bc\11\uf11d" + + "\11\uf17e\11\uf1df\11\uf240\11\uf2a1\11\uf302\11\uf363\11\uf3c4\11\uf425" + + "\11\uf486\11\uf4e7\11\uf548\11\uf5a9\11\uf60a\11\uf66b\11\uf6cc\11\uf72d" + + "\11\uf78e\11\uf7ef\11\uf850\11\uf8b1\11\uf912\11\uf973\11\uf9d4\11\ufa35" + + "\11\ufa96\11\ufaf7\11\ufb58\11\ufbb9\11\ufc1a\11\ufc7b\11\ufcdc\11\ufd3d" + + "\11\ufd9e\11\ufdff\11\ufe60\11\ufec1\11\uff22\11\uff83\11\uffe4\12\105" + + "\12\246\12\u0107\12\u0168\12\u01c9\12\u022a\12\u028b\12\u02ec\12\u034d" + + "\12\u03ae\12\u040f\12\u0470\12\u04d1\12\u0532\12\u0593\12\u05f4\12\u0655" + + "\12\u06b6\12\u0717\12\u0778\12\u07d9\12\u083a\6\u82cf\12\u089b\12\u08fc" + + "\12\u095d\12\u09be\12\u0a1f\12\u0a80\12\u0ae1\12\u0b42\12\u0ba3\12\u0c04" + + "\12\u0c65\12\u0cc6\12\u0d27\12\u0d88\12\u0de9\12\u0e4a\12\u0eab\12\u0f0c" + + "\12\u0f6d\12\u0fce\12\u102f\12\u1090\12\u10f1\12\u1152\12\u11b3\12\u1214" + + "\12\u1275\12\u12d6\12\u1337\12\u1398\12\u13f9\12\u145a\12\u14bb\12\u151c" + + "\12\u157d\12\u15de\12\u163f\12\u16a0\12\u1701\12\u1762\12\u17c3\12\u1824" + + "\12\u1885\12\u18e6\12\u1947\12\u19a8\12\u1a09\12\u1a6a\12\u1acb\12\u1b2c" + + "\12\u1b8d\12\u1bee\12\u1c4f\12\u1cb0\12\u1d11\12\u1d72\12\u1dd3\12\u1e34" + + "\12\u1e95\12\u1ef6\12\u1f57\12\u1fb8\12\u2019\12\u207a\12\u20db\12\u213c" + + "\12\u219d\12\u21fe\12\u225f\12\u22c0\12\u2321\12\u2382\12\u23e3\12\u2444" + + "\12\u24a5\12\u2506\12\u2567\12\u25c8\12\u2629\12\u268a\12\u26eb\12\u274c" + + "\12\u27ad\12\u280e\12\u286f\12\u28d0\12\u2931\12\u2992\12\u29f3\12\u2a54" + + "\12\u2ab5\12\u2b16\12\u2b77\12\u2bd8\12\u2c39\12\u2c9a\12\u2cfb\12\u2d5c" + + "\12\u2dbd\12\u2e1e\12\u2e7f\12\u2ee0\12\u2f41\12\u2fa2\12\u3003\12\u3064" + + "\12\u30c5\12\u3126\12\u3187\12\u31e8\12\u3249\12\u32aa\12\u330b\12\u336c" + + "\12\u33cd\12\u342e\12\u348f\12\u34f0\12\u3551\12\u35b2\12\u3613\12\u3674" + + "\12\u36d5\12\u3736\12\u3797\12\u37f8\12\u3859\12\u38ba\12\u391b\12\u397c" + + "\12\u39dd\12\u3a3e\12\u3a9f\12\u3b00\12\u3b61\12\u3bc2\12\u3c23\12\u3c84" + + "\12\u3ce5\12\u3d46\12\u3da7\12\u3e08\12\u3e69\12\u3eca\12\u3f2b\12\u3f8c" + + "\12\u3fed\12\u404e\12\u40af\12\u4110\1\u07b8\12\u4171\12\u41d2\12\u4233" + + "\12\u4294\12\u42f5\12\u4356\12\u43b7\12\u4418\12\u4479\12\u44da\12\u453b" + + "\12\u459c\12\u45fd\12\u465e\12\u46bf\12\u4720\12\u4781\12\u47e2\12\u4843" + + "\12\u48a4\12\u4905\12\u4966\12\u49c7\12\u4a28\12\u4a89\12\u4aea\12\u4b4b" + + "\12\u4bac\12\u4c0d\12\u4c6e\12\u4ccf\12\u4d30\12\u4d91\12\u4df2\12\u4e53" + + "\12\u4eb4\12\u4f15\12\u4f76\12\u4fd7\12\u5038\12\u5099\12\u50fa\12\u515b" + + "\12\u51bc\12\u521d\12\u527e\12\u52df\12\u5340\12\u53a1\12\u5402\12\u5463" + + "\12\u54c4\12\u5525\12\u5586\12\u55e7\12\u5648\12\u56a9\12\u570a\12\u576b" + + "\12\u57cc\5\u6ef7\12\u582d\12\u588e\12\u58ef\12\u5950\12\u59b1\12\u5a12" + + "\12\u5a73\12\u5ad4\12\u5b35\12\u5b96\12\u5bf7\12\u5c58\12\u5cb9\12\u5d1a" + + "\12\u5d7b\12\u5ddc\12\u5e3d\12\u5e9e\12\u5eff\12\u5f60\12\u5fc1\12\u6022" + + "\12\u6083\12\u60e4\12\u6145\12\u61a6\12\u6207\12\u6268\12\u62c9\12\u632a" + + "\12\u638b\12\u63ec\12\u644d\12\u64ae\12\u650f\12\u6570\12\u65d1\12\u6632" + + "\12\u6693\12\u66f4\12\u6755\12\u67b6\12\u6817\12\u6878\12\u68d9\12\u693a" + + "\12\u699b\12\u69fc\12\u6a5d\12\u6abe\12\u6b1f\12\u6b80\12\u6be1\12\u6c42" + + "\10\u6f63\12\u6ca3\12\u6d04\12\u6d65\12\u6dc6\12\u6e27\12\u6e88\12\u6ee9" + + "\12\u6f4a\12\u6fab\12\u700c\12\u706d\12\u70ce\12\u712f\12\u7190\12\u71f1" + + "\12\u7252\12\u72b3\12\u7314\12\u7375\12\u73d6\12\u7437\12\u7498\12\u74f9" + + "\12\u755a\12\u75bb\12\u761c\12\u767d\12\u76de\12\u773f\12\u77a0\12\u7801" + + "\12\u7862\12\u78c3\12\u7924\12\u7985\12\u79e6\12\u7a47\12\u7aa8\12\u7b09" + + "\12\u7b6a\12\u7bcb\12\u7c2c\12\u7c8d\12\u7cee\12\u7d4f\12\u7db0\12\u7e11" + + "\12\u7e72\12\u7ed3\12\u7f34\12\u7f95\12\u7ff6\12\u8057\12\u80b8\12\u8119" + + "\12\u817a\12\u81db\12\u823c\12\u829d\12\u82fe\12\u835f\12\u83c0\12\u8421" + + "\12\u8482\12\u84e3\12\u8544\12\u85a5\12\u8606\12\u8667\12\u86c8\12\u8729" + + "\12\u878a\12\u87eb\12\u884c\12\u88ad\12\u890e\12\u896f\12\u89d0\12\u8a31" + + "\12\u8a92\12\u8af3\3\u45c3\12\u8b54\12\u8bb5\12\u8c16\12\u8c77\12\u8cd8" + + "\12\u8d39\12\u8d9a\12\u8dfb\12\u8e5c\12\u8ebd\12\u8f1e\12\u8f7f\12\u8fe0" + + "\12\u9041\12\u90a2\12\u9103\12\u9164\12\u91c5\12\u9226\12\u9287\12\u92e8" + + "\10\ucf40\12\u9349\12\u93aa\12\u940b\12\u946c\12\u94cd\12\u952e\12\u958f" + + "\12\u95f0\12\u9651\12\u96b2\12\u9713\12\u9774\12\u97d5\12\u9836\12\u9897" + + "\12\u98f8\12\u9959\12\u99ba\12\u9a1b\12\u9a7c\12\u9add\12\u9b3e\12\u9b9f" + + "\12\u9c00\12\u9c61\12\u9cc2\12\u9d23\12\u9d84\12\u9de5\12\u9e46\12\u9ea7" + + "\12\u9f08\12\u9f69\12\u9fca\12\ua02b\12\ua08c\12\ua0ed\12\ua14e\12\ua1af" + + "\12\ua210\12\ua271\12\ua2d2\12\ua333\12\ua394\12\ua3f5\12\u47e2\12\ua456" + + "\12\ua4b7\12\ua518\12\ua579\12\ua5da\12\ua63b\12\ua69c\12\ua6fd\12\ua75e" + + "\12\ua7bf\12\ua820\12\ua881\12\ua8e2\12\ua943\12\ua9a4\12\uaa05\12\uaa66" + + "\12\uaac7\12\uab28\12\uab89\12\uabea\12\uac4b\12\uacac\12\uad0d\12\uad6e" + + "\12\uadcf\12\uae30\12\uae91\12\uaef2\12\uaf53\12\uafb4\12\ub015\12\ub076" + + "\12\ub0d7\12\ub138\12\ub199\12\ub1fa\12\ub25b\12\ub2bc\12\ub31d\12\ub37e" + + "\12\ub3df\12\ub440\12\ub4a1\12\ub502\12\ub563\12\ub5c4\12\ub625\12\ub686" + + "\7\u14b0\12\ub6e7\12\ub748\12\ub7a9\12\ub80a\12\ub86b\12\ub8cc\12\ub92d" + + "\12\ub98e\12\ub9ef\12\uba50\12\ubab1\12\ubb12\12\ubb73\12\ubbd4\12\ubc35" + + "\12\ubc96\12\ubcf7\12\ubd58\12\ubdb9\12\ube1a\12\ube7b\12\ubedc\12\ubf3d" + + "\12\ubf9e\12\ubfff\12\uc060\12\uc0c1\12\uc122\12\uc183\12\uc1e4\12\uc245" + + "\12\uc2a6\12\uc307\12\uc368\12\uc3c9\12\uc42a\12\uc48b\12\uc4ec\12\uc54d" + + "\12\u213c\12\uc5ae\12\uc60f\12\uc670\12\uc6d1\12\uc732\12\uc793\12\uc7f4" + + "\12\uc855\12\uc8b6\12\uc917\12\uc978\12\uc9d9\12\uca3a\12\uca9b\12\ucafc" + + "\12\ucb5d\12\ucbbe\12\ucc1f\12\ucc80\12\ucce1\12\ucd42\12\ucda3\12\uce04" + + "\12\uce65\12\ucec6\12\ucf27\12\ucf88\12\ucfe9\12\ud04a\12\ud0ab\12\ud10c" + + "\12\ud16d\12\ud1ce\12\ud22f\12\ud290\12\ud2f1\12\ud352\12\ud3b3\12\ud414" + + "\12\ud475\12\ud4d6\12\ud537\12\ud598\12\ud5f9\12\ud65a\12\ud6bb\12\ud71c" + + "\12\ud77d\12\ud7de\12\ud83f\12\ud8a0\12\ud901\12\ud962\11\u2af2\12\ud9c3" + + "\12\uda24\12\uda85\12\udae6\12\udb47\12\udba8\12\udc09\12\udc6a\12\udccb" + + "\12\udd2c\12\udd8d\12\uddee\12\ude4f\12\udeb0\12\udf11\12\udf72\12\udfd3" + + "\12\ue034\12\ue095\12\ue0f6\12\ue157\12\ue1b8\12\ue219\12\ue27a\12\ue2db" + + "\12\ue33c\12\ue39d\12\ue3fe\12\ue45f\12\ue4c0\12\ue521\12\ue582\12\ue5e3" + + "\12\ue644\12\ue6a5\12\ue706\12\ue767\12\ue7c8\12\ue829\12\ue88a\12\ue8eb" + + "\12\ue94c\12\ue9ad\12\uea0e\12\uea6f\12\uead0\12\ueb31\12\ueb92\12\uebf3" + + "\12\uec54\12\uecb5\12\ued16\12\ued77\12\uedd8\12\uee39\12\uee9a\12\ueefb" + + "\12\uef5c\12\uefbd\12\uf01e\12\uf07f\12\uf0e0\12\uf141\12\uf1a2\12\uf203" + + "\12\uf264\12\uf2c5\12\uf326\12\uf387\12\uf3e8\12\uf449\12\uf4aa\12\uf50b" + + "\12\uf56c\12\uf5cd\12\uf62e\12\uf68f\12\uf6f0\12\uf751\12\uf7b2\12\uf813" + + "\12\uf874\12\uf8d5\12\uf936\12\uf997\12\uf9f8\12\ufa59\12\ufaba\12\ufb1b" + + "\12\ufb7c\12\ufbdd\12\ufc3e\12\ufc9f\12\ufd00\12\ufd61\12\ufdc2\12\ufe23" + + "\12\ufe84\12\ufee5\12\uff46\12\uffa7\13\10\13\151\13\312\13\u012b" + + "\13\u018c\13\u01ed\13\u024e\13\u02af\13\u0310\13\u0371\13\u03d2\13\u0433" + + "\13\u0494\13\u04f5\13\u0556\13\u05b7\13\u0618\13\u0679\13\u06da\13\u073b" + + "\13\u079c\13\u07fd\13\u085e\13\u08bf\13\u0920\13\u0981\13\u09e2\13\u0a43" + + "\13\u0aa4\13\u0b05\13\u0b66\3\uf532\13\u0bc7\13\u0c28\13\u0c89\13\u0cea" + + "\6\u752b\13\u0d4b\13\u0dac\13\u0e0d\13\u0e6e\13\u0ecf\13\u0f30\13\u0f91" + + "\13\u0ff2\13\u1053\13\u10b4\13\u1115\13\u1176\13\u11d7\13\u1238\13\u1299" + + "\13\u12fa\13\u135b\13\u13bc\13\u141d\13\u147e\13\u14df\13\u1540\13\u15a1" + + "\13\u1602\13\u1663\13\u16c4\13\u1725\13\u1786\13\u17e7\13\u1848\13\u18a9" + + "\13\u190a\13\u196b\13\u19cc\13\u1a2d\13\u1a8e\13\u1aef\13\u1b50\13\u1bb1" + + "\13\u1c12\13\u1c73\13\u1cd4\13\u1d35\13\u1d96\13\u1df7\13\u1e58\13\u1eb9" + + "\13\u1f1a\13\u1f7b\13\u1fdc\13\u203d\13\u209e\13\u20ff\13\u2160\13\u21c1" + + "\13\u2222\13\u2283\13\u22e4\13\u2345\13\u23a6\13\u2407\13\u2468\13\u24c9" + + "\13\u252a\13\u258b\13\u25ec\12\u4233\13\u264d\13\u26ae\13\u270f\13\u2770" + + "\13\u27d1\13\u2832\13\u2893\13\u28f4\13\u2955\13\u29b6\13\u2a17\13\u2a78" + + "\13\u2ad9\13\u2b3a\13\u2b9b\13\u2bfc\13\u2c5d\13\u2cbe\13\u2d1f\13\u2d80" + + "\13\u2de1\13\u2e42\13\u2ea3\13\u2f04\13\u2f65\13\u2fc6\13\u3027\13\u3088" + + "\13\u30e9\13\u314a\13\u31ab\13\u320c\13\u326d\13\u32ce\13\u332f\13\u3390" + + "\13\u33f1\13\u3452\13\u34b3\13\u3514\13\u3575\13\u35d6\13\u3637\13\u3698" + + "\13\u36f9\13\u375a\13\u37bb\13\u381c\13\u387d\13\u38de\13\u393f\13\u39a0" + + "\13\u3a01\13\u3a62\13\u3ac3\13\u3b24\13\u3b85\13\u3be6\13\u3c47\13\u3ca8" + + "\13\u3d09\13\u3d6a\13\u3dcb\13\u3e2c\13\u3e8d\13\u3eee\13\u3f4f\13\u3fb0" + + "\13\u4011\13\u4072\13\u40d3\13\u4134\13\u4195\13\u41f6\13\u4257\13\u42b8" + + "\13\u4319\13\u437a\13\u43db\13\u443c\13\u449d\13\u44fe\13\u455f\13\u45c0" + + "\13\u4621\13\u4682\13\u46e3\13\u4744\13\u47a5\13\u4806\13\u4867\13\u48c8" + + "\13\u4929\13\u498a\13\u49eb\13\u4a4c\13\u4aad\13\u4b0e\13\u4b6f\13\u4bd0" + + "\13\u4c31\13\u4c92\13\u4cf3\13\u4d54\13\u4db5\13\u4e16\13\u4e77\13\u4ed8" + + "\13\u4f39\13\u4f9a\13\u4ffb\13\u505c\13\u50bd\13\u511e\13\u517f\13\u51e0" + + "\13\u5241\13\u52a2\13\u5303\13\u5364\13\u53c5\11\u0b7f\13\u5426\13\u5487" + + "\13\u54e8\13\u5549\13\u55aa\13\u560b\13\u566c\13\u56cd\13\u572e\13\u578f" + + "\13\u57f0\13\u5851\13\u58b2\13\u5913\13\u5974\13\u59d5\13\u5a36\13\u5a97" + + "\13\u5af8\13\u5b59\13\u5bba\13\u5c1b\13\u5c7c\6\uf660\13\u5cdd\12\uaa05" + + "\13\u5d3e\13\u5d9f\13\u5e00\13\u5e61\13\u5ec2\13\u5f23\13\u5f84\13\u5fe5" + + "\13\u6046\13\u60a7\13\u6108\13\u6169\13\u61ca\13\u622b\13\u628c\13\u62ed" + + "\13\u634e\13\u63af\13\u6410\13\u6471\13\u64d2\13\u6533\13\u6594\13\u65f5" + + "\13\u6656\13\u66b7\13\u6718\13\u6779\13\u67da\13\u683b\13\u689c\13\u68fd" + + "\13\u695e\13\u69bf\13\u6a20\13\u6a81\13\u6ae2\13\u6b43\13\u6ba4\13\u6c05" + + "\13\u6c66\13\u6cc7\13\u6d28\13\u6d89\13\u6dea\13\u6e4b\13\u6eac\13\u6f0d" + + "\13\u6f6e\13\u6fcf\13\u7030\13\u7091\13\u70f2\13\u7153\13\u71b4\13\u7215" + + "\13\u7276\13\u72d7\13\u7338\13\u7399\13\u73fa\13\u745b\13\u74bc\13\u751d" + + "\13\u757e\13\u75df\13\u7640\13\u76a1\13\u7702\13\u7763\13\u77c4\13\u7825" + + "\13\u7886\13\u78e7\13\u7948\13\u79a9\13\u7a0a\13\u7a6b\13\u7acc\13\u7b2d" + + "\13\u7b8e\13\u7bef\13\u7c50\13\u7cb1\13\u7d12\13\u7d73\13\u7dd4\13\u7e35" + + "\13\u7e96\13\u7ef7\13\u7f58\13\u7fb9\13\u801a\13\u807b\13\u80dc\13\u813d" + + "\13\u819e\13\u81ff\13\u8260\13\u82c1\13\u8322\13\u8383\13\u83e4\13\u8445" + + "\13\u84a6\13\u8507\13\u8568\13\u85c9\13\u862a\13\u868b\13\u86ec\13\u874d" + + "\13\u87ae\13\u880f\13\u8870\13\u88d1\13\u8932\13\u8993\13\u89f4\13\u8a55" + + "\13\u8ab6\13\u8b17\13\u8b78\13\u8bd9\13\u8c3a\13\u8c9b\13\u8cfc\13\u8d5d" + + "\13\u8dbe\5\u4a36\13\u8e1f\13\u8e80\13\u8ee1\13\u8f42\13\u8fa3\13\u9004" + + "\13\u9065\13\u90c6\13\u9127\13\u9188\13\u91e9\13\u924a\13\u92ab\13\u930c" + + "\13\u936d\13\u93ce\13\u942f\13\u9490\13\u94f1\13\u9552\13\u95b3\13\u9614" + + "\13\u9675\13\u96d6\13\u9737\13\u9798\13\u97f9\13\u985a\13\u98bb\13\u991c" + + "\13\u997d\13\u99de\13\u9a3f\13\u9aa0\13\u9b01\13\u9b62\13\u9bc3\13\u9c24" + + "\13\u9c85\13\u9ce6\13\u9d47\13\u9da8\13\u9e09\13\u9e6a\13\u9ecb\13\u9f2c" + + "\13\u9f8d\13\u9fee\13\ua04f\13\ua0b0\13\ua111\13\ua172\13\ua1d3\13\ua234" + + "\13\ua295\13\ua2f6\13\ua357\13\ua3b8\13\ua419\13\ua47a\13\ua4db\13\ua53c" + + "\13\ua59d\13\ua5fe\13\ua65f\13\ua6c0\13\ua721\13\ua782\13\ua7e3\13\ua844" + + "\13\ua8a5\13\ua906\13\ua967\13\ua9c8\13\uaa29\13\uaa8a\13\uaaeb\13\uab4c" + + "\13\uabad\13\uac0e\13\uac6f\13\uacd0\13\uad31\13\uad92\13\uadf3\13\uae54" + + "\13\uaeb5\13\uaf16\13\uaf77\13\uafd8\13\ub039\13\ub09a\13\ub0fb\13\ub15c" + + "\13\ub1bd\13\ub21e\13\ub27f\13\ub2e0\13\ub341\13\ub3a2\13\ub403\13\ub464" + + "\13\ub4c5\13\ub526\13\ub587\13\ub5e8\13\ub649\13\ub6aa\13\ub70b\13\ub76c" + + "\13\ub7cd\13\ub82e\13\ub88f\13\ub8f0\13\ub951\13\ub9b2\13\uba13\13\uba74" + + "\13\ubad5\13\ubb36\13\ubb97\13\ubbf8\13\ubc59\13\ubcba\13\ubd1b\13\ubd7c" + + "\13\ubddd\13\ube3e\13\ube9f\13\ubf00\13\ubf61\13\ubfc2\13\uc023\13\uc084" + + "\13\uc0e5\13\uc146\13\uc1a7\13\uc208\13\uc269\13\uc2ca\13\uc32b\13\uc38c" + + "\13\uc3ed\13\uc44e\13\uc4af\13\uc510\13\uc571\13\uc5d2\13\uc633\13\uc694" + + "\13\uc6f5\13\uc756\13\uc7b7\13\uc818\13\uc879\13\uc8da\13\uc93b\13\uc99c" + + "\13\uc9fd\13\uca5e\13\ucabf\13\ucb20\13\ucb81\13\ucbe2\13\ucc43\13\ucca4" + + "\13\ucd05\13\ucd66\13\ucdc7\13\uce28\13\uce89\13\uceea\13\ucf4b\13\ucfac" + + "\13\ud00d\13\ud06e\13\ud0cf\13\ud130\13\ud191\13\ud1f2\13\ud253\13\ud2b4" + + "\13\ud315\13\ud376\13\ud3d7\13\ud438\13\ud499\11\udca7"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[8198]; + 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 = "\1\40\1\41\1\42\1\43\1\44\1\45\133\40\2\46" + + "\1\47\26\46\1\50\31\46\1\51\7\46\1\52\1\46" + "\1\53\43\46\2\54\1\55\14\54\1\56\121\54\1\57" + + "\1\60\1\0\1\61\1\44\2\57\1\62\1\63\6\57" + "\1\64\26\57\1\65\47\57\1\66\22\57\2\67\1\0" + + "\1\67\1\70\2\67\2\70\1\71\1\72\1\73\1\74" + "\1\75\1\76\1\70\1\67\1\77\1\100\3\67\1\101" + + "\3\67\1\102\6\67\1\103\4\67\1\70\7\67\1\74" + "\1\104\1\76\1\73\1\100\1\105\1\106\1\77\1\71" + + "\1\101\1\72\1\67\1\107\1\110\1\111\1\67\1\112" + "\1\103\1\75\1\67\1\113\1\67\1\114\1\67\1\102" + + "\1\105\1\106\1\107\4\67\1\70\1\111\1\104\1\67" + "\1\112\1\114\1\113\1\110\13\67\3\115\1\116\3\115" + + "\1\117\131\115\3\120\1\116\112\120\1\117\22\120\1\57" + "\1\60\1\0\1\61\1\44\2\57\1\121\1\122\6\57" + + "\1\123\26\57\1\65\47\57\1\124\22\57\3\115\1\116" + "\3\115\1\125\131\115\3\120\1\116\112\120\1\125\22\120" + + "\1\57\1\60\1\0\1\61\1\44\2\57\1\126\1\122" + "\6\57\1\127\26\57\1\65\47\57\1\130\22\57\3\115" + + "\1\116\3\115\1\131\131\115\3\120\1\116\112\120\1\131" + "\22\120\1\132\1\44\1\133\1\134\1\44\1\135\1\136" + + "\1\137\1\140\3\141\1\142\2\141\1\143\4\141\1\144" + "\1\145\1\141\1\144\1\141\1\146\1\147\1\150\2\132" + + "\1\141\1\151\2\141\1\152\1\153\1\154\1\136\4\151" + "\3\65\1\155\1\156\1\141\1\157\1\160\1\161\1\162" + + "\1\163\1\164\1\165\1\166\1\167\1\170\1\171\2\141" + "\1\172\1\141\1\173\1\174\1\141\1\175\2\141\1\154" + + "\3\141\1\176\1\132\3\154\1\177\7\141\1\144\2\141" + "\1\200\3\144\1\141\3\144\2\201\1\202\1\203\31\201" + + "\1\204\60\201\1\205\22\201\2\206\1\207\1\210\3\206" + "\1\211\25\206\1\212\103\206\2\213\1\214\1\215\33\213" + + "\1\216\23\213\1\217\7\213\1\220\1\213\1\221\43\213" + "\2\222\1\223\1\224\33\222\1\225\23\222\1\226\7\222" + + "\1\227\1\222\1\230\7\222\1\231\4\222\1\232\26\222" + "\2\233\1\234\1\235\57\233\1\236\7\233\1\237\1\233" + + "\1\240\43\233\1\132\1\44\1\241\1\242\1\44\1\135" + "\1\136\1\243\1\244\5\141\1\245\1\143\4\141\1\144" + + "\1\145\1\141\1\144\1\246\1\146\1\247\1\136\1\250" + "\1\132\1\251\1\151\2\141\1\152\1\153\1\154\1\136" + + "\4\151\1\252\2\65\1\253\1\254\1\255\1\256\1\257" + "\1\260\1\261\1\262\1\263\1\264\1\265\1\266\1\267" + + "\1\270\1\271\1\272\1\273\1\274\1\275\1\276\1\277" + "\1\300\1\301\1\302\1\154\1\141\1\303\1\141\1\304" + + "\1\305\3\154\1\306\7\141\1\144\1\141\1\307\1\136" + "\3\144\1\310\3\144\2\311\1\312\34\311\1\313\23\311" + + "\1\217\7\311\1\220\1\311\1\221\43\311\2\314\1\315" + "\4\314\1\316\25\314\1\317\1\320\102\314\2\321\1\322" + + "\32\321\1\323\60\321\1\324\22\321\1\325\1\44\1\326" + "\1\327\1\44\1\325\1\154\1\330\1\331\6\332\1\65" + + "\4\332\2\325\1\332\1\325\3\332\1\325\1\333\1\325" + "\1\65\3\332\1\65\1\332\1\325\1\136\2\65\3\325" + + "\1\334\2\65\27\332\1\335\4\332\1\336\3\154\1\337" + "\7\332\1\325\2\332\4\325\1\332\3\325\1\340\1\44" + + "\1\341\1\342\1\44\3\340\1\343\6\344\1\340\4\344" + "\2\340\1\344\1\340\3\344\4\340\1\345\2\344\2\340" + + "\1\346\6\340\1\347\2\340\27\344\1\340\4\344\5\340" + "\7\344\1\340\2\344\4\340\1\344\3\340\1\350\1\44" + + "\1\351\1\352\1\44\1\350\1\353\1\330\1\354\6\355" + "\1\350\4\355\2\356\1\355\1\356\1\355\1\357\1\355" + + "\1\350\1\360\1\355\2\350\2\355\1\350\1\136\1\346" + "\1\136\3\350\1\361\4\350\27\355\1\350\4\355\1\350" + + "\1\362\1\363\1\350\1\337\7\355\1\356\2\355\1\350" + "\3\356\1\355\3\356\2\206\1\364\1\203\3\206\1\365" + + "\25\206\1\317\103\206\2\201\1\366\1\203\31\201\1\317" + "\60\201\1\367\22\201\2\213\1\370\1\203\33\213\1\371" + + "\23\213\1\217\7\213\1\220\1\213\1\221\43\213\2\372" + "\1\373\32\372\1\374\1\375\72\372\1\376\7\372\2\377" + + "\1\u0100\33\377\1\u0101\5\377\1\u0102\74\377\2\40\4\0" + "\134\40\1\41\2\0\1\44\1\0\133\40\151\0\1\u0103" + + "\1\u0104\5\u0105\1\0\10\u0105\2\0\1\u0105\5\0\2\u0105" + "\7\0\1\u0106\1\u0107\3\0\10\u0105\1\u0104\16\u0105\1\0" + + "\4\u0105\5\0\12\u0105\1\0\7\u0105\1\0\1\44\2\0" + "\1\44\134\0\4\45\1\0\1\45\1\u0108\132\45\2\46" + + "\1\0\26\46\1\0\31\46\1\0\7\46\1\0\1\46" + "\1\0\43\46\31\0\1\u0109\165\0\1\u010a\1\0\1\u010b" + + "\140\0\1\u010c\155\0\1\u010d\43\0\2\54\1\0\14\54" + "\1\0\121\54\2\57\1\0\1\57\1\0\2\57\2\0" + + "\6\57\1\0\26\57\1\0\47\57\1\0\23\57\1\60" + "\1\0\1\57\1\44\2\57\2\0\6\57\1\0\26\57" + + "\1\0\47\57\1\0\24\57\1\0\1\57\1\0\2\57" + "\2\0\6\57\1\0\26\57\1\0\3\57\1\u010e\43\57" + + "\1\0\22\57\17\0\1\64\121\0\2\67\1\0\1\67" + "\1\0\2\67\2\0\6\67\1\0\26\67\1\0\47\67" + + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\1\67" + "\1\u010f\2\67\1\u0110\1\u0111\1\0\2\67\1\u0112\7\67" + + "\1\u0113\13\67\1\0\10\67\1\u0114\1\u0111\1\67\1\u0112" + "\1\67\1\u0115\3\67\1\u010f\3\67\1\u0116\3\67\1\u0110" + + "\5\67\1\u0113\1\67\1\u0115\5\67\1\0\1\u0116\1\u0114" + "\22\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u0117" + + "\2\67\1\0\2\67\1\u0118\23\67\1\0\7\67\1\u0117" + "\3\67\1\u0118\1\67\1\u0119\7\67\1\u011a\13\67\1\u0119" + + "\5\67\1\0\1\u011a\23\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\12\67\1\u011b\13\67\1\0\37\67" + + "\1\u011b\7\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\1\u011c\5\67\1\0\1\67\1\u011d\24\67\1\0" + + "\10\67\1\u011e\3\67\1\u011f\1\67\1\u011d\1\u011c\3\67" + "\1\u0120\14\67\1\u011f\1\67\1\u0120\4\67\1\0\1\67" + + "\1\u011e\22\67\1\0\1\67\1\0\2\67\2\0\2\67" + "\1\u0121\3\67\1\0\1\67\1\u0122\24\67\1\0\12\67" + + "\1\u0121\2\67\1\u0123\1\u0122\22\67\1\u0123\5\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\2\67\1\114" + + "\1\u0124\1\67\1\114\1\0\2\67\1\u0125\3\67\1\u0126" + "\12\67\1\114\4\67\1\0\7\67\1\u0124\1\67\2\114" + + "\1\u0125\1\u0127\1\u0128\2\67\1\u0126\3\67\1\u0129\3\67" + "\1\114\7\67\1\u0127\1\u0128\5\67\1\0\6\67\1\u0129" + + "\15\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u012a" + "\2\67\1\0\2\67\1\u012b\23\67\1\0\7\67\1\u012a" + + "\3\67\1\u012b\1\67\1\u012c\23\67\1\u012c\5\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\26\67\1\0\10\67\1\u012d\22\67\1\u012e\13\67\1\0" + "\1\67\1\u012d\3\67\1\u012e\16\67\1\0\1\67\1\0" + + "\2\67\2\0\2\67\1\114\1\u011e\2\67\1\0\1\67" + "\1\u012f\10\67\1\u0130\6\67\1\u0131\4\67\1\0\7\67" + + "\1\u011e\2\67\1\114\2\67\1\u0132\1\u012f\3\67\1\u0133" + "\2\67\1\u0134\2\67\1\u0131\6\67\1\u0130\1\67\1\u0132" + + "\5\67\1\0\1\u0134\1\67\1\u0133\21\67\1\0\1\67" + "\1\0\2\67\2\0\6\67\1\0\1\67\1\114\24\67" + + "\1\0\16\67\1\114\30\67\1\0\24\67\1\0\1\67" + "\1\0\2\67\2\0\3\67\1\u0135\1\67\1\114\1\0" + + "\1\67\1\114\1\u0136\16\67\1\114\4\67\1\0\7\67" + "\1\u0135\1\67\1\114\1\67\1\u0136\1\u0137\1\u0138\1\114" + + "\11\67\1\114\7\67\1\u0137\1\u0138\5\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67" + + "\1\u0139\7\67\1\u013a\13\67\1\0\13\67\1\u0139\1\67" + "\1\u013b\21\67\1\u013a\1\67\1\u013b\5\67\1\0\24\67" + + "\1\0\1\67\1\0\2\67\2\0\2\67\1\u013c\1\u013d" + "\2\67\1\0\26\67\1\0\7\67\1\u013d\2\67\1\u013c" + + "\12\67\1\u013e\21\67\1\0\1\u013e\23\67\1\0\1\67" + "\1\0\2\67\2\0\1\u013f\1\u0140\1\u0141\1\67\1\u0142" + + "\1\67\1\0\6\67\1\u0143\3\67\1\u0144\6\67\1\u0145" + "\4\67\1\0\12\67\1\u0141\4\67\1\u013f\1\u0143\1\u0140" + + "\6\67\1\u0145\1\u0142\5\67\1\u0144\7\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67" + + "\1\u0146\23\67\1\0\13\67\1\u0146\1\67\1\u0147\7\67" + "\1\u0148\13\67\1\u0147\5\67\1\0\1\u0148\23\67\1\0" + + "\1\67\1\0\2\67\2\0\2\67\1\114\2\67\1\u0149" + "\1\0\2\67\1\u014a\23\67\1\0\11\67\1\u0149\1\114" + + "\1\u014a\33\67\1\0\7\67\1\114\3\67\3\114\1\67" + "\2\114\3\67\1\0\1\67\1\0\2\67\2\0\4\67" + + "\1\u014b\1\67\1\0\1\67\1\114\4\67\1\u014c\3\67" + "\1\u014d\13\67\1\0\16\67\1\114\1\67\1\u014c\10\67" + + "\1\u014b\5\67\1\u014d\7\67\1\0\24\67\1\0\1\67" + "\1\0\2\67\2\0\6\67\1\0\2\67\1\u014e\3\67" + + "\1\u014f\17\67\1\0\13\67\1\u014e\4\67\1\u014f\26\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\3\67" + + "\1\u0150\2\67\1\0\26\67\1\0\7\67\1\u0150\5\67" + "\1\u0151\23\67\1\u0151\5\67\1\0\22\67\3\115\1\0" + + "\3\115\1\0\131\115\52\0\1\u0152\66\0\3\120\1\0" + "\112\120\1\0\22\120\17\0\1\u0153\121\0\1\132\10\0" + + "\6\132\1\0\11\132\1\0\1\132\1\0\3\132\1\0" + "\2\132\14\0\27\132\1\0\5\132\4\0\12\132\1\0" + + "\7\132\3\0\1\u0154\4\0\1\u0155\35\0\1\65\3\0" + "\1\u0156\73\0\1\65\40\0\1\65\72\0\10\u0157\1\u0158" + + "\24\u0157\1\u0159\1\u0157\1\u015a\6\u0157\1\u015b\72\u0157\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u015d\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\17\0\1\u015e\26\0" + "\1\65\72\0\1\u015f\10\0\6\u015f\1\0\1\u015f\1\u0160" + + "\1\u0161\1\u015f\2\144\1\u015f\1\144\1\u015f\1\0\1\u015f" + "\1\0\3\u015f\1\0\1\u015f\1\u0162\1\0\1\u0163\12\0" + + "\4\u015f\1\u0161\1\u0162\1\u015f\1\u0160\11\u015f\1\u0162\5\u015f" + "\1\0\1\u015f\1\u0162\3\u015f\4\0\7\u015f\1\144\2\u015f" + + "\1\0\3\144\1\u015f\3\144\1\u015f\10\0\6\u015f\1\0" + "\1\u015f\1\u0160\1\u0161\1\u015f\1\u0164\1\u0165\1\u015f\1\u0165" + + "\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u0166\1\u0162" + "\1\0\1\u0163\12\0\4\u015f\1\u0161\1\u0162\1\u015f\1\u0160" + + "\11\u015f\1\u0162\3\u015f\1\u0166\1\u015f\1\0\1\u015f\1\u0162" + "\3\u015f\4\0\7\u015f\1\u0165\2\u015f\1\0\3\u0165\1\u015f" + + "\2\u0165\1\u0164\31\0\1\65\14\0\1\65\72\0\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0167\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\46\0" + + "\1\65\134\0\1\65\3\0\1\65\116\0\2\u0163\1\0" + "\1\u0163\76\0\1\u0163\3\0\3\u0163\1\0\3\u0163\46\0" + + "\1\65\6\0\1\65\63\0\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0168\3\141\1\u0169\2\141\1\u016a" + "\3\141\1\u016b\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u016c\11\141\1\u016d\5\141\1\u016e\3\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u016f\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0170\1\u0171\1\u0172" + "\3\141\1\u0173\7\141\1\u0174\1\u0175\1\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u0176\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0177\5\141\1\u0178\1\u0179\6\141" + "\1\u017a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + + "\1\u017b\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u017c\11\141\1\u017d\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u017e\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u017f\12\141\1\u0180\1\141\1\u0181\3\141" + "\1\u0182\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0183\12\141\1\u0184\4\141\1\u0185\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u0186\1\u0187\5\141\1\u0188" + + "\1\u0189\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u018a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u018b" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u018c\1\141\1\u018d\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u018e\14\141\1\u018f\11\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0190\11\141\1\u0191\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0192\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0193\2\141\1\u0194" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u017a" + "\7\141\1\u0195\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u0196\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\2\201\2\0\31\201\1\0\60\201\1\0" + + "\22\201\52\0\1\u0197\66\0\2\u0198\1\0\27\u0198\1\u0199" + "\50\u0198\1\u019a\35\u0198\2\206\2\0\3\206\1\0\25\206" + + "\1\0\103\206\52\0\1\u019b\66\0\2\213\2\0\33\213" + "\1\0\23\213\1\0\7\213\1\0\1\213\1\0\43\213" + + "\10\0\1\u019c\140\0\1\u019d\206\0\1\u019e\1\0\1\u019f" + "\140\0\1\u01a0\155\0\1\u01a1\43\0\2\222\2\0\33\222" + + "\1\0\23\222\1\0\7\222\1\0\1\222\1\0\7\222" + "\1\0\4\222\1\0\26\222\10\0\1\u01a2\6\u01a3\1\u01a4" + + "\4\u01a3\2\0\1\u01a3\3\0\1\u01a3\5\0\2\u01a3\14\0" + "\27\u01a3\1\0\4\u01a3\5\0\7\u01a3\1\0\2\u01a3\4\0" + + "\1\u01a3\13\0\1\u01a5\206\0\1\u01a6\1\0\1\u01a7\140\0" + "\1\u01a8\155\0\1\u01a9\155\0\1\u01aa\104\0\1\u01ab\1\u01ac" + + "\1\u01ad\1\u01ae\1\u01af\1\u01b0\1\u01b1\1\u01b2\1\u01b3\1\u01b4" + + "\1\u01b5\1\u01b6\1\u01b7\3\0\1\u01b8\1\u01b9\1\u01ba\1\0" + "\1\u01bb\36\0\2\233\2\0\57\233\1\0\7\233\1\0" + + "\1\233\1\0\43\233\10\0\1\u01bc\206\0\1\u01bd\1\0" + "\1\u01be\140\0\1\u01bf\155\0\1\u01c0\46\0\1\u0154\42\0" + + "\1\65\102\0\1\250\26\0\1\u01c1\6\0\1\65\72\0" + "\1\132\10\0\2\141\1\u01c2\3\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u01c3\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u01c4\1\u01c5" + "\1\u01c6\2\141\1\u01c7\1\141\1\u01c8\1\141\1\u01c9\1\141" + + "\1\u01ca\3\141\1\u01c7\6\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\2\250\1\0\136\250\1\132\10\0" + + "\6\u01cb\1\0\4\u01cb\2\141\1\u01cb\1\141\1\u01cb\1\0" + "\1\u01cb\1\0\1\132\1\u015c\1\141\1\0\2\u01cb\14\0" + + "\27\u01cb\1\0\4\u01cb\1\132\4\0\7\u01cb\1\141\2\u01cb" + "\1\0\3\141\1\u01cb\3\141\17\0\1\u01cc\121\0\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u01cd\1\u01ce" + + "\2\141\1\u0169\2\141\1\u01cf\1\u01d0\1\u01d1\1\u01d2\1\u01d3" + "\4\141\1\u01d4\1\u01d5\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u01d6\1\141\1\u01d7\1\141\1\u01d8\1\141\1\u01d9" + "\1\141\1\u01da\1\u01db\1\u01dc\2\141\1\u01dd\1\u01de\1\141" + + "\1\u01df\1\u01e0\1\141\1\u01e1\3\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u01e2\1\u01e3\1\141\1\u01e4\1\u01e5\1\141" + + "\1\u01e6\3\141\1\u01e7\2\141\1\u01e8\1\u01e9\4\141\1\u01ea" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u01eb" + + "\1\u01ec\1\141\1\u01ed\1\141\1\u01ee\1\141\1\u01ef\5\141" + "\1\u01f0\3\141\1\u01f1\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u01f2\1\141\1\u01f3\2\141\1\u01f4\1\u01f5" + "\1\u01f6\1\u01f7\1\u01f8\1\141\1\u01f9\1\141\1\u01fa\5\141" + + "\1\u01fb\1\u01fc\1\141\1\0\4\141\1\132\4\0\11\141" + "\1\u01fd\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u01fe\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u01ff\1\u0200\1\u0201\1\u0202\1\u0203\1\u0204\1\u0178" + + "\1\u0205\1\u0206\1\u0207\1\u0208\1\u0209\1\u020a\1\141\1\u020b" + "\1\u020c\2\141\1\u020d\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u020e\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u020f\1\u0210\3\141\1\u0211\1\u0212\1\u0213" + "\1\u0214\1\u0215\1\u0216\4\141\1\u0217\1\u0218\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0219\1\141\1\u01ec\1\141" + "\1\u021a\1\141\1\u021b\1\141\1\u021c\1\141\1\u021d\3\141" + + "\1\u021e\2\141\1\u021f\5\141\1\0\4\141\1\132\4\0" + "\11\141\1\u0220\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u0221\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0222\1\141\1\u0223\1\u0224\1\u0225\1\141" + + "\1\u0226\1\u0227\1\u0228\1\141\1\u0229\1\141\1\u022a\1\u022b" + + "\1\u022c\1\u022d\1\u022e\1\141\1\u022f\1\u0230\2\141\1\u0231" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0232\2\141\1\u0183" + + "\1\u0233\1\141\1\u0234\3\141\1\u0235\14\141\1\0\4\141" + "\1\132\4\0\11\141\1\u0236\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0237\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0238\1\u0239\1\u023a" + + "\1\u023b\1\u023c\2\141\1\u023d\2\141\1\u023e\1\u023f\4\141" + "\1\u0240\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u0241\1\141\1\u0242\1\u0243\2\141\1\u0244\6\141\1\u018a" + "\2\141\1\u0245\5\141\1\0\4\141\1\132\4\0\11\141" + + "\1\u0246\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0247\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0248\1\141\1\u0249\1\u024a\1\u024b\2\141" + "\1\u024c\2\141\1\u024d\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u024e\1\141\1\u024f\1\141\1\u0250\1\141\1\u0251" + "\10\141\1\u0252\3\141\1\u0253\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u0254\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0255\1\141\1\u0256\1\141\1\u0257" + "\1\141\1\u0258\1\u0259\4\141\1\u025a\1\141\1\u025b\1\u025c" + + "\1\141\1\u025d\2\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u025e\11\141\1\u018f\1\u025f\2\141\1\u0260\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\4\141\1\u0261" + "\2\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0262" + "\2\141\1\u01c7\1\u0263\3\141\1\u01ef\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u0264\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0265\2\141\1\u0266\1\u0267\1\141" + "\1\u0268\1\u0269\1\u026a\1\u026b\1\u026c\1\u024c\1\u026d\1\141" + + "\1\u026e\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u026f" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0270" + "\2\141\1\u0271\1\141\1\u0272\1\u0273\3\141\1\u0274\1\u0275" + + "\1\u0276\1\u0277\1\u0278\2\141\1\u0279\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u027a\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u027b\3\141\1\u027c\1\u027d\1\u027e" + "\1\141\1\u027d\11\141\1\u027f\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0280\1\u0281\4\141\1\u0282\1\141\1\u0283" + "\5\141\1\u017a\3\141\1\u0284\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u0285\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u0286\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\2\141\1\u0287\1\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\1\u0288\3\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\u0289\1\0\4\u0289" + + "\2\132\1\u0289\1\132\1\u0289\1\0\1\u0289\1\0\2\132" + "\1\u0289\1\0\2\u0289\14\0\27\u0289\1\0\4\u0289\1\132" + + "\4\0\7\u0289\1\132\2\u0289\1\0\3\132\1\u0289\4\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u028a\3\141\1\u028b" + "\2\141\1\u028c\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u028d\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u028e\1\141\1\u028f\1\141\1\u0290\5\141\1\u0291" + "\2\141\1\u0292\1\u0293\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\2\311\1\0\34\311\1\0\23\311" + "\1\0\7\311\1\0\1\311\1\0\43\311\10\0\1\u0294" + + "\130\0\2\314\1\0\4\314\1\0\25\314\2\0\102\314" + "\2\u0295\1\0\136\u0295\11\0\6\u0296\1\0\4\u0296\2\0" + + "\1\u0296\1\0\1\u0296\1\0\1\u0296\5\0\2\u0296\14\0" + "\27\u0296\1\0\4\u0296\5\0\7\u0296\1\0\2\u0296\4\0" + + "\1\u0296\3\0\2\321\1\0\32\321\1\0\60\321\1\0" + "\22\321\2\u0297\1\0\136\u0297\10\0\1\u0298\41\0\1\u0156" + + "\125\0\1\u0299\112\0\6\332\1\0\13\332\5\0\2\332" + "\1\0\1\332\12\0\27\332\1\0\4\332\5\0\12\332" + + "\1\0\7\332\11\0\6\u029a\1\0\4\u029a\2\0\1\u029a" + "\1\0\3\u029a\4\0\3\u029a\1\0\1\u029a\12\0\27\u029a" + + "\1\0\4\u029a\5\0\7\u029a\1\0\2\u029a\4\0\1\u029a" + "\56\0\1\u029b\4\0\1\u029c\1\u029d\1\u029e\1\u029f\1\u02a0" + + "\1\u02a1\2\0\1\u02a2\1\0\1\u02a3\1\u02a4\1\u02a5\2\0" + "\1\u02a6\2\0\1\u02a7\47\0\6\u02a8\1\0\4\u02a8\2\0" + + "\1\u02a8\1\0\3\u02a8\4\0\3\u02a8\1\0\1\u02a8\12\0" + "\27\u02a8\1\0\4\u02a8\5\0\7\u02a8\1\0\2\u02a8\4\0" + + "\1\u02a8\14\0\6\344\1\0\13\344\5\0\2\344\14\0" + "\27\344\1\0\4\344\5\0\12\344\1\0\7\344\11\0" + + "\6\344\1\0\4\344\2\0\1\344\1\0\3\344\5\0" + "\2\344\14\0\27\344\1\0\4\344\5\0\7\344\1\0" + + "\2\344\4\0\1\344\13\0\7\355\1\0\4\355\2\0" + "\1\355\1\0\3\355\2\0\1\355\1\0\1\u0299\2\355" + + "\14\0\27\355\1\0\4\355\2\0\1\363\2\0\7\355" + "\1\0\2\355\4\0\1\355\13\0\7\355\1\0\4\355" + + "\2\0\1\355\1\0\3\355\2\0\1\355\2\0\2\355" + "\14\0\27\355\1\0\4\355\2\0\1\363\2\0\7\355" + + "\1\0\2\355\4\0\1\355\27\0\2\356\1\0\1\356" + "\13\0\1\356\4\0\1\u02a9\5\0\1\u02aa\1\u02ab\2\0" + + "\1\u02ac\3\0\1\u02a9\1\0\1\u02ad\7\0\1\u02ae\25\0" + "\1\356\3\0\3\356\1\0\3\356\10\0\7\355\1\0" + + "\4\355\2\356\1\355\1\356\3\355\2\0\1\355\2\0" + "\2\355\14\0\27\355\1\0\4\355\2\0\1\363\2\0" + + "\7\355\1\356\2\355\1\0\3\356\1\355\3\356\12\0" + "\1\u02af\7\0\1\u02af\1\0\4\u02af\11\0\1\u02af\20\0" + + "\3\u02af\2\0\2\u02af\6\0\1\u02af\7\0\2\u02af\15\0" + "\1\u02af\3\0\3\u02af\1\0\3\u02af\56\0\1\u02b0\72\0" + + "\1\u02b1\130\0\2\372\1\0\32\372\2\0\72\372\1\0" + "\7\372\105\0\1\u02b2\33\0\2\377\1\0\33\377\1\0" + + "\5\377\1\0\74\377\105\0\1\u02b3\44\0\6\u02b4\1\0" + "\10\u02b4\2\0\1\u02b4\5\0\2\u02b4\14\0\27\u02b4\1\0" + + "\4\u02b4\5\0\12\u02b4\1\0\7\u02b4\11\0\1\u0105\1\u02b5" + "\3\u0105\1\u02b6\1\0\10\u0105\2\0\1\u0105\5\0\2\u0105" + + "\14\0\2\u0105\1\u02b6\7\u0105\1\u02b5\14\u0105\1\0\4\u0105" + "\5\0\12\u0105\1\0\7\u0105\11\0\6\u0105\1\0\10\u0105" + + "\2\0\1\u0105\5\0\2\u0105\14\0\27\u0105\1\0\4\u0105" + "\5\0\12\u0105\1\0\7\u0105\31\0\1\u02b7\207\0\1\u02b8" + + "\57\0\1\u02b9\206\0\1\u02ba\153\0\1\u02bb\120\0\1\u02bc" + "\155\0\1\u02bd\43\0\2\57\1\0\1\57\1\0\2\57" + + "\2\0\6\57\1\0\26\57\1\0\31\57\1\u02be\15\57" + "\1\0\22\57\2\67\1\0\1\67\1\0\2\67\2\0" + + "\2\67\1\u02bf\3\67\1\0\26\67\1\0\12\67\1\u02bf" + "\34\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\15\67\1\u02c0\23\67\1\u02c0" + "\5\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\2\67\1\u02c1\3\67\1\0\1\u011b\25\67\1\0\12\67" + "\1\u02c1\17\67\1\u011b\14\67\1\0\24\67\1\0\1\67" + + "\1\0\2\67\2\0\1\67\1\u02c2\1\u02c3\3\67\1\0" + "\1\67\1\u02c4\24\67\1\0\12\67\1\u02c3\3\67\1\u02c4" + + "\2\67\1\u02c2\25\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\4\67\1\114\1\67\1\0\6\67\1\114" + + "\17\67\1\0\20\67\1\114\10\67\1\114\15\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\26\67\1\0\15\67\1\u02c5\23\67\1\u02c5\5\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\26\67\1\0\10\67\1\u02c6\36\67\1\0\1\67\1\u02c6" + "\22\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\12\67\1\u02c7\13\67\1\0\37\67\1\u02c7\7\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\5\67\1\u02c8" + + "\1\0\26\67\1\0\11\67\1\u02c8\35\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\23\67\1\u02c9\16\67\1\u02c9\4\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\4\67\1\u02c2\1\67" + + "\1\0\26\67\1\0\23\67\1\u02ca\5\67\1\u02c2\10\67" + "\1\u02ca\4\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\1\67\1\u02cb\17\67\1\u02c8\4\67" + "\1\0\10\67\1\u02cc\5\67\1\u02cb\11\67\1\u02c8\16\67" + + "\1\0\1\67\1\u02cc\22\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\1\67\1\u02c8\24\67\1\0\16\67" + + "\1\u02c8\30\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\3\67\1\u02cd\2\67\1\0\26\67\1\0\7\67" + + "\1\u02cd\37\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\15\67\1\u02ce\23\67" + + "\1\u02ce\5\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\22\67\1\114\24\67" + + "\1\0\2\67\1\114\21\67\1\0\1\67\1\0\2\67" + "\2\0\2\67\1\u02cf\3\67\1\0\26\67\1\0\12\67" + + "\1\u02cf\34\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\1\114\3\67\1\u02d0\1\67\1\0\26\67\1\0" + + "\17\67\1\114\11\67\1\u02d0\15\67\1\0\24\67\1\0" + "\1\67\1\0\2\67\2\0\6\67\1\0\2\67\1\114" + + "\23\67\1\0\13\67\1\114\11\67\1\u02d1\21\67\1\0" + "\1\u02d1\23\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\15\67\1\u02d2\23\67\1\u02d2\5\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\2\67" + + "\1\u02d3\3\67\1\0\26\67\1\0\12\67\1\u02d3\34\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\5\67" + + "\1\u011b\1\0\26\67\1\0\10\67\1\u02c8\1\u011b\35\67" + "\1\0\1\67\1\u02c8\22\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\20\67\1\u02d4\5\67\1\0\34\67" + "\1\u02d4\12\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\26\67\1\0\25\67\1\u0134\21\67" + "\1\0\1\u0134\23\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\25\67\1\u02d5\21\67\1\0" + "\1\u02d5\23\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\6\67\1\u011b\17\67\1\0\20\67\1\u011b\26\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\2\67\1\u02d6\23\67\1\0\13\67\1\u02d6\33\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\23\67\1\u02d7\16\67\1\u02d7\4\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\22\67\1\u02d8\24\67\1\0\2\67" + "\1\u02d8\21\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\1\u02d9\5\67\1\u02da\17\67\1\0\20\67\1\u02da" + "\11\67\1\u02d9\14\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\6\67\1\u02db\17\67\1\0" + "\20\67\1\u02db\26\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\2\67\1\u02dc\23\67\1\0" + "\13\67\1\u02dc\33\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\3\67\1\u02dd\2\67\1\0\26\67\1\0" + "\7\67\1\u02dd\15\67\1\u02de\21\67\1\0\1\u02de\23\67" + + "\1\0\1\67\1\0\2\67\2\0\5\67\1\u02df\1\0" + "\26\67\1\0\11\67\1\u02df\35\67\1\0\24\67\1\0" + + "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0" + "\25\67\1\114\21\67\1\0\1\114\23\67\1\0\1\67" + + "\1\0\2\67\2\0\1\u02e0\5\67\1\0\26\67\1\0" + "\17\67\1\u02e0\27\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\1\u02e1\5\67\1\0\26\67\1\0\17\67" + "\1\u02e1\27\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\21\67\1\u02e2\4\67\1\0\30\67" + "\1\u02e2\16\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\2\67\1\114\3\67\1\0\26\67\1\0\12\67" + "\1\114\2\67\1\u02e3\15\67\1\114\5\67\1\u02e3\5\67" + + "\1\0\5\67\1\114\16\67\1\0\1\67\1\0\2\67" + "\2\0\5\67\1\u02e4\1\0\1\67\1\114\24\67\1\0" + + "\11\67\1\u02e4\4\67\1\114\30\67\1\0\24\67\1\0" + "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0" + + "\23\67\1\114\16\67\1\114\4\67\1\0\24\67\1\0" + "\1\67\1\0\2\67\2\0\5\67\1\u02e5\1\0\26\67" + + "\1\0\11\67\1\u02e5\35\67\1\0\24\67\1\0\1\67" + "\1\0\2\67\2\0\5\67\1\u02e6\1\0\26\67\1\0" + + "\11\67\1\u02e6\11\67\1\u02e7\16\67\1\u02e7\4\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\1\67\1\u02e8\24\67\1\0\16\67\1\u02e8\30\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u02e9" + + "\1\67\1\114\1\67\1\0\26\67\1\0\12\67\1\u02e9" + "\16\67\1\114\15\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u02ea" + "\23\67\1\u02ea\5\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\2\67\1\u02eb\23\67\1\0" + "\13\67\1\u02eb\6\67\1\u02ec\24\67\1\0\2\67\1\u02ec" + + "\21\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u02ed" + "\3\67\1\0\26\67\1\0\12\67\1\u02ed\10\67\1\u02ee" + + "\1\67\1\u02c9\14\67\1\u02ee\4\67\1\0\1\u02c9\23\67" + "\1\0\1\67\1\0\2\67\2\0\3\67\1\u02ef\2\67" + + "\1\0\26\67\1\0\7\67\1\u02ef\37\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\2\67\1\u02f0\3\67" + + "\1\0\26\67\1\0\12\67\1\u02f0\34\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\5\67\1\u02f1\1\0" + + "\2\67\1\u02f2\23\67\1\0\11\67\1\u02f1\1\67\1\u02f2" + "\33\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\4\67\1\u02f3\1\67\1\0\26\67\1\0\31\67\1\u02f3" + "\15\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\6\67\1\u0151\17\67\1\0\20\67\1\u0151" + "\26\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\21\67\1\u02f4\4\67\1\0\30\67\1\u02f4" + "\16\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\21\67\1\u02f5\4\67\1\0\30\67\1\u02f5" + "\16\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\1\u02ee\5\67\1\0\26\67\1\0\17\67\1\u02ee\27\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\33\67\1\114\13\67\1\0\5\67" + "\1\114\16\67\1\0\1\67\1\0\2\67\2\0\1\u02f6" + + "\5\67\1\0\1\67\1\u011d\1\u02f7\3\67\1\u0151\17\67" + "\1\0\13\67\1\u02f7\1\u02f8\1\67\1\u011d\1\u02f6\1\u0151" + + "\17\67\1\u02f8\6\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\26\67\1\0\10\67\1\u02f9" + + "\36\67\1\0\1\67\1\u02f9\22\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u02fa" + + "\23\67\1\u02fa\5\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\5\67\1\u02fb\1\0\26\67\1\0\11\67" + + "\1\u02fb\35\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\47\67\1\0\10\67" + + "\1\u02c4\5\67\1\u02c4\5\67\1\0\1\67\1\0\2\67" + "\2\0\5\67\1\u02fc\1\0\26\67\1\0\11\67\1\u02fc" + + "\35\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + "\6\67\1\0\1\u02fd\25\67\1\0\32\67\1\u02fd\14\67" + + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + "\1\0\21\67\1\114\4\67\1\0\30\67\1\114\16\67" + + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + "\1\0\21\67\1\u02fe\4\67\1\0\30\67\1\u02fe\16\67" + + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\2\67" + "\1\114\3\67\1\0\26\67\1\0\12\67\1\114\34\67" + + "\1\0\22\67\100\0\1\u02ff\51\0\1\u0300\54\0\1\u0300" + "\152\0\1\u0301\40\0\10\u0157\1\u0302\24\u0157\1\u0159\105\u0157" + + "\1\0\136\u0157\37\0\1\u0303\101\0\1\132\10\0\6\132" + "\1\0\11\132\1\0\1\u0304\1\0\3\132\1\0\2\132" + + "\14\0\27\132\1\0\5\132\4\0\12\132\1\0\10\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0305\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\17\0" + + "\1\151\26\0\1\65\72\0\1\u015f\10\0\6\u015f\1\0" + "\11\u015f\1\0\1\u015f\1\0\3\u015f\1\0\2\u015f\14\0" + + "\27\u015f\1\0\5\u015f\4\0\12\u015f\1\0\10\u015f\10\0" + "\6\u015f\1\0\4\u015f\2\u0306\1\u015f\1\u0306\1\u015f\1\u0307" + + "\1\u015f\1\0\3\u015f\1\0\2\u015f\1\u0307\13\0\27\u015f" + "\1\0\5\u015f\4\0\7\u015f\1\u0306\2\u015f\1\0\3\u0306" + + "\1\u015f\3\u0306\1\u015f\10\0\6\u015f\1\0\2\u015f\1\u0161" + "\1\u015f\2\u0163\1\u015f\1\u0163\1\u015f\1\0\1\u015f\1\0" + + "\3\u015f\1\0\1\u015f\1\u0162\14\0\4\u015f\1\u0161\1\u0162" + "\13\u015f\1\u0162\5\u015f\1\0\1\u015f\1\u0162\3\u015f\4\0" + + "\7\u015f\1\u0163\2\u015f\1\0\3\u0163\1\u015f\3\u0163\1\u015f" + "\10\0\6\u015f\1\0\2\u015f\1\u0161\1\u015f\2\u0164\1\u015f" + + "\1\u0164\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u015f" + "\1\u0162\1\0\1\u0163\12\0\4\u015f\1\u0161\1\u0162\13\u015f" + + "\1\u0162\5\u015f\1\0\1\u015f\1\u0162\3\u015f\4\0\7\u015f" + "\1\u0164\2\u015f\1\0\3\u0164\1\u015f\3\u0164\1\u015f\10\0" + + "\6\u015f\1\0\1\u015f\1\u0308\1\u0161\1\u015f\1\u0164\1\u0165" + "\1\u015f\1\u0165\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0" + + "\1\u015f\1\u0162\1\0\1\u0163\12\0\4\u015f\1\u0161\1\u0162" + "\1\u015f\1\u0308\11\u015f\1\u0162\5\u015f\1\0\1\u015f\1\u0162" + + "\3\u015f\4\0\7\u015f\1\u0165\2\u015f\1\0\3\u0165\1\u015f" + "\2\u0165\1\u0164\1\u015f\10\0\1\u015f\1\u0309\4\u015f\1\0" + + "\2\u015f\1\u0309\1\u015f\4\u0309\1\u015f\1\0\1\u015f\1\0" + "\3\u015f\1\0\1\u015f\1\u0309\14\0\4\u015f\3\u0309\2\u015f" + + "\2\u0309\6\u015f\1\u0309\5\u015f\1\0\1\u015f\2\u0309\2\u015f" + "\4\0\7\u015f\1\u0309\2\u015f\1\0\3\u0309\1\u015f\3\u0309" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u030a" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u030b" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\1\141\1\u030c\1\141\1\u030d\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u030e\5\141\1\u030f\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0310\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0311\14\141\1\u0169\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0312\2\141\1\u0313\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u0314\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0315\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0316\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u0317\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0318\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0319\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u031a\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u031b\17\141\1\u031c\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u031d\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u031e\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u031f\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0320\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0169\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u0321\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0322\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0323\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u0324\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u0325\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0326\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0327\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u0328\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0329\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u032a\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u032b\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u032c\5\141\1\u0317\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u032d\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u032e\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u032f\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0330\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0331\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0169\7\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0332\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0333\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0334\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u0335\1\141\1\u0336" + "\1\141\1\u0337\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u0338\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0339" + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u033a\15\141" + + "\1\u033b\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u033c\6\141\1\u033d\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0216\6\141\1\u033e\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\3\141\1\u0169\1\132\4\0" + + "\12\141\1\0\7\141\100\0\1\u033f\52\0\1\u0340\7\0" + "\1\u0340\1\0\4\u0340\11\0\1\u0340\20\0\3\u0340\2\0" + + "\2\u0340\6\0\1\u0340\7\0\2\u0340\15\0\1\u0340\3\0" + "\3\u0340\1\0\3\u0340\12\0\1\u0341\7\0\1\u0341\1\0" + + "\4\u0341\11\0\1\u0341\20\0\3\u0341\2\0\2\u0341\6\0" + "\1\u0341\7\0\2\u0341\15\0\1\u0341\3\0\3\u0341\1\0" + + "\3\u0341\100\0\1\u0342\51\0\1\u0343\54\0\1\u0343\137\0" + "\1\u0344\153\0\1\u0345\120\0\1\u0346\155\0\1\u0347\54\0" + + "\6\u01a3\1\u01a4\4\u01a3\2\0\1\u01a3\3\0\1\u01a3\5\0" + "\2\u01a3\14\0\27\u01a3\1\0\4\u01a3\5\0\7\u01a3\1\0" + + "\2\u01a3\4\0\1\u01a3\3\0\17\u01a3\1\u01a4\121\u01a3\65\0" + "\1\u0348\153\0\1\u0349\120\0\1\u034a\155\0\1\u034b\123\0" + + "\1\u034c\4\0\1\u034d\144\0\1\u034e\1\u034f\124\0\1\u0350" + "\3\0\1\u0351\11\0\1\u0352\137\0\1\u0353\1\u0354\4\0" + + "\1\u0355\121\0\1\u0356\150\0\1\u0357\7\0\1\u0358\1\u0359" + "\113\0\1\u035a\114\0\1\u035b\32\0\1\u035c\1\0\1\u035d" + + "\1\u035e\126\0\1\u035f\3\0\1\u0360\110\0\1\u0361\23\0" + "\1\u0362\1\0\1\u0363\1\0\1\u0364\152\0\1\u0365\130\0" + + "\1\u0366\1\u0367\6\0\1\u0368\131\0\1\u0369\137\0\1\u036a" + "\132\0\1\u036b\144\0\1\u036c\110\0\1\u036d\26\0\1\u036e" + + "\2\0\1\u036f\136\0\1\u0370\1\0\1\u0371\65\0\1\u0372" + "\54\0\1\u0372\137\0\1\u0373\153\0\1\u0374\120\0\1\u0375" + + "\155\0\1\u0376\102\0\1\u0377\101\0\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\1\u0378\3\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\1\141\1\u0379" + + "\4\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\1\141\1\u037a\14\0\2\141\1\u037b\7\141" + + "\1\u037c\1\u037d\13\141\1\0\1\141\1\u037e\1\141\1\u037f" + "\1\132\4\0\1\141\1\u0380\10\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0381\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0382\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0383\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u01ef\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0384\2\141" + + "\1\u0385\6\141\1\u0386\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u0387\11\141\1\u0388\7\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0389\2\141\1\u038a\3\141\1\u038b" + "\1\u038c\11\141\1\u038d\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\u01cb\1\0\11\u01cb" + "\1\0\1\u01cb\1\0\1\132\1\u015c\1\141\1\0\2\u01cb" + + "\14\0\27\u01cb\1\0\4\u01cb\1\132\4\0\12\u01cb\1\0" + "\7\u01cb\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u038e\13\141\1\u038f\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0390\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0391\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0392\1\141\1\u0393\1\u0394\1\u0395\1\u0396" + + "\1\u0397\1\u0398\1\u0399\1\141\1\u039a\2\141\1\u039b\1\141" + "\1\u039c\1\141\1\u039d\1\u039e\2\141\1\u039f\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\3\141\1\u03a0\3\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u03a1" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u03a2" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03a3" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u03a4\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u03a5" + + "\1\141\1\u03a6\1\141\1\u03a7\1\u03a8\2\141\1\u03a9\1\141" + "\1\u03aa\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u03ab\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u03ac\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\1\u03ad\6\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u03ae\10\141\1\u03af\1\141\1\u03b0\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u03b1\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u03b2\1\u03b3\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u03b4\7\141\1\u03b5\2\141" + + "\1\u03b6\11\141\1\u0269\1\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u03b7\6\141\1\u03b8\12\141\1\u031a\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u03b9\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u03ba\2\141\1\u03bb\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u03bc\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03bd\10\141" + + "\1\u03be\7\141\1\u03bf\2\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u03c0\16\141\1\u03c1\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u03c2\22\141\1\0\4\141" + "\1\132\4\0\7\141\1\u03c3\2\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u03c4\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u03c5\1\u03c6" + "\16\141\1\u03c7\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u03c8\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u03c9\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u03ca\22\141\1\u0169\3\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u03cb\5\141\1\u031a\15\141\1\u03cc\1\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03cd\7\141" + + "\1\u03ce\1\u03cf\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u03d0\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u03d1\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u03d2\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\20\141\1\u03d3\6\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u03d4\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u03c1\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u03d5\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u03d6\1\u0315\3\141\1\u03d7\1\u03d8\1\u03d9\1\141" + + "\1\u03da\1\u03db\1\u03dc\2\141\1\u03dd\2\141\1\u03de\3\141" + "\1\u03df\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03e0" + + "\10\141\1\u03e1\2\141\1\u03e2\1\141\1\u03e3\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0386\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u03e4\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u03e5\4\141\1\u03e6" + "\7\141\1\u03e7\7\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u03e8\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u03e9\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u03ea\1\u03eb\1\141\1\u03ec\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u03ed\1\141\1\u03ee\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u03ef\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u03f0\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u03f1\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0330\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03f2\3\141" + "\1\u03f3\12\141\1\u03f4\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\5\141\1\u0269\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0331\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u03f5\1\141\1\u03f6\1\141\1\u03f7\15\141\1\u03f8" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u03f9" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03fa" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03fb" + + "\1\u03fc\2\141\1\u03fd\4\141\1\u03fe\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u0392\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u03ff\1\u0262\3\141\1\u021c" + "\5\141\1\u0400\3\141\1\u0401\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0402\3\141\1\u0403\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0404\13\141\1\u01fa\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0405\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u0406\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0407\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0408\1\141" + "\1\u0409\5\141\1\u040a\3\141\1\u040b\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u040c\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u040d\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u040e\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u040f\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0410\16\141\1\u0411\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0412\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0413\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0414\2\141" + "\1\u0415\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0416\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0417\3\141\1\u0418\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0419\4\141\1\u01ef\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u041a\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u041b\7\141\1\u041c\1\141\1\u041d\3\141" + "\1\u0386\6\141\1\u041e\1\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u041f\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0420\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u0421\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u0169\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u0422\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0423\12\141\1\u0424\1\u0425\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u0426\3\141\1\u0427" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0428" + + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0429" + "\3\141\1\u042a\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0408\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\13\141\1\u042b\13\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u042c\3\141\1\u042d\1\u042e\1\u042f\1\141\1\u0430" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0431" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0432" + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0433" + + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0434" + "\12\141\1\u03cf\12\141\1\0\4\141\1\132\4\0\11\141" + + "\1\u0435\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0436\1\141\1\u0437\2\141\1\u0438\7\141" + "\1\u0439\2\141\1\u043a\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u03e4\3\141\1\u043b\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u043c\1\u043d\1\u043e\1\u0400" + + "\2\141\1\u043f\1\u0440\3\141\1\u0441\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\24\141\1\u0442\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0443\1\141\1\u0444\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0445\2\141" + + "\1\u040a\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0446\6\141\1\u0447\11\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0448\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u0449\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u044a\2\141\1\u044b\1\141\1\u044c\7\141" + + "\1\u044d\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u044e" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u044f\6\141\1\u0450\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0327\4\141\1\u0451\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0452\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0414\1\u0453\2\141\1\u0454\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0455\6\141" + + "\1\u0456\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u044f\3\141\1\u0457\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0458\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u0459\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u045a\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u045b\4\141\1\u045c\1\141\1\u045d\1\141" + + "\1\u045e\6\141\1\u045f\1\u0460\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0461\1\u0462\1\u0204\4\141\1\u0463" + + "\3\141\1\u0464\1\u020c\1\141\1\u0465\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0466\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0467\1\141\1\u0468\3\141" + "\1\u0469\10\141\1\u046a\3\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u031a\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0176\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u032c" + + "\4\141\1\u046b\1\u0317\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u046c\3\141\1\u046d\1\141\1\u046e\7\141\1\u046f" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0470" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0471\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0472\1\u0200" + + "\1\141\1\u0473\1\u0474\1\141\1\u0475\4\141\1\u0476\2\141" + "\1\u0477\2\141\1\u03c1\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0478\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0479\6\141\1\u03cf\3\141\1\u047a\5\141" + "\1\u047b\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u047c\5\141\1\u047d\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u047e\6\141\1\u047f\10\141\1\u0480\1\u0481" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0482" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0483" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0484" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0485\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0486\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u0487\1\141\1\u0488" + "\1\u0489\1\u048a\1\u0396\2\141\1\u048b\1\141\1\u0463\1\u048c" + + "\2\141\1\u0464\1\u020c\1\141\1\u048d\1\u048e\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u048f\5\141\1\u0331" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0169" + "\5\141\1\u0490\1\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u0491\1\u0492\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0493\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\1\u0494\6\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0495\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0496\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0497\1\u0498\15\141\1\u0499\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u049a\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u049b\1\u049c\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u049d\2\141" + + "\1\u049e\13\141\1\u049f\1\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u04a0\3\141\1\u04a1\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u04a2\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u04a3\1\141\1\u021c" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u04a4" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u04a5" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u04a6" + + "\12\141\1\u0269\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u04a7\21\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u04a8\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u04a9" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\3\141\1\u04aa\3\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u04ab\1\141\1\u049f\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u04ac\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u04ad\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u04ae\1\141\1\u04af\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u04b0\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u04b1\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u04b2\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u04b3\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\1\u04b4\6\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u031a\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\23\141\1\u04b5\3\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u04b6\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u04b7\1\u0169\3\141\1\u04b8\5\141" + "\1\u04b9\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u04ba\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u04bb\1\u04bc\1\u04bd\1\u04be\1\u04bf\1\u04c0\1\u04c1\13\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u04c2\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u04c3\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u04c4\5\141" + "\1\u04c5\1\u021c\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u021c\2\141\1\u024c\1\u04c6\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u04c7\2\141\1\u024c\13\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u04c8\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u04c9\1\u04ca" + "\7\141\1\u04cb\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u04cc\6\141\1\u04cd\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u04ce\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u04cf\3\141\1\u04d0\11\141\1\u04d1\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u04d2\11\141" + + "\1\u04d3\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u04d4\1\u04d5\4\141\1\u04d6\1\141\1\u0400\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u040d\4\141\1\u04d7" + "\1\141\1\u04d8\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u04d9" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + "\1\u04da\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u04db\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u04dc\6\141\1\u0269\2\141\1\u0411\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u04dd\21\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u04de\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u04df\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u04e0\3\141\1\u04e1\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u04e2\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u04e3\3\141\1\u04e4" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0414" + "\12\141\1\u04e5\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u04e6\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u04e7\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u04e8\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u04e9\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u04ea\3\141\1\u04eb\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u04ec\11\141\1\u04ed\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u04ee\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\1\141\1\u04ef\7\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\1\141\1\u04f0\7\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\u0289\1\0\11\u0289\1\0\1\u0289\1\0\1\132\1\u04f1" + "\1\u0289\1\0\2\u0289\14\0\27\u0289\1\0\4\u0289\1\132" + + "\4\0\12\u0289\1\0\7\u0289\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u04f2\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u04f3\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u04f4\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u04f5\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\17\141\1\u04f6\7\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\24\141\1\u04f7\2\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u04f8\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u04f9\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u04fa\1\u04fb\16\141\1\u04fc\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0276\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\11\0\6\u0296\1\0" + "\11\u0296\1\0\1\u0296\5\0\2\u0296\14\0\27\u0296\1\0" + + "\4\u0296\5\0\12\u0296\1\0\7\u0296\11\0\1\u04fd\54\0" + "\1\u04fd\63\0\6\u029a\1\0\13\u029a\5\0\2\u029a\1\0" + + "\1\u029a\12\0\27\u029a\1\0\4\u029a\5\0\12\u029a\1\0" + "\7\u029a\63\0\1\u04fe\1\u04ff\2\0\1\u0500\135\0\1\u0501" + + "\150\0\1\u0502\123\0\1\u0503\12\0\1\u0504\124\0\1\u0505" + "\15\0\1\u0506\134\0\1\u0507\126\0\1\u0508\5\0\1\u0509" + + "\147\0\1\u050a\125\0\1\u050b\13\0\1\u050c\140\0\1\u050d" + "\136\0\1\u050e\124\0\1\u050f\140\0\1\u0510\73\0\6\u02a8" + + "\1\0\13\u02a8\5\0\2\u02a8\1\0\1\u02a8\12\0\27\u02a8" + "\1\0\4\u02a8\5\0\12\u02a8\1\0\7\u02a8\72\0\1\u02a9" + + "\125\0\1\u02a9\6\0\1\u02a9\131\0\1\u02a9\23\0\1\u02a9" + "\114\0\1\u02a9\141\0\1\u02a9\7\0\1\u02a9\12\0\1\u02a9" + + "\114\0\1\u0511\72\0\2\u0105\1\u0512\3\u0105\1\0\10\u0105" + "\2\0\1\u0105\5\0\2\u0105\14\0\3\u0105\1\u0512\23\u0105" + + "\1\0\4\u0105\5\0\12\u0105\1\0\7\u0105\11\0\6\u0105" + "\1\0\1\u0513\7\u0105\2\0\1\u0105\5\0\2\u0105\14\0" + + "\23\u0105\1\u0513\3\u0105\1\0\4\u0105\5\0\12\u0105\1\0" + "\7\u0105\31\0\1\u0514\202\0\1\u0515\127\0\1\u02bb\131\0" + + "\1\u0516\165\0\1\u0517\103\0\1\u0518\75\0\2\57\1\0" + "\1\57\1\0\2\57\2\0\6\57\1\0\26\57\1\0" + + "\24\57\1\u0519\22\57\1\0\22\57\2\67\1\0\1\67" + "\1\0\2\67\2\0\3\67\1\u051a\2\67\1\0\26\67" + + "\1\0\7\67\1\u051a\37\67\1\0\24\67\1\0\1\67" + "\1\0\2\67\2\0\1\67\1\u02d9\4\67\1\0\26\67" + + "\1\0\21\67\1\u02d9\1\67\1\114\16\67\1\114\4\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\3\67" + + "\1\u051b\2\67\1\0\26\67\1\0\7\67\1\u051b\15\67" + "\1\u051c\21\67\1\0\1\u051c\23\67\1\0\1\67\1\0" + + "\2\67\2\0\5\67\1\u051d\1\0\26\67\1\0\11\67" + "\1\u051d\35\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\26\67\1\0\33\67\1\u02d9\13\67" + "\1\0\5\67\1\u02d9\16\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\u051e\23\67\1\0\13\67" + "\1\u051e\33\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\1\67\1\u02f9\24\67\1\0\16\67" + "\1\u02f9\30\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\4\67\1\114\1\67\1\0\26\67\1\0\31\67" + "\1\114\15\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\2\67\1\u051f\3\67\1\0\26\67\1\0\12\67" + "\1\u051f\34\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\114\23\67\1\0\13\67" + "\1\114\33\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\5\67\1\u02d9\1\0\26\67\1\0\11\67\1\u02d9" + "\35\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\33\67\1\u0520\13\67\1\0" + "\5\67\1\u0520\16\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\22\67\1\u0521\24\67\1\0" + "\2\67\1\u0521\21\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\10\67\1\u0522\36\67\1\0" + "\1\67\1\u0522\22\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\23\67\1\u0523\16\67\1\u0523" + "\4\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\1\u02d9\25\67\1\0\32\67\1\u02d9\14\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\15\67\1\u0524\23\67\1\u0524\5\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\12\67\1\u02ee\13\67\1\0\37\67\1\u02ee\7\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\22\67\1\u02f5\24\67\1\0\2\67" + "\1\u02f5\21\67\1\0\1\67\1\0\2\67\2\0\3\67" + + "\1\u0525\2\67\1\0\26\67\1\0\7\67\1\u0525\37\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\15\67\1\u02ed\23\67\1\u02ed\5\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\5\67" + + "\1\u0526\1\0\26\67\1\0\11\67\1\u0526\35\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\26\67\1\0\25\67\1\u02ee\21\67\1\0\1\u02ee\23\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\15\67\1\u014f\23\67\1\u014f\5\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\27\67\1\114\17\67\1\0\3\67\1\114\20\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67" + + "\1\u0527\23\67\1\0\13\67\1\u0527\33\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67" + + "\1\u0151\23\67\1\0\13\67\1\u0151\33\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67" + + "\1\u02f9\23\67\1\0\13\67\1\u02f9\33\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\2\67" + + "\1\u014f\23\67\1\0\13\67\1\u014f\33\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\23\67\1\u0528\16\67\1\u0528\4\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\1\67\1\u0529\4\67" + + "\1\0\26\67\1\0\21\67\1\u0529\25\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\5\67\1\u052a\1\0" + + "\26\67\1\0\11\67\1\u052a\35\67\1\0\24\67\1\0" + "\1\67\1\0\2\67\2\0\6\67\1\0\2\67\1\u052b" + + "\23\67\1\0\13\67\1\u052b\33\67\1\0\24\67\1\0" + "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0" + + "\25\67\1\u052c\21\67\1\0\1\u052c\23\67\1\0\1\67" + "\1\0\2\67\2\0\6\67\1\0\1\114\25\67\1\0" + + "\32\67\1\114\14\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\1\67\1\u052d\24\67\1\0" + + "\16\67\1\u052d\30\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u052e" + + "\23\67\1\u052e\5\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\26\67\1\0\15\67\1\u052f" + + "\23\67\1\u052f\5\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\2\67\1\u0151\23\67\1\0" + + "\13\67\1\u0151\1\67\1\114\23\67\1\114\5\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\12\67\1\114\13\67\1\0\37\67\1\114\7\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\5\67\1\u0530" + + "\1\0\26\67\1\0\11\67\1\u0530\35\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\27\67\1\114\5\67\1\u0531\11\67\1\0\3\67" + "\1\114\1\u0531\17\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\10\67\1\u0532\36\67\1\0" + "\1\67\1\u0532\22\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\1\67\1\u0533\24\67\1\0\16\67\1\u0533" + "\30\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\12\67\1\u0534\13\67\1\0\37\67\1\u0534" + "\7\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\10\67\1\114\36\67\1\0" + "\1\67\1\114\22\67\1\0\1\67\1\0\2\67\2\0" + + "\5\67\1\114\1\0\26\67\1\0\11\67\1\114\35\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\21\67\1\u02c8\4\67\1\0\30\67\1\u02c8\16\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + + "\1\0\26\67\1\0\25\67\1\u0535\21\67\1\0\1\u0535" + "\23\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u0536" + + "\2\67\1\0\26\67\1\0\7\67\1\u0536\37\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\26\67\1\0\15\67\1\114\23\67\1\114\5\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\1\67\1\u0537\24\67\1\0\16\67\1\u0537\30\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u0131" + + "\2\67\1\0\26\67\1\0\7\67\1\u0131\37\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u0538" + + "\3\67\1\0\26\67\1\0\12\67\1\u0538\34\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\1\67\1\u010f" + + "\4\67\1\0\26\67\1\0\21\67\1\u010f\25\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\26\67\1\0\10\67\1\u0539\36\67\1\0\1\67\1\u0539" + "\22\67\1\0\1\67\1\0\2\67\2\0\2\67\1\u053a" + + "\3\67\1\0\26\67\1\0\12\67\1\u053a\34\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\21\67\1\u053b\4\67\1\0\30\67\1\u053b\16\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\3\67\1\u052a" + + "\2\67\1\0\26\67\1\0\7\67\1\u052a\12\67\1\u0521" + "\24\67\1\0\2\67\1\u0521\21\67\1\0\1\67\1\0" + + "\2\67\2\0\4\67\1\u02d0\1\67\1\0\26\67\1\0" + "\31\67\1\u02d0\15\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\26\67\1\0\22\67\1\u053c" + "\24\67\1\0\2\67\1\u053c\21\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\2\67\1\u0131\23\67\1\0" + "\13\67\1\u0131\33\67\1\0\22\67\73\0\1\u053d\57\0" + + "\1\u053e\55\0\1\u053e\143\0\1\u053f\123\0\2\u0302\11\0" + "\1\u0302\57\0\1\u0540\130\0\1\132\10\0\1\132\1\u0541" + + "\4\132\1\0\2\132\1\u0541\1\132\4\u0541\1\132\1\0" + "\1\132\1\0\3\132\1\0\1\132\1\u0541\14\0\4\132" + + "\3\u0541\2\132\2\u0541\6\132\1\u0541\5\132\1\0\1\132" + "\2\u0541\2\132\4\0\7\132\1\u0541\2\132\1\0\3\u0541" + + "\1\132\3\u0541\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0542\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\u015f\10\0\6\u015f\1\0\4\u015f\2\u0306\1\u015f" + + "\1\u0306\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u015f" + "\1\u0162\14\0\5\u015f\1\u0162\13\u015f\1\u0162\5\u015f\1\0" + + "\1\u015f\1\u0162\3\u015f\4\0\7\u015f\1\u0306\2\u015f\1\0" + "\3\u0306\1\u015f\3\u0306\24\0\2\u0306\1\0\1\u0306\76\0" + + "\1\u0306\3\0\3\u0306\1\0\3\u0306\1\u015f\10\0\1\u015f" + "\1\u0309\4\u015f\1\0\1\u015f\1\u0308\1\u0309\1\u015f\4\u0309" + + "\1\u015f\1\0\1\u015f\1\0\3\u015f\1\0\1\u015f\1\u0309" + "\14\0\4\u015f\3\u0309\1\u0308\1\u015f\2\u0309\6\u015f\1\u0309" + + "\5\u015f\1\0\1\u015f\2\u0309\2\u015f\4\0\7\u015f\1\u0309" + "\2\u015f\1\0\3\u0309\1\u015f\3\u0309\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u0172\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u0543\6\141\1\u0544\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0545\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0546\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0547\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0548\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0549\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u054a\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u0169\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u054b\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u054c\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u054d\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\15\141\1\u054e\11\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0169\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u01ea\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0169\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0269\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u054f\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u0544\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u0550\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0551\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u0310\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0552\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0553\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\13\141\1\u0554\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u017a\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0555\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0552\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u032c\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u0556\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0557\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0558\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0554\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u0333\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u0312\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0554\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0559\5\141\1\u0426\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0169\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u0169\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u055a\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\15\141\1\u0169\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u0317\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u055b\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u055c\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u055d\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u055e\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u0555\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\24\141\1\u055f\2\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0560\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u0561\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u0562\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0563\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\73\0\1\u0564\57\0\1\u0565\7\0" + + "\1\u0565\1\0\4\u0565\11\0\1\u0565\20\0\3\u0565\2\0" + "\2\u0565\6\0\1\u0565\7\0\2\u0565\15\0\1\u0565\3\0" + + "\3\u0565\1\0\3\u0565\12\0\1\u0566\7\0\1\u0566\1\0" + "\4\u0566\11\0\1\u0566\20\0\3\u0566\2\0\2\u0566\6\0" + + "\1\u0566\7\0\2\u0566\15\0\1\u0566\3\0\3\u0566\1\0" + "\3\u0566\73\0\1\u0567\57\0\1\u0568\55\0\1\u0568\132\0" + + "\1\u0345\131\0\1\u0569\165\0\1\u056a\103\0\1\u056b\157\0" + "\1\u0349\131\0\1\u056c\165\0\1\u056d\103\0\1\u056e\127\0" + + "\1\u056f\164\0\1\u0570\154\0\1\u0571\134\0\1\u0572\3\0" + "\1\u0573\151\0\1\u0574\114\0\1\u0575\1\u0576\157\0\1\u0577" + + "\117\0\1\u0578\2\0\1\u0579\156\0\1\u057a\141\0\1\u057b" + "\120\0\1\u057c\3\0\1\u057d\17\0\1\u057e\66\0\1\u057f" + + "\170\0\1\u0580\136\0\1\u0581\3\0\1\u0582\13\0\1\u0583" + "\121\0\1\u0584\3\0\1\u0364\133\0\1\u0585\10\0\1\u0586" + + "\125\0\1\u0587\150\0\1\u0588\142\0\1\u0589\140\0\1\u058a" + "\1\0\1\u058b\140\0\1\u058c\125\0\1\u058d\153\0\1\u058e" + + "\132\0\1\u058f\136\0\1\u0590\137\0\1\u0591\144\0\1\u0592" + "\137\0\1\u0593\146\0\1\u0594\5\0\1\u0595\134\0\1\u0596" + + "\123\0\1\u0597\153\0\1\u0598\131\0\1\u0599\2\0\1\u059a" + "\11\0\1\u059b\127\0\1\u059c\127\0\1\u059d\15\0\1\u059e" + + "\125\0\1\u059f\140\0\1\u05a0\140\0\1\u05a1\71\0\1\u05a2" + "\55\0\1\u05a2\132\0\1\u0374\131\0\1\u05a3\165\0\1\u05a4" + + "\103\0\1\u05a5\75\0\1\132\10\0\6\141\1\0\2\141" + "\1\u0549\6\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\1\141" + + "\1\u05a6\7\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\3\141\1\u05a7\2\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u05a8\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0262\7\141\1\u05a9\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u05aa\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\3\141" + "\1\u05ab\2\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\1\u05ac" + "\3\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\2\141\1\u05ad" + + "\1\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\2\141\1\u05ae\6\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u0400\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\6\141\1\u05af\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u05b0\14\141\1\u05b1\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u05b2\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u05b3" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0443" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u044f" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u05b4\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u05b5\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u05b6\1\u05b7" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u05b8\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u05b9\15\141\1\u05ba" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u05bb" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05ba" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u05bc" + "\6\141\1\u05bd\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u05be\6\141\1\u05bf\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u0269\1\141\1\u05c0\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u05c1\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u05c2\2\141\1\u05c3\1\u0395" + "\1\u05c4\1\u05c5\1\u05c6\1\u05c7\1\u05c8\1\u05c9\1\141\1\u05ca" + + "\1\141\1\u05cb\1\u05cc\1\141\1\u05cd\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u0269\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u05ce\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u05cf\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\25\141\1\u05d0\1\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u03c6\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u05d1\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u05d2\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u05d3\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0426\1\141\1\u05d4\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u05d5\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u041e\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u05d6\11\141\1\u05d7\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u05d8\15\141\1\u044f" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u05d1" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u031a" + "\13\141\1\u039b\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u05d9\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u05da\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u05db\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u05dc\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u05dd\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u05de" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0269\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u05df\17\141\1\u0174\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u05e0\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u0269\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0548\1\141\1\u05e1\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u05e2\3\141" + "\1\u05e3\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u05e4\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u05e5\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u05e6\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u05e7\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u05e8\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + "\1\u05e9\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u05ea\4\141\1\u05eb\2\141\1\u05ec\13\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u05ed\3\141\1\u05ee\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05ef\6\141" + "\1\u05f0\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0269\4\141\1\u0269\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u05f1\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u05f2\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u05f3\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u05f4" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u05f5" + "\2\141\1\u05f6\1\u05f7\2\141\1\u05f8\1\u05f9\1\141\1\u05fa" + + "\1\u05fb\1\141\1\u05fc\1\u05fd\2\141\1\u05fe\1\u05ff\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0600\3\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0601\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0602\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0603\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0604\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0605\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0606\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u05d8\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u0607\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u03c8\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\26\141\1\u0608\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0609\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u03d4\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u060a\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u0396\21\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0549\7\141\1\u060b\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u0269\11\141\1\u060c\13\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u060d\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u060e\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u060f\13\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0610\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0269\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0611\7\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0612\11\141" + "\1\u018c\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u03ee\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0613\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0269\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0614" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0615" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0616" + "\1\u0617\10\141\1\u0618\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0619\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u061a\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u061b\1\141\1\u044f\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u061c\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u061d\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u061e\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u061f\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0620\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u0621\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0622\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u03d4" + "\5\141\1\u0269\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u0623\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\1\u0624\6\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0392\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0625\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0626\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0627\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0628\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0629\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u062a\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u062b\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u03d4\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u062c\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u062d\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u062e\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u062f\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0630\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u0631\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0632\4\141\1\u0633\2\141\1\u0634" + "\6\141\1\u0635\1\141\1\u0636\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0637\2\141\1\u0638\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0639\1\u063a\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u063b\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u063c\5\141" + + "\1\u063d\6\141\1\u0386\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u063e\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u063f\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u0640\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0641\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0642\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0331\12\141\1\u0269\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0643\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\20\141\1\u0269\6\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0644\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\11\141\1\u0645\15\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0646\1\141\1\u0392\5\141\1\u0647\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0648\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0406\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u03ee\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0649\3\141\1\u0400\3\141\1\u05d8" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u044f" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0400" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u064a" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u064b" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u064c" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u03ec\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u064d\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u064e\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u064f\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u04f9\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u05d9\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0650\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0651\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u04d6\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u0652\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0653\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u0654\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u0655\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\13\141\1\u04f9\13\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u03cf\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0656\3\141\1\u0657\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0658\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u031a\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u03cf\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0659\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u065a\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u065b\1\u065c\1\u065d" + + "\1\141\1\u065e\1\141\1\u065f\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u0660\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0661\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0662\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0169\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u0663\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0664\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0665\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u0666\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0667\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0668\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0669\11\141\1\u0269\6\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\5\141\1\u066a\1\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\13\141\1\u066b\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\20\141\1\u066c\6\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u066d\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u066e\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u066f\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0670\21\141\1\u0671\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0672\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0673\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u0674\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0675\1\141\1\u0676\1\u0677\1\u0678" + + "\1\u0679\1\141\1\u0411\1\u067a\1\141\1\u067b\1\141\1\u067c" + "\5\141\1\u067d\1\141\1\u0174\2\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u067e\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u067f\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\1\141\1\u0680" + "\4\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0681\1\141\1\u0682\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u0683\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0684\1\0\1\u05d1\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0685\1\u0686\1\u0687\1\u0688" + + "\1\141\1\u0689\1\u068a\1\u068b\1\u068c\1\u068d\1\u068e\1\141" + "\1\u0610\1\u068f\1\u0690\2\141\1\u0691\1\u0692\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0693\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0694\1\u0169\21\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0695\1\141\1\u0696" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0697" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0668" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u05d1" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0698" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0699\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u069a\4\141" + "\1\u01eb\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u069b\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u069c\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u069d\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u069e\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u069f\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u06a0\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\5\141" + + "\1\u03c3\1\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\17\141\1\u06a1\7\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u06a2\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0269\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\20\141\1\u06a3\6\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u06a4" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u06a5\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\17\141\1\u06a6\7\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u06a7\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u06a8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u06a9\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0398\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u06aa\4\141\1\u06ab\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u06ac\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u06ad\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u06ae\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\1\u06af\6\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u06b0\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u06b1\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u031a\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u0392\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u0392\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u06b2\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u06b3\13\141\1\u0386\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u06b4\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u06b5\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u06b6\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u06b7\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u06b8\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u040d\6\141\1\u06b9\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0411\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06ba\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u06bb\3\141" + + "\1\u06bc\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u06bd\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u06be\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\4\141\1\u06bf" + + "\2\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u044f\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u06c0\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u06c1\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u06c2\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u06c3\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u06c4\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u06c5\3\141\1\u06c6\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u06c7\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u06c8\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u06c9\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u04a4\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u06ca\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u06cb\10\141\1\u06cc\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u05d1\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\17\141\1\u04f9\2\141\1\u0269" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06cd" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u06ce" + + "\20\141\1\u0639\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u06cf\5\141\1\u06d0\3\141\1\u06d1\7\141\1\u06d2" + + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0269" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u06d3\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u06d4\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u0679\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u06d5\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u05d9\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u06d6\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\13\141\1\u06d7\13\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u06d8\1\0\1\u06d9\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u06da\1\u06db\1\u06dc\1\u06dd" + "\1\u06de\1\u06df\1\u06e0\1\u06e1\1\u06e2\1\u06e3\1\u06e4\1\u06e5" + + "\1\u06e6\1\u06e7\1\u06e8\1\u06e9\1\141\1\u06ea\1\u06eb\1\141" + "\1\u06ec\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + + "\1\u06ed\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u06ee" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06ba" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06ef" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0262" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06f0" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06f1" + + "\1\141\1\u01fa\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0409\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u06f2\22\141\1\0\4\141\1\132\4\0\11\141" + "\1\u06f3\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u06ef\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u06f4\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0415\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u06f5\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u06f6\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u06f7\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u06f8\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u01ef\1\141\1\u06f9\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u06fa\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u05d8\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u06fb\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u06fc\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u06fd\1\141\1\u06fe" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0693" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06ff" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0700" + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0701" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0702" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0703" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0704" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0705" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0706\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u0707\1\u0708\1\141\1\u0709\1\141\1\u070a\1\141\1\u0393" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u03c6" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u070b\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u070c\1\u070d" + + "\1\141\1\u070e\1\u070f\1\u0710\1\u0711\1\141\1\u0712\1\141" + "\1\u0713\1\u0714\1\u0715\1\141\1\u0716\1\u0717\1\141\1\u0718" + + "\1\u0719\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u071a\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u044f\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u071b\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u071c\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u071d" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u071e\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u071f\1\141\1\u0720" + "\1\141\1\u0721\1\u0204\1\141\1\u0722\1\u0723\1\141\1\u0724" + + "\1\u0725\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0726\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0727\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0728\2\141\1\u0729\1\u072a\1\u072b\1\141\1\u072c\1\u072d" + "\1\u072e\1\u072f\1\141\1\u0730\2\141\1\u0731\1\141\1\u0732" + + "\1\u0733\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0734\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u0735\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0736" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0737" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0738" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0739" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u073a" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u073b" + + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u073c" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u073d\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u073e\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u03f3\11\141" + + "\1\u073f\6\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0740\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0741" + + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0742\5\141" + "\1\u055b\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u0743\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0744\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u0745\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0746" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u05e2\3\141" + + "\1\u0747\1\141\1\u0291\3\141\1\u0748\1\u0749\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\1\u074a\6\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u074b\1\141\1\u074c\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0681\7\141" + + "\1\u074d\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u074e" + "\2\141\1\u074f\1\u0750\1\u0751\4\141\1\u0208\1\141\1\u0752" + + "\1\141\1\u0464\2\141\1\u0753\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0754\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u024c\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0755\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\11\141\1\u0756\15\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0757" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\25\141\1\u0758\1\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0759\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u075a\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0687\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u075b\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u075c\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u0269\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u075d\7\141\1\u055f\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u075e\5\141\1\u075f\6\141" + "\1\u0760\1\141\1\u0761\2\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0560\7\141\1\u0762\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u040b\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0763\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\15\141\1\u0485\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0764\3\141\1\u0765\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0766\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0767\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0768\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0769\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u074e\1\u076a\1\u076b" + "\1\u076c\1\u076d\1\u076e\1\u076f\1\u0770\1\u0771\1\141\1\u0772" + + "\1\u0773\1\u0774\1\u0775\1\u0776\2\141\1\u0777\1\u0778\1\141" + "\1\u06ec\1\141\1\u0779\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\u077a" + "\6\141\1\132\10\0\6\141\1\0\10\141\1\u077b\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u06ee\11\141\1\u077c\11\141\1\u06ec\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u077d\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u077e\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u077f\2\141\1\u0780\1\u0387\1\u0262\3\141" + "\1\u0408\1\u0781\1\u0393\6\141\1\u0782\3\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0783\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u0784\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u0785\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0414\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u0786\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0787\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0788\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0789\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u078a\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u078b\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u078c\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u078d\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u078e\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u078f\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0790\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0791\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0792\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u047b\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0793\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u0794\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\1\u0378\5\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\1\141\1\u0169\7\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\132" + "\1\0\11\132\1\0\1\u0795\1\0\3\132\1\0\2\132" + + "\14\0\27\132\1\0\5\132\4\0\12\132\1\0\10\132" + "\10\0\6\141\1\0\10\141\1\u0796\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u0797\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u0798\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0799\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u079a\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u079b\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u079c\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u0269\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u079d\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u079e\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u079f\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\16\0\1\u07a0\41\0\1\u07a0" + + "\136\0\1\u07a1\145\0\1\u07a2\137\0\1\u07a3\137\0\1\u07a4" + "\153\0\1\u050c\144\0\1\u07a5\124\0\1\u07a6\135\0\1\u07a7" + + "\147\0\1\u07a8\130\0\1\u07a9\152\0\1\u07aa\134\0\1\u07ab" + "\3\0\1\u07ac\130\0\1\u07ad\151\0\1\u07ae\125\0\1\u07af" + + "\162\0\1\u07b0\123\0\1\u07b1\141\0\1\u0504\140\0\1\u07b2" + "\152\0\1\u07b3\51\0\3\u0105\1\u07b4\2\u0105\1\0\10\u0105" + + "\2\0\1\u0105\5\0\2\u0105\14\0\1\u07b4\26\u0105\1\0" + "\4\u0105\5\0\12\u0105\1\0\7\u0105\11\0\6\u0105\1\0" + + "\1\u0105\1\u07b5\6\u0105\2\0\1\u0105\5\0\2\u0105\14\0" + "\7\u0105\1\u07b5\17\u0105\1\0\4\u0105\5\0\12\u0105\1\0" + + "\7\u0105\100\0\1\u07b6\50\0\1\u07b7\203\0\1\u0516\12\0" + "\1\u02bb\57\0\2\u07b8\1\0\7\u0518\1\0\10\u0518\2\u07b8" + + "\1\u0518\1\0\1\u07b8\1\0\1\u0518\1\u07b8\2\u0518\2\u07b8" + "\1\0\2\u07b8\1\0\5\u07b8\1\0\27\u0518\1\0\4\u0518" + + "\5\u07b8\12\u0518\1\0\7\u0518\2\57\1\0\1\57\1\0" + "\2\57\2\0\6\57\1\0\26\57\1\0\31\57\1\u07b9" + + "\15\57\1\0\22\57\2\67\1\0\1\67\1\0\2\67" + "\2\0\4\67\1\u02ee\1\67\1\0\26\67\1\0\31\67" + + "\1\u02ee\15\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\27\67\1\u02c8\17\67" + + "\1\0\3\67\1\u02c8\20\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\23\67\1\u011e\16\67" + + "\1\u011e\4\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\3\67\1\u052a\2\67\1\0\26\67\1\0\7\67" + + "\1\u052a\37\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\1\67\1\u02ee\4\67\1\0\26\67\1\0\21\67" + + "\1\u02ee\25\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\1\67\1\u02c8\4\67\1\0\26\67\1\0\21\67" + + "\1\u02c8\25\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\15\67\1\u07ba\23\67" + + "\1\u07ba\5\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\2\67\1\u07bb\3\67\1\0\26\67\1\0\12\67" + + "\1\u07bb\34\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\2\67\1\u07bc\23\67\1\0\13\67" + + "\1\u07bc\1\67\1\u0527\23\67\1\u0527\5\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\21\67" + + "\1\u07bd\4\67\1\0\30\67\1\u07bd\16\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\10\67\1\u02c8\36\67\1\0\1\67\1\u02c8\22\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\23\67\1\u07be\16\67\1\u07be\4\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\15\67\1\u07bf\23\67\1\u07bf\5\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + + "\1\0\23\67\1\u014f\16\67\1\u014f\4\67\1\0\24\67" + "\1\0\1\67\1\0\2\67\2\0\5\67\1\u07c0\1\0" + + "\26\67\1\0\11\67\1\u07c0\35\67\1\0\24\67\1\0" + "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0" + + "\27\67\1\u07c1\17\67\1\0\3\67\1\u07c1\20\67\1\0" + "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0" + + "\25\67\1\u0137\21\67\1\0\1\u0137\23\67\1\0\1\67" + "\1\0\2\67\2\0\6\67\1\0\26\67\1\0\14\67" + + "\1\u07c2\23\67\1\u07c2\6\67\1\0\24\67\1\0\1\67" + "\1\0\2\67\2\0\6\67\1\0\12\67\1\u0527\13\67" + + "\1\0\37\67\1\u0527\7\67\1\0\24\67\1\0\1\67" + "\1\0\2\67\2\0\6\67\1\0\26\67\1\0\25\67" + + "\1\u011e\21\67\1\0\1\u011e\23\67\1\0\1\67\1\0" + "\2\67\2\0\3\67\1\u07c3\2\67\1\0\26\67\1\0" + + "\7\67\1\u07c3\37\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\5\67\1\u07c4\1\0\1\67\1\u07c5\24\67" + + "\1\0\11\67\1\u07c4\4\67\1\u07c5\3\67\1\u07c6\24\67" + "\1\0\2\67\1\u07c6\21\67\1\0\1\67\1\0\2\67" + + "\2\0\3\67\1\u07c7\2\67\1\0\26\67\1\0\7\67" + "\1\u07c7\37\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\12\67\1\u07c8\13\67\1\0\37\67" + "\1\u07c8\7\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\u07c9\23\67\1\0\13\67" + "\1\u07c9\33\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\21\67\1\u07ca\4\67\1\0\30\67" + "\1\u07ca\16\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\2\67\1\u02c8\3\67\1\0\26\67\1\0\12\67" + "\1\u02c8\34\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\26\67\1\0\23\67\1\u07cb\16\67" + "\1\u07cb\4\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\1\67\1\u011b\4\67\1\0\26\67\1\0\21\67" + "\1\u011b\25\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\u02ee\23\67\1\0\13\67" + "\1\u02ee\33\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\u07cc\23\67\1\0\13\67" + "\1\u07cc\33\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\26\67\1\0\15\67\1\u07cd\23\67" + "\1\u07cd\5\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\u0137\23\67\1\0\13\67" + "\1\u0137\33\67\1\0\22\67\100\0\1\u07ce\53\0\1\u07cf" + + "\45\0\1\u07cf\157\0\1\u07d0\40\0\1\132\10\0\1\132" + "\1\u07d1\4\132\1\0\2\132\1\u07d1\1\132\4\u07d1\1\132" + + "\1\0\1\132\1\0\3\132\1\0\1\132\1\u07d1\14\0" + "\4\132\3\u07d1\2\132\2\u07d1\6\132\1\u07d1\5\132\1\0" + + "\1\132\2\u07d1\2\132\4\0\7\132\1\u07d1\2\132\1\0" + "\3\u07d1\1\132\3\u07d1\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u07d2\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u07d3\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u0426\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0412\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\3\141\1\u0269\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u07d4\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u07d5\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u07d6\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\17\141\1\u07d7\7\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u0632\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u07d8\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u07d9\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u07da\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u07db\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0554\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u07dc\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u07dd\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u07de\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141" + "\1\u0169\6\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u07df\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u07e0" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0317" + + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u07e1\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0317\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u07e2\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u032b\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u055c\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u07e3\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u07e4\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u07e5\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u018f\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\100\0\1\u07e6" + + "\140\0\1\u07e7\53\0\1\u07e8\45\0\1\u07e8\67\0\1\u07e9" + "\203\0\1\u0569\12\0\1\u0345\57\0\2\u07ea\1\0\7\u056b" + + "\1\0\10\u056b\2\u07ea\1\u056b\1\0\1\u07ea\1\0\1\u056b" + "\1\u07ea\2\u056b\2\u07ea\1\0\2\u07ea\1\0\5\u07ea\1\0" + + "\27\u056b\1\0\4\u056b\5\u07ea\12\u056b\1\0\7\u056b\10\0" + "\1\u07eb\203\0\1\u056c\12\0\1\u0349\57\0\2\u07ec\1\0" + + "\7\u056e\1\0\10\u056e\2\u07ec\1\u056e\1\0\1\u07ec\1\0" + "\1\u056e\1\u07ec\2\u056e\2\u07ec\1\0\2\u07ec\1\0\5\u07ec" + + "\1\0\27\u056e\1\0\4\u056e\5\u07ec\12\u056e\1\0\7\u056e" + "\60\0\1\u07ed\152\0\1\u07ee\142\0\1\u07ef\124\0\1\u07f0" + + "\142\0\1\u07f1\134\0\1\u07f2\3\0\1\u0578\145\0\1\u07f3" + "\144\0\1\u07f4\77\0\1\u07f5\174\0\1\u0590\146\0\1\u07f6" + + "\140\0\1\u0590\126\0\1\u07f7\110\0\1\u07f8\205\0\1\u07f9" + "\73\0\1\u07fa\165\0\1\u0590\153\0\1\u07fb\130\0\1\u07fc" + + "\135\0\1\u07fd\155\0\1\u07fe\126\0\1\u0578\151\0\1\u07ff" + "\124\0\1\u0800\145\0\1\u0578\134\0\1\u0801\142\0\1\u0802" + + "\140\0\1\u0803\154\0\1\u0590\141\0\1\u0578\120\0\1\u0804" + "\151\0\1\u0364\130\0\1\u0805\141\0\1\u0579\144\0\1\u0806" + + "\141\0\1\u0807\140\0\1\u0808\153\0\1\u0809\126\0\1\u080a" + "\133\0\1\u080b\155\0\1\u0590\125\0\1\u080c\144\0\1\u0590" + + "\131\0\1\u080d\144\0\1\u0805\155\0\1\u080e\116\0\1\u080f" + "\17\0\1\u0810\124\0\1\u057f\142\0\1\u0811\130\0\1\u0812" + + "\75\0\1\u0813\45\0\1\u0813\67\0\1\u0814\203\0\1\u05a3" + "\12\0\1\u0374\57\0\2\u0815\1\0\7\u05a5\1\0\10\u05a5" + + "\2\u0815\1\u05a5\1\0\1\u0815\1\0\1\u05a5\1\u0815\2\u05a5" + "\2\u0815\1\0\2\u0815\1\0\5\u0815\1\0\27\u05a5\1\0" + + "\4\u05a5\5\u0815"; + private static final String ZZ_TRANS_PACKED_1 = "\12\u05a5\1\0\7\u05a5\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\2\141\1\u0816\1\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\2\141\1\u0817\3\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u0818\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0819\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u081a\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\1\141" + "\1\u081b\7\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\3\141\1\u081c\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\1\141\1\u081d\10\141" + "\1\0\7\141\1\132\10\0\5\141\1\u081e\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0383\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u06f1" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u06f1" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u081f" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0820\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u04c5\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0754\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0821\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0822\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0392" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0823" + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0824" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0400" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0169" + + "\1\u043e\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0825\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0826\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u07d3" + "\11\141\1\u0827\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0828\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0829\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u082a\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u082b\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u082c\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u082d\6\141\1\u082e\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u082f\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u05d2\15\141\1\u0830\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u0831\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0832\7\141\1\u0833\3\141\1\u0834" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0835" + + "\6\141\1\u0836\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0837\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u0838\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u04f9\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u0839\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u083a\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u05d8\15\141\1\u083b\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\25\141\1\u044f\1\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u083c\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u083d\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u0269\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0400\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u083e\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u083f\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0840\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0841\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0842\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0269\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u03d4\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0843\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u0844\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0845\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0846\2\141\1\u0847\1\141\1\u060f\2\141\1\u0848\13\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0849\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u084a\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u084b\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0840\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u084c\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u084d\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u084e\15\141\1\u084f\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0830\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u0850\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0687\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0679\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u0851\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u03e4\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u05ea\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0852\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0853\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0854\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u0855\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0856\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0857\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u0858\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u0859\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u085a\4\141\1\u085b" + + "\2\141\1\u085c\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u085d\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u085e\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u085f\10\141\1\u0860\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0861\5\141\1\u0862\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0863\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0864\1\141\1\u0865\15\141" + + "\1\u0866\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u0867\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0868\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0869\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u086a" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u086b\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u086c\2\141" + + "\1\u086d\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u086e\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u086f\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0870" + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0871\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0872\3\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0873\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03a8" + + "\17\141\1\u0874\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u03d4\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0875\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u0876\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0877" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0878\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0480" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0879" + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u087a" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u087b" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u044f" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0606" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u087c" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u087d" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u087e" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0269" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u087f" + + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0880\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u0881\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u04f9\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0882\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u0396\1\141\1\u0883\3\141\1\u0884\5\141\1\u03c1" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0885" + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0886" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0887" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0888" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0889" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u088a" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u088b" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u088c" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u088d\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u088e\2\141" + + "\1\u04c5\2\141\1\u0208\3\141\1\u0464\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u01c6\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\21\141\1\u088f\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u069a\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\11\141\1\u038d\15\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u0890\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u0891\3\141\1\u0892\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\23\141\1\u0169\3\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0893\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0894\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0895\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0896\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0632\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u0897\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0898\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0899\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u089a\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u0169\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u089b\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\17\141\1\u0181\7\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\15\141\1\u018f\11\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u089c\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u089d\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0749\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u089e\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u05d9\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\5\141\1\u0269" + + "\1\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u0827\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u089f\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u08a0\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u08a1\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u08a2\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u08a3\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u08a4" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u08a5\1\u0679\1\u0687\3\141\1\u0679\1\141\1\u08a6" + + "\1\141\1\u0679\1\u06e5\2\141\1\u08a7\3\141\1\u08a8\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u060b\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u08a9\1\141" + "\1\u08aa\1\u08ab\1\u08ac\1\u08ad\1\u08ae\1\u08af\1\141\1\u08b0" + + "\1\u08b1\1\u08b2\4\141\1\u0753\1\u08b3\3\141\1\u08b4\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u08b5\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u05b2\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u08b6\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u08b7\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u08b8\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u01fa\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\20\141\1\u08b9\6\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u08ba\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u08bb\1\141\1\u08bc\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u03d2\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u032c\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u0269\1\141\1\u08bd" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08be" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u08bf" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u08c0\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08c1" + + "\3\141\1\u08c2\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\15\141\1\u0269\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\1\u0269\6\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u08c3\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u08c4\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u08c5\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u08c6\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u08c7\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u070e\10\141\1\u08c8\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u08c9\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u08ca\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0262\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u08cb\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0832\4\141\1\u08cc\5\141\1\u0318\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u08cd\5\141" + "\1\u08ce\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u08cf\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u08d0\3\141\1\u08d1\1\u08d2\1\u08d3\1\u08d4\5\141\1\u08d5" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08d6" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08d7" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u08d8\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08d9" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u08da" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u08db" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u08dc" + + "\7\141\1\u041e\1\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u08dd\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\5\141\1\u0269" + "\3\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u0269\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\1\u08de\6\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u08df\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u08e0\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u08e1" + + "\3\141\1\u08e2\2\141\1\u0465\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u08e3\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u08e4\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u08e5\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u01fa\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u08e6\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0894\2\141\1\u08e7\4\141\1\u08e8\6\141\1\u08e9" + "\2\141\1\u06b7\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u08ea\11\141\1\u08eb\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0269\12\141\1\u08ec\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u08ed\3\141\1\u06b5\5\141" + "\1\u08ee\7\141\1\u08ef\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u08f0\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u03c0\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u05d8\17\141\1\u04f9\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u05d1\4\141\1\u08f1\1\141" + + "\1\u08f2\4\141\1\u05d8\1\u0262\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u08f3\3\141\1\u08f4\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u03c0\6\141\1\u08f5" + "\4\141\1\u08f6\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u08f7\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u0187\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u08f8\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u08f9\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u08fa\2\141\1\u08fb\4\141\1\u060f\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u08fc\1\u08fd\1\u08fe\1\141" + + "\1\u08ff\1\u0900\1\u0901\1\u0902\2\141\1\u0903\1\141\1\u0904" + "\1\141\1\u046a\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u0905\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0906\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\23\141\1\u01ea\3\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0907\5\141\1\u0908\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0909\12\141\1\u090a\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u090b\7\141\1\u08cb\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u090c\3\141\1\u090d" + "\11\141\1\u090e\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u090f\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0910\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0911\7\141\1\u0912\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0913\6\141\1\u0914\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u044f\3\141\1\u0915\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0916\2\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0917\3\141\1\u0918" + + "\11\141\1\u0919\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u091a\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u091b\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u091c\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u091d\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u091e\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u091f\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0920" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u060f" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0921" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0922" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0923" + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u03c6" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0924" + "\2\141\1\u0925\4\141\1\u0926\5\141\1\u0927\1\u0928\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0929\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u092a\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u092b\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u0748\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u092c\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u092d\1\u092e\1\u092f" + + "\1\u0930\1\u0931\1\u0932\1\u0933\1\u0934\1\141\1\u0935\1\u0936" + + "\1\u0937\1\141\1\u0938\2\141\1\u0939\1\u093a\1\141\1\u093b" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u093c\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\23\141\1\u0921\1\141\1\u0921" + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u093d\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u093e\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u093f\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0940\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u04ce\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0941\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0942\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u0943\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0944" + "\1\141\1\u0945\5\141\1\u0946\7\141\1\u0947\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u0748\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0948\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u0949\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0610\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\1\141\1\u094a" + + "\5\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + + "\1\u0269\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u03c6\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u05d1\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u0269\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u094b\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0392\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u094c\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u094d\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u08e1\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u090a\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u094e\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u094f" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0950" + + "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\1\u0269\6\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u06ee\1\141\1\u0951" + + "\2\141\1\u0952\13\141\1\u0953\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u0954\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0955\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u0956\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u0957\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0958\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0959\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u095a\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\20\141\1\u095b\6\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u095c\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\20\141\1\u095d\6\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u095e\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u095f\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0960\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u044f\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u07e0" + "\3\141\1\u090a\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0961\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0962\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0963\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0964\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0965\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0966\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0967\1\u045b\1\141\1\u0968\1\141\1\u0639\1\u0969\1\u096a" + + "\1\u096b\1\141\1\u096c\1\u096d\1\u088f\1\u096e\1\u05d8\2\141" + "\1\u096f\1\u0970\2\141\1\u0971\1\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\3\141\1\u0972\3\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0973\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0974\1\u0975\1\141\1\u0976" + + "\1\u0977\1\141\1\u0978\1\u0979\1\u097a\1\u097b\1\u097c\1\141" + "\1\u097d\1\u097e\1\u097f\2\141\1\u0980\1\u0981\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0982\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u0983\1\u0984\11\141" + + "\1\u0985\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u03c0\1\141\1\u0986\16\141\1\u0987\1\141\1\u0988\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u0989\3\141\1\u05ce" + "\16\141\1\u01ea\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u098a\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u098b\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u098c\4\141\1\u06b5\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u098d\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u098e\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u098f\4\141\1\u0990\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0991\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0992\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0993\1\141\1\u0994\1\141\1\u0995" + + "\10\141\1\u0996\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0910\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03c0" + + "\1\u0945\11\141\1\u0997\1\141\1\u0392\7\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0998\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0999\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0915\11\141\1\u099a\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u099b\2\141" + "\1\u044f\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u099c" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0918" + "\1\141\1\u05d9\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u099d\1\u099e\1\141\1\u099f\7\141\1\u09a0\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09a1\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u09a2\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u09a3\21\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0392\10\141" + "\1\u09a4\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u063d\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u09a5\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u020c\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u08f6\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u09a6\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u09a7\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u09a8\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u09a9\21\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u09aa\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u09ab\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u09ac\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u09ad\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0393\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u09ae\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u04ae\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u09af\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u09b0" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u09b1\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u09b2\3\141\1\u09b3\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u09b4\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u09b5\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u09b6\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0945\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u09b7\3\141\1\u09b8\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u09b9\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u09ba\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u09bb\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\15\141\1\u09bc\11\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u09bd\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u09be\4\141\1\u01d4\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u09bf\7\141\1\u09c0\5\141" + "\1\u0269\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u09c1\15\141\1\u09c2\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u09c3\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u09c4\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0408\1\141\1\u09c5\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u040d\5\141\1\u09c6\1\u09c7" + "\3\141\1\u0269\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u09c8\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u09c9\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u09ca\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\11\141\1\u09cb\15\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\15\141\1\u03a8\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u09cc\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u09cd\11\141\1\u09ce\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u09cf\11\141\1\u09d0\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u09d1\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u09d2\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u09d3\1\u09d4\1\u09d5\1\141\1\u09d6\1\141\1\u09a4" + "\1\u09d7\1\u09d8\1\u09d9\1\141\1\u0464\2\141\1\u03a8\1\u09da" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09db" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u023a" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u09dc" + "\10\141\1\u09dd\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u09de\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u09df\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u09e0" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u09e1" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u09e2" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09e3" + "\22\141\1\0\4\141\1\132\4\0\11\141\1\u09e4\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u09e5\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u09e6" + "\2\141\1\u09e7\1\u072a\1\u09e8\1\141\1\u09e9\1\u09ea\1\u09eb" + + "\1\u09ec\1\141\1\u09ed\4\141\1\u09ee\1\u09ef\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u09f0\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u09f1\11\141\1\u09f2" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u09f3" + + "\21\141\1\u09f4\1\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u09f5\1\u09f6\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u09f7\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u09f8\1\141\1\u09f9\1\141\1\u09fa\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u09fb\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u09fc\1\u09fd\6\141" + + "\1\u09fe\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u09ff" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0a00\2\141\1\u0a01\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0a02\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0a03\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0a04\1\u0a01\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0a05\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0a06\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0a07\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u06ab\1\u0a08\10\141\1\u03c1\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0a09\3\141\1\u0a0a" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a0b" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0a0c" + + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0a0d\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0a0e\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0750\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0a0f\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u0a10\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0a11\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0a12\1\u0461" + + "\1\141\1\u0a13\2\141\1\u0a14\1\141\1\u0208\3\141\1\u0464" + "\1\u020c\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0a15\2\141\1\u0a16\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0a17\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u0a18\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0a19\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0a1a\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u0a1b\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0a1c\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0a1d\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u044f\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u06b7\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u0a1e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0a1f" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u0a20\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u0a21\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0a22\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141" + "\1\u0a23\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a24" + + "\3\141\1\u064e\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0a25\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0a26\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u044f\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u0a27\1\u0a28\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u0a29\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0a2a\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u0a2b\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0a2c\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u0a2d\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u06b5\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0a2e\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0a2f\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a1d" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0a30\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0a31\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0a32\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u0a33\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a34\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0a35\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0a36\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a37\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0a38\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0a39\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0a3a\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0a3b\5\141" + + "\1\u0a3c\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0a3d\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u047b\1\u0a3e\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0a3f\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0a40\4\141\1\u0a41\3\141\1\u0a42\10\141\1\u0705" + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a43\2\141" + + "\1\u0a44\1\u0a45\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u0a46\21\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u0a47\7\141\1\u0a48\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0a49\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0a4a\4\141\1\u0a4b\1\u0a4c\6\141" + "\1\u0a4d\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0a4e\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0a4f" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0754\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u06fe\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a26\4\141" + + "\1\u03ce\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0a50" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0830" + "\5\141\1\u0a51\3\141\1\u09d0\3\141\1\u0386\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u0a52\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\17\141\1\u0a53\7\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u03ce\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0a54\6\141\1\u0a55\1\u0a56\1\141\1\u0a57" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0a58" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0a59" + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a5a\1\u0a5b" + + "\1\u0a5c\1\u0a5d\1\u0a5e\1\u0a5f\1\u0a60\1\u0a61\1\u0a62\1\u0a63" + + "\1\u0a64\1\u0a65\1\u0a66\1\141\1\u0a67\2\141\1\u0753\1\u0a68" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0a69" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0a6a" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a6b" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0a6c" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0174\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0a6d\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u0a6e\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0a6f\14\141\1\u0a70\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0a71\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u08bb\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0a72\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0a73\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0a74\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a75\3\141" + "\1\u0a76\2\141\1\u0a77\6\141\1\u0a78\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u0a79\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0a7a\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\25\141\1\u0a7b\1\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0a7c\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0a7d\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\15\141\1\u0a7e\11\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0a7f\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0a80\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\1\132\1\u0a81\4\132\1\0" + "\2\132\1\u0a81\1\132\4\u0a81\1\132\1\0\1\132\1\0" + + "\3\132\1\0\1\132\1\u0a81\14\0\4\132\3\u0a81\2\132" + "\2\u0a81\6\132\1\u0a81\5\132\1\0\1\132\2\u0a81\2\132" + + "\4\0\7\132\1\u0a81\2\132\1\0\3\u0a81\1\132\3\u0a81" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0461" + "\1\u0a82\5\141\1\u0208\3\141\1\u0464\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u0a83\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u0a84\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0a85\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u08b6\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u0a86\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0a87" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u0a88\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0a89" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u0a8a\5\141\1\u0a8b\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\3\141\1\u0a8c\3\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u0a8d\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\20\0\1\u0a8e\60\0" + + "\1\u0a8e\120\0\1\u0a8f\137\0\1\u07b0\143\0\1\u0a90\146\0" + "\1\u0a91\127\0\1\u0a92\147\0\1\u0a93\137\0\1\u07ab\104\0" + + "\1\u0a94\164\0\1\u0a95\160\0\1\u07af\122\0\1\u0a96\151\0" + "\1\u07af\137\0\1\u0a97\101\0\1\u0a98\171\0\1\u0a99\157\0" + + "\1\u0a96\115\0\1\u0a9a\156\0\1\u0a9b\55\0\4\u0105\1\u0a9c" + "\1\u0105\1\0\10\u0105\2\0\1\u0105\5\0\2\u0105\14\0" + + "\22\u0105\1\u0a9c\4\u0105\1\0\4\u0105\5\0\12\u0105\1\0" + "\7\u0105\11\0\6\u0105\1\0\2\u0105\1\u0a9d\5\u0105\2\0" + + "\1\u0105\5\0\2\u0105\14\0\4\u0105\1\u0a9d\22\u0105\1\0" + "\4\u0105\5\0\12\u0105\1\0\7\u0105\10\0\1\u0518\130\0" + + "\2\67\1\0\1\67\1\0\2\67\2\0\1\114\5\67" + "\1\0\26\67\1\0\17\67\1\114\27\67\1\0\24\67" + + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\26\67" + "\1\0\25\67\1\u0a9e\21\67\1\0\1\u0a9e\23\67\1\0" + + "\1\67\1\0\2\67\2\0\6\67\1\0\26\67\1\0" + "\23\67\1\u02ee\16\67\1\u02ee\4\67\1\0\24\67\1\0" + + "\1\67\1\0\2\67\2\0\6\67\1\0\2\67\1\u0a9f" + "\23\67\1\0\13\67\1\u0a9f\33\67\1\0\24\67\1\0" + + "\1\67\1\0\2\67\2\0\5\67\1\u0aa0\1\0\26\67" + "\1\0\11\67\1\u0aa0\35\67\1\0\24\67\1\0\1\67" + + "\1\0\2\67\2\0\2\67\1\u0aa1\3\67\1\0\26\67" + "\1\0\12\67\1\u0aa1\34\67\1\0\24\67\1\0\1\67" + + "\1\0\2\67\2\0\1\u0aa2\5\67\1\0\26\67\1\0" + "\17\67\1\u0aa2\27\67\1\0\24\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\26\67\1\0\35\67\1\u0aa3" + "\11\67\1\0\4\67\1\u0aa3\17\67\1\0\1\67\1\0" + + "\2\67\2\0\6\67\1\0\26\67\1\0\25\67\1\u07bc" + "\21\67\1\0\1\u07bc\23\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\1\67\1\u07ba\24\67\1\0\16\67" + "\1\u07ba\30\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\u0aa4\23\67\1\0\13\67" + "\1\u0aa4\33\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\3\67\1\u0146\2\67\1\0\26\67\1\0\7\67" + "\1\u0146\37\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\2\67\1\u0aa5\3\67\1\0\26\67\1\0\12\67" + "\1\u0aa5\34\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\1\67\1\u0aa6\4\67\1\0\26\67\1\0\21\67" + "\1\u0aa6\25\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\6\67\1\0\2\67\1\u02c8\23\67\1\0\13\67" + "\1\u02c8\33\67\1\0\24\67\1\0\1\67\1\0\2\67" + + "\2\0\1\u0537\5\67\1\0\26\67\1\0\17\67\1\u0537" + "\27\67\1\0\24\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\1\u02ed\25\67\1\0\32\67\1\u02ed\14\67" + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\1\u07ba" + + "\5\67\1\0\26\67\1\0\17\67\1\u07ba\27\67\1\0" + "\24\67\1\0\1\67\1\0\2\67\2\0\6\67\1\0" + + "\26\67\1\0\10\67\1\u0aa7\36\67\1\0\1\67\1\u0aa7" + "\20\67\14\0\1\u0aa8\41\0\1\u0aa8\62\0\1\132\10\0" + + "\1\132\1\u0aa9\4\132\1\0\2\132\1\u0aa9\1\132\4\u0aa9" + "\1\132\1\0\1\132\1\0\3\132\1\0\1\132\1\u0aa9" + + "\14\0\4\132\3\u0aa9\2\132\2\u0aa9\6\132\1\u0aa9\5\132" + "\1\0\1\132\2\u0aa9\2\132\4\0\7\132\1\u0aa9\2\132" + + "\1\0\3\u0aa9\1\132\3\u0aa9\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u03e9\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0aaa\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\5\141\1\u0aab\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0aac\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0aad\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u0637\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0312\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0aae\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0629\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0aaf\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u0169\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0ab0\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u0ab1\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u0ab2\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0426\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + "\1\u0324\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u0ab3\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\3\141\1\u090a\2\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\1\141\1\u0ab4\2\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u0317\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\14\0\1\u0ab5\41\0\1\u0ab5\72\0" + + "\1\u056b\140\0\1\u056e\224\0\1\u0ab6\142\0\1\u0ab7\123\0" + "\1\u0364\143\0\1\u0362\135\0\1\u0590\151\0\1\u0590\130\0" + + "\1\u0ab8\152\0\1\u0598\131\0\1\u0364\150\0\1\u0578\142\0" + "\1\u0ab9\122\0\1\u0aba\153\0\1\u0abb\122\0\1\u0abc\142\0" + + "\1\u0590\141\0\1\u0abd\157\0\1\u07f5\121\0\1\u0abe\153\0" + "\1\u07f1\126\0\1\u0abf\137\0\1\u0ac0\145\0\1\u0578\144\0" + + "\1\u0ac1\132\0\1\u0ac2\132\0\1\u059a\151\0\1\u0ac3\137\0" + "\1\u0ac4\132\0\1\u0ac5\141\0\1\u0ac6\143\0\1\u0ac7\142\0" + + "\1\u0ac8\104\0\1\u0ac9\170\0\1\u0aca\142\0\1\u0acb\136\0" + "\1\u0acc\140\0\1\u0acd\134\0\1\u0ace\146\0\1\u0acf\70\0" + + "\1\u0ad0\41\0\1\u0ad0\72\0\1\u05a5\130\0\1\132\10\0" + "\1\u0ad1\5\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0ad2\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0832\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u0ad3\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0ad4\2\141\1\u0ad5\1\141\1\u0ad6" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\2\141\1\u0817\6\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\1\141\1\u0ad7\4\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\2\141\1\u0ad8\6\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\6\141\1\u0ad9\3\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u09f1" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ada" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u08f6" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0adb" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0adc\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0add\6\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0ade\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0adf\1\141" + + "\1\u0ae0\1\u0ae1\1\u0ae2\1\u0ae3\1\u0ae4\1\u0ae5\1\u0ae6\1\141" + + "\1\u0ae7\1\u0ae8\3\141\1\u0a53\1\141\1\u0ae9\1\u0aea\2\141" + "\1\u0aeb\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\1\u077a\2\141\1\u0aec\3\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u0aed\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0aee\1\u0aef\1\u0af0\1\u0af1\1\u0af2" + + "\1\u0af3\1\u0af4\1\u0af5\1\u0af6\1\u0af7\1\u0af8\1\u0af9\1\u0afa" + "\1\u0464\2\141\1\u0afb\1\u0afc\3\141\1\u0afd\1\0\4\141" + + "\1\132\4\0\12\141\1\0\6\141\1\u0afe\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u03d4\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0aff\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0b00\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u0b01\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0b02\2\141\1\u030c" + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0b03" + + "\1\141\1\u0b04\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u03d4\4\141\1\u0412\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0408\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0b05\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u0b06\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0afc\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0b07\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0b08\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0b09\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u031a\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0b0a\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u0b0b\5\141\1\u031a\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\3\141\1\u0a3a\3\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0b0c\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u0b0d\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u0b0e\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u0b0f\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u0b10\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u08a5\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u06bb\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0b0e\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0b11\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u0b12\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b13" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0b14\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0b15\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0b16\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0b17\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u0b18\6\141\1\u0b19\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0b1a\5\141\1\u0b1b\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0b1c\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u0b1d\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0b1e\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u0b1f\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0b20\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u0b21\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u0b22\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u0b23\7\141\1\u0b24\6\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0b25\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0b26\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\23\141\1\u0b27\3\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u0b28\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u0b29\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0920\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0b2a\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0b2b\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0b2c\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0b2d\1\141\1\u0b2e\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0b2f\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0b30\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u0b31\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0b32\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u0b33\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u0b34\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0b35\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u0b36\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0b37\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0b38\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u06ce\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0b39\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0245\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0b3a\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0b3b\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0b3c\7\141\1\u0b33" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0b3d" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0b3e" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0b3f" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b40\1\141" + "\1\u0b41\1\u0b42\1\u0b43\1\u0b44\1\u0b45\1\u0b46\1\u0b47\1\141" + + "\1\u0b48\1\141\1\u0b49\1\141\1\u0464\1\u0b4a\1\141\1\u0b4b" + "\1\u08b9\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b4c\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0b4d" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0b4e\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u05c1\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0b4f\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u0b50\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0b51\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u0b52\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0b53\2\141\1\u0b54\1\u0b55\1\141\1\u0b56" + + "\1\u0b57\1\u0b58\1\141\1\u0b59\1\u0b5a\3\141\1\u0b5b\1\141" + "\1\u0b5c\1\u0b5d\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0b5e\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0614\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u0b5f\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0b60\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0b61\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b62" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0b63\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0b64\5\141\1\u09d0\13\141\1\u0779\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0b65\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0b66\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0b67\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u03c8" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u0b68\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0b69\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0b6a\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0b6b\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0b6c\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0b6d\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0b6e\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u0b6f\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0b1d\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u0b70\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u04ce\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u090a\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0b71" + + "\2\141\1\u0b72\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0b73\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0b74\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u06ee" + + "\11\141\1\u063d\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u074f\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0894" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0b75\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0b76\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u0b77\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b78" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0b79" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0410" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0b7a" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b7b\1\141" + + "\1\u0b7c\1\u0b7d\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0b7e\10\141\1\u0312\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0b7f\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u0b80\1\u0b81\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0b82\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u08d8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0b83" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0750\6\141\1\u0b84\6\141\1\u0b85\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u063d\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0993\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\17\141\1\u099b\7\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0b86\1\u099e\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\20\141\1\u01eb\1\u0b87\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u01eb\2\141\1\u03ce" + + "\1\141\1\u0b88\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\25\141\1\u0705\1\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u060f\6\141\1\u0b89\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0b8a\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0b8b\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0b8c\3\141\1\u0b8d\3\141\1\u0b8e\12\141" + + "\1\u0b8f\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u040d\5\141\1\u0b90\1\u04d8\2\141\1\u0b91\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0b92\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u04c5\1\141\1\u0b93" + + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u044f\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u08bd" + "\10\141\1\u0392\7\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u06ce\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0b94" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u05b6" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0b95\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0262\1\141\1\u0b96\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\24\141\1\u0174\2\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0464\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u0b97\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0269\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u06b5\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u01fa\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u0b98\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u060f\2\141\1\u060f\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u0b99\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u05d6\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0b9a\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0b9b\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0b9c\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\1\u0b9d\6\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u0b9e\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0b9f\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u04ec\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u065d\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0ba0\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0ba1\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u08cc\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u0971\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0ba2\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u0717\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0ba3\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0ba4\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0ba5\2\141\1\u0ba6\1\u0ba7\6\141\1\u0ba8\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ba9\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0baa\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u0bab\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u0bac\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u0bad\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u0bae\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0baf\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0bb0\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0bb1\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u03c0\1\141\1\u0bb2\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u05d1\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u0bb3\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0bb4\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u0bb5\1\u0bb6\1\u0bb7" + + "\1\u0bb8\1\u0bb9\1\u045c\1\u04c5\1\u0bba\1\u09a4\1\u0bbb\1\u0bbc" + "\1\u0bbd\4\141\1\u0bbe\1\u0bbf\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\6\141\1\u0bc0\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u06b9\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u0bc1\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0bc2\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u0bc3\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0bc4\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0bc5\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0bc6\11\141\1\u0bc7\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\15\141\1\u0bc8\4\141\1\u0866" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0bc9" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u05d8" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0bca\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u08cd\1\141\1\u0bcb\3\141\1\u08f6\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u0bcc\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u03c0\4\141\1\u0bcd\10\141" + "\1\u0269\6\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u08ef\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + "\1\u05d8\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u08f6\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0bce\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u0bcf\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u04f9\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0bd0\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u05d1\4\141\1\u08f1\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0400\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u0bd1\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\5\141\1\u0bd2\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0bd3\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u0bd4\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0bd5\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0bd6\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0bd7\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0bd8\21\141\1\u0bd9\1\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0bda\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0bdb\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0bdc\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u0bdd\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0bde\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u0bdf\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u0be0\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u0be1\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0be2\14\141\1\u0be3\7\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0be4\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u044f\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0be5\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u0be6\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u0be7\21\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u06b3\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0be8\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u0be9\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u0bea\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0beb\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0a34\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0bec\5\141\1\u0971\6\141\1\u0bed\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u0bee\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u05d8\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u0bef\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u0b65\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\17\141\1\u04f9\7\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0bf0\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u08a6\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0bf1\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u0bf2\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u0bf3\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u0bf4\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0bf5\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u03a8\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0bf6\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0bf7\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0bf8\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0bf9\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0bfa\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0bf9\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u0bfa\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0bfb" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0bfc\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0b04" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0bfd" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0bfe\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u09c0" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0bff" + "\1\u0c00\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0c01\11\141\1\u0c02\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0c03\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u0c04\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u0c05\6\141\1\u0c06\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0c07\7\141\1\u0c08\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0c09\1\141" + + "\1\u0c0a\5\141\1\u06b3\2\141\1\u0c0b\11\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u0c0c\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0c0d\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0c0e\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0c0f\10\141\1\u0c10\5\141" + "\1\u0c11\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0c12\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0c13" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0c14\2\141\1\u0c15\6\141\1\u0c16\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0c17\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0c18\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u0c19\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0c1a\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0269\1\141\1\u0393\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u0c1b\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0c1c\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0c1d\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0c1e\1\u081f\16\141\1\u0947" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c1f" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0269" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0c20" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0c21" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0c22" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0c23" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\2\141\1\u05af\4\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0200" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u08ea" + + "\3\141\1\u03a8\1\141\1\u05d8\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u0c24\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0bc5\1\u0c25\2\141\1\u0c26\3\141\1\u0c27" + "\1\141\1\u0c28\1\u0c29\10\141\1\u06ec\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0c2a\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0c2b\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0c2c\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0c2d\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0c2e\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u0c2f\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0c30\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0c31\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0c32" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\20\141\1\u0c33\6\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u06ab\11\141\1\u03c1\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u08a5\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u063d\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0bc5\1\141\1\u0c34\1\u0c35" + + "\2\141\1\u0c36\1\u0c37\1\u0c38\1\141\1\u0c39\1\141\1\u0a66" + "\4\141\1\u0c3a\2\141\1\u0c3b\2\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0c3c\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0c3d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0411\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u04f9\15\141\1\u0b89\2\141\1\u0c3e\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0c3f\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c40\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0c41\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u090a\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u0c42\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0c43\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0c44\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u0c45\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u0679\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u0c46\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u0c47\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\11\141\1\u08f6\2\141\1\u0392\4\141" + "\1\u0392\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0c48\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u06b2" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u041a" + "\1\141\1\u0c49\1\141\1\u0c4a\5\141\1\u0c4b\13\141\1\u0c4c" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u05d1\5\141" + "\1\u0c4d\6\141\1\u0614\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u0c4e\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0c4f\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0c50\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0c51\1\u0c52\11\141\1\u0c53\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u05d8\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u0c54\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u04f5\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u0c55\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0c56\1\141\1\u0c57\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c58\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0c59\15\141" + "\1\u0c5a\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0c5b\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u0c5c\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0c5d\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0c5e\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0c5f" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u0c60\1\141\1\u0c61\6\141\1\u0bdd\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u0c62\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0c63\1\141\1\u0c64\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0c65\15\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c66\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0c67\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0c68\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0c69\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c6a\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0c6b\1\141" + + "\1\u0827\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0c6c\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08a5" + + "\12\141\1\u05b7\6\141\1\u05b7\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u05d8\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0c6d\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u0c6e\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u0c6f\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0c70\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u0c71\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0c72\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0606\1\141\1\u0c73\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u0c74\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u0c75\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u0c76\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\11\141\1\u03d4\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u06f4\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0c77\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0c78\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0c79\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0b91\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0c7a\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u0c7b\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0916\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u0b65\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u0c7c\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u0c7d\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0c7e\7\141\1\u0c7f\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u0c80\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0c81\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u03a8\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u0480\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u03e4\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u08bb\1\141\1\u0269\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0c82\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0872\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u081f\4\141\1\u0c83" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0610" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0aab" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0c84" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0c85" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0c86\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0c87\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0687\11\141\1\u0610" + "\7\141\1\u08db\2\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0c88\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0c89\14\141\1\u0c8a\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0c8b\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u0c8c\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0c8d\5\141\1\u0c8e\15\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0c8f\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\24\141\1\u0c90\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0c91\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\15\141\1\u0c92\11\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u0c93\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0c94\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u0c95\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0c96\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0c97\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u03a8\2\141\1\u0c98\1\141\1\u0c99" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u05b7" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0c9a" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0c9b" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0496\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c9c\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0c9d\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0c9e\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u0c9f\5\141\1\u0ca0" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0ca1" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0ca2" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0a05" + + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0ca3" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\3\141\1\u0ca4\3\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0ca5" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0ca6" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0ca7" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0ca8" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u04d8" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0ca9\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0caa\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0cab\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0cac\21\141" + "\1\u0705\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0cad\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u0cae\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u040d\6\141\1\u0caf\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0cb0\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0cb1\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0b20\1\u0a01\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0cb2\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u0cb3\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u0cb4\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u0cb5\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0cb6\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0cb7\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u0386\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0cb8\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0cb9\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\15\141\1\u0cba\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0cbb\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u0cbc\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u09f1\11\141\1\u0cab\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0cbd\2\141\1\u0cbe\1\u0cbf\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0cc0\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0cc1\1\141\1\u0cc2" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0cc3\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u09fc\1\u040d" + + "\6\141\1\u0cc4\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0cc5\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0cc6\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0cc7\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0cc8\3\141\1\u09d0\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0cc9\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u0cca\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u03e6\7\141\1\u03e7\7\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0971\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0ccb\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0ccc\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0ccd\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u0cce\4\141\1\u0ccf" + + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0cd0" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0cd1" + + "\1\u0cd2\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u0cd3\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u0cd4\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u0cd5\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u0cd6\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0cd7\5\141\1\u0cd8\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0cd9\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\17\141\1\u0cda\7\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u0cdb\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0cdc\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u0cdd\21\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u03ec\4\141\1\u0cde\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0cdf\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0ce0\1\u0ce1\1\u0ce2\1\u0ce3\1\u0ce4\1\u0ce5" + + "\1\u0ce6\1\u0ce7\1\u0ce8\1\u0ce9\1\u0cea\4\141\1\u0ceb\1\u0cec" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u08f6" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ced" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0cee\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u06b7\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0cef\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0cf0\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0cf1\1\141" + + "\1\u0cf2\10\141\1\u0cf3\1\u0cf4\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0cf5\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0cf6\3\141\1\u0396\6\141\1\u063d\4\141" + "\1\u0cf7\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0cf8\2\141\1\u0cf9\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u0cfa\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u03ff\6\141\1\u0cfb\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u0cfc\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0408\1\141\1\u0409\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0cfd\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u0cfe\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0cff\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141"; + private static final String ZZ_TRANS_PACKED_2 = "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d00" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d01" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d02\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0d03\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0d04" + + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0317" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0269" + + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d05" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u048b" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d06" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d07" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0d08" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d09\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d0a\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0d0b\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0d0c\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0d0d\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d0e\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u08b8\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0d0f\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0d10\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d11\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d12\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0d13\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u05d8\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d14" + + "\1\u0269\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0d15\1\141\1\u0d16\4\141\1\u0d17\2\141\1\u0d18\12\141" + + "\1\u0d19\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03d4" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0d1a" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d1b" + "\7\141\1\u0208\1\u0d1c\1\u0d1d\1\141\1\u0464\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u08f6\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0d1e\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0d1f\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0d20\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u0d21\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u0d22\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0d23\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0749\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0d24\1\141\1\u0d25\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0480\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d26\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d27\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d28\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d29\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0d2a\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0d2b\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d2c\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d2d\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d2e\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0d2f\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0d30\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u0d31\1\0\1\u0d32\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d33\2\141" + "\1\u0d34\1\u0a6f\5\141\1\u0d35\3\141\1\u0464\1\u020c\7\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d36\4\141" + "\1\u0a3a\4\141\1\u0d37\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u0d38\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0d39\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0d3a\15\141\1\u03ec\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u0d3b\5\141\1\u0d3c\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0d3d\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u0d3e\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0d3f\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0d40\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u04ec\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u06b4\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0d41\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0d42\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0d43\3\141\1\u0d44" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0d45" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d46" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0d47\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0d48\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d49\7\141" + + "\1\u0d4a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0bff\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0d4b\11\141\1\u0c02\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0d4c\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0d4d\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0d4e\1\u0d4f\15\141\1\u0d50\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0d51\15\141\1\u0d52\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0d53\1\141\1\u0d54" + + "\1\141\1\u0d55\3\141\1\u06b3\2\141\1\u0d56\2\141\1\u0a66" + "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d57" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0d58\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0d59\6\141" + "\1\u0d5a\6\141\1\u0d5b\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0d5c\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0d5d\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\22\141\1\u0d5e\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u0d5f\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u03d2\5\141\1\u0b16\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0d60\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0d61\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0d62\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0d63\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0d64\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\25\141\1\u0d65\1\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u06b4\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u0d66\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0d67\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0827" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d68\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d69\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d6a\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d6b\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0d6c\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0d6d\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u0d6e\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0d6f\1\u0d70\2\141" + + "\1\u0d71\1\u0d72\1\u0d73\1\u0c27\6\141\1\u0d74\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u08b8\7\141\1\u0d75" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0d76\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0d77\17\141" + + "\1\u0d78\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0d70\1\141\1\u0ada\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\1\132\1\u0d79\4\132" + "\1\0\2\132\1\u0d79\1\132\4\u0d79\1\132\1\0\1\132" + + "\1\0\3\132\1\0\1\132\1\u0d79\14\0\4\132\3\u0d79" + "\2\132\2\u0d79\6\132\1\u0d79\5\132\1\0\1\132\2\u0d79" + + "\2\132\4\0\7\132\1\u0d79\2\132\1\0\3\u0d79\1\132" + "\3\u0d79\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u0d7a\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0a55\14\141\1\u06ec\2\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u0d7b\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u05b6\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u0d7c\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u05b0\2\141\1\u0d7d\11\141\1\u05b1\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0d7e\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u075e\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d7f\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0d80\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u0d81\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0d82\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0d83\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\21\0" + + "\1\u0d84\43\0\1\u0d84\141\0\1\u0d85\146\0\1\u0d86\126\0" + "\1\u050c\157\0\1\u07af\124\0\1\u0d87\141\0\1\u07af\154\0" + + "\1\u0d88\67\0\1\u0d89\205\0\1\u0d87\127\0\1\u0d8a\2\0" + "\1\u0d8b\3\0\1\u0d8c\125\0\1\u07af\137\0\1\u0d87\141\0" + + "\1\u0d8d\70\0\5\u0105\1\u0d8e\1\0\10\u0105\2\0\1\u0105" + "\5\0\2\u0105\14\0\2\u0105\1\u0d8e\24\u0105\1\0\4\u0105" + + "\5\0\12\u0105\1\0\7\u0105\2\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\12\67\1\u02c6\13\67\1\0" + + "\37\67\1\u02c6\7\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\20\67\1\114\5\67\1\0" + + "\34\67\1\114\12\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\2\67\1\u0d8f\23\67\1\0" + + "\13\67\1\u0d8f\33\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\2\67\1\u02f2\23\67\1\0" + + "\13\67\1\u02f2\33\67\1\0\24\67\1\0\1\67\1\0" + "\2\67\2\0\6\67\1\0\26\67\1\0\25\67\1\u0116" + + "\21\67\1\0\1\u0116\23\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\12\67\1\u0d90\13\67\1\0\37\67" + + "\1\u0d90\7\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\10\67\1\u0d91\36\67" + + "\1\0\1\67\1\u0d91\22\67\1\0\1\67\1\0\2\67" + "\2\0\3\67\1\u014f\2\67\1\0\26\67\1\0\7\67" + + "\1\u014f\37\67\1\0\24\67\1\0\1\67\1\0\2\67" + "\2\0\6\67\1\0\26\67\1\0\25\67\1\u02f9\21\67" + + "\1\0\1\u02f9\23\67\1\0\1\67\1\0\2\67\2\0" + "\6\67\1\0\2\67\1\u07ba\23\67\1\0\13\67\1\u07ba" + + "\33\67\1\0\22\67\15\0\1\u0d92\62\0\1\u0d92\40\0" + "\1\132\10\0\1\132\1\141\4\132\1\0\2\132\1\141" + + "\1\132\4\141\1\132\1\0\1\132\1\0\3\132\1\0" + "\1\132\1\141\14\0\4\132\3\141\2\132\2\141\6\132" + + "\1\141\5\132\1\0\1\132\2\141\2\132\4\0\7\132" + "\1\141\2\132\1\0\3\141\1\132\3\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0d93\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0d94\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u0314\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0d95\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0d96\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0426\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0d97\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0554\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0317\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0d98\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u082e\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\15\0\1\u0d99\62\0\1\u0d99" + "\121\0\1\u0d9a\57\0\44\u0ab7\1\u0590\74\u0ab7\61\0\1\u0d9b" + + "\141\0\1\u0d9c\150\0\1\u0d9d\140\0\1\u0d9e\127\0\1\u0584" + "\151\0\1\u080a\126\0\1\u0578\152\0\1\u0abe\132\0\1\u0d9f" + + "\142\0\1\u0364\133\0\1\u0da0\143\0\1\u0da1\153\0\1\u0da2" + "\122\0\1\u0da3\2\0\1\u0580\132\0\1\u0da4\147\0\1\u0590" + + "\153\0\1\u0da5\125\0\1\u07fb\143\0\1\u0da6\130\0\1\u0364" + "\150\0\1\u0da7\131\0\1\u0da8\153\0\1\u07f2\124\0\1\u0811" + + "\75\0\1\u0da9\62\0\1\u0da9\40\0\1\132\10\0\1\u0817" + "\5\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u0169\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0daa\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\23\141\1\u0dab\3\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u098d\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0dac\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\5\141\1\u0dad\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\1\u0dae\5\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\1\u0daf\11\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u09f3\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\3\141\1\u0392\3\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u0db0\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u08a5\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0db1\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u0db2\3\141\1\u0db3\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0db4\1\u0db5" + "\17\141\1\u0dab\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0db6\11\141\1\u0c02\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0db7\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0db8\1\141\1\u0db9\13\141\1\u0dba\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0945\3\141" + + "\1\u0dbb\4\141\1\u0dbc\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0dbd\5\141\1\u0dbe\7\141\1\u0dbf\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0dc0\1\141\1\u0dc1" + "\1\141\1\u0dc2\14\141\1\u0269\1\141\1\u0269\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0dc3\11\141\1\u0dc4" + "\1\u0dc5\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u01fa" + + "\5\141\1\u0dc6\12\141\1\u0dc7\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0dc8\1\141\1\u0dc9\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0dca\1\141\1\u0dcb" + "\3\141\1\u04ce\1\141\1\u0dcc\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u0614\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u088f\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0392\1\141\1\u0dcd\11\141\1\u0dce\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0dcf\5\141\1\u0dd0" + + "\1\141\1\u0dd1\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0dd2\14\141\1\u0dd3\11\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0dd4\1\u0dd5\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0dd6\21\141\1\u0dd7\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0dd8\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u0dd9\12\141\1\u0dda" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0ddb\5\141" + "\1\u0ddc\1\141\1\u0ddd\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0dde\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0ddf\1\141\1\u0de0\5\141\1\u0de1\3\141" + "\1\u0386\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0de2" + + "\5\141\1\u0de3\7\141\1\u0de4\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0de5\3\141\1\u0de6\5\141\1\u0de7" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0de8" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0de9\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0dea\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0deb\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0830\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u0dec\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\11\141\1\u06ce\15\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0ded\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u063d\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0dee\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0def\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0df0\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u0269\11\141\1\u0b0e" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0df1" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u047b" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0df2" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0df3" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0df4" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0df5" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0b0e" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0df6" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0df7" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u03c6" + + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0b0d" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0841\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0df8\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0df9\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u0dfa\1\u0dfb\1\u0dfc" + "\1\u0dfd\1\u0dfe\1\u0dff\1\141\1\u0e00\1\u0e01\1\u0e02\1\u0e03" + + "\1\u0e04\2\141\1\u0e05\1\141\1\u0e06\1\u0e07\3\141\1\u0779" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0e08\6\141" + + "\1\u0e09\2\141\1\u0e0a\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0e0b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u0e0c\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0916\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0e0d\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0e0e\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u0e0f\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0e10\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0617\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0e11" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0e12\2\141\1\u0e13\1\u0e14\6\141\1\u0e15" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e16" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u047b" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0e17" + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03ec" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0e18" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e19" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e1a" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e1b" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e1c" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0e1d" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0e1e\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0dbd\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0e1f\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0e20\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u0e21\10\141\1\u0e22" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0b2f" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0e23" + "\11\141\1\u0392\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0e23\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0e24\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0e25\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\13\141\1\u0e26\13\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u0e27\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0e28\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u0e29\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0e2a\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0e2b\1\141\1\u0e2c\1\u08ed\3\141\1\u0411\2\141\1\u0b89" + "\4\141\1\u06e9\2\141\1\u08ef\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u0e2d\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\24\141\1\u0e2e\2\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u0e2f\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u0e30\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0e31\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\5\141\1\u0e32\21\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u0e33\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u0e34\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u0e35\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0e36\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0e37\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\24\141\1\u0e38\1\u0dd7\1\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0e39\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u0e3a\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0e3b\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0e3c\11\141\1\u0e3d\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0e3e\3\141\1\u040d\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0e3f\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0e40\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0e41\1\141\1\u0e42" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0627" + "\1\u0e43\4\141\1\u0e44\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0e45\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u0e46\21\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u0921\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u0e47\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0e48\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0e49\1\141\1\u0e4a\1\u0e4b\1\u0e4c\1\u0e4d\1\u076f" + "\1\u0e4e\1\u0e4f\1\141\1\u0e50\1\u0e51\1\u0e52\4\141\1\u0e53" + + "\1\u0e54\3\141\1\u0779\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0e55\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u0e56\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0e57\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0e58\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u0e59\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u0e5a\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0e5b\1\141\1\u0e5c\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0e5d\6\141\1\u0e5e\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0e5f\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0e60\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0e61\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0e62\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0e63\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u0e64\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u0e65\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u0e66\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\13\141\1\u0e67\1\u0610\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u0e68\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0e69\3\141\1\u0bad" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e6a" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03ee" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0e6b" + + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0e6c" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0bf6" + + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0e6d\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e6e\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u0e6f\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0e70\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u0e71\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0e72\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0e73\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u0e74\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0e75\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0e76\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0e77\3\141\1\u06ab\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0e78\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u05a8\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e79\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\1\u0e7a\6\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u08f6\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0e7b\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u0747\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u0e7c\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0e7d\6\141\1\u0e7e\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e7f\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u0e80\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\15\141\1\u0e81\11\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0e82\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0e83\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0e84\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u048b\1\141\1\u0627\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0e85\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0e85\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0e86\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0614\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\17\141\1\u0e87\7\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u044f\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u0e88\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\13\141\1\u0291\13\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u03d4\24\141\1\0\4\141\1\132\4\0\11\141" + "\1\u03d4\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0e89\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0e8a\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u0e8b\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0200\17\141\1\u03c1\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u05d1\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0e8c\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0e8d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0e8e\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0e8f\1\141\1\u0e90\1\u0e91\7\141\1\u05cb\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0e92\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0e93\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u0cd7\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0e94\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0e95\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0e96\1\u0e97\1\141\1\u0e98\1\141\1\u0e99\2\141" + "\1\u0e9a\1\141\1\u0e9b\4\141\1\u0e9c\1\u0e9d\1\u0e9e\1\u0e9f" + + "\1\141\1\u0ea0\2\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0ea1\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0ea2" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0ea3\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u0ea4\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0ea5\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0617" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ea6" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0ea7\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0ea8\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ea9\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0eaa\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0eab\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u05d2\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u0eac\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0ead\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u0eae\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u0eaf\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0bad\6\141\1\u0eb0" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0eb1" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0eb2" + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0eb3" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0667" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0eb4" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0eb5" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0eb6" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0eb7" + "\5\141\1\u0eb8\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u0eb9\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u0eba\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\141" + "\1\u0ebb\5\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0ebc\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0ebd\21\141\1\u0ebe\1\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0ebf\2\141\1\u0ec0\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0ec1\1\141\1\u0ec2\1\141" + "\1\u0ec3\7\141\1\u0386\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u040d\6\141\1\u0ec4\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0ec5\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0ec6\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0a26\7\141\1\u0ec7\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0ec8\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\6\141\1\u0ec9\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0eca\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0ecb\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0ecc\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0ecd\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\25\141\1\u0ece\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u06ce\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u0ecf\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0ed0\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0449\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0ed1\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0ed2\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u08cd\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u0ed3\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0ed4\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u0ed5\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u0ed6\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0ed7\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u08f4\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\15\141\1\u0ed8\11\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u0754\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u0ed9\5\141\1\u0eda\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0edb\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0edc\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u03b6\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u0edd\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0ede\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0edf\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u0ee0\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0ee1\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u0ee2\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0ee3\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u0ee4\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0ee5\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u0ee6\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u0be7\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u03a8\3\141\1\u0269\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0ee7\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0b78\25\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0ee8\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ee9\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0eea\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0afc\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0eeb\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0eec\6\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0821\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0eed\25\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0eee\6\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0eef\13\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ef0\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ef1\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u0ef2\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u09d3\1\u0ef3\1\u0ef4" + + "\1\u076f\1\141\1\u0ef5\1\141\1\u0ef6\1\141\1\u0ef7\4\141" + "\1\u0ef8\4\141\1\u0779\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u0ef9\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u0efa\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\26\141\1\u0779\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u0efb\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0efc\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0efd\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0efe\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0eff\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0461\4\141\1\u08a6\1\141\1\u0208\3\141\1\u0464\1\u020c" + "\1\141\1\u0753\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u08ab\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0f00" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u0f01\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0f02\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141" + + "\1\u0f03\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0f04\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0480\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u0f05\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u0f06\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0f07\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u0f08\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + "\1\u0f09\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u0f0a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0f0b\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0f0c\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0f0d\7\141\1\u0f0e\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u0f0f\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0f10\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\25\141\1\u0f11\1\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0f12\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u0f13\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0f14\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\5\141\1\u0f15\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u0f16\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0f17\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0f18\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0f19\1\u0f1a\11\141\1\u0f1b\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0f1c\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0f1d\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u0e17\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0f1e\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u05b7\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u0f1f\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u0f20\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0f21\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\25\141\1\u03cc\1\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0f22\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u087a\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0f23\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0f24\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0f25\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u0f26\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0f27\21\141\1\u0705\1\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0f28\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u040d\6\141\1\u0f29\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0f2a\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u0f2b\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0f2c\1\141\1\u0f2d" + "\1\141\1\u0f2e\3\141\1\u0f2f\6\141\1\u0f30\1\u0f31\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f32\1\u0f33" + "\2\141\1\u0f34\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0adb" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u0f35\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141" + + "\1\u0f36\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u0f37\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0f38\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f39" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0f3a\3\141" + + "\1\u0750\15\141\1\u0f3b\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0f3c\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0f3d\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0f3e\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u0b65\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0392\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u0f3f\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0ddf\3\141\1\u03c6\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u0f40\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0a26\11\141\1\u0dbd\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u05b7\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u0d17\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u097d\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u05d9\5\141\1\u0f41" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f42" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0f43\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f44\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f45\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f46\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0bb4\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0f47\2\141" + "\1\u09a4\1\u0f48\13\141\1\u0779\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0f49\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u044f\1\141\1\u08b8\21\141\1\u0d07\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0f4a\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u0f4b\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u08b8\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0afe\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0f4c\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0f4d\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0afe\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u0f4e\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u0f4f\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u0f50\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0f51\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0f52\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\17\141\1\u0f53\2\141\1\u03e7" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f54" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0f55" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f56" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0f57" + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0f58" + + "\15\141\1\u0f59\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0f5a\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u0f5b\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0f5c\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u0f5d\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0f5e\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u0f5f\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0f60\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u0eff\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0f61" + "\5\141\1\u0f62\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0b78\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u0f63\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u0f64\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\3\141" + + "\1\u0f65\3\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u0f66\4\141\1\u0f67\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0f68\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0f69\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\13\141\1\u0f6a\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0f6b\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0f6c\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u0200\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0f6d\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0f6e\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u0f6f\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0f70\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u06fe\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0f71\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0f72\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u0f73\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0f74\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0f75\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\24\141\1\u0f76\2\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\22\141\1\u0f77\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u0f78\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0f79\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0f7a\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0f7b\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u08f6\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\15\141\1\u04b7\11\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u0f7c\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u08cb\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0ba0\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\17\141\1\u08f6\7\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0f7d\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u01c7\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + "\1\u0485\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0f7e\20\141\1\u0f7f\2\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u0f80\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0f81\3\141\1\u0f82\1\141\1\u0f83\1\u0f84" + + "\1\u0f85\1\u0f86\1\141\1\u0f87\1\u0f88\3\141\1\u0f89\2\141" + "\1\u06ec\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u0f8a\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u0f8b\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0f8c" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u03f2\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0f8d\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0f8e\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u0f8f\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u0f90\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0f91\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0f92\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0f93\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0f94\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0f95\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0f96\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u05ba\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0f97\5\141\1\u0f98\6\141\1\u0e88" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0f99" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0f9a\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0f9b\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a05\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0f9c\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0f9d\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0f9e\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0f9f\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0fa0\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0fa1\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0393\1\u0fa2" + "\2\141\1\u0fa3\1\141\1\u0fa4\1\141\1\u0fa5\3\141\1\u0fa6" + + "\3\141\1\u0fa7\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u0fa8\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u0fa9\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u047b\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0faa\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0fab\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u0fac\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0cdf\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\15\141\1\u0fad\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0fae" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u03e6\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0faf\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0fb0\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u0ccf\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0fb1\5\141\1\u0fb2\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0fb3\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0fb4\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0fb5\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0750\3\141\1\u060f\2\141\1\u060f\13\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0fb6\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0fb7\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u09e4\3\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u0fb8\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0fb9\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u04f9\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0fba\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0fbb\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u0fbc\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0fbd\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0fbe\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0fbf\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u0fc0\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\11\141\1\u0fc1\15\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u0fc2\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0fc3\1\u0fc4\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0fc5\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u0cd7\12\141\1\u0768" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0fc6" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0fc7" + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0fc8" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03ec" + "\4\141\1\u0fc9\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0fca\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0fcb\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fcc" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0fcd" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fce" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0fcf" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0fd0" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0fd1" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0fd2" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0fd3" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0fd4" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0fd5" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fd6" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0fd7" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u06ce" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0fd8\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0fd9" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fda" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0fdb" + "\6\141\1\u0fdc\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u0617\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0fdd\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0fde\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u0fdf\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u0fe0\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u0fe1\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0fe2\11\141\1\u0cab\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u09c1\21\141\1\u0fe3\1\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0fe4\2\141\1\u0ec0\1\u0fe5\11\141" + "\1\u0fe6\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u020e" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0fe7\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0fe8\1\141" + + "\1\u0fe9\15\141\1\u0fea\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0feb\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u0fec\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u0fed\6\141\1\u0fee\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0fef\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u0cc5\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0ff0\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0ff1\7\141\1\u0269\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0ff2\6\141\1\u09d0" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0ff3" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0ff4" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ff5" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05d1" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0ff6" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ff7" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ff8" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0ff9" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0ffa\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0614\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ffb\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0ffc\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0ffd\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ea5\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0ffe\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0fff\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u069a\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1000\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1001\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0269" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1002" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0eb0" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u08cb" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1003" + + "\10\141\1\u1004\4\141\1\0\4\141\1\132\4\0\11\141" + "\1\u1005\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1006\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u1007\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1008\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0386\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u0a3e\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u06f4\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u0d0b\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1009\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u05d9\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u100a\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u100b\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u100c\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u100d\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u100e\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u100f\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1010\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1011\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1012\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0866\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0443\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u1013\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u1014\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1015\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1016\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0d27\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0bc5\11\141\1\u1017\7\141\1\u1018\1\141\1\u06ec\2\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u08a5\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0269" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1019\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u101a\7\141" + + "\1\u08ea\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u101b" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u101c" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u08ab" + "\1\u101d\1\u101e\1\141\1\u101f\2\141\1\u1020\3\141\1\u1021" + + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0a3e" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1022" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1023" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u03d4" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1024\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1025\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1026\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1027\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1028\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1029\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u102a\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u102b\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u102c\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0d32\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0d33\1\141\1\u0488\1\u102d\1\u0a6f" + + "\3\141\1\u048b\1\141\1\u0d35\3\141\1\u0464\1\u020c\7\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0455\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0d65\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u102e\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u102f\3\141" + "\1\u040d\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1030\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u1031\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u0920\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1032\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1033\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1034\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1035\7\141\1\u0d07\2\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\23\141\1\u1036\3\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1037\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u1038\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1039\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u09a6\1\141\1\u103a" + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u103b\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u103c\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u103d\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u103e\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u103f\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u1040\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1041\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1042\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u03ce\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1043\1\u1044\1\u1045\1\141" + + "\1\u1046\3\141\1\u1047\1\141\1\u1048\1\u1049\4\141\1\u104a" + "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u104b\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u104c\6\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u104d\2\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0e0c\1\141" + "\1\u044f\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u104e\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u104f\4\141\1\u1050\4\141\1\u1051\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1052\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u1053\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\21\141\1\u1054\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u104d\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1055\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1056\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1057\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\24\141\1\u03d4\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1058\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\13\141\1\u1059\13\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0d4a\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u105a\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u05d1\15\141\1\u105b\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u105c\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u105d\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\17\141\1\u0269\7\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u105e\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u105f\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u05a8\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03a8\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1060\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1061\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1062\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1063\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u01ef\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1064\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1065\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1066\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1067\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1068\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1069\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u106a\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u106b\3\141\1\u04c5\1\u106c\2\141" + + "\1\u060f\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u106d\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0f27\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u106e\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u106f\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1070\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u102f\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1071\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1072\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1073\7\141\1\u0d75\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1074\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1075\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\1\132\1\u1076\4\132\1\0" + "\2\132\1\u1076\1\132\4\u1076\1\132\1\0\1\132\1\0" + + "\3\132\1\0\1\132\1\u1076\14\0\4\132\3\u1076\2\132" + "\2\u1076\6\132\1\u1076\5\132\1\0\1\132\2\u1076\2\132" + + "\4\0\7\132\1\u1076\2\132\1\0\3\u1076\1\132\3\u1076" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1077" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1078" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1079" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u107a" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u03ce" + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u107b" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u107c" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u107d" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u107e" + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u107f" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\22\0\1\u1080\37\0\1\u1080\136\0\1\u1081\141\0\1\u0d88" + + "\141\0\1\u1082\140\0\1\u07af\146\0\1\u0d8b\3\0\1\u0d8c" + "\130\0\1\u07a7\147\0\1\u1083\130\0\1\u1084\135\0\1\u1085" + + "\60\0\2\67\1\0\1\67\1\0\2\67\2\0\6\67" + "\1\0\20\67\1\u02ee\5\67\1\0\34\67\1\u02ee\12\67" + + "\1\0\24\67\1\0\1\67\1\0\2\67\2\0\6\67" + "\1\0\26\67\1\0\25\67\1\u0117\21\67\1\0\1\u0117" + + "\23\67\1\0\1\67\1\0\2\67\2\0\4\67\1\u1086" + "\1\67\1\0\26\67\1\0\31\67\1\u1086\15\67\1\0" + + "\22\67\16\0\1\u1087\41\0\1\u1087\60\0\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1088\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u0317\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0426\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0169\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1089\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0216\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\16\0\1\u108a" + "\41\0\1\u108a\136\0\1\u108b\156\0\1\u0d9c\127\0\1\u0590" + + "\142\0\1\u0da0\143\0\1\u07fb\151\0\1\u0590\127\0\1\u058b" + "\132\0\1\u108c\110\0\1\u108d\177\0\1\u108e\133\0\1\u058e" + + "\140\0\1\u0da7\134\0\1\u108f\140\0\1\u0da0\76\0\1\u1090" + "\41\0\1\u1090\60\0\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1091\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\22\141\1\u0b78\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u1092\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\3\141\1\u1093\2\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\4\141\1\u1094\1\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\1\141" + + "\1\u0817\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1095\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\23\141\1\u1096\3\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1097\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1098\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u0db9\21\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u1099\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u109a" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u109b" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u109c" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0393" + + "\6\141\1\u109d\15\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u109e\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u109f\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u10a0\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u03d4\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\23\141\1\u10a1\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1051\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u10a2\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u10a3\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\24\141\1\u10a4\2\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u10a5\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u10a6\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u10a7\12\141\1\u10a8\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u10a9\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u10aa\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u10ab\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u10ac\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0393\1\141\1\u10ad\1\u10ae\1\141" + + "\1\u10af\1\u10b0\1\u109d\1\u10b1\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u10b2\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u10b3\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u10b4\10\141\1\u0753\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u10b5\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u10b6\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\13\141\1\u10b7\13\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u10b8\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0461\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u10b9\1\141\1\u0464\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u10ba\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0ed8\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u10bb\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u10bc\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u10bd\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u10be\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10bf\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10c0\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u06b2\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u10c1\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u10c2\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u10c3\3\141\1\u10c4\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u10c5\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u10c6\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10c7\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u10c8\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u10c9\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u10ca\11\141" + + "\1\u03ec\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u05ba\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u10cb\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u10cc\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u10cd\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u10ce\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u10cf\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u10d0\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u10d1\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u10d2\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u0916\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u10d3" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u10d4\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05d8\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u10d5\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\20\141\1\u10d6\6\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u10d7\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0b0e\1\141\1\u0b0d" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u10d8" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u10d9" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u10da" + + "\7\141\1\u10db\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u10dc\2\141\1\u10dd\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0b15\11\141\1\u10de\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u10df\21\141\1\u09f4\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u10e0\2\141\1\u10e1" + "\1\u10e2\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u0a46\13\141\1\u10e3\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u10e4\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u10e5\1\u10e6\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u040d\6\141\1\u10e7\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u10e8\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u10e9\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u10ea\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u10eb\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u10ec\1\u10ed\4\141" + + "\1\u0245\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u10ee\2\141\1\u10ef\3\141\1\u09d0\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u10f0\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u10f1\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u10f2\1\141\1\u0955\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0955\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u10f3\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u10f4\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u10f5\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u10f6\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u10f7\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u05d1\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\11\141\1\u0e13\15\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u10f8\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u10f9\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u10fa\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u1074\7\141\1\u10fb\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u10fc\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0392\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u10fd\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u10fe\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u10ff\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\23\141\1\u094d\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u098b\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1100\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u1101\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1102\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1103\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1104\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1105\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1106" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1107\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141" + "\1\u1108\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1109\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0895\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u110a\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u110b\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0c6e\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u110c\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u110d\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u110e\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u110f\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1110\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1111\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1112\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u1113\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1114\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1115\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1116\2\141\1\u1117\2\141\1\u1118\2\141\1\u1119" + + "\1\u111a\2\141\1\u111b\2\141\1\u111c\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u111d\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u111e\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u111f\1\141\1\u0464\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1120\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1121\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u1122\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u1123\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1124\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1125\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1126\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\25\141\1\u1127\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1128\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u1129\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u112a\20\141\1\u112b" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u112c" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u112d" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u112e" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u112f" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1130" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1131" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1132" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1133" + "\6\141\1\u1134\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1135\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0f27\4\141\1\u0e6a\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u1136\2\141\1\u0ec0\1\u1137\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1138\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0408\1\141\1\u1139\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u113a\3\141" + + "\1\u113b\6\141\1\u04d8\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u113c\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0cc5\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u10ec\2\141\1\u113d\2\141\1\u113e\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0830\11\141\1\u09d0\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u113f\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1140\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1141\11\141\1\u1142\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1143\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1144\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1145\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1146\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1147\2\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1148\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1149\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u114a\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u114b\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u114c\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u114d\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0820\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0291\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u114e\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u114f\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1150\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0901\3\141\1\u0bad\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1151\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1152\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u1153\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1154\13\141\1\u0269" + "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1155" + + "\17\141\1\u1156\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1157" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u0396\2\141\1\u0818\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1158\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\5\141\1\u1159\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u115a\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u0bad\6\141\1\u0eb0\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u115b\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u03d4\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u115c\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u115d\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u115e\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u115f\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u1160\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1161\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1162\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1163\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u03ce\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u1164\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1165\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1166\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0406\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1167\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u1168\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1169\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u116a\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u116b\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u04c5\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0945\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u116c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u116d" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0"; + private static final String ZZ_TRANS_PACKED_3 = "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0687\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u08ac\4\141\1\u116e" + + "\1\u060f\6\141\1\u0b89\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u116f\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u0d5d\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u1170\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u082f\4\141\1\u1171\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u1172\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u1133\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0b78\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1173\13\141\1\u1174\4\141\1\u1175\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1176\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u1177\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1178\1\141\1\u05d1" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1179" + + "\1\141\1\u03e4\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u117a\6\141\1\u08de\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0614\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u117b\2\141\1\u0d1d\5\141\1\u117c\4\141" + "\1\u117d\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u117e\1\u117f\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1180\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1181\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u1182\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0406" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u0392\7\141\1\u05d1\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u1183\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0cf6\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u0776\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u1184\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1185\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1186\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\15\141\1\u0b78\11\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u0f7e\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1187\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1188\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0400\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1189\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u118a\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u118b" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u118c\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u0c83\1\141\1\u0bad\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u1074\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u118d\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u118e\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u118f\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u03d4\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1190" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u075b" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1191" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1192" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u09a4" + + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1193" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\5\141\1\u1194\1\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0392" + "\5\141\1\u0610\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1195\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u1196\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1197\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u067f\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1198\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1199\3\141\1\u10c4\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u119a\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u119b\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u119c\12\141\1\u0768\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u119d\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\25\141\1\u119e\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\1\u119f\6\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u11a0\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\7\141\1\u11a1\2\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u11a2\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u074f\6\141\1\u11a3\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u11a4\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u06fc\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u11a5\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u0408\2\141\1\u0a3e\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\5\141\1\u11a6\1\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u11a7\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u11a8\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0916\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0916\7\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11a9\1\141" + "\1\u11aa\2\141\1\u11ab\1\141\1\u11ac\1\u11ad\3\141\1\u11ae" + + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u11a6" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u06b4" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11af" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0d55" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u11b0" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u11b1\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u11b2\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u11b3\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u11b4\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u11b5\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u11b6\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u11b7\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u11b8\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u06bb\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u11b9\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u11ba\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0a07\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u11bb\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u11bc\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u068c\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u11bd\3\141\1\u104a\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0832\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u0f1a\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u11be\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u03d4\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\15\141\1\u044f\11\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u0c81\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u11bf\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u06b2\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u11c0\21\141\1\u11c1\1\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u11c2\2\141\1\u0ec0\1\u11c3\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u11c4\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0cc4\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u11c5\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u11c6\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u11c7\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u11c8\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u11c9\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\20\141\1\u0c3b\6\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u11ca\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u03d2\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u11cb\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u11cc\2\141\1\u11cd\1\u11ce\1\u11cf\1\u09a4\1\u11d0" + "\1\u11d1\3\141\1\u020c\7\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u11d2\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u11d3\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u110d\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u11d4\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u11d5\1\u11d6\7\141\1\u11d7\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u11d8\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u11d9\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u11da\1\u11d2\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u11db\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u0408\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u11dc\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u11dd\21\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u11de\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\17\141\1\u11df\7\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u11e0\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u11e1\3\141\1\u11e2" + + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u05b7" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u11e3" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11e4" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03c8" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u11e5\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0f1b\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u11e6\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u11e7\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u11e8\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11e9\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u11ea\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0d65\7\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11eb\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u11ec\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u11b0\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u11ed\7\141" + + "\1\u11ee\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141" + "\1\u11ef\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u11f0" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u11f1\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u11f2\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0a34\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u11f3\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11f4\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u11f5\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u11f6\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0485\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u11f7\1\141" + "\1\u11f8\1\u1159\1\u0901\3\141\1\u11f9\7\141\1\u11fa\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u11fb\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u11fc\4\141" + + "\1\u11fd\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u11fe\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u05d5\2\141\1\u11ff\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u1200\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u1201\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1202\5\141\1\u0de7\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1203\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u1204\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u0c2c\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1205\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1206\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1207\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1208\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u1209\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u120a\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u120b\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\25\141\1\u120c\1\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u120d\17\141\1\u01ef\1\141" + + "\1\u120e\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u120f\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u090a" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1210\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u0988\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1211\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1212" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1213\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1214\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1215\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u1216\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u040d\6\141\1\u04d8\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1217\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u1218\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1219\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u121a\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u121b\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u04c5\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u121c\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u121d\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u121e\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u121f\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1220\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u1221\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1222\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1223\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1224\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u1225\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u1226\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1227\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1228\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u1229\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\24\141\1\u122a\2\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\17\141\1\u1212\7\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u122b\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u122c\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u122d\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u122e\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u122f\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1230\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1231\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1232\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1233\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u0c7f\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1234\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1235\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0c76\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1236\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\13\141\1\u03d4\13\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1237\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1238\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u03c0\11\141\1\u0610\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0c64\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0984\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u1239\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u123a\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u123b\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u123c\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u123d\4\141\1\u08f6\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u123e\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u123f\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u1240\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1241\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u027b\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u0dd3\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1242\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1243\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u1244\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u117b\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1245\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1246\12\141\1\u1247\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1248\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1249\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u10ec\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\15\141\1\u124a\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u124b\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u124c\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u124d\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u124e\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u124f\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1250\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u1251\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1252\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0a31\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1253" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1254\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1255\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1256\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0262\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1257\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1258\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1259\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u125a\3\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u125b\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u125c\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u11e7\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u125d\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u125e\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u125f\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1260\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1261\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\15\141\1\u1262\11\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u1263\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1264\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u1265\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1266\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u11e7\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u1267\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\23\141\1\u1268\3\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\13\141\1\u1269\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u126a\2\141\1\u126b\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u126c\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u126d\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u126e\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u126f\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u0946\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u09a6\6\141\1\u0fda\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0699\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1270\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\24\141\1\u1271\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u0204\4\141\1\u0724\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1272\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u0204\1\141\1\u1273" + "\1\u1274\1\141\1\u1275\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1276\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\23\141\1\u1277\3\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1278\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1279\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u127a\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u127b\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u127c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u127d\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0cd1" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u127e\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u127f\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1039\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1280\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1281\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u1282\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1283\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u044f\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1284\1\141\1\u0fdb" + "\6\141\1\u1285\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\15\141\1\u1286\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u1287\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u01fa\6\141\1\u0269\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1288\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1289\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u128a\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u128b\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u128c\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u031a\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0fcf\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u128d\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u1237\1\u01ec\3\141\1\u128e\1\141" + + "\1\u08a6\2\141\1\u128f\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u1290\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u0fec\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u10fa\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1291\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1292\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u1293\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\17\141\1\u1294\7\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u10fb\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u1295\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u1296\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u03f7\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1297\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1298\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1299\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u129a\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u129b\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u116c\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u129c\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u129d\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u129e\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u129f\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0cd7\5\141\1\u12a0\4\141\1\u0768\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u12a1\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u12a2\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u12a3\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u12a4\3\141\1\u119c" + + "\11\141\1\u12a5\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u12a6" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u12a7\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u12a8\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u12a9\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u12aa\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u12ab\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u12ac\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u12ad" + + "\2\141\1\u12ae\4\141\1\u12af\10\141\1\u12b0\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u12b1\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u12b2\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u12b3\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u12b4\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u031a\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\24\141\1\u069a\2\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u12b5\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u0480\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u12b6\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u12b7\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u12b8\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u12b9\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u12ba\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u12bb\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u12bc\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u12bd\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u12be\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u12bf\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u12c0\1\141\1\u12c1\5\141" + + "\1\u06ec\1\u12c2\1\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u0a0a\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u12c3\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u12c4" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u12c5\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u12c6\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u05d9\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u12c7\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u12c8\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u12c9\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u12ca\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u12cb\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u031a\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u12cc\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u12cd\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0269" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u08f5\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u12ce\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u12cf\3\141\1\u12d0" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u12d0" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u12d1\1\141" + + "\1\u12d2\1\141\1\u12d3\1\141\1\u12d4\1\141\1\u12d5\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u12d6\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u12d7\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u12d8\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u12d9\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u12da\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u12db\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u12dc\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u05b2\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u081f\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u12dd\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u12de\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u12df\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u12e0\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u12e1\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0480\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u12e2\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u12e3\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u12e4\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u12e5\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u12e6\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u12e7\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u12e8\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u081f\10\141\1\u12e9\5\141\1\u05b7\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u12ea\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u09a6\1\141" + "\1\u103a\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u12eb" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u12ec" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u12ed" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u12ee\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u12ef\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u12f0\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u12f1\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u12f2\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u06f4\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u12f3\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\20\141\1\u12f4\6\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0be4\1\141\1\u128c\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u12f5\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u12f6\1\141\1\u12f7\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u12f8\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u12f9\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0262\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u12fa\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u12fb\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u12fc\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u12fd\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0881\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u12fe\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u12ff\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1300\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1301\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1302\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u1303\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1304\15\141\1\u1305\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1306\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1307\1\141" + + "\1\u1308\1\141\1\u1309\1\141\1\u130a\2\141\1\u11d2\1\u130b" + "\5\141\1\u0e81\1\u130c\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\17\141\1\u130d\7\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u130e\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u03c6\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u130f\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1310\7\141\1\u0408\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1311\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1312\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u1313\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u1314\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1315\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1316\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1317" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1318\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1319" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u131a" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u131b\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u131c\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u131d\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u131e\3\141\1\u131f\3\141" + + "\1\u1320\2\141\1\u1321\5\141\1\u1322\1\u1323\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1324\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u05d3\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u044f\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1325\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u03d4\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1326\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u1327\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1328\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\17\141\1\u1329\7\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u132a\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u132b\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u132c\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\1\132\1\u0289\4\132\1\0\2\132\1\u0289\1\132\4\u0289" + + "\1\132\1\0\1\132\1\0\3\132\1\0\1\132\1\u0289" + "\14\0\4\132\3\u0289\2\132\2\u0289\6\132\1\u0289\5\132" + + "\1\0\1\132\2\u0289\2\132\4\0\7\132\1\u0289\2\132" + "\1\0\3\u0289\1\132\3\u0289\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u132d\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u132e\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u132f\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u1330\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u03d2\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u1331\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0cb8\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0406\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\17\141\1\u048b\7\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\17\0\1\u1332\152\0\1\u1333\206\0\1\u07af" + "\117\0\1\u1334\113\0\1\u1335\173\0\1\u1336\54\0\2\67" + + "\1\0\1\67\1\0\2\67\2\0\6\67\1\0\1\67" + "\1\u1337\24\67\1\0\16\67\1\u1337\30\67\1\0\22\67" + + "\17\0\1\u1338\121\0\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0312\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1339\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\17\0\1\u133a\205\0\1\u133b\142\0\1\u059a" + "\142\0\1\u133c\143\0\1\u07fb\127\0\1\u0598\75\0\1\u133d" + + "\121\0\1\132\10\0\6\141\1\0\11\141\1\0\1\u0749" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u133e\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\1\u133f\11\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\2\141\1\u1340" + "\1\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1341\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u1342\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1343\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1344\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1345\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1346\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1347\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0916\4\141\1\u1348\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1349\15\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u134a\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u134b\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u134c\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u134d\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u134e\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u134f\5\141\1\u1350\1\u1351" + + "\10\141\1\u1352\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1353\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1354\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1355\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1356\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\23\141\1\u1357\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1358\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1359\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\15\141\1\u135a\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u135b\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u135c\10\141\1\u135d\1\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u135e\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0dbf\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u135f\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1360\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\23\141\1\u0cdb\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\7\141\1\u05af\1\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\6\141\1\u0269\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u0dde\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1361\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1362\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u03a8\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1363\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u1364\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\6\141\1\u1365\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u1366\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1367" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u06f4" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u03e4" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1368" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0e63" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1369" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u136a" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u136b\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u136c\1\u136d\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u03d2\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u136e\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u04ec\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u136f\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\23\141\1\u1370\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1371\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1372\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1373" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u1374\4\141\1\u136d\1\141\1\u1375\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1376\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1377\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1371\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u090a\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1378\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1379\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u137a\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0d27\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u137b\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u137c\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0945\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0e17\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u137d\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u137e\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u137f\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1380\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0a07\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1381\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1382\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1383\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1384\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1385\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u0c40\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1386\1\u1387\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u120f\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1388\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u1389\12\141\1\u0768\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u138a\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u138b\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u067f\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u138c\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u138d\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u138e\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u119c\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u138f\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u1390\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u1391\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1392\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1393\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0a31\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0262\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1169\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1394\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u1395\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u10f4\21\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1396\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u1397\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1398\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1399\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u139a\1\141\1\u139b\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u090e\1\141\1\u139c\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u139d\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u139e\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u139f\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u13a0\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\24\141\1\u13a1\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0d55\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\26\141\1\u13a2\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u13a3\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u13a4\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u040f\1\141\1\u074f\4\141\1\u13a5\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u13a6\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u13a7\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u13a8\2\141\1\u13a9\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u06e9\7\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0bcc\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0bcd\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u13aa\25\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13ab\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u13ac\15\141\1\u13ad" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1271" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u13ae" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13af" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1391\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u13b0\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u06b2\1\141" + + "\1\u13b1\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u13b2" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13b3" + + "\1\141\1\u06b2\3\141\1\u0945\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u13b4\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u06b2\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u13b5\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u13b6\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u13b7\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u13b8\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u13b9\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u13ba\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u13bb\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u13bc\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u13bd\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u0993\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u13be\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u13bf\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\20\141\1\u13c0\6\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u13c1\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u13c2\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u13c3\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1205\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u13c4\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u13c5\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u13c6\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u13c7\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u13c8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\11\141\1\u13c9\15\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u03a8\2\141\1\u13ca\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u13cb\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u13cc\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u13cd\1\141\1\u0cca\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u13ce\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u13cf\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u13d0\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u13d1\4\141\1\u13d2" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u13d3" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u046c\15\141" + "\1\u03ec\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u13d4\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u13d5\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u13d6\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u13d7" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u039f" + + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u13d8" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u13d9" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u13da" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u13db" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u13dc" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u0f38\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u046a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u13dc\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u13dd\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u13de\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u13df\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u046a\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u13e0\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u13e1\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u13e2\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u13e3\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u13e4\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u13e5\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u13e6\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u13e7\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u1023\21\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u13e8" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u13e9\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u13ea" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u08fc\3\141\1\u08ff" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u13eb\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u08c8\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u08ca" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0bad\1\141" + + "\1\u063d\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141" + "\1\u13ec\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u13ed\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141" + "\1\u13ee\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u13ef\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u13f0\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u13f1\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u13f2\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u13f3\15\141\1\u13f4\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u13f5\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u13f6\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u1023\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u13f7\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u13f8\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u13f9" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u13fa\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u13fb" + + "\1\141\1\u13fc\21\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u0d02\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u09d0\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u0ba8\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u13fd\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u13fe\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u0e88\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\13\141\1\u03c6\13\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u13ff\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u1400\7\141\1\u1401\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1402\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1403\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1404\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1405\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u1406\2\141\1\u120e\2\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1407\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u10c4\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u1408\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0d1d\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u05d2\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u1409\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u140a\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u140b\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u140c\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u140d\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u140e\21\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u140f\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u1410\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1411\3\141\1\u1412\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1413\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u1414\11\141\1\u1415\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u1416\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1417\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1418\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1419\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u141a\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0291\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u0392\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0f11\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u141b\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u141c\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u141d\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u0b1e\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u141e\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u03a8\1\141\1\u05d8\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\1\u1391\6\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u141f\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u119e\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1420\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1421\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1422\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u1423\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u0760\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1424\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1425\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1426\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1427\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\4\141\1\u1428" + + "\4\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1429\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u142a\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u12d7\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u142b\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\4\141" + "\1\u0269\2\141\1\132\10\0\6\141\1\0\10\141\1\u03e7" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u08f6\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u142c\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u142d" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u142e" + "\11\141\1\u142f\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1430\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1431\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1432\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u08f6\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u03ec\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0a31\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1433" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1434\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1271\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u1435\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1436\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1437\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1438\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1439\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u0bed\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u143a\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u143b\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u143c\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u143d\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u143e\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u143f\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1440\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1441\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1442\3\141\1\u1443\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1444\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1445\1\141\1\u116d" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1446\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1447\1\u1448" + + "\1\141\1\u1449\1\u05b0\3\141\1\u144a\1\141\1\u144b\1\u144c" + "\1\u0610\2\141\1\u144d\1\141\1\u144e\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\13\141\1\u1023\13\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u144f\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\24\141\1\u1450\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\24\141\1\u0df3\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1451\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u1452\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1453\5\141\1\u0ddc\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u12f6\1\141\1\u1454" + + "\10\141\1\u1455\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1456\3\141\1\u1457\6\141\1\u04d8\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1458\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u08ce\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u09a3\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u11e7\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u0318\5\141\1\u1459" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u145a\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u145b\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u145c\5\141\1\u145d" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u145e" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u145f\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u11df\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0f05\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0610\12\141\1\u090a" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1460" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u09a9" + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u03c8" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0610" + "\12\141\1\u1461\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1462\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u0dc7\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1463\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1464\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u1465\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1466\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1467\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1468\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1469\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u146a\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u0b78\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u146b\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u146c\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u146d\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u04f9\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u146e\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + + "\1\u0d07\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u146f\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u03a8\1\141\1\u05d8\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u046a\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u1470\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1471\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1472\4\141\1\u1473\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u05d5\2\141\1\u1474\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1475\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1476\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1477\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1478\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1479\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u147a\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u147b\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u147c\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u147d\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u147e\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u147f\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1480\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1481\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1482\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1483\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u1484\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1485\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1486\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0667\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u1487\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0b20\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u0b91\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u05ea\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1488\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u0916\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u11af\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1489\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u148a\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u148b\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u148c\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\15\141\1\u148d\11\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u0614\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u148e\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\5\141" + "\1\u0269\3\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\5\141\1\u0269\1\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0cf6\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u0269\22\141\1\u148f\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\25\141\1\u0639\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1490\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1491\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\11\141\1\u1492\15\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u1493\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u0bca\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1494\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u1495\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1496\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1497\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1498\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u1499\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u149a\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u149b\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u149c\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0868\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u149d\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u149e\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u11af\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u149f\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u14a0\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u14a1\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u14a2\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u08a6\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0971\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u14a3\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u0a1d\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u14a4\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u14a5\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\1\u0269\4\141\1\u0269\1\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0411\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u14a6\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u14a7\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u14a8\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\21\141\1\u1234\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u0afc\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u14a9\15\141\1\u14aa\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u14ab\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u14ac\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u14ad\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u047b\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u14ae\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u14af\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u14b0\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u14b1\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u14b2\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u14b3\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u14b4\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u14b5\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u14b6\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0d37\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u04c5\1\u06bb\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u14b7\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u14b8\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u14b9\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u11a8\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0411\10\141\1\u097d\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u14ba\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u14bb\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\23\141\1\u1466\3\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u14bc\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\1\u14bd\6\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u14be\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u14bf\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u14c0\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u14c1\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u14c2\5\141\1\u0455\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14c3\6\141" + + "\1\u09bd\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u14c4\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u14c5" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\3\141\1\u14c6\3\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u14c7" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0a05" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14c8" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14c9" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u14ca" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0397" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14cb" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u14cc" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u14cd" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u14ce" + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u14cf\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u14d0\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14d1\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u09e4\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\15\141\1\u14d2\11\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u14d3\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0ddf\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u09e2\6\141\1\u14d4" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u14d5" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0e12" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u14d6" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u14d7" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u14d8\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u14d9\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u14da\11\141\1\u12db" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14db" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u14dc" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u14dd\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u14de\6\141" + + "\1\u0fdc\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u14df\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u14e0\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u14e1\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u14e2\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u14e3\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u14e4" + + "\7\141\1\u1284\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u06b2\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u14e5\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u14e6\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u14e7\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u14e8\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\23\141\1\u03ce\3\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u14e9\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u14ea\11\141\1\u0dda\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u14eb\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u08f6\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u14ec\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u14ed\4\141\1\u14ee\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0fd5\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u14ef\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u14f0\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u14f1\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u14f2\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u14f3\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u14f4\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u14f5\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u14f6\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u14f7\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u063d\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u0971\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u14f8\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u14f9\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u14fa\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u08f7\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u06a1\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u14fb\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u14fc\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u0a75\1\u14fd\2\141\1\u14fe\1\141\1\u14ff\1\u1500" + "\2\141\1\u0464\3\141\1\u1501\1\141\1\u1502\1\u1503\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1504\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1505\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1506\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1507\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\20\141\1\u1508\6\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u1509\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u150a\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u150b\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u150c\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u150d\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u150e\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u150f\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1510\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\23\141\1\u1511\3\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u1512\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1513\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1514\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0ccf" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1515\4\141\1\u060f\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0681\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u047b\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u1516\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0a1d\1\141\1\u1517\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1518\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1519\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u151a\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u151b\6\141\1\u151c\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u151d\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u151e\1\141\1\u151f" + "\1\u1520\1\u1521\1\141\1\u1522\1\u1523\2\141\1\u0464\1\u020c" + + "\1\141\1\u1524\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1525\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1526\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1527" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1528\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1529\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u152a" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u152b" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u152c\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u152d\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u152e\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u152f\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1530\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u1531\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1532\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\25\141\1\u1533\1\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1534\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1535\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1536\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1537\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u1538\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1539\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u153a\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u153b\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u153c"; + private static final String ZZ_TRANS_PACKED_4 = "\1\141\1\u0687\5\141\1\u08a6\3\141\1\u153d\5\141\1\u153e" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u153f\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1540\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ada\7\141" + "\1\u1541\1\141\1\u05b7\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u1542\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u1543\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1544\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1545\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u1546\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u0920\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1547\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1548\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u03a8\2\141\1\u1549\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u05e4\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u154a\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u154b\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u0dbd\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u154c\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u154d\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u154e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u154f\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u03ce" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141" + + "\1\u1550\6\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1551\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u1552\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u10b7\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0820\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1553\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1554\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1555\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u1556\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1557\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1558\17\141\1\u1559\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u155a\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u155b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u155c\21\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u155d\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u155e\3\141\1\u155f\1\u1560\1\141\1\u1561\2\141" + + "\1\u1013\1\141\1\u1562\1\u1563\2\141\1\u1564\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1300\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u1565\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\20\141\1\u03d4\6\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1566\1\141\1\u1567\2\141\1\u155c" + "\1\141\1\u1568\1\141\1\u1569\1\u156a\2\141\1\u156b\1\141" + + "\1\u156c\1\141\1\u156d\1\u156e\1\141\1\u08db\2\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u156f\5\141\1\u1469\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1570\13\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0408\6\141" + + "\1\u090a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1571" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1572" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1573" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1574\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1575\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1576\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1577\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1578\1\u1579\3\141\1\u157a" + + "\3\141\1\u157b\10\141\1\u157c\1\141\1\u08db\2\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u157d\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u157e\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u157f\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\21\141\1\u0916\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u1580\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u09e7\1\u08ab\1\u1581\1\u0ce4" + "\3\141\1\u1582\3\141\1\u1583\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u1584\1\u045b\1\141\1\u11e9\1\u1585\1\u075e" + "\1\u0969\1\141\1\u1586\1\141\1\u1587\1\u1321\1\u1588\1\141" + + "\1\u05d8\2\141\1\u1589\1\u0e8f\2\141\1\u0971\1\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u158a\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u158b\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u158c\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u158d\3\141\1\u158e\1\141" + + "\1\u158f\1\141\1\u1590\1\141\1\u05cb\2\141\1\u1591\1\u1592" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1593" + + "\5\141\1\u1594\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1595\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u0df4\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1596\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1597\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1598\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1596\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1599\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u0ed9\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u159a\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u159b" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u046a\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u159c\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u0f25\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u159d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u159e\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0269\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u159f\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\23\141\1\u15a0\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u15a1" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u15a2\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u15a3\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u15a4\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\65\0\1\u15a5\140\0\1\u1082\133\0\1\u15a6\152\0" + "\1\u15a7\46\0\2\67\1\0\1\67\1\0\2\67\2\0" + + "\6\67\1\0\26\67\1\0\15\67\1\u0117\23\67\1\u0117" + "\5\67\1\0\22\67\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u0d98" + + "\1\0\7\141\65\0\1\u0ab7\133\0\1\u15a8\60\0\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15a9\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\3\141" + + "\1\u0817\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\1\141\1\u081b\4\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u15aa\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u15ab\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u15ac\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0d08\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u15ad\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u0e92\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u03ec\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u15ae\1\141\1\u15af\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u0a1d\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u15b0\1\141\1\u06e9" + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15b1" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15b2" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15b3" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u15b4" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u03c6\14\141" + + "\1\u15b5\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u15b6\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u0405\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u15b7" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15b8" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15b9" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15ba" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u15bb" + "\1\141\1\u15bc\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u15bd\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u15be\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u15bf\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u15c0\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u15c1\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u15c2\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u15c3\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u15c4\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u15c5\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u15c6" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u15c7\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\11\141\1\u15c8\15\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u0b89\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u15c9\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\u15ca" + + "\6\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u0f6e\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + "\1\u15cb\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u15cc\6\141\1\u15cd\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u15ce\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u08f6\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141" + "\1\u15cf\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u15d0" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u031a" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u15cc" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\1\141\1\u15d1\5\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15c9" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u15d2" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u15d3" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15d4\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u15d5\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u14bc\1\141\1\u15d6\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15d7\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u15d8\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u15d9\7\141\1\u0627" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15da" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u15db" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0cca" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15dc" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u15dd" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u15de\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15df\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u15e0\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u14bc\10\141" + "\1\u063d\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u15e1\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u15e2\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u15e3\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u15e4\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u15e5" + + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u15e6" + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u15e7" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u15e8\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15e9\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0bf1\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15ea\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u15eb\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15ec\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u08ea\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u08ed\3\141" + + "\1\u0411\12\141\1\u08ef\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u15ed\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u15ee\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\15\141\1\u0971\11\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u15ef\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u0840\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u0d94\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u15f0\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u15f1\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u15f2\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u15f3" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u15f4\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15f5\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15f6\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u15f7\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u15f8\1\141\1\u15f9" + + "\1\u15fa\1\141\1\u09a4\1\141\1\u15fb\1\u15fc\1\141\1\u15fd" + "\1\u15fc\5\141\1\u15fe\1\u15ff\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0e23\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1600\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1601\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1207\3\141\1\u1602\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1603\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1604\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1605\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1606\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u0239\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1607\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1608\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u1609\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u160a\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u160b" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u160c" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u160d" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u160e" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u160f" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1610" + + "\11\141\1\u1611\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1612\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1613\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1614" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1615\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1616\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u1617\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1618\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1619\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u15e9" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1615" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u161a\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u161b\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u161c\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u161d\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u161e\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u161f\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u1620\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u06f4\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0408\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\13\141\1\u1621\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u1622\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1623\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1624\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1625\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1626\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u1627\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u1628\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1629\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u162a" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u0694\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u162b\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u162c\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u162d" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0610" + "\11\141\1\u0779\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u162e\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u13dc\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u162f" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u11a7" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1630" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1631\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1632\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1633\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1634\1\u1635\3\141" + + "\1\u1274\1\u0f85\1\u1636\2\141\1\u1637\1\u13ad\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1638\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u040d\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u14b2\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\15\141\1\u0de7\11\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u03d4\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1639\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u163a\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u06ee\2\141\1\u163b\2\141\1\u163c" + "\1\u163d\2\141\1\u163e\3\141\1\u163f\1\u1640\7\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1641\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1642\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1643\5\141\1\u1644" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u03cd\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1645\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0e8b\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1646\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u03d4\20\141\1\u08f6\3\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1647\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1648\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1649\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u164a\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0e8b\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u164b\15\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u164c\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u164d\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u164e\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u164f\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1650\11\141\1\u1651" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1652\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1653\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1654\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1655\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0eb4\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u117c\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u1656\21\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1657\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1658\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u1659\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u0d27\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0916\4\141\1\u0269\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u044f\21\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u165a\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u165b\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u12ec\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u165c\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u073d\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0269\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u165d\21\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0b78\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u10d7\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u165e\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u165f\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u0a3e\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1660\11\141\1\u1661\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u1662\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u1663\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u038d\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0eb4\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u1664\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1665\1\141\1\u1666" + + "\14\141\1\u1667\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1668\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u075e\21\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u074f\2\141\1\u045c\12\141\1\u0fd6\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1669\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u166a\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u166b\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u166c\12\141\1\u0d02" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u0eb9\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u166d\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u166e\1\141" + "\1\u166f\7\141\1\u0d02\2\141\1\u04f9\2\141\1\u1670\2\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1671\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u04f9\21\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1672\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1673\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1674\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u090a\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u119c\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1675\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u1676\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1677\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1678\4\141\1\u0a3a\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1679\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u167a\5\141\1\u167b\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u167c\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u167d\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u167e\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u167f\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1680\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u157b\15\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u0fcc\15\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1681\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u08cb\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u1682\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0b8b\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1683\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1684\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1685\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1686\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1687\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1688\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\20\141\1\u1689\6\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u168a\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u168b\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u168c\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u168d\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u168e\10\141\1\u0269\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u168f\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1690\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u09e1\1\141\1\u1691\1\141" + + "\1\u1692\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1693\7\141\1\u0b98\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1694\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1695\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1696\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1697\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1698\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u0392\3\141\1\u1699\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u169a\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u169b\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u169c\4\141\1\u0a3a\4\141\1\u169d" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u169e\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u169f\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u16a0\11\141\1\u03ec" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16a1" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u16a2" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0b1b" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u065d" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u16a3" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0993\6\141" + + "\1\u16a4\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u16a5\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u16a6\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u16a7\3\141\1\u16a8\1\u16a9\1\u16aa\2\141\1\u16ab\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0f2a\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16ac\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0c80\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16ad\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16ae\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u05cb\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u16af\2\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u03e4\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u16b0\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u16b1\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u16b2\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u16b3\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u16b4\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u145b\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u16b5\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u16b6\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\25\141\1\u16b7\1\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u16b8\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u16b9\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u16ba\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u16bb\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u08a5\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u16bc\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u16bd\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u16be\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u16bf\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u16c0" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u16c1\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u16c2\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u16c3\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u16c4\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u16c5\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u16c6\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u16c7\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u16c8\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u16c9\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u16ca\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u0d33\1\u16cb\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u04f9\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u16cc\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u16cd\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u0383\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\23\141\1\u131a\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\15\141\1\u16ce\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u16cf" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u0a31\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u16d0\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u16d1\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0269" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u16d2" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u16d3\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u16d4\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u16d5\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u16d6\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u16d7\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u16d8\15\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u16d9\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0245\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u16da\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u16db\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u16dc\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u12a9\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u16dd\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u16de\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u16df\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u0b05\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u16e0\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u0610\5\141\1\u01ef" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16e1" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u16e2" + + "\5\141\1\u16e3\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\23\141\1\u16e4\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u16e5\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u16e6\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u16e7" + + "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u16e8" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16e9" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u16ea" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0bf1" + + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u16eb\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u122a\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16ec\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u16ed\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u16ee\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u16ef\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u16f0\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u0c3d\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u16f1\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u0681\7\141\1\u05cb\2\141\1\u0fe0\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0c71\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u04ce\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u16f2\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u16f3\6\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16f4\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u16f5\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u03ce\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u16f6\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u16f7\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u16f8\15\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u16f9\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16fa\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u16fb\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\1\u03a4\6\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u16fc\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u16fd\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u16fe\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u16ff\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1700\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1701\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u1702\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1703\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1704\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1705\7\141\1\u0fd6\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1706\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u0916\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1707\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1708\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1284\1\141\1\u1709\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u170a\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u170b\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1399\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u170c\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u170d\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u0fec\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u170e\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u127f\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u170f\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1710\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1711\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u0945\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u12fc\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1712\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u1713\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u06ec\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u1190\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u153c\1\141\1\u1714\5\141" + + "\1\u1715\3\141\1\u0610\5\141\1\u1716\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1717\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1718\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u1719\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u171a\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u171b\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u171c\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u171d\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u0b17\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u171e\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\15\141\1\u171f\11\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1720\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1721\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u1722\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1723\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0e0d\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1724\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\23\141\1\u1725\3\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1726\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1727\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1728\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u041a\3\141\1\u0174\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u1729\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u172a\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u172b\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u172c\14\141\1\u172d\6\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u172e\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\7\141\1\u172f\2\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1730\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\24\141\1\u1213\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1731\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u043e\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1732\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1733\23\141\1\u1734\2\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u1735\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1736\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u0e8b\21\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u0245\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u150f\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1186\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1737\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1738\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\20\141\1\u1739\6\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u173a\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u173b\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u03ec\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u173c\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u173d\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u173e\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\17\141\1\u173f\7\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1740\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1741\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1742\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1743\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u1744\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u01ef\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0754\15\141\1\u1745\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1746\1\141\1\u1747\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1748\3\141\1\u040d" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0b8d" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1749" + + "\1\u174a\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + "\1\u0e0d\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u174b\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u0c83\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u174c" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1274" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u174d" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u174e" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u174f" + + "\4\141\1\u1750\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0614\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u0174\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u1751\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1752\3\141\1\u1753\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1754\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u1755\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1756\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1757\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u1758\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1759\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u175a\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u175b" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u047b\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u175c" + + "\1\141\1\u0687\5\141\1\u08a6\3\141\1\u153d\5\141\1\u153e" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u175d" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0614\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0606" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u175e" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u175f" + "\2\141\1\u1760\7\141\1\u05cb\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1761\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1762\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u0e0d\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u046c\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1763\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u0b78\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u0f38\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1207\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1764\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1218\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0c3b\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0821\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1765\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1766\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\13\141\1\u1767\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1768\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1769\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u176a\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u09a2\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u176b\3\141\1\u05b7\2\141\1\u05b7\6\141\1\u176c\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u176d\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u176e\1\0\1\u05b7\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1434" + "\1\u176b\2\141\1\u08ae\1\u05b7\1\141\1\u176f\1\u1770\6\141" + + "\1\u1771\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1772\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u1773\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1774\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1775\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u1776\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1777\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u090a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u152c\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + "\1\u0e7e\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1778\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1779\7\141\1\u177a\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u177b\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u177c\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u177d\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u177e\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u110d\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u177f\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1780\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1781\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1782\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + "\1\u1783\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1784\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1785\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1786" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1787\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1788\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1789\15\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u178a\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u178b\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u178c\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u178d\13\141" + "\1\u047b\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u12fd\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u178e\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u178f\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1790\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u1791\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1792" + + "\5\141\1\u1793\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1794\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u1795\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1787" + "\12\141\1\u1796\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1797\1\u1798\1\u1799\2\141\1\u0396\4\141\1\u179a\1\u179b" + "\6\141\1\u179c\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\3\141\1\u0aec\3\141\1\132\10\0\6\141\1\0" + "\10\141\1\u179d\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u179e\21\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u179f\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u17a0\2\141\1\u17a1\1\u064e\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u040d\6\141\1\u0cc4\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u17a2\21\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u05d1\12\141" + "\1\u044f\4\141\1\u045f\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\26\141\1\u06b5\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u06b2\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u17a3\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u05d1\4\141\1\u17a4\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u04ce\11\141\1\u044f\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u06b5\5\141\1\u17a5\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0ada\1\141" + + "\1\u17a6\1\141\1\u17a7\10\141\1\u17a8\1\u17a9\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u05a8\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u17aa\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u17ab\4\141\1\u17ac\10\141" + + "\1\u17ad\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u17ae\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u17af\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u17b0\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u17b1\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u17b2\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u17b3\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u17b4" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u17b5\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u17b6" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17b7" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u13ee" + + "\1\u17b8\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u13ee\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u17b9\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u17ba\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u17bb\2\141\1\u06ab\1\u17bc\1\u11b0\4\141\1\u05cb\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17bd\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17be\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u17bf\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u17c0\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u17c1\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u17c2\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u17c3\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u17c4\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u107d\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\56\0\1\u17c5\3\0\1\u17c6\157\0" + "\1\u17c7\117\0\1\u17c8\146\0\1\u0590\5\0\1\u07f1\44\0" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17c9" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u17ca\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u17cb\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0f01\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u17cc\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u17cd\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u17ce\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0915\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u17cf\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u17d0\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u17d1\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u1355\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u17d2\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u03c6\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\25\141\1\u0fd6\1\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u17d3\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u17d4\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u040f\1\u17d5\1\u17d6\1\u17d7" + "\1\141\1\u17d8\1\141\1\u17d9\1\141\1\u17da\6\141\1\u17db" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17dc" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17dd" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17de" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u047b" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u103b" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u17df" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u17e0" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17e1" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1300" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u17e2" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1300" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u17e3" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0ed9" + "\10\141\1\u17e4\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u17e5\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u17e6\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\1\u17e7" + "\6\141\1\132\10\0\6\141\1\0\10\141\1\u17e8\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0393\5\141\1\u17e9\1\u0f85\3\141\1\u17ea\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u17eb\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u15d5\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0cb8\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u17ec\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u17ed\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u17ee\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\2\141\1\u0269\4\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u136c\21\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u17ef\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u17f0\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u17f1\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u17f2\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u17f3\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u17f4\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u17f5" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u152c" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u17f6" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u17f7" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u17f8" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u17f9" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u17fa" + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u17fb" + + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0245" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u17fc\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u17fd\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u17fe\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u17ff\3\141\1\u149b" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1800\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1801\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u103a\14\141\1\u1802" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1803\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u095f\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u0245\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1804\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1805\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u1806\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u065d\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1598\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u14e7\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1807\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u1808\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1809\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u180a\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u180b\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u180c\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0945\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0dd2\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u180d\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u180e\15\141\1\u05ba\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u180f\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u102f\12\141\1\u1810\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1811\3\141\1\u0dc8\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u1812\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0eb4\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u0c30\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1813\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1814\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1815\12\141\1\u1816" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1817" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1818\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1819\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u0b89\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1608\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1207\11\141\1\u1061\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u181a\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u181b\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u181c\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u181d\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u181e\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u181f\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1820\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1821\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u181d\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1822\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\24\141\1\u1823\2\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1824\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1825\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1826\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u15e9\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1827\1\141\1\u1828\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1829\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u182a\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u182b\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1580\11\141\1\u1823\2\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u182c\21\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u182d\3\141" + "\1\u182e\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u182f\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1830\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u1831\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1832\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u03ce\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1833\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1834\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1835" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1836" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1837\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1838\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1839\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u097a\1\141" + + "\1\u183a\2\141\1\u183b\4\141\1\u183c\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u0385\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u14b2\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u11a7\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1636\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u183d\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u11a7\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u183e\11\141\1\u04a4\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u183f\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1840\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1841\1\141\1\u06b7" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1633" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1842\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u158b\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1843\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1844\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1845\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1846\1\u1847\6\141" + + "\1\u1848\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1849\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u184a\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u12d7\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u184b\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u184c" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u184d" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u184e" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u184f" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1850" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1492\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1851\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1852\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u13aa\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u1853\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1854\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u11a8\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u14d4\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1855\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\17\141\1\u03e7\7\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1856\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u1857\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u1858\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1859\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\5\141\1\u185a\21\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u185b\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u01c7\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u165c\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\13\141\1\u185c\13\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u185d\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u185e\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u185f\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u0245\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u06ee\1\u1860\20\141\1\u1861\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1862\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1863\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1864\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u10cf\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1865\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1866\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u1867\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1868\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u1869\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u186a\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u186b\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u186c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u186d\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u186e" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u186f\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1870\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1871\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1872\1\u065b\1\141\1\u0901\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1873\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1874\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u1875" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1876\6\141\1\u1877\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1878\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1879\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u187a" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141" + + "\1\u187b\6\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u187c\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141" + + "\1\u187d\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u187e\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u187f" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1880" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0cd7\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1881\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1882\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1883\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u14e7\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1884\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1885\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1886\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u1887\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u1888\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1889\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u188a\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u103a\21\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u188b\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u188c\4\141\1\u060f\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u188d\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u188e\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u188f\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1890\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\24\141\1\u167e\2\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u1891\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1892\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u1893\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u10aa\1\141\1\u063d\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u1894\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\24\141\1\u1895\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u046a\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0411\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1896\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u046a\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u0921\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1897\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1898\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u0b5e\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1899\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u189a\5\141" + "\1\u046a\3\141\1\u189b\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u0836\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u189c\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u189d\5\141\1\u189e\2\141\1\u189f\1\u18a0" + "\2\141\1\u18a1\2\141\1\u18a2\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u18a3\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u0d4a\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u18a4\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u0945\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u18a5\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u18a6\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u18a7" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0393" + "\1\u0a3a\1\141\1\u155c\1\141\1\u12ec\1\141\1\u18a8\10\141" + + "\1\u18a9\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u18aa\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0a66" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u075e" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u0b24" + + "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18ab" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u18ac\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u18ad\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u18ae\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u18af\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u10d6\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u18b0\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u18b1\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u18b2\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u18b3\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u18b4\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u18b5\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u18b6\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u18b7\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u18b8\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u18b9\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u16c4\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u18ba\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u18bb\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u18bc\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u18bd\3\141\1\u18be\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u18bf\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u18c0\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u18c1\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u06f4\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u18c2\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u18c3\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u18c4\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u18c5\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u18c6\4\141\1\u18c7\7\141" + + "\1\u18c8\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u03c0\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u18c9\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u18ca\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141" + + "\1\u18cb\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18cc" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u18cd" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u18ce" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u18cf\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u18d0\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u18d1\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u0c40\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u18d2\22\141\1\u1213\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u18d3\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u18d4\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u18d5\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u18d6\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u18d7\1\u18d8\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u18d9\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u18da\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u18db\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u18dc\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u18dd\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u18de\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u18df\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u18e0\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u18e1\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u18e2\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u0d73\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u18e3\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0cf6\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u0c41\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u18e4\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u18e5\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u18e6\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + + "\1\u18e7\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u070e\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u18e8\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1411" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u18e9" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u18ea" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u18eb" + + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u18ec" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18ed" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u18ee" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u18ef" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u18f0" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u18f1" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u18f2\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u14e4\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0687\5\141\1\u08a6" + "\3\141\1\u0610\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u18f3\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u18f4\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u0b65\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1485\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u18f5\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u175c\1\141\1\u18f6\5\141\1\u1715\3\141\1\u0610\5\141" + + "\1\u1716\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u0fec" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e8f\2\141" + + "\1\u1760\7\141\1\u05cb\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u18f7\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u14e7" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141" + "\1\u12f1\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1396\4\141\1\u0768\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u18f8\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u139d\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u05e2\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u18f9\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u064e\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u18fa\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u0993\11\141\1\u06b3\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u18fb\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0656\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u18fc\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u18fd\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u18fe\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u18ff\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u0269\11\141\1\u1900\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1901\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1902\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\13\141\1\u1903\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1904\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u1905\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u1906\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u171d\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\22\141\1\u1907\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1908\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u1909\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u190a\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u190b\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u190c\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\11\141\1\u190d\15\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u190e\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u190f\5\141\1\u1910\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132"; + private static final String ZZ_TRANS_PACKED_5 = "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u084d\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\5\141\1\u1911\3\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u10c6\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1912\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1913\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1914\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1915\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1916\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1917\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u08ea\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u1918\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0d24\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1919\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u191a\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1517\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u191b\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u191c\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u191d\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u184b\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0d70\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u191e\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u05e2\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u191f\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u1920\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1921\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u0e89\4\141\1\u1922\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1923\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1924\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1925\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1926\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u0480\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u0b91\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1927\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u1928\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1929\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u192a\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\25\141\1\u192b\1\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u192c\1\141\1\u192d\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u192e\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1529\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u192e\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u192f\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u0ada\3\141\1\u1930\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u098a\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u0818\1\u1931\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1932\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1933\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1934\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u09f1\11\141\1\u0d5d" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u082f" + "\3\141\1\u031a\1\u1171\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u1935\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u0d1d\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1936\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1937\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1938\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1939\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u05b7\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u193a" + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u193b" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u047b" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u05b7" + + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u05b7" + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u05b7" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u193c" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u0392" + + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0392\2\141" + "\1\u193d\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0392" + + "\12\141\1\u193e\3\141\1\u193f\2\141\1\u05b7\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1940\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1941\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1942\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1943\10\141\1\u03d4" + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1944\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1945\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1946\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u1947\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u1948\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1949\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u103b\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\11\141\1\u0455\15\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u0455\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u194a\21\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\25\141\1\u194b\1\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u18bf\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u194c\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u194d\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u194e\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u194f\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1439\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1950\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1951\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1952\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1953\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u1954\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\23\141\1\u1955\3\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1956\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1957\21\141\1\u1958\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1959\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u195a\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u195b\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u195c\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\3\141\1\u195c\3\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u195d\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u195e\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u195f\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u1960\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1961\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1962\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1963\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u01fa\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u04ce\4\141\1\u1964\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1957\21\141\1\u155a\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u1965\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u119c\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1966\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1967\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\5\141\1\u1968\21\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1969\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0269\5\141\1\u044f\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u196a\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u196b\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u196c\11\141\1\u196d" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u196e" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u196f" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1970" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1971" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1972" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1973" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1974" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1975" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1976" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1977" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1978" + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1979" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u197a" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u197b" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u197c\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u197d\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u197e\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u197f\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1980\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1981\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u0bd8\10\141\1\u1482" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1982" + + "\3\141\1\u1983\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1984\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1985\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1986" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1987\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u0461\1\141\1\u1988\4\141\1\u1989\1\141\1\u0610\1\141" + + "\1\u0464\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u198a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u198b\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u198c\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\72\0\1\u0d88\126\0\1\u07a2\160\0\1\u0d88\40\0" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u198d" + "\15\141\1\u198e\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1643\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u198f\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1990\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + "\1\u0d62\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1991\1\u0ae2\1\141\1\u16a9\13\141\1\u1992\4\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u1993\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1994\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u1995\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1996\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u1997\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1097\2\141\1\u1998\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1999\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u199a\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u199b\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0269\4\141" + "\1\u199c\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u199d\1\141\1\u044f\1\u199e\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u199f\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u19a0\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u19a1\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u19a2\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u19a3\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1027\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u15c3\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1051\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1300\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u19a4\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u19a5\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\25\141\1\u19a6\1\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u19a7\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u19a8\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u19a9\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u19aa\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u19ab\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u0e74\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1074\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u19ac\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u19ad\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u19ae\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u19af\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u06bb\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u06ee" + "\7\141\1\u0269\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u19b0\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u03a4" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u19b1\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u19b2" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u19b3" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u0c40" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u044f" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u19b4" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u081f" + + "\1\u17fe\21\141\1\u0779\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u19b5" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + + "\1\u19b6\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u19b7\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u19b8" + + "\3\141\1\u08d0\1\141\1\u045c\3\141\1\u19b9\1\u060f\2\141" + "\1\u0464\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u19ba\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u19bb\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u19bc\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u05b0\14\141\1\u19bd\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u19be\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u0699\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u19bf\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u19c0\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + + "\1\u19c1\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u098a" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u19c2\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u19c3\6\141\1\u0c97" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u19c4" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u19c5" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u19c6" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u090a\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0768" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u116d" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u0b8b\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u19c7\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u19c8\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u19c9\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\u19ca\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u19cb\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u19cc\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1207\5\141\1\u11b0\5\141\1\u19cd\3\141" + + "\1\u19ce\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u19cf\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u19d0\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u19d1" + "\7\141\1\u19d2\2\141\1\u19d3\13\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\23\141\1\u046a\3\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u19d4\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u19d5\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u19d6\10\141\1\u182d\1\u19d7\5\141\1\u19d8\6\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u19d9\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u19da\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u19db\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u19dc\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0bc5\5\141\1\u19dd\1\141" + "\1\u19de\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u19bc\5\141\1\u19df\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\24\141\1\u1485\2\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u19e0\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u19e1\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\5\141\1\u19da\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u19e2\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u19e3" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u19e4\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u19e5\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u19e6\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u0b0b\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u19e7\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u138a\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u138a\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0b64\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u19e8\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u19e9\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u19ea\2\141" + "\1\u103a\13\141\1\u19eb\1\u19ec\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u19ed\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u0bf1\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u19ee\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u19ef\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u19f0\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u19f1\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0eda\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u19f2\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u19f3\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u19f4\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u19f5\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u1844\12\141\1\u19f6\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u19f7\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u19f8\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u19f9\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u19fa\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u19fb\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u19fc\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u19fd\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u19fe\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u19ff\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u1a00\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1a01\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0afc\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1a02\3\141\1\u1a03\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u1a04\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\22\141\1\u084f\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u1a05\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u08bb\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1a06\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1a07\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\1\u1a08\6\141\1\132\10\0\6\141\1\0\10\141\1\u1a09" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u0269\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1a0a\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1a0b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u1a0c\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1a0d\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a0e" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1a0f\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1a10" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1a11\11\141\1\u12bc\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1a12\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1a13\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u1a14\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u1a15\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1a16\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1a17\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u1a18\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1a19\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1a1a\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u1a1b\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a1c" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1a1d\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1290\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + "\1\u1a1e\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u166e\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1a1f\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1a20\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1a21\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1a22\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1a23\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1a24\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1a25\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1a26\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1a27\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1a28\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1a29\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u15f9\6\141\1\u1a2a\5\141\1\u1a2b\7\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1a2c\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1a2d\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1a2e\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u076a\1\u1a2f\2\141\1\u1a30\1\141" + "\1\u12ec\2\141\1\u164f\4\141\1\u1a31\7\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u1a32\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1a33\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1a34\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1a35\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1a36\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u0d27\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u0614\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1a37\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1a38\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0e8f\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a39" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1a3a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1a3b\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1a3c\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1a3d" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1a3e\3\141\1\u1a3f" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1a40\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1a41\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1a42\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1a43\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1a44\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u1549\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u15f9\6\141\1\u1a45" + + "\2\141\1\u1a46\1\141\1\u0d02\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u1a47\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1a48\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1274\5\141\1\u0d02\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1a49\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u125e\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u1a4a\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1a4b\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u0e10\1\141\1\u1a4c" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1a4d" + + "\11\141\1\u1a4e\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1a4f\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1a50\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1a51\3\141\1\u0b05\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1a52\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1a53\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1a54\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1a55\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1a56\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u1a57\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1a58\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1105\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\15\141\1\u158b\11\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u10f4\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u1a59\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1a5a\2\141\1\u1a5b\1\u08ab\1\141\1\u1a5c\1\141" + + "\1\u1a5d\1\141\1\u0208\1\u1a5e\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u1a5f\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1a60\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1a61\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1a62\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1a63\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1a64\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\23\141\1\u1a65\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\11\141\1\u1a66\15\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u15ef\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1a67\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1a68\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u1a69\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u0749\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1a6a\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1a6b\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u1a6c\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u0afc" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1a6d" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1485" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1a6e" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1a6f" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u15f9" + + "\3\141\1\u1a70\1\141\1\u1274\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1a71\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1a72\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u1a73\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1a72\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1a74\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1a33\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u1a75\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1a76\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u13ee\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u1a75\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a77" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u1a78\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u1a79\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1a7a\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1a7b\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1a7c\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u1a7d\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1a7e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u1a7f\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u1a80\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u1a81\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\23\141\1\u05b7\3\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1a82\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u05d8\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1a83\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u1a84\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u0606\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1a85\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1a86\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u0f80\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u0461\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1013\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1a87\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1a88\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a89" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1a8a\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0788\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1a8b\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\3\141\1\u1a8c" + + "\3\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1a8d\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1a8e\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1a8f\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u1a90\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u1a91\6\141\1\u1a92\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1a93\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1a8f\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1a94\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\15\141\1\u1a95\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1a96\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1a97\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1a98" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u1a99\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1100\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141" + + "\1\u1a9a\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1a9b\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u1a9c\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0e8b\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u1a9d\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1a9e\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1a9f" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1aa0" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1aa1" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1aa2" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1aa3" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0687" + "\4\141\1\u0411\1\u090e\3\141\1\u153d\5\141\1\u1716\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u14e4\2\141\1\u0e8f" + "\2\141\1\u05dd\7\141\1\u05cb\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1aa4\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u1aa5\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1aa6\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1aa7\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0485\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\23\141\1\u1aa4\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u1aa8\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1aa9\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1aaa" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1aab\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1aac" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1aad" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1aae" + + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1aaf" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\4\141\1\u1ab0\4\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ab1\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1ab2\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1ab3\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\20\141\1\u0ff4\6\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1ab4\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\12\141\1\u1ab5\14\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1ab6\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1ab7\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u0a70\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1ab8\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u1ab9\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u0e88\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1aba\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1abb\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1abc\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1abd\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1abe\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1abf\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u1ac0\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1abf\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1ac1\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1ac2\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1ac3\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u1ac4\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ac5" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u10d8\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1ac6\13\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1ac7\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ac8\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1ac9\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0ddf\1\141\1\u0409" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1aca" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u175d\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u0262\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u0411\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u06f5\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0f38\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1acb\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u12c9\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1acc\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\15\141\1\u1acd\11\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\23\141\1\u1ace\3\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0ddc\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u05b7\1\u087a\1\141\1\u1acf\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u0392\2\141\1\u05d1" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u05b7\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u087a" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1ad0" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0f01" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u09a3" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ad1" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1ad2\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ad3\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u11ba\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1ad4\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1ad5\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1ad6\6\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1ad7\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ad8\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1ad9\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ada\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u1adb\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1ada\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1adc\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1434\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1add\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u0cf0\4\141\1\u06e9" + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\3\141" + + "\1\u1ade\3\141\1\132\10\0\6\141\1\0\10\141\1\u1adf" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u0e81\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141" + + "\1\u0e17\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0c6e\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u1964\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1ae0\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0ecd\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + "\1\u1ae1\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u128a\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1ae2\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u0916\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ae3\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1ae4" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1ae5" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u01fa" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ae6\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u1ae7\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u1ae8\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1ae9\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u05b2\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1aea\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1aeb\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1aec\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1aed\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u1aee\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1aef\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u1af0\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1af1\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1af2\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u19b6\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1af3" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1af4\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1af5\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1af6\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1af7\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1af8\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u1af9\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1afa\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1afb\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1afc\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u0d70\2\141\1\u1523\1\141\1\u1afd\1\u1523\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1afe\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1aff\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1b00\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u1b01\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\25\141\1\u1b02\1\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\15\141\1\u1b03\11\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1b04\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u06fc\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1b05\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1b06\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1b07\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u040d\6\141\1\u1b08\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1b09\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1b0a\1\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1b0b\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1b0c\4\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u1b0d\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1b0e\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1b0f\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0db6\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u0dcc\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1b10\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u08f6\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u0a3a\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\20\141\1\u1b11\6\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\15\141\1\u132b\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1b12\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1b13\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1b14\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1b15\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1b16\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1b17\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1b18\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1b19\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1b1a\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\13\141\1\u1b1b\13\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1b1c\5\141\1\u1b1d\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1b1e\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1b1f\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1b20\20\141\1\u047b" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1b21" + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u1b22" + + "\2\141\1\u1b23\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\24\141\1\u1b24\2\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1b25\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1315\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u109d\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b26" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1b27\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + "\1\u1b28\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u1b29\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1b2a\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b2b" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b2c\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b2d\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e8f\2\141" + "\1\u1a11\7\141\1\u05cb\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1b2e\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1b2f\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u0d65\12\141\1\u09a2\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u102f\2\141\1\u09fc\1\u040d" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1b30\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1b31\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u06bb\2\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b32\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u151f\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1b33\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b34\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\u04ce\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1b35\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\26\141\1\u0269\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\21\141\1\u1391\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1b36\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1b37\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1b38\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1b39\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1b3a\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u0f95\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1b3b\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1b3c\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1b3d\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b3e" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1b3f\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1b40\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1b41\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1b42\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u097d\4\141\1\u1b43\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1b44\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\24\141\1\u1b45\2\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1b46\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1b47\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1b48\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b49\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u05b7" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b4a" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1b4b" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b4c" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1b4d\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u099e\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u1b4e\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u19bc\5\141\1\u1b4a" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u048b" + + "\3\141\1\u1b4f\3\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1b50\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1b51\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b52" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1b53\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1b54\2\141\1\u1b55\1\141\1\u0411\1\u048b\3\141\1\u0610" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0e8f" + "\1\141\1\u1b56\1\u0e91\1\u1b57\6\141\1\u05cb\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1b58\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u08f6\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1b59\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1b5a\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u0f61\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u0868\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1b5b\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1b5c\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1b5d\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u1ac8\21\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1b5e\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u1b5f\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1b60\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b61" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u19f7\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1b62\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1b63\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u1b64\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1b65\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1b66\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u0cf6\3\141\1\u0396\21\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u12a7\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1b67\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u1b68\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u04ce\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0392\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1b69\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1b6a\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1b6b\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u1b6c\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + + "\1\u1b6d\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u1b6e\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1b6f\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1b70" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1a11\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1b71\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b72\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u0ea0" + + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b73" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1a11" + + "\11\141\1\u12bc\6\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u1171\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1b74\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1b75\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1b76\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1b77\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + + "\1\u1b78\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u1b79\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1b7a" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1b7b\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1b7c\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1b7d\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\6\141\1\u1b7e\1\132\10\0" + "\6\141\1\0\10\141\1\u1b7f\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1b80\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0899\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1b81\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u1b82\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u1b83\21\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1b84\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1b85" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u1b86\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u1b87\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1b88\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1b89\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1b8a\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1b8b\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1b8c\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1b8d\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141" + + "\1\u1b8e\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1b8f\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1b90\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b91" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1b92" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1b93" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0881" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1271" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1b94" + + "\21\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1b95" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u05dd" + + "\5\141\1\u0610\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u175f\2\141\1\u05dd\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u1b96\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1b97\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u1b98\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1b99\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u1b9a\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u0b16\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1b9b\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1b9c\1\141\1\u1b9d\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1b9e\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u1b9d\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1b9f\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1ba0\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u1ba1\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1ba2\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u0919\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1ba3\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u1ba4\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u0afc\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u1ba5\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1ba6\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1ba7\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1ba8\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\25\141\1\u1ba9\1\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1baa\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1bab\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u173c\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1bac\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1bad\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\24\141\1\u1bae\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u0485\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1baf\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u047b\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1bb0\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u1bb1\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1bb2\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\21\141\1\u1bb3\5\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1bb4\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1bb5\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u04a1\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u1bb6\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\23\141\1\u1bb7\3\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u18b7\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u1bb8\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1a82\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1872\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1bb9\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1bba\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u1bbb\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u12d9\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1bbc\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1bbd\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1bbe\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\15\141\1\u03d4\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\15\141\1\u1bbf\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u12f1\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u0b10\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1bc0\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u05d8\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1bc1\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u1bc2\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1bc3" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1bc4\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + + "\1\u1bc5\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1bc6\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1bc7" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0add" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1bc8" + + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1bc9" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1bca" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0ad5" + "\4\141\1\u139b\11\141\1\u1213\2\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1bcb\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u0913\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u1bcc\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1bcd\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\141\1\u1bce\25\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u1bcf\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1bd0\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u11a8\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1bd1\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u05b1\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1bd2\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u0269\3\141\1\u08f6\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0705\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u1bd3\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1bd4\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u18e8\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1bd5\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1bd6\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1bd7\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u1bd8\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u166f\1\141\1\u1bd9\1\u1bda\1\u0903" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1bdb" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1bdc\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1bdd\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0204\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u122f\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1bde\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u0783\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u18ff\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1bdf\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1be0\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u1235\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1be1\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u03c8\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\15\141\1\u1be2\11\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1be3\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\20\141\1\u1be4\6\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u1934\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u1be5\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u1be6\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u1be7\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1009\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1be8\3\141\1\u0211\3\141\1\u0a66\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u1be9\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1bea\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1beb\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1bec\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\7\141\1\u1bed\1\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1bee\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u1bef" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u03e4\3\141\1\u0723\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u0e8b\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1bf0\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u1bf1\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u1bf2\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u1003\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0392\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u1bf3\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u1bf4\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u0e88\1\u0c6e\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1bf5\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u191f\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1bf6\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1bf7\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1bf8\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1bf9\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1bfa\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1bfb\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u1bfc\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1bfd\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1bfe\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u1bff\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u04ce\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + "\1\u1931\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1c00\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1c01\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u16d5\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1c02" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1c03" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1c04\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\15\141\1\u1aa6\11\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1487\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u0c6e\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1305\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u1c05\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u0455\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1c06\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1c07\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1c08\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1c09\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1c0a\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\11\141\1\u1c0b" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1c0c\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1c0d\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u0291\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u104a\2\141\1\u1777\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\15\141\1\u1c0e\11\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1c0f\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u08a6\3\141\1\u0610\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\22\141\1\u156e\1\141\1\u08db" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1c10" + + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1c11" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u044f" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1c12" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1c13" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0ce4" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1c14\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0c40\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1c15\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1c16\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1c17\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1c18\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u176f\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1c19\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1c1a\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1c1b\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1973\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1c1c\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1c1d\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u1c1e\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1c1f\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1bd2\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1c20\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1c21\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1c22\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1c23\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1c24\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c25" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1c26\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c27\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c28" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1c29\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u1c2a\1\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1c2b\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0f6a\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1c2c\25\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1c2d\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u1c2e\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1c2f\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1c30\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u0754\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1c31\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1c32\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u18bf\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u0f25\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1c33\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u1c34\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1c35\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1c36\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1c37\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u0174\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1c38\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1c39\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\7\141\1\u1c3a\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1c3b\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\11\141\1\u0e17\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\141\1\u1c3c\25\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0a3a\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u1c3d\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u040d\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\10\141\1\u0c85\16\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1c3e\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1c3f\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u11e8\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u1c40\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\5\141\1\u1933\21\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1c41\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1c42\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1c43\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1bf2\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1c44\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u0bf1\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\20\141\1\u19ba\6\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1112\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c45" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u060f\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u0c7d\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u1c46\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u16ca\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1c47\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1c48\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u05dd\12\141\1\u0eb0\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\15\141\1\u1c49\11\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1c4a\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1c4b\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1c4c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u132b\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1c4d\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1c4e\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c4f" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c50\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1c51" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1c52" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1c53" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u045f\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1234\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u1c54\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\23\141\1\u1b45\3\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u1c55\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\23\141\1\u1b4f\3\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1c56\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1c57\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1c58\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1c59\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u1c5a\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0df3\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u1c5b\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u12f1\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1c5c\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u1c5d\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0b0d\14\141\1\u01ea\3\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u0ed2\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1c5e\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1c5f\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\11\141\1\u1546\15\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1c60\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u0699\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1c61\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u1c62\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u11b6\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u0690\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1c63\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\10\141\1\u1c64\16\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u1c65\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u1c66\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u19f7\23\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1c67\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1c68\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u19f7\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u1c69\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u1c6a\15\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\5\141\1\u1c6b\21\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u0e17\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u0d55\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u0687\7\141\1\u0627\1\141\1\u0610" + + "\2\141\1\u06e9\7\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u08f6\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1b1e" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c6c" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1a11" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1c6d" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1c6e" + + "\6\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1c6f" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1c70" + + "\11\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1c71" + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1c72" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1c73" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1739\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0"; + private static final String ZZ_TRANS_PACKED_6 = "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1c74\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1c75\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1c76\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1c77\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1c78\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\6\141" + "\1\u1c79\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u04f9\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1c7a\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u08c1" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c7b" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c7c" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1b83" + + "\2\141\1\u0cca\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1c7d\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c7e" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1c7f\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u14b2\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1c80\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1c81\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u189c" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1c82\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1c83\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1c84\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1c85\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1c86\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u1c87\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1c88\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1c89\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1c8a\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u0269\5\141\1\u1c8b\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1c8c\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u10d7\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u1a3e\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u1c8d\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u12f1\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1c8e\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1c8f\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1c90\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1c91\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1c92\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1c93\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1c94\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1c95\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1c96\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\20\141\1\u03ce\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\13\141\1\u1c97\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1c98\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u1019\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1c99\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u11df\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1c9a\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + + "\1\u11df\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1c9b\1\u1c9c\4\141\1\u1962\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u03a8\5\141\1\u1c9b\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1c9d\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u0cf0\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1c9e\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u044f\4\141\1\u1c9f\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1ca0\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1470\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\7\141\1\u0a3a\17\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1ca1\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1ca2\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1a65\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1ca3\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1ca4\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1ca5\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1ca6\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1ca7\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u1ca8\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u1ca9\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1caa\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u060b\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1cab\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\26\141\1\u1cac\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u1cad\21\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1cae\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\23\141\1\u138a\3\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u1caf\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cb0" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1cb1\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u1cb2\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1cb3\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1cb4" + + "\11\141\1\u093e\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1cb5\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\11\141\1\u0916\15\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1bd0\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0c74" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1013\4\141\1\u06b2\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u06f1\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\3\141" + + "\1\u0269\3\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\15\141\1\u0997\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u1cb6\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1cb7\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1cb8\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\23\141\1\u1cb9\3\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0993\3\141\1\u1bb5\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1cba\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u18e8\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u1cbb\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\17\141\1\u1cbc\7\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1bfa\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1cbd\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0c81\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1cbe\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1366\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\24\141\1\u1cbf\2\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1cc0\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u08f6\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1cc1\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1cc2\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\25\141\1\u1cc3\1\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u1cc4\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1cc5\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u1cc6\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1cc7\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1be8\6\141\1\u1cc8\1\u0a66\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1cc9\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\3\141\1\u0461\1\u1be8\1\u0d70\4\141\1\u1cca" + "\7\141\1\u084f\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1ccb\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1ccc\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1ccd\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cce" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1ccf\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1cd0\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1cd1\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1cd2\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1cd3\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0393\1\u1cd4\1\u0db7\2\141\1\u12ec\1\141\1\u06b4\1\u1cd5" + + "\7\141\1\u0eee\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1cd6\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cd7" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1cd8\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1cd9\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1cda\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1c6a\20\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0e17\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u132b\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1cdb\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u0ea5\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1237\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u08f6\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u0455\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u08f5\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1cdc\3\141\1\u1cdd" + "\1\141\1\u1cde\1\141\1\u1cdf\5\141\1\u1ce0\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u11ea\1\141\1\u1ce1" + "\16\141\1\u08ef\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1ce2\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ce3" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0b16\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1ce4\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ce5\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u134a\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u03c3\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ce6\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ce7\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u153d\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ce8\2\141" + + "\1\u1ce9\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1cea\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1212" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1ceb\12\141\1\u1cec\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u1ced\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1212" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u1cec\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1cee\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1cef\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1cf0\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u1cf1\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1cf2" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1112" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1cf3" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1cf4" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1cf5" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1cf6" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1cf7\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1cf8\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u1cf9\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u1cfa\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u1cfb\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1cfc\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u0610\7\141\1\u06ec" + "\2\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1cfd" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141\1\u1cfe" + "\15\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1cff" + + "\4\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1d00" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d01" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1d02" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u03ec" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1d03" + "\2\141\1\u1d04\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1d05\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1d06\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1d07\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u1d08\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1d09\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u1d0a\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u044e\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1d0b\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1d0c\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + "\1\u082f\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u1c6a\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1d0d\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d0e" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d0f" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0c93" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u0b78" + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0b1f\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d10\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0925\12\141" + + "\1\u0927\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1d11\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u1d12\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1d13" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1d14\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u17ea\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1d15\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u1d16\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u19ea\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1d17\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u19d1\7\141\1\u19d2\1\141\1\u0208\1\u1d18" + + "\2\141\1\u0464\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\11\141\1\u1d19\15\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u1d1a\21\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d1b" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + + "\1\u1d1c\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + "\1\u1d1d\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d1e\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1d1f" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1d20\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1d21\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1d22\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1c7c\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u1b45\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\1\u0400\6\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u0d37\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u118e\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u1d23\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1d24\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u0245\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u03c1\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1d25\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u1d26\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1d27\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1d28\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1d29\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\17\141\1\u0d3f\7\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1d2a\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u0e17\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1d2b\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1d2c\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u165d\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1d2d\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1d2e\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1d2f\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1d30\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1d31\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d32" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d33\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1d34" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d35\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1d36\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d37\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\7\141\1\u1d38\2\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1d39\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1d3a\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1684\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\1\141\1\u063c\5\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u0971\21\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d3b\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d3c\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d3d\2\141" + "\1\u1d3e\13\141\1\u1d3f\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u0ee0\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1d40\1\u1d41\1\141\1\u11cd\1\141\1\u1d42" + + "\1\141\1\u1d43\1\u18c3\13\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1d44\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d45" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1d46\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u122f\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u1d47\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d48\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1d49" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1ca4" + + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u0948" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d4a\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d4b\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1d4c\2\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1d4d\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d4e\2\141" + + "\1\u1d4f\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u0208\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u1d50\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + "\1\u09bd\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1d51\12\141\1\u1c62\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1d52\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u1d53\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\5\141\1\u09a9\1\141\1\u1d54\17\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u1d55\21\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u19db\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1d56\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1d57\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1d58\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1d59\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1d5a\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u0903\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0a07\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1d5b\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1a82\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u0687\2\141\1\u1d5c\21\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u1d5d\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u0b65\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1d5e\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u1d5f\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\1\141\1\u094a\5\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u0760\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1546\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1d60\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141" + + "\1\u1d61\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u1d62\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1d63\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u0821\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1d64\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u1d65\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1d66\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1d67\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u18e8\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u1a91\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141" + + "\1\u1d68\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1d69" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d6a" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d6b" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0d5d" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1d6c" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d6d\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u08f6\3\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1d6e\17\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0269\1\141" + "\1\u1be6\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u1d6f\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + "\1\u1d70\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1d71" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1d72\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1cc6\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d73\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1d74\3\141" + + "\1\u0211\10\141\1\u111c\2\141\1\u1502\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\15\141\1\u1d75\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1d76\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u12a7\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u1d77\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\24\141\1\u19ce\2\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u1d78\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\23\141\1\u1d79\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\7\141\1\u1d7a\17\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1d7b\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1d7c\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0db6\11\141\1\u1d7d\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u191b\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u0cab\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1d7e\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u13e2\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u176a\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1d7f\4\141\1\u1274\1\u1d80\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1d81\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u1d82\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u05cb\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1d83\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1d84\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u03ec" + "\3\141\1\u1d85\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d86" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1d87\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1954\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u1d88\2\141\1\u1777\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\23\141\1\u1d89\3\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u060e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1d8a\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1d8b\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1d8c" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1d8d\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1d8e\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1d8f\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1d90\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u1d91\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1d92\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1d93\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1d94\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u1d95\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1d96\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u0819\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1d97" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d98" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1d99" + + "\2\141\1\u1d9a\3\141\1\u1d9b\6\141\1\u1d9c\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1d9d\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1d9e\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1d9f\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1b02\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1da0\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u1da1\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1da2\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\13\141\1\u13ee\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u1da3\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1da4\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1da5\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\25\141\1\u1da6\1\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1da7\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u0818\2\141\1\u1da8\3\141" + "\1\u0a53\2\141\1\u0830\2\141\1\u1da9\1\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\3\141\1\u0aec\3\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1daa\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\24\141\1\u1dab\2\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1dac\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dad\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u060b\10\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u18e3\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1dae\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1daf\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1db0\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1db1\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1db2\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u0679\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u0bc5\2\141\1\u1db3" + "\4\141\1\u1db4\2\141\1\u1db5\6\141\1\u08ef\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1db6\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\15\141\1\u1db7\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u1b9a\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1db8\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1db9\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1dba\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u19d6\1\u1dbb\4\141\1\u1dbc\1\141\1\u1dbd" + "\1\u182d\6\141\1\u19d8\6\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1dbe\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1dbf\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u0bc5\3\141\1\u03e4\14\141\1\u1dc0\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1dc1\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u0901\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1cdc\1\u1dc2\1\u03e4" + + "\1\141\1\u101e\1\141\1\u0723\1\141\1\u1dc3\6\141\1\u1dc4" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1dc5" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1dc6" + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0f1e" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1dc7" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u0b05" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dc8" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1dc9" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1dca" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141\1\u1dcb" + + "\7\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1dcc" + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u185a" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1dcd" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1dce" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1dcf" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1dd0" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dd1" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1dd2" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1dd3" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1dd4" + + "\10\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1dd5" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1dd6\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\4\141\1\u0269\4\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1dd7\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1934\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1dd8\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1dd9\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1dda\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\22\141\1\u0dda\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1ddb\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1ddc\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u1ddd\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1dde\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1ddf\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u1de0\1\141\1\u0d73\1\u1de1\13\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u1de2\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1de3\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u122f\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u1de4\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1de5\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1de6\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1de7\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1de8\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1271\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u1de9\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\25\141\1\u1dea\1\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1deb\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\20\141\1\u1dec\6\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1453\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1ded\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u03cd\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1dee\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1def\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1df0\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\16\141\1\u1df1\10\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1df2\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u0dd3\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\24\141\1\u1df3\2\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1df4\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1df5\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\13\141\1\u1df6\13\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\21\141\1\u1ca9\5\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1df7" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1df8\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1df9\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1dfa\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1dfb\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1b7b\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1dfc\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u1dfd\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\u1dfe\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\23\141\1\u1dff\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\17\141\1\u1e00\7\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u1e01\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u1e02\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\7\141\1\u1e03\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\u1e04\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1e05\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1e06\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u1e07\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1d74\14\141\1\u111c\5\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1e08\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u13b5\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1e09\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\24\141\1\u1e0a\2\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1e0b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u1e0c\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u1e0d\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e0e" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u155c\3\141\1\u1351\10\141\1\u0411\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\5\141\1\u155c\3\141\1\u1351\7\141" + "\1\u0945\1\u0411\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\u1e0f\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u0c85" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0699" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1e10\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u03c6\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1395\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u0f6b\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\23\141\1\u1e11\3\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1e12\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1350\1\141\1\u11d2" + "\6\141\1\u0e81\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\12\141\1\u1e13\14\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u1e14\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e15\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1e16\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1e17\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u045c\4\141" + "\1\u0848\5\141\1\u1e18\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1e19\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\141\1\u1e1a\25\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1e1b\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u1e1c\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1e1d\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u1e1e\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1e1f\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1e20\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1e21\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e22\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1e23" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1e24" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1e25" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1e26" + "\5\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u102f" + + "\2\141\1\u1bf1\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u0dc8\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1e27\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1e28\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1e29\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1e2a\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u18e3\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1e2b\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\2\141\1\u1e2c\24\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1885" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u18cc\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0bef\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + + "\1\u1e2d\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u01fa" + "\20\141\1\u1e2e\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\11\141\1\u0614\10\141\1\u0614\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\6\141\1\u1e2f\20\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1d09\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1dab\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\2\141\1\u1e30\24\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1e31\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1e32\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1e33\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1e34\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1e35\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u11a8\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1e36\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1e37\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u1e38\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1e39\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1e3a\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1e3b\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1b0d\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1e3c\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\7\141\1\u1e3d\17\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\u1e3e\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1e3f\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u12f1\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u08e6\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\14\141\1\u1e40\12\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1e41\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1e42\1\u0913\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1e43\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1e44\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1e45\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u0269\5\141\1\u0827\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1e46\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\20\141\1\u1e47\6\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1e48\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\14\141\1\u12a7\12\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u1e49\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u0f1f\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\10\141\1\u1105\16\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u1e4a\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1e4b\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1e4c\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\23\141\1\u1e4d\3\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1e4e\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\14\141\1\u1e4f\12\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1e50\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1492\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u1e51\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0f4a" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u1e52\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + "\1\u0ed9\11\141\1\u1b98\13\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u0dda\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u1e53\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u1e54\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u0690\10\141\1\u1e55\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u06bb\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u1e56\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1e57\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1e58\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u1e59\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1e5a\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1e5b\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1e5c\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1e5d\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1e5e\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\1\u1e5f\26\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\22\141\1\u11b1\4\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\141\1\u1e60\25\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\26\141\1\u1e61\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\11\141" + + "\1\u0fd6\15\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u11df\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1e62\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u1e63\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1470\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\13\141" + "\1\u1e64\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1e65\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1e66" + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1e67" + + "\2\141\1\u045c\3\141\1\u12db\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\10\141\1\u1e68\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1e69\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\14\141\1\u1be5\12\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u04ae\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1e6a\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1e6b\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1e6c\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1e6d\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1e6e\23\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1e6f\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\23\141\1\u0fcf\3\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\4\141\1\u1e70\22\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0a07\25\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u1e71\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\u1e72\26\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\6\141\1\u1e73\20\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1e74" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u1e75\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1e76\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1e77\25\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1e78\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1e79\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\5\141" + "\1\u1e7a\21\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + + "\1\u1e7b\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + "\1\u047b\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u0388\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u0eeb\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1240\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1e7c\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1957" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1e7d" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1d8a" + + "\25\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1e7e" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1e7f" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1e80" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1e81" + + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\10\141\1\u1e82\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1e83\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1e84\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1e85\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1e86\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u1e87\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1e88\1\141\1\u1e89\1\u1e8a" + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1ca2" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\26\141\1\u198e" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u1e8b\13\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1e8c\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1e8d\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1e8e\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1e8f\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u0c81\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1e90\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\u1e91\26\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1e92\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\1\u1e93\6\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u06bb\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u15b8\6\141\1\u1e94\11\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1e95\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1e96\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\141\1\u1e97\25\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1e98\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u08ed\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\2\141\1\u1e99\24\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1e9a\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1e9b\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1e9c\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\12\141\1\u1e9d\14\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u1e9e\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u1e9f\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\22\141\1\u1ea0\4\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u1ea1\26\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u0df3\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\12\141\1\u1ea2\14\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1ea3\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u04be\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1ea4\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\15\141\1\u08f6\11\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u04ec\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1ea5\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1dcb\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ea6" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ea7\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ea8\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ea9\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1eaa\25\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1eab\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u0841\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1eac\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u0e88\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1ead\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\24\141\1\u1eae\2\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u1eaf\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u12fc\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1eb0\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1eb1\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1eb2\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u10bd\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u188c\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u0e0c\2\141\1\u1b98" + + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u0cba" + "\3\141\1\u1eb3\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1eb4\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u138a\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1eb5\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\1\u0b16\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u1eb6" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1eb7\20\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1eb8\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1df6\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u0840\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1eb9\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1eba\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1c48\7\141\1\u1ebb" + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u0e7d" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ebc" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u1ebd" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1ebe" + "\23\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u04ce" + + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ebf\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u0eff\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\13\141\1\u0b78\13\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ec0\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1009\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ec1\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1ec2\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1ec3\6\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u08f6\3\141" + "\1\u0eb4\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u0986\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141" + "\1\u041e\1\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1ec4\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1ec5\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u1b1e\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1ec6\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ec7" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1ec8" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ec9" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1eca\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u136b\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1ecb\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u1ecc\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1ecd\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1ece\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\21\141\1\u1ecf\5\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\13\141\1\u1ed0\13\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1ed1\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\23\141\1\u1ed2\3\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\16\141\1\u1ed3\10\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\u1ed4\26\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + "\1\u1ed5\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1ed6\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1ed7" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1ed8\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1ed9\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + "\1\u1eda\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1edb\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u09e1\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\17\141" + + "\1\u06b2\7\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + "\1\u1edc\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1edd\6\141\1\u0f73\11\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1ede\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\15\141\1\u1edf\11\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\3\141\1\u1db3\16\141\1\u08ef\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u1ee0\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1ee1\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1ee2\1\141\1\u1dbd\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\20\141\1\u1ee3\6\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1ee4\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u1ee5\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1ee6\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1ee7\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\u1ee8\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1ee9\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1eea\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1eeb\11\141\1\u1eec\11\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\141\1\u1eed\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\11\141\1\u1eee\15\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1dcf\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u1eef\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u0fda\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1ef0\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1dd3\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u0bcc\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u1ef1\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1ef2\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1ef3\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\4\141\1\u087a\22\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u10d5\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u0e17\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1ef4\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\6\141\1\u1ef5\20\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\22\141\1\u1ef6\4\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\21\141\1\u1d7f\5\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\10\141\1\u1ef7\16\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\1\141\1\u0ed9\12\141\1\u0610\4\141\1\u1ef8\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u0945\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1ef9\21\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1ca4\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1efa\3\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1efb\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1efc\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1009\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\u1efd\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1efe\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1eff\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\22\141\1\u1f00\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\15\141\1\u1f01\11\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1f02\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1f03\25\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1f04\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1f05\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1f06\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1f07\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1f08\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\21\141\1\u1f09\5\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1f0a\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1f0b\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\14\141\1\u1f0c\12\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1f0d\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\7\141\1\u1f0e\17\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1f0f\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\u1f10\26\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u1f11\5\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\1\u1f12\1\141\1\u1f13\1\u1f14\4\141\1\u1f15" + "\2\141\1\u1f15\1\141\1\u1f16\7\141\1\u1f17\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1f18\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1f19\3\141\1\u123f\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1f1a\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1f1b\22\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1f1c\5\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\21\141\1\u1f1d\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1bb5\12\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u118e\10\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1cda\24\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u0b16\14\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1f1e\17\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1f1f\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u12f1\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1f20\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1f21\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\15\141\1\u0c7d\11\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1f22\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\13\141\1\u1e46\13\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\10\141\1\u1f23\16\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1f24\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1f25\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\6\141\1\u1a3e\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\23\141\1\u1f26\3\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1f27\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\10\141\1\u1f28\16\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1f29\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u0d02\3\141\1\u1802\4\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\16\141\1\u0776\2\141" + + "\1\u1eb3\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\22\141" + "\1\u1802\4\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + + "\1\u1cda\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u0396\7\141\1\u1f2a\14\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\2\141\1\u1f2b\24\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\4\141\1\u1f2c\22\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\6\141\1\u1f2d\20\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\12\141\1\u1a91\3\141\1\u1a8d\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u12a9\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1f2e\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\11\141\1\u1f2f\15\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\1\u1f30\26\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\22\141\1\u1f31\4\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1f32\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1f33\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u1f34\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1f35\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\21\141\1\u1cec\5\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u0748" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1f36\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u1f37\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1f38\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141" + + "\1\u1f39\20\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + "\1\u1f3a\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1f3b" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1f3c" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1f3d" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1f3e\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1f3f\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1f40\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1f41\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u1f42\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1f43\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\4\141\1\u1f44\22\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1f45\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1f46\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1f47\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u08bb\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\16\141\1\u1f48\10\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1f49\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u05d9\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\21\141\1\u0c24\5\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\3\141\1\u1f4a\23\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\13\141\1\u1f4b\13\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u063d\4\141\1\u1f4c\20\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1f4d\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1f4e\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1f4f\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\2\141\1\u1f50\24\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\6\141\1\u1f51\20\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\14\141\1\u1f52\12\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1f53\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\16\141\1\u1f54\10\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\16\141\1\u1f55\10\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1f56\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\7\141\1\u08de\17\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1f57\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\5\141\1\u12ec\21\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\12\141\1\u0b78\14\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u152c\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\7\141\1\u10d7\17\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\24\141\1\u0480\2\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\3\141\1\u1f58\23\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\3\141\1\u1b20\23\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1f59\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\15\141\1\u15b0\11\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u1f5a\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1f5b\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + "\1\u1e20\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1f5c" + + "\26\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1f5d" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1271" + + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1f5e" + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\10\141\1\u1f5f\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1c38\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1f60\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1f61\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1f62\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1f63\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\22\141\1\u1f64\4\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1f65\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1f66\11\141\1\u1f67" + + "\13\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1f68" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1f69" + + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1f6a" + "\17\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1e0b" + + "\12\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1f6b" + "\1\u060f\13\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\16\141" + + "\1\u1f6c\10\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1f6d\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1f6e\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + "\1\u1f6f\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141" + + "\1\u1f70\12\141\1\u0b28\2\141\1\u1f71\1\141\1\u1f72\1\141" + "\1\u1f73\3\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1f74\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + "\1\u1f75\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\21\141" + + "\1\u1f76\5\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1f77\3\141\1\u04c5\17\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1b78\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\u1f78\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141" + + "\1\u1f79\14\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\u065d" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\1\u1f7a\26\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1f7b\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1f7c\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1f7d\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1f7e\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\6\141\1\u1271\20\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u1f7f\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1f80\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1f3c\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\3\141\1\u1f81\23\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1f82\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1f83\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1f84\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\14\141\1\u1f85\12\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\16\141\1\u1f86\10\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1f87\26\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1f88\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1f89\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\2\141\1\u1f8a\24\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\7\141\1\u1b4f\17\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1f8b\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\13\141\1\u1f8c\13\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\15\141\1\u1f8d\11\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1f8e\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1f8f\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1f90\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1f91\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1f92\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1f93\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\10\141\1\u1f94" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\27\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1f95\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141" + + "\1\u1f96\22\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + "\1\u1f2d\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\3\141" + + "\1\u1f97\23\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\24\141" + "\1\u1f98\2\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1f99\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\6\141\1\u06b4" + "\20\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1e20" + + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\23\141\1\u1f9a" + "\3\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1f9b" + + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\u1a84\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1f9c\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u1f9d\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1f9e\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1f9f\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1fa0\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\24\141\1\u1fa1\2\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\10\141\1\u1fa2\16\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u156e\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1fa3\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\10\141\1\u1fa4\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\11\141\1\u182d\6\141\1\u19d8\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1fa5\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\141\1\u1ee4\25\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\21\141\1\u1fa6\5\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1fa7\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u1fa8\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1a58\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1fa9\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\6\141\1\u1faa\20\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\12\141\1\u1fab\14\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1fac\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\13\141\1\u1fad\13\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\23\141\1\u1fae\3\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\6\141\1\u1faf\20\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\5\141\1\u0396\13\141\1\u0e88\5\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\10\141\1\u1fb0\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1fb1\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\1\u1fb2\1\u1e77\25\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\10\141\1\u1fb3\16\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\12\141\1\u1fb4\14\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1fb5\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u1fb6\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1f68\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1fb7\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\25\141\1\u1fb8\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\11\141\1\u1fb9\15\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\3\141\1\u1fba\23\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u1fbb\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u1fbc\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\20\141\1\u1a58\6\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\3\141\1\u1a58\23\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\1\141\1\u15e9\25\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\15\141\1\u0df3\11\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1fbd\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\4\141\1\u1fbe\22\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u12fc\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\2\141\1\u190a\24\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\3\141\1\u1fbf\23\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\u1fc0\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\14\141\1\u1fc1\12\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + "\14\0\22\141\1\u1fc2\4\141\1\0\4\141\1\132\4\0" + + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\11\141" + "\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141" + + "\14\0\3\141\1\u1fc3\23\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1fc4\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\16\141\1\u1fc5\10\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\4\141\1\u1fc6\22\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1fc7\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\6\141\1\u1fc8\20\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1fc9\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\20\141" + "\1\u1fca\6\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + + "\1\u1fcb\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u1fcc\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\25\141\1\u05d1" + + "\1\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1fcd" + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1435" + + "\14\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1fce" + "\24\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1fcf" + + "\22\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u0776\26\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1fd0\16\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1fd1\23\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1fd2\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\7\141\1\u1fd3\17\141" + "\1\0"; + private static final String ZZ_TRANS_PACKED_7 = "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\12\141\1\u1fd4\14\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1fd5\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\4\141\1\u1fd6\22\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\7\141\1\u1fd7\17\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u1fd8\2\141\1\u106b\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\5\141\1\u1271\21\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\3\141\1\u1fd9\23\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\12\141\1\u1fda\14\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\2\141\1\u1fdb\24\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u1fdc\25\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1fdd\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\2\141\1\u1fde\24\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\20\141\1\u1fdf\6\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\15\141\1\u1fe0\11\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\23\141\1\u1fe1\3\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\23\141\1\u1fe2\3\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\14\141\1\u1fe3\12\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\16\141\1\u1fe4\10\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u1fe5\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\23\141\1\u1fe6\3\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\10\141\1\u1fe7\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\22\141\1\u1fe8\4\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\10\141\1\u1fe9\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\27\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\4\141\1\u1fea\22\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\1\141\1\u1feb\25\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\10\141\1\u1fec\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\12\141\1\0\7\141\1\132\10\0\6\141\1\0\10\141" + + "\1\u1fed\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\27\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\10\141\1\u1fee\16\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\10\141\1\u1fef\16\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\1\u1ff0\26\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\7\141" + "\1\u1ff1\17\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\2\141" + + "\1\u1ff2\24\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\15\141" + "\1\u1ff3\11\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141" + + "\1\u1ff4\16\141\1\0\4\141\1\132\4\0\12\141\1\0" + "\7\141\1\132\10\0\6\141\1\0\11\141\1\0\1\141" + + "\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0\14\141" + "\1\u15e1\12\141\1\0\4\141\1\132\4\0\12\141\1\0" + + "\7\141\1\132\10\0\6\141\1\0\10\141\1\u129d\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + + "\1\132\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ff5" + "\16\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\141\1\u14a3" + + "\15\141\1\u14a3\7\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\2\141\1\u10f5\24\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u1ff6\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1ff7\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\4\141\1\u1ff8\22\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\16\141\1\u1ff9\10\141\1\0\4\141\1\132\4\0\12\141" + + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + "\1\141\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + + "\22\141\1\u1ffa\4\141\1\0\4\141\1\132\4\0\12\141" + "\1\0\7\141\1\132\10\0\6\141\1\0\11\141\1\0" + + "\1\u1ffb\1\0\1\132\1\u015c\1\141\1\0\2\141\14\0" + "\27\141\1\0\4\141\1\132\4\0\12\141\1\0\7\141" + + "\1\132\10\0\6\141\1\0\11\141\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\1\u1ffc\26\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\4\141\1\u1ffd\22\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + "\1\u015c\1\141\1\0\2\141\14\0\14\141\1\u1023\12\141" + + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + "\10\0\6\141\1\0\11\141\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\10\141\1\u1ffe\16\141" + "\1\0\4\141\1\132\4\0\12\141\1\0\7\141\1\132" + + "\10\0\6\141\1\0\10\141\1\u1fff\1\0\1\141\1\0" + "\1\132\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\10\141\1\u2000\1\0\1\141\1\0\1\132" + + "\1\u015c\1\141\1\0\2\141\14\0\27\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\22\141\1\u0d65\4\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\27\141\1\0\4\141\1\132\4\0" + "\11\141\1\u0b78\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\12\141\1\u2001\14\141\1\0\4\141\1\132" + + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + "\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141\1\0" + + "\2\141\14\0\15\141\1\u2002\11\141\1\0\4\141\1\132" + "\4\0\12\141\1\0\7\141\1\132\10\0\6\141\1\0" + + "\11\141\1\0\1\u1dd6\1\0\1\132\1\u015c\1\141\1\0" + "\2\141\14\0\21\141\1\u0e88\3\141\1\u041e\1\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\5\141\1\u0ad5\21\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\2\141\1\u2003\24\141\1\0" + + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + + "\1\141\1\0\2\141\14\0\4\141\1\u060f\22\141\1\0" + "\4\141\1\132\4\0\12\141\1\0\7\141\1\132\10\0" + + "\6\141\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c" + "\1\141\1\0\2\141\14\0\1\u2004\26\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + + "\1\0\2\141\14\0\16\141\1\u2005\10\141\1\0\4\141" + "\1\132\4\0\12\141\1\0\7\141\1\132\10\0\6\141" + + "\1\0\11\141\1\0\1\141\1\0\1\132\1\u015c\1\141" + "\1\0\2\141\14\0\14\141\1\u2006\12\141\1\0\4\141" + + "\1\132\4\0\12\141\1\0\7\141"; + + private static int[] zzUnpackTrans() { + int[] result = new int[775418]; + int offset = 0; + offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_2, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_3, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_4, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_5, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_6, offset, result); + offset = zzUnpackTrans(ZZ_TRANS_PACKED_7, 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\5\0\2\1\1\0\2\1\1\0\2\1\14\0\1\1" + "\5\0\2\1\1\11\4\1\1\11\5\1\2\11\3\1" + + "\1\11\1\1\3\11\1\1\1\11\26\1\1\11\1\1" + "\1\11\1\1\7\11\1\1\1\11\2\1\2\11\10\1" + "\1\11\3\1\1\11\22\1\2\11\1\1\1\11\2\1" + + "\1\11\1\1\1\11\1\1\1\11\2\1\1\11\6\1" + "\1\11\10\1\1\11\4\1\1\11\1\1\1\11\42\1" + "\1\11\3\1\1\11\2\1\2\11\3\1\1\11\1\1" + + "\3\11\1\1\1\11\4\1\1\11\1\1\3\11\4\1" + "\4\11\1\1\1\11\6\1\7\11\2\1\1\11\2\1" + "\1\11\1\1\1\11\1\1\1\11\5\1\1\11\5\0" + + "\105\1\1\11\2\0\1\1\1\0\1\11\1\0\76\1" + "\1\11\3\1\1\0\1\11\6\0\2\11\33\0\13\1" + "\1\11\307\1\2\11\1\1\1\11\1\0\1\11\1\1" + + "\15\0\1\1\1\11\5\0\1\1\1\0\3\11\3\1" + "\2\0\1\11\4\0\101\1\3\0\5\1\1\0\67\1" + "\71\0\u0185\1\25\0\2\1\1\11\3\0\45\1\3\0" + + "\1\11\43\1\2\0\1\11\4\0\1\1\2\0\1\1" + "\41\0\1\11\24\0\u01fb\1\17\0\1\11\4\0\2\1" + "\1\11\2\0\25\1\1\11\1\0\1\11\25\1\2\11" + + "\17\0\1\1\23\0\1\1\12\0\u0278\1\16\0\14\1" + "\1\0\14\1\34\0\u02b3\1\12\0\4\1\1\0\6\1" + + "\2\0\1\1\1\0\1\1\14\0\u02d6\1\6\0\1\1" + "\1\0\2\1\7\0\u02a1\1\1\11\4\0\1\1\1\11" + + "\1\1\1\11\2\0\1\11\u0267\1\4\0\u021c\1\3\0" + "\1\11\u083e\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[8198]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Type specific to PHPTokenMaker denoting a line ending with an unclosed * double-quote attribute. */ - private static final int INTERNAL_ATTR_DOUBLE = -1; - - + private static final int INTERNAL_ATTR_DOUBLE = -1; /** * Type specific to PHPTokenMaker denoting a line ending with an unclosed * single-quote attribute. */ - private static final int INTERNAL_ATTR_SINGLE = -2; - - + private static final int INTERNAL_ATTR_SINGLE = -2; /** * Token type specific to PHPTokenMaker; this signals that the user has * ended a line with an unclosed HTML tag; thus a new line is beginning * still inside of the tag. */ - private static final int INTERNAL_INTAG = -3; - + private static final int INTERNAL_INTAG = -3; /** * Token type specific to PHPTokenMaker; this signals that the user has * ended a line with an unclosed <script> tag. */ - private static final int INTERNAL_INTAG_SCRIPT = -4; - + private static final int INTERNAL_INTAG_SCRIPT = -4; /** * Token type specifying we're in a double-qouted attribute in a * script tag. */ private static final int INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT = -5; - /** * Token type specifying we're in a single-qouted attribute in a * script tag. */ private static final int INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT = -6; - /** * Token type specifying that the user has * ended a line with an unclosed <style> tag. */ - private static final int INTERNAL_INTAG_STYLE = -7; - + private static final int INTERNAL_INTAG_STYLE = -7; /** * Token type specifying we're in a double-qouted attribute in a * style tag. */ private static final int INTERNAL_ATTR_DOUBLE_QUOTE_STYLE = -8; - /** * Token type specifying we're in a single-qouted attribute in a * style tag. */ private static final int INTERNAL_ATTR_SINGLE_QUOTE_STYLE = -9; - /** * Token type specifying we're in JavaScript. */ - private static final int INTERNAL_IN_JS = -10; - + private static final int INTERNAL_IN_JS = -10; /** * Token type specifying we're in a JavaScript multiline comment. */ - private static final int INTERNAL_IN_JS_MLC = -11; - + private static final int INTERNAL_IN_JS_MLC = -11; /** * Token type specifying we're in a JavaScript documentation comment. */ private static final int INTERNAL_IN_JS_COMMENT_DOCUMENTATION = -12; - /** * Token type specifying we're in an invalid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_INVALID = -13; - + private static final int INTERNAL_IN_JS_STRING_INVALID = -13; /** * Token type specifying we're in a valid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_VALID = -14; - + private static final int INTERNAL_IN_JS_STRING_VALID = -14; /** - * Token type specifying we're in an invalid multi-line JS single-quoted string. + * Token type specifying we're in an invalid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_INVALID = -15; - + private static final int INTERNAL_IN_JS_CHAR_INVALID = -15; /** - * Token type specifying we're in a valid multi-line JS single-quoted string. + * Token type specifying we're in a valid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_VALID = -16; - + private static final int INTERNAL_IN_JS_CHAR_VALID = -16; /** * Internal type denoting a line ending in CSS. */ - private static final int INTERNAL_CSS = -17; - + private static final int INTERNAL_CSS = -17; /** * Internal type denoting a line ending in a CSS property. */ - private static final int INTERNAL_CSS_PROPERTY = -18; - + private static final int INTERNAL_CSS_PROPERTY = -18; /** * Internal type denoting a line ending in a CSS property value. */ - private static final int INTERNAL_CSS_VALUE = -19; - + private static final int INTERNAL_CSS_VALUE = -19; /** * Token type specifying we're in a valid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID = -23; - /** * Token type specifying we're in an invalid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID = -24; - /** * Internal type denoting line ending in a CSS double-quote string. * The state to return to is embedded in the actual end token type. */ - private static final int INTERNAL_CSS_STRING = -(1<<11); - + private static final int INTERNAL_CSS_STRING = -(1 << 11); /** * Internal type denoting line ending in a CSS single-quote string. * The state to return to is embedded in the actual end token type. */ - private static final int INTERNAL_CSS_CHAR = -(2<<11); - + private static final int INTERNAL_CSS_CHAR = -(2 << 11); /** * Internal type denoting line ending in a CSS multi-line comment. * The state to return to is embedded in the actual end token type. */ - private static final int INTERNAL_CSS_MLC = -(3<<11); - + private static final int INTERNAL_CSS_MLC = -(3 << 11); /** - * Token type specifying we're in PHP. This particular field is public so + * Token type specifying we're in PHP. This particular field is public so * that we can hack and key off of it for code completion. */ - public static final int INTERNAL_IN_PHP = -(4<<11); - + public static final int INTERNAL_IN_PHP = -(4 << 11); /** * Token type specifying we're in a PHP multiline comment. */ - private static final int INTERNAL_IN_PHP_MLC = -(5<<11); - + private static final int INTERNAL_IN_PHP_MLC = -(5 << 11); /** * Token type specifying we're in a PHP multiline string. */ - private static final int INTERNAL_IN_PHP_STRING = -(6<<11); - + private static final int INTERNAL_IN_PHP_STRING = -(6 << 11); /** * Token type specifying we're in a PHP multiline char. */ - private static final int INTERNAL_IN_PHP_CHAR = -(7<<11); - + private static final int INTERNAL_IN_PHP_CHAR = -(7 << 11); /** * The state previous CSS-related state we were in before going into a CSS * string, multi-line comment, etc. */ private int cssPrevState; - /** * Whether closing markup tags are automatically completed for PHP. */ private static boolean completeCloseTags; - /** * The state PHP was started in (YYINITIAL, INTERNAL_IN_JS, etc.). */ private int phpInState; - /** * The language index we were in when PHP was started. */ private int phpInLangIndex; - /** * When in the JS_STRING state, whether the current string is valid. */ private boolean validJSString; - /** - * Language state set on HTML tokens. Must be 0. + * Language state set on HTML tokens. Must be 0. */ private static final int LANG_INDEX_DEFAULT = 0; - /** * Language state set on JavaScript tokens. */ private static final int LANG_INDEX_JS = 1; - /** * Language state set on CSS tokens. */ private static final int LANG_INDEX_CSS = 2; - - /** * Language state set on PHP. */ private static final int LANG_INDEX_PHP = 3; - private Stack varDepths; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public PHPTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds an end token that encodes the information necessary to return * to the pre-PHP state and language index. * - * @param endTokenState The PHP-related end-token state. + * @param endTokenState + * The PHP-related end-token state. */ private void addPhpEndToken(int endTokenState) { - addEndToken(endTokenState - phpInState - (phpInLangIndex<<16)); + addEndToken(endTokenState - phpInState - (phpInLangIndex << 16)); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -24624,10 +13044,9 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { protected OccurrenceMarker createOccurrenceMarker() { return new HtmlOccurrenceMarker(); } - - + /** - * Sets whether markup close tags should be completed. You might not want + * Sets whether markup close tags should be completed. You might not want * this to be the case, since some tags in standard HTML aren't usually * closed. * @@ -24638,15 +13057,12 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { public boolean getCompleteCloseTags() { return completeCloseTags; } - - + @Override public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex) { - return languageIndex==LANG_INDEX_CSS || languageIndex==LANG_INDEX_JS || - languageIndex==LANG_INDEX_PHP; + return languageIndex == LANG_INDEX_CSS || languageIndex == LANG_INDEX_JS || languageIndex == LANG_INDEX_PHP; } - - + /** * {@inheritDoc} */ @@ -24662,56 +13078,53 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { return new String[] { "" }; } } - - + /** * {@inheritDoc} */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.FUNCTION || type==Token.VARIABLE || - type==Token.MARKUP_TAG_NAME; + return type == Token.FUNCTION || type == Token.VARIABLE || type == Token.MARKUP_TAG_NAME; } - - + /** * Overridden to handle newlines in JS and CSS differently than those in * markup. */ @Override public boolean getShouldIndentNextLineAfter(Token token) { - int languageIndex = token==null ? 0 : token.getLanguageIndex(); + int languageIndex = token == null ? 0 : token.getLanguageIndex(); if (getCurlyBracesDenoteCodeBlocks(languageIndex)) { - if (token!=null && token.length()==1) { + if (token != null && token.length() == 1) { char ch = token.charAt(0); - return ch=='{' || ch=='('; + return ch == '{' || ch == '('; } } return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; phpInState = YYINITIAL; // Shouldn't be necessary cssPrevState = CSS; // Shouldn't be necessary int languageIndex = LANG_INDEX_DEFAULT; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -24804,57 +13217,56 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { validJSString = false; break; default: - if (initialTokenType<-1024) { // INTERNAL_IN_PHPxxx - phpInState + if (initialTokenType < -1024) { // INTERNAL_IN_PHPxxx - + // phpInState int main = -(-initialTokenType & 0x0000ff00); switch (main) { default: // Should never happen case INTERNAL_IN_PHP: state = PHP; languageIndex = LANG_INDEX_PHP; - phpInState = -initialTokenType&0xff; - phpInLangIndex = (-initialTokenType&0x00ff0000)>>16; + phpInState = -initialTokenType & 0xff; + phpInLangIndex = (-initialTokenType & 0x00ff0000) >> 16; break; case INTERNAL_IN_PHP_MLC: state = PHP_MLC; languageIndex = LANG_INDEX_PHP; - phpInState = -initialTokenType&0xff; - phpInLangIndex = (-initialTokenType&0x00ff0000)>>16; + phpInState = -initialTokenType & 0xff; + phpInLangIndex = (-initialTokenType & 0x00ff0000) >> 16; break; case INTERNAL_IN_PHP_STRING: state = PHP_STRING; languageIndex = LANG_INDEX_PHP; - phpInState = -initialTokenType&0xff; - phpInLangIndex = (-initialTokenType&0x00ff0000)>>16; + phpInState = -initialTokenType & 0xff; + phpInLangIndex = (-initialTokenType & 0x00ff0000) >> 16; break; case INTERNAL_IN_PHP_CHAR: state = PHP_CHAR; languageIndex = LANG_INDEX_PHP; - phpInState = -initialTokenType&0xff; - phpInLangIndex = (-initialTokenType&0x00ff0000)>>16; + phpInState = -initialTokenType & 0xff; + phpInLangIndex = (-initialTokenType & 0x00ff0000) >> 16; break; case INTERNAL_CSS_STRING: state = CSS_STRING; languageIndex = LANG_INDEX_CSS; - cssPrevState = -initialTokenType&0xff; + cssPrevState = -initialTokenType & 0xff; break; case INTERNAL_CSS_CHAR: state = CSS_CHAR_LITERAL; languageIndex = LANG_INDEX_CSS; - cssPrevState = -initialTokenType&0xff; + cssPrevState = -initialTokenType & 0xff; break; case INTERNAL_CSS_MLC: state = CSS_C_STYLE_COMMENT; languageIndex = LANG_INDEX_CSS; - cssPrevState = -initialTokenType&0xff; + cssPrevState = -initialTokenType & 0xff; break; } - } - else { + } else { state = YYINITIAL; } break; } - setLanguageIndex(languageIndex); start = text.offset; s = text; @@ -24866,23 +13278,21 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** - * Sets whether markup close tags should be completed. You might not want + * Sets whether markup close tags should be completed. You might not want * this to be the case, since some tags in standard HTML aren't usually * closed. * - * @param complete Whether closing markup tags are completed. + * @param complete + * Whether closing markup tags are completed. * @see #getCompleteCloseTags() */ public static void setCompleteCloseTags(boolean complete) { completeCloseTags = complete; } - - + /** * Overridden to remember the language index we're leaving. */ @@ -24892,19 +13302,17 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { yybegin(state); setLanguageIndex(languageIndex); } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -24913,7 +13321,8 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -24922,1035 +13331,1366 @@ public class PHPTokenMaker extends AbstractMarkupTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 PHPTokenMaker(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 PHPTokenMaker(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 < 206) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 109: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 137: break; - case 67: - { addToken(Token.OPERATOR); yybegin(CSS_VALUE); - } - case 138: break; - case 92: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 139: break; - case 75: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 140: break; - case 23: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE_SCRIPT); - } - case 141: break; - case 9: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.MARKUP_DTD); - } - case 142: break; - case 61: - { addToken(Token.SEPARATOR); yybegin(CSS_PROPERTY); - } - case 143: break; - case 4: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(INTAG); - } - case 144: break; - case 129: - { addToken(Token.RESERVED_WORD_2); - } - case 145: break; - case 112: - { addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); yybegin(cssPrevState); - } - case 146: break; - case 110: - { start = zzMarkedPos-2; cssPrevState = zzLexicalState; yybegin(CSS_C_STYLE_COMMENT); - } - case 147: break; - case 37: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_INVALID); - } + + /** + * 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 PHPTokenMaker(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 PHPTokenMaker(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 < 206) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 109: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 137: + break; + case 67: { + addToken(Token.OPERATOR); + yybegin(CSS_VALUE); + } + case 138: + break; + case 92: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 139: + break; + case 75: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 140: + break; + case 23: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE_SCRIPT); + } + case 141: + break; + case 9: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.MARKUP_DTD); + } + case 142: + break; + case 61: { + addToken(Token.SEPARATOR); + yybegin(CSS_PROPERTY); + } + case 143: + break; + case 4: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(INTAG); + } + case 144: + break; + case 129: { + addToken(Token.RESERVED_WORD_2); + } + case 145: + break; + case 112: { + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + yybegin(cssPrevState); + } + case 146: + break; + case 110: { + start = zzMarkedPos - 2; + cssPrevState = zzLexicalState; + yybegin(CSS_C_STYLE_COMMENT); + } + case 147: + break; + case 37: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_INVALID); + } + return firstToken; + } + case 148: + break; + case 5: { + addToken(Token.WHITESPACE); + } + case 149: + break; + case 131: { + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 6, zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + start = zzMarkedPos; + yybegin(INTAG_SCRIPT); + } + case 150: + break; + case 111: { + addToken(Token.REGEX); + } + case 151: + break; + case 42: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 152: + break; + case 135: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(temp, temp + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 153: + break; + case 106: { + addToken(Token.FUNCTION); + } + case 154: + break; + case 101: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); + start = zzMarkedPos; + } + case 155: + break; + case 39: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 156: + break; + case 58: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_STRING); + } + case 157: + break; + case 113: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + start = zzMarkedPos - 2; + if (varDepths == null) { + varDepths = new Stack(); + } else { + varDepths.clear(); + } + varDepths.push(Boolean.TRUE); + yybegin(JS_TEMPLATE_LITERAL_EXPR); + } + case 158: + break; + case 83: { + if (!varDepths.empty()) { + varDepths.pop(); + if (varDepths.empty()) { + addToken(start, zzStartRead, Token.VARIABLE); + start = zzMarkedPos; + yybegin(JS_TEMPLATE_LITERAL); + } + } + } + case 159: + break; + case 78: { + if (validJSString) { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 160: + break; + case 80: { /* + * Skip valid '$' that is not part of template + * literal expression start + */ + } + case 161: + break; + case 25: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE_STYLE); + } + case 162: + break; + case 35: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_TEMPLATE_LITERAL); + } + case 163: + break; + case 96: { /* Skip all escaped chars. */ + } + case 164: + break; + case 89: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(YYINITIAL); + } + case 165: + break; + case 28: { + yybegin(INTAG_STYLE); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 166: + break; + case 124: { + if (JavaScriptTokenMaker.isJavaScriptCompatible("1.6")) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 167: + break; + case 119: { + if (JavaScriptTokenMaker.isJavaScriptCompatible("1.7")) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 168: + break; + case 46: { + start = zzMarkedPos - 1; + yybegin(PHP_STRING); + } + case 169: + break; + case 68: { + /* System.out.println("css_value: " + yytext()); */ addToken(Token.IDENTIFIER); + } + case 170: + break; + case 99: { + int temp = zzStartRead; + if (zzStartRead > start) + addToken(start, zzStartRead - 1, validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE); + validJSString = true; + addToken(temp, zzMarkedPos - 1, Token.SEPARATOR); + phpInState = zzLexicalState; + yybegin(PHP, LANG_INDEX_PHP); + } + case 171: + break; + case 16: { + /* A non-recognized HTML tag name */ yypushback(yylength()); + yybegin(INTAG); + } + case 172: + break; + case 26: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(CSS, LANG_INDEX_CSS); + } + case 173: + break; + case 76: { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + yybegin(cssPrevState); + } + case 174: + break; + case 95: { + int temp = zzStartRead; + if (zzStartRead > start) + addToken(start, zzStartRead - 1, validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR); + validJSString = true; + addToken(temp, zzMarkedPos - 1, Token.SEPARATOR); + phpInState = zzLexicalState; + yybegin(PHP, LANG_INDEX_PHP); + } + case 175: + break; + case 87: { + addToken(Token.SEPARATOR); + phpInState = zzLexicalState; + yybegin(PHP, LANG_INDEX_PHP); + } + case 176: + break; + case 114: { + varDepths.push(Boolean.TRUE); + } + case 177: + break; + case 27: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE_STYLE); + } + case 178: + break; + case 19: { /* Allowing " start) + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addToken(temp, zzMarkedPos - 1, Token.SEPARATOR); + phpInState = zzLexicalState; + yybegin(PHP, LANG_INDEX_PHP); + } + case 206: + break; + case 128: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 207: + break; + case 103: { + start = zzMarkedPos - 2; + yybegin(PHP_MLC); + } + case 208: + break; + case 54: { /* + * Skip escaped single quotes only, but this should + * still work. + */ + } + case 209: + break; + case 66: { + addToken(Token.SEPARATOR); + yybegin(CSS); + } + case 210: + break; + case 118: { + start = zzMarkedPos - 3; + yybegin(JS_DOCCOMMENT); + } + case 211: + break; + case 134: { + yybegin(YYINITIAL); + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addToken(temp, temp + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 212: + break; + case 31: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_STRING); + } + case 213: + break; + case 74: { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(cssPrevState); + } + case 214: + break; + case 79: { + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 215: + break; + case 64: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 216: + break; + case 45: { + addPhpEndToken(INTERNAL_IN_PHP); + return firstToken; + } + case 217: + break; + case 38: { + int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; + addToken(start, zzStartRead, type); + yybegin(JAVASCRIPT); + } + case 218: + break; + case 107: { + int count = yylength(); + addToken(zzStartRead, zzStartRead, Token.FUNCTION); + zzMarkedPos -= (count - 1); // yypushback(count-1); + } + case 219: + break; + case 34: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_CHAR); + } + case 220: + break; + case 24: { + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + yybegin(INTAG_SCRIPT); + } + case 221: + break; + case 126: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 222: + break; + case 91: { + start = zzMarkedPos - 2; + yybegin(JS_MLC); + } + case 223: + break; + case 94: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 224: + break; + case 72: { + int temp = zzMarkedPos - 2; + addToken(zzStartRead, temp, Token.FUNCTION); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.SEPARATOR); + zzStartRead = zzCurrentPos = zzMarkedPos; + } + case 225: + break; + case 50: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addPhpEndToken(INTERNAL_IN_PHP_STRING); + return firstToken; + } + case 226: + break; + case 136: { + addToken(Token.ANNOTATION); + } + case 227: + break; + case 108: { + yybegin(PHP); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 228: + break; + case 51: { + yybegin(PHP); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 229: + break; + case 29: { + addToken(Token.ERROR_IDENTIFIER); + } + case 230: + break; + case 69: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 231: + break; + case 121: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 232: + break; + case 6: { + addToken(Token.MARKUP_ENTITY_REFERENCE); + } + case 233: + break; + case 123: { + addToken(Token.LITERAL_BOOLEAN); + } + case 234: + break; + case 17: { + /* Shouldn't happen */ yypushback(1); + yybegin(INTAG); + } + case 235: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 236: + break; + case 57: { + addEndToken(INTERNAL_CSS); + return firstToken; + } + case 237: + break; + case 133: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - 7, zzMarkedPos - 2, Token.MARKUP_TAG_NAME); + addToken(zzMarkedPos - 1, zzMarkedPos - 1, Token.MARKUP_TAG_DELIMITER); + } + case 238: + break; + case 62: { + start = zzMarkedPos - 1; + cssPrevState = zzLexicalState; + yybegin(CSS_CHAR_LITERAL); + } + case 239: + break; + case 86: { + addToken(Token.MARKUP_TAG_DELIMITER); + phpInState = zzLexicalState; + yybegin(PHP, LANG_INDEX_PHP); + } + case 240: + break; + case 65: { + addToken(Token.RESERVED_WORD); + } + case 241: + break; + case 11: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE); + } + case 242: + break; + case 47: { + addToken(Token.COMMENT_EOL); + addPhpEndToken(INTERNAL_IN_PHP); + return firstToken; + } + case 243: + break; + case 13: { + yybegin(YYINITIAL); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 244: + break; + case 59: { + addToken(Token.DATA_TYPE); + } + case 245: + break; + case 53: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addPhpEndToken(INTERNAL_IN_PHP_CHAR); + return firstToken; + } + case 246: + break; + case 55: { + yybegin(PHP); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 247: + break; + case 33: { + addToken(Token.SEPARATOR); + } + case 248: + break; + case 115: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + zzMarkedPos -= (count - 2); // yypushback(count-2); + yybegin(INTAG_CHECK_TAG_NAME); + } + case 249: + break; + case 73: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); + return firstToken; + } + case 250: + break; + case 71: { + /* End of a function */ addToken(Token.SEPARATOR); + } + case 251: + break; + case 18: { + addToken(Token.MARKUP_TAG_NAME); + } + case 252: + break; + case 10: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 253: + break; + case 127: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); + start = zzMarkedPos; + } + case 254: + break; + case 48: { + start = zzMarkedPos - 1; + yybegin(PHP_CHAR); + } + case 255: + break; + case 105: { + yybegin(phpInState, phpInLangIndex); + addToken(Token.MARKUP_TAG_DELIMITER); + start = zzMarkedPos; + } + case 256: + break; + case 90: { + start = zzMarkedPos - 2; + yybegin(JS_EOL_COMMENT); + } + case 257: + break; + case 41: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_IN_JS_STRING_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_STRING_INVALID); + } + return firstToken; + } + case 258: + break; + case 93: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 259: + break; + case 15: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE); + } + case 260: + break; + case 117: { + boolean highlightedAsRegex = false; + if (firstToken == null) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } else { + // If this is *likely* to be a regex, based on + // the previous token, highlight it as such. + Token t = firstToken.getLastNonCommentNonWhitespaceToken(); + if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } + } + // If it doesn't *appear* to be a regex, highlight it as + // individual tokens. + if (!highlightedAsRegex) { + int temp = zzStartRead + 1; + addToken(zzStartRead, zzStartRead, Token.OPERATOR); + zzStartRead = zzCurrentPos = zzMarkedPos = temp; + } + } + case 261: + break; + case 77: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 262: + break; + case 12: { + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 263: + break; + case 32: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 264: + break; + case 85: { + start = zzMarkedPos - 2; + yybegin(DTD); + } + case 265: + break; + case 20: { + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + yybegin(INTAG); + } + case 266: + break; + case 49: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addPhpEndToken(INTERNAL_IN_PHP_MLC); + return firstToken; + } + case 267: + break; + case 21: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE_SCRIPT); + } + case 268: + break; + case 44: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 269: + break; + case 82: { // TODO: This isn't right. The expression and its + // depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 270: + break; + case 60: { + /* Unknown pseudo class */ addToken(Token.DATA_TYPE); + } + case 271: + break; + case 1: {} + case 272: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case PHP: { + addPhpEndToken(INTERNAL_IN_PHP); return firstToken; - } - case 148: break; - case 5: - { addToken(Token.WHITESPACE); - } - case 149: break; - case 131: - { addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-6,zzMarkedPos-1, Token.MARKUP_TAG_NAME); - start = zzMarkedPos; yybegin(INTAG_SCRIPT); - } - case 150: break; - case 111: - { addToken(Token.REGEX); - } - case 151: break; - case 42: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 152: break; - case 135: - { int temp = zzStartRead; - addToken(start,zzStartRead-1, Token.COMMENT_EOL); - yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(temp,temp+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 153: break; - case 106: - { addToken(Token.FUNCTION); - } - case 154: break; - case 101: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_MARKUP); start = zzMarkedPos; - } - case 155: break; - case 39: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 156: break; - case 58: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_STRING); - } - case 157: break; - case 113: - { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - start = zzMarkedPos-2; - if (varDepths==null) { - varDepths = new Stack(); - } - else { - varDepths.clear(); - } - varDepths.push(Boolean.TRUE); - yybegin(JS_TEMPLATE_LITERAL_EXPR); - } - case 158: break; - case 83: - { if (!varDepths.empty()) { - varDepths.pop(); - if (varDepths.empty()) { - addToken(start,zzStartRead, Token.VARIABLE); - start = zzMarkedPos; - yybegin(JS_TEMPLATE_LITERAL); - } } - } - case 159: break; - case 78: - { if (validJSString) { - addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + case 8199: + break; + case INATTR_SINGLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT); return firstToken; - } - case 160: break; - case 80: - { /* Skip valid '$' that is not part of template literal expression start */ - } - case 161: break; - case 25: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE_STYLE); - } - case 162: break; - case 35: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_TEMPLATE_LITERAL); - } - case 163: break; - case 96: - { /* Skip all escaped chars. */ - } - case 164: break; - case 89: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(YYINITIAL); - } - case 165: break; - case 28: - { yybegin(INTAG_STYLE); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 166: break; - case 124: - { if(JavaScriptTokenMaker.isJavaScriptCompatible("1.6")){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 167: break; - case 119: - { if(JavaScriptTokenMaker.isJavaScriptCompatible("1.7")){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 168: break; - case 46: - { start = zzMarkedPos-1; yybegin(PHP_STRING); - } - case 169: break; - case 68: - { /*System.out.println("css_value: " + yytext());*/ addToken(Token.IDENTIFIER); - } - case 170: break; - case 99: - { int temp=zzStartRead; if (zzStartRead>start) addToken(start,zzStartRead-1, validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE); validJSString = true; addToken(temp, zzMarkedPos-1, Token.SEPARATOR); phpInState = zzLexicalState; yybegin(PHP, LANG_INDEX_PHP); - } - case 171: break; - case 16: - { /* A non-recognized HTML tag name */ yypushback(yylength()); yybegin(INTAG); - } - case 172: break; - case 26: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(CSS, LANG_INDEX_CSS); - } - case 173: break; - case 76: - { addToken(start,zzStartRead, Token.LITERAL_CHAR); yybegin(cssPrevState); - } - case 174: break; - case 95: - { int temp=zzStartRead; if (zzStartRead>start) addToken(start,zzStartRead-1, validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR); validJSString = true; addToken(temp, zzMarkedPos-1, Token.SEPARATOR); phpInState = zzLexicalState; yybegin(PHP, LANG_INDEX_PHP); - } - case 175: break; - case 87: - { addToken(Token.SEPARATOR); phpInState = zzLexicalState; yybegin(PHP, LANG_INDEX_PHP); - } - case 176: break; - case 114: - { varDepths.push(Boolean.TRUE); - } - case 177: break; - case 27: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE_STYLE); - } - case 178: break; - case 19: - { /* Allowing "start) addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addToken(temp, zzMarkedPos-1, Token.SEPARATOR); phpInState = zzLexicalState; yybegin(PHP, LANG_INDEX_PHP); - } - case 206: break; - case 128: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 207: break; - case 103: - { start = zzMarkedPos-2; yybegin(PHP_MLC); - } - case 208: break; - case 54: - { /* Skip escaped single quotes only, but this should still work. */ - } - case 209: break; - case 66: - { addToken(Token.SEPARATOR); yybegin(CSS); - } - case 210: break; - case 118: - { start = zzMarkedPos-3; yybegin(JS_DOCCOMMENT); - } - case 211: break; - case 134: - { yybegin(YYINITIAL); - int temp = zzStartRead; - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); - addToken(temp,temp+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 212: break; - case 31: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_STRING); - } - case 213: break; - case 74: - { addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(cssPrevState); - } - case 214: break; - case 79: - { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + } + case 8200: + break; + case JS_CHAR: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 215: break; - case 64: - { addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 216: break; - case 45: - { addPhpEndToken(INTERNAL_IN_PHP); return firstToken; - } - case 217: break; - case 38: - { int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; addToken(start,zzStartRead, type); yybegin(JAVASCRIPT); - } - case 218: break; - case 107: - { int count = yylength(); - addToken(zzStartRead,zzStartRead, Token.FUNCTION); - zzMarkedPos -= (count-1); //yypushback(count-1); - } - case 219: break; - case 34: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_CHAR); - } - case 220: break; - case 24: - { addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); yybegin(INTAG_SCRIPT); - } - case 221: break; - case 126: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 222: break; - case 91: - { start = zzMarkedPos-2; yybegin(JS_MLC); - } - case 223: break; - case 94: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 224: break; - case 72: - { int temp = zzMarkedPos - 2; - addToken(zzStartRead, temp, Token.FUNCTION); - addToken(zzMarkedPos-1, zzMarkedPos-1, Token.SEPARATOR); - zzStartRead = zzCurrentPos = zzMarkedPos; - } - case 225: break; - case 50: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addPhpEndToken(INTERNAL_IN_PHP_STRING); return firstToken; - } - case 226: break; - case 136: - { addToken(Token.ANNOTATION); - } - case 227: break; - case 108: - { yybegin(PHP); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 228: break; - case 51: - { yybegin(PHP); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 229: break; - case 29: - { addToken(Token.ERROR_IDENTIFIER); - } - case 230: break; - case 69: - { addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 231: break; - case 121: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 232: break; - case 6: - { addToken(Token.MARKUP_ENTITY_REFERENCE); - } - case 233: break; - case 123: - { addToken(Token.LITERAL_BOOLEAN); - } - case 234: break; - case 17: - { /* Shouldn't happen */ yypushback(1); yybegin(INTAG); - } - case 235: break; - case 3: - { addNullToken(); return firstToken; - } - case 236: break; - case 57: - { addEndToken(INTERNAL_CSS); return firstToken; - } - case 237: break; - case 133: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-7,zzMarkedPos-2, Token.MARKUP_TAG_NAME); - addToken(zzMarkedPos-1,zzMarkedPos-1, Token.MARKUP_TAG_DELIMITER); - } - case 238: break; - case 62: - { start = zzMarkedPos-1; cssPrevState = zzLexicalState; yybegin(CSS_CHAR_LITERAL); - } - case 239: break; - case 86: - { addToken(Token.MARKUP_TAG_DELIMITER); phpInState = zzLexicalState; yybegin(PHP, LANG_INDEX_PHP); - } - case 240: break; - case 65: - { addToken(Token.RESERVED_WORD); - } - case 241: break; - case 11: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE); - } - case 242: break; - case 47: - { addToken(Token.COMMENT_EOL); addPhpEndToken(INTERNAL_IN_PHP); return firstToken; - } - case 243: break; - case 13: - { yybegin(YYINITIAL); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 244: break; - case 59: - { addToken(Token.DATA_TYPE); - } - case 245: break; - case 53: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addPhpEndToken(INTERNAL_IN_PHP_CHAR); return firstToken; - } - case 246: break; - case 55: - { yybegin(PHP); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 247: break; - case 33: - { addToken(Token.SEPARATOR); - } - case 248: break; - case 115: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - zzMarkedPos -= (count-2); //yypushback(count-2); - yybegin(INTAG_CHECK_TAG_NAME); - } - case 249: break; - case 73: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 250: break; - case 71: - { /* End of a function */ addToken(Token.SEPARATOR); - } - case 251: break; - case 18: - { addToken(Token.MARKUP_TAG_NAME); - } - case 252: break; - case 10: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 253: break; - case 127: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_KEYWORD); start = zzMarkedPos; - } - case 254: break; - case 48: - { start = zzMarkedPos-1; yybegin(PHP_CHAR); - } - case 255: break; - case 105: - { yybegin(phpInState, phpInLangIndex); addToken(Token.MARKUP_TAG_DELIMITER); start = zzMarkedPos; - } - case 256: break; - case 90: - { start = zzMarkedPos-2; yybegin(JS_EOL_COMMENT); - } - case 257: break; - case 41: - { /* Line ending in '\' => continue to next line. */ + } + case 8201: + break; + case CSS_STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_CSS_STRING - cssPrevState); + return firstToken; + } + case 8202: + break; + case JS_DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); + return firstToken; + } + case 8203: + break; + case JS_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 8204: + break; + case CSS_CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addEndToken(INTERNAL_CSS_CHAR - cssPrevState); + return firstToken; + } + case 8205: + break; + case INTAG_SCRIPT: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG_SCRIPT); + return firstToken; + } + case 8206: + break; + case JS_TEMPLATE_LITERAL_EXPR: { + // TODO: This isn't right. The expression and + // its depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 8207: + break; + case CSS_PROPERTY: { + addEndToken(INTERNAL_CSS_PROPERTY); + return firstToken; + } + case 8208: + break; + case CSS_C_STYLE_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_CSS_MLC - cssPrevState); + return firstToken; + } + case 8209: + break; + case PHP_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addPhpEndToken(INTERNAL_IN_PHP_MLC); + return firstToken; + } + case 8210: + break; + case CSS: { + addEndToken(INTERNAL_CSS); + return firstToken; + } + case 8211: + break; + case CSS_VALUE: { + addEndToken(INTERNAL_CSS_VALUE); + return firstToken; + } + case 8212: + break; + case COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + return firstToken; + } + case 8213: + break; + case INATTR_DOUBLE_SCRIPT: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT); + return firstToken; + } + case 8214: + break; + case PHP_STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addPhpEndToken(INTERNAL_IN_PHP_STRING); + return firstToken; + } + case 8215: + break; + case JAVASCRIPT: { + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 8216: + break; + case INTAG: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG); + return firstToken; + } + case 8217: + break; + case INTAG_CHECK_TAG_NAME: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG); + return firstToken; + } + case 8218: + break; + case INATTR_SINGLE_STYLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_STYLE); + return firstToken; + } + case 8219: + break; + case DTD: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + return firstToken; + } + case 8220: + break; + case PHP_CHAR: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + addPhpEndToken(INTERNAL_IN_PHP_CHAR); + return firstToken; + } + case 8221: + break; + case JS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 8222: + break; + case INATTR_DOUBLE_STYLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_STYLE); + return firstToken; + } + case 8223: + break; + case INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE); + return firstToken; + } + case 8224: + break; + case JS_TEMPLATE_LITERAL: { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - addEndToken(INTERNAL_IN_JS_STRING_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_STRING_INVALID); - } - return firstToken; - } - case 258: break; - case 93: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 259: break; - case 15: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE); - } - case 260: break; - case 117: - { boolean highlightedAsRegex = false; - if (firstToken==null) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - else { - // If this is *likely* to be a regex, based on - // the previous token, highlight it as such. - Token t = firstToken.getLastNonCommentNonWhitespaceToken(); - if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - } - // If it doesn't *appear* to be a regex, highlight it as - // individual tokens. - if (!highlightedAsRegex) { - int temp = zzStartRead + 1; - addToken(zzStartRead, zzStartRead, Token.OPERATOR); - zzStartRead = zzCurrentPos = zzMarkedPos = temp; - } - } - case 261: break; - case 77: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 262: break; - case 12: - { addToken(Token.MARKUP_TAG_DELIMITER); - } - case 263: break; - case 32: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 264: break; - case 85: - { start = zzMarkedPos-2; yybegin(DTD); - } - case 265: break; - case 20: - { addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); yybegin(INTAG); - } - case 266: break; - case 49: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addPhpEndToken(INTERNAL_IN_PHP_MLC); return firstToken; - } - case 267: break; - case 21: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE_SCRIPT); - } - case 268: break; - case 44: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 269: break; - case 82: - { // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 270: break; - case 60: - { /* Unknown pseudo class */ addToken(Token.DATA_TYPE); - } - case 271: break; - case 1: - { - } - case 272: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case PHP: { - addPhpEndToken(INTERNAL_IN_PHP); return firstToken; - } - case 8199: break; - case INATTR_SINGLE_SCRIPT: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_SCRIPT); return firstToken; - } - case 8200: break; - case JS_CHAR: { - addToken(start,zzStartRead-1, Token.ERROR_CHAR); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 8201: break; - case CSS_STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_CSS_STRING - cssPrevState); return firstToken; - } - case 8202: break; - case JS_DOCCOMMENT: { - yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); return firstToken; - } - case 8203: break; - case JS_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 8204: break; - case CSS_CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addEndToken(INTERNAL_CSS_CHAR - cssPrevState); return firstToken; - } - case 8205: break; - case INTAG_SCRIPT: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG_SCRIPT); return firstToken; - } - case 8206: break; - case JS_TEMPLATE_LITERAL_EXPR: { - // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 8207: break; - case CSS_PROPERTY: { - addEndToken(INTERNAL_CSS_PROPERTY); return firstToken; - } - case 8208: break; - case CSS_C_STYLE_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_CSS_MLC - cssPrevState); return firstToken; - } - case 8209: break; - case PHP_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addPhpEndToken(INTERNAL_IN_PHP_MLC); return firstToken; - } - case 8210: break; - case CSS: { - addEndToken(INTERNAL_CSS); return firstToken; - } - case 8211: break; - case CSS_VALUE: { - addEndToken(INTERNAL_CSS_VALUE); return firstToken; - } - case 8212: break; - case COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); return firstToken; - } - case 8213: break; - case INATTR_DOUBLE_SCRIPT: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_SCRIPT); return firstToken; - } - case 8214: break; - case PHP_STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addPhpEndToken(INTERNAL_IN_PHP_STRING); return firstToken; - } - case 8215: break; - case JAVASCRIPT: { - addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 8216: break; - case INTAG: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG); return firstToken; - } - case 8217: break; - case INTAG_CHECK_TAG_NAME: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG); return firstToken; - } - case 8218: break; - case INATTR_SINGLE_STYLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE_QUOTE_STYLE); return firstToken; - } - case 8219: break; - case DTD: { - addToken(start,zzStartRead-1, Token.MARKUP_DTD); return firstToken; - } - case 8220: break; - case PHP_CHAR: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); addPhpEndToken(INTERNAL_IN_PHP_CHAR); return firstToken; - } - case 8221: break; - case JS_EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 8222: break; - case INATTR_DOUBLE_STYLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE_QUOTE_STYLE); return firstToken; - } - case 8223: break; - case INATTR_SINGLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE); return firstToken; - } - case 8224: break; - case JS_TEMPLATE_LITERAL: { - if (validJSString) { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); } return firstToken; - } - case 8225: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 8226: break; - case INATTR_DOUBLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE); return firstToken; - } - case 8227: break; - case JS_STRING: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS); return firstToken; - } - case 8228: break; - case INTAG_STYLE: { - addToken(zzMarkedPos,zzMarkedPos, INTERNAL_INTAG_STYLE); return firstToken; - } - case 8229: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 8225: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 8226: + break; + case INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE); + return firstToken; + } + case 8227: + break; + case JS_STRING: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS); + return firstToken; + } + case 8228: + break; + case INTAG_STYLE: { + addToken(zzMarkedPos, zzMarkedPos, INTERNAL_INTAG_STYLE); + return firstToken; + } + case 8229: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/PerlTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/PerlTokenMaker.java index 02c59fc..50330b9 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/PerlTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/PerlTokenMaker.java @@ -1,1477 +1,897 @@ /* The following code was generated by JFlex 1.4.1 on 3/11/12 12:58 AM */ - /* * 01/26/2008 - * * PerlTokenMaker.java - Scanner for Perl - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for Perl.

+ * Scanner for Perl. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated PerlTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated PerlTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class PerlTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int HEREDOC_EOF_SINGLE_QUOTED = 5; - public static final int HEREDOC_EOT_SINGLE_QUOTED = 7; - public static final int HEREDOC_EOT_UNQUOTED = 6; - public static final int STRING = 1; - public static final int BACKTICKS = 3; - public static final int YYINITIAL = 0; - public static final int HEREDOC_EOF_UNQUOTED = 4; - public static final int CHAR_LITERAL = 2; - public static final int POD = 8; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\12\1\11\1\0\1\12\1\6\22\0\1\12\1\46\1\102"+ - "\1\7\1\26\1\24\1\50\1\53\1\21\1\25\1\33\1\41\1\22"+ - "\1\17\1\20\1\32\1\3\1\61\1\62\1\61\1\61\3\5\2\2"+ - "\1\22\1\22\1\42\1\43\1\45\1\47\1\23\3\4\1\15\1\16"+ - "\1\104\5\1\1\14\2\1\1\103\4\1\1\105\3\1\1\13\2\1"+ - "\1\21\1\10\1\21\1\44\1\1\1\31\1\60\1\70\1\35\1\40"+ - "\1\57\1\74\1\72\1\56\1\65\1\101\1\71\1\37\1\67\1\73"+ - "\1\55\1\54\1\76\1\64\1\34\1\66\1\75\1\63\1\77\1\36"+ - "\1\100\1\1\1\27\1\52\1\30\1\51\uff81\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 = - "\11\0\1\1\1\2\2\3\1\1\1\4\1\5\1\6"+ - "\1\7\1\2\1\10\1\2\1\1\1\7\1\10\1\1"+ - "\1\11\2\7\5\2\10\7\1\12\24\2\1\13\1\14"+ - "\1\15\1\16\3\14\1\17\1\14\1\20\1\21\1\22"+ - "\1\14\1\23\3\14\1\24\1\14\1\25\5\14\1\26"+ - "\1\14\1\27\1\14\1\30\2\14\1\31\1\14\1\32"+ - "\1\3\1\33\1\32\1\33\1\32\1\34\1\32\1\4"+ - "\1\35\1\36\1\1\1\0\1\36\1\0\3\36\3\0"+ - "\1\7\1\0\2\2\2\0\22\2\1\37\1\2\1\40"+ - "\2\2\1\40\4\2\10\0\1\7\7\2\1\40\31\2"+ - "\1\1\1\0\1\2\2\0\1\2\1\37\6\2\1\40"+ - "\2\2\1\37\1\40\14\2\1\1\3\0\1\2\1\15"+ - "\1\41\1\14\1\0\2\41\1\0\1\20\1\42\1\14"+ - "\1\0\2\42\1\0\1\14\1\43\1\14\1\0\2\43"+ - "\1\0\3\14\10\0\1\33\1\0\2\34\1\0\1\44"+ - "\1\0\1\2\2\0\14\2\1\40\6\2\1\37\15\2"+ - "\15\0\33\2\1\37\1\2\1\0\2\45\7\2\1\40"+ - "\10\2\1\1\3\0\5\2\1\0\1\1\5\0\1\46"+ - "\1\0\1\46\11\0\1\45\10\2\1\37\26\2\4\0"+ - "\1\47\5\0\1\37\11\2\1\37\5\2\1\37\17\2"+ - "\1\0\4\45\2\2\1\37\1\2\1\0\2\45\1\50"+ - "\1\51\5\0\16\2\1\37\2\2\1\52\1\53\6\0"+ - "\2\2\1\37\25\2\1\45\2\2\3\0\1\37\7\2"+ - "\7\0\14\2\1\0\4\2\1\54\1\55\1\0\10\2"+ - "\1\0\1\2\1\0\4\2\1\0\12\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[601]; - 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\106\0\214\0\322\0\u0118\0\u015e\0\u01a4\0\u01ea"+ - "\0\u0230\0\u0276\0\u02bc\0\u0302\0\u0348\0\u038e\0\u03d4\0\u038e"+ - "\0\u041a\0\u0460\0\u04a6\0\u038e\0\u038e\0\u04ec\0\u0532\0\u0578"+ - "\0\u05be\0\u038e\0\u0604\0\u064a\0\u0690\0\u06d6\0\u071c\0\u0762"+ - "\0\u07a8\0\u07ee\0\u0834\0\u087a\0\u08c0\0\u0906\0\u094c\0\u038e"+ - "\0\u0992\0\u038e\0\u09d8\0\u0a1e\0\u0a64\0\u0aaa\0\u0af0\0\u0b36"+ - "\0\u0b7c\0\u0bc2\0\u0c08\0\u0c4e\0\u0c94\0\u0cda\0\u0d20\0\u0d66"+ - "\0\u0dac\0\u0df2\0\u0e38\0\u0e7e\0\u0ec4\0\u0f0a\0\u038e\0\u0f50"+ - "\0\u0f96\0\u038e\0\u0fdc\0\u1022\0\u1068\0\u038e\0\u10ae\0\u10f4"+ - "\0\u038e\0\u038e\0\u113a\0\u038e\0\u1180\0\u11c6\0\u120c\0\u038e"+ - "\0\u1252\0\u038e\0\u1298\0\u12de\0\u1324\0\u136a\0\u13b0\0\u038e"+ - "\0\u13f6\0\u038e\0\u143c\0\u038e\0\u1482\0\u14c8\0\u038e\0\u150e"+ - "\0\u1554\0\u1554\0\u1554\0\u159a\0\u15e0\0\u1626\0\u166c\0\u16b2"+ - "\0\u16f8\0\u173e\0\u1784\0\u17ca\0\u1810\0\u1856\0\u189c\0\u0276"+ - "\0\u038e\0\u17ca\0\u18e2\0\u1928\0\u196e\0\u1928\0\u19b4\0\u19fa"+ - "\0\u1a40\0\u1a86\0\u1acc\0\u1b12\0\u1b58\0\u1b9e\0\u1be4\0\u1c2a"+ - "\0\u1c70\0\u1cb6\0\u1cfc\0\u1d42\0\u1d88\0\u1dce\0\u1e14\0\u1e5a"+ - "\0\u1ea0\0\u1ee6\0\u1f2c\0\u1f72\0\u1fb8\0\u1ffe\0\u2044\0\u208a"+ - "\0\u20d0\0\u2116\0\u02bc\0\u215c\0\u21a2\0\u21e8\0\u222e\0\u2274"+ - "\0\u22ba\0\u2300\0\u2346\0\u238c\0\u23d2\0\u2418\0\u245e\0\u24a4"+ - "\0\u24ea\0\u2530\0\u2576\0\u25bc\0\u2602\0\u2648\0\u268e\0\u26d4"+ - "\0\u271a\0\u2760\0\u27a6\0\u27ec\0\u2832\0\u2878\0\u28be\0\u2904"+ - "\0\u294a\0\u2990\0\u29d6\0\u2a1c\0\u2a62\0\u2aa8\0\u2aee\0\u2b34"+ - "\0\u2b7a\0\u2bc0\0\u2c06\0\u2c4c\0\u2c92\0\u2cd8\0\u2d1e\0\u2d64"+ - "\0\u2daa\0\u2df0\0\u2e36\0\u2e7c\0\u2ec2\0\u2f08\0\u2f4e\0\u02bc"+ - "\0\u2f94\0\u2fda\0\u3020\0\u3066\0\u30ac\0\u30f2\0\u3138\0\u317e"+ - "\0\u31c4\0\u320a\0\u3250\0\u3296\0\u32dc\0\u3322\0\u3368\0\u33ae"+ - "\0\u33f4\0\u343a\0\u3480\0\u34c6\0\u350c\0\u3552\0\u3598\0\u35de"+ - "\0\u3624\0\u366a\0\u36b0\0\u36f6\0\u038e\0\u373c\0\u3782\0\u37c8"+ - "\0\u038e\0\u3782\0\u380e\0\u038e\0\u3854\0\u389a\0\u38e0\0\u038e"+ - "\0\u389a\0\u3926\0\u396c\0\u39b2\0\u39f8\0\u3a3e\0\u038e\0\u39f8"+ - "\0\u3a84\0\u3aca\0\u3b10\0\u3b56\0\u3b9c\0\u3be2\0\u3c28\0\u3c6e"+ - "\0\u3cb4\0\u3cfa\0\u3d40\0\u3d86\0\u3dcc\0\u3e12\0\u1554\0\u3e58"+ - "\0\u3e9e\0\u3ee4\0\u3f2a\0\u3f70\0\u3fb6\0\u3ffc\0\u4042\0\u4088"+ - "\0\u40ce\0\u4114\0\u415a\0\u41a0\0\u41e6\0\u422c\0\u4272\0\u42b8"+ - "\0\u26d4\0\u42fe\0\u4344\0\u438a\0\u43d0\0\u4416\0\u445c\0\u44a2"+ - "\0\u44e8\0\u452e\0\u4574\0\u45ba\0\u4600\0\u4646\0\u468c\0\u46d2"+ - "\0\u4718\0\u320a\0\u475e\0\u47a4\0\u47ea\0\u4830\0\u4876\0\u48bc"+ - "\0\u4902\0\u4948\0\u498e\0\u49d4\0\u4a1a\0\u4a60\0\u4aa6\0\u4aec"+ - "\0\u4b32\0\u4b78\0\u4bbe\0\u4c04\0\u4c4a\0\u4c90\0\u4cd6\0\u4d1c"+ - "\0\u4d62\0\u4da8\0\u4dee\0\u4e34\0\u4e7a\0\u4ec0\0\u4f06\0\u4f4c"+ - "\0\u4f92\0\u4fd8\0\u501e\0\u5064\0\u50aa\0\u50f0\0\u5136\0\u517c"+ - "\0\u51c2\0\u5208\0\u524e\0\u5294\0\u52da\0\u5320\0\u5366\0\u26d4"+ - "\0\u53ac\0\u53f2\0\u5438\0\u547e\0\u54c4\0\u550a\0\u5550\0\u5596"+ - "\0\u55dc\0\u5622\0\u5668\0\u56ae\0\u56f4\0\u573a\0\u5780\0\u57c6"+ - "\0\u580c\0\u5852\0\u5898\0\u58de\0\u5924\0\u596a\0\u59b0\0\u59f6"+ - "\0\u5a3c\0\u5a82\0\u5ac8\0\u5b0e\0\u5b54\0\u5b9a\0\u5be0\0\u5c26"+ - "\0\u5c6c\0\u5cb2\0\u5cf8\0\u5d3e\0\u1252\0\u5d84\0\u13b0\0\u5dca"+ - "\0\u5e10\0\u5e56\0\u5e9c\0\u5ee2\0\u5f28\0\u5f6e\0\u5fb4\0\u5ffa"+ - "\0\u6040\0\u6086\0\u60cc\0\u6112\0\u6158\0\u619e\0\u61e4\0\u622a"+ - "\0\u6270\0\u2c4c\0\u62b6\0\u62fc\0\u6342\0\u6388\0\u63ce\0\u6414"+ - "\0\u645a\0\u64a0\0\u64e6\0\u652c\0\u6572\0\u65b8\0\u65fe\0\u6644"+ - "\0\u668a\0\u66d0\0\u6716\0\u675c\0\u67a2\0\u67e8\0\u682e\0\u6874"+ - "\0\u68ba\0\u6900\0\u6946\0\u698c\0\u038e\0\u69d2\0\u6a18\0\u6a5e"+ - "\0\u6aa4\0\u6aea\0\u6b30\0\u6b76\0\u6bbc\0\u6c02\0\u6c48\0\u6c8e"+ - "\0\u6cd4\0\u6d1a\0\u6d60\0\u6da6\0\u6dec\0\u6e32\0\u6e78\0\u6ebe"+ - "\0\u6f04\0\u6f4a\0\u2a62\0\u6f90\0\u6fd6\0\u701c\0\u7062\0\u70a8"+ - "\0\u70ee\0\u7134\0\u717a\0\u71c0\0\u7206\0\u724c\0\u7292\0\u72d8"+ - "\0\u731e\0\u7364\0\u73aa\0\u73f0\0\u7436\0\u747c\0\u74c2\0\u7508"+ - "\0\u754e\0\u7594\0\u75da\0\u7620\0\u7666\0\u76ac\0\u038e\0\u038e"+ - "\0\u76f2\0\u7738\0\u777e\0\u77c4\0\u780a\0\u7850\0\u7896\0\u78dc"+ - "\0\u7922\0\u7968\0\u79ae\0\u79f4\0\u7a3a\0\u7a80\0\u7ac6\0\u7b0c"+ - "\0\u7b52\0\u7b98\0\u7bde\0\u31c4\0\u7c24\0\u7c6a\0\u038e\0\u038e"+ - "\0\u7cb0\0\u7cf6\0\u7d3c\0\u7d82\0\u7dc8\0\u7e0e\0\u7e54\0\u7e9a"+ - "\0\u2878\0\u7ee0\0\u7f26\0\u7f6c\0\u7fb2\0\u7ff8\0\u803e\0\u8084"+ - "\0\u80ca\0\u8110\0\u8156\0\u819c\0\u81e2\0\u8228\0\u826e\0\u82b4"+ - "\0\u82fa\0\u8340\0\u8386\0\u83cc\0\u8412\0\u8458\0\u849e\0\u84e4"+ - "\0\u852a\0\u8570\0\u85b6\0\u85fc\0\u8642\0\u8688\0\u86ce\0\u8714"+ - "\0\u875a\0\u87a0\0\u87e6\0\u882c\0\u8872\0\u88b8\0\u88fe\0\u8944"+ - "\0\u898a\0\u89d0\0\u8a16\0\u8a5c\0\u8aa2\0\u8ae8\0\u8b2e\0\u8b74"+ - "\0\u8bba\0\u8c00\0\u8c46\0\u8c8c\0\u8cd2\0\u8d18\0\u8d5e\0\u8da4"+ - "\0\u8dea\0\u8e30\0\u8e76\0\u8ebc\0\u038e\0\u038e\0\u8f02\0\u8f48"+ - "\0\u8f8e\0\u8fd4\0\u901a\0\u9060\0\u90a6\0\u90ec\0\u9132\0\u9178"+ - "\0\u91be\0\u9204\0\u924a\0\u9290\0\u92d6\0\u931c\0\u9362\0\u93a8"+ - "\0\u93ee\0\u9434\0\u947a\0\u94c0\0\u9506\0\u954c\0\u9592\0\u95d8"+ - "\0\u961e"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[601]; - 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 = - "\1\12\1\13\1\14\1\15\1\13\1\14\1\16\1\17"+ - "\1\12\1\20\1\21\4\13\1\22\1\23\1\24\1\25"+ - "\1\26\1\27\1\30\1\31\2\24\1\32\1\33\1\34"+ - "\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\50\1\45\1\52"+ - "\1\53\1\54\1\55\1\56\1\57\2\14\1\60\1\61"+ - "\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71"+ - "\1\72\1\73\1\74\1\75\1\76\1\77\3\13\10\100"+ - "\1\101\1\102\11\100\2\103\1\104\1\105\53\100\1\106"+ - "\3\100\10\107\1\110\1\111\41\107\1\112\32\107\10\113"+ - "\1\101\1\114\11\113\2\115\1\116\1\117\2\113\1\120"+ - "\54\113\10\121\1\101\1\122\4\121\1\123\4\121\2\124"+ - "\1\125\1\126\57\121\10\127\1\101\1\130\4\127\1\131"+ - "\67\127\10\121\1\101\1\132\4\121\1\133\4\121\2\124"+ - "\1\125\1\126\57\121\10\127\1\101\1\134\4\127\1\135"+ - "\67\127\11\136\1\137\31\136\1\140\42\136\6\12\1\0"+ - "\2\12\2\0\4\12\4\0\1\12\2\0\1\12\5\0"+ - "\5\12\13\0\26\12\1\0\4\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\26\13\1\0\3\13\2\141\2\14\1\141\1\14"+ - "\1\0\2\141\2\0\1\141\1\142\1\143\1\144\1\0"+ - "\1\145\2\0\1\141\2\0\1\141\5\0\3\141\1\142"+ - "\1\143\13\0\3\141\1\144\1\141\2\14\11\141\1\143"+ - "\5\141\1\0\1\141\1\143\3\141\1\146\1\147\1\141"+ - "\1\147\1\0\2\141\2\0\1\150\1\142\1\143\1\144"+ - "\1\0\1\145\2\0\1\141\2\0\1\141\5\0\2\141"+ - "\1\150\1\142\1\143\13\0\3\141\1\144\1\141\2\147"+ - "\11\141\1\143\5\141\1\0\1\141\1\143\1\141\106\0"+ - "\11\151\1\0\34\151\1\152\37\151\12\0\1\21\112\0"+ - "\1\50\23\0\1\50\1\0\1\50\42\0\2\145\1\0"+ - "\1\145\53\0\2\145\23\0\1\12\1\153\2\12\1\153"+ - "\1\12\1\0\2\12\2\0\4\153\4\0\1\12\2\0"+ - "\1\154\1\155\4\0\5\153\13\0\5\153\2\12\17\153"+ - "\1\0\3\153\1\0\1\156\2\0\1\156\6\0\4\156"+ - "\7\0\1\157\1\155\4\0\5\156\2\0\1\50\10\0"+ - "\5\156\2\0\17\156\1\0\3\156\1\0\1\156\2\0"+ - "\1\156\6\0\4\156\7\0\1\157\1\155\4\0\5\156"+ - "\13\0\5\156\2\0\17\156\1\0\3\156\1\12\1\153"+ - "\2\160\1\153\1\160\1\0\2\160\2\0\4\153\4\161"+ - "\1\160\2\161\1\162\1\163\1\0\3\161\5\153\13\161"+ - "\5\153\2\160\17\153\1\161\3\153\10\164\1\165\21\164"+ - "\2\0\7\164\1\166\42\164\43\0\1\50\7\0\1\50"+ - "\26\0\1\50\3\0\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\3\0\1\167\1\0"+ - "\1\13\1\170\1\13\1\171\1\13\5\0\1\172\3\0"+ - "\1\173\1\0\1\174\1\175\1\176\1\177\4\13\1\200"+ - "\1\201\1\202\6\13\1\203\1\204\1\13\1\205\1\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\3\13\1\206\1\13"+ - "\13\0\1\13\1\207\1\210\1\13\1\211\3\13\1\212"+ - "\2\13\1\213\12\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\214\24\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\215\1\216\3\13\13\0\1\13\1\217"+ - "\1\13\1\220\1\221\4\13\1\222\14\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\13\1\223\1\13"+ - "\1\224\5\13\1\225\2\13\1\226\4\13\1\227\4\13"+ - "\1\0\3\13\41\0\1\50\1\0\1\50\104\0\1\230"+ - "\1\50\105\0\1\50\5\0\1\50\2\0\1\231\1\232"+ - "\1\233\1\234\5\0\1\235\2\0\1\236\3\0\1\237"+ - "\54\0\1\50\105\0\1\50\1\0\1\240\103\0\1\50"+ - "\5\0\1\50\77\0\1\50\4\0\1\50\2\0\1\50"+ - "\26\0\1\50\3\0\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\1\13\1\241\2\13\1\242\3\13\1\243\1\244\7\13"+ - "\1\245\4\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\1\13"+ - "\1\246\3\13\13\0\1\247\7\13\1\250\10\13\1\251"+ - "\4\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\3\13\1\252\22\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\253\1\13\1\254\1\255\1\13\13\0\1\13\1\256"+ - "\2\13\1\257\2\13\1\260\7\13\1\261\2\13\1\223"+ - "\3\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\262"+ - "\1\13\1\263\1\13\13\0\12\13\1\264\1\13\1\265"+ - "\2\13\1\266\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\3\13\1\267\1\270\21\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\271\1\272"+ - "\4\13\1\273\1\13\1\274\12\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\13\1\275\15\13\1\276"+ - "\1\223\5\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\277\4\13\1\300\1\301\14\13\1\0"+ - "\3\13\1\12\5\13\1\0\1\12\1\302\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\3\0\1\303\1\0\1\304"+ - "\4\13\5\0\1\305\3\0\1\306\1\0\4\13\1\307"+ - "\10\13\1\274\6\13\1\310\1\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\3\13\1\311\1\13\13\0\11\13\1\312"+ - "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\3\13\1\313\5\13\1\314\14\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\3\13\1\315\1\13\13\0\1\13\1\316"+ - "\1\13\1\317\4\13\1\320\2\13\1\321\12\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\322"+ - "\1\13\1\323\22\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\13\1\324\1\13\1\325\1\13\13\0\1\13\1\326"+ - "\7\13\1\327\14\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\225\1\216\3\13\13\0\12\13\1\330\1\331\3\13"+ - "\1\332\6\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\10\13\1\333\10\13\1\334\4\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\2\13\1\335\1\13"+ - "\1\336\3\13\1\337\15\13\1\0\3\13\1\12\5\13"+ - "\1\0\1\12\1\340\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\3\0\1\341\1\0\5\13\5\0\1\342\3\0"+ - "\1\343\1\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\344\24\13\1\0\3\13\10\100"+ - "\2\0\11\100\2\0\1\100\1\0\53\100\1\0\3\100"+ - "\11\345\1\0\74\345\1\0\1\346\2\0\1\346\6\0"+ - "\4\346\7\0\1\347\1\350\4\0\5\346\13\0\5\346"+ - "\2\0\17\346\1\0\3\346\10\100\2\0\11\100\2\0"+ - "\1\100\1\347\53\100\1\0\3\100\1\0\1\346\2\351"+ - "\1\346\1\351\1\0\2\351\2\0\4\346\7\351\1\352"+ - "\1\353\1\0\3\351\5\346\13\351\5\346\2\351\17\346"+ - "\1\351\3\346\10\107\2\0\41\107\1\0\32\107\11\354"+ - "\1\0\74\354\10\113\2\0\11\113\2\0\1\113\1\0"+ - "\2\113\1\0\54\113\1\0\1\355\2\0\1\355\6\0"+ - "\4\355\7\0\1\356\1\357\4\0\5\355\13\0\5\355"+ - "\2\0\17\355\1\0\3\355\10\113\2\0\11\113\2\0"+ - "\1\113\1\356\2\113\1\0\54\113\1\0\1\355\2\360"+ - "\1\355\1\360\1\0\2\360\2\0\4\355\7\360\1\361"+ - "\1\362\1\0\3\360\5\355\13\360\5\355\2\360\17\355"+ - "\1\360\3\355\10\121\2\0\11\121\2\0\1\121\1\0"+ - "\67\121\2\0\11\121\2\0\1\121\1\0\54\121\1\363"+ - "\2\121\1\0\1\364\2\0\1\364\6\0\4\364\7\0"+ - "\1\365\1\366\4\0\5\364\13\0\5\364\2\0\17\364"+ - "\1\0\3\364\10\121\2\0\11\121\2\0\1\121\1\365"+ - "\57\121\1\0\1\364\2\367\1\364\1\367\1\0\2\367"+ - "\2\0\4\364\7\367\1\370\1\371\1\0\3\367\5\364"+ - "\13\367\5\364\2\367\17\364\1\367\3\364\10\127\2\0"+ - "\104\127\2\0\71\127\1\372\2\127\10\121\2\0\11\121"+ - "\2\0\1\121\1\0\54\121\1\373\2\121\10\127\2\0"+ - "\71\127\1\374\2\127\11\136\1\0\31\136\1\0\42\136"+ - "\35\0\1\375\16\0\1\376\1\377\1\u0100\1\u0101\5\0"+ - "\1\u0102\2\0\1\u0103\3\0\1\u0104\11\0\6\141\1\0"+ - "\2\141\2\0\4\141\4\0\1\141\2\0\1\141\5\0"+ - "\5\141\13\0\26\141\1\0\5\141\2\u0105\1\141\1\u0105"+ - "\1\0\2\141\2\0\4\141\1\u0106\3\0\1\141\2\0"+ - "\1\141\5\0\5\141\1\u0106\12\0\5\141\2\u0105\17\141"+ - "\1\0\5\141\2\145\1\141\1\145\1\0\2\141\2\0"+ - "\2\141\1\143\1\144\4\0\1\141\2\0\1\141\5\0"+ - "\4\141\1\143\13\0\3\141\1\144\1\141\2\145\11\141"+ - "\1\143\5\141\1\0\1\141\1\143\3\141\2\146\1\141"+ - "\1\146\1\0\2\141\2\0\2\141\1\143\1\144\1\0"+ - "\1\145\2\0\1\141\2\0\1\141\5\0\4\141\1\143"+ - "\13\0\3\141\1\144\1\141\2\146\11\141\1\143\5\141"+ - "\1\0\1\141\1\143\3\141\1\146\1\147\1\141\1\147"+ - "\1\0\2\141\2\0\1\141\1\u0107\1\143\1\144\1\0"+ - "\1\145\2\0\1\141\2\0\1\141\5\0\3\141\1\u0107"+ - "\1\143\13\0\3\141\1\144\1\141\2\147\11\141\1\143"+ - "\5\141\1\0\1\141\1\143\3\141\4\u0108\1\0\2\141"+ - "\2\0\2\141\2\u0108\4\0\1\141\2\0\1\141\5\0"+ - "\1\141\1\u0108\2\141\1\u0108\13\0\3\141\4\u0108\5\141"+ - "\1\u0108\3\141\1\u0108\5\141\1\0\1\141\1\u0108\1\141"+ - "\11\151\1\0\74\151\11\152\1\0\74\152\1\12\5\153"+ - "\1\0\2\12\2\0\4\153\4\0\1\12\2\0\1\12"+ - "\5\0\5\153\13\0\26\153\1\0\3\153\1\12\1\153"+ - "\2\12\1\153\1\12\1\0\2\12\2\0\4\153\4\0"+ - "\1\12\2\0\1\12\1\155\4\0\5\153\13\0\5\153"+ - "\2\12\17\153\1\0\3\153\1\0\1\u0109\2\0\1\u0109"+ - "\6\0\4\u0109\15\0\5\u0109\13\0\5\u0109\2\0\17\u0109"+ - "\1\0\3\u0109\1\0\5\156\5\0\4\156\15\0\5\156"+ - "\13\0\26\156\1\0\3\156\1\0\1\156\2\0\1\156"+ - "\6\0\4\156\10\0\1\155\4\0\5\156\13\0\5\156"+ - "\2\0\17\156\1\0\3\156\1\0\1\u0109\2\0\1\u0109"+ - "\2\0\2\161\2\0\4\u0109\10\161\1\0\4\161\5\u0109"+ - "\13\161\5\u0109\2\0\17\u0109\1\161\3\u0109\10\164\1\165"+ - "\21\164\1\u010a\64\164\1\0\74\164\32\167\1\u010b\53\167"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\4\13\1\u010c\21\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13"+ - "\1\320\22\13\1\0\3\13\46\172\1\u010d\37\172\52\173"+ - "\1\u010e\33\173\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\3\13\1\u010f\1\13"+ - "\13\0\10\13\1\u0110\15\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\1\13\1\u0111\3\13\13\0\10\13\1\246\15\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\11\13"+ - "\1\u0112\1\13\1\u0113\5\13\1\u0114\4\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\3\13\1\u0115\1\13\13\0\3\13"+ - "\1\u0116\6\13\1\u0117\1\u0118\3\13\1\u0119\6\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\4\13\1\272"+ - "\21\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\17\13\1\310\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\4\13\1\246\14\13\1\u011a\4\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\14\13\1\u011b"+ - "\11\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\10\13\1\246\15\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\u011c\4\13\13\0\13\13\1\u011d\12\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\13\1\u011e\24\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\1\310\4\13\13\0"+ - "\17\13\1\u011f\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\4\13\1\u0120\13\0\1\13\1\u0121\6\13\1\u0122\2\13"+ - "\1\u0123\12\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\3\13"+ - "\1\u0124\1\13\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\24\13\1\u0125\1\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\223\25\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\223"+ - "\15\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\12\13\1\u0126\13\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\20\13\1\u0127\5\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\13\1\u0128\3\13\13\0\16\13\1\310"+ - "\7\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\17\13\1\u0129\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\u012a\4\13\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\1\u012b\4\13\13\0\17\13\1\u012c\6\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\3\13\1\u012d\1\13\13\0"+ - "\20\13\1\u012e\5\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\3\13\1\310\22\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\13\13\1\u012f\12\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\13\13\1\307"+ - "\12\13\1\0\3\13\12\0\1\u0130\3\0\1\u0131\12\0"+ - "\1\u0132\11\0\1\50\7\0\1\u0133\26\0\1\u0134\60\0"+ - "\1\u0135\113\0\1\u0136\101\0\1\u0137\121\0\1\u0138\100\0"+ - "\1\u0139\76\0\1\u013a\1\u013b\102\0\1\u013c\73\0\1\50"+ - "\1\0\1\45\40\0\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\310\4\13"+ - "\13\0\1\310\25\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\13\1\u013d\3\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\13\1\u013e\7\13\1\u013f"+ - "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\1\225\25\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\1\u0140"+ - "\4\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\12\13\1\310\13\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\3\13\1\u0141\22\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\4\13\1\310\13\0\26\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13"+ - "\1\310\15\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\2\13"+ - "\1\310\2\13\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\4\13\1\u0142\21\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\310\2\13\1\267"+ - "\5\13\1\u0143\14\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\u0144\4\13\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\20\13\1\310\5\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\1\13\1\u0140\3\13\13\0\26\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13"+ - "\1\u0145\21\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13"+ - "\1\u0146\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\13\1\u0147\3\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\4\13\1\u0148\21\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\4\13\1\u0149"+ - "\21\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\310\4\13"+ - "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13"+ - "\1\223\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\13\1\310\3\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\3\13\1\u014a\1\13\13\0\26\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\1\u014b\1\u014c\2\13\1\u014d"+ - "\13\0\4\13\1\u014e\2\13\1\u014f\2\13\1\u0150\4\13"+ - "\1\u0151\1\310\1\13\1\u0152\1\u0153\2\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\17\13\1\u0119\6\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13"+ - "\1\u0154\6\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13"+ - "\1\u0120\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\13\1\u0155\3\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\4\13\1\55\13\0\12\13\1\310\13\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\3\13\1\u0156\1\13"+ - "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\1\12"+ - "\1\340\2\0\4\13\4\0\1\12\2\0\1\12\3\0"+ - "\1\341\1\0\5\13\5\0\1\342\3\0\1\343\1\0"+ - "\21\13\1\u0157\4\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\3\13\1\u0158\7\13\1\u0159\12\13\1\0"+ - "\3\13\6\302\1\u015a\1\302\1\u015b\2\u015a\4\302\4\u015a"+ - "\1\302\2\u015a\1\302\5\u015a\5\302\13\u015a\26\302\1\u015a"+ - "\3\302\32\303\1\u015c\53\303\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\16\13\1\u015d\7\13\1\0\3\13\46\305\1\u015c"+ - "\37\305\52\306\1\u015c\33\306\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\1\310\25\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\3\13\1\u015e\22\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\17\13\1\u015f\6\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\24\13\1\265"+ - "\1\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\3\13\1\u0145"+ - "\1\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\u0160\24\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\12\13\1\u0161\13\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\12\13\1\u0162"+ - "\13\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\3\13\1\307\22\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\12\13\1\330\13\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\12\13\1\223\13\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\2\13\1\u012a\2\13\13\0"+ - "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\17\13\1\u0155\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\u0163\24\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\10\13\1\u0164\15\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\3\13\1\u0165\1\13\13\0"+ - "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\11\13\1\u0166\14\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\4\13\1\u0167\21\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\u0168\2\13\1\u0169\1\u016a\13\0\1\u016b"+ - "\11\13\1\u016c\13\13\1\0\3\13\1\12\5\13\1\0"+ - "\1\12\1\u016d\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\3\0\1\u016e\1\0\5\13\5\0\1\u016f\3\0\1\u0170"+ - "\1\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\1\13\1\u0171\24\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\11\13\1\u0172\14\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\10\13\1\201\1\u0173"+ - "\5\13\1\u0174\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\11\13\1\u0175\14\13\1\0\3\13\6\340"+ - "\1\u0176\1\340\1\u0177\2\u0176\4\340\4\u0176\1\340\2\u0176"+ - "\1\340\5\u0176\5\340\13\u0176\26\340\1\u0176\3\340\32\341"+ - "\1\u0178\53\341\46\342\1\u0179\37\342\52\343\1\u017a\33\343"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\11\13\1\201\14\13"+ - "\1\0\3\13\1\0\5\346\5\0\4\346\15\0\5\346"+ - "\13\0\26\346\1\0\3\346\1\0\1\346\2\0\1\346"+ - "\6\0\4\346\10\0\1\350\4\0\5\346\13\0\5\346"+ - "\2\0\17\346\1\0\3\346\1\0\1\u017b\2\0\1\u017b"+ - "\6\0\4\u017b\15\0\5\u017b\13\0\5\u017b\2\0\17\u017b"+ - "\1\0\3\u017b\1\0\1\u017b\2\0\1\u017b\2\0\2\351"+ - "\2\0\4\u017b\10\351\1\0\4\351\5\u017b\13\351\5\u017b"+ - "\2\0\17\u017b\1\351\3\u017b\1\0\5\355\5\0\4\355"+ - "\15\0\5\355\13\0\26\355\1\0\3\355\1\0\1\355"+ - "\2\0\1\355\6\0\4\355\10\0\1\357\4\0\5\355"+ - "\13\0\5\355\2\0\17\355\1\0\3\355\1\0\1\u017c"+ - "\2\0\1\u017c\6\0\4\u017c\15\0\5\u017c\13\0\5\u017c"+ - "\2\0\17\u017c\1\0\3\u017c\1\0\1\u017c\2\0\1\u017c"+ - "\2\0\2\360\2\0\4\u017c\10\360\1\0\4\360\5\u017c"+ - "\13\360\5\u017c\2\0\17\u017c\1\360\3\u017c\10\121\2\0"+ - "\11\121\2\0\1\121\1\0\55\121\1\u017d\1\121\1\0"+ - "\5\364\5\0\4\364\15\0\5\364\13\0\26\364\1\0"+ - "\3\364\1\0\1\364\2\0\1\364\6\0\4\364\10\0"+ - "\1\366\4\0\5\364\13\0\5\364\2\0\17\364\1\0"+ - "\3\364\1\0\1\u017e\2\0\1\u017e\6\0\4\u017e\15\0"+ - "\5\u017e\13\0\5\u017e\2\0\17\u017e\1\0\3\u017e\1\0"+ - "\1\u017e\2\0\1\u017e\2\0\2\367\2\0\4\u017e\10\367"+ - "\1\0\4\367\5\u017e\13\367\5\u017e\2\0\17\u017e\1\367"+ - "\3\u017e\10\127\2\0\72\127\1\u017f\1\127\10\121\2\0"+ - "\11\121\2\0\1\121\1\0\56\121\1\u017d\10\127\2\0"+ - "\73\127\1\u017f\75\0\1\u0180\65\0\1\u0181\113\0\1\u0182"+ - "\101\0\1\u0183\121\0\1\u0184\100\0\1\u0185\76\0\1\u0186"+ - "\1\u0187\102\0\1\u0188\30\0\2\141\2\u0105\1\141\1\u0105"+ - "\1\0\2\141\2\0\2\141\1\143\1\141\4\0\1\141"+ - "\2\0\1\141\5\0\4\141\1\143\13\0\5\141\2\u0105"+ - "\11\141\1\143\5\141\1\0\1\141\1\143\1\141\2\0"+ - "\2\u0105\1\0\1\u0105\53\0\2\u0105\23\0\2\141\4\u0108"+ - "\1\0\2\141\2\0\1\141\1\u0107\2\u0108\4\0\1\141"+ - "\2\0\1\141\5\0\1\141\1\u0108\1\141\1\u0107\1\u0108"+ - "\13\0\3\141\4\u0108\5\141\1\u0108\3\141\1\u0108\5\141"+ - "\1\0\1\141\1\u0108\1\141\1\0\5\u0109\5\0\4\u0109"+ - "\11\0\1\161\3\0\5\u0109\13\0\26\u0109\1\0\3\u0109"+ - "\34\0\5\u010a\13\0\2\u010a\2\0\1\u010a\4\0\1\u010a"+ - "\1\0\1\u010a\2\0\1\u010a\2\0\1\u010a\10\0\32\u010b"+ - "\1\u0189\53\u010b\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\3\13\1\u018a\1\13"+ - "\13\0\26\13\1\0\3\13\46\u010d\1\u0189\37\u010d\52\u010e"+ - "\1\u0189\33\u010e\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\11\13"+ - "\1\u018b\14\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\11\13\1\u018c\14\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\15\13\1\u018d\10\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\20\13\1\246\5\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\1\13\1\u0155\3\13"+ - "\13\0\10\13\1\u018e\5\13\1\u014b\4\13\1\u018f\2\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13"+ - "\1\u0190\13\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\u0191\22\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\15\13\1\u0192\10\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\1\u0193\4\13\13\0\1\u0194\1\13"+ - "\1\u0195\13\13\1\u0196\1\u0197\6\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\13\1\u0155\3\13\13\0\1\13\1\307"+ - "\14\13\1\u014b\7\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\4\13\1\u0198\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\1\u0199\4\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\u019a\1\u019b\3\13\13\0\1\13\1\u019c"+ - "\6\13\1\u018e\1\13\1\u019d\10\13\1\u018f\2\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\3\13\1\u019e\1\13\13\0"+ - "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\u019f\4\13"+ - "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\12\13\1\u01a0\4\13\1\u0115\6\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\11\13\1\251\14\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\1\310"+ - "\12\13\1\307\7\13\1\201\2\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\13\1\u01a1\24\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\u0119"+ - "\24\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\3\13\1\u01a2"+ - "\1\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\246\25\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\4\13\1\246\21\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\11\13\1\u01a3\14\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13"+ - "\1\u01a4\21\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\16\13\1\u01a5\7\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\12\13\1\u01a6\13\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\15\13\1\310\10\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13"+ - "\1\u0175\22\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\11\13\1\u01a7\14\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\1\13\1\u01a8\3\13\13\0\1\13\1\u019c\24\13"+ - "\1\0\3\13\12\0\1\u0130\16\0\1\u0132\21\0\1\u0133"+ - "\26\0\1\u0134\106\0\1\u01a9\20\0\1\u01aa\105\0\1\u01ab"+ - "\105\0\1\u01ac\127\0\1\u01ad\124\0\1\u013c\106\0\1\u01ae"+ - "\62\0\1\u01af\2\0\1\u01ad\124\0\1\u01b0\120\0\1\u01b1"+ - "\50\0\1\u01b2\134\0\1\u01ad\21\0\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\15\13\1\u01b3\10\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\12\13\1\u01b4\13\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\17\13\1\u01b5"+ - "\6\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\2\13\1\310\23\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\17\13\1\u0192\6\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\13\1\223\3\13\13\0\26\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\1\u01b6\4\13\13\0\12\13"+ - "\1\310\13\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\223\5\13\1\u01b7\14\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\3\13\1\310\1\13\13\0\26\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\1\u01b8\4\13\13\0"+ - "\1\u01b9\1\13\1\u0195\13\13\1\u0196\1\u0197\6\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u0125"+ - "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\10\13\1\u01ba\15\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\17\13\1\u01bb\6\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\21\13\1\u01bc\4\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\246"+ - "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\7\13\1\310\16\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\223\24\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\4\13\1\u01bd\13\0\26\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\u01be\22\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\21\13"+ - "\1\u01bf\4\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\4\13\1\u0166\21\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\21\13\1\u01c0\4\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\11\13\1\u01c1\14\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\4\13\1\55\13\0"+ - "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\12\13\1\u0145\13\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\3\13\1\u0192\1\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\17\13\1\u01c2\6\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u01c3"+ - "\22\13\1\0\3\13\10\u015a\1\u015c\75\u015a\6\12\1\0"+ - "\2\12\2\0\4\12\4\0\1\12\2\0\1\12\5\0"+ - "\5\u015b\13\0\2\u015b\2\12\1\u015b\4\12\1\u015b\1\12"+ - "\1\u015b\2\12\1\u015b\2\12\1\u015b\4\12\1\0\3\12"+ - "\34\0\5\u015c\13\0\2\u015c\2\0\1\u015c\4\0\1\u015c"+ - "\1\0\1\u015c\2\0\1\u015c\2\0\1\u015c\10\0\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\272\1\u0155\3\13\13\0\10\13\1\u01c4"+ - "\5\13\1\u014b\7\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\265\4\13\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\4\13\1\310\13\0\13\13\1\u01c5\12\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\14\13\1\310"+ - "\11\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\1\13\1\310\24\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\u01c6\1\310\1\13\1\u01c7\1\13\13\0\1\u01c8\1\13"+ - "\1\u01c9\13\13\1\u01ca\1\u01cb\6\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\13\1\u012c\3\13\13\0\26\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u01cc"+ - "\7\13\1\u01cd\1\13\1\310\10\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\3\13\1\u01ce\22\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\13\13\1\225"+ - "\12\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\u012c\4\13"+ - "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\2\13\1\u01cf\23\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\u01d0\5\13\1\u01d1\14\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13"+ - "\1\256\22\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\4\13\1\u0163\21\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\11\13\1\u01d2\14\13\1\0\3\13"+ - "\6\u016d\1\u01d3\1\u016d\1\u01d4\2\u01d3\4\u016d\4\u01d3\1\u016d"+ - "\2\u01d3\1\u016d\3\u01d3\1\0\1\u01d3\5\u016d\13\u01d3\26\u016d"+ - "\1\u01d3\3\u016d\32\u016e\1\u01d5\53\u016e\32\u016f\1\0\13\u016f"+ - "\1\u01d6\37\u016f\32\u0170\1\0\17\u0170\1\u01d7\33\u0170\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\12\13\1\u01d8\13\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\3\13\1\u01d9\1\13\13\0"+ - "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\12\13\1\u01da\13\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\12\13\1\u01db\13\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\12\13\1\225\13\13\1\0"+ - "\3\13\10\u0176\1\u01dc\75\u0176\6\u0177\1\u01dc\1\u0177\1\u01dd"+ - "\2\u01dc\4\u0177\4\u01dc\1\u0177\2\u01dc\1\u0177\5\u01dc\5\u0177"+ - "\13\u01dc\26\u0177\1\u01dc\3\u0177\32\u0178\1\u01de\53\u0178\46\u0179"+ - "\1\u01de\37\u0179\52\u017a\1\u01de\33\u017a\1\0\5\u017b\5\0"+ - "\4\u017b\11\0\1\351\3\0\5\u017b\13\0\26\u017b\1\0"+ - "\3\u017b\1\0\5\u017c\5\0\4\u017c\11\0\1\360\3\0"+ - "\5\u017c\13\0\26\u017c\1\0\3\u017c\1\0\5\u017e\5\0"+ - "\4\u017e\11\0\1\367\3\0\5\u017e\13\0\26\u017e\1\0"+ - "\3\u017e\66\0\1\u01df\57\0\1\u01e0\124\0\1\u0188\106\0"+ - "\1\u01e1\62\0\1\u01e2\2\0\1\u01e0\124\0\1\u01e3\120\0"+ - "\1\u01e4\50\0\1\u01e5\134\0\1\u01e0\55\0\5\u0189\13\0"+ - "\2\u0189\1\0\2\u0189\3\0\2\u0189\1\0\1\u0189\2\0"+ - "\1\u0189\2\0\1\u0189\10\0\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\4\13\1\251\21\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\1\13\1\225\3\13\13\0\12\13\1\310\13\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13"+ - "\1\u01e6\6\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\u01e7\22\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\u01e8\22\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\10\13\1\337\15\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\4\13\1\u01e9\13\0"+ - "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\246"+ - "\3\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\u01ea\1\13\1\u01eb\22\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\u01ec"+ - "\5\13\1\u01ed\4\13\1\u01ee\2\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\13\1\u01ef\24\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\u01ee"+ - "\15\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\3\13\1\u01f0\22\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\24\13\1\310\1\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\12\13\1\251\13\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u01f1"+ - "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\4\13\1\314\21\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\u01a6\25\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\u01ba\22\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\11\13\1\u01d1\14\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13"+ - "\1\u0192\22\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\11\13\1\u01f2\14\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\1\13\1\246\24\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\251\22\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13"+ - "\1\u01f3\15\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\3\13"+ - "\1\u01f4\1\13\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\12\13\1\u0140\13\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\201\22\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13"+ - "\1\u01f5\6\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\3\13"+ - "\1\u01f6\1\13\13\0\26\13\1\0\3\13\104\0\1\u01f7"+ - "\1\u01f8\103\0\1\u01f9\105\0\1\u01fa\105\0\1\u01fb\42\0"+ - "\1\u01fc\122\0\1\u01fd\117\0\1\u01ad\103\0\1\u01fe\111\0"+ - "\1\u01ad\14\0\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13"+ - "\1\u01ff\21\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\1\13\1\u0200\24\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\12\13\1\u0201\13\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\12\13\1\265\13\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\20\13"+ - "\1\223\5\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\u01eb\22\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\10\13\1\u0202\12\13\1\u01ee\2\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\13\13"+ - "\1\310\12\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\6\13\1\310\17\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\265\22\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\3\13\1\u0203\1\u0120\13\0\1\u0204"+ - "\25\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\10\13\1\u0205\15\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\10\13\1\201\15\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\11\13\1\u0206\14\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\17\13\1\u0207"+ - "\6\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\u0208"+ - "\3\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\13\1\u014c\3\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\13\1\u0209\24\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\u020a"+ - "\1\13\1\u020b\22\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\u020c\24\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\u020d\2\13\1\u020e\4\13"+ - "\1\u020f\5\13\1\u01ed\4\13\1\u0210\2\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\13\1\u0211\24\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13"+ - "\1\u0212\15\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\u0213\22\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\4\13\1\u0214\21\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\3\13\1\u0215\1\13\13\0\26\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13"+ - "\1\u0161\6\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\11\13\1\u0112\14\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\1\u0216\4\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\17\13\1\u012c\6\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\3\13\1\223\1\13\13\0"+ - "\3\13\1\310\22\13\1\0\3\13\10\u01d3\1\u0217\21\u01d3"+ - "\1\0\53\u01d3\6\u016d\1\u01d3\1\u016d\1\u01d4\2\u01d3\4\u016d"+ - "\4\u01d3\1\u016d\2\u01d3\1\u016d\3\u01d3\1\0\1\u01d3\1\u01d4"+ - "\1\u016d\3\u01d4\13\u01d3\2\u01d4\2\u016d\1\u01d4\4\u016d\1\u01d4"+ - "\1\u016d\1\u01d4\5\u016d\1\u01d4\4\u016d\1\u01d3\3\u016d\34\0"+ - "\1\u01d5\1\0\3\u01d5\13\0\2\u01d5\2\0\1\u01d5\4\0"+ - "\1\u01d5\1\0\1\u01d5\5\0\1\u01d5\10\0\32\u016f\1\0"+ - "\1\u016f\1\u01d6\1\u016f\3\u01d6\5\u016f\1\u01d6\5\u016f\2\u01d6"+ - "\2\u016f\1\u01d6\4\u016f\1\u01d6\1\u016f\1\u01d6\5\u016f\1\u01d6"+ - "\10\u016f\32\u0170\1\0\1\u0170\1\u01d7\1\u0170\3\u01d7\11\u0170"+ - "\1\u01d7\1\u0170\2\u01d7\2\u0170\1\u01d7\4\u0170\1\u01d7\1\u0170"+ - "\1\u01d7\5\u0170\1\u01d7\10\u0170\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\u0218\22\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\223\22\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\u020d\25\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\4\13\1\u0219"+ - "\21\13\1\0\3\13\10\u01dc\1\u01de\75\u01dc\6\12\1\0"+ - "\2\12\2\0\4\12\4\0\1\12\2\0\1\12\5\0"+ - "\2\u01dd\2\12\1\u01dd\13\0\10\12\1\u01dd\15\12\1\0"+ - "\3\12\34\0\2\u01de\2\0\1\u01de\23\0\1\u01de\61\0"+ - "\1\u021a\122\0\1\u021b\117\0\1\u01e0\103\0\1\u021c\111\0"+ - "\1\u01e0\14\0\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13"+ - "\1\256\13\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\12\13\1\u021d\13\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\4\13\1\u0119\21\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\13\1\u021e\24\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\1\13\1\u021f\3\13"+ - "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\10\13\1\u0220\15\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\1\13\1\u0221\7\13\1\u0222\14\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13"+ - "\1\307\15\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\3\13\1\u0223\22\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\1\u01f0\4\13\13\0\26\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\12\13\1\u01ee\13\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u012c"+ - "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\17\13\1\u0224\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\1\246\4\13\13\0\26\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\u0119\22\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\1\13\1\u0205\24\13"+ - "\1\0\3\13\104\0\1\u0225\1\u0226\104\0\1\u0227\1\u0228"+ - "\104\0\1\u0229\1\u022a\61\0\2\u01ad\63\0\1\u022b\140\0"+ - "\1\u01ad\12\0\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\16\13"+ - "\1\225\7\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\12\13\1\u022c\13\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\1\13\1\u0221\24\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\11\13\1\u022d\14\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\11\13"+ - "\1\244\14\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\1\225"+ - "\4\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\10\13\1\225\15\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\4\13\1\274\13\0\26\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\4\13\1\u0175\21\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\4\13\1\225\13\0"+ - "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\u022e"+ - "\3\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\10\13\1\u022f\15\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\16\13\1\344\7\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\11\13\1\u0119"+ - "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\3\13\1\u0230\22\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\u0231\7\13\1\u0222\14\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223"+ - "\13\13\1\u0232\1\13\1\u020d\4\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\u0213\4\13\13\0\26\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223\12\13"+ - "\1\u020d\1\u0232\6\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\12\13\1\u0233\13\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\1\13\1\u0234\3\13\13\0\26\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\11\13\1\u0235"+ - "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\1\223\4\13"+ - "\13\0\26\13\1\0\3\13\10\u01d3\1\u0217\21\u01d3\1\0"+ - "\1\u01d3\1\u0217\1\u01d3\3\u0217\13\u01d3\2\u0217\2\u01d3\1\u0217"+ - "\4\u01d3\1\u0217\1\u01d3\1\u0217\5\u01d3\1\u0217\10\u01d3\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\13\13\1\u0236\12\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\u0237"+ - "\15\13\1\0\3\13\61\0\2\u01e0\63\0\1\u0238\140\0"+ - "\1\u01e0\12\0\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\1\u0239"+ - "\25\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\23\13\1\201\2\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\15\13\1\u023a\10\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\7\13\1\u01ee\16\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\12\13\1\u023b"+ - "\13\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\1\13\1\u023c\24\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\17\13\1\246\6\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\21\13\1\u01d9\4\13\1\0"+ - "\3\13\31\0\1\u01f7\105\0\1\u01f8\127\0\1\u023d\105\0"+ - "\1\u023e\134\0\1\u01f7\105\0\1\u01f8\70\0\1\u023f\20\0"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\24\13\1\244\1\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13"+ - "\1\u0240\6\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\15\13\1\u0241\10\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\7\13\1\u0242\16\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\10\13\1\u0243\15\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13"+ - "\1\u0244\13\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\4\13\1\u01ba\21\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\u0223\10\13\1\u0245\11\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\2\13"+ - "\1\223\23\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\17\13\1\225\6\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\3\13\1\u0246\22\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\10\13\1\u0247\15\13"+ - "\1\0\3\13\65\0\1\u0248\20\0\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\4\13\1\u0120\21\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\13\1\u0125\24\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\u01ee"+ - "\24\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0"+ - "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0"+ - "\10\13\1\u0249\15\13\1\0\3\13\73\0\1\u024a\12\0"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\310\11\13"+ - "\1\310\10\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\1\13\1\u0125\15\13\1\u0151\6\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223\10\13"+ - "\1\u024b\11\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\17\13\1\u0151\6\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\1\13\1\u024c\24\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\24\13\1\u024d\1\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13"+ - "\1\u024e\13\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\4\13\1\u0198\21\13\1\0\3\13\73\0\1\u024f"+ - "\12\0\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\5\13\13\0\11\13\1\u0250"+ - "\14\13\1\0\3\13\72\0\1\u01ad\13\0\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\24\13\1\u0251\1\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223\10\13"+ - "\1\u0252\11\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13"+ - "\13\0\4\13\1\u0253\12\13\1\u0151\6\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\4\13\1\310\21\13"+ - "\1\0\3\13\72\0\1\u01e0\13\0\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\12\13\1\u0198\13\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\1\u0254\16\13\1\u0151\6\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\24\13"+ - "\1\u0255\1\13\1\0\3\13\1\12\5\13\1\0\2\12"+ - "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13"+ - "\1\u0256\13\0\26\13\1\0\3\13\1\12\5\13\1\0"+ - "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0"+ - "\5\13\13\0\1\13\1\204\24\13\1\0\3\13\1\12"+ - "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0"+ - "\1\12\5\0\5\13\13\0\17\13\1\u0257\6\13\1\0"+ - "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0"+ - "\1\12\2\0\1\12\5\0\4\13\1\251\13\0\26\13"+ - "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13"+ - "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13"+ - "\1\u0166\14\13\1\u0258\4\13\1\0\3\13\1\12\5\13"+ - "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12"+ - "\5\0\5\13\13\0\13\13\1\u0259\12\13\1\0\3\13"+ - "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12"+ - "\2\0\1\12\5\0\5\13\13\0\14\13\1\u01a2\11\13"+ - "\1\0\3\13"; - - private static int [] zzUnpackTrans() { - int [] result = new int[38500]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\11\0\4\1\1\11\1\1\1\11\3\1\2\11\4\1"+ - "\1\11\15\1\1\11\1\1\1\11\24\1\1\11\2\1"+ - "\1\11\3\1\1\11\2\1\2\11\1\1\1\11\3\1"+ - "\1\11\1\1\1\11\5\1\1\11\1\1\1\11\1\1"+ - "\1\11\2\1\1\11\15\1\1\0\1\1\1\0\1\1"+ - "\1\11\1\1\3\0\1\1\1\0\2\1\2\0\34\1"+ - "\10\0\43\1\1\0\1\1\2\0\32\1\3\0\1\1"+ - "\1\11\2\1\1\0\1\11\1\1\1\0\1\11\2\1"+ - "\1\0\1\11\1\1\1\0\3\1\1\0\1\11\1\1"+ - "\1\0\3\1\10\0\1\1\1\0\2\1\1\0\1\1"+ - "\1\0\1\1\2\0\41\1\15\0\35\1\1\0\23\1"+ - "\3\0\5\1\1\0\1\1\5\0\1\1\1\0\1\1"+ - "\11\0\40\1\4\0\1\11\5\0\40\1\1\0\10\1"+ - "\1\0\2\1\2\11\5\0\21\1\2\11\6\0\33\1"+ - "\3\0\10\1\7\0\14\1\1\0\4\1\2\11\1\0"+ - "\10\1\1\0\1\1\1\0\4\1\1\0\12\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[601]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int HEREDOC_EOF_SINGLE_QUOTED = 5; + public static final int HEREDOC_EOT_SINGLE_QUOTED = 7; + public static final int HEREDOC_EOT_UNQUOTED = 6; + public static final int STRING = 1; + public static final int BACKTICKS = 3; + public static final int YYINITIAL = 0; + public static final int HEREDOC_EOF_UNQUOTED = 4; + public static final int CHAR_LITERAL = 2; + public static final int POD = 8; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\12\1\11\1\0\1\12\1\6\22\0\1\12\1\46\1\102" + + "\1\7\1\26\1\24\1\50\1\53\1\21\1\25\1\33\1\41\1\22" + "\1\17\1\20\1\32\1\3\1\61\1\62\1\61\1\61\3\5\2\2" + + "\1\22\1\22\1\42\1\43\1\45\1\47\1\23\3\4\1\15\1\16" + "\1\104\5\1\1\14\2\1\1\103\4\1\1\105\3\1\1\13\2\1" + + "\1\21\1\10\1\21\1\44\1\1\1\31\1\60\1\70\1\35\1\40" + "\1\57\1\74\1\72\1\56\1\65\1\101\1\71\1\37\1\67\1\73" + + "\1\55\1\54\1\76\1\64\1\34\1\66\1\75\1\63\1\77\1\36" + "\1\100\1\1\1\27\1\52\1\30\1\51\uff81\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 = "\11\0\1\1\1\2\2\3\1\1\1\4\1\5\1\6" + "\1\7\1\2\1\10\1\2\1\1\1\7\1\10\1\1" + + "\1\11\2\7\5\2\10\7\1\12\24\2\1\13\1\14" + "\1\15\1\16\3\14\1\17\1\14\1\20\1\21\1\22" + + "\1\14\1\23\3\14\1\24\1\14\1\25\5\14\1\26" + "\1\14\1\27\1\14\1\30\2\14\1\31\1\14\1\32" + + "\1\3\1\33\1\32\1\33\1\32\1\34\1\32\1\4" + "\1\35\1\36\1\1\1\0\1\36\1\0\3\36\3\0" + "\1\7\1\0\2\2\2\0\22\2\1\37\1\2\1\40" + + "\2\2\1\40\4\2\10\0\1\7\7\2\1\40\31\2" + "\1\1\1\0\1\2\2\0\1\2\1\37\6\2\1\40" + "\2\2\1\37\1\40\14\2\1\1\3\0\1\2\1\15" + + "\1\41\1\14\1\0\2\41\1\0\1\20\1\42\1\14" + "\1\0\2\42\1\0\1\14\1\43\1\14\1\0\2\43" + "\1\0\3\14\10\0\1\33\1\0\2\34\1\0\1\44" + + "\1\0\1\2\2\0\14\2\1\40\6\2\1\37\15\2" + "\15\0\33\2\1\37\1\2\1\0\2\45\7\2\1\40" + "\10\2\1\1\3\0\5\2\1\0\1\1\5\0\1\46" + + "\1\0\1\46\11\0\1\45\10\2\1\37\26\2\4\0" + "\1\47\5\0\1\37\11\2\1\37\5\2\1\37\17\2" + "\1\0\4\45\2\2\1\37\1\2\1\0\2\45\1\50" + + "\1\51\5\0\16\2\1\37\2\2\1\52\1\53\6\0" + "\2\2\1\37\25\2\1\45\2\2\3\0\1\37\7\2" + "\7\0\14\2\1\0\4\2\1\54\1\55\1\0\10\2" + + "\1\0\1\2\1\0\4\2\1\0\12\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[601]; + 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\106\0\214\0\322\0\u0118\0\u015e\0\u01a4\0\u01ea" + + "\0\u0230\0\u0276\0\u02bc\0\u0302\0\u0348\0\u038e\0\u03d4\0\u038e" + + "\0\u041a\0\u0460\0\u04a6\0\u038e\0\u038e\0\u04ec\0\u0532\0\u0578" + + "\0\u05be\0\u038e\0\u0604\0\u064a\0\u0690\0\u06d6\0\u071c\0\u0762" + + "\0\u07a8\0\u07ee\0\u0834\0\u087a\0\u08c0\0\u0906\0\u094c\0\u038e" + + "\0\u0992\0\u038e\0\u09d8\0\u0a1e\0\u0a64\0\u0aaa\0\u0af0\0\u0b36" + + "\0\u0b7c\0\u0bc2\0\u0c08\0\u0c4e\0\u0c94\0\u0cda\0\u0d20\0\u0d66" + + "\0\u0dac\0\u0df2\0\u0e38\0\u0e7e\0\u0ec4\0\u0f0a\0\u038e\0\u0f50" + + "\0\u0f96\0\u038e\0\u0fdc\0\u1022\0\u1068\0\u038e\0\u10ae\0\u10f4" + + "\0\u038e\0\u038e\0\u113a\0\u038e\0\u1180\0\u11c6\0\u120c\0\u038e" + + "\0\u1252\0\u038e\0\u1298\0\u12de\0\u1324\0\u136a\0\u13b0\0\u038e" + + "\0\u13f6\0\u038e\0\u143c\0\u038e\0\u1482\0\u14c8\0\u038e\0\u150e" + + "\0\u1554\0\u1554\0\u1554\0\u159a\0\u15e0\0\u1626\0\u166c\0\u16b2" + + "\0\u16f8\0\u173e\0\u1784\0\u17ca\0\u1810\0\u1856\0\u189c\0\u0276" + + "\0\u038e\0\u17ca\0\u18e2\0\u1928\0\u196e\0\u1928\0\u19b4\0\u19fa" + + "\0\u1a40\0\u1a86\0\u1acc\0\u1b12\0\u1b58\0\u1b9e\0\u1be4\0\u1c2a" + + "\0\u1c70\0\u1cb6\0\u1cfc\0\u1d42\0\u1d88\0\u1dce\0\u1e14\0\u1e5a" + + "\0\u1ea0\0\u1ee6\0\u1f2c\0\u1f72\0\u1fb8\0\u1ffe\0\u2044\0\u208a" + + "\0\u20d0\0\u2116\0\u02bc\0\u215c\0\u21a2\0\u21e8\0\u222e\0\u2274" + + "\0\u22ba\0\u2300\0\u2346\0\u238c\0\u23d2\0\u2418\0\u245e\0\u24a4" + + "\0\u24ea\0\u2530\0\u2576\0\u25bc\0\u2602\0\u2648\0\u268e\0\u26d4" + + "\0\u271a\0\u2760\0\u27a6\0\u27ec\0\u2832\0\u2878\0\u28be\0\u2904" + + "\0\u294a\0\u2990\0\u29d6\0\u2a1c\0\u2a62\0\u2aa8\0\u2aee\0\u2b34" + + "\0\u2b7a\0\u2bc0\0\u2c06\0\u2c4c\0\u2c92\0\u2cd8\0\u2d1e\0\u2d64" + + "\0\u2daa\0\u2df0\0\u2e36\0\u2e7c\0\u2ec2\0\u2f08\0\u2f4e\0\u02bc" + + "\0\u2f94\0\u2fda\0\u3020\0\u3066\0\u30ac\0\u30f2\0\u3138\0\u317e" + + "\0\u31c4\0\u320a\0\u3250\0\u3296\0\u32dc\0\u3322\0\u3368\0\u33ae" + + "\0\u33f4\0\u343a\0\u3480\0\u34c6\0\u350c\0\u3552\0\u3598\0\u35de" + + "\0\u3624\0\u366a\0\u36b0\0\u36f6\0\u038e\0\u373c\0\u3782\0\u37c8" + + "\0\u038e\0\u3782\0\u380e\0\u038e\0\u3854\0\u389a\0\u38e0\0\u038e" + + "\0\u389a\0\u3926\0\u396c\0\u39b2\0\u39f8\0\u3a3e\0\u038e\0\u39f8" + + "\0\u3a84\0\u3aca\0\u3b10\0\u3b56\0\u3b9c\0\u3be2\0\u3c28\0\u3c6e" + + "\0\u3cb4\0\u3cfa\0\u3d40\0\u3d86\0\u3dcc\0\u3e12\0\u1554\0\u3e58" + + "\0\u3e9e\0\u3ee4\0\u3f2a\0\u3f70\0\u3fb6\0\u3ffc\0\u4042\0\u4088" + + "\0\u40ce\0\u4114\0\u415a\0\u41a0\0\u41e6\0\u422c\0\u4272\0\u42b8" + + "\0\u26d4\0\u42fe\0\u4344\0\u438a\0\u43d0\0\u4416\0\u445c\0\u44a2" + + "\0\u44e8\0\u452e\0\u4574\0\u45ba\0\u4600\0\u4646\0\u468c\0\u46d2" + + "\0\u4718\0\u320a\0\u475e\0\u47a4\0\u47ea\0\u4830\0\u4876\0\u48bc" + + "\0\u4902\0\u4948\0\u498e\0\u49d4\0\u4a1a\0\u4a60\0\u4aa6\0\u4aec" + + "\0\u4b32\0\u4b78\0\u4bbe\0\u4c04\0\u4c4a\0\u4c90\0\u4cd6\0\u4d1c" + + "\0\u4d62\0\u4da8\0\u4dee\0\u4e34\0\u4e7a\0\u4ec0\0\u4f06\0\u4f4c" + + "\0\u4f92\0\u4fd8\0\u501e\0\u5064\0\u50aa\0\u50f0\0\u5136\0\u517c" + + "\0\u51c2\0\u5208\0\u524e\0\u5294\0\u52da\0\u5320\0\u5366\0\u26d4" + + "\0\u53ac\0\u53f2\0\u5438\0\u547e\0\u54c4\0\u550a\0\u5550\0\u5596" + + "\0\u55dc\0\u5622\0\u5668\0\u56ae\0\u56f4\0\u573a\0\u5780\0\u57c6" + + "\0\u580c\0\u5852\0\u5898\0\u58de\0\u5924\0\u596a\0\u59b0\0\u59f6" + + "\0\u5a3c\0\u5a82\0\u5ac8\0\u5b0e\0\u5b54\0\u5b9a\0\u5be0\0\u5c26" + + "\0\u5c6c\0\u5cb2\0\u5cf8\0\u5d3e\0\u1252\0\u5d84\0\u13b0\0\u5dca" + + "\0\u5e10\0\u5e56\0\u5e9c\0\u5ee2\0\u5f28\0\u5f6e\0\u5fb4\0\u5ffa" + + "\0\u6040\0\u6086\0\u60cc\0\u6112\0\u6158\0\u619e\0\u61e4\0\u622a" + + "\0\u6270\0\u2c4c\0\u62b6\0\u62fc\0\u6342\0\u6388\0\u63ce\0\u6414" + + "\0\u645a\0\u64a0\0\u64e6\0\u652c\0\u6572\0\u65b8\0\u65fe\0\u6644" + + "\0\u668a\0\u66d0\0\u6716\0\u675c\0\u67a2\0\u67e8\0\u682e\0\u6874" + + "\0\u68ba\0\u6900\0\u6946\0\u698c\0\u038e\0\u69d2\0\u6a18\0\u6a5e" + + "\0\u6aa4\0\u6aea\0\u6b30\0\u6b76\0\u6bbc\0\u6c02\0\u6c48\0\u6c8e" + + "\0\u6cd4\0\u6d1a\0\u6d60\0\u6da6\0\u6dec\0\u6e32\0\u6e78\0\u6ebe" + + "\0\u6f04\0\u6f4a\0\u2a62\0\u6f90\0\u6fd6\0\u701c\0\u7062\0\u70a8" + + "\0\u70ee\0\u7134\0\u717a\0\u71c0\0\u7206\0\u724c\0\u7292\0\u72d8" + + "\0\u731e\0\u7364\0\u73aa\0\u73f0\0\u7436\0\u747c\0\u74c2\0\u7508" + + "\0\u754e\0\u7594\0\u75da\0\u7620\0\u7666\0\u76ac\0\u038e\0\u038e" + + "\0\u76f2\0\u7738\0\u777e\0\u77c4\0\u780a\0\u7850\0\u7896\0\u78dc" + + "\0\u7922\0\u7968\0\u79ae\0\u79f4\0\u7a3a\0\u7a80\0\u7ac6\0\u7b0c" + + "\0\u7b52\0\u7b98\0\u7bde\0\u31c4\0\u7c24\0\u7c6a\0\u038e\0\u038e" + + "\0\u7cb0\0\u7cf6\0\u7d3c\0\u7d82\0\u7dc8\0\u7e0e\0\u7e54\0\u7e9a" + + "\0\u2878\0\u7ee0\0\u7f26\0\u7f6c\0\u7fb2\0\u7ff8\0\u803e\0\u8084" + + "\0\u80ca\0\u8110\0\u8156\0\u819c\0\u81e2\0\u8228\0\u826e\0\u82b4" + + "\0\u82fa\0\u8340\0\u8386\0\u83cc\0\u8412\0\u8458\0\u849e\0\u84e4" + + "\0\u852a\0\u8570\0\u85b6\0\u85fc\0\u8642\0\u8688\0\u86ce\0\u8714" + + "\0\u875a\0\u87a0\0\u87e6\0\u882c\0\u8872\0\u88b8\0\u88fe\0\u8944" + + "\0\u898a\0\u89d0\0\u8a16\0\u8a5c\0\u8aa2\0\u8ae8\0\u8b2e\0\u8b74" + + "\0\u8bba\0\u8c00\0\u8c46\0\u8c8c\0\u8cd2\0\u8d18\0\u8d5e\0\u8da4" + + "\0\u8dea\0\u8e30\0\u8e76\0\u8ebc\0\u038e\0\u038e\0\u8f02\0\u8f48" + + "\0\u8f8e\0\u8fd4\0\u901a\0\u9060\0\u90a6\0\u90ec\0\u9132\0\u9178" + + "\0\u91be\0\u9204\0\u924a\0\u9290\0\u92d6\0\u931c\0\u9362\0\u93a8" + + "\0\u93ee\0\u9434\0\u947a\0\u94c0\0\u9506\0\u954c\0\u9592\0\u95d8" + "\0\u961e"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[601]; + 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 = "\1\12\1\13\1\14\1\15\1\13\1\14\1\16\1\17" + "\1\12\1\20\1\21\4\13\1\22\1\23\1\24\1\25" + + "\1\26\1\27\1\30\1\31\2\24\1\32\1\33\1\34" + "\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\50\1\45\1\52" + "\1\53\1\54\1\55\1\56\1\57\2\14\1\60\1\61" + + "\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71" + "\1\72\1\73\1\74\1\75\1\76\1\77\3\13\10\100" + + "\1\101\1\102\11\100\2\103\1\104\1\105\53\100\1\106" + "\3\100\10\107\1\110\1\111\41\107\1\112\32\107\10\113" + + "\1\101\1\114\11\113\2\115\1\116\1\117\2\113\1\120" + "\54\113\10\121\1\101\1\122\4\121\1\123\4\121\2\124" + + "\1\125\1\126\57\121\10\127\1\101\1\130\4\127\1\131" + "\67\127\10\121\1\101\1\132\4\121\1\133\4\121\2\124" + + "\1\125\1\126\57\121\10\127\1\101\1\134\4\127\1\135" + "\67\127\11\136\1\137\31\136\1\140\42\136\6\12\1\0" + + "\2\12\2\0\4\12\4\0\1\12\2\0\1\12\5\0" + "\5\12\13\0\26\12\1\0\4\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\26\13\1\0\3\13\2\141\2\14\1\141\1\14" + "\1\0\2\141\2\0\1\141\1\142\1\143\1\144\1\0" + + "\1\145\2\0\1\141\2\0\1\141\5\0\3\141\1\142" + "\1\143\13\0\3\141\1\144\1\141\2\14\11\141\1\143" + + "\5\141\1\0\1\141\1\143\3\141\1\146\1\147\1\141" + "\1\147\1\0\2\141\2\0\1\150\1\142\1\143\1\144" + + "\1\0\1\145\2\0\1\141\2\0\1\141\5\0\2\141" + "\1\150\1\142\1\143\13\0\3\141\1\144\1\141\2\147" + + "\11\141\1\143\5\141\1\0\1\141\1\143\1\141\106\0" + "\11\151\1\0\34\151\1\152\37\151\12\0\1\21\112\0" + + "\1\50\23\0\1\50\1\0\1\50\42\0\2\145\1\0" + "\1\145\53\0\2\145\23\0\1\12\1\153\2\12\1\153" + + "\1\12\1\0\2\12\2\0\4\153\4\0\1\12\2\0" + "\1\154\1\155\4\0\5\153\13\0\5\153\2\12\17\153" + + "\1\0\3\153\1\0\1\156\2\0\1\156\6\0\4\156" + "\7\0\1\157\1\155\4\0\5\156\2\0\1\50\10\0" + + "\5\156\2\0\17\156\1\0\3\156\1\0\1\156\2\0" + "\1\156\6\0\4\156\7\0\1\157\1\155\4\0\5\156" + + "\13\0\5\156\2\0\17\156\1\0\3\156\1\12\1\153" + "\2\160\1\153\1\160\1\0\2\160\2\0\4\153\4\161" + + "\1\160\2\161\1\162\1\163\1\0\3\161\5\153\13\161" + "\5\153\2\160\17\153\1\161\3\153\10\164\1\165\21\164" + + "\2\0\7\164\1\166\42\164\43\0\1\50\7\0\1\50" + "\26\0\1\50\3\0\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\3\0\1\167\1\0" + "\1\13\1\170\1\13\1\171\1\13\5\0\1\172\3\0" + + "\1\173\1\0\1\174\1\175\1\176\1\177\4\13\1\200" + "\1\201\1\202\6\13\1\203\1\204\1\13\1\205\1\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\3\13\1\206\1\13" + + "\13\0\1\13\1\207\1\210\1\13\1\211\3\13\1\212" + "\2\13\1\213\12\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\1\13\1\214\24\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\1\215\1\216\3\13\13\0\1\13\1\217" + "\1\13\1\220\1\221\4\13\1\222\14\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\1\13\1\223\1\13" + + "\1\224\5\13\1\225\2\13\1\226\4\13\1\227\4\13" + "\1\0\3\13\41\0\1\50\1\0\1\50\104\0\1\230" + + "\1\50\105\0\1\50\5\0\1\50\2\0\1\231\1\232" + "\1\233\1\234\5\0\1\235\2\0\1\236\3\0\1\237" + + "\54\0\1\50\105\0\1\50\1\0\1\240\103\0\1\50" + "\5\0\1\50\77\0\1\50\4\0\1\50\2\0\1\50" + + "\26\0\1\50\3\0\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\1\13\1\241\2\13\1\242\3\13\1\243\1\244\7\13" + "\1\245\4\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\1\13" + "\1\246\3\13\13\0\1\247\7\13\1\250\10\13\1\251" + + "\4\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\3\13\1\252\22\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\1\253\1\13\1\254\1\255\1\13\13\0\1\13\1\256" + + "\2\13\1\257\2\13\1\260\7\13\1\261\2\13\1\223" + "\3\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\262" + "\1\13\1\263\1\13\13\0\12\13\1\264\1\13\1\265" + + "\2\13\1\266\6\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\3\13\1\267\1\270\21\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\3\13\1\271\1\272" + "\4\13\1\273\1\13\1\274\12\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\1\13\1\275\15\13\1\276" + + "\1\223\5\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\3\13\1\277\4\13\1\300\1\301\14\13\1\0" + "\3\13\1\12\5\13\1\0\1\12\1\302\2\0\4\13" + + "\4\0\1\12\2\0\1\12\3\0\1\303\1\0\1\304" + "\4\13\5\0\1\305\3\0\1\306\1\0\4\13\1\307" + + "\10\13\1\274\6\13\1\310\1\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\3\13\1\311\1\13\13\0\11\13\1\312" + "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\3\13\1\313\5\13\1\314\14\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\3\13\1\315\1\13\13\0\1\13\1\316" + + "\1\13\1\317\4\13\1\320\2\13\1\321\12\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\322" + "\1\13\1\323\22\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\1\13\1\324\1\13\1\325\1\13\13\0\1\13\1\326" + + "\7\13\1\327\14\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\225\1\216\3\13\13\0\12\13\1\330\1\331\3\13" + "\1\332\6\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\10\13\1\333\10\13\1\334\4\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\2\13\1\335\1\13" + + "\1\336\3\13\1\337\15\13\1\0\3\13\1\12\5\13" + "\1\0\1\12\1\340\2\0\4\13\4\0\1\12\2\0" + + "\1\12\3\0\1\341\1\0\5\13\5\0\1\342\3\0" + "\1\343\1\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\1\13\1\344\24\13\1\0\3\13\10\100" + "\2\0\11\100\2\0\1\100\1\0\53\100\1\0\3\100" + + "\11\345\1\0\74\345\1\0\1\346\2\0\1\346\6\0" + "\4\346\7\0\1\347\1\350\4\0\5\346\13\0\5\346" + + "\2\0\17\346\1\0\3\346\10\100\2\0\11\100\2\0" + "\1\100\1\347\53\100\1\0\3\100\1\0\1\346\2\351" + + "\1\346\1\351\1\0\2\351\2\0\4\346\7\351\1\352" + "\1\353\1\0\3\351\5\346\13\351\5\346\2\351\17\346" + + "\1\351\3\346\10\107\2\0\41\107\1\0\32\107\11\354" + "\1\0\74\354\10\113\2\0\11\113\2\0\1\113\1\0" + + "\2\113\1\0\54\113\1\0\1\355\2\0\1\355\6\0" + "\4\355\7\0\1\356\1\357\4\0\5\355\13\0\5\355" + + "\2\0\17\355\1\0\3\355\10\113\2\0\11\113\2\0" + "\1\113\1\356\2\113\1\0\54\113\1\0\1\355\2\360" + + "\1\355\1\360\1\0\2\360\2\0\4\355\7\360\1\361" + "\1\362\1\0\3\360\5\355\13\360\5\355\2\360\17\355" + + "\1\360\3\355\10\121\2\0\11\121\2\0\1\121\1\0" + "\67\121\2\0\11\121\2\0\1\121\1\0\54\121\1\363" + + "\2\121\1\0\1\364\2\0\1\364\6\0\4\364\7\0" + "\1\365\1\366\4\0\5\364\13\0\5\364\2\0\17\364" + + "\1\0\3\364\10\121\2\0\11\121\2\0\1\121\1\365" + "\57\121\1\0\1\364\2\367\1\364\1\367\1\0\2\367" + + "\2\0\4\364\7\367\1\370\1\371\1\0\3\367\5\364" + "\13\367\5\364\2\367\17\364\1\367\3\364\10\127\2\0" + + "\104\127\2\0\71\127\1\372\2\127\10\121\2\0\11\121" + "\2\0\1\121\1\0\54\121\1\373\2\121\10\127\2\0" + + "\71\127\1\374\2\127\11\136\1\0\31\136\1\0\42\136" + "\35\0\1\375\16\0\1\376\1\377\1\u0100\1\u0101\5\0" + + "\1\u0102\2\0\1\u0103\3\0\1\u0104\11\0\6\141\1\0" + "\2\141\2\0\4\141\4\0\1\141\2\0\1\141\5\0" + + "\5\141\13\0\26\141\1\0\5\141\2\u0105\1\141\1\u0105" + "\1\0\2\141\2\0\4\141\1\u0106\3\0\1\141\2\0" + + "\1\141\5\0\5\141\1\u0106\12\0\5\141\2\u0105\17\141" + "\1\0\5\141\2\145\1\141\1\145\1\0\2\141\2\0" + + "\2\141\1\143\1\144\4\0\1\141\2\0\1\141\5\0" + "\4\141\1\143\13\0\3\141\1\144\1\141\2\145\11\141" + + "\1\143\5\141\1\0\1\141\1\143\3\141\2\146\1\141" + "\1\146\1\0\2\141\2\0\2\141\1\143\1\144\1\0" + + "\1\145\2\0\1\141\2\0\1\141\5\0\4\141\1\143" + "\13\0\3\141\1\144\1\141\2\146\11\141\1\143\5\141" + + "\1\0\1\141\1\143\3\141\1\146\1\147\1\141\1\147" + "\1\0\2\141\2\0\1\141\1\u0107\1\143\1\144\1\0" + + "\1\145\2\0\1\141\2\0\1\141\5\0\3\141\1\u0107" + "\1\143\13\0\3\141\1\144\1\141\2\147\11\141\1\143" + + "\5\141\1\0\1\141\1\143\3\141\4\u0108\1\0\2\141" + "\2\0\2\141\2\u0108\4\0\1\141\2\0\1\141\5\0" + + "\1\141\1\u0108\2\141\1\u0108\13\0\3\141\4\u0108\5\141" + "\1\u0108\3\141\1\u0108\5\141\1\0\1\141\1\u0108\1\141" + + "\11\151\1\0\74\151\11\152\1\0\74\152\1\12\5\153" + "\1\0\2\12\2\0\4\153\4\0\1\12\2\0\1\12" + + "\5\0\5\153\13\0\26\153\1\0\3\153\1\12\1\153" + "\2\12\1\153\1\12\1\0\2\12\2\0\4\153\4\0" + + "\1\12\2\0\1\12\1\155\4\0\5\153\13\0\5\153" + "\2\12\17\153\1\0\3\153\1\0\1\u0109\2\0\1\u0109" + + "\6\0\4\u0109\15\0\5\u0109\13\0\5\u0109\2\0\17\u0109" + "\1\0\3\u0109\1\0\5\156\5\0\4\156\15\0\5\156" + + "\13\0\26\156\1\0\3\156\1\0\1\156\2\0\1\156" + "\6\0\4\156\10\0\1\155\4\0\5\156\13\0\5\156" + + "\2\0\17\156\1\0\3\156\1\0\1\u0109\2\0\1\u0109" + "\2\0\2\161\2\0\4\u0109\10\161\1\0\4\161\5\u0109" + + "\13\161\5\u0109\2\0\17\u0109\1\161\3\u0109\10\164\1\165" + "\21\164\1\u010a\64\164\1\0\74\164\32\167\1\u010b\53\167" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\4\13\1\u010c\21\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13" + + "\1\320\22\13\1\0\3\13\46\172\1\u010d\37\172\52\173" + "\1\u010e\33\173\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\3\13\1\u010f\1\13" + "\13\0\10\13\1\u0110\15\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\1\13\1\u0111\3\13\13\0\10\13\1\246\15\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\11\13" + + "\1\u0112\1\13\1\u0113\5\13\1\u0114\4\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\3\13\1\u0115\1\13\13\0\3\13" + "\1\u0116\6\13\1\u0117\1\u0118\3\13\1\u0119\6\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\4\13\1\272" + "\21\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\17\13\1\310\6\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\4\13\1\246\14\13\1\u011a\4\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\14\13\1\u011b" + "\11\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\10\13\1\246\15\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\u011c\4\13\13\0\13\13\1\u011d\12\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\1\13\1\u011e\24\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\1\310\4\13\13\0" + "\17\13\1\u011f\6\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\4\13\1\u0120\13\0\1\13\1\u0121\6\13\1\u0122\2\13" + + "\1\u0123\12\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\3\13" + + "\1\u0124\1\13\13\0\26\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\24\13\1\u0125\1\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\1\223\25\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\223" + "\15\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\12\13\1\u0126\13\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\20\13\1\u0127\5\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\1\13\1\u0128\3\13\13\0\16\13\1\310" + + "\7\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\17\13\1\u0129\6\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\u012a\4\13\13\0\26\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\1\u012b\4\13\13\0\17\13\1\u012c\6\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\3\13\1\u012d\1\13\13\0" + "\20\13\1\u012e\5\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\3\13\1\310\22\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\13\13\1\u012f\12\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\13\13\1\307" + "\12\13\1\0\3\13\12\0\1\u0130\3\0\1\u0131\12\0" + + "\1\u0132\11\0\1\50\7\0\1\u0133\26\0\1\u0134\60\0" + "\1\u0135\113\0\1\u0136\101\0\1\u0137\121\0\1\u0138\100\0" + + "\1\u0139\76\0\1\u013a\1\u013b\102\0\1\u013c\73\0\1\50" + "\1\0\1\45\40\0\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\1\310\4\13" + "\13\0\1\310\25\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\13\1\u013d\3\13\13\0\26\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\1\13\1\u013e\7\13\1\u013f" + "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\1\225\25\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\1\u0140" + "\4\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\12\13\1\310\13\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\3\13\1\u0141\22\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\4\13\1\310\13\0\26\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13" + "\1\310\15\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\2\13" + + "\1\310\2\13\13\0\26\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\4\13\1\u0142\21\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\1\310\2\13\1\267" + "\5\13\1\u0143\14\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\1\u0144\4\13\13\0\26\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\20\13\1\310\5\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\1\13\1\u0140\3\13\13\0\26\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13" + "\1\u0145\21\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13" + "\1\u0146\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\13\1\u0147\3\13\13\0\26\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\4\13\1\u0148\21\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\4\13\1\u0149" + "\21\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\1\310\4\13" + "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13" + + "\1\223\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\13\1\310\3\13\13\0\26\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\3\13\1\u014a\1\13\13\0\26\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\1\u014b\1\u014c\2\13\1\u014d" + "\13\0\4\13\1\u014e\2\13\1\u014f\2\13\1\u0150\4\13" + + "\1\u0151\1\310\1\13\1\u0152\1\u0153\2\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\17\13\1\u0119\6\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13" + "\1\u0154\6\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13" + "\1\u0120\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\13\1\u0155\3\13\13\0\26\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\4\13\1\55\13\0\12\13\1\310\13\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\3\13\1\u0156\1\13" + "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\1\12" + + "\1\340\2\0\4\13\4\0\1\12\2\0\1\12\3\0" + "\1\341\1\0\5\13\5\0\1\342\3\0\1\343\1\0" + + "\21\13\1\u0157\4\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\3\13\1\u0158\7\13\1\u0159\12\13\1\0" + "\3\13\6\302\1\u015a\1\302\1\u015b\2\u015a\4\302\4\u015a" + + "\1\302\2\u015a\1\302\5\u015a\5\302\13\u015a\26\302\1\u015a" + "\3\302\32\303\1\u015c\53\303\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\16\13\1\u015d\7\13\1\0\3\13\46\305\1\u015c" + + "\37\305\52\306\1\u015c\33\306\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\1\310\25\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\3\13\1\u015e\22\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\17\13\1\u015f\6\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\24\13\1\265" + "\1\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\3\13\1\u0145" + "\1\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\1\13\1\u0160\24\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\12\13\1\u0161\13\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\12\13\1\u0162" + + "\13\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\3\13\1\307\22\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\12\13\1\330\13\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\12\13\1\223\13\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\2\13\1\u012a\2\13\13\0" + "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\17\13\1\u0155\6\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\1\13\1\u0163\24\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\10\13\1\u0164\15\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\3\13\1\u0165\1\13\13\0" + + "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\11\13\1\u0166\14\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\4\13\1\u0167\21\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\1\u0168\2\13\1\u0169\1\u016a\13\0\1\u016b" + "\11\13\1\u016c\13\13\1\0\3\13\1\12\5\13\1\0" + + "\1\12\1\u016d\2\0\4\13\4\0\1\12\2\0\1\12" + "\3\0\1\u016e\1\0\5\13\5\0\1\u016f\3\0\1\u0170" + + "\1\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\1\13\1\u0171\24\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\11\13\1\u0172\14\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\10\13\1\201\1\u0173" + "\5\13\1\u0174\6\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\11\13\1\u0175\14\13\1\0\3\13\6\340" + + "\1\u0176\1\340\1\u0177\2\u0176\4\340\4\u0176\1\340\2\u0176" + "\1\340\5\u0176\5\340\13\u0176\26\340\1\u0176\3\340\32\341" + + "\1\u0178\53\341\46\342\1\u0179\37\342\52\343\1\u017a\33\343" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\11\13\1\201\14\13" + "\1\0\3\13\1\0\5\346\5\0\4\346\15\0\5\346" + + "\13\0\26\346\1\0\3\346\1\0\1\346\2\0\1\346" + "\6\0\4\346\10\0\1\350\4\0\5\346\13\0\5\346" + + "\2\0\17\346\1\0\3\346\1\0\1\u017b\2\0\1\u017b" + "\6\0\4\u017b\15\0\5\u017b\13\0\5\u017b\2\0\17\u017b" + + "\1\0\3\u017b\1\0\1\u017b\2\0\1\u017b\2\0\2\351" + "\2\0\4\u017b\10\351\1\0\4\351\5\u017b\13\351\5\u017b" + + "\2\0\17\u017b\1\351\3\u017b\1\0\5\355\5\0\4\355" + "\15\0\5\355\13\0\26\355\1\0\3\355\1\0\1\355" + + "\2\0\1\355\6\0\4\355\10\0\1\357\4\0\5\355" + "\13\0\5\355\2\0\17\355\1\0\3\355\1\0\1\u017c" + + "\2\0\1\u017c\6\0\4\u017c\15\0\5\u017c\13\0\5\u017c" + "\2\0\17\u017c\1\0\3\u017c\1\0\1\u017c\2\0\1\u017c" + + "\2\0\2\360\2\0\4\u017c\10\360\1\0\4\360\5\u017c" + "\13\360\5\u017c\2\0\17\u017c\1\360\3\u017c\10\121\2\0" + + "\11\121\2\0\1\121\1\0\55\121\1\u017d\1\121\1\0" + "\5\364\5\0\4\364\15\0\5\364\13\0\26\364\1\0" + + "\3\364\1\0\1\364\2\0\1\364\6\0\4\364\10\0" + "\1\366\4\0\5\364\13\0\5\364\2\0\17\364\1\0" + + "\3\364\1\0\1\u017e\2\0\1\u017e\6\0\4\u017e\15\0" + "\5\u017e\13\0\5\u017e\2\0\17\u017e\1\0\3\u017e\1\0" + + "\1\u017e\2\0\1\u017e\2\0\2\367\2\0\4\u017e\10\367" + "\1\0\4\367\5\u017e\13\367\5\u017e\2\0\17\u017e\1\367" + + "\3\u017e\10\127\2\0\72\127\1\u017f\1\127\10\121\2\0" + "\11\121\2\0\1\121\1\0\56\121\1\u017d\10\127\2\0" + + "\73\127\1\u017f\75\0\1\u0180\65\0\1\u0181\113\0\1\u0182" + "\101\0\1\u0183\121\0\1\u0184\100\0\1\u0185\76\0\1\u0186" + + "\1\u0187\102\0\1\u0188\30\0\2\141\2\u0105\1\141\1\u0105" + "\1\0\2\141\2\0\2\141\1\143\1\141\4\0\1\141" + + "\2\0\1\141\5\0\4\141\1\143\13\0\5\141\2\u0105" + "\11\141\1\143\5\141\1\0\1\141\1\143\1\141\2\0" + + "\2\u0105\1\0\1\u0105\53\0\2\u0105\23\0\2\141\4\u0108" + "\1\0\2\141\2\0\1\141\1\u0107\2\u0108\4\0\1\141" + + "\2\0\1\141\5\0\1\141\1\u0108\1\141\1\u0107\1\u0108" + "\13\0\3\141\4\u0108\5\141\1\u0108\3\141\1\u0108\5\141" + + "\1\0\1\141\1\u0108\1\141\1\0\5\u0109\5\0\4\u0109" + "\11\0\1\161\3\0\5\u0109\13\0\26\u0109\1\0\3\u0109" + + "\34\0\5\u010a\13\0\2\u010a\2\0\1\u010a\4\0\1\u010a" + "\1\0\1\u010a\2\0\1\u010a\2\0\1\u010a\10\0\32\u010b" + + "\1\u0189\53\u010b\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\3\13\1\u018a\1\13" + + "\13\0\26\13\1\0\3\13\46\u010d\1\u0189\37\u010d\52\u010e" + "\1\u0189\33\u010e\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\11\13" + "\1\u018b\14\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\11\13\1\u018c\14\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\15\13\1\u018d\10\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\20\13\1\246\5\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\1\13\1\u0155\3\13" + "\13\0\10\13\1\u018e\5\13\1\u014b\4\13\1\u018f\2\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13" + + "\1\u0190\13\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\3\13\1\u0191\22\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\15\13\1\u0192\10\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\1\u0193\4\13\13\0\1\u0194\1\13" + "\1\u0195\13\13\1\u0196\1\u0197\6\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\1\13\1\u0155\3\13\13\0\1\13\1\307" + + "\14\13\1\u014b\7\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\4\13\1\u0198\13\0\26\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\1\u0199\4\13\13\0\26\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\1\u019a\1\u019b\3\13\13\0\1\13\1\u019c" + "\6\13\1\u018e\1\13\1\u019d\10\13\1\u018f\2\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\3\13\1\u019e\1\13\13\0" + + "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\1\u019f\4\13" + + "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\12\13\1\u01a0\4\13\1\u0115\6\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\11\13\1\251\14\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\1\310" + "\12\13\1\307\7\13\1\201\2\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\1\13\1\u01a1\24\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\u0119" + + "\24\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\3\13\1\u01a2" + + "\1\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\1\246\25\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\4\13\1\246\21\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\11\13\1\u01a3\14\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13" + "\1\u01a4\21\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\16\13\1\u01a5\7\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\12\13\1\u01a6\13\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\15\13\1\310\10\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13" + + "\1\u0175\22\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\11\13\1\u01a7\14\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\1\13\1\u01a8\3\13\13\0\1\13\1\u019c\24\13" + "\1\0\3\13\12\0\1\u0130\16\0\1\u0132\21\0\1\u0133" + + "\26\0\1\u0134\106\0\1\u01a9\20\0\1\u01aa\105\0\1\u01ab" + "\105\0\1\u01ac\127\0\1\u01ad\124\0\1\u013c\106\0\1\u01ae" + + "\62\0\1\u01af\2\0\1\u01ad\124\0\1\u01b0\120\0\1\u01b1" + "\50\0\1\u01b2\134\0\1\u01ad\21\0\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\15\13\1\u01b3\10\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\12\13\1\u01b4\13\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\17\13\1\u01b5" + + "\6\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\2\13\1\310\23\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\17\13\1\u0192\6\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\1\13\1\223\3\13\13\0\26\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\1\u01b6\4\13\13\0\12\13" + "\1\310\13\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\3\13\1\223\5\13\1\u01b7\14\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\3\13\1\310\1\13\13\0\26\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\1\u01b8\4\13\13\0" + "\1\u01b9\1\13\1\u0195\13\13\1\u0196\1\u0197\6\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u0125" + + "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\10\13\1\u01ba\15\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\17\13\1\u01bb\6\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\21\13\1\u01bc\4\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\246" + "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\7\13\1\310\16\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\1\13\1\223\24\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\4\13\1\u01bd\13\0\26\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\3\13\1\u01be\22\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\21\13" + "\1\u01bf\4\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\4\13\1\u0166\21\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\21\13\1\u01c0\4\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\11\13\1\u01c1\14\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\4\13\1\55\13\0" + "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\12\13\1\u0145\13\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\3\13\1\u0192\1\13\13\0\26\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\17\13\1\u01c2\6\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u01c3" + + "\22\13\1\0\3\13\10\u015a\1\u015c\75\u015a\6\12\1\0" + "\2\12\2\0\4\12\4\0\1\12\2\0\1\12\5\0" + + "\5\u015b\13\0\2\u015b\2\12\1\u015b\4\12\1\u015b\1\12" + "\1\u015b\2\12\1\u015b\2\12\1\u015b\4\12\1\0\3\12" + + "\34\0\5\u015c\13\0\2\u015c\2\0\1\u015c\4\0\1\u015c" + "\1\0\1\u015c\2\0\1\u015c\2\0\1\u015c\10\0\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\1\272\1\u0155\3\13\13\0\10\13\1\u01c4" + + "\5\13\1\u014b\7\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\265\4\13\13\0\26\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\4\13\1\310\13\0\13\13\1\u01c5\12\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\14\13\1\310" + "\11\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\1\13\1\310\24\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\1\u01c6\1\310\1\13\1\u01c7\1\13\13\0\1\u01c8\1\13" + "\1\u01c9\13\13\1\u01ca\1\u01cb\6\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\1\13\1\u012c\3\13\13\0\26\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u01cc" + + "\7\13\1\u01cd\1\13\1\310\10\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\3\13\1\u01ce\22\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\13\13\1\225" + "\12\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\1\u012c\4\13" + "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\2\13\1\u01cf\23\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\3\13\1\u01d0\5\13\1\u01d1\14\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13" + "\1\256\22\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\4\13\1\u0163\21\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\11\13\1\u01d2\14\13\1\0\3\13" + + "\6\u016d\1\u01d3\1\u016d\1\u01d4\2\u01d3\4\u016d\4\u01d3\1\u016d" + + "\2\u01d3\1\u016d\3\u01d3\1\0\1\u01d3\5\u016d\13\u01d3\26\u016d" + + "\1\u01d3\3\u016d\32\u016e\1\u01d5\53\u016e\32\u016f\1\0\13\u016f" + + "\1\u01d6\37\u016f\32\u0170\1\0\17\u0170\1\u01d7\33\u0170\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\12\13\1\u01d8\13\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\3\13\1\u01d9\1\13\13\0" + "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\12\13\1\u01da\13\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\12\13\1\u01db\13\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\12\13\1\225\13\13\1\0" + + "\3\13\10\u0176\1\u01dc\75\u0176\6\u0177\1\u01dc\1\u0177\1\u01dd" + + "\2\u01dc\4\u0177\4\u01dc\1\u0177\2\u01dc\1\u0177\5\u01dc\5\u0177" + + "\13\u01dc\26\u0177\1\u01dc\3\u0177\32\u0178\1\u01de\53\u0178\46\u0179" + + "\1\u01de\37\u0179\52\u017a\1\u01de\33\u017a\1\0\5\u017b\5\0" + "\4\u017b\11\0\1\351\3\0\5\u017b\13\0\26\u017b\1\0" + + "\3\u017b\1\0\5\u017c\5\0\4\u017c\11\0\1\360\3\0" + "\5\u017c\13\0\26\u017c\1\0\3\u017c\1\0\5\u017e\5\0" + + "\4\u017e\11\0\1\367\3\0\5\u017e\13\0\26\u017e\1\0" + "\3\u017e\66\0\1\u01df\57\0\1\u01e0\124\0\1\u0188\106\0" + + "\1\u01e1\62\0\1\u01e2\2\0\1\u01e0\124\0\1\u01e3\120\0" + "\1\u01e4\50\0\1\u01e5\134\0\1\u01e0\55\0\5\u0189\13\0" + + "\2\u0189\1\0\2\u0189\3\0\2\u0189\1\0\1\u0189\2\0" + "\1\u0189\2\0\1\u0189\10\0\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\4\13\1\251\21\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\1\13\1\225\3\13\13\0\12\13\1\310\13\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13" + "\1\u01e6\6\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\3\13\1\u01e7\22\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\3\13\1\u01e8\22\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\10\13\1\337\15\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\4\13\1\u01e9\13\0" + + "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\246" + + "\3\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\1\13\1\u01ea\1\13\1\u01eb\22\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\u01ec" + "\5\13\1\u01ed\4\13\1\u01ee\2\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\1\13\1\u01ef\24\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\u01ee" + + "\15\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\3\13\1\u01f0\22\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\24\13\1\310\1\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\12\13\1\251\13\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u01f1" + "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\4\13\1\314\21\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\1\u01a6\25\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\3\13\1\u01ba\22\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\11\13\1\u01d1\14\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\3\13" + "\1\u0192\22\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\11\13\1\u01f2\14\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\1\13\1\246\24\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\3\13\1\251\22\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13" + "\1\u01f3\15\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\3\13" + "\1\u01f4\1\13\13\0\26\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\12\13\1\u0140\13\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\3\13\1\201\22\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13" + "\1\u01f5\6\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\3\13" + "\1\u01f6\1\13\13\0\26\13\1\0\3\13\104\0\1\u01f7" + + "\1\u01f8\103\0\1\u01f9\105\0\1\u01fa\105\0\1\u01fb\42\0" + "\1\u01fc\122\0\1\u01fd\117\0\1\u01ad\103\0\1\u01fe\111\0" + + "\1\u01ad\14\0\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13" + + "\1\u01ff\21\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\1\13\1\u0200\24\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\12\13\1\u0201\13\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\12\13\1\265\13\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\20\13" + "\1\223\5\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\3\13\1\u01eb\22\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\10\13\1\u0202\12\13\1\u01ee\2\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\13\13" + "\1\310\12\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\6\13\1\310\17\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\3\13\1\265\22\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\3\13\1\u0203\1\u0120\13\0\1\u0204" + "\25\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\10\13\1\u0205\15\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\10\13\1\201\15\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\11\13\1\u0206\14\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\17\13\1\u0207" + "\6\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\u0208" + "\3\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\1\13\1\u014c\3\13\13\0\26\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\1\13\1\u0209\24\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\u020a" + + "\1\13\1\u020b\22\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\1\13\1\u020c\24\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\1\u020d\2\13\1\u020e\4\13" + "\1\u020f\5\13\1\u01ed\4\13\1\u0210\2\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\1\13\1\u0211\24\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13" + + "\1\u0212\15\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\3\13\1\u0213\22\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\4\13\1\u0214\21\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\3\13\1\u0215\1\13\13\0\26\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13" + "\1\u0161\6\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\11\13\1\u0112\14\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\1\u0216\4\13\13\0\26\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\17\13\1\u012c\6\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\3\13\1\223\1\13\13\0" + "\3\13\1\310\22\13\1\0\3\13\10\u01d3\1\u0217\21\u01d3" + + "\1\0\53\u01d3\6\u016d\1\u01d3\1\u016d\1\u01d4\2\u01d3\4\u016d" + + "\4\u01d3\1\u016d\2\u01d3\1\u016d\3\u01d3\1\0\1\u01d3\1\u01d4" + + "\1\u016d\3\u01d4\13\u01d3\2\u01d4\2\u016d\1\u01d4\4\u016d\1\u01d4" + + "\1\u016d\1\u01d4\5\u016d\1\u01d4\4\u016d\1\u01d3\3\u016d\34\0" + "\1\u01d5\1\0\3\u01d5\13\0\2\u01d5\2\0\1\u01d5\4\0" + + "\1\u01d5\1\0\1\u01d5\5\0\1\u01d5\10\0\32\u016f\1\0" + "\1\u016f\1\u01d6\1\u016f\3\u01d6\5\u016f\1\u01d6\5\u016f\2\u01d6" + + "\2\u016f\1\u01d6\4\u016f\1\u01d6\1\u016f\1\u01d6\5\u016f\1\u01d6" + + "\10\u016f\32\u0170\1\0\1\u0170\1\u01d7\1\u0170\3\u01d7\11\u0170" + + "\1\u01d7\1\u0170\2\u01d7\2\u0170\1\u01d7\4\u0170\1\u01d7\1\u0170" + "\1\u01d7\5\u0170\1\u01d7\10\u0170\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\3\13\1\u0218\22\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\3\13\1\223\22\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\1\u020d\25\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\4\13\1\u0219" + "\21\13\1\0\3\13\10\u01dc\1\u01de\75\u01dc\6\12\1\0" + + "\2\12\2\0\4\12\4\0\1\12\2\0\1\12\5\0" + "\2\u01dd\2\12\1\u01dd\13\0\10\12\1\u01dd\15\12\1\0" + + "\3\12\34\0\2\u01de\2\0\1\u01de\23\0\1\u01de\61\0" + "\1\u021a\122\0\1\u021b\117\0\1\u01e0\103\0\1\u021c\111\0" + + "\1\u01e0\14\0\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13" + + "\1\256\13\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\12\13\1\u021d\13\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\4\13\1\u0119\21\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\1\13\1\u021e\24\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\1\13\1\u021f\3\13" + "\13\0\26\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\10\13\1\u0220\15\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\1\13\1\u0221\7\13\1\u0222\14\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\10\13" + + "\1\307\15\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\3\13\1\u0223\22\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\1\u01f0\4\13\13\0\26\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\12\13\1\u01ee\13\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u012c" + "\22\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\17\13\1\u0224\6\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\1\246\4\13\13\0\26\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\3\13\1\u0119\22\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\1\13\1\u0205\24\13" + "\1\0\3\13\104\0\1\u0225\1\u0226\104\0\1\u0227\1\u0228" + + "\104\0\1\u0229\1\u022a\61\0\2\u01ad\63\0\1\u022b\140\0" + "\1\u01ad\12\0\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\16\13" + "\1\225\7\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\12\13\1\u022c\13\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\1\13\1\u0221\24\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\11\13\1\u022d\14\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\11\13" + "\1\244\14\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\1\225" + "\4\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\10\13\1\225\15\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\4\13\1\274\13\0\26\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\4\13\1\u0175\21\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\4\13\1\225\13\0" + "\26\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\1\13\1\u022e" + "\3\13\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\10\13\1\u022f\15\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\16\13\1\344\7\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\11\13\1\u0119" + "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\3\13\1\u0230\22\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\1\13\1\u0231\7\13\1\u0222\14\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223" + + "\13\13\1\u0232\1\13\1\u020d\4\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\1\u0213\4\13\13\0\26\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223\12\13" + "\1\u020d\1\u0232\6\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\12\13\1\u0233\13\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\1\13\1\u0234\3\13\13\0\26\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\11\13\1\u0235" + + "\14\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\1\223\4\13" + + "\13\0\26\13\1\0\3\13\10\u01d3\1\u0217\21\u01d3\1\0" + "\1\u01d3\1\u0217\1\u01d3\3\u0217\13\u01d3\2\u0217\2\u01d3\1\u0217" + + "\4\u01d3\1\u0217\1\u01d3\1\u0217\5\u01d3\1\u0217\10\u01d3\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\13\13\1\u0236\12\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\10\13\1\u0237" + "\15\13\1\0\3\13\61\0\2\u01e0\63\0\1\u0238\140\0" + + "\1\u01e0\12\0\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\1\u0239" + + "\25\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\23\13\1\201\2\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\15\13\1\u023a\10\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\7\13\1\u01ee\16\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\5\13\13\0\12\13\1\u023b" + "\13\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + "\1\13\1\u023c\24\13\1\0\3\13\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\17\13\1\246\6\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\21\13\1\u01d9\4\13\1\0" + "\3\13\31\0\1\u01f7\105\0\1\u01f8\127\0\1\u023d\105\0" + + "\1\u023e\134\0\1\u01f7\105\0\1\u01f8\70\0\1\u023f\20\0" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\24\13\1\244\1\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\17\13" + "\1\u0240\6\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\15\13\1\u0241\10\13\1\0\3\13\1\12\5\13" + + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + "\5\0\5\13\13\0\7\13\1\u0242\16\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\10\13\1\u0243\15\13" + + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13" + + "\1\u0244\13\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\4\13\1\u01ba\21\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\3\13\1\u0223\10\13\1\u0245\11\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\2\13" + "\1\223\23\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\17\13\1\225\6\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\3\13\1\u0246\22\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\10\13\1\u0247\15\13" + "\1\0\3\13\65\0\1\u0248\20\0\1\12\5\13\1\0" + + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + "\5\13\13\0\4\13\1\u0120\21\13\1\0\3\13\1\12" + + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + "\1\12\5\0\5\13\13\0\1\13\1\u0125\24\13\1\0" + + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\1\13\1\u01ee" + + "\24\13\1\0\3\13\1\12\5\13\1\0\2\12\2\0" + "\4\13\4\0\1\12\2\0\1\12\5\0\5\13\13\0" + + "\10\13\1\u0249\15\13\1\0\3\13\73\0\1\u024a\12\0" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\3\13\1\310\11\13" + "\1\310\10\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\1\13\1\u0125\15\13\1\u0151\6\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223\10\13" + + "\1\u024b\11\13\1\0\3\13\1\12\5\13\1\0\2\12" + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + + "\13\0\17\13\1\u0151\6\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\1\13\1\u024c\24\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\24\13\1\u024d\1\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\12\13" + "\1\u024e\13\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\4\13\1\u0198\21\13\1\0\3\13\73\0\1\u024f" + + "\12\0\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + "\1\12\2\0\1\12\5\0\5\13\13\0\11\13\1\u0250" + + "\14\13\1\0\3\13\72\0\1\u01ad\13\0\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\24\13\1\u0251\1\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\3\13\1\u0223\10\13" + "\1\u0252\11\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\5\13" + "\13\0\4\13\1\u0253\12\13\1\u0151\6\13\1\0\3\13" + + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + "\2\0\1\12\5\0\5\13\13\0\4\13\1\310\21\13" + + "\1\0\3\13\72\0\1\u01e0\13\0\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\12\13\1\u0198\13\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\1\u0254\16\13\1\u0151\6\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\24\13" + "\1\u0255\1\13\1\0\3\13\1\12\5\13\1\0\2\12" + + "\2\0\4\13\4\0\1\12\2\0\1\12\5\0\4\13" + "\1\u0256\13\0\26\13\1\0\3\13\1\12\5\13\1\0" + "\2\12\2\0\4\13\4\0\1\12\2\0\1\12\5\0" + + "\5\13\13\0\1\13\1\204\24\13\1\0\3\13\1\12" + "\5\13\1\0\2\12\2\0\4\13\4\0\1\12\2\0" + + "\1\12\5\0\5\13\13\0\17\13\1\u0257\6\13\1\0" + "\3\13\1\12\5\13\1\0\2\12\2\0\4\13\4\0" + + "\1\12\2\0\1\12\5\0\4\13\1\251\13\0\26\13" + "\1\0\3\13\1\12\5\13\1\0\2\12\2\0\4\13" + "\4\0\1\12\2\0\1\12\5\0\5\13\13\0\4\13" + + "\1\u0166\14\13\1\u0258\4\13\1\0\3\13\1\12\5\13" + "\1\0\2\12\2\0\4\13\4\0\1\12\2\0\1\12" + + "\5\0\5\13\13\0\13\13\1\u0259\12\13\1\0\3\13" + "\1\12\5\13\1\0\2\12\2\0\4\13\4\0\1\12" + + "\2\0\1\12\5\0\5\13\13\0\14\13\1\u01a2\11\13" + "\1\0\3\13"; + + private static int[] zzUnpackTrans() { + int[] result = new int[38500]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\11\0\4\1\1\11\1\1\1\11\3\1\2\11\4\1" + "\1\11\15\1\1\11\1\1\1\11\24\1\1\11\2\1" + + "\1\11\3\1\1\11\2\1\2\11\1\1\1\11\3\1" + "\1\11\1\1\1\11\5\1\1\11\1\1\1\11\1\1" + "\1\11\2\1\1\11\15\1\1\0\1\1\1\0\1\1" + + "\1\11\1\1\3\0\1\1\1\0\2\1\2\0\34\1" + "\10\0\43\1\1\0\1\1\2\0\32\1\3\0\1\1" + "\1\11\2\1\1\0\1\11\1\1\1\0\1\11\2\1" + + "\1\0\1\11\1\1\1\0\3\1\1\0\1\11\1\1" + "\1\0\3\1\10\0\1\1\1\0\2\1\1\0\1\1" + "\1\0\1\1\2\0\41\1\15\0\35\1\1\0\23\1" + + "\3\0\5\1\1\0\1\1\5\0\1\1\1\0\1\1" + "\11\0\40\1\4\0\1\11\5\0\40\1\1\0\10\1" + "\1\0\2\1\2\11\5\0\21\1\2\11\6\0\33\1" + + "\3\0\10\1\7\0\14\1\1\0\4\1\2\11\1\0" + "\10\1\1\0\1\1\1\0\4\1\1\0\12\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[601]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specific to PerlTokenMaker; this signals that we are inside * an unquoted/double quoted/backtick EOF heredoc. */ - public static final int INTERNAL_HEREDOC_EOF_UNQUOTED = -1; - + public static final int INTERNAL_HEREDOC_EOF_UNQUOTED = -1; /** * Token type specific to PerlTokenMaker; this signals that we are inside * an single quoted EOF heredoc. */ - public static final int INTERNAL_HEREDOC_EOF_SINGLE_QUOTED = -2; - + public static final int INTERNAL_HEREDOC_EOF_SINGLE_QUOTED = -2; /** * Token type specific to PerlTokenMaker; this signals that we are inside * an unquoted/double quoted/backtick EOT heredoc. */ - public static final int INTERNAL_HEREDOC_EOT_UNQUOTED = -3; - + public static final int INTERNAL_HEREDOC_EOT_UNQUOTED = -3; /** * Token type specific to PerlTokenMaker; this signals that we are inside * an single quoted EOT heredoc. */ - public static final int INTERNAL_HEREDOC_EOT_SINGLE_QUOTED = -4; - + public static final int INTERNAL_HEREDOC_EOT_SINGLE_QUOTED = -4; /** * Token type specific to PerlTokenMaker; this signals we are in a POD * block. */ - public static final int INTERNAL_POD = -5; - + public static final int INTERNAL_POD = -5; + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public PerlTokenMaker() { - } - - + public PerlTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1479,35 +899,34 @@ public class PerlTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * {@inheritDoc} */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return super.getMarkOccurrencesOfTokenType(type) || type==Token.VARIABLE; + return super.getMarkOccurrencesOfTokenType(type) || type == Token.VARIABLE; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -1546,7 +965,6 @@ public class PerlTokenMaker extends AbstractJFlexCTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1556,49 +974,38 @@ public class PerlTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Returns whether a regular expression token can follow the specified * token. * - * @param t The token to check, which may be null. + * @param t + * The token to check, which may be null. * @return Whether a regular expression token may follow this one. */ private static final boolean regexCanFollow(Token t) { char ch; // We basically try to mimic Eclipse's JS editor's behavior here. - return t==null || - //t.isOperator() || - (t.length()==1 && ( - (ch=t.charAt(0))=='=' || - ch=='(' || - ch==',' || - ch=='?' || - ch==':' || - ch=='[' || - ch=='!' || - ch=='&' - )) || + return t == null || + // t.isOperator() || + (t.length() == 1 && ((ch = t.charAt(0)) == '=' || ch == '(' || ch == ',' || ch == '?' || ch == ':' || ch == '[' || ch == '!' + || ch == '&')) + || /* Operators "==", "===", "!=", "!==", etc. */ - (t.getType()==Token.OPERATOR && - ((ch=t.charAt(t.length()-1))=='=' || ch=='~')); + (t.getType() == Token.OPERATOR && ((ch = t.charAt(t.length() - 1)) == '=' || ch == '~')); } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1607,7 +1014,8 @@ public class PerlTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -1616,277 +1024,276 @@ public class PerlTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 PerlTokenMaker(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 PerlTokenMaker(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 < 174) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 2: - { addToken(Token.IDENTIFIER); - } - case 46: break; - case 34: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 47: break; - case 40: - { if (start==zzStartRead) { addToken(Token.COMMENT_DOCUMENTATION); yybegin(YYINITIAL); } - } - case 48: break; - case 26: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 49: break; - case 11: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 50: break; - case 38: - { if (start==zzStartRead) { addToken(Token.PREPROCESSOR); addNullToken(); return firstToken; } - } - case 51: break; - case 31: - { addToken(Token.FUNCTION); - } - case 52: break; - case 36: - { boolean highlightedAsRegex = false; - if (firstToken==null) { + + /** + * 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 PerlTokenMaker(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 PerlTokenMaker(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 < 174) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 2: { + addToken(Token.IDENTIFIER); + } + case 46: + break; + case 34: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 47: + break; + case 40: { + if (start == zzStartRead) { + addToken(Token.COMMENT_DOCUMENTATION); + yybegin(YYINITIAL); + } + } + case 48: + break; + case 26: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 49: + break; + case 11: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 50: + break; + case 38: { + if (start == zzStartRead) { + addToken(Token.PREPROCESSOR); + addNullToken(); + return firstToken; + } + } + case 51: + break; + case 31: { + addToken(Token.FUNCTION); + } + case 52: + break; + case 36: { + boolean highlightedAsRegex = false; + if (firstToken == null) { addToken(Token.REGEX); highlightedAsRegex = true; - } - else { + } else { // If this is *likely* to be a regex, based on // the previous token, highlight it as such. Token t = firstToken.getLastNonCommentNonWhitespaceToken(); @@ -1902,206 +1309,303 @@ public final void yybegin(int newState) { addToken(zzStartRead, zzStartRead, Token.OPERATOR); zzStartRead = zzCurrentPos = zzMarkedPos = temp; } - } - case 53: break; - case 30: - { addToken(Token.VARIABLE); - } - case 54: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 55: break; - case 24: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); return firstToken; - } - case 56: break; - case 4: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 57: break; - case 29: - { addToken(Token.PREPROCESSOR); addNullToken(); return firstToken; - } - case 58: break; - case 41: - { if (start==zzStartRead) { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; } - } - case 59: break; - case 44: - { start = zzStartRead; yybegin(HEREDOC_EOF_SINGLE_QUOTED); - } - case 60: break; - case 45: - { start = zzStartRead; yybegin(HEREDOC_EOT_SINGLE_QUOTED); - } - case 61: break; - case 42: - { start = zzStartRead; yybegin(HEREDOC_EOF_UNQUOTED); - } - case 62: break; - case 13: - { /* Skip escaped chars. */ - } - case 63: break; - case 37: - { addToken(Token.REGEX); - } - case 64: break; - case 18: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 65: break; - case 28: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 66: break; - case 21: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); return firstToken; - } - case 67: break; - case 6: - { addToken(Token.WHITESPACE); - } - case 68: break; - case 10: - { start = zzMarkedPos-1; yybegin(CHAR_LITERAL); - } - case 69: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 70: break; - case 33: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 71: break; - case 20: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - } - case 72: break; - case 15: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 73: break; - case 16: - { /* Skip escaped single quotes only, but this should still work. */ - } - case 74: break; - case 23: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); return firstToken; - } - case 75: break; - case 35: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.PREPROCESSOR); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 76: break; - case 39: - { addToken(Token.COMMENT_EOL); start = zzMarkedPos; yybegin(POD); - } - case 77: break; - case 32: - { addToken(Token.RESERVED_WORD); - } - case 78: break; - case 19: - { addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); return firstToken; - } - case 79: break; - case 8: - { addToken(Token.SEPARATOR); - } - case 80: break; - case 5: - { addNullToken(); return firstToken; - } - case 81: break; - case 7: - { addToken(Token.OPERATOR); - } - case 82: break; - case 17: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 83: break; - case 25: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_POD); return firstToken; - } - case 84: break; - case 27: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 85: break; - case 43: - { start = zzStartRead; yybegin(HEREDOC_EOT_UNQUOTED); - } - case 86: break; - case 9: - { start = zzMarkedPos-1; yybegin(BACKTICKS); - } - case 87: break; - case 12: - { - } - case 88: break; - case 14: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 89: break; - case 22: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); return firstToken; - } - case 90: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case HEREDOC_EOF_SINGLE_QUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); return firstToken; - } - case 602: break; - case HEREDOC_EOT_SINGLE_QUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); return firstToken; - } - case 603: break; - case HEREDOC_EOT_UNQUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); return firstToken; - } - case 604: break; - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 605: break; - case BACKTICKS: { - addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); return firstToken; - } - case 606: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 607: break; - case HEREDOC_EOF_UNQUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); return firstToken; - } - case 608: break; - case CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 609: break; - case POD: { - addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_POD); return firstToken; - } - case 610: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 53: + break; + case 30: { + addToken(Token.VARIABLE); + } + case 54: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 55: + break; + case 24: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); + return firstToken; + } + case 56: + break; + case 4: { + addToken(Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 57: + break; + case 29: { + addToken(Token.PREPROCESSOR); + addNullToken(); + return firstToken; + } + case 58: + break; + case 41: { + if (start == zzStartRead) { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + } + case 59: + break; + case 44: { + start = zzStartRead; + yybegin(HEREDOC_EOF_SINGLE_QUOTED); + } + case 60: + break; + case 45: { + start = zzStartRead; + yybegin(HEREDOC_EOT_SINGLE_QUOTED); + } + case 61: + break; + case 42: { + start = zzStartRead; + yybegin(HEREDOC_EOF_UNQUOTED); + } + case 62: + break; + case 13: { /* Skip escaped chars. */ + } + case 63: + break; + case 37: { + addToken(Token.REGEX); + } + case 64: + break; + case 18: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 65: + break; + case 28: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 66: + break; + case 21: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); + return firstToken; + } + case 67: + break; + case 6: { + addToken(Token.WHITESPACE); + } + case 68: + break; + case 10: { + start = zzMarkedPos - 1; + yybegin(CHAR_LITERAL); + } + case 69: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 70: + break; + case 33: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 71: + break; + case 20: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + } + case 72: + break; + case 15: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 73: + break; + case 16: { /* + * Skip escaped single quotes only, but this should + * still work. + */ + } + case 74: + break; + case 23: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); + return firstToken; + } + case 75: + break; + case 35: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 76: + break; + case 39: { + addToken(Token.COMMENT_EOL); + start = zzMarkedPos; + yybegin(POD); + } + case 77: + break; + case 32: { + addToken(Token.RESERVED_WORD); + } + case 78: + break; + case 19: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + return firstToken; + } + case 79: + break; + case 8: { + addToken(Token.SEPARATOR); + } + case 80: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 81: + break; + case 7: { + addToken(Token.OPERATOR); + } + case 82: + break; + case 17: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 83: + break; + case 25: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_POD); + return firstToken; + } + case 84: + break; + case 27: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 85: + break; + case 43: { + start = zzStartRead; + yybegin(HEREDOC_EOT_UNQUOTED); + } + case 86: + break; + case 9: { + start = zzMarkedPos - 1; + yybegin(BACKTICKS); + } + case 87: + break; + case 12: {} + case 88: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 89: + break; + case 22: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); + return firstToken; + } + case 90: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case HEREDOC_EOF_SINGLE_QUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); + return firstToken; + } + case 602: + break; + case HEREDOC_EOT_SINGLE_QUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); + return firstToken; + } + case 603: + break; + case HEREDOC_EOT_UNQUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); + return firstToken; + } + case 604: + break; + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 605: + break; + case BACKTICKS: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + return firstToken; + } + case 606: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 607: + break; + case HEREDOC_EOF_UNQUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); + return firstToken; + } + case 608: + break; + case CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 609: + break; + case POD: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_POD); + return firstToken; + } + case 610: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/PlainTextTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/PlainTextTokenMaker.java index 710aa06..5471727 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/PlainTextTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/PlainTextTokenMaker.java @@ -1,291 +1,258 @@ /* The following code was generated by JFlex 1.4.1 on 12/9/11 6:40 PM */ - /* * 11/07/2008 - * * PlainTextTokenMaker.flex - Scanner for plain text files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** * Scanner for plain text files. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker), so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated PlainTextTokenMaker.java file will contain - * two definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated PlainTextTokenMaker.java file will contain + * two definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class PlainTextTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\2\25\0\1\3\1\4\1\0\1\4\1\6\1\4"+ - "\7\4\1\4\1\21\1\5\12\1\1\17\1\4\1\0\1\4\1\0"+ - "\2\4\32\1\1\4\1\0\1\4\1\0\1\4\1\0\4\1\1\16"+ - "\1\13\1\1\1\7\1\14\2\1\1\15\3\1\1\11\2\1\1\12"+ - "\1\10\2\1\1\20\3\1\3\0\1\4\uff81\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 = - "\1\0\2\1\1\2\1\3\14\1\1\0\1\4\2\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[21]; - 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\22\0\44\0\22\0\66\0\110\0\132\0\154"+ - "\0\176\0\220\0\242\0\264\0\306\0\330\0\352\0\374"+ - "\0\u010e\0\u0120\0\u0132\0\u0144\0\u0132"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[21]; - 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 = - "\1\2\1\3\1\4\1\5\3\2\1\6\3\3\1\7"+ - "\3\3\1\2\1\10\1\2\23\0\1\3\5\0\10\3"+ - "\1\0\1\3\4\0\1\5\17\0\1\3\5\0\1\3"+ - "\1\11\6\3\1\0\1\3\2\0\1\3\5\0\1\3"+ - "\1\12\3\3\1\13\2\3\1\0\1\3\2\0\1\3"+ - "\5\0\10\3\1\0\1\14\2\0\1\3\5\0\1\3"+ - "\1\15\6\3\1\0\1\3\2\0\1\3\5\0\2\3"+ - "\1\16\5\3\1\0\1\3\2\0\1\3\5\0\6\3"+ - "\1\17\1\3\1\0\1\3\2\0\1\3\5\0\10\3"+ - "\1\0\1\20\2\0\1\3\5\0\2\3\1\21\5\3"+ - "\1\0\1\3\2\0\1\3\5\0\10\3\1\22\1\3"+ - "\2\0\1\3\5\0\7\3\1\16\1\0\1\3\2\0"+ - "\1\3\5\0\10\3\1\0\1\3\1\23\1\0\1\3"+ - "\5\0\3\3\1\16\4\3\1\22\1\3\6\0\1\24"+ - "\15\0\1\23\2\0\1\25\12\23\1\25\1\23\1\25"+ - "\5\0\1\23\14\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[342]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\1\1\1\11\15\1\1\0\1\1\2\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[21]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\3\1\2\25\0\1\3\1\4\1\0\1\4\1\6\1\4" + + "\7\4\1\4\1\21\1\5\12\1\1\17\1\4\1\0\1\4\1\0" + "\2\4\32\1\1\4\1\0\1\4\1\0\1\4\1\0\4\1\1\16" + + "\1\13\1\1\1\7\1\14\2\1\1\15\3\1\1\11\2\1\1\12" + "\1\10\2\1\1\20\3\1\3\0\1\4\uff81\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 = "\1\0\2\1\1\2\1\3\14\1\1\0\1\4\2\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[21]; + 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\22\0\44\0\22\0\66\0\110\0\132\0\154" + + "\0\176\0\220\0\242\0\264\0\306\0\330\0\352\0\374" + "\0\u010e\0\u0120\0\u0132\0\u0144\0\u0132"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[21]; + 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 = "\1\2\1\3\1\4\1\5\3\2\1\6\3\3\1\7" + "\3\3\1\2\1\10\1\2\23\0\1\3\5\0\10\3" + + "\1\0\1\3\4\0\1\5\17\0\1\3\5\0\1\3" + "\1\11\6\3\1\0\1\3\2\0\1\3\5\0\1\3" + "\1\12\3\3\1\13\2\3\1\0\1\3\2\0\1\3" + + "\5\0\10\3\1\0\1\14\2\0\1\3\5\0\1\3" + "\1\15\6\3\1\0\1\3\2\0\1\3\5\0\2\3" + "\1\16\5\3\1\0\1\3\2\0\1\3\5\0\6\3" + + "\1\17\1\3\1\0\1\3\2\0\1\3\5\0\10\3" + "\1\0\1\20\2\0\1\3\5\0\2\3\1\21\5\3" + "\1\0\1\3\2\0\1\3\5\0\10\3\1\22\1\3" + + "\2\0\1\3\5\0\7\3\1\16\1\0\1\3\2\0" + "\1\3\5\0\10\3\1\0\1\3\1\23\1\0\1\3" + "\5\0\3\3\1\16\4\3\1\22\1\3\6\0\1\24" + + "\15\0\1\23\2\0\1\25\12\23\1\25\1\23\1\25" + "\5\0\1\23\14\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[342]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\1\11\1\1\1\11\15\1\1\0\1\1\2\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[21]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public PlainTextTokenMaker() { - } - - + public PlainTextTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. - * @param link Whether this token is a hyperlink. + * @param tokenType + * The token's type. + * @param link + * Whether this token is a hyperlink. */ private void addToken(int tokenType, boolean link) { int so = zzStartRead + offsetShift; - super.addToken(zzBuffer, zzStartRead,zzMarkedPos-1, tokenType, so, link); + super.addToken(zzBuffer, zzStartRead, zzMarkedPos - 1, tokenType, so, link); zzStartRead = zzMarkedPos; } - - + /** * Always returns Token.NULL, as there are no multiline * tokens in properties files. * - * @param text The line of tokens to examine. - * @param initialTokenType The token type to start with (i.e., the value - * of getLastTokenTypeOnLine for the line before - * text). + * @param text + * The line of tokens to examine. + * @param initialTokenType + * The token type to start with (i.e., the value + * of getLastTokenTypeOnLine for the line before + * text). * @return Token.NULL. */ @Override public int getLastTokenTypeOnLine(Segment text, int initialTokenType) { return Token.NULL; } - - + /** * Returns the text to place at the beginning and end of a * line to "comment" it in a this programming language. @@ -296,13 +263,13 @@ public class PlainTextTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return null; } - - + /** * Always returns false, as you never want "mark occurrences" * working in plain text files. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @@ -310,26 +277,26 @@ public class PlainTextTokenMaker extends AbstractJFlexTokenMaker { public boolean getMarkOccurrencesOfTokenType(int type) { return false; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. s = text; try { @@ -340,22 +307,20 @@ public class PlainTextTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. - * @exception IOException if any I/O-Error occurs. + * @return true if EOF was reached, otherwise + * false. + * @exception IOException + * if any I/O-Error occurs. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -364,7 +329,8 @@ public class PlainTextTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -373,276 +339,262 @@ public class PlainTextTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 PlainTextTokenMaker(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 PlainTextTokenMaker(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 < 94) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 3: { + addToken(Token.WHITESPACE, false); + } + case 5: + break; + case 2: { + addNullToken(); + return firstToken; + } + case 6: + break; + case 4: { + addToken(Token.IDENTIFIER, true); + } + case 7: + break; + case 1: { + addToken(Token.IDENTIFIER, false); + } + case 8: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 22: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 PlainTextTokenMaker(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 PlainTextTokenMaker(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 < 94) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 3: - { addToken(Token.WHITESPACE, false); - } - case 5: break; - case 2: - { addNullToken(); return firstToken; - } - case 6: break; - case 4: - { addToken(Token.IDENTIFIER, true); - } - case 7: break; - case 1: - { addToken(Token.IDENTIFIER, false); - } - case 8: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 22: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/PropertiesFileTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/PropertiesFileTokenMaker.java index be1d931..4af726e 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/PropertiesFileTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/PropertiesFileTokenMaker.java @@ -1,291 +1,269 @@ /* The following code was generated by JFlex 1.4.1 on 1/28/11 4:16 PM */ - /* * 03/21/2005 - * * PropertiesFileTokenMaker.java - Scanner for properties files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * This class splits up text into tokens representing a Java properties file.

+ * This class splits up text into tokens representing a Java properties file. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated PropertiesFileTokenMaker.java file will - * contain two definitions of both zzRefill and - * yyreset. You should hand-delete the second of each - * definition (the ones generated by the lexer), as these generated - * methods modify the input buffer, which we'll never have to do. - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway. - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance. + *
  • The generated PropertiesFileTokenMaker.java file will + * contain two definitions of both zzRefill and + * yyreset. You should hand-delete the second of each + * definition (the ones generated by the lexer), as these generated + * methods modify the input buffer, which we'll never have to do. + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway. + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance. *
* * @author Robert Futrell * @version 0.4 * */ - public class PropertiesFileTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** initial size of the lookahead buffer */ - private static final int ZZ_BUFFERSIZE = 16384; - - /** lexical states */ - public static final int YYINITIAL = 0; - public static final int VALUE = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\2\25\0\1\3\1\4\1\0\1\4\3\0\1\5"+ - "\22\0\1\1\2\0\1\1\36\0\1\6\36\0\1\7\1\0\1\10"+ - "\uff82\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 = - "\1\1\1\0\1\1\1\2\1\3\1\4\1\5\1\6"+ - "\1\7\1\10\1\6\1\5\1\10"; - - private static int [] zzUnpackAction() { - int [] result = new int[13]; - 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\11\0\22\0\33\0\44\0\55\0\66\0\77"+ - "\0\110\0\121\0\33\0\33\0\33"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[13]; - 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 = - "\1\3\1\4\1\0\1\5\1\6\4\3\5\7\1\10"+ - "\1\11\1\12\1\7\1\3\4\0\4\3\14\0\1\5"+ - "\5\0\2\6\1\0\6\6\5\7\3\0\1\7\5\10"+ - "\1\13\3\10\2\14\1\0\6\14\10\12\1\15"; - - private static int [] zzUnpackTrans() { - int [] result = new int[90]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\1\0\1\1\1\11\6\1\3\11"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[13]; - 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 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; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int VALUE = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\3\1\2\25\0\1\3\1\4\1\0\1\4\3\0\1\5" + + "\22\0\1\1\2\0\1\1\36\0\1\6\36\0\1\7\1\0\1\10" + "\uff82\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 = "\1\1\1\0\1\1\1\2\1\3\1\4\1\5\1\6" + "\1\7\1\10\1\6\1\5\1\10"; + + private static int[] zzUnpackAction() { + int[] result = new int[13]; + 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\11\0\22\0\33\0\44\0\55\0\66\0\77" + "\0\110\0\121\0\33\0\33\0\33"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[13]; + 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 = "\1\3\1\4\1\0\1\5\1\6\4\3\5\7\1\10" + "\1\11\1\12\1\7\1\3\4\0\4\3\14\0\1\5" + + "\5\0\2\6\1\0\6\6\5\7\3\0\1\7\5\10" + "\1\13\3\10\2\14\1\0\6\14\10\12\1\15"; + + private static int[] zzUnpackTrans() { + int[] result = new int[90]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\1\1\0\1\1\1\11\6\1\3\11"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[13]; + 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 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; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public PropertiesFileTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -293,26 +271,26 @@ public class PropertiesFileTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -323,7 +301,6 @@ public class PropertiesFileTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -333,22 +310,20 @@ public class PropertiesFileTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. - * @exception IOException if any I/O-Error occurs. + * @return true if EOF was reached, otherwise + * false. + * @exception IOException + * if any I/O-Error occurs. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -357,7 +332,8 @@ public class PropertiesFileTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -366,296 +342,293 @@ public class PropertiesFileTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 PropertiesFileTokenMaker(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 PropertiesFileTokenMaker(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 < 42) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 7: { + addToken(start, zzEndRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 9: + break; + case 2: { + start = zzMarkedPos; + addToken(Token.OPERATOR); + yybegin(VALUE); + } + case 10: + break; + case 8: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addToken(temp, zzMarkedPos - 1, Token.VARIABLE); + start = zzMarkedPos; + } + case 11: + break; + case 3: { + addToken(Token.WHITESPACE); + } + case 12: + break; + case 6: { + addToken(start, zzMarkedPos - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + start = zzMarkedPos; + } + case 13: + break; + case 1: { + addToken(Token.RESERVED_WORD); + } + case 14: + break; + case 5: {} + case 15: + break; + case 4: { + addToken(Token.COMMENT_EOL); + } + case 16: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 14: + break; + case VALUE: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addNullToken(); + return firstToken; + } + case 15: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 PropertiesFileTokenMaker(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 PropertiesFileTokenMaker(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 < 42) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 7: - { addToken(start, zzEndRead, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 9: break; - case 2: - { start = zzMarkedPos; addToken(Token.OPERATOR); yybegin(VALUE); - } - case 10: break; - case 8: - { int temp=zzStartRead; addToken(start, zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addToken(temp, zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 11: break; - case 3: - { addToken(Token.WHITESPACE); - } - case 12: break; - case 6: - { addToken(start, zzMarkedPos-1, Token.LITERAL_STRING_DOUBLE_QUOTE); start = zzMarkedPos; - } - case 13: break; - case 1: - { addToken(Token.RESERVED_WORD); - } - case 14: break; - case 5: - { - } - case 15: break; - case 4: - { addToken(Token.COMMENT_EOL); - } - case 16: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 14: break; - case VALUE: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addNullToken(); return firstToken; - } - case 15: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/PythonTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/PythonTokenMaker.java index aed17b2..4000068 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/PythonTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/PythonTokenMaker.java @@ -1,663 +1,398 @@ /* The following code was generated by JFlex 1.4.1 on 10/16/06 10:31 AM */ - /* * 12/06/2005 - * * PythonTokenMaker.java - Token maker for the Python programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** * Scanner for the Python programming language. * * @author Robert Futrell * @version 0.3 */ - public class PythonTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int YYINITIAL = 0; - public static final int LONG_STRING_2 = 2; - public static final int LONG_STRING_1 = 1; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\34\1\12\1\0\1\34\1\32\22\0\1\34\1\64\1\11"+ - "\1\33\1\0\1\63\1\67\1\10\1\57\1\57\1\62\1\61\1\64"+ - "\1\27\1\24\1\63\1\16\7\21\2\3\1\64\1\72\1\65\1\60"+ - "\1\66\1\64\1\71\4\23\1\26\1\23\3\2\1\31\1\2\1\15"+ - "\5\2\1\6\2\2\1\7\2\2\1\20\2\2\1\57\1\13\1\57"+ - "\1\64\1\1\1\0\1\35\1\42\1\44\1\37\1\25\1\22\1\52"+ - "\1\54\1\46\1\30\1\43\1\14\1\51\1\36\1\45\1\47\1\2"+ - "\1\4\1\40\1\41\1\5\1\55\1\53\1\17\1\50\1\56\1\57"+ - "\1\70\1\57\1\64\uff81\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 = - "\3\0\1\1\1\2\1\3\4\2\2\4\1\5\1\2"+ - "\1\3\2\2\1\6\1\2\1\6\1\7\1\10\21\2"+ - "\1\11\10\6\1\2\2\12\2\4\1\13\1\3\1\14"+ - "\1\13\1\14\4\2\2\4\1\0\2\4\1\0\4\2"+ - "\1\13\1\3\1\13\12\2\1\15\27\2\1\15\3\2"+ - "\2\15\1\16\1\15\15\2\3\0\2\14\1\0\12\2"+ - "\1\4\1\17\1\20\3\2\1\3\15\2\1\15\22\2"+ - "\1\21\14\2\1\22\1\23\1\14\6\2\1\21\3\2"+ - "\1\15\36\2\1\15\17\2\1\15\6\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[265]; - 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\73\0\166\0\261\0\354\0\u0127\0\u0162\0\u019d"+ - "\0\u01d8\0\u0213\0\u024e\0\u0289\0\261\0\u02c4\0\u02ff\0\u033a"+ - "\0\u0375\0\u03b0\0\u03eb\0\u0426\0\u0461\0\u049c\0\u04d7\0\u0512"+ - "\0\u054d\0\u0588\0\u05c3\0\u05fe\0\u0639\0\u0674\0\u06af\0\u06ea"+ - "\0\u0725\0\u0760\0\u079b\0\u07d6\0\u0811\0\u084c\0\u0887\0\261"+ - "\0\u08c2\0\u08fd\0\u0938\0\261\0\u0973\0\u09ae\0\u09e9\0\u0a24"+ - "\0\261\0\u0a5f\0\u0a9a\0\u0ad5\0\u0b10\0\u0b4b\0\u0b4b\0\u0b86"+ - "\0\u0bc1\0\u0b4b\0\u0bfc\0\u0c37\0\u0c72\0\u0cad\0\u0ce8\0\u0d23"+ - "\0\u0d5e\0\u0d99\0\u0dd4\0\u0e0f\0\u0e4a\0\u0e85\0\u0ec0\0\u0efb"+ - "\0\u0f36\0\u0f71\0\u0fac\0\u0fe7\0\u1022\0\u105d\0\u1098\0\u10d3"+ - "\0\u110e\0\u1149\0\u1184\0\u11bf\0\u11fa\0\u1235\0\u1270\0\u12ab"+ - "\0\u12e6\0\u1321\0\u135c\0\u1397\0\u13d2\0\u140d\0\u1448\0\u1483"+ - "\0\u14be\0\u14f9\0\u1534\0\u156f\0\u15aa\0\u15e5\0\u1620\0\u165b"+ - "\0\u1696\0\u16d1\0\u170c\0\u1747\0\u1782\0\u17bd\0\u17f8\0\u1833"+ - "\0\u186e\0\354\0\u18a9\0\354\0\u18e4\0\u191f\0\u195a\0\u1995"+ - "\0\u19d0\0\u1a0b\0\u1a46\0\u1a81\0\u1abc\0\u1af7\0\u1b32\0\u1b6d"+ - "\0\u1ba8\0\u1be3\0\u1c1e\0\u1c59\0\u1c94\0\261\0\u1ccf\0\u1d0a"+ - "\0\u1d45\0\u1d80\0\u1dbb\0\u1df6\0\u1e31\0\u1e6c\0\u1ea7\0\u1ee2"+ - "\0\u1f1d\0\u1f58\0\261\0\261\0\261\0\u1f93\0\u1fce\0\u2009"+ - "\0\u2044\0\u207f\0\u20ba\0\u20f5\0\u2130\0\u216b\0\u21a6\0\u21e1"+ - "\0\u221c\0\u2257\0\u2292\0\u22cd\0\u2308\0\u2343\0\u237e\0\u23b9"+ - "\0\u23f4\0\u242f\0\u237e\0\u246a\0\u24a5\0\u24e0\0\u251b\0\u2556"+ - "\0\u2591\0\u25cc\0\u2607\0\u2642\0\u267d\0\u26b8\0\u26f3\0\u272e"+ - "\0\u2769\0\u27a4\0\u27df\0\u281a\0\u2855\0\u2890\0\u28cb\0\u2906"+ - "\0\u2941\0\u297c\0\u29b7\0\u29f2\0\u2a2d\0\u2a68\0\261\0\261"+ - "\0\u2aa3\0\u2ade\0\u2b19\0\u2b54\0\u17bd\0\u2b8f\0\u2bca\0\354"+ - "\0\u2c05\0\u2c40\0\u2c7b\0\u2cb6\0\u2cf1\0\u2d2c\0\u2d67\0\u2da2"+ - "\0\u2ddd\0\u2e18\0\u2e53\0\u2e8e\0\u2ec9\0\u2f04\0\u2f3f\0\u2f7a"+ - "\0\u2fb5\0\u2ff0\0\u302b\0\u3066\0\u30a1\0\u30dc\0\u3117\0\u3152"+ - "\0\u318d\0\u31c8\0\u3203\0\u323e\0\u3279\0\u32b4\0\u32ef\0\u332a"+ - "\0\u3365\0\u33a0\0\u33db\0\u3416\0\u3451\0\u348c\0\u34c7\0\u3502"+ - "\0\u353d\0\u3578\0\u35b3\0\u35ee\0\u33db\0\u3629\0\u3664\0\u369f"+ - "\0\u36da\0\u3715\0\u1270\0\u3750\0\u378b\0\u37c6\0\u3801\0\u383c"+ - "\0\u3877"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[265]; - 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 = - "\1\4\2\5\1\6\1\7\1\10\1\11\1\12\1\13"+ - "\1\14\1\15\1\4\1\16\1\5\1\17\1\20\1\5"+ - "\1\6\1\21\1\5\1\22\1\23\1\5\1\24\2\5"+ - "\1\4\1\25\1\26\1\27\1\30\1\31\1\32\1\33"+ - "\1\34\1\5\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\51\1\54\1\55\1\56\1\57\1\60\2\61"+ - "\10\62\1\63\62\62\11\64\1\65\61\64\74\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\22\5"+ - "\14\0\3\66\1\6\4\66\3\0\1\66\2\67\1\6"+ - "\2\66\1\6\2\66\1\70\2\71\1\0\2\72\1\0"+ - "\1\66\1\0\22\66\12\0\1\66\2\0\7\5\1\13"+ - "\1\14\2\0\10\5\1\0\1\73\1\5\1\0\2\5"+ - "\3\0\1\74\7\5\1\75\11\5\15\0\3\5\1\11"+ - "\1\5\1\11\1\5\1\13\1\14\2\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\1\5\1\76\20\5\15\0"+ - "\7\5\1\13\1\14\2\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\22\5\15\0\3\5\1\11\1\5\1\11"+ - "\1\5\1\13\1\14\2\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\22\5\14\0\10\77\1\100\1\77\1\0"+ - "\1\101\57\77\11\102\1\103\1\0\1\104\57\102\1\0"+ - "\7\5\4\0\10\5\1\0\1\105\1\5\1\0\2\5"+ - "\3\0\1\106\7\5\1\107\1\110\10\5\14\0\3\66"+ - "\1\111\4\66\3\0\1\66\2\67\1\112\2\113\1\112"+ - "\2\66\1\70\2\71\1\0\2\72\1\0\1\66\1\0"+ - "\22\66\12\0\1\66\2\0\3\5\1\114\3\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0"+ - "\3\5\1\115\3\5\4\0\1\116\7\5\1\0\2\5"+ - "\1\0\2\5\3\0\10\5\1\117\1\120\10\5\17\0"+ - "\1\70\12\0\1\70\2\0\1\70\52\0\7\5\4\0"+ - "\1\121\2\5\1\122\4\5\1\0\2\5\1\0\2\5"+ - "\3\0\1\5\1\123\16\5\1\124\1\5\43\0\1\54"+ - "\30\0\1\54\12\0\12\25\1\0\60\25\34\0\1\26"+ - "\37\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\1\5\1\125\1\5\1\126\1\5\1\127\4\5"+ - "\1\130\7\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\10\5\1\131\11\5\15\0\7\5"+ - "\4\0\10\5\1\0\1\132\1\5\1\0\2\5\3\0"+ - "\10\5\1\133\1\134\10\5\15\0\4\5\1\135\2\5"+ - "\4\0\1\136\7\5\1\0\1\137\1\5\1\0\2\5"+ - "\3\0\4\5\1\140\4\5\1\141\5\5\1\142\2\5"+ - "\15\0\3\5\1\143\1\144\2\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\13\5\1\145\6\5\15\0"+ - "\3\5\1\146\1\147\2\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\10\5\1\150\11\5\15\0\7\5"+ - "\4\0\1\151\7\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\152\7\5\1\153\3\5\1\154\2\5\1\155\2\5"+ - "\15\0\3\5\1\156\3\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\5\5\1\157\1\5\1\160\2\5"+ - "\1\161\7\5\15\0\7\5\4\0\6\5\1\162\1\5"+ - "\1\0\2\5\1\0\2\5\3\0\1\5\1\163\1\164"+ - "\1\165\1\166\7\5\1\167\5\5\15\0\3\5\1\170"+ - "\3\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\171\7\5\1\172\11\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\11\5\1\173\10\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\1\174\10\5\1\105\10\5\15\0\7\5\4\0"+ - "\1\175\7\5\1\0\1\137\1\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\17\5\1\176\2\5\15\0\7\5\4\0"+ - "\10\5\1\0\1\177\1\5\1\0\2\5\3\0\1\200"+ - "\21\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\1\201\7\5\1\202\11\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\11\5"+ - "\1\154\10\5\74\0\1\54\72\0\2\54\71\0\1\54"+ - "\1\0\1\54\75\0\1\51\73\0\1\51\73\0\1\54"+ - "\73\0\1\54\2\0\10\62\1\0\62\62\10\0\1\203"+ - "\62\0\11\64\1\0\61\64\11\0\1\204\61\0\10\66"+ - "\3\0\11\66\1\0\2\66\1\0\2\66\1\0\1\66"+ - "\1\0\22\66\12\0\1\66\4\0\1\70\12\0\1\70"+ - "\2\0\1\70\3\0\2\205\1\0\2\206\41\0\3\66"+ - "\1\207\4\66\3\0\3\66\1\207\2\66\1\207\2\66"+ - "\1\0\2\66\1\210\2\66\1\0\1\66\1\0\22\66"+ - "\2\0\1\210\7\0\1\66\2\0\7\5\4\0\1\211"+ - "\7\5\1\0\2\5\1\0\2\5\3\0\2\5\1\212"+ - "\1\5\1\213\5\5\1\214\7\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\1\5\1\215"+ - "\7\5\1\216\4\5\1\217\3\5\15\0\4\5\1\220"+ - "\2\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\3\5\1\221\5\5\1\222\10\5\14\0"+ - "\10\77\1\223\1\77\1\0\1\101\57\77\10\0\1\224"+ - "\62\0\12\77\1\0\60\77\11\102\1\223\1\0\1\104"+ - "\57\102\11\0\1\225\61\0\12\102\1\0\60\102\1\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\5\1\164\20\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\14\5\1\226\5\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\5\1\227\5\5\1\230\12\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\3\5\1\160"+ - "\16\5\14\0\3\66\1\111\4\66\3\0\3\66\1\111"+ - "\2\66\1\111\2\66\1\70\2\71\1\0\2\72\1\0"+ - "\1\66\1\0\22\66\12\0\1\66\1\0\3\66\1\111"+ - "\4\66\3\0\1\66\2\67\1\112\2\66\1\112\2\66"+ - "\1\70\2\71\1\0\2\72\1\0\1\66\1\0\22\66"+ - "\12\0\1\66\1\0\3\66\1\231\4\66\3\0\3\66"+ - "\1\231\2\66\3\231\1\0\2\231\1\0\2\66\1\0"+ - "\1\66\1\0\1\231\1\66\1\231\2\66\1\231\1\66"+ - "\1\231\12\66\12\0\1\66\2\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\1\232\21\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\10\5\1\233\11\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\10\5\1\234\11\5\15\0"+ - "\3\5\1\162\3\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\22\5\15\0\7\5\4\0\1\235\7\5"+ - "\1\0\2\5\1\0\2\5\3\0\1\5\1\236\20\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\3\5\1\237\5\5\1\240\10\5\15\0\7\5"+ - "\4\0\10\5\1\0\1\241\1\5\1\0\2\5\3\0"+ - "\7\5\1\242\12\5\15\0\4\5\1\243\2\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\244\21\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\2\5\1\162\17\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\3\5"+ - "\1\245\16\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\3\5\1\164\16\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5"+ - "\1\246\7\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\4\5\1\162\15\5\15\0\7\5"+ - "\4\0\1\247\5\5\1\162\1\5\1\0\2\5\1\0"+ - "\2\5\3\0\22\5\15\0\4\5\1\250\2\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0"+ - "\3\5\1\164\3\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\7\5\1\160\10\5\1\251\1\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\12\5\1\166\1\5\1\164\5\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\11\5\1\252"+ - "\10\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\4\5\1\253\15\5\15\0\3\5\1\164"+ - "\3\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\254\21\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\15\5\1\255\4\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5"+ - "\1\256\11\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\13\5\1\162\6\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5"+ - "\1\257\7\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\12\5\1\260\7\5\15\0\7\5"+ - "\4\0\10\5\1\0\1\261\1\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\6\5\1\262\1\5\1\0"+ - "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\10\5\1\244"+ - "\11\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\1\263\21\5\15\0\7\5\4\0\1\264"+ - "\7\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0"+ - "\7\5\4\0\10\5\1\0\1\265\1\5\1\0\2\5"+ - "\3\0\1\5\1\266\12\5\1\267\5\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5"+ - "\1\164\7\5\15\0\3\5\1\164\3\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\1\270\21\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\2\5\1\164\17\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\1\271\1\5\3\0\22\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\4\5"+ - "\1\164\15\5\15\0\7\5\4\0\10\5\1\0\1\105"+ - "\1\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\4\5\1\272"+ - "\5\5\1\273\7\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\3\5\1\274\5\5\1\275"+ - "\10\5\15\0\7\5\4\0\10\5\1\0\1\214\1\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\12\5\1\276\7\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\10\5\1\277\1\300\10\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\3\5\1\301"+ - "\16\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\16\5\1\164\3\5\15\0\7\5\4\0"+ - "\10\5\1\0\1\302\1\5\1\0\2\5\3\0\22\5"+ - "\15\0\7\5\4\0\3\5\1\164\4\5\1\0\2\5"+ - "\1\0\2\5\3\0\12\5\1\164\7\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5"+ - "\1\303\11\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\11\5\1\304\10\5\15\0\7\5"+ - "\4\0\3\5\1\164\4\5\1\0\2\5\1\0\2\5"+ - "\3\0\22\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\3\5\1\305\16\5\15\0\3\5"+ - "\1\127\3\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\22\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\11\5\1\306\10\5\24\0\1\307"+ - "\73\0\1\310\64\0\1\311\12\0\1\311\2\0\1\311"+ - "\5\0\1\210\31\0\1\210\11\0\3\66\1\207\4\66"+ - "\3\0\3\66\1\207\2\66\1\207\2\66\1\0\2\66"+ - "\1\0\2\72\1\0\1\66\1\0\22\66\12\0\1\66"+ - "\4\0\1\311\12\0\1\311\2\0\1\311\52\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5"+ - "\1\312\11\5\15\0\4\5\1\252\2\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\4\5"+ - "\1\313\2\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\22\5\15\0\3\5\1\164\3\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\15\5"+ - "\1\260\4\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\3\5\1\237\16\5\15\0\1\314"+ - "\6\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\1\5\1\315\20\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\11\5\1\141"+ - "\10\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\7\5\1\316\12\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\5\5\1\317"+ - "\14\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\15\5\1\320\4\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\1\321\21\5"+ - "\14\0\3\66\1\231\4\66\3\0\1\66\2\67\1\231"+ - "\2\66\3\231\1\0\2\231\1\0\2\66\1\0\1\66"+ - "\1\0\1\231\1\66\1\231\2\66\1\231\1\66\1\231"+ - "\12\66\12\0\1\66\2\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\1\5\1\215\20\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\14\5\1\162\5\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\1\322\21\5\15\0\7\5"+ - "\4\0\10\5\1\0\1\164\1\5\1\0\2\5\3\0"+ - "\4\5\1\166\15\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\1\323\21\5\15\0\7\5"+ - "\4\0\10\5\1\0\1\162\1\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\6\5\1\162\1\5\1\0"+ - "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\7\5\1\324"+ - "\12\5\15\0\7\5\4\0\10\5\1\0\1\325\1\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\14\5\1\326\5\5"+ - "\15\0\7\5\4\0\1\164\7\5\1\0\2\5\1\0"+ - "\2\5\3\0\22\5\15\0\7\5\4\0\10\5\1\0"+ - "\1\327\1\5\1\0\2\5\3\0\22\5\15\0\7\5"+ - "\4\0\1\330\7\5\1\0\2\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\1\331\21\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\5\5\1\332\14\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\14\5\1\333\5\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\7\5\1\260\12\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\4\5\1\334\15\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\1\5\1\335\20\5"+ - "\15\0\3\5\1\322\3\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\1\260"+ - "\7\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0"+ - "\7\5\4\0\10\5\1\0\1\164\1\5\1\0\2\5"+ - "\3\0\22\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\1\336\21\5\15\0\7\5\4\0"+ - "\6\5\1\166\1\5\1\0\2\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\3\5\1\337\16\5\15\0\7\5\4\0"+ - "\1\340\7\5\1\0\2\5\1\0\2\5\3\0\22\5"+ - "\15\0\3\5\1\252\3\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\4\5\1\341\15\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\12\5\1\342\7\5\15\0\3\5\1\320\3\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\22\5"+ - "\15\0\7\5\4\0\10\5\1\0\1\343\1\5\1\0"+ - "\2\5\3\0\22\5\15\0\7\5\4\0\10\5\1\0"+ - "\1\344\1\5\1\0\2\5\3\0\22\5\15\0\4\5"+ - "\1\160\2\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\22\5\15\0\4\5\1\345\2\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\1\5"+ - "\1\346\20\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\10\5\1\327\11\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5"+ - "\1\347\7\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\1\5\1\131\20\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\3\5"+ - "\1\162\16\5\15\0\7\5\4\0\1\125\7\5\1\0"+ - "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\5\5\1\350"+ - "\14\5\15\0\7\5\4\0\1\237\7\5\1\0\2\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\1\331\16\5\1\164"+ - "\2\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\2\5\1\320\17\5\17\0\1\311\12\0"+ - "\1\311\2\0\1\311\6\0\2\206\42\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\1\315\21\5"+ - "\15\0\3\5\1\351\3\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\11\5\1\352\10\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\10\5\1\353\6\5\1\214\2\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\2\5"+ - "\1\354\17\5\15\0\7\5\4\0\1\127\7\5\1\0"+ - "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\4\5\1\320"+ - "\15\5\15\0\7\5\4\0\1\355\7\5\1\0\2\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\6\5"+ - "\1\356\1\5\1\0\2\5\1\0\2\5\3\0\22\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\12\5\1\131\7\5\15\0\7\5\4\0\10\5"+ - "\1\0\1\357\1\5\1\0\2\5\3\0\22\5\15\0"+ - "\3\5\1\131\3\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\22\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\13\5\1\164\6\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\4\5\1\360\15\5\15\0\7\5\4\0\1\361\7\5"+ - "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5"+ - "\1\315\11\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\11\5\1\362\10\5\15\0\7\5"+ - "\4\0\10\5\1\0\1\306\1\5\1\0\2\5\3\0"+ - "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\6\5\1\162\13\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\3\5\1\363"+ - "\16\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\1\364\21\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\11\5\1\365\10\5"+ - "\15\0\7\5\4\0\1\366\7\5\1\0\2\5\1\0"+ - "\2\5\3\0\11\5\1\257\10\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\7\5\1\160"+ - "\12\5\15\0\3\5\1\105\3\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\5\5\1\367"+ - "\14\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\3\5\1\370\16\5\15\0\7\5\4\0"+ - "\10\5\1\0\1\371\1\5\1\0\2\5\3\0\22\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\1\372\21\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\1\5\1\162\20\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\5\1\373\20\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\2\5\1\260\17\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\162\21\5\15\0\7\5\4\0\1\143\7\5\1\0"+ - "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\11\5\1\257"+ - "\10\5\15\0\3\5\1\374\3\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\4\5\1\214"+ - "\15\5\15\0\7\5\4\0\10\5\1\0\1\320\1\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\7\5\1\375\12\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\14\5\1\376\5\5\15\0\7\5\4\0\10\5"+ - "\1\0\2\5\1\0\2\5\3\0\5\5\1\257\14\5"+ - "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5"+ - "\3\0\1\5\1\377\20\5\15\0\7\5\4\0\10\5"+ - "\1\0\1\177\1\5\1\0\2\5\3\0\22\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\7\5\1\u0100\12\5\15\0\7\5\4\0\10\5\1\0"+ - "\2\5\1\0\2\5\3\0\4\5\1\u0101\15\5\15\0"+ - "\3\5\1\u0102\3\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\22\5\15\0\7\5\4\0\1\u0103\7\5"+ - "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5"+ - "\1\273\7\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\1\u0104\21\5\15\0\7\5\4\0"+ - "\10\5\1\0\1\u0105\1\5\1\0\2\5\3\0\22\5"+ - "\15\0\4\5\1\237\2\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\1\u0106"+ - "\7\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0"+ - "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0"+ - "\1\u0107\21\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\4\5\1\330\15\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\4\5"+ - "\1\260\15\5\15\0\7\5\4\0\10\5\1\0\2\5"+ - "\1\0\2\5\3\0\4\5\1\u0108\15\5\15\0\7\5"+ - "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\1\u0109"+ - "\21\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\1\5\1\252\20\5\15\0\7\5\4\0"+ - "\10\5\1\0\2\5\1\0\2\5\3\0\17\5\1\333"+ - "\2\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0"+ - "\2\5\3\0\3\5\1\127\16\5\14\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[14514]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\1\11\10\1\1\11\32\1\1\11\3\1\1\11"+ - "\4\1\1\11\17\1\1\0\2\1\1\0\76\1\3\0"+ - "\1\11\1\1\1\0\12\1\3\11\61\1\2\11\101\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[265]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int LONG_STRING_2 = 2; + public static final int LONG_STRING_1 = 1; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\34\1\12\1\0\1\34\1\32\22\0\1\34\1\64\1\11" + + "\1\33\1\0\1\63\1\67\1\10\1\57\1\57\1\62\1\61\1\64" + "\1\27\1\24\1\63\1\16\7\21\2\3\1\64\1\72\1\65\1\60" + + "\1\66\1\64\1\71\4\23\1\26\1\23\3\2\1\31\1\2\1\15" + "\5\2\1\6\2\2\1\7\2\2\1\20\2\2\1\57\1\13\1\57" + + "\1\64\1\1\1\0\1\35\1\42\1\44\1\37\1\25\1\22\1\52" + "\1\54\1\46\1\30\1\43\1\14\1\51\1\36\1\45\1\47\1\2" + + "\1\4\1\40\1\41\1\5\1\55\1\53\1\17\1\50\1\56\1\57" + "\1\70\1\57\1\64\uff81\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 = "\3\0\1\1\1\2\1\3\4\2\2\4\1\5\1\2" + "\1\3\2\2\1\6\1\2\1\6\1\7\1\10\21\2" + + "\1\11\10\6\1\2\2\12\2\4\1\13\1\3\1\14" + "\1\13\1\14\4\2\2\4\1\0\2\4\1\0\4\2" + "\1\13\1\3\1\13\12\2\1\15\27\2\1\15\3\2" + + "\2\15\1\16\1\15\15\2\3\0\2\14\1\0\12\2" + "\1\4\1\17\1\20\3\2\1\3\15\2\1\15\22\2" + "\1\21\14\2\1\22\1\23\1\14\6\2\1\21\3\2" + + "\1\15\36\2\1\15\17\2\1\15\6\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[265]; + 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\73\0\166\0\261\0\354\0\u0127\0\u0162\0\u019d" + + "\0\u01d8\0\u0213\0\u024e\0\u0289\0\261\0\u02c4\0\u02ff\0\u033a" + + "\0\u0375\0\u03b0\0\u03eb\0\u0426\0\u0461\0\u049c\0\u04d7\0\u0512" + + "\0\u054d\0\u0588\0\u05c3\0\u05fe\0\u0639\0\u0674\0\u06af\0\u06ea" + + "\0\u0725\0\u0760\0\u079b\0\u07d6\0\u0811\0\u084c\0\u0887\0\261" + + "\0\u08c2\0\u08fd\0\u0938\0\261\0\u0973\0\u09ae\0\u09e9\0\u0a24" + + "\0\261\0\u0a5f\0\u0a9a\0\u0ad5\0\u0b10\0\u0b4b\0\u0b4b\0\u0b86" + + "\0\u0bc1\0\u0b4b\0\u0bfc\0\u0c37\0\u0c72\0\u0cad\0\u0ce8\0\u0d23" + + "\0\u0d5e\0\u0d99\0\u0dd4\0\u0e0f\0\u0e4a\0\u0e85\0\u0ec0\0\u0efb" + + "\0\u0f36\0\u0f71\0\u0fac\0\u0fe7\0\u1022\0\u105d\0\u1098\0\u10d3" + + "\0\u110e\0\u1149\0\u1184\0\u11bf\0\u11fa\0\u1235\0\u1270\0\u12ab" + + "\0\u12e6\0\u1321\0\u135c\0\u1397\0\u13d2\0\u140d\0\u1448\0\u1483" + + "\0\u14be\0\u14f9\0\u1534\0\u156f\0\u15aa\0\u15e5\0\u1620\0\u165b" + + "\0\u1696\0\u16d1\0\u170c\0\u1747\0\u1782\0\u17bd\0\u17f8\0\u1833" + + "\0\u186e\0\354\0\u18a9\0\354\0\u18e4\0\u191f\0\u195a\0\u1995" + + "\0\u19d0\0\u1a0b\0\u1a46\0\u1a81\0\u1abc\0\u1af7\0\u1b32\0\u1b6d" + + "\0\u1ba8\0\u1be3\0\u1c1e\0\u1c59\0\u1c94\0\261\0\u1ccf\0\u1d0a" + + "\0\u1d45\0\u1d80\0\u1dbb\0\u1df6\0\u1e31\0\u1e6c\0\u1ea7\0\u1ee2" + + "\0\u1f1d\0\u1f58\0\261\0\261\0\261\0\u1f93\0\u1fce\0\u2009" + + "\0\u2044\0\u207f\0\u20ba\0\u20f5\0\u2130\0\u216b\0\u21a6\0\u21e1" + + "\0\u221c\0\u2257\0\u2292\0\u22cd\0\u2308\0\u2343\0\u237e\0\u23b9" + + "\0\u23f4\0\u242f\0\u237e\0\u246a\0\u24a5\0\u24e0\0\u251b\0\u2556" + + "\0\u2591\0\u25cc\0\u2607\0\u2642\0\u267d\0\u26b8\0\u26f3\0\u272e" + + "\0\u2769\0\u27a4\0\u27df\0\u281a\0\u2855\0\u2890\0\u28cb\0\u2906" + + "\0\u2941\0\u297c\0\u29b7\0\u29f2\0\u2a2d\0\u2a68\0\261\0\261" + + "\0\u2aa3\0\u2ade\0\u2b19\0\u2b54\0\u17bd\0\u2b8f\0\u2bca\0\354" + + "\0\u2c05\0\u2c40\0\u2c7b\0\u2cb6\0\u2cf1\0\u2d2c\0\u2d67\0\u2da2" + + "\0\u2ddd\0\u2e18\0\u2e53\0\u2e8e\0\u2ec9\0\u2f04\0\u2f3f\0\u2f7a" + + "\0\u2fb5\0\u2ff0\0\u302b\0\u3066\0\u30a1\0\u30dc\0\u3117\0\u3152" + + "\0\u318d\0\u31c8\0\u3203\0\u323e\0\u3279\0\u32b4\0\u32ef\0\u332a" + + "\0\u3365\0\u33a0\0\u33db\0\u3416\0\u3451\0\u348c\0\u34c7\0\u3502" + + "\0\u353d\0\u3578\0\u35b3\0\u35ee\0\u33db\0\u3629\0\u3664\0\u369f" + + "\0\u36da\0\u3715\0\u1270\0\u3750\0\u378b\0\u37c6\0\u3801\0\u383c" + "\0\u3877"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[265]; + 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 = "\1\4\2\5\1\6\1\7\1\10\1\11\1\12\1\13" + "\1\14\1\15\1\4\1\16\1\5\1\17\1\20\1\5" + + "\1\6\1\21\1\5\1\22\1\23\1\5\1\24\2\5" + "\1\4\1\25\1\26\1\27\1\30\1\31\1\32\1\33" + "\1\34\1\5\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\51\1\54\1\55\1\56\1\57\1\60\2\61" + + "\10\62\1\63\62\62\11\64\1\65\61\64\74\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\22\5" + "\14\0\3\66\1\6\4\66\3\0\1\66\2\67\1\6" + + "\2\66\1\6\2\66\1\70\2\71\1\0\2\72\1\0" + "\1\66\1\0\22\66\12\0\1\66\2\0\7\5\1\13" + "\1\14\2\0\10\5\1\0\1\73\1\5\1\0\2\5" + + "\3\0\1\74\7\5\1\75\11\5\15\0\3\5\1\11" + "\1\5\1\11\1\5\1\13\1\14\2\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\1\5\1\76\20\5\15\0" + + "\7\5\1\13\1\14\2\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\22\5\15\0\3\5\1\11\1\5\1\11" + "\1\5\1\13\1\14\2\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\22\5\14\0\10\77\1\100\1\77\1\0" + "\1\101\57\77\11\102\1\103\1\0\1\104\57\102\1\0" + + "\7\5\4\0\10\5\1\0\1\105\1\5\1\0\2\5" + "\3\0\1\106\7\5\1\107\1\110\10\5\14\0\3\66" + + "\1\111\4\66\3\0\1\66\2\67\1\112\2\113\1\112" + "\2\66\1\70\2\71\1\0\2\72\1\0\1\66\1\0" + + "\22\66\12\0\1\66\2\0\3\5\1\114\3\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0" + "\3\5\1\115\3\5\4\0\1\116\7\5\1\0\2\5" + + "\1\0\2\5\3\0\10\5\1\117\1\120\10\5\17\0" + "\1\70\12\0\1\70\2\0\1\70\52\0\7\5\4\0" + "\1\121\2\5\1\122\4\5\1\0\2\5\1\0\2\5" + + "\3\0\1\5\1\123\16\5\1\124\1\5\43\0\1\54" + "\30\0\1\54\12\0\12\25\1\0\60\25\34\0\1\26" + "\37\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + + "\3\0\1\5\1\125\1\5\1\126\1\5\1\127\4\5" + "\1\130\7\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\10\5\1\131\11\5\15\0\7\5" + + "\4\0\10\5\1\0\1\132\1\5\1\0\2\5\3\0" + "\10\5\1\133\1\134\10\5\15\0\4\5\1\135\2\5" + "\4\0\1\136\7\5\1\0\1\137\1\5\1\0\2\5" + + "\3\0\4\5\1\140\4\5\1\141\5\5\1\142\2\5" + "\15\0\3\5\1\143\1\144\2\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\13\5\1\145\6\5\15\0" + + "\3\5\1\146\1\147\2\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\10\5\1\150\11\5\15\0\7\5" + "\4\0\1\151\7\5\1\0\2\5\1\0\2\5\3\0" + + "\1\152\7\5\1\153\3\5\1\154\2\5\1\155\2\5" + "\15\0\3\5\1\156\3\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\5\5\1\157\1\5\1\160\2\5" + + "\1\161\7\5\15\0\7\5\4\0\6\5\1\162\1\5" + "\1\0\2\5\1\0\2\5\3\0\1\5\1\163\1\164" + "\1\165\1\166\7\5\1\167\5\5\15\0\3\5\1\170" + + "\3\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\1\171\7\5\1\172\11\5\15\0\7\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\11\5\1\173\10\5" + + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\1\174\10\5\1\105\10\5\15\0\7\5\4\0" + "\1\175\7\5\1\0\1\137\1\5\1\0\2\5\3\0" + + "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\17\5\1\176\2\5\15\0\7\5\4\0" + "\10\5\1\0\1\177\1\5\1\0\2\5\3\0\1\200" + + "\21\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\1\201\7\5\1\202\11\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\11\5" + + "\1\154\10\5\74\0\1\54\72\0\2\54\71\0\1\54" + "\1\0\1\54\75\0\1\51\73\0\1\51\73\0\1\54" + + "\73\0\1\54\2\0\10\62\1\0\62\62\10\0\1\203" + "\62\0\11\64\1\0\61\64\11\0\1\204\61\0\10\66" + + "\3\0\11\66\1\0\2\66\1\0\2\66\1\0\1\66" + "\1\0\22\66\12\0\1\66\4\0\1\70\12\0\1\70" + + "\2\0\1\70\3\0\2\205\1\0\2\206\41\0\3\66" + "\1\207\4\66\3\0\3\66\1\207\2\66\1\207\2\66" + + "\1\0\2\66\1\210\2\66\1\0\1\66\1\0\22\66" + "\2\0\1\210\7\0\1\66\2\0\7\5\4\0\1\211" + "\7\5\1\0\2\5\1\0\2\5\3\0\2\5\1\212" + + "\1\5\1\213\5\5\1\214\7\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\1\5\1\215" + "\7\5\1\216\4\5\1\217\3\5\15\0\4\5\1\220" + + "\2\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\3\5\1\221\5\5\1\222\10\5\14\0" + + "\10\77\1\223\1\77\1\0\1\101\57\77\10\0\1\224" + "\62\0\12\77\1\0\60\77\11\102\1\223\1\0\1\104" + + "\57\102\11\0\1\225\61\0\12\102\1\0\60\102\1\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + + "\1\5\1\164\20\5\15\0\7\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\14\5\1\226\5\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + + "\1\5\1\227\5\5\1\230\12\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\3\5\1\160" + "\16\5\14\0\3\66\1\111\4\66\3\0\3\66\1\111" + + "\2\66\1\111\2\66\1\70\2\71\1\0\2\72\1\0" + "\1\66\1\0\22\66\12\0\1\66\1\0\3\66\1\111" + + "\4\66\3\0\1\66\2\67\1\112\2\66\1\112\2\66" + "\1\70\2\71\1\0\2\72\1\0\1\66\1\0\22\66" + + "\12\0\1\66\1\0\3\66\1\231\4\66\3\0\3\66" + "\1\231\2\66\3\231\1\0\2\231\1\0\2\66\1\0" + + "\1\66\1\0\1\231\1\66\1\231\2\66\1\231\1\66" + "\1\231\12\66\12\0\1\66\2\0\7\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\1\232\21\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\10\5\1\233\11\5\15\0\7\5\4\0\10\5\1\0" + + "\2\5\1\0\2\5\3\0\10\5\1\234\11\5\15\0" + "\3\5\1\162\3\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\22\5\15\0\7\5\4\0\1\235\7\5" + + "\1\0\2\5\1\0\2\5\3\0\1\5\1\236\20\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\3\5\1\237\5\5\1\240\10\5\15\0\7\5" + + "\4\0\10\5\1\0\1\241\1\5\1\0\2\5\3\0" + "\7\5\1\242\12\5\15\0\4\5\1\243\2\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0" + + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\1\244\21\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\2\5\1\162\17\5\15\0\7\5" + + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\3\5" + "\1\245\16\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\3\5\1\164\16\5\15\0\7\5" + + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5" + "\1\246\7\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\4\5\1\162\15\5\15\0\7\5" + + "\4\0\1\247\5\5\1\162\1\5\1\0\2\5\1\0" + "\2\5\3\0\22\5\15\0\4\5\1\250\2\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0" + + "\3\5\1\164\3\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\7\5\1\160\10\5\1\251\1\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + + "\12\5\1\166\1\5\1\164\5\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\11\5\1\252" + "\10\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\4\5\1\253\15\5\15\0\3\5\1\164" + "\3\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\1\254\21\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\15\5\1\255\4\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5" + "\1\256\11\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\13\5\1\162\6\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5" + "\1\257\7\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\12\5\1\260\7\5\15\0\7\5" + "\4\0\10\5\1\0\1\261\1\5\1\0\2\5\3\0" + "\22\5\15\0\7\5\4\0\6\5\1\262\1\5\1\0" + + "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\10\5\1\244" + "\11\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\1\263\21\5\15\0\7\5\4\0\1\264" + "\7\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0" + "\7\5\4\0\10\5\1\0\1\265\1\5\1\0\2\5" + + "\3\0\1\5\1\266\12\5\1\267\5\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5" + "\1\164\7\5\15\0\3\5\1\164\3\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\1\270\21\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\2\5\1\164\17\5\15\0\7\5\4\0\10\5\1\0" + + "\2\5\1\0\1\271\1\5\3\0\22\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\4\5" + "\1\164\15\5\15\0\7\5\4\0\10\5\1\0\1\105" + + "\1\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\4\5\1\272" + "\5\5\1\273\7\5\15\0\7\5\4\0\10\5\1\0" + + "\2\5\1\0\2\5\3\0\3\5\1\274\5\5\1\275" + "\10\5\15\0\7\5\4\0\10\5\1\0\1\214\1\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\12\5\1\276\7\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\10\5\1\277\1\300\10\5\15\0\7\5\4\0" + + "\10\5\1\0\2\5\1\0\2\5\3\0\3\5\1\301" + "\16\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\16\5\1\164\3\5\15\0\7\5\4\0" + + "\10\5\1\0\1\302\1\5\1\0\2\5\3\0\22\5" + "\15\0\7\5\4\0\3\5\1\164\4\5\1\0\2\5" + "\1\0\2\5\3\0\12\5\1\164\7\5\15\0\7\5" + + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5" + "\1\303\11\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\11\5\1\304\10\5\15\0\7\5" + + "\4\0\3\5\1\164\4\5\1\0\2\5\1\0\2\5" + "\3\0\22\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\3\5\1\305\16\5\15\0\3\5" + + "\1\127\3\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\22\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\11\5\1\306\10\5\24\0\1\307" + + "\73\0\1\310\64\0\1\311\12\0\1\311\2\0\1\311" + "\5\0\1\210\31\0\1\210\11\0\3\66\1\207\4\66" + + "\3\0\3\66\1\207\2\66\1\207\2\66\1\0\2\66" + "\1\0\2\72\1\0\1\66\1\0\22\66\12\0\1\66" + + "\4\0\1\311\12\0\1\311\2\0\1\311\52\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5" + "\1\312\11\5\15\0\4\5\1\252\2\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\4\5" + "\1\313\2\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\22\5\15\0\3\5\1\164\3\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\15\5" + "\1\260\4\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\3\5\1\237\16\5\15\0\1\314" + "\6\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\1\5\1\315\20\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\11\5\1\141" + "\10\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\7\5\1\316\12\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\5\5\1\317" + "\14\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\15\5\1\320\4\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\1\321\21\5" + "\14\0\3\66\1\231\4\66\3\0\1\66\2\67\1\231" + + "\2\66\3\231\1\0\2\231\1\0\2\66\1\0\1\66" + "\1\0\1\231\1\66\1\231\2\66\1\231\1\66\1\231" + + "\12\66\12\0\1\66\2\0\7\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\1\5\1\215\20\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + + "\14\5\1\162\5\5\15\0\7\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\1\322\21\5\15\0\7\5" + "\4\0\10\5\1\0\1\164\1\5\1\0\2\5\3\0" + + "\4\5\1\166\15\5\15\0\7\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\1\323\21\5\15\0\7\5" + "\4\0\10\5\1\0\1\162\1\5\1\0\2\5\3\0" + + "\22\5\15\0\7\5\4\0\6\5\1\162\1\5\1\0" + "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\7\5\1\324" + + "\12\5\15\0\7\5\4\0\10\5\1\0\1\325\1\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\14\5\1\326\5\5" + + "\15\0\7\5\4\0\1\164\7\5\1\0\2\5\1\0" + "\2\5\3\0\22\5\15\0\7\5\4\0\10\5\1\0" + "\1\327\1\5\1\0\2\5\3\0\22\5\15\0\7\5" + + "\4\0\1\330\7\5\1\0\2\5\1\0\2\5\3\0" + "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\1\331\21\5\15\0\7\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\5\5\1\332\14\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\14\5\1\333\5\5\15\0\7\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\7\5\1\260\12\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\4\5\1\334\15\5\15\0\7\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\1\5\1\335\20\5" + "\15\0\3\5\1\322\3\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\1\260" + + "\7\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0" + "\7\5\4\0\10\5\1\0\1\164\1\5\1\0\2\5" + "\3\0\22\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\1\336\21\5\15\0\7\5\4\0" + "\6\5\1\166\1\5\1\0\2\5\1\0\2\5\3\0" + "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\3\5\1\337\16\5\15\0\7\5\4\0" + "\1\340\7\5\1\0\2\5\1\0\2\5\3\0\22\5" + "\15\0\3\5\1\252\3\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\4\5\1\341\15\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + + "\3\0\12\5\1\342\7\5\15\0\3\5\1\320\3\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\22\5" + "\15\0\7\5\4\0\10\5\1\0\1\343\1\5\1\0" + + "\2\5\3\0\22\5\15\0\7\5\4\0\10\5\1\0" + "\1\344\1\5\1\0\2\5\3\0\22\5\15\0\4\5" + "\1\160\2\5\4\0\10\5\1\0\2\5\1\0\2\5" + + "\3\0\22\5\15\0\4\5\1\345\2\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\1\5" + + "\1\346\20\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\10\5\1\327\11\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5" + + "\1\347\7\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\1\5\1\131\20\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\3\5" + + "\1\162\16\5\15\0\7\5\4\0\1\125\7\5\1\0" + "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\5\5\1\350" + + "\14\5\15\0\7\5\4\0\1\237\7\5\1\0\2\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\1\331\16\5\1\164" + + "\2\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\2\5\1\320\17\5\17\0\1\311\12\0" + "\1\311\2\0\1\311\6\0\2\206\42\0\7\5\4\0" + + "\10\5\1\0\2\5\1\0\2\5\3\0\1\315\21\5" + "\15\0\3\5\1\351\3\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5" + + "\1\0\2\5\1\0\2\5\3\0\11\5\1\352\10\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\10\5\1\353\6\5\1\214\2\5\15\0\7\5" + + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\2\5" + "\1\354\17\5\15\0\7\5\4\0\1\127\7\5\1\0" + "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + + "\10\5\1\0\2\5\1\0\2\5\3\0\4\5\1\320" + "\15\5\15\0\7\5\4\0\1\355\7\5\1\0\2\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\6\5" + + "\1\356\1\5\1\0\2\5\1\0\2\5\3\0\22\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\12\5\1\131\7\5\15\0\7\5\4\0\10\5" + + "\1\0\1\357\1\5\1\0\2\5\3\0\22\5\15\0" + "\3\5\1\131\3\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\22\5\15\0\7\5\4\0\10\5\1\0" + + "\2\5\1\0\2\5\3\0\13\5\1\164\6\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\4\5\1\360\15\5\15\0\7\5\4\0\1\361\7\5" + + "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\10\5" + "\1\315\11\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\11\5\1\362\10\5\15\0\7\5" + "\4\0\10\5\1\0\1\306\1\5\1\0\2\5\3\0" + "\22\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\6\5\1\162\13\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\3\5\1\363" + "\16\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\1\364\21\5\15\0\7\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\11\5\1\365\10\5" + "\15\0\7\5\4\0\1\366\7\5\1\0\2\5\1\0" + + "\2\5\3\0\11\5\1\257\10\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\7\5\1\160" + "\12\5\15\0\3\5\1\105\3\5\4\0\10\5\1\0" + + "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\5\5\1\367" + "\14\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\3\5\1\370\16\5\15\0\7\5\4\0" + "\10\5\1\0\1\371\1\5\1\0\2\5\3\0\22\5" + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + + "\3\0\1\372\21\5\15\0\7\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\1\5\1\162\20\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + + "\1\5\1\373\20\5\15\0\7\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\2\5\1\260\17\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + + "\1\162\21\5\15\0\7\5\4\0\1\143\7\5\1\0" + "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\11\5\1\257" + + "\10\5\15\0\3\5\1\374\3\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\22\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\4\5\1\214" + + "\15\5\15\0\7\5\4\0\10\5\1\0\1\320\1\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\7\5\1\375\12\5" + + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\14\5\1\376\5\5\15\0\7\5\4\0\10\5" + "\1\0\2\5\1\0\2\5\3\0\5\5\1\257\14\5" + + "\15\0\7\5\4\0\10\5\1\0\2\5\1\0\2\5" + "\3\0\1\5\1\377\20\5\15\0\7\5\4\0\10\5" + "\1\0\1\177\1\5\1\0\2\5\3\0\22\5\15\0" + + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\7\5\1\u0100\12\5\15\0\7\5\4\0\10\5\1\0" + "\2\5\1\0\2\5\3\0\4\5\1\u0101\15\5\15\0" + + "\3\5\1\u0102\3\5\4\0\10\5\1\0\2\5\1\0" + "\2\5\3\0\22\5\15\0\7\5\4\0\1\u0103\7\5" + "\1\0\2\5\1\0\2\5\3\0\22\5\15\0\7\5" + + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\12\5" + "\1\273\7\5\15\0\7\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\1\u0104\21\5\15\0\7\5\4\0" + + "\10\5\1\0\1\u0105\1\5\1\0\2\5\3\0\22\5" + "\15\0\4\5\1\237\2\5\4\0\10\5\1\0\2\5" + "\1\0\2\5\3\0\22\5\15\0\7\5\4\0\1\u0106" + + "\7\5\1\0\2\5\1\0\2\5\3\0\22\5\15\0" + "\7\5\4\0\10\5\1\0\2\5\1\0\2\5\3\0" + "\1\u0107\21\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\4\5\1\330\15\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\4\5" + "\1\260\15\5\15\0\7\5\4\0\10\5\1\0\2\5" + + "\1\0\2\5\3\0\4\5\1\u0108\15\5\15\0\7\5" + "\4\0\10\5\1\0\2\5\1\0\2\5\3\0\1\u0109" + "\21\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\1\5\1\252\20\5\15\0\7\5\4\0" + "\10\5\1\0\2\5\1\0\2\5\3\0\17\5\1\333" + "\2\5\15\0\7\5\4\0\10\5\1\0\2\5\1\0" + + "\2\5\3\0\3\5\1\127\16\5\14\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[14514]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\1\11\10\1\1\11\32\1\1\11\3\1\1\11" + "\4\1\1\11\17\1\1\0\2\1\1\0\76\1\3\0" + + "\1\11\1\1\1\0\12\1\3\11\61\1\2\11\101\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[265]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public PythonTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -665,26 +400,26 @@ public class PythonTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -697,7 +432,6 @@ public class PythonTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -707,10 +441,8 @@ public class PythonTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -719,7 +451,8 @@ public class PythonTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -728,361 +461,367 @@ public class PythonTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; + } + + /** + * 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 PythonTokenMaker(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 PythonTokenMaker(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 < 168) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 5: { + addNullToken(); + return firstToken; + } + case 20: + break; + case 10: { + addToken(Token.LITERAL_CHAR); + } + case 21: + break; + case 8: { + addToken(Token.WHITESPACE); + } + case 22: + break; + case 12: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 23: + break; + case 13: { + addToken(Token.RESERVED_WORD); + } + case 24: + break; + case 9: { + addToken(Token.SEPARATOR); + } + case 25: + break; + case 15: { + yybegin(LONG_STRING_1); + addToken(Token.LITERAL_CHAR); + } + case 26: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 27: + break; + case 14: { + addToken(Token.FUNCTION); + } + case 28: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 29: + break; + case 17: { + addToken(Token.DATA_TYPE); + } + case 30: + break; + case 4: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 31: + break; + case 7: { + addToken(Token.COMMENT_EOL); + } + case 32: + break; + case 11: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 33: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 34: + break; + case 6: { + addToken(Token.OPERATOR); + } + case 35: + break; + case 19: { + yybegin(YYINITIAL); + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 36: + break; + case 16: { + yybegin(LONG_STRING_2); + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 37: + break; + case 18: { + yybegin(YYINITIAL); + addToken(Token.LITERAL_CHAR); + } + case 38: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 266: + break; + case LONG_STRING_2: { + if (firstToken == null) { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + return firstToken; + } + case 267: + break; + case LONG_STRING_1: { + if (firstToken == null) { + addToken(Token.LITERAL_CHAR); + } + return firstToken; + } + case 268: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 PythonTokenMaker(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 PythonTokenMaker(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 < 168) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 5: - { addNullToken(); return firstToken; - } - case 20: break; - case 10: - { addToken(Token.LITERAL_CHAR); - } - case 21: break; - case 8: - { addToken(Token.WHITESPACE); - } - case 22: break; - case 12: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 23: break; - case 13: - { addToken(Token.RESERVED_WORD); - } - case 24: break; - case 9: - { addToken(Token.SEPARATOR); - } - case 25: break; - case 15: - { yybegin(LONG_STRING_1); addToken(Token.LITERAL_CHAR); - } - case 26: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 27: break; - case 14: - { addToken(Token.FUNCTION); - } - case 28: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 29: break; - case 17: - { addToken(Token.DATA_TYPE); - } - case 30: break; - case 4: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 31: break; - case 7: - { addToken(Token.COMMENT_EOL); - } - case 32: break; - case 11: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 33: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 34: break; - case 6: - { addToken(Token.OPERATOR); - } - case 35: break; - case 19: - { yybegin(YYINITIAL); addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 36: break; - case 16: - { yybegin(LONG_STRING_2); addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 37: break; - case 18: - { yybegin(YYINITIAL); addToken(Token.LITERAL_CHAR); - } - case 38: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 266: break; - case LONG_STRING_2: { - if (firstToken==null) { - addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - return firstToken; - } - case 267: break; - case LONG_STRING_1: { - if (firstToken==null) { - addToken(Token.LITERAL_CHAR); - } - return firstToken; - } - case 268: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/RubyTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/RubyTokenMaker.java index 0eba805..6851bd2 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/RubyTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/RubyTokenMaker.java @@ -1,1015 +1,674 @@ /* The following code was generated by JFlex 1.4.1 on 6/21/15 11:19 AM */ - /* * 09/11/2008 - * * RubyTokenMaker.java - Scanner for Ruby - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for Ruby.

+ * Scanner for Ruby. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated RubyTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated RubyTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class RubyTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int HEREDOC_EOF_SINGLE_QUOTED = 11; - public static final int DOCCOMMENT = 14; - public static final int HEREDOC_EOT_SINGLE_QUOTED = 13; - public static final int HEREDOC_EOT_UNQUOTED = 12; - public static final int STRING_Q_SLASH = 5; - public static final int STRING_Q_BANG = 2; - public static final int STRING_Q_LT = 7; - public static final int STRING = 1; - public static final int BACKTICKS = 9; - public static final int YYINITIAL = 0; - public static final int HEREDOC_EOF_UNQUOTED = 10; - public static final int STRING_Q_CURLY_BRACE = 3; - public static final int STRING_Q_PAREN = 4; - public static final int HEREDOC_EOF_DOUBLE_QUOTED = 11; - public static final int CHAR_LITERAL = 8; - public static final int HEREDOC_EOT_DOUBLE_QUOTED = 13; - public static final int STRING_Q_SQUARE_BRACKET = 6; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\24\1\23\1\0\1\24\1\7\22\0\1\24\1\44\1\106"+ - "\1\10\1\56\1\50\1\53\1\107\1\111\1\36\1\46\1\35\1\60"+ - "\1\43\1\40\1\47\1\3\1\4\6\6\2\2\1\37\1\60\1\51"+ - "\1\25\1\52\1\104\1\57\1\67\1\62\1\5\1\61\1\34\1\64"+ - "\1\63\1\1\1\65\2\1\1\1\1\1\1\66\1\70\1\1\1\110"+ - "\1\1\1\73\1\71\1\1\1\1\1\110\3\1\1\41\1\11\1\42"+ - "\1\55\1\12\1\113\1\20\1\26\1\76\1\32\1\16\1\17\1\27"+ - "\1\102\1\30\1\1\1\75\1\21\1\77\1\31\1\72\1\101\1\105"+ - "\1\14\1\22\1\13\1\15\1\74\1\103\1\33\1\100\1\1\1\112"+ - "\1\54\1\114\1\45\uff81\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 = - "\17\0\1\1\1\2\2\3\1\2\1\4\10\2\1\5"+ - "\1\6\1\7\6\2\1\7\1\10\1\2\10\7\2\1"+ - "\11\2\1\11\1\2\1\12\1\13\1\14\1\15\1\16"+ - "\1\17\1\20\1\15\1\21\1\15\1\22\1\15\1\23"+ - "\1\15\1\24\1\15\1\25\1\15\1\26\1\15\1\27"+ - "\1\30\1\31\1\15\1\32\1\33\1\15\1\34\1\15"+ - "\1\35\1\36\1\15\1\37\1\15\1\40\1\15\1\1"+ - "\1\41\1\3\4\1\30\2\1\0\7\2\1\42\5\2"+ - "\1\43\1\7\1\0\1\44\1\45\1\46\1\47\1\50"+ - "\1\51\2\7\3\52\1\0\1\1\4\2\1\7\12\2"+ - "\1\16\1\27\2\15\1\0\2\41\2\3\1\53\24\2"+ - "\1\42\7\2\1\11\6\2\1\0\10\2\1\42\5\0"+ - "\20\2\1\54\1\0\1\1\1\41\3\1\1\55\1\2"+ - "\1\11\16\2\1\11\5\2\1\0\3\2\4\0\11\2"+ - "\1\56\1\0\12\2\1\0\2\2\1\57\1\60\3\0"+ - "\2\2\1\11\5\2\1\61\1\2\6\0\4\2\1\62"+ - "\1\63\1\11\7\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[347]; - 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\115\0\232\0\347\0\u0134\0\u0181\0\u01ce\0\u021b"+ - "\0\u0268\0\u02b5\0\u0302\0\u034f\0\u039c\0\u03e9\0\u0436\0\u0483"+ - "\0\u04d0\0\u051d\0\u056a\0\u05b7\0\u0604\0\u0651\0\u069e\0\u06eb"+ - "\0\u0738\0\u0785\0\u07d2\0\u081f\0\u086c\0\u05b7\0\u08b9\0\u0906"+ - "\0\u0953\0\u09a0\0\u09ed\0\u0a3a\0\u0a87\0\u0ad4\0\u0b21\0\u05b7"+ - "\0\u0b6e\0\u0bbb\0\u05b7\0\u0c08\0\u0c55\0\u0ca2\0\u0cef\0\u0d3c"+ - "\0\u0d89\0\u0dd6\0\u0e23\0\u0e70\0\u0ebd\0\u0f0a\0\u0f57\0\u0fa4"+ - "\0\u0ff1\0\u103e\0\u108b\0\u10d8\0\u1125\0\u1172\0\u05b7\0\u05b7"+ - "\0\u05b7\0\u11bf\0\u120c\0\u05b7\0\u05b7\0\u1259\0\u05b7\0\u12a6"+ - "\0\u05b7\0\u12f3\0\u05b7\0\u1340\0\u05b7\0\u138d\0\u05b7\0\u13da"+ - "\0\u05b7\0\u1427\0\u1474\0\u05b7\0\u05b7\0\u14c1\0\u05b7\0\u05b7"+ - "\0\u150e\0\u05b7\0\u155b\0\u05b7\0\u05b7\0\u15a8\0\u05b7\0\u15f5"+ - "\0\u05b7\0\u1642\0\u168f\0\u16dc\0\u1729\0\u1729\0\u1776\0\u17c3"+ - "\0\u1810\0\u185d\0\u18aa\0\u18f7\0\u1944\0\u1991\0\u19de\0\u1a2b"+ - "\0\u1a78\0\u1ac5\0\u1b12\0\u1b5f\0\u1bac\0\u1bf9\0\u1c46\0\u1c93"+ - "\0\u1ce0\0\u1d2d\0\u1d7a\0\u1dc7\0\u1e14\0\u1e61\0\u1eae\0\u1efb"+ - "\0\u1f48\0\u1f95\0\u1fe2\0\u202f\0\u207c\0\u20c9\0\u2116\0\u2163"+ - "\0\u21b0\0\u04d0\0\u21fd\0\u224a\0\u2297\0\u22e4\0\u2331\0\u237e"+ - "\0\u23cb\0\u2418\0\u05b7\0\u05b7\0\u05b7\0\u05b7\0\u05b7\0\u05b7"+ - "\0\u2465\0\u24b2\0\u24ff\0\u0483\0\u05b7\0\u254c\0\u2599\0\u25e6"+ - "\0\u2633\0\u2680\0\u26cd\0\u04d0\0\u271a\0\u2767\0\u27b4\0\u2801"+ - "\0\u284e\0\u289b\0\u28e8\0\u2935\0\u2982\0\u29cf\0\u05b7\0\u05b7"+ - "\0\u2a1c\0\u2a69\0\u2ab6\0\u2b03\0\u2b50\0\u2b9d\0\u2bea\0\u2c37"+ - "\0\u2c84\0\u2cd1\0\u2d1e\0\u2d6b\0\u2db8\0\u2e05\0\u2e52\0\u2e9f"+ - "\0\u2eec\0\u2f39\0\u2f86\0\u2fd3\0\u3020\0\u306d\0\u30ba\0\u3107"+ - "\0\u3154\0\u31a1\0\u31ee\0\u323b\0\u3288\0\u32d5\0\u3322\0\u336f"+ - "\0\u33bc\0\u3409\0\u3456\0\u34a3\0\u34f0\0\u353d\0\u358a\0\u35d7"+ - "\0\u3624\0\u3671\0\u36be\0\u370b\0\u3758\0\u37a5\0\u37f2\0\u383f"+ - "\0\u388c\0\u38d9\0\u3926\0\u3973\0\u39c0\0\u3a0d\0\u3a5a\0\u3aa7"+ - "\0\u3af4\0\u3b41\0\u3b8e\0\u3bdb\0\u3c28\0\u3c75\0\u3cc2\0\u3d0f"+ - "\0\u3d5c\0\u3da9\0\u3df6\0\u3e43\0\u3e90\0\u3edd\0\u3f2a\0\u3f77"+ - "\0\u3fc4\0\u4011\0\u150e\0\u405e\0\u2b03\0\u40ab\0\u2b9d\0\u2bea"+ - "\0\u2c37\0\u04d0\0\u40f8\0\u04d0\0\u4145\0\u4192\0\u41df\0\u422c"+ - "\0\u4279\0\u42c6\0\u4313\0\u4360\0\u43ad\0\u43fa\0\u4447\0\u4494"+ - "\0\u44e1\0\u452e\0\u05b7\0\u457b\0\u45c8\0\u4615\0\u4662\0\u46af"+ - "\0\u46fc\0\u4749\0\u4796\0\u47e3\0\u4830\0\u487d\0\u48ca\0\u4917"+ - "\0\u4964\0\u49b1\0\u49fe\0\u4a4b\0\u4a98\0\u4ae5\0\u4b32\0\u4b7f"+ - "\0\u4bcc\0\u05b7\0\u40ab\0\u4c19\0\u4c66\0\u4cb3\0\u4d00\0\u4d4d"+ - "\0\u4d9a\0\u4de7\0\u4e34\0\u4e81\0\u4ece\0\u4f1b\0\u4f68\0\u4fb5"+ - "\0\u05b7\0\u05b7\0\u5002\0\u504f\0\u509c\0\u50e9\0\u5136\0\u5183"+ - "\0\u51d0\0\u521d\0\u526a\0\u52b7\0\u5183\0\u05b7\0\u5304\0\u5351"+ - "\0\u539e\0\u53eb\0\u5438\0\u5485\0\u54d2\0\u551f\0\u556c\0\u55b9"+ - "\0\u5606\0\u05b7\0\u05b7\0\u383f\0\u5653\0\u56a0\0\u56ed\0\u573a"+ - "\0\u5787\0\u57d4\0\u5821"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[347]; - 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 = - "\1\20\1\21\1\22\1\23\1\22\1\21\1\22\1\24"+ - "\1\25\1\20\1\21\1\26\1\27\1\30\1\31\1\32"+ - "\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42"+ - "\1\43\1\44\1\45\1\21\1\46\1\47\1\50\1\51"+ - "\1\52\2\53\1\47\1\54\1\53\2\47\1\55\1\56"+ - "\1\57\1\60\1\61\1\53\1\62\1\63\1\24\1\21"+ - "\1\64\1\21\1\65\1\66\1\21\1\67\2\21\1\70"+ - "\1\71\2\21\1\72\1\73\1\74\1\75\1\21\1\76"+ - "\1\24\1\21\1\77\1\100\1\21\2\50\1\101\1\50"+ - "\11\102\1\103\11\102\1\104\62\102\1\105\6\102\11\106"+ - "\1\103\11\106\1\107\20\106\1\105\50\106\11\110\1\103"+ - "\11\110\1\111\70\110\1\105\11\112\1\103\11\112\1\113"+ - "\12\112\1\105\56\112\11\114\1\103\11\114\1\115\23\114"+ - "\1\105\45\114\11\116\1\103\11\116\1\117\16\116\1\105"+ - "\52\116\11\120\1\103\11\120\1\121\26\120\1\105\42\120"+ - "\11\122\1\123\11\122\1\124\63\122\1\125\5\122\11\126"+ - "\1\103\11\126\1\127\67\126\1\130\1\126\11\131\1\103"+ - "\11\131\1\132\10\131\1\133\71\131\1\103\11\131\1\134"+ - "\10\131\1\133\71\131\1\103\11\131\1\135\10\131\1\136"+ - "\71\131\1\103\11\131\1\137\10\131\1\136\60\131\23\140"+ - "\1\141\1\140\1\142\67\140\7\20\1\0\13\20\3\0"+ - "\7\20\21\0\2\20\1\0\23\20\1\0\1\20\2\0"+ - "\1\20\4\0\1\20\6\21\1\0\2\20\11\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\2\20\3\22\1\20\1\22\1\0\2\20"+ - "\1\143\3\20\1\144\4\20\3\0\6\20\1\144\21\0"+ - "\2\20\1\0\23\20\1\0\1\20\2\0\1\20\4\0"+ - "\3\20\2\145\1\20\1\145\1\0\2\20\1\146\10\20"+ - "\3\0\1\147\3\20\1\150\1\151\1\20\21\0\2\20"+ - "\1\0\23\20\1\0\1\20\2\0\1\20\121\0\23\25"+ - "\1\0\71\25\1\20\6\21\1\0\2\20\2\21\1\152"+ - "\1\21\1\153\4\21\3\0\7\21\21\0\2\20\1\0"+ - "\21\21\1\154\1\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\4\21\1\155\1\21\1\156"+ - "\2\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\11\21\3\0\3\21\1\157\3\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\7\21\1\160\1\21\3\0\3\21\1\161"+ - "\1\21\1\162\1\21\21\0\2\20\1\0\13\21\1\163"+ - "\7\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\6\21\1\164\2\21\3\0\7\21\21\0"+ - "\2\20\1\0\11\21\1\165\11\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\1\21\1\166"+ - "\1\21\1\167\3\21\1\170\1\21\3\0\3\21\1\171"+ - "\3\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\6\21\1\172"+ - "\2\21\3\0\7\21\21\0\2\20\1\0\11\21\1\173"+ - "\11\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\2\21\1\174\1\175\1\176\2\21\1\177"+ - "\1\21\3\0\7\21\21\0\2\20\1\0\17\21\1\200"+ - "\1\201\2\21\1\0\1\21\2\0\1\21\30\0\1\37"+ - "\115\0\1\47\1\202\16\0\1\53\47\0\1\20\6\21"+ - "\1\0\2\20\2\21\1\203\1\21\1\204\4\21\3\0"+ - "\2\21\1\205\4\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\4\21\1\206\2\21\1\207\1\210\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\1\21\1\211\3\21\1\212"+ - "\3\21\3\0\3\21\1\212\3\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\4\21\1\213\4\21\3\0\2\21\1\214"+ - "\4\21\21\0\2\20\1\0\11\21\1\215\11\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\4\21\1\216\4\21\3\0\7\21\21\0\2\20\1\0"+ - "\11\21\1\212\11\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\7\21\21\0"+ - "\2\20\1\0\5\21\1\217\15\21\1\0\1\21\2\0"+ - "\1\21\31\0\1\53\70\0\1\220\3\0\1\220\4\0"+ - "\11\220\3\0\7\220\2\0\1\53\21\0\23\220\1\0"+ - "\1\220\2\0\1\220\44\0\1\221\101\0\1\53\17\0"+ - "\1\53\74\0\1\53\5\0\1\222\5\0\1\223\2\0"+ - "\1\224\2\0\1\225\1\0\1\226\31\0\1\222\1\0"+ - "\1\222\2\0\1\222\1\227\1\230\27\0\1\231\23\0"+ - "\1\232\70\0\1\53\24\0\1\53\115\0\1\53\115\0"+ - "\1\53\40\0\1\20\1\233\3\234\1\233\1\234\1\0"+ - "\2\20\11\233\2\0\1\235\7\233\1\235\1\0\2\235"+ - "\2\0\1\236\4\235\1\0\3\235\2\0\2\234\1\235"+ - "\23\233\1\235\1\233\2\235\1\233\2\0\1\235\1\0"+ - "\1\20\1\233\3\20\1\233\1\20\1\0\2\20\11\233"+ - "\3\0\7\233\21\0\1\20\1\237\1\0\23\233\1\0"+ - "\1\233\2\0\1\233\4\0\1\20\6\21\1\0\2\20"+ - "\11\21\3\0\6\21\1\240\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\7\21\1\241\1\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\3\21\1\242\3\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\2\21\1\243\6\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\2\21"+ - "\1\244\6\21\3\0\7\21\21\0\2\20\1\0\20\21"+ - "\1\245\2\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\1\21\1\246\7\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\6\21\1\247\1\250"+ - "\1\21\3\0\7\21\21\0\2\20\1\0\21\21\1\251"+ - "\1\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0"+ - "\11\21\1\252\11\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\2\21\1\253"+ - "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\2\21\1\254"+ - "\1\255\5\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\21\21"+ - "\1\256\1\21\1\0\1\21\2\0\1\21\4\0\11\102"+ - "\1\0\11\102\1\0\62\102\1\0\6\102\23\257\1\0"+ - "\71\257\11\106\1\0\11\106\1\0\20\106\1\0\50\106"+ - "\11\110\1\0\11\110\1\0\70\110\1\0\11\112\1\0"+ - "\11\112\1\0\12\112\1\0\56\112\11\114\1\0\11\114"+ - "\1\0\23\114\1\0\45\114\11\116\1\0\11\116\1\0"+ - "\16\116\1\0\52\116\11\120\1\0\11\120\1\0\26\120"+ - "\1\0\42\120\11\122\1\0\11\122\1\0\63\122\1\0"+ - "\5\122\23\260\1\0\71\260\11\126\1\0\11\126\1\0"+ - "\67\126\1\0\1\126\11\131\1\0\11\131\1\0\102\131"+ - "\1\0\11\131\1\0\44\131\1\261\35\131\1\0\11\131"+ - "\1\0\44\131\1\262\24\131\23\140\1\0\1\140\1\0"+ - "\67\140\16\0\1\263\76\0\2\20\3\22\1\20\1\22"+ - "\1\0\2\20\1\143\10\20\3\0\7\20\21\0\2\20"+ - "\1\0\23\20\1\0\1\20\2\0\1\20\4\0\2\20"+ - "\3\264\1\20\1\264\1\0\13\20\3\0\7\20\1\265"+ - "\5\0\1\265\12\0\2\20\1\0\23\20\1\0\1\20"+ - "\2\0\1\20\4\0\3\20\2\145\1\20\1\145\1\0"+ - "\2\20\1\146\10\20\3\0\7\20\21\0\2\20\1\0"+ - "\23\20\1\0\1\20\2\0\1\20\4\0\3\20\2\266"+ - "\2\20\1\0\13\20\3\0\7\20\21\0\2\20\1\0"+ - "\23\20\1\0\1\20\2\0\1\20\4\0\2\20\3\267"+ - "\1\20\1\267\1\0\13\20\3\0\7\20\21\0\2\20"+ - "\1\0\23\20\1\0\1\20\2\0\1\20\4\0\2\20"+ - "\5\270\1\0\6\20\3\270\2\20\3\0\1\270\3\20"+ - "\1\270\1\20\1\270\21\0\2\20\1\0\2\270\1\20"+ - "\1\270\2\20\1\270\6\20\1\270\5\20\1\0\1\20"+ - "\2\0\1\20\4\0\1\20\6\21\1\0\2\20\3\21"+ - "\1\271\2\21\1\272\2\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\10\21\1\273\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\4\21\1\274\4\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\1\21\1\275"+ - "\4\21\1\276\1\21\1\277\3\0\4\21\1\300\2\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\301\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\2\21"+ - "\1\302\1\303\3\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\1\21\1\304\5\21\1\305\1\21\3\0\4\21\1\306"+ - "\2\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\10\21\1\307"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\10\21"+ - "\1\310\3\0\4\21\1\212\2\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\4\21\1\311\4\21\3\0\2\21\1\312"+ - "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\6\21\1\313"+ - "\2\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\7\21\1\314\1\21\3\0\2\21\1\313\4\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\2\21\1\315\6\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\1\316\10\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21"+ - "\1\317\7\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\2\21\1\320\4\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\4\21\1\244\2\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\16\21\1\321\4\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\6\21"+ - "\1\303\2\21\3\0\7\21\21\0\2\20\1\0\11\21"+ - "\1\322\3\21\1\323\5\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\6\21\1\324\2\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\1\325\6\21\21\0\2\20\1\0\20\21\1\326"+ - "\2\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\7\21\1\327\1\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\4\21\1\330\4\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\10\21\1\331"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\2\21"+ - "\1\332\4\21\1\333\1\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\22\0\1\334"+ - "\76\0\1\20\6\21\1\0\2\20\4\21\1\335\4\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\1\21\1\336\5\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\3\21\1\337\3\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\1\21\1\340\7\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\11\21\1\341\11\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\3\21"+ - "\1\342\5\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\4\21\1\343\4\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\5\21\1\344\1\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\7\21\1\212\1\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21"+ - "\1\244\7\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\5\21\1\345\3\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\7\21\21\0\2\20"+ - "\1\0\1\212\22\21\1\0\1\21\2\0\1\21\5\0"+ - "\6\220\3\0\11\220\3\0\7\220\24\0\23\220\1\0"+ - "\1\220\2\0\1\220\44\0\1\53\115\0\1\223\2\0"+ - "\1\224\2\0\1\225\1\0\1\226\37\0\1\227\1\230"+ - "\54\0\1\53\66\0\1\346\7\0\1\347\51\0\1\350"+ - "\1\351\3\0\1\352\1\0\1\20\6\233\1\0\2\20"+ - "\11\233\3\0\7\233\21\0\2\20\1\0\23\233\1\0"+ - "\1\233\2\0\1\233\7\0\1\235\14\0\2\235\6\0"+ - "\1\235\1\0\1\235\31\0\2\235\6\0\1\235\4\0"+ - "\1\235\1\0\1\235\11\0\1\20\1\233\3\20\1\233"+ - "\1\20\1\0\2\20\11\233\3\0\7\233\21\0\2\20"+ - "\1\0\23\233\1\0\1\233\2\0\1\233\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\7\21\21\0\2\20"+ - "\1\0\2\21\1\353\20\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\11\21\1\354\11\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21"+ - "\1\355\7\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\2\21\1\356\6\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\4\21\1\357\4\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\2\21\1\360\6\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21"+ - "\1\361\5\21\1\362\1\363\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\6\21\1\364\2\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\11\21\1\365\11\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\4\21\1\366\2\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\4\21\1\367\4\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\2\21\1\370\4\21"+ - "\21\0\2\20\1\0\11\21\1\311\11\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21"+ - "\1\371\7\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\4\21\1\274\4\21\3\0\2\21\1\372\4\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\11\131\1\0\11\131\1\0\40\131\1\373\41\131"+ - "\1\0\11\131\1\0\45\131\1\373\23\131\31\0\1\374"+ - "\63\0\2\20\3\264\1\20\1\264\1\0\2\20\1\375"+ - "\10\20\3\0\7\20\21\0\2\20\1\0\23\20\1\0"+ - "\1\20\2\0\1\20\6\0\3\376\1\0\1\376\106\0"+ - "\3\20\2\266\2\20\1\0\2\20\1\377\10\20\3\0"+ - "\7\20\21\0\2\20\1\0\23\20\1\0\1\20\2\0"+ - "\1\20\4\0\2\20\3\267\1\20\1\267\1\0\2\20"+ - "\1\u0100\10\20\3\0\7\20\21\0\2\20\1\0\23\20"+ - "\1\0\1\20\2\0\1\20\4\0\1\20\1\u0101\5\270"+ - "\1\0\2\20\4\u0101\3\270\2\u0101\3\0\1\270\3\u0101"+ - "\1\270\1\u0101\1\270\21\0\2\20\1\0\2\270\1\u0101"+ - "\1\270\2\u0101\1\270\6\u0101\1\270\5\u0101\1\0\1\u0101"+ - "\2\0\1\u0101\4\0\1\20\6\21\1\0\2\20\4\21"+ - "\1\u0102\4\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\15\21"+ - "\1\u0103\2\21\1\u0104\2\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\1\21\1\u0104\7\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\3\21\1\212\3\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\2\21\1\u0105\1\u0106\5\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\4\21\1\u0107"+ - "\2\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\11\21\3\0"+ - "\7\21\21\0\2\20\1\0\15\21\1\u0108\5\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\11\21\3\0\7\21\21\0\2\20\1\0\11\21\1\212"+ - "\11\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\3\21\1\u0109\5\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\10\21\1\u010a\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\4\21"+ - "\1\u0104\2\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\2\21"+ - "\1\u010b\6\21\3\0\2\21\1\214\4\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\4\21\1\364\4\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\4\21\1\u010c\4\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\4\21"+ - "\1\212\4\21\3\0\2\21\1\u010c\4\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\3\21\1\u010d\5\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\15\21\1\u0104\5\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21"+ - "\1\325\7\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\7\21\1\u0104\1\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\10\21\1\271\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\7\21\21\0"+ - "\2\20\1\0\14\21\1\u0104\1\21\1\354\4\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\4\21\1\u010e\4\21\3\0\7\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0"+ - "\11\21\1\u010f\11\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\6\21\1\u0110\2\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\11\21\3\0"+ - "\1\u0111\6\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\7\21\21\0\2\20\1\0\20\21\1\u0104\2\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\6\21\1\u0112\2\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\3\21\1\303\3\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\7\0\1\u0113\11\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\4\21"+ - "\1\u0114\4\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\4\21\1\u0115\1\212\3\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\4\21\1\322\4\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\1\21\1\u0116"+ - "\7\21\3\0\7\21\21\0\2\20\1\0\15\21\1\u0117"+ - "\5\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\2\21\1\u0118\4\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\2\21\1\273"+ - "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\33\0\1\u0119\65\0\1\20\6\21\1\0\2\20"+ - "\6\21\1\u011a\2\21\3\0\7\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\2\21\1\274\4\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\4\21\1\360"+ - "\2\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\10\21\1\u0104"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\1\323\6\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\11\21\3\0\1\325\6\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\2\21\1\u011b\6\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\1\21\1\212\7\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\2\21"+ - "\1\u011c\4\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\30\0\1\346\61\0\1\350\1\351\3\0"+ - "\1\352\71\0\1\u011d\60\0\1\u011e\114\0\1\u011f\114\0"+ - "\1\u0120\60\0\1\20\6\21\1\0\2\20\11\21\3\0"+ - "\7\21\21\0\2\20\1\0\4\21\1\u0121\16\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\6\21\1\273\2\21\3\0\7\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\4\21\1\u0122\4\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\6\21\1\u0123\2\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\11\21\3\0"+ - "\3\21\1\u0104\3\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\11\21\3\0\2\21\1\u0124\4\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0"+ - "\15\21\1\u0125\5\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\7\21\1\u0126\1\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\4\21\1\212"+ - "\4\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\10\21\1\u0110\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\16\21"+ - "\1\u0127\1\21\1\325\2\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\3\21\1\372\5\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\7\21"+ - "\1\u0128\1\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\3\21\1\u0129\3\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\10\21\1\u0104\3\0\7\21\21\0"+ - "\2\20\1\0\15\21\1\u0104\5\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\7\21\1\363"+ - "\1\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\36\0\1\u012a\64\0\3\376\1\0"+ - "\1\376\3\0\1\u012b\102\0\1\20\6\21\1\0\2\20"+ - "\4\21\1\u012c\4\21\3\0\7\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0"+ - "\17\21\1\212\3\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\2\21\1\274\6\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\7\21\1\u012d"+ - "\1\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\3\21\1\363\5\21\3\0\7\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\2\21\1\u012e\4\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\4\21\1\u0104\4\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\6\21\1\u012f"+ - "\2\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\5\21\1\212\3\21\3\0\7\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\2\21\1\363\6\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\5\21\1\333"+ - "\1\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\7\21\1\u0130"+ - "\1\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\10\21\1\212\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\4\21\1\u0131\2\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\7\21\1\u0132\1\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\2\21\1\212\6\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\7\21\21\0\2\20\1\0\15\21\1\273\5\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\4\21\1\u0133\4\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\6\21\1\u0134\2\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\3\21"+ - "\1\u0135\3\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\34\0\1\u0136\64\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\14\21"+ - "\1\212\6\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\6\21\1\u0137\2\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\3\21"+ - "\1\u0138\3\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\70\0\1\u0139\4\0\1\u013a\113\0\1\u013b"+ - "\114\0\1\u013c\114\0\1\u013d\24\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\5\21"+ - "\1\212\15\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\1\21\1\u0126\5\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\17\21\1\u0104\3\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\3\21\1\u013e\3\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\21\21"+ - "\1\u0104\1\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\4\21\1\u013f\4\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\20\21\1\325\2\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\4\21\1\212\2\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\1\21\1\u0140\7\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\1\u0141\10\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\11\21\3\0\2\21\1\u0142"+ - "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\2\21\1\u010a"+ - "\6\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0"+ - "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20"+ - "\11\21\3\0\7\21\21\0\2\20\1\0\15\21\1\u0103"+ - "\5\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0"+ - "\11\21\1\u0143\11\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\6\21\1\u0104\2\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0\1\20\6\21\1\0\2\20\1\u0144\10\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\7\21\21\0\2\20\1\0\16\21\1\u0104\4\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\7\21\1\313\1\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\1\21\1\u0145\7\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\35\0\1\u0146\63\0\1\20\6\21\1\0\2\20\1\21"+ - "\1\u0147\7\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\4\21\1\u0128\4\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\70\0\1\u0148"+ - "\4\0\1\u0149\107\0\1\u014a\4\0\1\u014b\107\0\1\u014c"+ - "\4\0\1\u014d\23\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\1\21\1\u0104\5\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\2\21\1\u0104\6\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\5\21\1\u0104\3\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\13\21\1\u014e\7\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21"+ - "\3\0\3\21\1\u014f\3\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\6\21\1\303\2\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\11\21\3\0\7\21\21\0\2\20"+ - "\1\0\13\21\1\u0150\7\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\11\21\1\u0151\11\21\1\0\1\21"+ - "\2\0\1\21\112\0\1\u0139\114\0\1\u013a\115\0\1\u0152"+ - "\114\0\1\u0153\120\0\1\u0139\114\0\1\u013a\1\0\1\20"+ - "\6\21\1\0\2\20\6\21\1\u013f\2\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\4\21\1\u0154\4\21"+ - "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\6\21"+ - "\1\u0155\2\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\2\21\1\u0156\6\21\3\0\7\21\21\0\2\20"+ - "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20"+ - "\6\21\1\0\2\20\2\21\1\u0157\6\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21"+ - "\21\0\2\20\1\0\23\21\1\u0113\1\21\2\0\1\21"+ - "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\2\21"+ - "\1\u0158\4\21\21\0\2\20\1\0\23\21\1\0\1\21"+ - "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\6\21"+ - "\1\u0159\2\21\3\0\7\21\21\0\2\20\1\0\23\21"+ - "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0"+ - "\2\20\11\21\3\0\1\u015a\6\21\21\0\2\20\1\0"+ - "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21"+ - "\1\0\2\20\7\21\1\u015b\1\21\3\0\7\21\21\0"+ - "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0"+ - "\1\20\6\21\1\0\2\20\4\21\1\340\4\21\3\0"+ - "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0"+ - "\1\21\4\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[22638]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\17\0\4\1\1\11\11\1\1\11\11\1\1\11\2\1"+ - "\1\11\23\1\3\11\2\1\2\11\1\1\1\11\1\1"+ - "\1\11\1\1\1\11\1\1\1\11\1\1\1\11\1\1"+ - "\1\11\2\1\2\11\1\1\2\11\1\1\1\11\1\1"+ - "\2\11\1\1\1\11\1\1\1\11\40\1\1\0\17\1"+ - "\1\0\6\11\4\1\1\11\1\0\20\1\2\11\2\1"+ - "\1\0\50\1\1\0\11\1\5\0\21\1\1\0\26\1"+ - "\1\11\5\1\1\0\3\1\4\0\11\1\1\11\1\0"+ - "\12\1\1\0\2\1\2\11\3\0\10\1\1\11\1\1"+ - "\6\0\4\1\2\11\10\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[347]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int HEREDOC_EOF_SINGLE_QUOTED = 11; + public static final int DOCCOMMENT = 14; + public static final int HEREDOC_EOT_SINGLE_QUOTED = 13; + public static final int HEREDOC_EOT_UNQUOTED = 12; + public static final int STRING_Q_SLASH = 5; + public static final int STRING_Q_BANG = 2; + public static final int STRING_Q_LT = 7; + public static final int STRING = 1; + public static final int BACKTICKS = 9; + public static final int YYINITIAL = 0; + public static final int HEREDOC_EOF_UNQUOTED = 10; + public static final int STRING_Q_CURLY_BRACE = 3; + public static final int STRING_Q_PAREN = 4; + public static final int HEREDOC_EOF_DOUBLE_QUOTED = 11; + public static final int CHAR_LITERAL = 8; + public static final int HEREDOC_EOT_DOUBLE_QUOTED = 13; + public static final int STRING_Q_SQUARE_BRACKET = 6; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\24\1\23\1\0\1\24\1\7\22\0\1\24\1\44\1\106" + + "\1\10\1\56\1\50\1\53\1\107\1\111\1\36\1\46\1\35\1\60" + "\1\43\1\40\1\47\1\3\1\4\6\6\2\2\1\37\1\60\1\51" + + "\1\25\1\52\1\104\1\57\1\67\1\62\1\5\1\61\1\34\1\64" + "\1\63\1\1\1\65\2\1\1\1\1\1\1\66\1\70\1\1\1\110" + + "\1\1\1\73\1\71\1\1\1\1\1\110\3\1\1\41\1\11\1\42" + "\1\55\1\12\1\113\1\20\1\26\1\76\1\32\1\16\1\17\1\27" + + "\1\102\1\30\1\1\1\75\1\21\1\77\1\31\1\72\1\101\1\105" + "\1\14\1\22\1\13\1\15\1\74\1\103\1\33\1\100\1\1\1\112" + + "\1\54\1\114\1\45\uff81\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 = "\17\0\1\1\1\2\2\3\1\2\1\4\10\2\1\5" + "\1\6\1\7\6\2\1\7\1\10\1\2\10\7\2\1" + + "\11\2\1\11\1\2\1\12\1\13\1\14\1\15\1\16" + "\1\17\1\20\1\15\1\21\1\15\1\22\1\15\1\23" + + "\1\15\1\24\1\15\1\25\1\15\1\26\1\15\1\27" + "\1\30\1\31\1\15\1\32\1\33\1\15\1\34\1\15" + + "\1\35\1\36\1\15\1\37\1\15\1\40\1\15\1\1" + "\1\41\1\3\4\1\30\2\1\0\7\2\1\42\5\2" + "\1\43\1\7\1\0\1\44\1\45\1\46\1\47\1\50" + + "\1\51\2\7\3\52\1\0\1\1\4\2\1\7\12\2" + "\1\16\1\27\2\15\1\0\2\41\2\3\1\53\24\2" + "\1\42\7\2\1\11\6\2\1\0\10\2\1\42\5\0" + + "\20\2\1\54\1\0\1\1\1\41\3\1\1\55\1\2" + "\1\11\16\2\1\11\5\2\1\0\3\2\4\0\11\2" + "\1\56\1\0\12\2\1\0\2\2\1\57\1\60\3\0" + + "\2\2\1\11\5\2\1\61\1\2\6\0\4\2\1\62" + "\1\63\1\11\7\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[347]; + 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\115\0\232\0\347\0\u0134\0\u0181\0\u01ce\0\u021b" + + "\0\u0268\0\u02b5\0\u0302\0\u034f\0\u039c\0\u03e9\0\u0436\0\u0483" + + "\0\u04d0\0\u051d\0\u056a\0\u05b7\0\u0604\0\u0651\0\u069e\0\u06eb" + + "\0\u0738\0\u0785\0\u07d2\0\u081f\0\u086c\0\u05b7\0\u08b9\0\u0906" + + "\0\u0953\0\u09a0\0\u09ed\0\u0a3a\0\u0a87\0\u0ad4\0\u0b21\0\u05b7" + + "\0\u0b6e\0\u0bbb\0\u05b7\0\u0c08\0\u0c55\0\u0ca2\0\u0cef\0\u0d3c" + + "\0\u0d89\0\u0dd6\0\u0e23\0\u0e70\0\u0ebd\0\u0f0a\0\u0f57\0\u0fa4" + + "\0\u0ff1\0\u103e\0\u108b\0\u10d8\0\u1125\0\u1172\0\u05b7\0\u05b7" + + "\0\u05b7\0\u11bf\0\u120c\0\u05b7\0\u05b7\0\u1259\0\u05b7\0\u12a6" + + "\0\u05b7\0\u12f3\0\u05b7\0\u1340\0\u05b7\0\u138d\0\u05b7\0\u13da" + + "\0\u05b7\0\u1427\0\u1474\0\u05b7\0\u05b7\0\u14c1\0\u05b7\0\u05b7" + + "\0\u150e\0\u05b7\0\u155b\0\u05b7\0\u05b7\0\u15a8\0\u05b7\0\u15f5" + + "\0\u05b7\0\u1642\0\u168f\0\u16dc\0\u1729\0\u1729\0\u1776\0\u17c3" + + "\0\u1810\0\u185d\0\u18aa\0\u18f7\0\u1944\0\u1991\0\u19de\0\u1a2b" + + "\0\u1a78\0\u1ac5\0\u1b12\0\u1b5f\0\u1bac\0\u1bf9\0\u1c46\0\u1c93" + + "\0\u1ce0\0\u1d2d\0\u1d7a\0\u1dc7\0\u1e14\0\u1e61\0\u1eae\0\u1efb" + + "\0\u1f48\0\u1f95\0\u1fe2\0\u202f\0\u207c\0\u20c9\0\u2116\0\u2163" + + "\0\u21b0\0\u04d0\0\u21fd\0\u224a\0\u2297\0\u22e4\0\u2331\0\u237e" + + "\0\u23cb\0\u2418\0\u05b7\0\u05b7\0\u05b7\0\u05b7\0\u05b7\0\u05b7" + + "\0\u2465\0\u24b2\0\u24ff\0\u0483\0\u05b7\0\u254c\0\u2599\0\u25e6" + + "\0\u2633\0\u2680\0\u26cd\0\u04d0\0\u271a\0\u2767\0\u27b4\0\u2801" + + "\0\u284e\0\u289b\0\u28e8\0\u2935\0\u2982\0\u29cf\0\u05b7\0\u05b7" + + "\0\u2a1c\0\u2a69\0\u2ab6\0\u2b03\0\u2b50\0\u2b9d\0\u2bea\0\u2c37" + + "\0\u2c84\0\u2cd1\0\u2d1e\0\u2d6b\0\u2db8\0\u2e05\0\u2e52\0\u2e9f" + + "\0\u2eec\0\u2f39\0\u2f86\0\u2fd3\0\u3020\0\u306d\0\u30ba\0\u3107" + + "\0\u3154\0\u31a1\0\u31ee\0\u323b\0\u3288\0\u32d5\0\u3322\0\u336f" + + "\0\u33bc\0\u3409\0\u3456\0\u34a3\0\u34f0\0\u353d\0\u358a\0\u35d7" + + "\0\u3624\0\u3671\0\u36be\0\u370b\0\u3758\0\u37a5\0\u37f2\0\u383f" + + "\0\u388c\0\u38d9\0\u3926\0\u3973\0\u39c0\0\u3a0d\0\u3a5a\0\u3aa7" + + "\0\u3af4\0\u3b41\0\u3b8e\0\u3bdb\0\u3c28\0\u3c75\0\u3cc2\0\u3d0f" + + "\0\u3d5c\0\u3da9\0\u3df6\0\u3e43\0\u3e90\0\u3edd\0\u3f2a\0\u3f77" + + "\0\u3fc4\0\u4011\0\u150e\0\u405e\0\u2b03\0\u40ab\0\u2b9d\0\u2bea" + + "\0\u2c37\0\u04d0\0\u40f8\0\u04d0\0\u4145\0\u4192\0\u41df\0\u422c" + + "\0\u4279\0\u42c6\0\u4313\0\u4360\0\u43ad\0\u43fa\0\u4447\0\u4494" + + "\0\u44e1\0\u452e\0\u05b7\0\u457b\0\u45c8\0\u4615\0\u4662\0\u46af" + + "\0\u46fc\0\u4749\0\u4796\0\u47e3\0\u4830\0\u487d\0\u48ca\0\u4917" + + "\0\u4964\0\u49b1\0\u49fe\0\u4a4b\0\u4a98\0\u4ae5\0\u4b32\0\u4b7f" + + "\0\u4bcc\0\u05b7\0\u40ab\0\u4c19\0\u4c66\0\u4cb3\0\u4d00\0\u4d4d" + + "\0\u4d9a\0\u4de7\0\u4e34\0\u4e81\0\u4ece\0\u4f1b\0\u4f68\0\u4fb5" + + "\0\u05b7\0\u05b7\0\u5002\0\u504f\0\u509c\0\u50e9\0\u5136\0\u5183" + + "\0\u51d0\0\u521d\0\u526a\0\u52b7\0\u5183\0\u05b7\0\u5304\0\u5351" + + "\0\u539e\0\u53eb\0\u5438\0\u5485\0\u54d2\0\u551f\0\u556c\0\u55b9" + + "\0\u5606\0\u05b7\0\u05b7\0\u383f\0\u5653\0\u56a0\0\u56ed\0\u573a" + "\0\u5787\0\u57d4\0\u5821"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[347]; + 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 = "\1\20\1\21\1\22\1\23\1\22\1\21\1\22\1\24" + "\1\25\1\20\1\21\1\26\1\27\1\30\1\31\1\32" + + "\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42" + "\1\43\1\44\1\45\1\21\1\46\1\47\1\50\1\51" + + "\1\52\2\53\1\47\1\54\1\53\2\47\1\55\1\56" + "\1\57\1\60\1\61\1\53\1\62\1\63\1\24\1\21" + + "\1\64\1\21\1\65\1\66\1\21\1\67\2\21\1\70" + "\1\71\2\21\1\72\1\73\1\74\1\75\1\21\1\76" + + "\1\24\1\21\1\77\1\100\1\21\2\50\1\101\1\50" + "\11\102\1\103\11\102\1\104\62\102\1\105\6\102\11\106" + + "\1\103\11\106\1\107\20\106\1\105\50\106\11\110\1\103" + "\11\110\1\111\70\110\1\105\11\112\1\103\11\112\1\113" + + "\12\112\1\105\56\112\11\114\1\103\11\114\1\115\23\114" + "\1\105\45\114\11\116\1\103\11\116\1\117\16\116\1\105" + + "\52\116\11\120\1\103\11\120\1\121\26\120\1\105\42\120" + "\11\122\1\123\11\122\1\124\63\122\1\125\5\122\11\126" + + "\1\103\11\126\1\127\67\126\1\130\1\126\11\131\1\103" + "\11\131\1\132\10\131\1\133\71\131\1\103\11\131\1\134" + + "\10\131\1\133\71\131\1\103\11\131\1\135\10\131\1\136" + "\71\131\1\103\11\131\1\137\10\131\1\136\60\131\23\140" + + "\1\141\1\140\1\142\67\140\7\20\1\0\13\20\3\0" + "\7\20\21\0\2\20\1\0\23\20\1\0\1\20\2\0" + + "\1\20\4\0\1\20\6\21\1\0\2\20\11\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0\2\20\3\22\1\20\1\22\1\0\2\20" + + "\1\143\3\20\1\144\4\20\3\0\6\20\1\144\21\0" + "\2\20\1\0\23\20\1\0\1\20\2\0\1\20\4\0" + + "\3\20\2\145\1\20\1\145\1\0\2\20\1\146\10\20" + "\3\0\1\147\3\20\1\150\1\151\1\20\21\0\2\20" + + "\1\0\23\20\1\0\1\20\2\0\1\20\121\0\23\25" + "\1\0\71\25\1\20\6\21\1\0\2\20\2\21\1\152" + + "\1\21\1\153\4\21\3\0\7\21\21\0\2\20\1\0" + "\21\21\1\154\1\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\4\21\1\155\1\21\1\156" + "\2\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\11\21\3\0\3\21\1\157\3\21\21\0\2\20\1\0" + + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\7\21\1\160\1\21\3\0\3\21\1\161" + + "\1\21\1\162\1\21\21\0\2\20\1\0\13\21\1\163" + "\7\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\6\21\1\164\2\21\3\0\7\21\21\0" + "\2\20\1\0\11\21\1\165\11\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\1\21\1\166" + "\1\21\1\167\3\21\1\170\1\21\3\0\3\21\1\171" + + "\3\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0\1\20\6\21\1\0\2\20\6\21\1\172" + + "\2\21\3\0\7\21\21\0\2\20\1\0\11\21\1\173" + "\11\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\2\21\1\174\1\175\1\176\2\21\1\177" + "\1\21\3\0\7\21\21\0\2\20\1\0\17\21\1\200" + + "\1\201\2\21\1\0\1\21\2\0\1\21\30\0\1\37" + "\115\0\1\47\1\202\16\0\1\53\47\0\1\20\6\21" + + "\1\0\2\20\2\21\1\203\1\21\1\204\4\21\3\0" + "\2\21\1\205\4\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\4\21\1\206\2\21\1\207\1\210\3\0\7\21\21\0" + + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\1\21\1\211\3\21\1\212" + + "\3\21\3\0\3\21\1\212\3\21\21\0\2\20\1\0" + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\4\21\1\213\4\21\3\0\2\21\1\214" + "\4\21\21\0\2\20\1\0\11\21\1\215\11\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\4\21\1\216\4\21\3\0\7\21\21\0\2\20\1\0" + + "\11\21\1\212\11\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\11\21\3\0\7\21\21\0" + + "\2\20\1\0\5\21\1\217\15\21\1\0\1\21\2\0" + "\1\21\31\0\1\53\70\0\1\220\3\0\1\220\4\0" + + "\11\220\3\0\7\220\2\0\1\53\21\0\23\220\1\0" + "\1\220\2\0\1\220\44\0\1\221\101\0\1\53\17\0" + + "\1\53\74\0\1\53\5\0\1\222\5\0\1\223\2\0" + "\1\224\2\0\1\225\1\0\1\226\31\0\1\222\1\0" + + "\1\222\2\0\1\222\1\227\1\230\27\0\1\231\23\0" + "\1\232\70\0\1\53\24\0\1\53\115\0\1\53\115\0" + + "\1\53\40\0\1\20\1\233\3\234\1\233\1\234\1\0" + "\2\20\11\233\2\0\1\235\7\233\1\235\1\0\2\235" + + "\2\0\1\236\4\235\1\0\3\235\2\0\2\234\1\235" + "\23\233\1\235\1\233\2\235\1\233\2\0\1\235\1\0" + + "\1\20\1\233\3\20\1\233\1\20\1\0\2\20\11\233" + "\3\0\7\233\21\0\1\20\1\237\1\0\23\233\1\0" + + "\1\233\2\0\1\233\4\0\1\20\6\21\1\0\2\20" + "\11\21\3\0\6\21\1\240\21\0\2\20\1\0\23\21" + + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + "\2\20\7\21\1\241\1\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\11\21\3\0\3\21\1\242\3\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\2\21\1\243\6\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\2\21" + + "\1\244\6\21\3\0\7\21\21\0\2\20\1\0\20\21" + "\1\245\2\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\1\21\1\246\7\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\6\21\1\247\1\250" + "\1\21\3\0\7\21\21\0\2\20\1\0\21\21\1\251" + + "\1\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0" + + "\11\21\1\252\11\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\11\21\3\0\2\21\1\253" + + "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0\1\20\6\21\1\0\2\20\2\21\1\254" + + "\1\255\5\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\21\21" + "\1\256\1\21\1\0\1\21\2\0\1\21\4\0\11\102" + + "\1\0\11\102\1\0\62\102\1\0\6\102\23\257\1\0" + "\71\257\11\106\1\0\11\106\1\0\20\106\1\0\50\106" + + "\11\110\1\0\11\110\1\0\70\110\1\0\11\112\1\0" + "\11\112\1\0\12\112\1\0\56\112\11\114\1\0\11\114" + + "\1\0\23\114\1\0\45\114\11\116\1\0\11\116\1\0" + "\16\116\1\0\52\116\11\120\1\0\11\120\1\0\26\120" + + "\1\0\42\120\11\122\1\0\11\122\1\0\63\122\1\0" + "\5\122\23\260\1\0\71\260\11\126\1\0\11\126\1\0" + + "\67\126\1\0\1\126\11\131\1\0\11\131\1\0\102\131" + "\1\0\11\131\1\0\44\131\1\261\35\131\1\0\11\131" + + "\1\0\44\131\1\262\24\131\23\140\1\0\1\140\1\0" + "\67\140\16\0\1\263\76\0\2\20\3\22\1\20\1\22" + + "\1\0\2\20\1\143\10\20\3\0\7\20\21\0\2\20" + "\1\0\23\20\1\0\1\20\2\0\1\20\4\0\2\20" + + "\3\264\1\20\1\264\1\0\13\20\3\0\7\20\1\265" + "\5\0\1\265\12\0\2\20\1\0\23\20\1\0\1\20" + + "\2\0\1\20\4\0\3\20\2\145\1\20\1\145\1\0" + "\2\20\1\146\10\20\3\0\7\20\21\0\2\20\1\0" + + "\23\20\1\0\1\20\2\0\1\20\4\0\3\20\2\266" + "\2\20\1\0\13\20\3\0\7\20\21\0\2\20\1\0" + + "\23\20\1\0\1\20\2\0\1\20\4\0\2\20\3\267" + "\1\20\1\267\1\0\13\20\3\0\7\20\21\0\2\20" + + "\1\0\23\20\1\0\1\20\2\0\1\20\4\0\2\20" + "\5\270\1\0\6\20\3\270\2\20\3\0\1\270\3\20" + + "\1\270\1\20\1\270\21\0\2\20\1\0\2\270\1\20" + "\1\270\2\20\1\270\6\20\1\270\5\20\1\0\1\20" + + "\2\0\1\20\4\0\1\20\6\21\1\0\2\20\3\21" + "\1\271\2\21\1\272\2\21\3\0\7\21\21\0\2\20" + + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + "\6\21\1\0\2\20\10\21\1\273\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\4\21\1\274\4\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\1\21\1\275" + "\4\21\1\276\1\21\1\277\3\0\4\21\1\300\2\21" + + "\21\0\2\20\1\0\23\21\1\0\1\301\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\2\21" + + "\1\302\1\303\3\21\21\0\2\20\1\0\23\21\1\0" + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + + "\1\21\1\304\5\21\1\305\1\21\3\0\4\21\1\306" + "\2\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\10\21\1\307" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\10\21" + "\1\310\3\0\4\21\1\212\2\21\21\0\2\20\1\0" + + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\4\21\1\311\4\21\3\0\2\21\1\312" + + "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0\1\20\6\21\1\0\2\20\6\21\1\313" + + "\2\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + + "\7\21\1\314\1\21\3\0\2\21\1\313\4\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\2\21\1\315\6\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\1\316\10\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21" + "\1\317\7\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\2\21\1\320\4\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\11\21\3\0\4\21\1\244\2\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + "\21\0\2\20\1\0\16\21\1\321\4\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\6\21" + "\1\303\2\21\3\0\7\21\21\0\2\20\1\0\11\21" + + "\1\322\3\21\1\323\5\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\6\21\1\324\2\21" + + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + + "\3\0\1\325\6\21\21\0\2\20\1\0\20\21\1\326" + "\2\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\7\21\1\327\1\21\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\4\21\1\330\4\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\10\21\1\331" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\2\21" + "\1\332\4\21\1\333\1\21\3\0\7\21\21\0\2\20" + + "\1\0\23\21\1\0\1\21\2\0\1\21\22\0\1\334" + "\76\0\1\20\6\21\1\0\2\20\4\21\1\335\4\21" + + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + + "\3\0\1\21\1\336\5\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\3\21\1\337\3\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\1\21\1\340\7\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + "\21\0\2\20\1\0\11\21\1\341\11\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\3\21" + "\1\342\5\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\4\21\1\343\4\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\11\21\3\0\5\21\1\344\1\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\7\21\1\212\1\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21" + + "\1\244\7\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\5\21\1\345\3\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\11\21\3\0\7\21\21\0\2\20" + "\1\0\1\212\22\21\1\0\1\21\2\0\1\21\5\0" + + "\6\220\3\0\11\220\3\0\7\220\24\0\23\220\1\0" + "\1\220\2\0\1\220\44\0\1\53\115\0\1\223\2\0" + + "\1\224\2\0\1\225\1\0\1\226\37\0\1\227\1\230" + "\54\0\1\53\66\0\1\346\7\0\1\347\51\0\1\350" + + "\1\351\3\0\1\352\1\0\1\20\6\233\1\0\2\20" + "\11\233\3\0\7\233\21\0\2\20\1\0\23\233\1\0" + + "\1\233\2\0\1\233\7\0\1\235\14\0\2\235\6\0" + "\1\235\1\0\1\235\31\0\2\235\6\0\1\235\4\0" + + "\1\235\1\0\1\235\11\0\1\20\1\233\3\20\1\233" + "\1\20\1\0\2\20\11\233\3\0\7\233\21\0\2\20" + + "\1\0\23\233\1\0\1\233\2\0\1\233\4\0\1\20" + "\6\21\1\0\2\20\11\21\3\0\7\21\21\0\2\20" + + "\1\0\2\21\1\353\20\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + + "\21\0\2\20\1\0\11\21\1\354\11\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21" + + "\1\355\7\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\2\21\1\356\6\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\4\21\1\357\4\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\2\21\1\360\6\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21" + + "\1\361\5\21\1\362\1\363\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\6\21\1\364\2\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + "\21\0\2\20\1\0\11\21\1\365\11\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + "\3\0\4\21\1\366\2\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\4\21\1\367\4\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\11\21\3\0\2\21\1\370\4\21" + "\21\0\2\20\1\0\11\21\1\311\11\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21" + "\1\371\7\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\4\21\1\274\4\21\3\0\2\21\1\372\4\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\11\131\1\0\11\131\1\0\40\131\1\373\41\131" + "\1\0\11\131\1\0\45\131\1\373\23\131\31\0\1\374" + + "\63\0\2\20\3\264\1\20\1\264\1\0\2\20\1\375" + "\10\20\3\0\7\20\21\0\2\20\1\0\23\20\1\0" + + "\1\20\2\0\1\20\6\0\3\376\1\0\1\376\106\0" + "\3\20\2\266\2\20\1\0\2\20\1\377\10\20\3\0" + + "\7\20\21\0\2\20\1\0\23\20\1\0\1\20\2\0" + "\1\20\4\0\2\20\3\267\1\20\1\267\1\0\2\20" + + "\1\u0100\10\20\3\0\7\20\21\0\2\20\1\0\23\20" + "\1\0\1\20\2\0\1\20\4\0\1\20\1\u0101\5\270" + + "\1\0\2\20\4\u0101\3\270\2\u0101\3\0\1\270\3\u0101" + "\1\270\1\u0101\1\270\21\0\2\20\1\0\2\270\1\u0101" + + "\1\270\2\u0101\1\270\6\u0101\1\270\5\u0101\1\0\1\u0101" + "\2\0\1\u0101\4\0\1\20\6\21\1\0\2\20\4\21" + + "\1\u0102\4\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\15\21" + "\1\u0103\2\21\1\u0104\2\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\1\21\1\u0104\7\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + "\3\0\3\21\1\212\3\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\2\21\1\u0105\1\u0106\5\21\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\11\21\3\0\4\21\1\u0107" + "\2\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\11\21\3\0" + "\7\21\21\0\2\20\1\0\15\21\1\u0108\5\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\11\21\3\0\7\21\21\0\2\20\1\0\11\21\1\212" + + "\11\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\3\21\1\u0109\5\21\3\0\7\21\21\0" + + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\10\21\1\u010a\3\0\7\21" + + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\4\21" + + "\1\u0104\2\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\2\21" + + "\1\u010b\6\21\3\0\2\21\1\214\4\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\4\21\1\364\4\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\4\21\1\u010c\4\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\4\21" + "\1\212\4\21\3\0\2\21\1\u010c\4\21\21\0\2\20" + + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + "\6\21\1\0\2\20\3\21\1\u010d\5\21\3\0\7\21" + + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + + "\21\0\2\20\1\0\15\21\1\u0104\5\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\1\21" + + "\1\325\7\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\7\21\1\u0104\1\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\10\21\1\271\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\11\21\3\0\7\21\21\0" + "\2\20\1\0\14\21\1\u0104\1\21\1\354\4\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\4\21\1\u010e\4\21\3\0\7\21\21\0\2\20\1\0" + + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0" + + "\11\21\1\u010f\11\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\6\21\1\u0110\2\21\3\0" + + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0\1\20\6\21\1\0\2\20\11\21\3\0" + + "\1\u0111\6\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + + "\3\0\7\21\21\0\2\20\1\0\20\21\1\u0104\2\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\6\21\1\u0112\2\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\11\21\3\0\3\21\1\303\3\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + "\7\0\1\u0113\11\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\4\21" + "\1\u0114\4\21\3\0\7\21\21\0\2\20\1\0\23\21" + + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + "\2\20\4\21\1\u0115\1\212\3\21\3\0\7\21\21\0" + + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\4\21\1\322\4\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\1\21\1\u0116" + "\7\21\3\0\7\21\21\0\2\20\1\0\15\21\1\u0117" + + "\5\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\11\21\3\0\2\21\1\u0118\4\21\21\0" + + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\11\21\3\0\2\21\1\273" + + "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\33\0\1\u0119\65\0\1\20\6\21\1\0\2\20" + + "\6\21\1\u011a\2\21\3\0\7\21\21\0\2\20\1\0" + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\11\21\3\0\2\21\1\274\4\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\11\21\3\0\4\21\1\360" + "\2\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\10\21\1\u0104" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + "\3\0\1\323\6\21\21\0\2\20\1\0\23\21\1\0" + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + + "\11\21\3\0\1\325\6\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\2\21\1\u011b\6\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\1\21\1\212\7\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\2\21" + "\1\u011c\4\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\30\0\1\346\61\0\1\350\1\351\3\0" + "\1\352\71\0\1\u011d\60\0\1\u011e\114\0\1\u011f\114\0" + + "\1\u0120\60\0\1\20\6\21\1\0\2\20\11\21\3\0" + "\7\21\21\0\2\20\1\0\4\21\1\u0121\16\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\6\21\1\273\2\21\3\0\7\21\21\0\2\20\1\0" + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\4\21\1\u0122\4\21\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\6\21\1\u0123\2\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\11\21\3\0" + "\3\21\1\u0104\3\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\11\21\3\0\2\21\1\u0124\4\21\21\0\2\20\1\0" + + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0" + + "\15\21\1\u0125\5\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\7\21\1\u0126\1\21\3\0" + + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0\1\20\6\21\1\0\2\20\4\21\1\212" + + "\4\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + + "\10\21\1\u0110\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\16\21" + "\1\u0127\1\21\1\325\2\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\3\21\1\372\5\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\7\21" + + "\1\u0128\1\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\3\21\1\u0129\3\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\10\21\1\u0104\3\0\7\21\21\0" + "\2\20\1\0\15\21\1\u0104\5\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\7\21\1\363" + "\1\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\36\0\1\u012a\64\0\3\376\1\0" + "\1\376\3\0\1\u012b\102\0\1\20\6\21\1\0\2\20" + + "\4\21\1\u012c\4\21\3\0\7\21\21\0\2\20\1\0" + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0" + "\17\21\1\212\3\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\2\21\1\274\6\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\7\21\1\u012d" + "\1\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\3\21\1\363\5\21\3\0\7\21\21\0\2\20\1\0" + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\11\21\3\0\2\21\1\u012e\4\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\4\21\1\u0104\4\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\6\21\1\u012f" + "\2\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\5\21\1\212\3\21\3\0\7\21\21\0\2\20\1\0" + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\2\21\1\363\6\21\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\11\21\3\0\5\21\1\333" + "\1\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\7\21\1\u0130" + "\1\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\10\21\1\212\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\4\21\1\u0131\2\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\7\21\1\u0132\1\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\2\21\1\212\6\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + "\3\0\7\21\21\0\2\20\1\0\15\21\1\273\5\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\4\21\1\u0133\4\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\6\21\1\u0134\2\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\3\21" + "\1\u0135\3\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\34\0\1\u0136\64\0\1\20\6\21\1\0" + "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\14\21" + + "\1\212\6\21\1\0\1\21\2\0\1\21\4\0\1\20" + "\6\21\1\0\2\20\6\21\1\u0137\2\21\3\0\7\21" + + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\3\21" + + "\1\u0138\3\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\70\0\1\u0139\4\0\1\u013a\113\0\1\u013b" + + "\114\0\1\u013c\114\0\1\u013d\24\0\1\20\6\21\1\0" + "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\5\21" + + "\1\212\15\21\1\0\1\21\2\0\1\21\4\0\1\20" + "\6\21\1\0\2\20\11\21\3\0\1\21\1\u0126\5\21" + + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + + "\21\0\2\20\1\0\17\21\1\u0104\3\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + + "\3\0\3\21\1\u013e\3\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\7\21\21\0\2\20\1\0\21\21" + "\1\u0104\1\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\4\21\1\u013f\4\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + "\21\0\2\20\1\0\20\21\1\325\2\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + "\3\0\4\21\1\212\2\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\1\21\1\u0140\7\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\1\u0141\10\21\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\11\21\3\0\2\21\1\u0142" + "\4\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + + "\1\21\4\0\1\20\6\21\1\0\2\20\2\21\1\u010a" + "\6\21\3\0\7\21\21\0\2\20\1\0\23\21\1\0" + + "\1\21\2\0\1\21\4\0\1\20\6\21\1\0\2\20" + "\11\21\3\0\7\21\21\0\2\20\1\0\15\21\1\u0103" + + "\5\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + "\1\0\2\20\11\21\3\0\7\21\21\0\2\20\1\0" + + "\11\21\1\u0143\11\21\1\0\1\21\2\0\1\21\4\0" + "\1\20\6\21\1\0\2\20\6\21\1\u0104\2\21\3\0" + + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0\1\20\6\21\1\0\2\20\1\u0144\10\21" + + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + + "\3\0\7\21\21\0\2\20\1\0\16\21\1\u0104\4\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\7\21\1\313\1\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\1\21\1\u0145\7\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\35\0\1\u0146\63\0\1\20\6\21\1\0\2\20\1\21" + "\1\u0147\7\21\3\0\7\21\21\0\2\20\1\0\23\21" + + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + "\2\20\4\21\1\u0128\4\21\3\0\7\21\21\0\2\20" + + "\1\0\23\21\1\0\1\21\2\0\1\21\70\0\1\u0148" + "\4\0\1\u0149\107\0\1\u014a\4\0\1\u014b\107\0\1\u014c" + + "\4\0\1\u014d\23\0\1\20\6\21\1\0\2\20\11\21" + "\3\0\1\21\1\u0104\5\21\21\0\2\20\1\0\23\21" + + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + "\2\20\2\21\1\u0104\6\21\3\0\7\21\21\0\2\20" + + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + "\6\21\1\0\2\20\5\21\1\u0104\3\21\3\0\7\21" + + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + + "\21\0\2\20\1\0\13\21\1\u014e\7\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\11\21" + + "\3\0\3\21\1\u014f\3\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\6\21\1\303\2\21\3\0\7\21\21\0\2\20" + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + + "\6\21\1\0\2\20\11\21\3\0\7\21\21\0\2\20" + "\1\0\13\21\1\u0150\7\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + "\21\0\2\20\1\0\11\21\1\u0151\11\21\1\0\1\21" + + "\2\0\1\21\112\0\1\u0139\114\0\1\u013a\115\0\1\u0152" + "\114\0\1\u0153\120\0\1\u0139\114\0\1\u013a\1\0\1\20" + + "\6\21\1\0\2\20\6\21\1\u013f\2\21\3\0\7\21" + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + + "\4\0\1\20\6\21\1\0\2\20\4\21\1\u0154\4\21" + "\3\0\7\21\21\0\2\20\1\0\23\21\1\0\1\21" + + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\6\21" + "\1\u0155\2\21\3\0\7\21\21\0\2\20\1\0\23\21" + + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + "\2\20\2\21\1\u0156\6\21\3\0\7\21\21\0\2\20" + + "\1\0\23\21\1\0\1\21\2\0\1\21\4\0\1\20" + "\6\21\1\0\2\20\2\21\1\u0157\6\21\3\0\7\21" + + "\21\0\2\20\1\0\23\21\1\0\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\7\21" + + "\21\0\2\20\1\0\23\21\1\u0113\1\21\2\0\1\21" + "\4\0\1\20\6\21\1\0\2\20\11\21\3\0\2\21" + + "\1\u0158\4\21\21\0\2\20\1\0\23\21\1\0\1\21" + "\2\0\1\21\4\0\1\20\6\21\1\0\2\20\6\21" + + "\1\u0159\2\21\3\0\7\21\21\0\2\20\1\0\23\21" + "\1\0\1\21\2\0\1\21\4\0\1\20\6\21\1\0" + + "\2\20\11\21\3\0\1\u015a\6\21\21\0\2\20\1\0" + "\23\21\1\0\1\21\2\0\1\21\4\0\1\20\6\21" + + "\1\0\2\20\7\21\1\u015b\1\21\3\0\7\21\21\0" + "\2\20\1\0\23\21\1\0\1\21\2\0\1\21\4\0" + + "\1\20\6\21\1\0\2\20\4\21\1\340\4\21\3\0" + "\7\21\21\0\2\20\1\0\23\21\1\0\1\21\2\0" + "\1\21\4\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[22638]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\17\0\4\1\1\11\11\1\1\11\11\1\1\11\2\1" + "\1\11\23\1\3\11\2\1\2\11\1\1\1\11\1\1" + + "\1\11\1\1\1\11\1\1\1\11\1\1\1\11\1\1" + "\1\11\2\1\2\11\1\1\2\11\1\1\1\11\1\1" + "\2\11\1\1\1\11\1\1\1\11\40\1\1\0\17\1" + + "\1\0\6\11\4\1\1\11\1\0\20\1\2\11\2\1" + "\1\0\50\1\1\0\11\1\5\0\21\1\1\0\26\1" + "\1\11\5\1\1\0\3\1\4\0\11\1\1\11\1\0" + + "\12\1\1\0\2\1\2\11\3\0\10\1\1\11\1\1" + "\6\0\4\1\2\11\10\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[347]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specific to RubyTokenMaker; this signals that we are inside * an unquoted/double quoted/backtick EOF heredoc. */ - public static final int INTERNAL_HEREDOC_EOF_UNQUOTED = -1; - + public static final int INTERNAL_HEREDOC_EOF_UNQUOTED = -1; /** * Token type specific to RubyTokenMaker; this signals that we are inside * an single quoted EOF heredoc. */ - public static final int INTERNAL_HEREDOC_EOF_SINGLE_QUOTED = -2; - + public static final int INTERNAL_HEREDOC_EOF_SINGLE_QUOTED = -2; /** * Token type specific to RubyTokenMaker; this signals that we are inside * an double quoted EOF heredoc. */ - public static final int INTERNAL_HEREDOC_EOF_DOUBLE_QUOTED = -3; - + public static final int INTERNAL_HEREDOC_EOF_DOUBLE_QUOTED = -3; /** * Token type specific to RubyTokenMaker; this signals that we are inside * an unquoted/double quoted/backtick EOT heredoc. */ - public static final int INTERNAL_HEREDOC_EOT_UNQUOTED = -4; - + public static final int INTERNAL_HEREDOC_EOT_UNQUOTED = -4; /** * Token type specific to RubyTokenMaker; this signals that we are inside * an single quoted EOT heredoc. */ - public static final int INTERNAL_HEREDOC_EOT_SINGLE_QUOTED = -5; - + public static final int INTERNAL_HEREDOC_EOT_SINGLE_QUOTED = -5; /** * Token type specific to RubyTokenMaker; this signals that we are inside * an double quoted EOT heredoc. */ - public static final int INTERNAL_HEREDOC_EOT_DOUBLE_QUOTED = -6; - + public static final int INTERNAL_HEREDOC_EOT_DOUBLE_QUOTED = -6; /** * Token type specific to RubyTokenMaker; this signals that we are inside * a %Q!...! style double quoted string. */ - public static final int INTERNAL_STRING_Q_BANG = -7; - + public static final int INTERNAL_STRING_Q_BANG = -7; /** * Token type specific to RubyTokenMaker; this signals that we are inside * a %Q{...} style double quoted string. */ - public static final int INTERNAL_STRING_Q_CURLY_BRACE = -8; - + public static final int INTERNAL_STRING_Q_CURLY_BRACE = -8; /** * Token type specific to RubyTokenMaker; this signals that we are inside * a %Q<...> style double quoted string. */ - public static final int INTERNAL_STRING_Q_LT = -9; - - + public static final int INTERNAL_STRING_Q_LT = -9; /** * Token type specific to RubyTokenMaker; this signals that we are inside * a %Q(...) style double quoted string. */ - public static final int INTERNAL_STRING_Q_PAREN = -10; - - + public static final int INTERNAL_STRING_Q_PAREN = -10; /** * Token type specific to RubyTokenMaker; this signals that we are inside * a %Q/.../ style double quoted string. */ - public static final int INTERNAL_STRING_Q_SLASH = -11; - + public static final int INTERNAL_STRING_Q_SLASH = -11; /** * Token type specific to RubyTokenMaker; this signals that we are inside * a %Q[...] style double quoted string. */ - public static final int INTERNAL_STRING_Q_SQUARE_BRACKET = -12; - - + public static final int INTERNAL_STRING_Q_SQUARE_BRACKET = -12; + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public RubyTokenMaker() { - } - - + public RubyTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1017,40 +676,40 @@ public class RubyTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns whether tokens of the specified type should have "mark * occurrences" enabled for the current programming language. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER || type==Token.VARIABLE; + return type == Token.IDENTIFIER || type == Token.VARIABLE; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -1121,7 +780,6 @@ public class RubyTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1131,21 +789,18 @@ public class RubyTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1154,7 +809,8 @@ public class RubyTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1163,520 +819,639 @@ public class RubyTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 RubyTokenMaker(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 RubyTokenMaker(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 < 188) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 39: { + start = zzMarkedPos - yylength(); + yybegin(STRING_Q_LT); + } + case 52: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 53: + break; + case 45: { + addToken(Token.LITERAL_BOOLEAN); + } + case 54: + break; + case 32: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 55: + break; + case 19: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_PAREN); + return firstToken; + } + case 56: + break; + case 18: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_CURLY_BRACE); + return firstToken; + } + case 57: + break; + case 20: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_SLASH); + return firstToken; + } + case 58: + break; + case 46: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 3, Token.COMMENT_DOCUMENTATION); + } + case 59: + break; + case 10: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 60: + break; + case 44: { + if (start == zzStartRead) { + addToken(Token.PREPROCESSOR); + addNullToken(); + return firstToken; + } + } + case 61: + break; + case 9: { + addToken(Token.FUNCTION); + } + case 62: + break; + case 22: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_LT); + return firstToken; + } + case 63: + break; + case 42: { + addToken(Token.VARIABLE); + } + case 64: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 65: + break; + case 31: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); + return firstToken; + } + case 66: + break; + case 4: { + addToken(Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 67: + break; + case 41: { + start = zzMarkedPos - yylength(); + yybegin(STRING_Q_CURLY_BRACE); + } + case 68: + break; + case 50: { + start = zzStartRead; + yybegin(HEREDOC_EOF_SINGLE_QUOTED); + } + case 69: + break; + case 51: { + start = zzStartRead; + yybegin(HEREDOC_EOT_SINGLE_QUOTED); + } + case 70: + break; + case 47: { + start = zzStartRead; + yybegin(HEREDOC_EOF_UNQUOTED); + } + case 71: + break; + case 14: { /* Skip escaped chars. */ + } + case 72: + break; + case 25: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 73: + break; + case 43: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 74: + break; + case 28: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); + return firstToken; + } + case 75: + break; + case 6: { + addToken(Token.WHITESPACE); + } + case 76: + break; + case 17: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_BANG); + return firstToken; + } + case 77: + break; + case 35: { + addToken(Token.PREPROCESSOR); + } + case 78: + break; + case 11: { + start = zzMarkedPos - 1; + yybegin(CHAR_LITERAL); + } + case 79: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 80: + break; + case 38: { + start = zzMarkedPos - yylength(); + yybegin(STRING_Q_SLASH); + } + case 81: + break; + case 27: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + } + case 82: + break; + case 16: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 83: + break; + case 37: { + start = zzMarkedPos - yylength(); + yybegin(STRING_Q_BANG); + } + case 84: + break; + case 23: { /* + * Skip escaped single quotes only, but this should + * still work. + */ + } + case 85: + break; + case 30: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); + return firstToken; + } + case 86: + break; + case 49: { + start = zzMarkedPos - 6; + yybegin(DOCCOMMENT); + } + case 87: + break; + case 34: { + addToken(Token.RESERVED_WORD); + } + case 88: + break; + case 26: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + return firstToken; + } + case 89: + break; + case 36: { + start = zzMarkedPos - yylength(); + yybegin(STRING_Q_SQUARE_BRACKET); + } + case 90: + break; + case 8: { + addToken(Token.SEPARATOR); + } + case 91: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 92: + break; + case 21: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_SQUARE_BRACKET); + return firstToken; + } + case 93: + break; + case 40: { + start = zzMarkedPos - yylength(); + yybegin(STRING_Q_PAREN); + } + case 94: + break; + case 7: { + addToken(Token.OPERATOR); + } + case 95: + break; + case 24: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 96: + break; + case 33: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 97: + break; + case 48: { + start = zzStartRead; + yybegin(HEREDOC_EOT_UNQUOTED); + } + case 98: + break; + case 12: { + start = zzMarkedPos - 1; + yybegin(BACKTICKS); + } + case 99: + break; + case 13: {} + case 100: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 101: + break; + case 29: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); + return firstToken; + } + case 102: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case HEREDOC_EOF_SINGLE_QUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); + return firstToken; + } + case 348: + break; + case DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + return firstToken; + } + case 349: + break; + case HEREDOC_EOT_SINGLE_QUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); + return firstToken; + } + case 350: + break; + case HEREDOC_EOT_UNQUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); + return firstToken; + } + case 351: + break; + case STRING_Q_SLASH: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_SLASH); + return firstToken; + } + case 352: + break; + case STRING_Q_BANG: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_BANG); + return firstToken; + } + case 353: + break; + case STRING_Q_LT: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_LT); + return firstToken; + } + case 354: + break; + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 355: + break; + case BACKTICKS: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + return firstToken; + } + case 356: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 357: + break; + case HEREDOC_EOF_UNQUOTED: { + addToken(start, zzStartRead - 1, Token.PREPROCESSOR); + addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); + return firstToken; + } + case 358: + break; + case STRING_Q_CURLY_BRACE: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_CURLY_BRACE); + return firstToken; + } + case 359: + break; + case STRING_Q_PAREN: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_PAREN); + return firstToken; + } + case 360: + break; + case CHAR_LITERAL: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 361: + break; + case STRING_Q_SQUARE_BRACKET: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_STRING_Q_SQUARE_BRACKET); + return firstToken; + } + case 362: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 RubyTokenMaker(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 RubyTokenMaker(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 < 188) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 39: - { start = zzMarkedPos-yylength(); yybegin(STRING_Q_LT); - } - case 52: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 53: break; - case 45: - { addToken(Token.LITERAL_BOOLEAN); - } - case 54: break; - case 32: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 55: break; - case 19: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_PAREN); return firstToken; - } - case 56: break; - case 18: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_CURLY_BRACE); return firstToken; - } - case 57: break; - case 20: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_SLASH); return firstToken; - } - case 58: break; - case 46: - { yybegin(YYINITIAL); addToken(start,zzStartRead+3, Token.COMMENT_DOCUMENTATION); - } - case 59: break; - case 10: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 60: break; - case 44: - { if (start==zzStartRead) { addToken(Token.PREPROCESSOR); addNullToken(); return firstToken; } - } - case 61: break; - case 9: - { addToken(Token.FUNCTION); - } - case 62: break; - case 22: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_LT); return firstToken; - } - case 63: break; - case 42: - { addToken(Token.VARIABLE); - } - case 64: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 65: break; - case 31: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); return firstToken; - } - case 66: break; - case 4: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 67: break; - case 41: - { start = zzMarkedPos-yylength(); yybegin(STRING_Q_CURLY_BRACE); - } - case 68: break; - case 50: - { start = zzStartRead; yybegin(HEREDOC_EOF_SINGLE_QUOTED); - } - case 69: break; - case 51: - { start = zzStartRead; yybegin(HEREDOC_EOT_SINGLE_QUOTED); - } - case 70: break; - case 47: - { start = zzStartRead; yybegin(HEREDOC_EOF_UNQUOTED); - } - case 71: break; - case 14: - { /* Skip escaped chars. */ - } - case 72: break; - case 25: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 73: break; - case 43: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 74: break; - case 28: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); return firstToken; - } - case 75: break; - case 6: - { addToken(Token.WHITESPACE); - } - case 76: break; - case 17: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_BANG); return firstToken; - } - case 77: break; - case 35: - { addToken(Token.PREPROCESSOR); - } - case 78: break; - case 11: - { start = zzMarkedPos-1; yybegin(CHAR_LITERAL); - } - case 79: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 80: break; - case 38: - { start = zzMarkedPos-yylength(); yybegin(STRING_Q_SLASH); - } - case 81: break; - case 27: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - } - case 82: break; - case 16: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 83: break; - case 37: - { start = zzMarkedPos-yylength(); yybegin(STRING_Q_BANG); - } - case 84: break; - case 23: - { /* Skip escaped single quotes only, but this should still work. */ - } - case 85: break; - case 30: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); return firstToken; - } - case 86: break; - case 49: - { start = zzMarkedPos-6; yybegin(DOCCOMMENT); - } - case 87: break; - case 34: - { addToken(Token.RESERVED_WORD); - } - case 88: break; - case 26: - { addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); return firstToken; - } - case 89: break; - case 36: - { start = zzMarkedPos-yylength(); yybegin(STRING_Q_SQUARE_BRACKET); - } - case 90: break; - case 8: - { addToken(Token.SEPARATOR); - } - case 91: break; - case 5: - { addNullToken(); return firstToken; - } - case 92: break; - case 21: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_SQUARE_BRACKET); return firstToken; - } - case 93: break; - case 40: - { start = zzMarkedPos-yylength(); yybegin(STRING_Q_PAREN); - } - case 94: break; - case 7: - { addToken(Token.OPERATOR); - } - case 95: break; - case 24: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 96: break; - case 33: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 97: break; - case 48: - { start = zzStartRead; yybegin(HEREDOC_EOT_UNQUOTED); - } - case 98: break; - case 12: - { start = zzMarkedPos-1; yybegin(BACKTICKS); - } - case 99: break; - case 13: - { - } - case 100: break; - case 15: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 101: break; - case 29: - { addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); return firstToken; - } - case 102: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case HEREDOC_EOF_SINGLE_QUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_SINGLE_QUOTED); return firstToken; - } - case 348: break; - case DOCCOMMENT: { - yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 349: break; - case HEREDOC_EOT_SINGLE_QUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_SINGLE_QUOTED); return firstToken; - } - case 350: break; - case HEREDOC_EOT_UNQUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOT_UNQUOTED); return firstToken; - } - case 351: break; - case STRING_Q_SLASH: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_SLASH); return firstToken; - } - case 352: break; - case STRING_Q_BANG: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_BANG); return firstToken; - } - case 353: break; - case STRING_Q_LT: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_LT); return firstToken; - } - case 354: break; - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 355: break; - case BACKTICKS: { - addToken(start,zzStartRead-1, Token.LITERAL_BACKQUOTE); return firstToken; - } - case 356: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 357: break; - case HEREDOC_EOF_UNQUOTED: { - addToken(start,zzStartRead-1, Token.PREPROCESSOR); addEndToken(INTERNAL_HEREDOC_EOF_UNQUOTED); return firstToken; - } - case 358: break; - case STRING_Q_CURLY_BRACE: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_CURLY_BRACE); return firstToken; - } - case 359: break; - case STRING_Q_PAREN: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_PAREN); return firstToken; - } - case 360: break; - case CHAR_LITERAL: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 361: break; - case STRING_Q_SQUARE_BRACKET: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addEndToken(INTERNAL_STRING_Q_SQUARE_BRACKET); return firstToken; - } - case 362: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/SASTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/SASTokenMaker.java index 31725e4..1098ce6 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/SASTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/SASTokenMaker.java @@ -1,985 +1,657 @@ /* The following code was generated by JFlex 1.4.1 on 1/20/09 10:04 AM */ - /* * 02/25/2005 - * * SASTokenMaker.java - Scanner for SAS files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * This class generates tokens representing a text stream as SAS.

+ * This class generates tokens representing a text stream as SAS. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated SASTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated SASTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class SASTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int STRING = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 6; - public static final int CHAR = 4; - - /** - * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l - * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l - * at the beginning of a line - * l is of the form l = 2*k, k a non negative integer - */ - private static final int ZZ_LEXSTATE[] = { - 0, 1, 2, 2, 3, 3, 4, 4 - }; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\1\25\0\1\3\1\0\1\23\2\0\1\53\1\4"+ - "\1\24\2\22\1\6\1\5\1\0\1\5\1\0\1\7\2\2\1\52"+ - "\1\51\1\45\5\2\1\0\1\0\1\10\1\12\1\10\2\0\1\26"+ - "\1\42\1\27\1\32\1\13\1\33\1\16\1\30\1\21\1\2\1\44"+ - "\1\20\1\36\1\15\1\40\1\37\1\14\1\31\1\34\1\17\1\35"+ - "\1\46\1\47\1\43\1\41\1\50\3\0\1\10\1\25\1\0\1\26"+ - "\1\42\1\27\1\32\1\13\1\33\1\16\1\30\1\21\1\2\1\44"+ - "\1\20\1\36\1\15\1\40\1\37\1\14\1\31\1\34\1\17\1\35"+ - "\1\46\1\47\1\43\1\41\1\50\1\0\1\5\1\0\1\11\uff81\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\1\1\1\3\1\1\3\4\3\1"+ - "\1\5\4\1\1\6\1\7\1\10\15\1\1\5\4\1"+ - "\1\3\1\11\1\12\1\13\1\14\1\12\1\15\1\16"+ - "\1\12\1\17\1\12\1\20\1\21\1\4\7\1\1\5"+ - "\5\1\1\4\3\1\1\4\15\1\1\5\66\1\1\5"+ - "\14\1\21\0\1\22\1\5\5\1\1\5\66\1\1\23"+ - "\50\1\1\5\15\1\1\5\1\1\1\5\4\1\1\5"+ - "\20\1\1\5\3\1\7\0\1\24\2\0\1\24\24\0"+ - "\21\1\1\5\6\1\1\5\44\1\1\5\1\1\1\5"+ - "\11\1\1\5\7\1\1\5\4\1\1\23\22\1\1\5"+ - "\5\1\12\0\1\24\16\0\10\1\1\5\3\1\1\5"+ - "\13\1\1\5\2\1\1\5\3\1\1\5\23\1\1\5"+ - "\10\1\1\23\2\5\6\1\16\0\42\1\13\0\17\1"+ - "\2\0\12\1"; - - private static int [] zzUnpackAction() { - int [] result = new int[639]; - 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\54\0\130\0\204\0\260\0\334\0\334\0\u0108"+ - "\0\u0134\0\u0160\0\334\0\u018c\0\u01b8\0\u01b8\0\u01e4\0\u0210"+ - "\0\u023c\0\u0268\0\u0294\0\u02c0\0\u02ec\0\334\0\334\0\334"+ - "\0\u0318\0\u0344\0\u0370\0\u039c\0\u03c8\0\u03f4\0\u0420\0\u044c"+ - "\0\u0478\0\u04a4\0\u04d0\0\u04fc\0\u0528\0\u0108\0\u0554\0\u0580"+ - "\0\u05ac\0\u05d8\0\u0604\0\334\0\u0630\0\334\0\334\0\u065c"+ - "\0\334\0\334\0\u0688\0\334\0\u06b4\0\u0160\0\334\0\u0108"+ - "\0\u06e0\0\u070c\0\u0738\0\u0764\0\u0790\0\u07bc\0\u07e8\0\u0814"+ - "\0\u0840\0\u086c\0\u0898\0\u08c4\0\u08f0\0\u091c\0\u0948\0\u0974"+ - "\0\u09a0\0\u09cc\0\u09f8\0\u0a24\0\u0a50\0\u0a7c\0\u0aa8\0\u0ad4"+ - "\0\u0b00\0\u0b2c\0\u0b58\0\u0b84\0\u0bb0\0\u0bdc\0\u0c08\0\u0c34"+ - "\0\u0c60\0\u0c8c\0\u0cb8\0\u0ce4\0\u0d10\0\u0d3c\0\u0d68\0\u0d94"+ - "\0\u0dc0\0\u0dec\0\u0e18\0\u0e44\0\u0e70\0\u0e9c\0\u0ec8\0\u0ef4"+ - "\0\u0f20\0\u0f4c\0\u0f78\0\u0fa4\0\u0fd0\0\u0ffc\0\u1028\0\u1054"+ - "\0\u1080\0\u10ac\0\u10d8\0\u1104\0\u1130\0\u115c\0\u1188\0\u11b4"+ - "\0\u11e0\0\u120c\0\u1238\0\u1264\0\u1290\0\u12bc\0\u12e8\0\u1314"+ - "\0\u1340\0\u136c\0\u1398\0\u13c4\0\u13f0\0\u141c\0\u1448\0\u1474"+ - "\0\u14a0\0\u14cc\0\u14f8\0\u1524\0\u1550\0\u157c\0\u15a8\0\u15d4"+ - "\0\u1600\0\u162c\0\u1658\0\u1684\0\u16b0\0\u16dc\0\u1708\0\u1734"+ - "\0\u1760\0\u178c\0\u17b8\0\u17e4\0\u1810\0\u183c\0\u1868\0\u1894"+ - "\0\u18c0\0\u18ec\0\u1918\0\u1944\0\u1970\0\u199c\0\u19c8\0\u19f4"+ - "\0\u1a20\0\u1a4c\0\u1a78\0\u1aa4\0\334\0\u1ad0\0\u1afc\0\u1b28"+ - "\0\u1b54\0\u1b80\0\u1bac\0\u1bd8\0\u1c04\0\u1c30\0\u1c5c\0\u1c88"+ - "\0\u1cb4\0\u1ce0\0\u1d0c\0\u1d38\0\u1d64\0\u1d90\0\u1dbc\0\u1de8"+ - "\0\u1e14\0\u1e40\0\u1e6c\0\u1e98\0\u1ec4\0\u1ef0\0\u1f1c\0\u1f48"+ - "\0\u1f74\0\u1fa0\0\u1fcc\0\u1ff8\0\u2024\0\u2050\0\u207c\0\u20a8"+ - "\0\u20d4\0\u2100\0\u212c\0\u2158\0\u2184\0\u21b0\0\u21dc\0\u2208"+ - "\0\u2234\0\u2260\0\u228c\0\u22b8\0\u22e4\0\u2310\0\u233c\0\u2368"+ - "\0\u2394\0\u23c0\0\u23ec\0\u2418\0\u2444\0\u2470\0\u249c\0\u24c8"+ - "\0\u24f4\0\u2520\0\u0108\0\u254c\0\u2578\0\u25a4\0\u25d0\0\u25fc"+ - "\0\u2628\0\u2654\0\u2680\0\u26ac\0\u26d8\0\u2704\0\u2730\0\u275c"+ - "\0\u2788\0\u27b4\0\u27e0\0\u280c\0\u2838\0\u2864\0\u2890\0\u28bc"+ - "\0\u28e8\0\u2914\0\u2940\0\u296c\0\u2998\0\u29c4\0\u29f0\0\u2a1c"+ - "\0\u2a48\0\u2a74\0\u2aa0\0\u2acc\0\u2af8\0\u2b24\0\u2b50\0\u2b7c"+ - "\0\u2ba8\0\u2bd4\0\u2c00\0\u2c2c\0\u2c58\0\u2c84\0\u2cb0\0\u2cdc"+ - "\0\u2d08\0\u2d34\0\u2d60\0\u2d8c\0\u2db8\0\u2de4\0\u2e10\0\u2e3c"+ - "\0\u2e68\0\u2e94\0\u2ec0\0\u2eec\0\u2f18\0\u2f44\0\u2f70\0\u2f9c"+ - "\0\u2fc8\0\u2ff4\0\u3020\0\u304c\0\u3078\0\u30a4\0\u30d0\0\u30fc"+ - "\0\u3128\0\u3154\0\u3180\0\u31ac\0\u31d8\0\u3204\0\u3230\0\u325c"+ - "\0\u3288\0\u32b4\0\u32e0\0\u330c\0\u3338\0\u3364\0\u3390\0\u33bc"+ - "\0\u33e8\0\u3414\0\u3440\0\u346c\0\u3498\0\u34c4\0\u34f0\0\334"+ - "\0\u351c\0\u3548\0\u3574\0\u35a0\0\u35cc\0\u35f8\0\u3624\0\u3650"+ - "\0\u367c\0\u36a8\0\u36d4\0\u3700\0\u372c\0\u3758\0\u3784\0\u37b0"+ - "\0\u37dc\0\u3808\0\u3834\0\u3860\0\u388c\0\u38b8\0\u38e4\0\u3910"+ - "\0\u393c\0\u3968\0\u3994\0\u39c0\0\u39ec\0\u3a18\0\u3a44\0\u3a70"+ - "\0\u3a9c\0\u3ac8\0\u3af4\0\u3b20\0\u3b4c\0\u3b78\0\u3ba4\0\u3bd0"+ - "\0\u3bfc\0\u3c28\0\u3c54\0\u3c80\0\u26ac\0\u3cac\0\u3cd8\0\u3d04"+ - "\0\u3d30\0\u3d5c\0\u3d88\0\u3db4\0\u3de0\0\u3e0c\0\u3e38\0\u3e64"+ - "\0\u3e90\0\u3ebc\0\u3ee8\0\u3f14\0\u3f40\0\u3f6c\0\u3f98\0\u3fc4"+ - "\0\u3ff0\0\u401c\0\u4048\0\u4074\0\u40a0\0\u40cc\0\u40f8\0\u4124"+ - "\0\u4150\0\u417c\0\u41a8\0\u41d4\0\u4200\0\u422c\0\u4258\0\u4284"+ - "\0\u42b0\0\u42dc\0\u4308\0\u1ff8\0\u4334\0\u4360\0\u438c\0\u43b8"+ - "\0\u43e4\0\u4410\0\u443c\0\u4468\0\u4494\0\u4308\0\u44c0\0\u44ec"+ - "\0\u4518\0\u4544\0\u4570\0\u459c\0\u45c8\0\u45f4\0\u4620\0\u464c"+ - "\0\u4678\0\u46a4\0\u46d0\0\u46fc\0\u4728\0\u4754\0\u4780\0\u47ac"+ - "\0\u47d8\0\u4804\0\u4830\0\u485c\0\u4888\0\u48b4\0\u48e0\0\u490c"+ - "\0\u4938\0\u4964\0\u4990\0\u49bc\0\u49e8\0\u4a14\0\u4a40\0\u4a6c"+ - "\0\u4a98\0\u4ac4\0\u4af0\0\u4b1c\0\u4b48\0\u4b74\0\u4ba0\0\u4bcc"+ - "\0\u4bf8\0\u4c24\0\u4c50\0\u4c7c\0\u4ca8\0\u4cd4\0\u4d00\0\u4d2c"+ - "\0\u4d58\0\u4d84\0\u4db0\0\u4ddc\0\u4e08\0\u4e34\0\u4e60\0\u4e8c"+ - "\0\u4eb8\0\u4ee4\0\u4f10\0\u4f3c\0\u4f68\0\u4f94\0\u4fc0\0\u4fec"+ - "\0\u5018\0\u5044\0\u5070\0\u509c\0\u50c8\0\u50f4\0\u5120\0\u514c"+ - "\0\u15d4\0\u5178\0\u51a4\0\u51d0\0\u51fc\0\u5228\0\u5254\0\u5280"+ - "\0\u52ac\0\u52d8\0\u5304\0\u5330\0\u535c\0\u5388\0\u53b4\0\u53e0"+ - "\0\u540c\0\u5438\0\u5464\0\u5490\0\u54bc\0\u54e8\0\u5514\0\u5540"+ - "\0\u556c\0\u5598\0\u55c4\0\u55f0\0\u561c\0\u5648\0\u5674\0\u56a0"+ - "\0\u56cc\0\u56f8\0\u5724\0\u5750\0\u577c\0\u57a8\0\u57d4\0\u5800"+ - "\0\u582c\0\u5858\0\u5884\0\u58b0\0\u58dc\0\u5908\0\u5934\0\u5960"+ - "\0\u598c\0\u59b8\0\u59e4\0\u5a10\0\u5a3c\0\u5a68\0\u5a94\0\u5ac0"+ - "\0\u5aec\0\u5b18\0\u5b44\0\u5b70\0\u5b9c\0\u5bc8\0\u5bf4\0\u5c20"+ - "\0\u5c4c\0\u5c78\0\u5ca4\0\u5cd0\0\u5cfc\0\u5d28\0\u5d54\0\u5d80"+ - "\0\u5dac\0\u5dd8\0\u5e04\0\u5e30\0\u5e5c\0\u5e88\0\u5eb4\0\u5ee0"+ - "\0\u5f0c\0\u5f38\0\u5f64\0\u5f90\0\u5fbc\0\u5fe8\0\u6014\0\u6040"+ - "\0\u606c\0\u6098\0\u60c4\0\u60f0\0\u611c\0\u6148\0\u6174\0\u61a0"+ - "\0\u61cc\0\u61f8\0\u6224\0\u6250\0\u627c\0\u62a8\0\u62d4\0\u6300"+ - "\0\u632c\0\u6358\0\u6384\0\u63b0\0\u63dc\0\u6408\0\u6434\0\u6460"+ - "\0\u648c\0\u64b8\0\u64e4\0\u6510\0\u653c\0\u6568\0\u6594\0\u65c0"+ - "\0\u65ec\0\u6618\0\u6644\0\u6670\0\u669c\0\u45f4\0\u66c8\0\u66f4"+ - "\0\u6720\0\u674c\0\u535c\0\u6778\0\u67a4\0\u67d0\0\u67fc\0\u6828"+ - "\0\u6854\0\u6880\0\u68ac\0\u68d8\0\u6904\0\u6930\0\u695c"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[639]; - 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 = - "\1\6\1\7\1\10\1\11\1\12\2\13\1\14\1\15"+ - "\1\16\1\13\1\17\1\20\1\21\1\22\1\23\1\24"+ - "\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34"+ - "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44"+ - "\1\10\1\45\1\46\1\47\1\10\1\50\1\51\3\10"+ - "\1\52\1\6\1\7\1\10\1\53\1\12\1\13\1\54"+ - "\1\14\1\15\1\16\1\13\1\17\1\20\1\21\1\22"+ - "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+ - "\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42"+ - "\1\43\1\44\1\10\1\45\1\46\1\47\1\10\1\50"+ - "\1\51\3\10\1\52\1\55\1\56\21\55\1\57\30\55"+ - "\1\60\1\61\22\60\1\62\27\60\1\63\1\64\4\63"+ - "\1\65\45\63\56\0\1\10\10\0\7\10\3\0\26\10"+ - "\4\0\1\11\52\0\1\66\10\0\7\66\3\0\26\66"+ - "\7\0\1\67\57\0\1\13\43\0\1\10\10\0\1\10"+ - "\1\70\1\71\2\10\1\72\1\10\3\0\4\10\1\73"+ - "\11\10\1\74\7\10\3\0\1\10\10\0\7\10\3\0"+ - "\10\10\1\75\15\10\3\0\1\10\10\0\1\70\6\10"+ - "\3\0\13\10\1\76\12\10\3\0\1\10\10\0\1\70"+ - "\3\10\1\70\2\10\3\0\4\10\1\77\6\10\1\100"+ - "\12\10\3\0\1\10\10\0\1\101\5\10\1\102\3\0"+ - "\1\10\1\103\1\10\1\104\1\105\6\10\1\46\12\10"+ - "\3\0\1\10\10\0\1\106\3\10\1\70\1\10\1\107"+ - "\3\0\1\10\1\110\11\10\1\111\12\10\3\0\1\10"+ - "\10\0\2\10\1\112\4\10\3\0\5\10\2\46\2\10"+ - "\1\113\14\10\3\0\1\10\10\0\2\10\1\114\1\10"+ - "\1\115\1\116\1\117\3\0\1\10\1\120\1\121\2\10"+ - "\1\122\4\10\1\123\13\10\3\0\1\10\10\0\2\10"+ - "\1\124\1\10\1\125\1\126\1\10\3\0\4\10\1\127"+ - "\2\10\1\130\2\10\1\131\2\10\1\132\1\133\7\10"+ - "\3\0\1\10\10\0\5\10\1\134\1\135\3\0\1\10"+ - "\1\136\1\10\1\137\1\140\5\10\1\141\1\142\12\10"+ - "\3\0\1\10\10\0\1\143\3\10\1\144\1\10\1\145"+ - "\3\0\1\10\1\146\13\10\1\147\10\10\3\0\1\10"+ - "\10\0\1\150\6\10\3\0\1\10\1\151\5\10\1\152"+ - "\1\153\15\10\3\0\1\10\10\0\1\154\5\10\1\155"+ - "\3\0\1\10\1\156\2\10\1\157\3\10\1\160\1\46"+ - "\1\10\1\46\12\10\3\0\1\10\10\0\5\10\1\161"+ - "\1\162\3\0\1\10\1\163\2\10\1\164\2\10\1\165"+ - "\3\10\1\166\12\10\3\0\1\10\10\0\1\167\1\170"+ - "\2\10\1\171\1\10\1\172\3\0\3\10\1\173\4\10"+ - "\1\174\2\10\1\175\1\176\2\10\1\177\5\10\1\46"+ - "\3\0\1\10\10\0\2\10\1\200\4\10\3\0\12\10"+ - "\1\201\13\10\3\0\1\10\10\0\1\202\5\10\1\203"+ - "\3\0\1\10\1\204\11\10\1\205\12\10\3\0\1\10"+ - "\10\0\5\10\1\206\1\207\3\0\1\10\1\210\1\211"+ - "\1\10\1\212\2\10\1\46\1\213\1\214\10\10\1\215"+ - "\3\10\3\0\1\10\10\0\4\10\1\216\1\124\1\10"+ - "\3\0\4\10\1\217\1\220\2\10\1\221\1\10\1\222"+ - "\6\10\1\223\4\10\3\0\1\10\10\0\1\224\4\10"+ - "\1\225\1\10\3\0\13\10\1\226\1\46\11\10\3\0"+ - "\1\10\10\0\1\227\6\10\3\0\26\10\3\0\1\10"+ - "\10\0\7\10\3\0\1\10\1\230\13\10\1\147\10\10"+ - "\3\0\1\10\10\0\1\231\5\10\1\232\3\0\3\10"+ - "\1\233\22\10\14\0\1\234\1\235\1\236\1\237\1\240"+ - "\1\241\1\242\4\0\1\243\1\244\2\0\1\245\1\0"+ - "\1\246\1\247\1\250\1\251\2\0\1\252\1\0\1\253"+ - "\2\0\1\254\7\0\1\53\2\0\1\54\45\0\1\55"+ - "\1\0\21\55\1\0\30\55\1\60\1\0\22\60\1\0"+ - "\27\60\1\63\1\0\4\63\1\0\45\63\7\0\1\255"+ - "\46\0\1\10\10\0\7\10\3\0\5\10\1\256\20\10"+ - "\3\0\1\10\10\0\7\10\3\0\7\10\1\257\16\10"+ - "\3\0\1\10\10\0\7\10\3\0\4\10\1\260\21\10"+ - "\3\0\1\10\10\0\7\10\3\0\2\10\1\261\7\10"+ - "\1\262\13\10\3\0\1\10\10\0\6\10\1\213\3\0"+ - "\26\10\3\0\1\10\10\0\1\263\3\10\1\264\1\265"+ - "\1\266\3\0\2\10\1\267\1\270\1\10\1\271\1\272"+ - "\1\273\2\10\1\274\13\10\3\0\1\10\10\0\6\10"+ - "\1\124\3\0\13\10\1\275\12\10\3\0\1\10\10\0"+ - "\4\10\1\276\2\10\3\0\12\10\1\277\13\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\300\2\10\1\213"+ - "\1\10\1\301\14\10\3\0\1\10\10\0\4\10\1\302"+ - "\2\10\3\0\11\10\1\303\14\10\3\0\1\10\10\0"+ - "\7\10\3\0\12\10\1\257\2\10\1\304\10\10\3\0"+ - "\1\10\10\0\1\153\6\10\3\0\26\10\3\0\1\10"+ - "\10\0\1\305\6\10\3\0\1\10\1\306\6\10\1\307"+ - "\15\10\3\0\1\10\10\0\2\10\1\310\1\311\3\10"+ - "\3\0\26\10\3\0\1\10\10\0\2\10\1\312\4\10"+ - "\3\0\7\10\1\313\5\10\1\314\10\10\3\0\1\10"+ - "\10\0\7\10\3\0\15\10\1\315\10\10\3\0\1\10"+ - "\10\0\3\10\1\46\3\10\3\0\7\10\1\316\12\10"+ - "\1\46\3\10\3\0\1\10\10\0\2\10\1\317\1\10"+ - "\1\320\2\10\3\0\6\10\1\321\1\322\2\10\1\323"+ - "\13\10\3\0\1\10\10\0\7\10\3\0\12\10\1\324"+ - "\13\10\3\0\1\10\10\0\7\10\3\0\10\10\1\325"+ - "\15\10\3\0\1\10\10\0\1\326\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\327\24\10"+ - "\3\0\1\10\10\0\2\10\1\330\4\10\3\0\26\10"+ - "\3\0\1\10\10\0\5\10\1\331\1\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\3\10\1\332\22\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\333\24\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\334\24\10"+ - "\3\0\1\10\10\0\7\10\3\0\5\10\1\46\20\10"+ - "\3\0\1\10\10\0\4\10\1\335\2\10\3\0\26\10"+ - "\3\0\1\10\10\0\4\10\1\317\1\46\1\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\336"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\2\10\1\337"+ - "\23\10\3\0\1\10\10\0\7\10\3\0\12\10\1\340"+ - "\13\10\3\0\1\10\10\0\1\341\6\10\3\0\13\10"+ - "\1\342\12\10\3\0\1\10\10\0\6\10\1\220\3\0"+ - "\26\10\3\0\1\10\10\0\1\147\6\10\3\0\1\10"+ - "\1\343\11\10\1\72\12\10\3\0\1\10\10\0\7\10"+ - "\3\0\11\10\1\113\14\10\3\0\1\10\10\0\2\10"+ - "\1\344\1\10\1\345\1\346\1\10\3\0\4\10\1\347"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\1\10\1\350"+ - "\11\10\1\351\12\10\3\0\1\10\10\0\1\352\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\11\10"+ - "\1\353\1\10\1\350\12\10\3\0\1\10\10\0\2\10"+ - "\1\354\4\10\3\0\4\10\1\355\4\10\1\356\1\357"+ - "\1\360\5\10\1\46\4\10\3\0\1\10\10\0\7\10"+ - "\3\0\1\10\1\361\24\10\3\0\1\10\10\0\7\10"+ - "\3\0\11\10\1\362\14\10\3\0\1\10\10\0\3\10"+ - "\1\363\3\10\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\16\10\1\133\2\10\1\364\4\10\3\0\1\10"+ - "\10\0\7\10\3\0\1\10\1\365\24\10\3\0\1\10"+ - "\10\0\2\10\1\366\1\367\1\370\2\10\3\0\7\10"+ - "\1\371\1\10\1\372\1\373\13\10\3\0\1\10\10\0"+ - "\2\10\1\374\4\10\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\10\10\1\375\15\10\3\0\1\10\10\0"+ - "\2\10\1\46\4\10\3\0\26\10\3\0\1\10\10\0"+ - "\5\10\1\376\1\10\3\0\7\10\1\377\16\10\3\0"+ - "\1\10\10\0\7\10\3\0\7\10\1\u0100\16\10\3\0"+ - "\1\10\10\0\4\10\1\u0101\2\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\13\10\1\u0102\12\10\3\0"+ - "\1\10\10\0\7\10\3\0\11\10\1\u0103\14\10\3\0"+ - "\1\10\10\0\7\10\3\0\13\10\1\u0104\12\10\3\0"+ - "\1\10\10\0\5\10\1\u0105\1\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\2\10\1\u0106\23\10\3\0"+ - "\1\10\10\0\1\u0107\6\10\3\0\1\10\1\u0108\11\10"+ - "\1\u0109\12\10\3\0\1\10\10\0\5\10\1\u010a\1\10"+ - "\3\0\26\10\3\0\1\10\10\0\2\10\1\u010b\4\10"+ - "\3\0\4\10\1\u010c\6\10\1\u010d\12\10\3\0\1\10"+ - "\10\0\4\10\1\46\1\u010e\1\10\3\0\26\10\3\0"+ - "\1\10\10\0\5\10\1\353\1\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\1\10\1\u010f\2\10\1\u0110"+ - "\1\46\5\10\1\u0111\12\10\3\0\1\10\10\0\3\10"+ - "\1\u0112\3\10\3\0\11\10\1\46\14\10\3\0\1\10"+ - "\10\0\7\10\3\0\1\10\1\u0113\24\10\3\0\1\10"+ - "\10\0\7\10\3\0\11\10\1\u0114\1\u0115\13\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\u0116\3\10\1\u0117"+ - "\15\10\3\0\1\10\10\0\7\10\3\0\11\10\1\u0118"+ - "\14\10\3\0\1\10\10\0\6\10\1\u0102\3\0\26\10"+ - "\3\0\1\10\10\0\4\10\1\u0119\1\10\1\u011a\3\0"+ - "\15\10\1\u011b\10\10\3\0\1\10\10\0\7\10\3\0"+ - "\5\10\1\352\20\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u011c\2\10\1\u011d\21\10\3\0\1\10\10\0"+ - "\3\10\1\u011e\3\10\3\0\7\10\1\u011f\16\10\3\0"+ - "\1\10\10\0\4\10\1\u0120\2\10\3\0\4\10\1\u0121"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\5\10\1\u0122"+ - "\20\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0123"+ - "\12\10\3\0\1\10\10\0\1\u0124\6\10\3\0\2\10"+ - "\1\u0125\23\10\3\0\1\10\10\0\3\10\1\u0126\1\u0127"+ - "\2\10\3\0\4\10\1\u0128\1\46\20\10\3\0\1\10"+ - "\10\0\4\10\1\u0129\2\10\3\0\26\10\3\0\1\10"+ - "\10\0\1\u012a\3\10\1\u012b\1\10\1\u012c\3\0\13\10"+ - "\1\u012d\12\10\3\0\1\10\10\0\4\10\1\46\2\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\u012e\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\1\u012f\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\3\10\1\u0130\22\10"+ - "\3\0\1\10\10\0\7\10\3\0\5\10\1\u0131\20\10"+ - "\3\0\1\10\10\0\7\10\3\0\7\10\1\46\16\10"+ - "\3\0\1\10\10\0\4\10\1\u0132\2\10\3\0\26\10"+ - "\3\0\1\10\10\0\4\10\1\u0133\2\10\3\0\26\10"+ - "\3\0\1\10\10\0\1\u0134\6\10\3\0\26\10\3\0"+ - "\1\10\10\0\5\10\1\362\1\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\1\10\1\u0135\24\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\u0136\3\10\1\u0137"+ - "\15\10\3\0\1\10\10\0\1\u0102\6\10\3\0\14\10"+ - "\1\u0138\11\10\3\0\1\10\10\0\5\10\1\u0139\1\10"+ - "\3\0\4\10\1\u013a\11\10\1\133\7\10\3\0\1\10"+ - "\10\0\6\10\1\u013b\3\0\26\10\3\0\1\10\10\0"+ - "\2\10\1\u013c\1\10\1\363\2\10\3\0\26\10\3\0"+ - "\1\10\10\0\1\u013d\5\10\1\302\3\0\26\10\16\0"+ - "\1\u013e\2\0\1\u013f\25\0\1\u0140\41\0\1\u0141\1\u0142"+ - "\47\0\1\u0143\42\0\1\u0144\17\0\1\u0145\43\0\1\u0146"+ - "\3\0\1\u0147\3\0\1\u0148\26\0\1\u0149\24\0\1\u014a"+ - "\30\0\1\u014b\15\0\1\u0148\62\0\1\u014c\47\0\1\u014d"+ - "\1\0\1\u014e\34\0\1\u014f\16\0\1\u0148\32\0\1\u0150"+ - "\7\0\1\u0151\5\0\1\u0152\3\0\1\u0153\27\0\1\u0154"+ - "\21\0\1\u0155\27\0\1\u0156\12\0\1\u0157\62\0\1\u0158"+ - "\32\0\1\u0159\24\0\1\u0148\25\0\1\u015a\61\0\1\u015b"+ - "\6\0\1\u015c\25\0\1\10\10\0\7\10\3\0\4\10"+ - "\1\u015d\2\10\1\u015e\16\10\3\0\1\10\10\0\1\46"+ - "\6\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\13\10\1\365\12\10\3\0\1\10\10\0\1\u015f\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\5\10\1\u0160\1\10"+ - "\3\0\1\10\1\u0161\11\10\1\350\12\10\3\0\1\10"+ - "\10\0\7\10\3\0\16\10\1\u0162\7\10\3\0\1\10"+ - "\10\0\1\46\5\10\1\u0163\3\0\7\10\1\u0164\16\10"+ - "\3\0\1\10\10\0\1\u0165\6\10\3\0\26\10\3\0"+ - "\1\10\10\0\2\10\1\u0166\4\10\3\0\26\10\3\0"+ - "\1\10\10\0\1\224\6\10\3\0\3\10\1\u0167\22\10"+ - "\3\0\1\10\10\0\1\143\6\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\10\10\1\u0168\15\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\366\21\10\3\0"+ - "\1\10\10\0\7\10\3\0\3\10\1\173\22\10\3\0"+ - "\1\10\10\0\7\10\3\0\1\10\1\124\2\10\1\u0169"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\10\10\1\u016a"+ - "\15\10\3\0\1\10\10\0\7\10\3\0\13\10\1\46"+ - "\12\10\3\0\1\10\10\0\4\10\1\u016b\2\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\11\10\1\u016c"+ - "\14\10\3\0\1\10\10\0\7\10\3\0\12\10\1\u016d"+ - "\13\10\3\0\1\10\10\0\5\10\1\257\1\10\3\0"+ - "\26\10\3\0\1\10\10\0\1\u016e\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\5\10\1\u016f\1\10\3\0\10\10"+ - "\1\u016d\15\10\3\0\1\10\10\0\7\10\3\0\1\10"+ - "\1\u0170\24\10\3\0\1\10\10\0\2\10\1\u0171\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\2\10\1\u0172\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\3\10\1\u0173\3\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\341\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\1\u0174\6\10\3\0\17\10"+ - "\1\46\6\10\3\0\1\10\10\0\4\10\1\u0175\2\10"+ - "\3\0\26\10\3\0\1\10\10\0\2\10\1\366\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\362\4\10\1\257"+ - "\1\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0176"+ - "\2\10\3\0\26\10\3\0\1\10\10\0\1\365\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\u0177\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\6\10\1\302\3\0\13\10"+ - "\1\u0178\12\10\3\0\1\10\10\0\1\342\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\10\10\1\213"+ - "\15\10\3\0\1\10\10\0\7\10\3\0\13\10\1\350"+ - "\12\10\3\0\1\10\10\0\5\10\1\331\1\10\3\0"+ - "\11\10\1\u0179\14\10\3\0\1\10\10\0\7\10\3\0"+ - "\11\10\1\u017a\14\10\3\0\1\10\10\0\7\10\3\0"+ - "\7\10\1\u017b\16\10\3\0\1\10\10\0\7\10\3\0"+ - "\6\10\1\u017c\17\10\3\0\1\10\10\0\5\10\1\u017d"+ - "\1\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u017e\24\10\3\0\1\10\10\0\4\10\1\u017f"+ - "\2\10\3\0\26\10\3\0\1\10\10\0\3\10\1\u0180"+ - "\3\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\4\10\1\u0181\21\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u0182\24\10\3\0\1\10\10\0\1\u0183\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\u0184\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\2\10\1\124\4\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\213"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\7\10\1\u0185"+ - "\16\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u0186"+ - "\23\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0187"+ - "\24\10\3\0\1\10\10\0\1\u0188\4\10\1\46\1\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\5\10"+ - "\1\u0189\20\10\3\0\1\10\10\0\7\10\3\0\4\10"+ - "\1\u0116\21\10\3\0\1\10\10\0\7\10\3\0\4\10"+ - "\1\276\21\10\3\0\1\10\10\0\7\10\3\0\1\10"+ - "\1\u018a\24\10\3\0\1\10\10\0\4\10\1\u018b\2\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\4\10"+ - "\1\353\21\10\3\0\1\10\10\0\7\10\3\0\12\10"+ - "\1\u018c\13\10\3\0\1\10\10\0\7\10\3\0\14\10"+ - "\1\353\11\10\3\0\1\10\10\0\7\10\3\0\4\10"+ - "\1\u018d\21\10\3\0\1\10\10\0\7\10\3\0\5\10"+ - "\1\364\20\10\3\0\1\10\10\0\5\10\1\46\1\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\3\10"+ - "\1\46\22\10\3\0\1\10\10\0\6\10\1\u018e\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\46"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0108"+ - "\24\10\3\0\1\10\10\0\6\10\1\u018f\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0190\6\10"+ - "\1\u0191\15\10\3\0\1\10\10\0\1\213\6\10\3\0"+ - "\12\10\1\u0192\13\10\3\0\1\10\10\0\7\10\3\0"+ - "\13\10\1\u0193\12\10\3\0\1\10\10\0\5\10\1\u0194"+ - "\1\10\3\0\13\10\1\350\12\10\3\0\1\10\10\0"+ - "\3\10\1\257\3\10\3\0\5\10\1\u0195\11\10\1\353"+ - "\6\10\3\0\1\10\10\0\7\10\3\0\15\10\1\u0196"+ - "\10\10\3\0\1\10\10\0\1\u018a\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\2\10\1\u0197\23\10"+ - "\3\0\1\10\10\0\7\10\3\0\2\10\1\u0198\7\10"+ - "\1\u0199\4\10\1\46\6\10\3\0\1\10\10\0\7\10"+ - "\3\0\1\10\1\u019a\24\10\3\0\1\10\10\0\7\10"+ - "\3\0\12\10\1\46\13\10\3\0\1\10\10\0\7\10"+ - "\3\0\11\10\1\u0182\14\10\3\0\1\10\10\0\7\10"+ - "\3\0\22\10\1\u019b\3\10\3\0\1\10\10\0\1\u019c"+ - "\6\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u019d"+ - "\2\10\3\0\26\10\3\0\1\10\10\0\1\10\1\46"+ - "\5\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\11\10\1\257\14\10\3\0\1\10\10\0\7\10\3\0"+ - "\11\10\1\46\14\10\3\0\1\10\10\0\6\10\1\u019e"+ - "\3\0\26\10\3\0\1\10\10\0\4\10\1\u019f\2\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\11\10"+ - "\1\u01a0\14\10\3\0\1\10\10\0\4\10\1\u01a1\2\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\u01a2\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\2\10\1\u01a3\4\10\3\0"+ - "\4\10\1\u01a4\21\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u01a5\24\10\3\0\1\10\10\0\7\10\3\0"+ - "\12\10\1\u01a6\13\10\3\0\1\10\10\0\2\10\1\u01a7"+ - "\4\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\4\10\1\u01a8\21\10\3\0\1\10\10\0\7\10\3\0"+ - "\11\10\1\u01a9\3\10\1\u0182\10\10\3\0\1\10\10\0"+ - "\7\10\3\0\21\10\1\147\4\10\3\0\1\10\10\0"+ - "\4\10\1\353\2\10\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\4\10\1\u01aa\21\10\3\0\1\10\10\0"+ - "\7\10\3\0\15\10\1\u01ab\10\10\3\0\1\10\10\0"+ - "\6\10\1\362\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\13\10\1\153\5\10\1\u01ac\4\10\3\0\1\10"+ - "\10\0\7\10\3\0\10\10\1\u01ad\15\10\3\0\1\10"+ - "\10\0\2\10\1\u01ae\4\10\3\0\26\10\3\0\1\10"+ - "\10\0\3\10\1\257\3\10\3\0\26\10\3\0\1\10"+ - "\10\0\7\10\3\0\4\10\1\u01af\21\10\3\0\1\10"+ - "\10\0\7\10\3\0\7\10\1\u01b0\16\10\3\0\1\10"+ - "\10\0\6\10\1\u01b1\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\17\10\1\46\6\10\3\0\1\10\10\0"+ - "\1\362\5\10\1\u01b2\3\0\26\10\3\0\1\10\10\0"+ - "\4\10\1\u01b3\2\10\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\24\10\1\124\1\10\3\0\1\10\10\0"+ - "\4\10\1\u01b4\2\10\3\0\26\10\3\0\1\10\10\0"+ - "\1\u01b5\6\10\3\0\26\10\3\0\1\10\10\0\4\10"+ - "\1\u01b6\2\10\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\11\10\1\u01b7\14\10\3\0\1\10\10\0\2\10"+ - "\1\46\4\10\3\0\7\10\1\u01b8\16\10\3\0\1\10"+ - "\10\0\7\10\3\0\5\10\1\u01b9\1\u01ba\17\10\3\0"+ - "\1\10\10\0\1\u01bb\6\10\3\0\5\10\1\u01bc\20\10"+ - "\3\0\1\10\10\0\2\10\1\u01bd\4\10\3\0\26\10"+ - "\3\0\1\10\10\0\4\10\1\u01be\2\10\3\0\2\10"+ - "\1\46\23\10\3\0\1\10\10\0\2\10\1\u01bf\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\2\10\1\u01c0\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\u01c1\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\1\u01c2\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\1\365\6\10\3\0\12\10\1\323"+ - "\13\10\3\0\1\10\10\0\5\10\1\u01c3\1\u01c4\3\0"+ - "\7\10\1\u01c5\16\10\3\0\1\10\10\0\7\10\3\0"+ - "\4\10\1\u01c6\21\10\3\0\1\10\10\0\2\10\1\u0121"+ - "\4\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\5\10\1\317\20\10\3\0\1\10\10\0\2\10\1\u01c7"+ - "\4\10\3\0\26\10\3\0\1\10\10\0\5\10\1\u01c8"+ - "\1\10\3\0\26\10\3\0\1\10\10\0\6\10\1\201"+ - "\3\0\10\10\1\257\15\10\3\0\1\10\10\0\6\10"+ - "\1\u01c9\3\0\26\10\3\0\1\10\10\0\3\10\1\u01ca"+ - "\3\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\5\10\1\u01cb\20\10\3\0\1\10\10\0\2\10\1\46"+ - "\4\10\3\0\4\10\1\257\21\10\33\0\1\u0148\55\0"+ - "\1\u01cc\45\0\1\u01cd\54\0\1\u0151\5\0\1\u01ce\3\0"+ - "\1\u01cf\51\0\1\u0155\1\u01d0\27\0\1\u0159\17\0\1\u01d1"+ - "\5\0\1\u01d2\51\0\1\u01d3\32\0\1\u0147\47\0\1\u01d4"+ - "\100\0\1\u0148\30\0\1\u01d5\1\0\1\u0148\63\0\1\u0140"+ - "\53\0\1\u01d6\2\0\1\u01d7\4\0\1\251\54\0\1\u01d8"+ - "\47\0\1\u0148\56\0\1\u01d9\50\0\1\u01da\50\0\1\u0148"+ - "\50\0\1\u01d4\64\0\1\u01db\2\0\1\u01dc\45\0\1\u01dd"+ - "\33\0\1\u0159\2\0\1\u01de\63\0\1\u01df\41\0\1\u013e"+ - "\65\0\1\u01e0\43\0\1\u0148\71\0\1\u01e1\57\0\1\u01e2"+ - "\27\0\1\u01e3\57\0\1\u01e4\34\0\1\10\10\0\7\10"+ - "\3\0\7\10\1\152\16\10\3\0\1\10\10\0\7\10"+ - "\3\0\1\10\1\220\24\10\3\0\1\10\10\0\7\10"+ - "\3\0\12\10\1\213\13\10\3\0\1\10\10\0\7\10"+ - "\3\0\13\10\1\u01e5\12\10\3\0\1\10\10\0\2\10"+ - "\1\u01e6\4\10\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\12\10\1\u01e7\13\10\3\0\1\10\10\0\4\10"+ - "\1\u01e8\2\10\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\13\10\1\u01e9\12\10\3\0\1\10\10\0\3\10"+ - "\1\311\3\10\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\12\10\1\323\13\10\3\0\1\10\10\0\7\10"+ - "\3\0\1\10\1\u01ea\24\10\3\0\1\10\10\0\7\10"+ - "\3\0\12\10\1\u01eb\13\10\3\0\1\10\10\0\6\10"+ - "\1\u01ec\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\12\10\1\u01ed\13\10\3\0\1\10\10\0\6\10\1\u01ee"+ - "\3\0\26\10\3\0\1\10\10\0\6\10\1\u01ef\3\0"+ - "\26\10\3\0\1\10\10\0\5\10\1\u01af\1\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\12\10\1\u01f0"+ - "\13\10\3\0\1\10\10\0\1\u01f1\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\4\10\1\u01f2\2\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\7\10\1\u01f3\16\10"+ - "\3\0\1\10\10\0\7\10\3\0\2\10\1\u019b\23\10"+ - "\3\0\1\10\10\0\4\10\1\363\2\10\3\0\26\10"+ - "\3\0\1\10\10\0\1\10\1\220\5\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\2\10\1\u01f4\23\10"+ - "\3\0\1\10\10\0\7\10\3\0\4\10\1\u01f5\21\10"+ - "\3\0\1\10\10\0\7\10\3\0\4\10\1\u01f6\21\10"+ - "\3\0\1\10\10\0\1\u01f7\6\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\12\10\1\u01f8\13\10\3\0"+ - "\1\10\10\0\4\10\1\u017d\2\10\3\0\26\10\3\0"+ - "\1\10\10\0\6\10\1\u01f9\3\0\26\10\3\0\1\10"+ - "\10\0\7\10\3\0\1\46\25\10\3\0\1\10\10\0"+ - "\7\10\3\0\4\10\1\u01fa\21\10\3\0\1\10\10\0"+ - "\7\10\3\0\1\10\1\u017d\24\10\3\0\1\10\10\0"+ - "\1\u017d\6\10\3\0\26\10\3\0\1\10\10\0\6\10"+ - "\1\u01fb\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\14\10\1\46\11\10\3\0\1\10\10\0\2\10\1\361"+ - "\4\10\3\0\26\10\3\0\1\10\10\0\2\10\1\u01fc"+ - "\4\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\7\10\1\u01fd\16\10\3\0\1\10\10\0\1\362\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\5\10\1\u01fe\1\10"+ - "\3\0\26\10\3\0\1\10\10\0\2\10\1\u01ff\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\7\10"+ - "\1\u0200\16\10\3\0\1\10\10\0\4\10\1\257\2\10"+ - "\3\0\26\10\3\0\1\10\10\0\1\u0201\6\10\3\0"+ - "\4\10\1\u0202\21\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u0203\6\10\1\u018a\15\10\3\0\1\10\10\0"+ - "\7\10\3\0\5\10\1\u0204\20\10\3\0\1\10\10\0"+ - "\2\10\1\u0205\4\10\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\7\10\1\u0206\16\10\3\0\1\10\10\0"+ - "\6\10\1\153\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\4\10\1\153\21\10\3\0\1\10\10\0\7\10"+ - "\3\0\13\10\1\u0207\12\10\3\0\1\10\10\0\7\10"+ - "\3\0\21\10\1\257\4\10\3\0\1\10\10\0\7\10"+ - "\3\0\1\10\1\u0208\24\10\3\0\1\10\10\0\7\10"+ - "\3\0\13\10\1\u0109\12\10\3\0\1\10\10\0\7\10"+ - "\3\0\11\10\1\75\14\10\3\0\1\10\10\0\1\u0183"+ - "\6\10\3\0\4\10\1\u0209\21\10\3\0\1\10\10\0"+ - "\7\10\3\0\4\10\1\376\21\10\3\0\1\10\10\0"+ - "\5\10\1\336\1\10\3\0\26\10\3\0\1\10\10\0"+ - "\5\10\1\u020a\1\10\3\0\7\10\1\u020b\16\10\3\0"+ - "\1\10\10\0\7\10\3\0\13\10\1\u020c\12\10\3\0"+ - "\1\10\10\0\7\10\3\0\13\10\1\u020d\12\10\3\0"+ - "\1\10\10\0\7\10\3\0\7\10\1\u0116\16\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\u020e\21\10\3\0"+ - "\1\10\10\0\7\10\3\0\1\10\1\u0116\5\10\1\353"+ - "\16\10\3\0\1\10\10\0\2\10\1\u020f\4\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\2\10\1\213"+ - "\23\10\3\0\1\10\10\0\7\10\3\0\5\10\1\u0210"+ - "\20\10\3\0\1\10\10\0\4\10\1\u0211\2\10\3\0"+ - "\26\10\3\0\1\10\10\0\4\10\1\u0212\2\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0213"+ - "\12\10\3\0\1\10\10\0\1\u0214\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0215\24\10"+ - "\3\0\1\10\10\0\7\10\3\0\2\10\1\u0216\23\10"+ - "\3\0\1\10\10\0\7\10\3\0\13\10\1\362\12\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0217\24\10"+ - "\3\0\1\10\10\0\7\10\3\0\6\10\1\u0218\17\10"+ - "\3\0\1\10\10\0\7\10\3\0\7\10\1\353\16\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0219\24\10"+ - "\3\0\1\10\10\0\6\10\1\u018e\3\0\13\10\1\u020c"+ - "\12\10\3\0\1\10\10\0\2\10\1\u021a\4\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\6\10\1\u0182"+ - "\17\10\3\0\1\10\10\0\4\10\1\317\2\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\10\10\1\u021b"+ - "\15\10\3\0\1\10\10\0\7\10\3\0\7\10\1\u021c"+ - "\5\10\1\u0182\10\10\3\0\1\10\10\0\1\u0191\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\2\10"+ - "\1\u021d\4\10\1\46\16\10\3\0\1\10\10\0\7\10"+ - "\3\0\10\10\1\u0109\15\10\3\0\1\10\10\0\6\10"+ - "\1\u01a2\3\0\26\10\3\0\1\10\10\0\6\10\1\u021e"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\16\10"+ - "\1\u021f\7\10\3\0\1\10\10\0\1\u0220\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\4\10\1\u0221\2\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\13\10\1\353"+ - "\12\10\3\0\1\10\10\0\7\10\3\0\10\10\1\353"+ - "\15\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u0160"+ - "\23\10\3\0\1\10\10\0\7\10\3\0\4\10\1\u0222"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\4\10\1\u0223"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0224"+ - "\12\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u011c"+ - "\12\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0225"+ - "\24\10\3\0\1\10\10\0\5\10\1\336\1\10\3\0"+ - "\12\10\1\u0226\13\10\3\0\1\10\10\0\7\10\3\0"+ - "\5\10\1\220\20\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u0227\24\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u0228\24\10\3\0\1\10\10\0\7\10\3\0"+ - "\3\10\1\213\22\10\3\0\1\10\10\0\7\10\3\0"+ - "\13\10\1\u0229\12\10\14\0\1\u0148\60\0\1\u0148\75\0"+ - "\1\u01dc\45\0\1\u022a\36\0\1\u01cc\53\0\1\u0150\50\0"+ - "\1\u0159\101\0\1\u0140\26\0\1\u0148\54\0\1\u022b\55\0"+ - "\1\u022c\46\0\1\u022d\71\0\1\u0158\63\0\1\u0148\51\0"+ - "\1\u022e\27\0\1\u022f\74\0\1\u01d1\32\0\1\u0230\2\0"+ - "\1\u0231\10\0\1\u0232\1\0\1\u0233\1\0\1\u0234\3\0"+ - "\1\u0235\35\0\1\u01cd\60\0\1\u013f\56\0\1\u0147\62\0"+ - "\1\u01d0\45\0\1\u0236\53\0\1\u0237\41\0\1\u01cc\35\0"+ - "\1\10\10\0\7\10\3\0\5\10\1\u0238\20\10\3\0"+ - "\1\10\10\0\7\10\3\0\5\10\1\u0239\20\10\3\0"+ - "\1\10\10\0\7\10\3\0\1\10\1\u0161\24\10\3\0"+ - "\1\10\10\0\5\10\1\u016f\1\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\u023a\21\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\u023b\21\10\3\0"+ - "\1\10\10\0\7\10\3\0\17\10\1\u023c\6\10\3\0"+ - "\1\10\10\0\2\10\1\213\4\10\3\0\26\10\3\0"+ - "\1\10\10\0\7\10\3\0\6\10\1\u023d\6\10\1\u0182"+ - "\10\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u023e"+ - "\12\10\3\0\1\10\10\0\2\10\1\u023f\4\10\3\0"+ - "\26\10\3\0\1\10\10\0\5\10\1\u0240\1\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\11\10\1\u0241"+ - "\14\10\3\0\1\10\10\0\7\10\3\0\6\10\1\u0242"+ - "\3\10\1\u0243\13\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u0244\24\10\3\0\1\10\10\0\7\10\3\0"+ - "\7\10\1\u010e\16\10\3\0\1\10\10\0\7\10\3\0"+ - "\11\10\1\u0245\14\10\3\0\1\10\10\0\7\10\3\0"+ - "\4\10\1\u0246\21\10\3\0\1\10\10\0\7\10\3\0"+ - "\13\10\1\u0247\12\10\3\0\1\10\10\0\5\10\1\u0180"+ - "\1\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u0248\24\10\3\0\1\10\10\0\7\10\3\0"+ - "\15\10\1\46\10\10\3\0\1\10\10\0\7\10\3\0"+ - "\5\10\1\353\20\10\3\0\1\10\10\0\1\220\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\13\10"+ - "\1\u0249\12\10\3\0\1\10\10\0\7\10\3\0\5\10"+ - "\1\u024a\20\10\3\0\1\10\10\0\7\10\3\0\20\10"+ - "\1\46\5\10\3\0\1\10\10\0\2\10\1\u024b\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\1\10"+ - "\1\u024c\24\10\3\0\1\10\10\0\7\10\3\0\4\10"+ - "\1\u0238\21\10\3\0\1\10\10\0\6\10\1\u024d\3\0"+ - "\26\10\3\0\1\10\10\0\3\10\1\46\3\10\3\0"+ - "\26\10\3\0\1\10\10\0\4\10\1\u0215\2\10\3\0"+ - "\26\10\3\0\1\10\10\0\2\10\1\72\4\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\2\10\1\257"+ - "\23\10\3\0\1\10\10\0\6\10\1\u024e\3\0\26\10"+ - "\3\0\1\10\10\0\6\10\1\u024f\3\0\26\10\3\0"+ - "\1\10\10\0\1\u024b\6\10\3\0\26\10\3\0\1\10"+ - "\10\0\7\10\3\0\21\10\1\317\4\10\3\0\1\10"+ - "\10\0\7\10\3\0\4\10\1\220\21\10\3\0\1\10"+ - "\10\0\1\u0249\6\10\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\13\10\1\u018a\12\10\3\0\1\10\10\0"+ - "\7\10\3\0\1\10\1\u0250\24\10\3\0\1\10\10\0"+ - "\7\10\3\0\7\10\1\u015e\16\10\3\0\1\10\10\0"+ - "\7\10\3\0\1\10\1\46\24\10\3\0\1\10\10\0"+ - "\2\10\1\46\4\10\3\0\6\10\1\u0251\17\10\3\0"+ - "\1\10\10\0\7\10\3\0\15\10\1\u0252\10\10\3\0"+ - "\1\10\10\0\7\10\3\0\4\10\1\357\21\10\3\0"+ - "\1\10\10\0\1\u0253\6\10\3\0\26\10\3\0\1\10"+ - "\10\0\7\10\3\0\4\10\1\u0254\21\10\3\0\1\10"+ - "\10\0\7\10\3\0\6\10\1\u0255\17\10\3\0\1\10"+ - "\10\0\4\10\1\u0238\2\10\3\0\26\10\3\0\1\10"+ - "\10\0\3\10\1\220\3\10\3\0\26\10\3\0\1\10"+ - "\10\0\7\10\3\0\4\10\1\257\21\10\3\0\1\10"+ - "\10\0\6\10\1\u0256\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\1\10\1\u0257\24\10\3\0\1\10\10\0"+ - "\7\10\3\0\16\10\1\46\7\10\3\0\1\10\10\0"+ - "\7\10\3\0\12\10\1\353\13\10\3\0\1\10\10\0"+ - "\7\10\3\0\6\10\1\353\17\10\3\0\1\10\10\0"+ - "\1\365\3\10\1\u01be\2\10\3\0\26\10\3\0\1\10"+ - "\10\0\7\10\3\0\22\10\1\u0258\3\10\3\0\1\10"+ - "\10\0\7\10\3\0\15\10\1\u0182\10\10\3\0\1\10"+ - "\10\0\7\10\3\0\1\10\1\u01fc\24\10\3\0\1\10"+ - "\10\0\7\10\3\0\21\10\1\u0238\4\10\3\0\1\10"+ - "\10\0\7\10\3\0\4\10\1\u0169\21\10\3\0\1\10"+ - "\10\0\7\10\3\0\15\10\1\u0186\10\10\3\0\1\10"+ - "\10\0\7\10\3\0\15\10\1\u0259\10\10\3\0\1\10"+ - "\10\0\7\10\3\0\22\10\1\46\3\10\34\0\1\u0234"+ - "\37\0\1\u025a\71\0\1\u025b\61\0\1\u0148\30\0\1\u025c"+ - "\64\0\1\u025d\65\0\1\u025e\2\0\1\u025f\20\0\1\u0158"+ - "\66\0\1\u0260\64\0\1\251\51\0\1\u0261\47\0\1\u0262"+ - "\35\0\1\u0263\100\0\1\u0264\15\0\1\10\10\0\1\353"+ - "\6\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0265"+ - "\2\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0266"+ - "\2\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\1\10\1\u0267\24\10\3\0\1\10\10\0\1\u0182\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\13\10"+ - "\1\u0178\12\10\3\0\1\10\10\0\2\10\1\u01f1\4\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\1\10"+ - "\1\362\24\10\3\0\1\10\10\0\7\10\3\0\13\10"+ - "\1\u0116\12\10\3\0\1\10\10\0\1\u0268\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0269"+ - "\12\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u026a"+ - "\12\10\3\0\1\10\10\0\7\10\3\0\4\10\1\124"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\1\10\1\213"+ - "\24\10\3\0\1\10\10\0\6\10\1\u026b\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\4\10\1\u026c\21\10"+ - "\3\0\1\10\10\0\7\10\3\0\2\10\1\u026d\23\10"+ - "\3\0\1\10\10\0\3\10\1\353\3\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\1\10\1\355\24\10"+ - "\3\0\1\10\10\0\4\10\1\u026e\2\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\7\10\1\213\16\10"+ - "\3\0\1\10\10\0\2\10\1\u026f\4\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\15\10\1\257\10\10"+ - "\3\0\1\10\10\0\2\10\1\u0270\4\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\4\10\1\u01fc\21\10"+ - "\3\0\1\10\10\0\7\10\3\0\6\10\1\46\17\10"+ - "\3\0\1\10\10\0\7\10\3\0\10\10\1\u0271\15\10"+ - "\3\0\1\10\10\0\7\10\3\0\25\10\1\46\3\0"+ - "\1\10\10\0\6\10\1\u01af\3\0\26\10\3\0\1\10"+ - "\10\0\1\u0272\6\10\3\0\26\10\3\0\1\10\10\0"+ - "\7\10\3\0\23\10\1\257\2\10\3\0\1\10\10\0"+ - "\7\10\3\0\4\10\1\347\21\10\3\0\1\10\10\0"+ - "\6\10\1\72\3\0\26\10\3\0\1\10\10\0\5\10"+ - "\1\u0273\1\10\3\0\26\10\31\0\1\u0148\55\0\1\u01cc"+ - "\47\0\1\u01d9\41\0\1\u0148\52\0\1\u0274\66\0\1\u0275"+ - "\45\0\1\u01cd\50\0\1\u0274\76\0\1\u013e\46\0\1\u0148"+ - "\67\0\1\u0148\6\0\1\10\10\0\7\10\3\0\1\10"+ - "\1\u0276\24\10\3\0\1\10\10\0\1\124\6\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u0277"+ - "\23\10\3\0\1\10\10\0\2\10\1\u0278\4\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\u0109"+ - "\21\10\3\0\1\10\10\0\7\10\3\0\7\10\1\u0238"+ - "\16\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u017d"+ - "\23\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0279"+ - "\24\10\3\0\1\10\10\0\4\10\1\u027a\2\10\3\0"+ - "\26\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u027b"+ - "\24\10\3\0\1\10\10\0\1\u0189\6\10\3\0\26\10"+ - "\3\0\1\10\10\0\7\10\3\0\6\10\1\u027c\17\10"+ - "\3\0\1\10\10\0\7\10\3\0\4\10\1\u0266\21\10"+ - "\30\0\1\u0148\44\0\1\u0263\35\0\1\10\10\0\7\10"+ - "\3\0\15\10\1\220\10\10\3\0\1\10\10\0\4\10"+ - "\1\u027d\2\10\3\0\26\10\3\0\1\10\10\0\4\10"+ - "\1\220\2\10\3\0\26\10\3\0\1\10\10\0\7\10"+ - "\3\0\4\10\1\u027e\21\10\3\0\1\10\10\0\1\u027f"+ - "\6\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0273"+ - "\2\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0"+ - "\6\10\1\u027d\17\10\3\0\1\10\10\0\1\u020d\6\10"+ - "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\14\10"+ - "\1\u017d\11\10\3\0\1\10\10\0\7\10\3\0\4\10"+ - "\1\u017d\21\10\1\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[27016]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\5\0\2\11\3\1\1\11\12\1\3\11\23\1\1\11"+ - "\1\1\2\11\1\1\2\11\1\1\1\11\2\1\1\11"+ - "\144\1\21\0\1\11\220\1\7\0\1\1\2\0\1\11"+ - "\24\0\157\1\12\0\1\1\16\0\105\1\16\0\42\1"+ - "\13\0\17\1\2\0\12\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[639]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** - * zzAtBOL == true <=> the scanner is currently at the beginning of a line - */ - private boolean zzAtBOL = true; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int STRING = 2; + public static final int YYINITIAL = 0; + public static final int MLC = 6; + public static final int CHAR = 4; /** - * Constructor. This must be here because JFlex does not generate a + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { 0, 1, 2, 2, 3, 3, 4, 4 }; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\3\1\1\25\0\1\3\1\0\1\23\2\0\1\53\1\4" + + "\1\24\2\22\1\6\1\5\1\0\1\5\1\0\1\7\2\2\1\52" + "\1\51\1\45\5\2\1\0\1\0\1\10\1\12\1\10\2\0\1\26" + + "\1\42\1\27\1\32\1\13\1\33\1\16\1\30\1\21\1\2\1\44" + "\1\20\1\36\1\15\1\40\1\37\1\14\1\31\1\34\1\17\1\35" + + "\1\46\1\47\1\43\1\41\1\50\3\0\1\10\1\25\1\0\1\26" + "\1\42\1\27\1\32\1\13\1\33\1\16\1\30\1\21\1\2\1\44" + + "\1\20\1\36\1\15\1\40\1\37\1\14\1\31\1\34\1\17\1\35" + "\1\46\1\47\1\43\1\41\1\50\1\0\1\5\1\0\1\11\uff81\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\1\1\1\3\1\1\3\4\3\1" + "\1\5\4\1\1\6\1\7\1\10\15\1\1\5\4\1" + + "\1\3\1\11\1\12\1\13\1\14\1\12\1\15\1\16" + "\1\12\1\17\1\12\1\20\1\21\1\4\7\1\1\5" + "\5\1\1\4\3\1\1\4\15\1\1\5\66\1\1\5" + + "\14\1\21\0\1\22\1\5\5\1\1\5\66\1\1\23" + "\50\1\1\5\15\1\1\5\1\1\1\5\4\1\1\5" + "\20\1\1\5\3\1\7\0\1\24\2\0\1\24\24\0" + + "\21\1\1\5\6\1\1\5\44\1\1\5\1\1\1\5" + "\11\1\1\5\7\1\1\5\4\1\1\23\22\1\1\5" + "\5\1\12\0\1\24\16\0\10\1\1\5\3\1\1\5" + + "\13\1\1\5\2\1\1\5\3\1\1\5\23\1\1\5" + "\10\1\1\23\2\5\6\1\16\0\42\1\13\0\17\1" + "\2\0\12\1"; + + private static int[] zzUnpackAction() { + int[] result = new int[639]; + 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\54\0\130\0\204\0\260\0\334\0\334\0\u0108" + + "\0\u0134\0\u0160\0\334\0\u018c\0\u01b8\0\u01b8\0\u01e4\0\u0210" + + "\0\u023c\0\u0268\0\u0294\0\u02c0\0\u02ec\0\334\0\334\0\334" + + "\0\u0318\0\u0344\0\u0370\0\u039c\0\u03c8\0\u03f4\0\u0420\0\u044c" + + "\0\u0478\0\u04a4\0\u04d0\0\u04fc\0\u0528\0\u0108\0\u0554\0\u0580" + + "\0\u05ac\0\u05d8\0\u0604\0\334\0\u0630\0\334\0\334\0\u065c" + "\0\334\0\334\0\u0688\0\334\0\u06b4\0\u0160\0\334\0\u0108" + + "\0\u06e0\0\u070c\0\u0738\0\u0764\0\u0790\0\u07bc\0\u07e8\0\u0814" + + "\0\u0840\0\u086c\0\u0898\0\u08c4\0\u08f0\0\u091c\0\u0948\0\u0974" + + "\0\u09a0\0\u09cc\0\u09f8\0\u0a24\0\u0a50\0\u0a7c\0\u0aa8\0\u0ad4" + + "\0\u0b00\0\u0b2c\0\u0b58\0\u0b84\0\u0bb0\0\u0bdc\0\u0c08\0\u0c34" + + "\0\u0c60\0\u0c8c\0\u0cb8\0\u0ce4\0\u0d10\0\u0d3c\0\u0d68\0\u0d94" + + "\0\u0dc0\0\u0dec\0\u0e18\0\u0e44\0\u0e70\0\u0e9c\0\u0ec8\0\u0ef4" + + "\0\u0f20\0\u0f4c\0\u0f78\0\u0fa4\0\u0fd0\0\u0ffc\0\u1028\0\u1054" + + "\0\u1080\0\u10ac\0\u10d8\0\u1104\0\u1130\0\u115c\0\u1188\0\u11b4" + + "\0\u11e0\0\u120c\0\u1238\0\u1264\0\u1290\0\u12bc\0\u12e8\0\u1314" + + "\0\u1340\0\u136c\0\u1398\0\u13c4\0\u13f0\0\u141c\0\u1448\0\u1474" + + "\0\u14a0\0\u14cc\0\u14f8\0\u1524\0\u1550\0\u157c\0\u15a8\0\u15d4" + + "\0\u1600\0\u162c\0\u1658\0\u1684\0\u16b0\0\u16dc\0\u1708\0\u1734" + + "\0\u1760\0\u178c\0\u17b8\0\u17e4\0\u1810\0\u183c\0\u1868\0\u1894" + + "\0\u18c0\0\u18ec\0\u1918\0\u1944\0\u1970\0\u199c\0\u19c8\0\u19f4" + + "\0\u1a20\0\u1a4c\0\u1a78\0\u1aa4\0\334\0\u1ad0\0\u1afc\0\u1b28" + + "\0\u1b54\0\u1b80\0\u1bac\0\u1bd8\0\u1c04\0\u1c30\0\u1c5c\0\u1c88" + + "\0\u1cb4\0\u1ce0\0\u1d0c\0\u1d38\0\u1d64\0\u1d90\0\u1dbc\0\u1de8" + + "\0\u1e14\0\u1e40\0\u1e6c\0\u1e98\0\u1ec4\0\u1ef0\0\u1f1c\0\u1f48" + + "\0\u1f74\0\u1fa0\0\u1fcc\0\u1ff8\0\u2024\0\u2050\0\u207c\0\u20a8" + + "\0\u20d4\0\u2100\0\u212c\0\u2158\0\u2184\0\u21b0\0\u21dc\0\u2208" + + "\0\u2234\0\u2260\0\u228c\0\u22b8\0\u22e4\0\u2310\0\u233c\0\u2368" + + "\0\u2394\0\u23c0\0\u23ec\0\u2418\0\u2444\0\u2470\0\u249c\0\u24c8" + + "\0\u24f4\0\u2520\0\u0108\0\u254c\0\u2578\0\u25a4\0\u25d0\0\u25fc" + + "\0\u2628\0\u2654\0\u2680\0\u26ac\0\u26d8\0\u2704\0\u2730\0\u275c" + + "\0\u2788\0\u27b4\0\u27e0\0\u280c\0\u2838\0\u2864\0\u2890\0\u28bc" + + "\0\u28e8\0\u2914\0\u2940\0\u296c\0\u2998\0\u29c4\0\u29f0\0\u2a1c" + + "\0\u2a48\0\u2a74\0\u2aa0\0\u2acc\0\u2af8\0\u2b24\0\u2b50\0\u2b7c" + + "\0\u2ba8\0\u2bd4\0\u2c00\0\u2c2c\0\u2c58\0\u2c84\0\u2cb0\0\u2cdc" + + "\0\u2d08\0\u2d34\0\u2d60\0\u2d8c\0\u2db8\0\u2de4\0\u2e10\0\u2e3c" + + "\0\u2e68\0\u2e94\0\u2ec0\0\u2eec\0\u2f18\0\u2f44\0\u2f70\0\u2f9c" + + "\0\u2fc8\0\u2ff4\0\u3020\0\u304c\0\u3078\0\u30a4\0\u30d0\0\u30fc" + + "\0\u3128\0\u3154\0\u3180\0\u31ac\0\u31d8\0\u3204\0\u3230\0\u325c" + + "\0\u3288\0\u32b4\0\u32e0\0\u330c\0\u3338\0\u3364\0\u3390\0\u33bc" + + "\0\u33e8\0\u3414\0\u3440\0\u346c\0\u3498\0\u34c4\0\u34f0\0\334" + + "\0\u351c\0\u3548\0\u3574\0\u35a0\0\u35cc\0\u35f8\0\u3624\0\u3650" + + "\0\u367c\0\u36a8\0\u36d4\0\u3700\0\u372c\0\u3758\0\u3784\0\u37b0" + + "\0\u37dc\0\u3808\0\u3834\0\u3860\0\u388c\0\u38b8\0\u38e4\0\u3910" + + "\0\u393c\0\u3968\0\u3994\0\u39c0\0\u39ec\0\u3a18\0\u3a44\0\u3a70" + + "\0\u3a9c\0\u3ac8\0\u3af4\0\u3b20\0\u3b4c\0\u3b78\0\u3ba4\0\u3bd0" + + "\0\u3bfc\0\u3c28\0\u3c54\0\u3c80\0\u26ac\0\u3cac\0\u3cd8\0\u3d04" + + "\0\u3d30\0\u3d5c\0\u3d88\0\u3db4\0\u3de0\0\u3e0c\0\u3e38\0\u3e64" + + "\0\u3e90\0\u3ebc\0\u3ee8\0\u3f14\0\u3f40\0\u3f6c\0\u3f98\0\u3fc4" + + "\0\u3ff0\0\u401c\0\u4048\0\u4074\0\u40a0\0\u40cc\0\u40f8\0\u4124" + + "\0\u4150\0\u417c\0\u41a8\0\u41d4\0\u4200\0\u422c\0\u4258\0\u4284" + + "\0\u42b0\0\u42dc\0\u4308\0\u1ff8\0\u4334\0\u4360\0\u438c\0\u43b8" + + "\0\u43e4\0\u4410\0\u443c\0\u4468\0\u4494\0\u4308\0\u44c0\0\u44ec" + + "\0\u4518\0\u4544\0\u4570\0\u459c\0\u45c8\0\u45f4\0\u4620\0\u464c" + + "\0\u4678\0\u46a4\0\u46d0\0\u46fc\0\u4728\0\u4754\0\u4780\0\u47ac" + + "\0\u47d8\0\u4804\0\u4830\0\u485c\0\u4888\0\u48b4\0\u48e0\0\u490c" + + "\0\u4938\0\u4964\0\u4990\0\u49bc\0\u49e8\0\u4a14\0\u4a40\0\u4a6c" + + "\0\u4a98\0\u4ac4\0\u4af0\0\u4b1c\0\u4b48\0\u4b74\0\u4ba0\0\u4bcc" + + "\0\u4bf8\0\u4c24\0\u4c50\0\u4c7c\0\u4ca8\0\u4cd4\0\u4d00\0\u4d2c" + + "\0\u4d58\0\u4d84\0\u4db0\0\u4ddc\0\u4e08\0\u4e34\0\u4e60\0\u4e8c" + + "\0\u4eb8\0\u4ee4\0\u4f10\0\u4f3c\0\u4f68\0\u4f94\0\u4fc0\0\u4fec" + + "\0\u5018\0\u5044\0\u5070\0\u509c\0\u50c8\0\u50f4\0\u5120\0\u514c" + + "\0\u15d4\0\u5178\0\u51a4\0\u51d0\0\u51fc\0\u5228\0\u5254\0\u5280" + + "\0\u52ac\0\u52d8\0\u5304\0\u5330\0\u535c\0\u5388\0\u53b4\0\u53e0" + + "\0\u540c\0\u5438\0\u5464\0\u5490\0\u54bc\0\u54e8\0\u5514\0\u5540" + + "\0\u556c\0\u5598\0\u55c4\0\u55f0\0\u561c\0\u5648\0\u5674\0\u56a0" + + "\0\u56cc\0\u56f8\0\u5724\0\u5750\0\u577c\0\u57a8\0\u57d4\0\u5800" + + "\0\u582c\0\u5858\0\u5884\0\u58b0\0\u58dc\0\u5908\0\u5934\0\u5960" + + "\0\u598c\0\u59b8\0\u59e4\0\u5a10\0\u5a3c\0\u5a68\0\u5a94\0\u5ac0" + + "\0\u5aec\0\u5b18\0\u5b44\0\u5b70\0\u5b9c\0\u5bc8\0\u5bf4\0\u5c20" + + "\0\u5c4c\0\u5c78\0\u5ca4\0\u5cd0\0\u5cfc\0\u5d28\0\u5d54\0\u5d80" + + "\0\u5dac\0\u5dd8\0\u5e04\0\u5e30\0\u5e5c\0\u5e88\0\u5eb4\0\u5ee0" + + "\0\u5f0c\0\u5f38\0\u5f64\0\u5f90\0\u5fbc\0\u5fe8\0\u6014\0\u6040" + + "\0\u606c\0\u6098\0\u60c4\0\u60f0\0\u611c\0\u6148\0\u6174\0\u61a0" + + "\0\u61cc\0\u61f8\0\u6224\0\u6250\0\u627c\0\u62a8\0\u62d4\0\u6300" + + "\0\u632c\0\u6358\0\u6384\0\u63b0\0\u63dc\0\u6408\0\u6434\0\u6460" + + "\0\u648c\0\u64b8\0\u64e4\0\u6510\0\u653c\0\u6568\0\u6594\0\u65c0" + + "\0\u65ec\0\u6618\0\u6644\0\u6670\0\u669c\0\u45f4\0\u66c8\0\u66f4" + + "\0\u6720\0\u674c\0\u535c\0\u6778\0\u67a4\0\u67d0\0\u67fc\0\u6828" + + "\0\u6854\0\u6880\0\u68ac\0\u68d8\0\u6904\0\u6930\0\u695c"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[639]; + 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 = "\1\6\1\7\1\10\1\11\1\12\2\13\1\14\1\15" + "\1\16\1\13\1\17\1\20\1\21\1\22\1\23\1\24" + + "\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34" + "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44" + + "\1\10\1\45\1\46\1\47\1\10\1\50\1\51\3\10" + "\1\52\1\6\1\7\1\10\1\53\1\12\1\13\1\54" + + "\1\14\1\15\1\16\1\13\1\17\1\20\1\21\1\22" + "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32" + + "\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42" + "\1\43\1\44\1\10\1\45\1\46\1\47\1\10\1\50" + + "\1\51\3\10\1\52\1\55\1\56\21\55\1\57\30\55" + "\1\60\1\61\22\60\1\62\27\60\1\63\1\64\4\63" + + "\1\65\45\63\56\0\1\10\10\0\7\10\3\0\26\10" + "\4\0\1\11\52\0\1\66\10\0\7\66\3\0\26\66" + + "\7\0\1\67\57\0\1\13\43\0\1\10\10\0\1\10" + "\1\70\1\71\2\10\1\72\1\10\3\0\4\10\1\73" + + "\11\10\1\74\7\10\3\0\1\10\10\0\7\10\3\0" + "\10\10\1\75\15\10\3\0\1\10\10\0\1\70\6\10" + + "\3\0\13\10\1\76\12\10\3\0\1\10\10\0\1\70" + "\3\10\1\70\2\10\3\0\4\10\1\77\6\10\1\100" + + "\12\10\3\0\1\10\10\0\1\101\5\10\1\102\3\0" + "\1\10\1\103\1\10\1\104\1\105\6\10\1\46\12\10" + + "\3\0\1\10\10\0\1\106\3\10\1\70\1\10\1\107" + "\3\0\1\10\1\110\11\10\1\111\12\10\3\0\1\10" + + "\10\0\2\10\1\112\4\10\3\0\5\10\2\46\2\10" + "\1\113\14\10\3\0\1\10\10\0\2\10\1\114\1\10" + + "\1\115\1\116\1\117\3\0\1\10\1\120\1\121\2\10" + "\1\122\4\10\1\123\13\10\3\0\1\10\10\0\2\10" + + "\1\124\1\10\1\125\1\126\1\10\3\0\4\10\1\127" + "\2\10\1\130\2\10\1\131\2\10\1\132\1\133\7\10" + + "\3\0\1\10\10\0\5\10\1\134\1\135\3\0\1\10" + "\1\136\1\10\1\137\1\140\5\10\1\141\1\142\12\10" + + "\3\0\1\10\10\0\1\143\3\10\1\144\1\10\1\145" + "\3\0\1\10\1\146\13\10\1\147\10\10\3\0\1\10" + + "\10\0\1\150\6\10\3\0\1\10\1\151\5\10\1\152" + "\1\153\15\10\3\0\1\10\10\0\1\154\5\10\1\155" + + "\3\0\1\10\1\156\2\10\1\157\3\10\1\160\1\46" + "\1\10\1\46\12\10\3\0\1\10\10\0\5\10\1\161" + + "\1\162\3\0\1\10\1\163\2\10\1\164\2\10\1\165" + "\3\10\1\166\12\10\3\0\1\10\10\0\1\167\1\170" + + "\2\10\1\171\1\10\1\172\3\0\3\10\1\173\4\10" + "\1\174\2\10\1\175\1\176\2\10\1\177\5\10\1\46" + + "\3\0\1\10\10\0\2\10\1\200\4\10\3\0\12\10" + "\1\201\13\10\3\0\1\10\10\0\1\202\5\10\1\203" + + "\3\0\1\10\1\204\11\10\1\205\12\10\3\0\1\10" + "\10\0\5\10\1\206\1\207\3\0\1\10\1\210\1\211" + + "\1\10\1\212\2\10\1\46\1\213\1\214\10\10\1\215" + "\3\10\3\0\1\10\10\0\4\10\1\216\1\124\1\10" + + "\3\0\4\10\1\217\1\220\2\10\1\221\1\10\1\222" + "\6\10\1\223\4\10\3\0\1\10\10\0\1\224\4\10" + + "\1\225\1\10\3\0\13\10\1\226\1\46\11\10\3\0" + "\1\10\10\0\1\227\6\10\3\0\26\10\3\0\1\10" + + "\10\0\7\10\3\0\1\10\1\230\13\10\1\147\10\10" + "\3\0\1\10\10\0\1\231\5\10\1\232\3\0\3\10" + + "\1\233\22\10\14\0\1\234\1\235\1\236\1\237\1\240" + "\1\241\1\242\4\0\1\243\1\244\2\0\1\245\1\0" + + "\1\246\1\247\1\250\1\251\2\0\1\252\1\0\1\253" + "\2\0\1\254\7\0\1\53\2\0\1\54\45\0\1\55" + + "\1\0\21\55\1\0\30\55\1\60\1\0\22\60\1\0" + "\27\60\1\63\1\0\4\63\1\0\45\63\7\0\1\255" + + "\46\0\1\10\10\0\7\10\3\0\5\10\1\256\20\10" + "\3\0\1\10\10\0\7\10\3\0\7\10\1\257\16\10" + + "\3\0\1\10\10\0\7\10\3\0\4\10\1\260\21\10" + "\3\0\1\10\10\0\7\10\3\0\2\10\1\261\7\10" + + "\1\262\13\10\3\0\1\10\10\0\6\10\1\213\3\0" + "\26\10\3\0\1\10\10\0\1\263\3\10\1\264\1\265" + + "\1\266\3\0\2\10\1\267\1\270\1\10\1\271\1\272" + "\1\273\2\10\1\274\13\10\3\0\1\10\10\0\6\10" + + "\1\124\3\0\13\10\1\275\12\10\3\0\1\10\10\0" + "\4\10\1\276\2\10\3\0\12\10\1\277\13\10\3\0" + + "\1\10\10\0\7\10\3\0\4\10\1\300\2\10\1\213" + "\1\10\1\301\14\10\3\0\1\10\10\0\4\10\1\302" + + "\2\10\3\0\11\10\1\303\14\10\3\0\1\10\10\0" + "\7\10\3\0\12\10\1\257\2\10\1\304\10\10\3\0" + + "\1\10\10\0\1\153\6\10\3\0\26\10\3\0\1\10" + "\10\0\1\305\6\10\3\0\1\10\1\306\6\10\1\307" + + "\15\10\3\0\1\10\10\0\2\10\1\310\1\311\3\10" + "\3\0\26\10\3\0\1\10\10\0\2\10\1\312\4\10" + + "\3\0\7\10\1\313\5\10\1\314\10\10\3\0\1\10" + "\10\0\7\10\3\0\15\10\1\315\10\10\3\0\1\10" + + "\10\0\3\10\1\46\3\10\3\0\7\10\1\316\12\10" + "\1\46\3\10\3\0\1\10\10\0\2\10\1\317\1\10" + + "\1\320\2\10\3\0\6\10\1\321\1\322\2\10\1\323" + "\13\10\3\0\1\10\10\0\7\10\3\0\12\10\1\324" + + "\13\10\3\0\1\10\10\0\7\10\3\0\10\10\1\325" + "\15\10\3\0\1\10\10\0\1\326\6\10\3\0\26\10" + + "\3\0\1\10\10\0\7\10\3\0\1\10\1\327\24\10" + "\3\0\1\10\10\0\2\10\1\330\4\10\3\0\26\10" + + "\3\0\1\10\10\0\5\10\1\331\1\10\3\0\26\10" + "\3\0\1\10\10\0\7\10\3\0\3\10\1\332\22\10" + + "\3\0\1\10\10\0\7\10\3\0\1\10\1\333\24\10" + "\3\0\1\10\10\0\7\10\3\0\1\10\1\334\24\10" + + "\3\0\1\10\10\0\7\10\3\0\5\10\1\46\20\10" + "\3\0\1\10\10\0\4\10\1\335\2\10\3\0\26\10" + + "\3\0\1\10\10\0\4\10\1\317\1\46\1\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\336" + + "\21\10\3\0\1\10\10\0\7\10\3\0\2\10\1\337" + "\23\10\3\0\1\10\10\0\7\10\3\0\12\10\1\340" + + "\13\10\3\0\1\10\10\0\1\341\6\10\3\0\13\10" + "\1\342\12\10\3\0\1\10\10\0\6\10\1\220\3\0" + + "\26\10\3\0\1\10\10\0\1\147\6\10\3\0\1\10" + "\1\343\11\10\1\72\12\10\3\0\1\10\10\0\7\10" + + "\3\0\11\10\1\113\14\10\3\0\1\10\10\0\2\10" + "\1\344\1\10\1\345\1\346\1\10\3\0\4\10\1\347" + + "\21\10\3\0\1\10\10\0\7\10\3\0\1\10\1\350" + "\11\10\1\351\12\10\3\0\1\10\10\0\1\352\6\10" + + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\11\10" + "\1\353\1\10\1\350\12\10\3\0\1\10\10\0\2\10" + + "\1\354\4\10\3\0\4\10\1\355\4\10\1\356\1\357" + "\1\360\5\10\1\46\4\10\3\0\1\10\10\0\7\10" + + "\3\0\1\10\1\361\24\10\3\0\1\10\10\0\7\10" + "\3\0\11\10\1\362\14\10\3\0\1\10\10\0\3\10" + + "\1\363\3\10\3\0\26\10\3\0\1\10\10\0\7\10" + "\3\0\16\10\1\133\2\10\1\364\4\10\3\0\1\10" + + "\10\0\7\10\3\0\1\10\1\365\24\10\3\0\1\10" + "\10\0\2\10\1\366\1\367\1\370\2\10\3\0\7\10" + + "\1\371\1\10\1\372\1\373\13\10\3\0\1\10\10\0" + "\2\10\1\374\4\10\3\0\26\10\3\0\1\10\10\0" + + "\7\10\3\0\10\10\1\375\15\10\3\0\1\10\10\0" + "\2\10\1\46\4\10\3\0\26\10\3\0\1\10\10\0" + + "\5\10\1\376\1\10\3\0\7\10\1\377\16\10\3\0" + "\1\10\10\0\7\10\3\0\7\10\1\u0100\16\10\3\0" + + "\1\10\10\0\4\10\1\u0101\2\10\3\0\26\10\3\0" + "\1\10\10\0\7\10\3\0\13\10\1\u0102\12\10\3\0" + + "\1\10\10\0\7\10\3\0\11\10\1\u0103\14\10\3\0" + "\1\10\10\0\7\10\3\0\13\10\1\u0104\12\10\3\0" + + "\1\10\10\0\5\10\1\u0105\1\10\3\0\26\10\3\0" + "\1\10\10\0\7\10\3\0\2\10\1\u0106\23\10\3\0" + + "\1\10\10\0\1\u0107\6\10\3\0\1\10\1\u0108\11\10" + "\1\u0109\12\10\3\0\1\10\10\0\5\10\1\u010a\1\10" + + "\3\0\26\10\3\0\1\10\10\0\2\10\1\u010b\4\10" + "\3\0\4\10\1\u010c\6\10\1\u010d\12\10\3\0\1\10" + + "\10\0\4\10\1\46\1\u010e\1\10\3\0\26\10\3\0" + "\1\10\10\0\5\10\1\353\1\10\3\0\26\10\3\0" + + "\1\10\10\0\7\10\3\0\1\10\1\u010f\2\10\1\u0110" + "\1\46\5\10\1\u0111\12\10\3\0\1\10\10\0\3\10" + + "\1\u0112\3\10\3\0\11\10\1\46\14\10\3\0\1\10" + "\10\0\7\10\3\0\1\10\1\u0113\24\10\3\0\1\10" + + "\10\0\7\10\3\0\11\10\1\u0114\1\u0115\13\10\3\0" + "\1\10\10\0\7\10\3\0\4\10\1\u0116\3\10\1\u0117" + + "\15\10\3\0\1\10\10\0\7\10\3\0\11\10\1\u0118" + "\14\10\3\0\1\10\10\0\6\10\1\u0102\3\0\26\10" + + "\3\0\1\10\10\0\4\10\1\u0119\1\10\1\u011a\3\0" + "\15\10\1\u011b\10\10\3\0\1\10\10\0\7\10\3\0" + + "\5\10\1\352\20\10\3\0\1\10\10\0\7\10\3\0" + "\1\10\1\u011c\2\10\1\u011d\21\10\3\0\1\10\10\0" + + "\3\10\1\u011e\3\10\3\0\7\10\1\u011f\16\10\3\0" + "\1\10\10\0\4\10\1\u0120\2\10\3\0\4\10\1\u0121" + + "\21\10\3\0\1\10\10\0\7\10\3\0\5\10\1\u0122" + "\20\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0123" + + "\12\10\3\0\1\10\10\0\1\u0124\6\10\3\0\2\10" + "\1\u0125\23\10\3\0\1\10\10\0\3\10\1\u0126\1\u0127" + + "\2\10\3\0\4\10\1\u0128\1\46\20\10\3\0\1\10" + "\10\0\4\10\1\u0129\2\10\3\0\26\10\3\0\1\10" + + "\10\0\1\u012a\3\10\1\u012b\1\10\1\u012c\3\0\13\10" + "\1\u012d\12\10\3\0\1\10\10\0\4\10\1\46\2\10" + + "\3\0\26\10\3\0\1\10\10\0\1\u012e\6\10\3\0" + "\26\10\3\0\1\10\10\0\1\u012f\6\10\3\0\26\10" + + "\3\0\1\10\10\0\7\10\3\0\3\10\1\u0130\22\10" + "\3\0\1\10\10\0\7\10\3\0\5\10\1\u0131\20\10" + + "\3\0\1\10\10\0\7\10\3\0\7\10\1\46\16\10" + "\3\0\1\10\10\0\4\10\1\u0132\2\10\3\0\26\10" + + "\3\0\1\10\10\0\4\10\1\u0133\2\10\3\0\26\10" + "\3\0\1\10\10\0\1\u0134\6\10\3\0\26\10\3\0" + + "\1\10\10\0\5\10\1\362\1\10\3\0\26\10\3\0" + "\1\10\10\0\7\10\3\0\1\10\1\u0135\24\10\3\0" + + "\1\10\10\0\7\10\3\0\4\10\1\u0136\3\10\1\u0137" + "\15\10\3\0\1\10\10\0\1\u0102\6\10\3\0\14\10" + + "\1\u0138\11\10\3\0\1\10\10\0\5\10\1\u0139\1\10" + "\3\0\4\10\1\u013a\11\10\1\133\7\10\3\0\1\10" + + "\10\0\6\10\1\u013b\3\0\26\10\3\0\1\10\10\0" + "\2\10\1\u013c\1\10\1\363\2\10\3\0\26\10\3\0" + + "\1\10\10\0\1\u013d\5\10\1\302\3\0\26\10\16\0" + "\1\u013e\2\0\1\u013f\25\0\1\u0140\41\0\1\u0141\1\u0142" + + "\47\0\1\u0143\42\0\1\u0144\17\0\1\u0145\43\0\1\u0146" + "\3\0\1\u0147\3\0\1\u0148\26\0\1\u0149\24\0\1\u014a" + + "\30\0\1\u014b\15\0\1\u0148\62\0\1\u014c\47\0\1\u014d" + "\1\0\1\u014e\34\0\1\u014f\16\0\1\u0148\32\0\1\u0150" + + "\7\0\1\u0151\5\0\1\u0152\3\0\1\u0153\27\0\1\u0154" + "\21\0\1\u0155\27\0\1\u0156\12\0\1\u0157\62\0\1\u0158" + + "\32\0\1\u0159\24\0\1\u0148\25\0\1\u015a\61\0\1\u015b" + "\6\0\1\u015c\25\0\1\10\10\0\7\10\3\0\4\10" + + "\1\u015d\2\10\1\u015e\16\10\3\0\1\10\10\0\1\46" + "\6\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\13\10\1\365\12\10\3\0\1\10\10\0\1\u015f\6\10" + "\3\0\26\10\3\0\1\10\10\0\5\10\1\u0160\1\10" + + "\3\0\1\10\1\u0161\11\10\1\350\12\10\3\0\1\10" + "\10\0\7\10\3\0\16\10\1\u0162\7\10\3\0\1\10" + + "\10\0\1\46\5\10\1\u0163\3\0\7\10\1\u0164\16\10" + "\3\0\1\10\10\0\1\u0165\6\10\3\0\26\10\3\0" + + "\1\10\10\0\2\10\1\u0166\4\10\3\0\26\10\3\0" + "\1\10\10\0\1\224\6\10\3\0\3\10\1\u0167\22\10" + + "\3\0\1\10\10\0\1\143\6\10\3\0\26\10\3\0" + "\1\10\10\0\7\10\3\0\10\10\1\u0168\15\10\3\0" + + "\1\10\10\0\7\10\3\0\4\10\1\366\21\10\3\0" + "\1\10\10\0\7\10\3\0\3\10\1\173\22\10\3\0" + + "\1\10\10\0\7\10\3\0\1\10\1\124\2\10\1\u0169" + "\21\10\3\0\1\10\10\0\7\10\3\0\10\10\1\u016a" + + "\15\10\3\0\1\10\10\0\7\10\3\0\13\10\1\46" + "\12\10\3\0\1\10\10\0\4\10\1\u016b\2\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\11\10\1\u016c" + "\14\10\3\0\1\10\10\0\7\10\3\0\12\10\1\u016d" + + "\13\10\3\0\1\10\10\0\5\10\1\257\1\10\3\0" + "\26\10\3\0\1\10\10\0\1\u016e\6\10\3\0\26\10" + + "\3\0\1\10\10\0\5\10\1\u016f\1\10\3\0\10\10" + "\1\u016d\15\10\3\0\1\10\10\0\7\10\3\0\1\10" + + "\1\u0170\24\10\3\0\1\10\10\0\2\10\1\u0171\4\10" + "\3\0\26\10\3\0\1\10\10\0\2\10\1\u0172\4\10" + + "\3\0\26\10\3\0\1\10\10\0\3\10\1\u0173\3\10" + "\3\0\26\10\3\0\1\10\10\0\1\341\6\10\3\0" + + "\26\10\3\0\1\10\10\0\1\u0174\6\10\3\0\17\10" + "\1\46\6\10\3\0\1\10\10\0\4\10\1\u0175\2\10" + + "\3\0\26\10\3\0\1\10\10\0\2\10\1\366\4\10" + "\3\0\26\10\3\0\1\10\10\0\1\362\4\10\1\257" + + "\1\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0176" + "\2\10\3\0\26\10\3\0\1\10\10\0\1\365\6\10" + + "\3\0\26\10\3\0\1\10\10\0\1\u0177\6\10\3\0" + "\26\10\3\0\1\10\10\0\6\10\1\302\3\0\13\10" + + "\1\u0178\12\10\3\0\1\10\10\0\1\342\6\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\10\10\1\213" + + "\15\10\3\0\1\10\10\0\7\10\3\0\13\10\1\350" + "\12\10\3\0\1\10\10\0\5\10\1\331\1\10\3\0" + + "\11\10\1\u0179\14\10\3\0\1\10\10\0\7\10\3\0" + "\11\10\1\u017a\14\10\3\0\1\10\10\0\7\10\3\0" + + "\7\10\1\u017b\16\10\3\0\1\10\10\0\7\10\3\0" + "\6\10\1\u017c\17\10\3\0\1\10\10\0\5\10\1\u017d" + + "\1\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + "\1\10\1\u017e\24\10\3\0\1\10\10\0\4\10\1\u017f" + + "\2\10\3\0\26\10\3\0\1\10\10\0\3\10\1\u0180" + "\3\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\4\10\1\u0181\21\10\3\0\1\10\10\0\7\10\3\0" + "\1\10\1\u0182\24\10\3\0\1\10\10\0\1\u0183\6\10" + + "\3\0\26\10\3\0\1\10\10\0\1\u0184\6\10\3\0" + "\26\10\3\0\1\10\10\0\2\10\1\124\4\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\213" + "\21\10\3\0\1\10\10\0\7\10\3\0\7\10\1\u0185" + + "\16\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u0186" + "\23\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0187" + + "\24\10\3\0\1\10\10\0\1\u0188\4\10\1\46\1\10" + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\5\10" + + "\1\u0189\20\10\3\0\1\10\10\0\7\10\3\0\4\10" + "\1\u0116\21\10\3\0\1\10\10\0\7\10\3\0\4\10" + + "\1\276\21\10\3\0\1\10\10\0\7\10\3\0\1\10" + "\1\u018a\24\10\3\0\1\10\10\0\4\10\1\u018b\2\10" + + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\4\10" + "\1\353\21\10\3\0\1\10\10\0\7\10\3\0\12\10" + + "\1\u018c\13\10\3\0\1\10\10\0\7\10\3\0\14\10" + "\1\353\11\10\3\0\1\10\10\0\7\10\3\0\4\10" + + "\1\u018d\21\10\3\0\1\10\10\0\7\10\3\0\5\10" + "\1\364\20\10\3\0\1\10\10\0\5\10\1\46\1\10" + + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\3\10" + "\1\46\22\10\3\0\1\10\10\0\6\10\1\u018e\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\46" + "\21\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0108" + + "\24\10\3\0\1\10\10\0\6\10\1\u018f\3\0\26\10" + "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0190\6\10" + + "\1\u0191\15\10\3\0\1\10\10\0\1\213\6\10\3\0" + "\12\10\1\u0192\13\10\3\0\1\10\10\0\7\10\3\0" + + "\13\10\1\u0193\12\10\3\0\1\10\10\0\5\10\1\u0194" + "\1\10\3\0\13\10\1\350\12\10\3\0\1\10\10\0" + + "\3\10\1\257\3\10\3\0\5\10\1\u0195\11\10\1\353" + "\6\10\3\0\1\10\10\0\7\10\3\0\15\10\1\u0196" + + "\10\10\3\0\1\10\10\0\1\u018a\6\10\3\0\26\10" + "\3\0\1\10\10\0\7\10\3\0\2\10\1\u0197\23\10" + + "\3\0\1\10\10\0\7\10\3\0\2\10\1\u0198\7\10" + "\1\u0199\4\10\1\46\6\10\3\0\1\10\10\0\7\10" + + "\3\0\1\10\1\u019a\24\10\3\0\1\10\10\0\7\10" + "\3\0\12\10\1\46\13\10\3\0\1\10\10\0\7\10" + + "\3\0\11\10\1\u0182\14\10\3\0\1\10\10\0\7\10" + "\3\0\22\10\1\u019b\3\10\3\0\1\10\10\0\1\u019c" + + "\6\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u019d" + "\2\10\3\0\26\10\3\0\1\10\10\0\1\10\1\46" + + "\5\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + "\11\10\1\257\14\10\3\0\1\10\10\0\7\10\3\0" + + "\11\10\1\46\14\10\3\0\1\10\10\0\6\10\1\u019e" + "\3\0\26\10\3\0\1\10\10\0\4\10\1\u019f\2\10" + + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\11\10" + "\1\u01a0\14\10\3\0\1\10\10\0\4\10\1\u01a1\2\10" + + "\3\0\26\10\3\0\1\10\10\0\1\u01a2\6\10\3\0" + "\26\10\3\0\1\10\10\0\2\10\1\u01a3\4\10\3\0" + + "\4\10\1\u01a4\21\10\3\0\1\10\10\0\7\10\3\0" + "\1\10\1\u01a5\24\10\3\0\1\10\10\0\7\10\3\0" + + "\12\10\1\u01a6\13\10\3\0\1\10\10\0\2\10\1\u01a7" + "\4\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\4\10\1\u01a8\21\10\3\0\1\10\10\0\7\10\3\0" + "\11\10\1\u01a9\3\10\1\u0182\10\10\3\0\1\10\10\0" + + "\7\10\3\0\21\10\1\147\4\10\3\0\1\10\10\0" + "\4\10\1\353\2\10\3\0\26\10\3\0\1\10\10\0" + + "\7\10\3\0\4\10\1\u01aa\21\10\3\0\1\10\10\0" + "\7\10\3\0\15\10\1\u01ab\10\10\3\0\1\10\10\0" + + "\6\10\1\362\3\0\26\10\3\0\1\10\10\0\7\10" + "\3\0\13\10\1\153\5\10\1\u01ac\4\10\3\0\1\10" + + "\10\0\7\10\3\0\10\10\1\u01ad\15\10\3\0\1\10" + "\10\0\2\10\1\u01ae\4\10\3\0\26\10\3\0\1\10" + + "\10\0\3\10\1\257\3\10\3\0\26\10\3\0\1\10" + "\10\0\7\10\3\0\4\10\1\u01af\21\10\3\0\1\10" + + "\10\0\7\10\3\0\7\10\1\u01b0\16\10\3\0\1\10" + "\10\0\6\10\1\u01b1\3\0\26\10\3\0\1\10\10\0" + + "\7\10\3\0\17\10\1\46\6\10\3\0\1\10\10\0" + "\1\362\5\10\1\u01b2\3\0\26\10\3\0\1\10\10\0" + + "\4\10\1\u01b3\2\10\3\0\26\10\3\0\1\10\10\0" + "\7\10\3\0\24\10\1\124\1\10\3\0\1\10\10\0" + + "\4\10\1\u01b4\2\10\3\0\26\10\3\0\1\10\10\0" + "\1\u01b5\6\10\3\0\26\10\3\0\1\10\10\0\4\10" + + "\1\u01b6\2\10\3\0\26\10\3\0\1\10\10\0\7\10" + "\3\0\11\10\1\u01b7\14\10\3\0\1\10\10\0\2\10" + + "\1\46\4\10\3\0\7\10\1\u01b8\16\10\3\0\1\10" + "\10\0\7\10\3\0\5\10\1\u01b9\1\u01ba\17\10\3\0" + + "\1\10\10\0\1\u01bb\6\10\3\0\5\10\1\u01bc\20\10" + "\3\0\1\10\10\0\2\10\1\u01bd\4\10\3\0\26\10" + + "\3\0\1\10\10\0\4\10\1\u01be\2\10\3\0\2\10" + "\1\46\23\10\3\0\1\10\10\0\2\10\1\u01bf\4\10" + + "\3\0\26\10\3\0\1\10\10\0\2\10\1\u01c0\4\10" + "\3\0\26\10\3\0\1\10\10\0\1\u01c1\6\10\3\0" + + "\26\10\3\0\1\10\10\0\1\u01c2\6\10\3\0\26\10" + "\3\0\1\10\10\0\1\365\6\10\3\0\12\10\1\323" + + "\13\10\3\0\1\10\10\0\5\10\1\u01c3\1\u01c4\3\0" + "\7\10\1\u01c5\16\10\3\0\1\10\10\0\7\10\3\0" + + "\4\10\1\u01c6\21\10\3\0\1\10\10\0\2\10\1\u0121" + "\4\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\5\10\1\317\20\10\3\0\1\10\10\0\2\10\1\u01c7" + "\4\10\3\0\26\10\3\0\1\10\10\0\5\10\1\u01c8" + + "\1\10\3\0\26\10\3\0\1\10\10\0\6\10\1\201" + "\3\0\10\10\1\257\15\10\3\0\1\10\10\0\6\10" + + "\1\u01c9\3\0\26\10\3\0\1\10\10\0\3\10\1\u01ca" + "\3\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\5\10\1\u01cb\20\10\3\0\1\10\10\0\2\10\1\46" + "\4\10\3\0\4\10\1\257\21\10\33\0\1\u0148\55\0" + + "\1\u01cc\45\0\1\u01cd\54\0\1\u0151\5\0\1\u01ce\3\0" + "\1\u01cf\51\0\1\u0155\1\u01d0\27\0\1\u0159\17\0\1\u01d1" + + "\5\0\1\u01d2\51\0\1\u01d3\32\0\1\u0147\47\0\1\u01d4" + "\100\0\1\u0148\30\0\1\u01d5\1\0\1\u0148\63\0\1\u0140" + + "\53\0\1\u01d6\2\0\1\u01d7\4\0\1\251\54\0\1\u01d8" + "\47\0\1\u0148\56\0\1\u01d9\50\0\1\u01da\50\0\1\u0148" + + "\50\0\1\u01d4\64\0\1\u01db\2\0\1\u01dc\45\0\1\u01dd" + "\33\0\1\u0159\2\0\1\u01de\63\0\1\u01df\41\0\1\u013e" + + "\65\0\1\u01e0\43\0\1\u0148\71\0\1\u01e1\57\0\1\u01e2" + "\27\0\1\u01e3\57\0\1\u01e4\34\0\1\10\10\0\7\10" + + "\3\0\7\10\1\152\16\10\3\0\1\10\10\0\7\10" + "\3\0\1\10\1\220\24\10\3\0\1\10\10\0\7\10" + + "\3\0\12\10\1\213\13\10\3\0\1\10\10\0\7\10" + "\3\0\13\10\1\u01e5\12\10\3\0\1\10\10\0\2\10" + + "\1\u01e6\4\10\3\0\26\10\3\0\1\10\10\0\7\10" + "\3\0\12\10\1\u01e7\13\10\3\0\1\10\10\0\4\10" + + "\1\u01e8\2\10\3\0\26\10\3\0\1\10\10\0\7\10" + "\3\0\13\10\1\u01e9\12\10\3\0\1\10\10\0\3\10" + + "\1\311\3\10\3\0\26\10\3\0\1\10\10\0\7\10" + "\3\0\12\10\1\323\13\10\3\0\1\10\10\0\7\10" + + "\3\0\1\10\1\u01ea\24\10\3\0\1\10\10\0\7\10" + "\3\0\12\10\1\u01eb\13\10\3\0\1\10\10\0\6\10" + + "\1\u01ec\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + "\12\10\1\u01ed\13\10\3\0\1\10\10\0\6\10\1\u01ee" + + "\3\0\26\10\3\0\1\10\10\0\6\10\1\u01ef\3\0" + "\26\10\3\0\1\10\10\0\5\10\1\u01af\1\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\12\10\1\u01f0" + "\13\10\3\0\1\10\10\0\1\u01f1\6\10\3\0\26\10" + + "\3\0\1\10\10\0\4\10\1\u01f2\2\10\3\0\26\10" + "\3\0\1\10\10\0\7\10\3\0\7\10\1\u01f3\16\10" + + "\3\0\1\10\10\0\7\10\3\0\2\10\1\u019b\23\10" + "\3\0\1\10\10\0\4\10\1\363\2\10\3\0\26\10" + + "\3\0\1\10\10\0\1\10\1\220\5\10\3\0\26\10" + "\3\0\1\10\10\0\7\10\3\0\2\10\1\u01f4\23\10" + + "\3\0\1\10\10\0\7\10\3\0\4\10\1\u01f5\21\10" + "\3\0\1\10\10\0\7\10\3\0\4\10\1\u01f6\21\10" + + "\3\0\1\10\10\0\1\u01f7\6\10\3\0\26\10\3\0" + "\1\10\10\0\7\10\3\0\12\10\1\u01f8\13\10\3\0" + + "\1\10\10\0\4\10\1\u017d\2\10\3\0\26\10\3\0" + "\1\10\10\0\6\10\1\u01f9\3\0\26\10\3\0\1\10" + + "\10\0\7\10\3\0\1\46\25\10\3\0\1\10\10\0" + "\7\10\3\0\4\10\1\u01fa\21\10\3\0\1\10\10\0" + + "\7\10\3\0\1\10\1\u017d\24\10\3\0\1\10\10\0" + "\1\u017d\6\10\3\0\26\10\3\0\1\10\10\0\6\10" + + "\1\u01fb\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + "\14\10\1\46\11\10\3\0\1\10\10\0\2\10\1\361" + + "\4\10\3\0\26\10\3\0\1\10\10\0\2\10\1\u01fc" + "\4\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\7\10\1\u01fd\16\10\3\0\1\10\10\0\1\362\6\10" + "\3\0\26\10\3\0\1\10\10\0\5\10\1\u01fe\1\10" + + "\3\0\26\10\3\0\1\10\10\0\2\10\1\u01ff\4\10" + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\7\10" + + "\1\u0200\16\10\3\0\1\10\10\0\4\10\1\257\2\10" + "\3\0\26\10\3\0\1\10\10\0\1\u0201\6\10\3\0" + + "\4\10\1\u0202\21\10\3\0\1\10\10\0\7\10\3\0" + "\1\10\1\u0203\6\10\1\u018a\15\10\3\0\1\10\10\0" + + "\7\10\3\0\5\10\1\u0204\20\10\3\0\1\10\10\0" + "\2\10\1\u0205\4\10\3\0\26\10\3\0\1\10\10\0" + + "\7\10\3\0\7\10\1\u0206\16\10\3\0\1\10\10\0" + "\6\10\1\153\3\0\26\10\3\0\1\10\10\0\7\10" + + "\3\0\4\10\1\153\21\10\3\0\1\10\10\0\7\10" + "\3\0\13\10\1\u0207\12\10\3\0\1\10\10\0\7\10" + + "\3\0\21\10\1\257\4\10\3\0\1\10\10\0\7\10" + "\3\0\1\10\1\u0208\24\10\3\0\1\10\10\0\7\10" + + "\3\0\13\10\1\u0109\12\10\3\0\1\10\10\0\7\10" + "\3\0\11\10\1\75\14\10\3\0\1\10\10\0\1\u0183" + + "\6\10\3\0\4\10\1\u0209\21\10\3\0\1\10\10\0" + "\7\10\3\0\4\10\1\376\21\10\3\0\1\10\10\0" + + "\5\10\1\336\1\10\3\0\26\10\3\0\1\10\10\0" + "\5\10\1\u020a\1\10\3\0\7\10\1\u020b\16\10\3\0" + + "\1\10\10\0\7\10\3\0\13\10\1\u020c\12\10\3\0" + "\1\10\10\0\7\10\3\0\13\10\1\u020d\12\10\3\0" + + "\1\10\10\0\7\10\3\0\7\10\1\u0116\16\10\3\0" + "\1\10\10\0\7\10\3\0\4\10\1\u020e\21\10\3\0" + + "\1\10\10\0\7\10\3\0\1\10\1\u0116\5\10\1\353" + "\16\10\3\0\1\10\10\0\2\10\1\u020f\4\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\2\10\1\213" + "\23\10\3\0\1\10\10\0\7\10\3\0\5\10\1\u0210" + + "\20\10\3\0\1\10\10\0\4\10\1\u0211\2\10\3\0" + "\26\10\3\0\1\10\10\0\4\10\1\u0212\2\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0213" + "\12\10\3\0\1\10\10\0\1\u0214\6\10\3\0\26\10" + + "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0215\24\10" + "\3\0\1\10\10\0\7\10\3\0\2\10\1\u0216\23\10" + + "\3\0\1\10\10\0\7\10\3\0\13\10\1\362\12\10" + "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0217\24\10" + + "\3\0\1\10\10\0\7\10\3\0\6\10\1\u0218\17\10" + "\3\0\1\10\10\0\7\10\3\0\7\10\1\353\16\10" + + "\3\0\1\10\10\0\7\10\3\0\1\10\1\u0219\24\10" + "\3\0\1\10\10\0\6\10\1\u018e\3\0\13\10\1\u020c" + + "\12\10\3\0\1\10\10\0\2\10\1\u021a\4\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\6\10\1\u0182" + + "\17\10\3\0\1\10\10\0\4\10\1\317\2\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\10\10\1\u021b" + + "\15\10\3\0\1\10\10\0\7\10\3\0\7\10\1\u021c" + "\5\10\1\u0182\10\10\3\0\1\10\10\0\1\u0191\6\10" + + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\2\10" + "\1\u021d\4\10\1\46\16\10\3\0\1\10\10\0\7\10" + + "\3\0\10\10\1\u0109\15\10\3\0\1\10\10\0\6\10" + "\1\u01a2\3\0\26\10\3\0\1\10\10\0\6\10\1\u021e" + + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\16\10" + "\1\u021f\7\10\3\0\1\10\10\0\1\u0220\6\10\3\0" + + "\26\10\3\0\1\10\10\0\4\10\1\u0221\2\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\13\10\1\353" + + "\12\10\3\0\1\10\10\0\7\10\3\0\10\10\1\353" + "\15\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u0160" + + "\23\10\3\0\1\10\10\0\7\10\3\0\4\10\1\u0222" + "\21\10\3\0\1\10\10\0\7\10\3\0\4\10\1\u0223" + + "\21\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0224" + "\12\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u011c" + + "\12\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0225" + "\24\10\3\0\1\10\10\0\5\10\1\336\1\10\3\0" + + "\12\10\1\u0226\13\10\3\0\1\10\10\0\7\10\3\0" + "\5\10\1\220\20\10\3\0\1\10\10\0\7\10\3\0" + + "\1\10\1\u0227\24\10\3\0\1\10\10\0\7\10\3\0" + "\1\10\1\u0228\24\10\3\0\1\10\10\0\7\10\3\0" + + "\3\10\1\213\22\10\3\0\1\10\10\0\7\10\3\0" + "\13\10\1\u0229\12\10\14\0\1\u0148\60\0\1\u0148\75\0" + + "\1\u01dc\45\0\1\u022a\36\0\1\u01cc\53\0\1\u0150\50\0" + "\1\u0159\101\0\1\u0140\26\0\1\u0148\54\0\1\u022b\55\0" + + "\1\u022c\46\0\1\u022d\71\0\1\u0158\63\0\1\u0148\51\0" + "\1\u022e\27\0\1\u022f\74\0\1\u01d1\32\0\1\u0230\2\0" + + "\1\u0231\10\0\1\u0232\1\0\1\u0233\1\0\1\u0234\3\0" + "\1\u0235\35\0\1\u01cd\60\0\1\u013f\56\0\1\u0147\62\0" + + "\1\u01d0\45\0\1\u0236\53\0\1\u0237\41\0\1\u01cc\35\0" + "\1\10\10\0\7\10\3\0\5\10\1\u0238\20\10\3\0" + + "\1\10\10\0\7\10\3\0\5\10\1\u0239\20\10\3\0" + "\1\10\10\0\7\10\3\0\1\10\1\u0161\24\10\3\0" + + "\1\10\10\0\5\10\1\u016f\1\10\3\0\26\10\3\0" + "\1\10\10\0\7\10\3\0\4\10\1\u023a\21\10\3\0" + + "\1\10\10\0\7\10\3\0\4\10\1\u023b\21\10\3\0" + "\1\10\10\0\7\10\3\0\17\10\1\u023c\6\10\3\0" + + "\1\10\10\0\2\10\1\213\4\10\3\0\26\10\3\0" + "\1\10\10\0\7\10\3\0\6\10\1\u023d\6\10\1\u0182" + + "\10\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u023e" + "\12\10\3\0\1\10\10\0\2\10\1\u023f\4\10\3\0" + + "\26\10\3\0\1\10\10\0\5\10\1\u0240\1\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\11\10\1\u0241" + + "\14\10\3\0\1\10\10\0\7\10\3\0\6\10\1\u0242" + "\3\10\1\u0243\13\10\3\0\1\10\10\0\7\10\3\0" + + "\1\10\1\u0244\24\10\3\0\1\10\10\0\7\10\3\0" + "\7\10\1\u010e\16\10\3\0\1\10\10\0\7\10\3\0" + + "\11\10\1\u0245\14\10\3\0\1\10\10\0\7\10\3\0" + "\4\10\1\u0246\21\10\3\0\1\10\10\0\7\10\3\0" + + "\13\10\1\u0247\12\10\3\0\1\10\10\0\5\10\1\u0180" + "\1\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\1\10\1\u0248\24\10\3\0\1\10\10\0\7\10\3\0" + "\15\10\1\46\10\10\3\0\1\10\10\0\7\10\3\0" + + "\5\10\1\353\20\10\3\0\1\10\10\0\1\220\6\10" + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\13\10" + + "\1\u0249\12\10\3\0\1\10\10\0\7\10\3\0\5\10" + "\1\u024a\20\10\3\0\1\10\10\0\7\10\3\0\20\10" + + "\1\46\5\10\3\0\1\10\10\0\2\10\1\u024b\4\10" + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\1\10" + + "\1\u024c\24\10\3\0\1\10\10\0\7\10\3\0\4\10" + "\1\u0238\21\10\3\0\1\10\10\0\6\10\1\u024d\3\0" + + "\26\10\3\0\1\10\10\0\3\10\1\46\3\10\3\0" + "\26\10\3\0\1\10\10\0\4\10\1\u0215\2\10\3\0" + + "\26\10\3\0\1\10\10\0\2\10\1\72\4\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\2\10\1\257" + + "\23\10\3\0\1\10\10\0\6\10\1\u024e\3\0\26\10" + "\3\0\1\10\10\0\6\10\1\u024f\3\0\26\10\3\0" + + "\1\10\10\0\1\u024b\6\10\3\0\26\10\3\0\1\10" + "\10\0\7\10\3\0\21\10\1\317\4\10\3\0\1\10" + + "\10\0\7\10\3\0\4\10\1\220\21\10\3\0\1\10" + "\10\0\1\u0249\6\10\3\0\26\10\3\0\1\10\10\0" + + "\7\10\3\0\13\10\1\u018a\12\10\3\0\1\10\10\0" + "\7\10\3\0\1\10\1\u0250\24\10\3\0\1\10\10\0" + + "\7\10\3\0\7\10\1\u015e\16\10\3\0\1\10\10\0" + "\7\10\3\0\1\10\1\46\24\10\3\0\1\10\10\0" + + "\2\10\1\46\4\10\3\0\6\10\1\u0251\17\10\3\0" + "\1\10\10\0\7\10\3\0\15\10\1\u0252\10\10\3\0" + + "\1\10\10\0\7\10\3\0\4\10\1\357\21\10\3\0" + "\1\10\10\0\1\u0253\6\10\3\0\26\10\3\0\1\10" + + "\10\0\7\10\3\0\4\10\1\u0254\21\10\3\0\1\10" + "\10\0\7\10\3\0\6\10\1\u0255\17\10\3\0\1\10" + + "\10\0\4\10\1\u0238\2\10\3\0\26\10\3\0\1\10" + "\10\0\3\10\1\220\3\10\3\0\26\10\3\0\1\10" + + "\10\0\7\10\3\0\4\10\1\257\21\10\3\0\1\10" + "\10\0\6\10\1\u0256\3\0\26\10\3\0\1\10\10\0" + + "\7\10\3\0\1\10\1\u0257\24\10\3\0\1\10\10\0" + "\7\10\3\0\16\10\1\46\7\10\3\0\1\10\10\0" + + "\7\10\3\0\12\10\1\353\13\10\3\0\1\10\10\0" + "\7\10\3\0\6\10\1\353\17\10\3\0\1\10\10\0" + + "\1\365\3\10\1\u01be\2\10\3\0\26\10\3\0\1\10" + "\10\0\7\10\3\0\22\10\1\u0258\3\10\3\0\1\10" + + "\10\0\7\10\3\0\15\10\1\u0182\10\10\3\0\1\10" + "\10\0\7\10\3\0\1\10\1\u01fc\24\10\3\0\1\10" + + "\10\0\7\10\3\0\21\10\1\u0238\4\10\3\0\1\10" + "\10\0\7\10\3\0\4\10\1\u0169\21\10\3\0\1\10" + + "\10\0\7\10\3\0\15\10\1\u0186\10\10\3\0\1\10" + "\10\0\7\10\3\0\15\10\1\u0259\10\10\3\0\1\10" + + "\10\0\7\10\3\0\22\10\1\46\3\10\34\0\1\u0234" + "\37\0\1\u025a\71\0\1\u025b\61\0\1\u0148\30\0\1\u025c" + + "\64\0\1\u025d\65\0\1\u025e\2\0\1\u025f\20\0\1\u0158" + "\66\0\1\u0260\64\0\1\251\51\0\1\u0261\47\0\1\u0262" + + "\35\0\1\u0263\100\0\1\u0264\15\0\1\10\10\0\1\353" + "\6\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0265" + + "\2\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0266" + "\2\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\1\10\1\u0267\24\10\3\0\1\10\10\0\1\u0182\6\10" + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\13\10" + + "\1\u0178\12\10\3\0\1\10\10\0\2\10\1\u01f1\4\10" + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\1\10" + + "\1\362\24\10\3\0\1\10\10\0\7\10\3\0\13\10" + "\1\u0116\12\10\3\0\1\10\10\0\1\u0268\6\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u0269" + "\12\10\3\0\1\10\10\0\7\10\3\0\13\10\1\u026a" + + "\12\10\3\0\1\10\10\0\7\10\3\0\4\10\1\124" + "\21\10\3\0\1\10\10\0\7\10\3\0\1\10\1\213" + + "\24\10\3\0\1\10\10\0\6\10\1\u026b\3\0\26\10" + "\3\0\1\10\10\0\7\10\3\0\4\10\1\u026c\21\10" + + "\3\0\1\10\10\0\7\10\3\0\2\10\1\u026d\23\10" + "\3\0\1\10\10\0\3\10\1\353\3\10\3\0\26\10" + + "\3\0\1\10\10\0\7\10\3\0\1\10\1\355\24\10" + "\3\0\1\10\10\0\4\10\1\u026e\2\10\3\0\26\10" + + "\3\0\1\10\10\0\7\10\3\0\7\10\1\213\16\10" + "\3\0\1\10\10\0\2\10\1\u026f\4\10\3\0\26\10" + + "\3\0\1\10\10\0\7\10\3\0\15\10\1\257\10\10" + "\3\0\1\10\10\0\2\10\1\u0270\4\10\3\0\26\10" + + "\3\0\1\10\10\0\7\10\3\0\4\10\1\u01fc\21\10" + "\3\0\1\10\10\0\7\10\3\0\6\10\1\46\17\10" + + "\3\0\1\10\10\0\7\10\3\0\10\10\1\u0271\15\10" + "\3\0\1\10\10\0\7\10\3\0\25\10\1\46\3\0" + + "\1\10\10\0\6\10\1\u01af\3\0\26\10\3\0\1\10" + "\10\0\1\u0272\6\10\3\0\26\10\3\0\1\10\10\0" + + "\7\10\3\0\23\10\1\257\2\10\3\0\1\10\10\0" + "\7\10\3\0\4\10\1\347\21\10\3\0\1\10\10\0" + + "\6\10\1\72\3\0\26\10\3\0\1\10\10\0\5\10" + "\1\u0273\1\10\3\0\26\10\31\0\1\u0148\55\0\1\u01cc" + + "\47\0\1\u01d9\41\0\1\u0148\52\0\1\u0274\66\0\1\u0275" + "\45\0\1\u01cd\50\0\1\u0274\76\0\1\u013e\46\0\1\u0148" + + "\67\0\1\u0148\6\0\1\10\10\0\7\10\3\0\1\10" + "\1\u0276\24\10\3\0\1\10\10\0\1\124\6\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u0277" + "\23\10\3\0\1\10\10\0\2\10\1\u0278\4\10\3\0" + + "\26\10\3\0\1\10\10\0\7\10\3\0\4\10\1\u0109" + "\21\10\3\0\1\10\10\0\7\10\3\0\7\10\1\u0238" + + "\16\10\3\0\1\10\10\0\7\10\3\0\2\10\1\u017d" + "\23\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u0279" + + "\24\10\3\0\1\10\10\0\4\10\1\u027a\2\10\3\0" + "\26\10\3\0\1\10\10\0\7\10\3\0\1\10\1\u027b" + + "\24\10\3\0\1\10\10\0\1\u0189\6\10\3\0\26\10" + "\3\0\1\10\10\0\7\10\3\0\6\10\1\u027c\17\10" + + "\3\0\1\10\10\0\7\10\3\0\4\10\1\u0266\21\10" + "\30\0\1\u0148\44\0\1\u0263\35\0\1\10\10\0\7\10" + + "\3\0\15\10\1\220\10\10\3\0\1\10\10\0\4\10" + "\1\u027d\2\10\3\0\26\10\3\0\1\10\10\0\4\10" + + "\1\220\2\10\3\0\26\10\3\0\1\10\10\0\7\10" + "\3\0\4\10\1\u027e\21\10\3\0\1\10\10\0\1\u027f" + + "\6\10\3\0\26\10\3\0\1\10\10\0\4\10\1\u0273" + "\2\10\3\0\26\10\3\0\1\10\10\0\7\10\3\0" + + "\6\10\1\u027d\17\10\3\0\1\10\10\0\1\u020d\6\10" + "\3\0\26\10\3\0\1\10\10\0\7\10\3\0\14\10" + + "\1\u017d\11\10\3\0\1\10\10\0\7\10\3\0\4\10" + "\1\u017d\21\10\1\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[27016]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\5\0\2\11\3\1\1\11\12\1\3\11\23\1\1\11" + "\1\1\2\11\1\1\2\11\1\1\1\11\2\1\1\11" + + "\144\1\21\0\1\11\220\1\7\0\1\1\2\0\1\11" + "\24\0\157\1\12\0\1\1\16\0\105\1\16\0\42\1" + "\13\0\17\1\2\0\12\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[639]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public SASTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -987,40 +659,40 @@ public class SASTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "*", null }; } - - + /** * Returns whether tokens of the specified type should have "mark * occurrences" enabled for the current programming language. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER || type==Token.VARIABLE; + return type == Token.IDENTIFIER || type == Token.VARIABLE; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -1039,7 +711,6 @@ public class SASTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -1049,21 +720,18 @@ public class SASTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1072,7 +740,8 @@ public class SASTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1081,408 +750,422 @@ public class SASTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtBOL = true; - zzAtEOF = false; + zzAtBOL = true; + zzAtEOF = false; + } + + /** + * 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 SASTokenMaker(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 SASTokenMaker(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 < 180) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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; + if (zzMarkedPosL > zzStartRead) { + switch (zzBufferL[zzMarkedPosL - 1]) { + case '\n': + case '\u000B': + case '\u000C': + case '\u0085': + case '\u2028': + case '\u2029': + zzAtBOL = true; + break; + case '\r': + if (zzMarkedPosL < zzEndReadL) + zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; + else if (zzAtEOF) + zzAtBOL = false; + else { + boolean eof = zzRefill(); + zzMarkedPosL = zzMarkedPos; + zzEndReadL = zzEndRead; + zzBufferL = zzBuffer; + if (eof) + zzAtBOL = false; + else + zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; + } + break; + default: + zzAtBOL = false; + } + } + zzAction = -1; + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + if (zzAtBOL) + zzState = ZZ_LEXSTATE[zzLexicalState + 1]; + else + zzState = ZZ_LEXSTATE[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 13: { + yybegin(YYINITIAL); + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 21: + break; + case 2: { + addNullToken(); + return firstToken; + } + case 22: + break; + case 18: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 23: + break; + case 17: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 24: + break; + case 3: { + addToken(Token.WHITESPACE); + } + case 25: + break; + case 8: { + start = zzMarkedPos - 1; + yybegin(CHAR); + } + case 26: + break; + case 5: { + addToken(Token.RESERVED_WORD); + } + case 27: + break; + case 6: { + addToken(Token.SEPARATOR); + } + case 28: + break; + case 16: { + addToken(Token.VARIABLE); + } + case 29: + break; + case 14: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 30: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 31: + break; + case 20: { + addToken(Token.FUNCTION); + } + case 32: + break; + case 19: { + addToken(Token.DATA_TYPE); + } + case 33: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 34: + break; + case 9: { // We must do this because of how we + // abuse JFlex; since we return an entire + // list of tokens at once instead of a + // single token at a time, the "^" regex + // character doesn't really work, so we must + // check that we're at the beginning of a + // line ourselves. + start = zzStartRead; + // Might not be any whitespace. + if (yylength() > 1) { + addToken(zzStartRead, zzMarkedPos - 2, Token.WHITESPACE); + zzStartRead = zzMarkedPos - 1; + } + // Remember: zzStartRead may now be updated, + // so we must check against 'start'. + if (start == s.offset) { + addToken(zzStartRead, zzEndRead, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } else { + addToken(zzStartRead, zzStartRead, Token.OPERATOR); + } + } + case 35: + break; + case 7: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 36: + break; + case 4: { + addToken(Token.OPERATOR); + } + case 37: + break; + case 12: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 38: + break; + case 10: {} + case 39: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 40: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 640: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 641: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 642: + break; + case CHAR: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 643: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 SASTokenMaker(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 SASTokenMaker(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 < 180) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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; - - if (zzMarkedPosL > zzStartRead) { - switch (zzBufferL[zzMarkedPosL-1]) { - case '\n': - case '\u000B': - case '\u000C': - case '\u0085': - case '\u2028': - case '\u2029': - zzAtBOL = true; - break; - case '\r': - if (zzMarkedPosL < zzEndReadL) - zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; - else if (zzAtEOF) - zzAtBOL = false; - else { - boolean eof = zzRefill(); - zzMarkedPosL = zzMarkedPos; - zzEndReadL = zzEndRead; - zzBufferL = zzBuffer; - if (eof) - zzAtBOL = false; - else - zzAtBOL = zzBufferL[zzMarkedPosL] != '\n'; - } - break; - default: - zzAtBOL = false; - } - } - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - if (zzAtBOL) - zzState = ZZ_LEXSTATE[zzLexicalState+1]; - else - zzState = ZZ_LEXSTATE[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 13: - { yybegin(YYINITIAL); addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 21: break; - case 2: - { addNullToken(); return firstToken; - } - case 22: break; - case 18: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 23: break; - case 17: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 24: break; - case 3: - { addToken(Token.WHITESPACE); - } - case 25: break; - case 8: - { start = zzMarkedPos-1; yybegin(CHAR); - } - case 26: break; - case 5: - { addToken(Token.RESERVED_WORD); - } - case 27: break; - case 6: - { addToken(Token.SEPARATOR); - } - case 28: break; - case 16: - { addToken(Token.VARIABLE); - } - case 29: break; - case 14: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 30: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 31: break; - case 20: - { addToken(Token.FUNCTION); - } - case 32: break; - case 19: - { addToken(Token.DATA_TYPE); - } - case 33: break; - case 11: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 34: break; - case 9: - { // We must do this because of how we - // abuse JFlex; since we return an entire - // list of tokens at once instead of a - // single token at a time, the "^" regex - // character doesn't really work, so we must - // check that we're at the beginning of a - // line ourselves. - start = zzStartRead; - // Might not be any whitespace. - if (yylength()>1) { - addToken(zzStartRead,zzMarkedPos-2, Token.WHITESPACE); - zzStartRead = zzMarkedPos-1; - } - // Remember: zzStartRead may now be updated, - // so we must check against 'start'. - if (start==s.offset) { - addToken(zzStartRead,zzEndRead, Token.COMMENT_EOL); - addNullToken(); - return firstToken; - } - else { - addToken(zzStartRead,zzStartRead, Token.OPERATOR); - } - } - case 35: break; - case 7: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 36: break; - case 4: - { addToken(Token.OPERATOR); - } - case 37: break; - case 12: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 38: break; - case 10: - { - } - case 39: break; - case 15: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 40: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 640: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 641: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 642: break; - case CHAR: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 643: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/SQLTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/SQLTokenMaker.java index 9bfc0fd..2841b9d 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/SQLTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/SQLTokenMaker.java @@ -1,685 +1,444 @@ /* The following code was generated by JFlex 1.4.1 on 6/29/14 12:25 AM */ - /* * 02/15/2005 - * * SQLTokenMaker.java - Scanner for SQL. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * This class generates tokens representing a text stream as SQL.

+ * This class generates tokens representing a text stream as SQL. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated SQLTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated SQLTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class SQLTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int STRING = 1; - public static final int YYINITIAL = 0; - public static final int MLC = 3; - public static final int CHAR = 2; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\4\1\1\25\0\1\4\1\0\1\54\4\0\1\55\2\15"+ - "\1\13\1\11\1\0\1\12\1\17\1\14\1\3\1\50\1\50\1\3"+ - "\1\45\3\3\1\46\1\3\1\16\1\0\1\10\1\7\1\6\2\0"+ - "\1\21\1\37\1\31\1\22\1\20\1\44\1\47\1\41\1\34\1\51"+ - "\1\52\1\23\1\35\1\26\1\33\1\42\1\53\1\25\1\30\1\24"+ - "\1\32\1\36\1\40\1\43\1\27\1\2\1\56\1\0\1\57\1\0"+ - "\1\5\1\0\1\21\1\37\1\31\1\22\1\20\1\44\1\47\1\41"+ - "\1\34\1\51\1\52\1\23\1\35\1\26\1\33\1\42\1\53\1\25"+ - "\1\30\1\24\1\32\1\36\1\40\1\43\1\27\1\2\uff85\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 = - "\4\0\1\1\1\2\1\1\1\3\1\4\5\5\1\6"+ - "\1\1\1\7\27\1\1\10\1\11\1\12\1\13\1\14"+ - "\1\15\1\13\1\16\1\17\1\13\1\20\1\13\1\0"+ - "\1\21\1\22\4\1\1\23\45\1\2\23\4\1\1\23"+ - "\7\1\1\23\22\1\1\24\1\13\1\25\1\7\1\0"+ - "\3\1\1\26\51\1\1\23\4\1\1\23\2\1\1\23"+ - "\22\1\1\23\4\1\1\23\4\1\1\23\17\1\1\23"+ - "\35\1\1\23\5\1\1\23\10\1\1\23\5\1\1\23"+ - "\11\1\1\23\42\1\1\23\4\1\1\23\16\1\1\26"+ - "\4\1"; - - private static int [] zzUnpackAction() { - int [] result = new int[354]; - 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\60\0\140\0\220\0\300\0\300\0\360\0\u0120"+ - "\0\u0150\0\u0180\0\300\0\u01b0\0\u01e0\0\u0210\0\300\0\u0240"+ - "\0\u0270\0\u02a0\0\u02d0\0\u0300\0\u0330\0\u0360\0\u0390\0\u03c0"+ - "\0\u03f0\0\u0420\0\u0450\0\u0480\0\u04b0\0\u04e0\0\u0510\0\u0540"+ - "\0\u0570\0\u05a0\0\u05d0\0\u0600\0\u0630\0\u0660\0\u0690\0\u06c0"+ - "\0\300\0\300\0\u06f0\0\u0720\0\300\0\u0750\0\u0780\0\300"+ - "\0\u07b0\0\u07e0\0\300\0\u0810\0\u0840\0\u0870\0\300\0\u08a0"+ - "\0\u08d0\0\u0900\0\u0930\0\u0960\0\u0990\0\u09c0\0\u09f0\0\u0a20"+ - "\0\u0a50\0\u0a80\0\u0ab0\0\u0ae0\0\u0b10\0\u0b40\0\u0b70\0\u0ba0"+ - "\0\u0bd0\0\u0c00\0\u0c30\0\u0c60\0\u0c90\0\u0cc0\0\u0cf0\0\u0d20"+ - "\0\u0d50\0\u0d80\0\u0db0\0\u0de0\0\u0e10\0\u0e40\0\u0e70\0\u0ea0"+ - "\0\u0ed0\0\u0f00\0\u0f30\0\u0f60\0\u0f90\0\u0fc0\0\u0ff0\0\u1020"+ - "\0\u1050\0\u1080\0\360\0\u10b0\0\u10e0\0\u1110\0\u1140\0\u1170"+ - "\0\u11a0\0\u11d0\0\u1200\0\u1230\0\u1260\0\u1290\0\u12c0\0\u12f0"+ - "\0\u1320\0\u1350\0\u1380\0\u13b0\0\u13e0\0\u1410\0\u1440\0\u1470"+ - "\0\u14a0\0\u14d0\0\u1500\0\u1530\0\u1560\0\u1590\0\u15c0\0\u15f0"+ - "\0\u1620\0\u1650\0\300\0\300\0\300\0\u1680\0\u1680\0\u16b0"+ - "\0\u16e0\0\u1710\0\360\0\u1740\0\u0960\0\u1770\0\u17a0\0\u17d0"+ - "\0\u1800\0\u1830\0\u1860\0\u1890\0\u18c0\0\u18f0\0\u1920\0\u1950"+ - "\0\u1980\0\u19b0\0\u19e0\0\u1a10\0\u1a40\0\u1a70\0\u1aa0\0\u1ad0"+ - "\0\u1b00\0\u1b30\0\u1b60\0\u1b90\0\u1bc0\0\u1bf0\0\u1c20\0\u1c50"+ - "\0\u1c80\0\u1cb0\0\u1ce0\0\u1d10\0\u1d40\0\u1d70\0\u1da0\0\u1dd0"+ - "\0\u1e00\0\u1e30\0\u1e60\0\u1e90\0\u1ec0\0\u1ef0\0\u1f20\0\u1f50"+ - "\0\u1f80\0\u1fb0\0\u1fe0\0\u2010\0\u2040\0\u2070\0\u20a0\0\u20d0"+ - "\0\u2100\0\u2130\0\u2160\0\u2190\0\u21c0\0\u21f0\0\u2220\0\u2250"+ - "\0\u2280\0\u22b0\0\u22e0\0\u2310\0\u2340\0\u2370\0\u12f0\0\u23a0"+ - "\0\u23d0\0\u2400\0\u2430\0\u2460\0\u2490\0\u24c0\0\u24f0\0\u2520"+ - "\0\u2550\0\u2580\0\u25b0\0\u25e0\0\u2610\0\u2640\0\u2670\0\u26a0"+ - "\0\u26d0\0\u2700\0\u2730\0\u2760\0\u2790\0\u27c0\0\u27f0\0\u2820"+ - "\0\u2850\0\u2880\0\u28b0\0\u28e0\0\u2910\0\u2940\0\u2970\0\u29a0"+ - "\0\u29d0\0\u2a00\0\u2a30\0\u2a60\0\u2a90\0\u2ac0\0\u2af0\0\u2b20"+ - "\0\u2b50\0\u2b80\0\u2bb0\0\u2be0\0\u2c10\0\u2c40\0\u2c70\0\u2ca0"+ - "\0\u2cd0\0\u2d00\0\u2d30\0\u2d60\0\u2d90\0\u2dc0\0\u2df0\0\u15f0"+ - "\0\u2e20\0\u2e50\0\u2e80\0\u2eb0\0\u2ee0\0\u0c30\0\u2f10\0\u2f40"+ - "\0\u2f70\0\u2fa0\0\u2fd0\0\u3000\0\u3030\0\u3060\0\u0ff0\0\u3090"+ - "\0\u30c0\0\u2040\0\u30f0\0\u3120\0\u2ca0\0\u3150\0\u3180\0\u31b0"+ - "\0\u31e0\0\u3210\0\u3240\0\u3270\0\u32a0\0\u32d0\0\u3300\0\u3330"+ - "\0\u3360\0\u3390\0\u33c0\0\u33f0\0\u3420\0\u3450\0\u3480\0\u34b0"+ - "\0\u34e0\0\u3510\0\u3540\0\u3570\0\u35a0\0\u35d0\0\u3600\0\u3630"+ - "\0\u3660\0\u3690\0\u36c0\0\u36f0\0\u3720\0\u3750\0\u3780\0\u37b0"+ - "\0\u37e0\0\u3810\0\u3840\0\u3870\0\u38a0\0\u38d0\0\u3900\0\u3930"+ - "\0\u3960\0\u3990\0\u39c0\0\u39f0\0\u3a20\0\u3a50\0\u3a80\0\u3ab0"+ - "\0\u3ae0\0\u3b10\0\u3b40\0\u3b70\0\u3ba0\0\u3bd0\0\u3c00\0\u3c30"+ - "\0\u3c60\0\u3c90\0\u3cc0\0\u3cf0\0\u3d20\0\u3d50\0\u3d80\0\u3db0"+ - "\0\u3de0\0\u3e10"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[354]; - 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 = - "\1\5\1\6\1\7\1\10\1\11\1\5\1\12\1\13"+ - "\1\14\1\13\1\15\1\13\1\16\1\17\1\20\1\21"+ - "\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+ - "\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41"+ - "\1\42\1\43\1\44\1\7\1\45\2\10\1\46\1\10"+ - "\1\47\1\50\1\7\1\51\1\52\1\53\1\5\1\54"+ - "\1\55\52\54\1\56\3\54\1\57\1\60\53\57\1\61"+ - "\2\57\1\62\1\63\11\62\1\64\44\62\62\0\2\7"+ - "\1\0\1\7\12\0\34\7\7\0\1\10\13\0\1\21"+ - "\1\65\24\0\2\10\1\0\1\10\13\0\1\11\62\0"+ - "\1\13\56\0\2\13\62\0\1\66\60\0\1\67\46\0"+ - "\1\7\15\0\25\7\2\0\1\7\1\0\3\7\7\0"+ - "\1\21\14\0\1\65\24\0\2\21\1\0\1\21\11\0"+ - "\2\7\1\0\1\7\12\0\23\7\1\70\10\7\6\0"+ - "\2\7\1\0\1\7\12\0\2\7\1\71\1\72\2\7"+ - "\1\73\1\7\1\74\1\7\1\75\3\7\1\76\15\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\77\1\100\3\7"+ - "\1\101\5\7\1\102\1\103\17\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\104\12\7\1\105\1\106\17\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\107\1\110\3\7\1\111"+ - "\1\7\1\112\3\7\1\113\1\114\17\7\6\0\2\7"+ - "\1\0\1\7\12\0\1\115\13\7\1\116\17\7\6\0"+ - "\2\7\1\0\1\7\12\0\12\7\1\117\1\120\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\121\33\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\122\3\7\1\123\2\7"+ - "\1\124\2\7\1\125\1\126\1\127\1\130\3\7\1\131"+ - "\12\7\6\0\2\7\1\0\1\7\12\0\5\7\1\132"+ - "\4\7\1\133\1\134\5\7\1\135\12\7\6\0\2\7"+ - "\1\0\1\7\12\0\6\7\1\136\1\7\1\137\11\7"+ - "\1\140\11\7\6\0\2\7\1\0\1\7\12\0\3\7"+ - "\1\141\1\7\1\142\1\143\2\7\1\144\1\145\5\7"+ - "\1\146\1\7\1\147\11\7\6\0\2\7\1\0\1\7"+ - "\12\0\6\7\1\150\1\7\1\143\4\7\1\113\11\7"+ - "\1\151\4\7\6\0\2\7\1\0\1\7\12\0\1\152"+ - "\1\153\11\7\1\154\1\155\17\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\7\1\156\32\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\157\6\7\1\160\3\7\1\161\1\162"+ - "\17\7\6\0\2\7\1\0\1\7\12\0\14\7\1\163"+ - "\4\7\1\164\12\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\7\1\165\32\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\166\1\167\3\7\1\170\5\7\1\171\1\172\17\7"+ - "\6\0\2\7\1\0\1\7\12\0\3\7\1\173\1\7"+ - "\1\174\5\7\1\175\20\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\176\4\7\1\177\4\7\1\200\21\7\6\0"+ - "\2\7\1\0\1\7\12\0\13\7\1\201\20\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\202\33\7\4\0\57\53"+ - "\1\203\1\54\1\0\52\54\1\0\3\54\54\0\1\204"+ - "\3\0\1\57\1\0\53\57\1\0\2\57\55\0\1\204"+ - "\2\0\1\62\1\0\11\62\1\0\44\62\14\0\1\205"+ - "\46\0\1\206\5\0\2\207\32\0\2\206\1\0\1\206"+ - "\7\0\1\66\1\0\56\66\2\0\2\7\1\0\1\7"+ - "\12\0\4\7\1\210\7\7\1\211\17\7\6\0\2\7"+ - "\1\0\1\7\12\0\2\7\1\143\31\7\6\0\2\7"+ - "\1\0\1\7\12\0\3\7\1\143\1\137\27\7\6\0"+ - "\2\7\1\0\1\7\12\0\2\7\1\143\4\7\1\143"+ - "\24\7\6\0\2\7\1\0\1\7\12\0\11\7\1\143"+ - "\22\7\6\0\2\7\1\0\1\7\12\0\4\7\1\212"+ - "\27\7\6\0\2\7\1\0\1\7\12\0\1\7\1\143"+ - "\25\7\1\213\4\7\6\0\2\7\1\0\1\7\12\0"+ - "\3\7\1\214\4\7\1\215\23\7\6\0\2\7\1\0"+ - "\1\7\12\0\4\7\1\216\27\7\6\0\2\7\1\0"+ - "\1\7\12\0\13\7\1\113\20\7\6\0\2\7\1\0"+ - "\1\7\12\0\12\7\1\217\21\7\6\0\2\7\1\0"+ - "\1\7\12\0\10\7\1\220\23\7\6\0\2\7\1\0"+ - "\1\7\12\0\16\7\1\221\5\7\1\120\7\7\6\0"+ - "\2\7\1\0\1\7\12\0\6\7\1\222\11\7\1\223"+ - "\6\7\1\224\4\7\6\0\2\7\1\0\1\7\12\0"+ - "\32\7\1\225\1\7\6\0\2\7\1\0\1\7\12\0"+ - "\23\7\1\120\10\7\6\0\2\7\1\0\1\7\12\0"+ - "\17\7\1\226\14\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\7\1\227\12\7\1\230\17\7\6\0\2\7\1\0"+ - "\1\7\12\0\22\7\1\225\11\7\6\0\2\7\1\0"+ - "\1\7\12\0\22\7\1\143\11\7\6\0\2\7\1\0"+ - "\1\7\12\0\15\7\1\231\16\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\7\1\232\22\7\1\233\7\7\6\0"+ - "\2\7\1\0\1\7\12\0\27\7\1\234\4\7\6\0"+ - "\2\7\1\0\1\7\12\0\3\7\1\232\11\7\1\235"+ - "\16\7\6\0\2\7\1\0\1\7\12\0\4\7\1\143"+ - "\27\7\6\0\2\7\1\0\1\7\12\0\10\7\1\236"+ - "\23\7\6\0\2\7\1\0\1\7\12\0\3\7\1\237"+ - "\1\143\3\7\1\240\23\7\6\0\2\7\1\0\1\7"+ - "\12\0\2\7\1\241\2\7\1\242\26\7\6\0\2\7"+ - "\1\0\1\7\12\0\10\7\1\243\23\7\6\0\2\7"+ - "\1\0\1\7\12\0\15\7\1\143\1\7\1\244\14\7"+ - "\6\0\2\7\1\0\1\7\12\0\15\7\1\225\16\7"+ - "\6\0\2\7\1\0\1\7\12\0\6\7\1\245\25\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\7\1\246\32\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\247\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\250\33\7\6\0"+ - "\2\7\1\0\1\7\12\0\5\7\1\251\26\7\6\0"+ - "\2\7\1\0\1\7\12\0\3\7\1\252\2\7\1\253"+ - "\3\7\1\254\21\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\7\1\255\32\7\6\0\2\7\1\0\1\7\12\0"+ - "\14\7\1\256\17\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\257\33\7\6\0\2\7\1\0\1\7\12\0\2\7"+ - "\1\250\17\7\1\223\11\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\260\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\2\7\1\137\31\7\6\0\2\7\1\0\1\7\12\0"+ - "\4\7\1\261\27\7\6\0\2\7\1\0\1\7\12\0"+ - "\4\7\1\137\27\7\6\0\2\7\1\0\1\7\12\0"+ - "\6\7\1\262\25\7\6\0\2\7\1\0\1\7\12\0"+ - "\4\7\1\263\27\7\6\0\2\7\1\0\1\7\12\0"+ - "\2\7\1\264\1\7\1\265\1\7\1\137\1\7\1\266"+ - "\23\7\6\0\2\7\1\0\1\7\12\0\6\7\1\267"+ - "\25\7\6\0\2\7\1\0\1\7\12\0\15\7\1\270"+ - "\16\7\6\0\2\7\1\0\1\7\12\0\23\7\1\143"+ - "\10\7\6\0\2\7\1\0\1\7\12\0\2\7\1\143"+ - "\3\7\1\50\25\7\6\0\2\7\1\0\1\7\12\0"+ - "\6\7\1\143\25\7\6\0\2\7\1\0\1\7\12\0"+ - "\3\7\1\271\1\7\1\272\26\7\6\0\2\7\1\0"+ - "\1\7\12\0\4\7\1\273\27\7\6\0\2\7\1\0"+ - "\1\7\12\0\4\7\1\225\27\7\6\0\2\7\1\0"+ - "\1\7\12\0\13\7\1\274\20\7\6\0\2\7\1\0"+ - "\1\7\12\0\4\7\1\275\1\7\1\276\25\7\6\0"+ - "\2\7\1\0\1\7\12\0\4\7\1\277\27\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\300\33\7\6\0\2\7"+ - "\1\0\1\7\12\0\16\7\1\242\15\7\6\0\2\7"+ - "\1\0\1\7\12\0\5\7\1\301\26\7\6\0\2\7"+ - "\1\0\1\7\12\0\5\7\1\302\2\7\1\303\23\7"+ - "\6\0\2\7\1\0\1\7\12\0\14\7\1\304\17\7"+ - "\6\0\2\7\1\0\1\7\12\0\10\7\1\305\23\7"+ - "\6\0\2\7\1\0\1\7\12\0\16\7\1\306\15\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\307\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\310\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\5\7\1\311\26\7"+ - "\6\0\2\7\1\0\1\7\12\0\6\7\1\312\25\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\313\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\14\7\1\71\17\7"+ - "\6\0\2\7\1\0\1\7\12\0\14\7\1\155\17\7"+ - "\6\0\2\7\1\0\1\7\12\0\7\7\1\143\24\7"+ - "\7\0\1\206\41\0\2\206\1\0\1\206\11\0\2\7"+ - "\1\0\1\7\12\0\5\7\1\314\26\7\6\0\2\7"+ - "\1\0\1\7\12\0\10\7\1\315\23\7\6\0\2\7"+ - "\1\0\1\7\12\0\13\7\1\316\20\7\6\0\2\7"+ - "\1\0\1\7\12\0\1\317\33\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\320\1\321\32\7\6\0\2\7\1\0"+ - "\1\7\12\0\17\7\1\322\14\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\7\1\323\2\7\1\324\27\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\232\33\7\6\0\2\7"+ - "\1\0\1\7\12\0\27\7\1\325\4\7\6\0\2\7"+ - "\1\0\1\7\12\0\1\326\33\7\6\0\2\7\1\0"+ - "\1\7\12\0\14\7\1\327\17\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\143\33\7\6\0\2\7\1\0\1\7"+ - "\12\0\3\7\1\330\30\7\6\0\2\7\1\0\1\7"+ - "\12\0\6\7\1\331\25\7\6\0\2\7\1\0\1\7"+ - "\12\0\15\7\1\213\16\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\332\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\3\7\1\143\30\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\333\33\7\6\0\2\7\1\0\1\7\12\0\21\7"+ - "\1\120\12\7\6\0\2\7\1\0\1\7\12\0\1\334"+ - "\16\7\1\137\14\7\6\0\2\7\1\0\1\7\12\0"+ - "\6\7\1\270\25\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\335\33\7\6\0\2\7\1\0\1\7\12\0\10\7"+ - "\1\336\23\7\6\0\2\7\1\0\1\7\12\0\1\337"+ - "\33\7\6\0\2\7\1\0\1\7\12\0\14\7\1\340"+ - "\17\7\6\0\2\7\1\0\1\7\12\0\4\7\1\341"+ - "\27\7\6\0\2\7\1\0\1\7\12\0\10\7\1\342"+ - "\23\7\6\0\2\7\1\0\1\7\12\0\27\7\1\322"+ - "\4\7\6\0\2\7\1\0\1\7\12\0\3\7\1\343"+ - "\30\7\6\0\2\7\1\0\1\7\12\0\5\7\1\120"+ - "\26\7\6\0\2\7\1\0\1\7\12\0\1\7\1\317"+ - "\32\7\6\0\2\7\1\0\1\7\12\0\5\7\1\344"+ - "\26\7\6\0\2\7\1\0\1\7\12\0\12\7\1\345"+ - "\21\7\6\0\2\7\1\0\1\7\12\0\10\7\1\346"+ - "\1\347\4\7\1\350\15\7\6\0\2\7\1\0\1\7"+ - "\12\0\6\7\1\351\25\7\6\0\2\7\1\0\1\7"+ - "\12\0\5\7\1\352\26\7\6\0\2\7\1\0\1\7"+ - "\12\0\13\7\1\155\17\7\1\353\6\0\2\7\1\0"+ - "\1\7\12\0\5\7\1\143\26\7\6\0\2\7\1\0"+ - "\1\7\12\0\13\7\1\354\20\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\355\33\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\356\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\14\7\1\357\17\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\153\33\7\6\0\2\7\1\0\1\7\12\0\1\360"+ - "\12\7\1\143\20\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\247\33\7\6\0\2\7\1\0\1\7\12\0\13\7"+ - "\1\300\20\7\6\0\2\7\1\0\1\7\12\0\13\7"+ - "\1\143\20\7\6\0\2\7\1\0\1\7\12\0\12\7"+ - "\1\361\21\7\6\0\2\7\1\0\1\7\12\0\11\7"+ - "\1\362\5\7\1\363\2\7\1\143\11\7\6\0\2\7"+ - "\1\0\1\7\12\0\20\7\1\364\13\7\6\0\2\7"+ - "\1\0\1\7\12\0\3\7\1\365\30\7\6\0\2\7"+ - "\1\0\1\366\12\0\34\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\7\1\367\32\7\6\0\2\7\1\0\1\7"+ - "\12\0\21\7\1\143\12\7\6\0\2\7\1\0\1\7"+ - "\12\0\5\7\1\225\26\7\6\0\2\7\1\0\1\7"+ - "\12\0\11\7\1\370\22\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\7\1\371\32\7\6\0\2\7\1\0\1\7"+ - "\12\0\10\7\1\372\23\7\6\0\2\7\1\0\1\7"+ - "\12\0\15\7\1\276\16\7\6\0\2\7\1\0\1\7"+ - "\12\0\14\7\1\373\17\7\6\0\2\7\1\0\1\7"+ - "\12\0\13\7\1\120\20\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\7\1\374\32\7\6\0\2\7\1\0\1\7"+ - "\12\0\15\7\1\143\16\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\375\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\376\33\7\6\0\2\7\1\0\1\7\12\0\12\7"+ - "\1\113\21\7\6\0\2\7\1\0\1\7\12\0\1\7"+ - "\1\377\32\7\6\0\2\7\1\0\1\7\12\0\4\7"+ - "\1\u0100\27\7\6\0\2\7\1\0\1\7\12\0\14\7"+ - "\1\u0101\17\7\6\0\2\7\1\0\1\7\12\0\4\7"+ - "\1\u0102\27\7\6\0\2\7\1\0\1\7\12\0\17\7"+ - "\1\u0103\14\7\6\0\2\7\1\0\1\7\12\0\3\7"+ - "\1\225\30\7\6\0\2\7\1\0\1\7\12\0\3\7"+ - "\1\u0104\30\7\6\0\2\7\1\0\1\7\12\0\14\7"+ - "\1\u0105\17\7\6\0\2\7\1\0\1\7\12\0\4\7"+ - "\1\u0106\12\7\1\363\14\7\6\0\2\7\1\0\1\7"+ - "\12\0\5\7\1\213\26\7\6\0\2\7\1\0\1\7"+ - "\12\0\11\7\1\u0107\22\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\u0108\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\10\7\1\u0109\23\7\6\0\2\7\1\0\1\7\12\0"+ - "\10\7\1\u010a\23\7\6\0\2\7\1\0\1\7\12\0"+ - "\5\7\1\u010b\26\7\6\0\2\7\1\0\1\7\12\0"+ - "\5\7\1\u010c\26\7\6\0\2\7\1\0\1\7\12\0"+ - "\11\7\1\120\22\7\6\0\2\7\1\0\1\7\12\0"+ - "\14\7\1\u010d\17\7\6\0\2\7\1\0\1\7\12\0"+ - "\16\7\1\u010e\15\7\6\0\2\7\1\0\1\7\12\0"+ - "\6\7\1\u010f\25\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\u0110\33\7\6\0\2\7\1\0\1\7\12\0\4\7"+ - "\1\u0111\27\7\6\0\2\7\1\0\1\7\12\0\3\7"+ - "\1\u0112\30\7\6\0\2\7\1\0\1\7\12\0\1\u0113"+ - "\33\7\6\0\2\7\1\0\1\7\12\0\15\7\1\155"+ - "\16\7\6\0\2\7\1\0\1\7\12\0\4\7\1\u0114"+ - "\27\7\6\0\2\7\1\0\1\7\12\0\1\7\1\u0115"+ - "\32\7\6\0\2\7\1\0\1\7\12\0\1\u0116\33\7"+ - "\6\0\2\7\1\0\1\7\12\0\4\7\1\u0117\27\7"+ - "\6\0\2\7\1\0\1\366\12\0\1\7\1\u0118\32\7"+ - "\6\0\2\7\1\0\1\7\12\0\12\7\1\225\21\7"+ - "\6\0\2\7\1\0\1\7\12\0\17\7\1\u0119\14\7"+ - "\6\0\2\7\1\0\1\7\12\0\4\7\1\u011a\27\7"+ - "\6\0\2\7\1\0\1\7\12\0\5\7\1\u011b\26\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\155\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\27\7\1\u011c\4\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\u011d\33\7\6\0"+ - "\2\7\1\0\1\7\12\0\21\7\1\u011e\12\7\6\0"+ - "\2\7\1\0\1\7\12\0\14\7\1\u011f\17\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\u0120\33\7\6\0\2\7"+ - "\1\0\1\7\12\0\1\u0121\33\7\6\0\2\7\1\0"+ - "\1\7\12\0\3\7\1\u0122\30\7\6\0\2\7\1\0"+ - "\1\7\12\0\5\7\1\202\26\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\u0123\33\7\6\0\2\7\1\0\1\7"+ - "\12\0\15\7\1\u0124\16\7\6\0\2\7\1\0\1\7"+ - "\12\0\20\7\1\u0125\13\7\6\0\2\7\1\0\1\7"+ - "\12\0\4\7\1\u0126\27\7\6\0\2\7\1\0\1\7"+ - "\12\0\4\7\1\u0127\27\7\6\0\2\7\1\0\1\7"+ - "\12\0\14\7\1\u0128\17\7\6\0\2\7\1\0\1\7"+ - "\12\0\5\7\1\u0107\26\7\6\0\2\7\1\0\1\7"+ - "\12\0\11\7\1\u0129\22\7\6\0\2\7\1\0\1\7"+ - "\12\0\10\7\1\143\23\7\6\0\2\7\1\0\1\7"+ - "\12\0\6\7\1\u012a\25\7\6\0\2\7\1\0\1\7"+ - "\12\0\14\7\1\126\17\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\7\1\u012b\32\7\6\0\2\7\1\0\1\7"+ - "\12\0\3\7\1\u012c\30\7\6\0\2\7\1\0\1\7"+ - "\12\0\6\7\1\u012d\25\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\107\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\7\1\232\32\7\6\0\2\7\1\0\1\7\12\0"+ - "\3\7\1\u012e\20\7\1\u012f\7\7\6\0\2\7\1\0"+ - "\1\7\12\0\4\7\1\u0130\27\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\u0131\33\7\6\0\2\7\1\0\1\7"+ - "\12\0\14\7\1\215\17\7\6\0\2\7\1\0\1\7"+ - "\12\0\13\7\1\u0132\20\7\6\0\2\7\1\0\1\7"+ - "\12\0\27\7\1\143\4\7\6\0\2\7\1\0\1\7"+ - "\12\0\15\7\1\u0133\16\7\6\0\2\7\1\0\1\7"+ - "\12\0\5\7\1\u0134\26\7\6\0\2\7\1\0\1\7"+ - "\12\0\14\7\1\u0123\17\7\6\0\2\7\1\0\1\7"+ - "\12\0\6\7\1\u0135\25\7\6\0\2\7\1\0\1\7"+ - "\12\0\5\7\1\u0136\26\7\6\0\2\7\1\0\1\7"+ - "\12\0\4\7\1\u0137\27\7\6\0\2\7\1\0\1\7"+ - "\12\0\5\7\1\u0129\26\7\6\0\2\7\1\0\1\7"+ - "\12\0\11\7\1\145\22\7\6\0\2\7\1\0\1\7"+ - "\12\0\31\7\1\237\2\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\7\1\u0138\32\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\u0139\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\7\1\257\32\7\6\0\2\7\1\0\1\7\12\0"+ - "\6\7\1\276\25\7\6\0\2\7\1\0\1\7\12\0"+ - "\1\155\33\7\6\0\2\7\1\0\1\7\12\0\1\7"+ - "\1\155\32\7\6\0\2\7\1\0\1\7\12\0\1\u013a"+ - "\33\7\6\0\2\7\1\0\1\7\12\0\6\7\1\120"+ - "\25\7\6\0\2\7\1\0\1\7\12\0\1\u013b\33\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\u013c\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\14\7\1\u013d\17\7"+ - "\6\0\2\7\1\0\1\7\12\0\25\7\2\143\5\7"+ - "\6\0\2\7\1\0\1\7\12\0\27\7\1\155\4\7"+ - "\6\0\2\7\1\0\1\7\12\0\4\7\1\213\27\7"+ - "\6\0\2\7\1\0\1\7\12\0\11\7\1\u013e\22\7"+ - "\6\0\2\7\1\0\1\7\12\0\10\7\1\225\23\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\u013f\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\11\7\1\u0140\22\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\7\1\u0141\32\7"+ - "\6\0\2\7\1\0\1\7\12\0\13\7\1\u0142\20\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\7\1\u0143\32\7"+ - "\6\0\2\7\1\0\1\7\12\0\6\7\1\u0144\25\7"+ - "\6\0\2\7\1\0\1\7\12\0\6\7\1\u0133\25\7"+ - "\6\0\2\7\1\0\1\u0145\12\0\34\7\6\0\2\7"+ - "\1\0\1\7\12\0\14\7\1\u0146\17\7\6\0\2\7"+ - "\1\0\1\7\12\0\4\7\1\u0147\4\7\1\202\22\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\7\1\u0112\32\7"+ - "\6\0\2\7\1\0\1\7\12\0\1\u0148\33\7\6\0"+ - "\2\7\1\0\1\7\12\0\11\7\1\u0149\22\7\6\0"+ - "\2\7\1\0\1\7\12\0\5\7\1\u014a\26\7\6\0"+ - "\2\7\1\0\1\7\12\0\6\7\1\u014b\25\7\6\0"+ - "\2\7\1\0\1\7\12\0\4\7\1\u014c\27\7\6\0"+ - "\2\7\1\0\1\7\12\0\5\7\1\71\26\7\6\0"+ - "\2\7\1\0\1\7\12\0\13\7\1\u014d\20\7\6\0"+ - "\2\7\1\0\1\7\12\0\5\7\1\u014e\26\7\6\0"+ - "\2\7\1\0\1\7\12\0\20\7\1\143\13\7\6\0"+ - "\2\7\1\0\1\7\12\0\4\7\1\u014f\27\7\6\0"+ - "\2\7\1\0\1\7\12\0\4\7\1\u0150\27\7\6\0"+ - "\2\7\1\0\1\7\12\0\5\7\1\310\26\7\6\0"+ - "\2\7\1\0\1\7\12\0\15\7\1\113\16\7\6\0"+ - "\2\7\1\0\1\7\12\0\11\7\1\u0151\22\7\6\0"+ - "\2\7\1\0\1\7\12\0\12\7\1\u0152\21\7\6\0"+ - "\2\7\1\0\1\7\12\0\6\7\1\u0153\25\7\6\0"+ - "\2\7\1\0\1\u0154\12\0\34\7\6\0\2\7\1\0"+ - "\1\7\12\0\6\7\1\u012e\25\7\6\0\2\7\1\0"+ - "\1\7\12\0\11\7\1\u0155\22\7\6\0\2\7\1\0"+ - "\1\7\12\0\25\7\1\143\2\7\1\143\3\7\6\0"+ - "\2\7\1\0\1\7\12\0\27\7\1\u0156\4\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\u0157\33\7\6\0\2\7"+ - "\1\0\1\7\12\0\6\7\1\213\25\7\6\0\2\7"+ - "\1\0\1\7\12\0\1\u0158\33\7\6\0\2\7\1\0"+ - "\1\7\12\0\5\7\1\u012c\26\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\213\33\7\6\0\2\7\1\0\1\7"+ - "\12\0\1\u0100\33\7\6\0\2\7\1\0\1\7\12\0"+ - "\10\7\1\223\23\7\6\0\2\7\1\0\1\7\12\0"+ - "\27\7\1\213\4\7\6\0\2\7\1\0\1\7\12\0"+ - "\2\7\1\u012e\1\7\1\u0159\5\7\1\u0152\21\7\6\0"+ - "\2\7\1\0\1\7\12\0\1\u015a\33\7\6\0\2\7"+ - "\1\0\1\7\12\0\4\7\1\u015b\27\7\6\0\2\7"+ - "\1\0\1\7\12\0\5\7\1\u0100\26\7\6\0\2\7"+ - "\1\0\1\7\12\0\15\7\1\370\16\7\6\0\2\7"+ - "\1\0\1\7\12\0\14\7\1\u015c\17\7\6\0\2\7"+ - "\1\0\1\7\12\0\10\7\1\u0100\23\7\6\0\2\7"+ - "\1\0\1\7\12\0\21\7\1\213\12\7\6\0\2\7"+ - "\1\0\1\7\12\0\15\7\1\u015d\16\7\6\0\2\7"+ - "\1\0\1\7\12\0\1\u015e\33\7\6\0\2\7\1\0"+ - "\1\7\12\0\10\7\1\u015f\23\7\6\0\2\7\1\0"+ - "\1\7\12\0\4\7\1\u0160\27\7\6\0\2\7\1\0"+ - "\1\7\12\0\1\7\1\u0161\32\7\6\0\2\7\1\0"+ - "\1\7\12\0\15\7\1\u0162\16\7\6\0\2\7\1\0"+ - "\1\7\12\0\22\7\1\213\11\7\4\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[15936]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\4\0\2\11\4\1\1\11\3\1\1\11\31\1\2\11"+ - "\2\1\1\11\2\1\1\11\2\1\1\11\1\1\1\0"+ - "\1\1\1\11\113\1\3\11\1\1\1\0\333\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[354]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int STRING = 1; + public static final int YYINITIAL = 0; + public static final int MLC = 3; + public static final int CHAR = 2; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\4\1\1\25\0\1\4\1\0\1\54\4\0\1\55\2\15" + + "\1\13\1\11\1\0\1\12\1\17\1\14\1\3\1\50\1\50\1\3" + "\1\45\3\3\1\46\1\3\1\16\1\0\1\10\1\7\1\6\2\0" + + "\1\21\1\37\1\31\1\22\1\20\1\44\1\47\1\41\1\34\1\51" + "\1\52\1\23\1\35\1\26\1\33\1\42\1\53\1\25\1\30\1\24" + + "\1\32\1\36\1\40\1\43\1\27\1\2\1\56\1\0\1\57\1\0" + "\1\5\1\0\1\21\1\37\1\31\1\22\1\20\1\44\1\47\1\41" + + "\1\34\1\51\1\52\1\23\1\35\1\26\1\33\1\42\1\53\1\25" + "\1\30\1\24\1\32\1\36\1\40\1\43\1\27\1\2\uff85\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 = "\4\0\1\1\1\2\1\1\1\3\1\4\5\5\1\6" + "\1\1\1\7\27\1\1\10\1\11\1\12\1\13\1\14" + + "\1\15\1\13\1\16\1\17\1\13\1\20\1\13\1\0" + "\1\21\1\22\4\1\1\23\45\1\2\23\4\1\1\23" + "\7\1\1\23\22\1\1\24\1\13\1\25\1\7\1\0" + + "\3\1\1\26\51\1\1\23\4\1\1\23\2\1\1\23" + "\22\1\1\23\4\1\1\23\4\1\1\23\17\1\1\23" + "\35\1\1\23\5\1\1\23\10\1\1\23\5\1\1\23" + + "\11\1\1\23\42\1\1\23\4\1\1\23\16\1\1\26" + "\4\1"; + + private static int[] zzUnpackAction() { + int[] result = new int[354]; + 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\60\0\140\0\220\0\300\0\300\0\360\0\u0120" + + "\0\u0150\0\u0180\0\300\0\u01b0\0\u01e0\0\u0210\0\300\0\u0240" + + "\0\u0270\0\u02a0\0\u02d0\0\u0300\0\u0330\0\u0360\0\u0390\0\u03c0" + + "\0\u03f0\0\u0420\0\u0450\0\u0480\0\u04b0\0\u04e0\0\u0510\0\u0540" + + "\0\u0570\0\u05a0\0\u05d0\0\u0600\0\u0630\0\u0660\0\u0690\0\u06c0" + + "\0\300\0\300\0\u06f0\0\u0720\0\300\0\u0750\0\u0780\0\300" + "\0\u07b0\0\u07e0\0\300\0\u0810\0\u0840\0\u0870\0\300\0\u08a0" + + "\0\u08d0\0\u0900\0\u0930\0\u0960\0\u0990\0\u09c0\0\u09f0\0\u0a20" + + "\0\u0a50\0\u0a80\0\u0ab0\0\u0ae0\0\u0b10\0\u0b40\0\u0b70\0\u0ba0" + + "\0\u0bd0\0\u0c00\0\u0c30\0\u0c60\0\u0c90\0\u0cc0\0\u0cf0\0\u0d20" + + "\0\u0d50\0\u0d80\0\u0db0\0\u0de0\0\u0e10\0\u0e40\0\u0e70\0\u0ea0" + + "\0\u0ed0\0\u0f00\0\u0f30\0\u0f60\0\u0f90\0\u0fc0\0\u0ff0\0\u1020" + + "\0\u1050\0\u1080\0\360\0\u10b0\0\u10e0\0\u1110\0\u1140\0\u1170" + + "\0\u11a0\0\u11d0\0\u1200\0\u1230\0\u1260\0\u1290\0\u12c0\0\u12f0" + + "\0\u1320\0\u1350\0\u1380\0\u13b0\0\u13e0\0\u1410\0\u1440\0\u1470" + + "\0\u14a0\0\u14d0\0\u1500\0\u1530\0\u1560\0\u1590\0\u15c0\0\u15f0" + + "\0\u1620\0\u1650\0\300\0\300\0\300\0\u1680\0\u1680\0\u16b0" + + "\0\u16e0\0\u1710\0\360\0\u1740\0\u0960\0\u1770\0\u17a0\0\u17d0" + + "\0\u1800\0\u1830\0\u1860\0\u1890\0\u18c0\0\u18f0\0\u1920\0\u1950" + + "\0\u1980\0\u19b0\0\u19e0\0\u1a10\0\u1a40\0\u1a70\0\u1aa0\0\u1ad0" + + "\0\u1b00\0\u1b30\0\u1b60\0\u1b90\0\u1bc0\0\u1bf0\0\u1c20\0\u1c50" + + "\0\u1c80\0\u1cb0\0\u1ce0\0\u1d10\0\u1d40\0\u1d70\0\u1da0\0\u1dd0" + + "\0\u1e00\0\u1e30\0\u1e60\0\u1e90\0\u1ec0\0\u1ef0\0\u1f20\0\u1f50" + + "\0\u1f80\0\u1fb0\0\u1fe0\0\u2010\0\u2040\0\u2070\0\u20a0\0\u20d0" + + "\0\u2100\0\u2130\0\u2160\0\u2190\0\u21c0\0\u21f0\0\u2220\0\u2250" + + "\0\u2280\0\u22b0\0\u22e0\0\u2310\0\u2340\0\u2370\0\u12f0\0\u23a0" + + "\0\u23d0\0\u2400\0\u2430\0\u2460\0\u2490\0\u24c0\0\u24f0\0\u2520" + + "\0\u2550\0\u2580\0\u25b0\0\u25e0\0\u2610\0\u2640\0\u2670\0\u26a0" + + "\0\u26d0\0\u2700\0\u2730\0\u2760\0\u2790\0\u27c0\0\u27f0\0\u2820" + + "\0\u2850\0\u2880\0\u28b0\0\u28e0\0\u2910\0\u2940\0\u2970\0\u29a0" + + "\0\u29d0\0\u2a00\0\u2a30\0\u2a60\0\u2a90\0\u2ac0\0\u2af0\0\u2b20" + + "\0\u2b50\0\u2b80\0\u2bb0\0\u2be0\0\u2c10\0\u2c40\0\u2c70\0\u2ca0" + + "\0\u2cd0\0\u2d00\0\u2d30\0\u2d60\0\u2d90\0\u2dc0\0\u2df0\0\u15f0" + + "\0\u2e20\0\u2e50\0\u2e80\0\u2eb0\0\u2ee0\0\u0c30\0\u2f10\0\u2f40" + + "\0\u2f70\0\u2fa0\0\u2fd0\0\u3000\0\u3030\0\u3060\0\u0ff0\0\u3090" + + "\0\u30c0\0\u2040\0\u30f0\0\u3120\0\u2ca0\0\u3150\0\u3180\0\u31b0" + + "\0\u31e0\0\u3210\0\u3240\0\u3270\0\u32a0\0\u32d0\0\u3300\0\u3330" + + "\0\u3360\0\u3390\0\u33c0\0\u33f0\0\u3420\0\u3450\0\u3480\0\u34b0" + + "\0\u34e0\0\u3510\0\u3540\0\u3570\0\u35a0\0\u35d0\0\u3600\0\u3630" + + "\0\u3660\0\u3690\0\u36c0\0\u36f0\0\u3720\0\u3750\0\u3780\0\u37b0" + + "\0\u37e0\0\u3810\0\u3840\0\u3870\0\u38a0\0\u38d0\0\u3900\0\u3930" + + "\0\u3960\0\u3990\0\u39c0\0\u39f0\0\u3a20\0\u3a50\0\u3a80\0\u3ab0" + + "\0\u3ae0\0\u3b10\0\u3b40\0\u3b70\0\u3ba0\0\u3bd0\0\u3c00\0\u3c30" + + "\0\u3c60\0\u3c90\0\u3cc0\0\u3cf0\0\u3d20\0\u3d50\0\u3d80\0\u3db0" + "\0\u3de0\0\u3e10"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[354]; + 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 = "\1\5\1\6\1\7\1\10\1\11\1\5\1\12\1\13" + "\1\14\1\13\1\15\1\13\1\16\1\17\1\20\1\21" + + "\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31" + "\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41" + + "\1\42\1\43\1\44\1\7\1\45\2\10\1\46\1\10" + "\1\47\1\50\1\7\1\51\1\52\1\53\1\5\1\54" + + "\1\55\52\54\1\56\3\54\1\57\1\60\53\57\1\61" + "\2\57\1\62\1\63\11\62\1\64\44\62\62\0\2\7" + + "\1\0\1\7\12\0\34\7\7\0\1\10\13\0\1\21" + "\1\65\24\0\2\10\1\0\1\10\13\0\1\11\62\0" + + "\1\13\56\0\2\13\62\0\1\66\60\0\1\67\46\0" + "\1\7\15\0\25\7\2\0\1\7\1\0\3\7\7\0" + "\1\21\14\0\1\65\24\0\2\21\1\0\1\21\11\0" + + "\2\7\1\0\1\7\12\0\23\7\1\70\10\7\6\0" + "\2\7\1\0\1\7\12\0\2\7\1\71\1\72\2\7" + "\1\73\1\7\1\74\1\7\1\75\3\7\1\76\15\7" + + "\6\0\2\7\1\0\1\7\12\0\1\77\1\100\3\7" + "\1\101\5\7\1\102\1\103\17\7\6\0\2\7\1\0" + + "\1\7\12\0\1\104\12\7\1\105\1\106\17\7\6\0" + "\2\7\1\0\1\7\12\0\1\107\1\110\3\7\1\111" + + "\1\7\1\112\3\7\1\113\1\114\17\7\6\0\2\7" + "\1\0\1\7\12\0\1\115\13\7\1\116\17\7\6\0" + + "\2\7\1\0\1\7\12\0\12\7\1\117\1\120\20\7" + "\6\0\2\7\1\0\1\7\12\0\1\121\33\7\6\0" + "\2\7\1\0\1\7\12\0\1\122\3\7\1\123\2\7" + + "\1\124\2\7\1\125\1\126\1\127\1\130\3\7\1\131" + "\12\7\6\0\2\7\1\0\1\7\12\0\5\7\1\132" + + "\4\7\1\133\1\134\5\7\1\135\12\7\6\0\2\7" + "\1\0\1\7\12\0\6\7\1\136\1\7\1\137\11\7" + "\1\140\11\7\6\0\2\7\1\0\1\7\12\0\3\7" + + "\1\141\1\7\1\142\1\143\2\7\1\144\1\145\5\7" + "\1\146\1\7\1\147\11\7\6\0\2\7\1\0\1\7" + + "\12\0\6\7\1\150\1\7\1\143\4\7\1\113\11\7" + "\1\151\4\7\6\0\2\7\1\0\1\7\12\0\1\152" + + "\1\153\11\7\1\154\1\155\17\7\6\0\2\7\1\0" + "\1\7\12\0\1\7\1\156\32\7\6\0\2\7\1\0" + + "\1\7\12\0\1\157\6\7\1\160\3\7\1\161\1\162" + "\17\7\6\0\2\7\1\0\1\7\12\0\14\7\1\163" + "\4\7\1\164\12\7\6\0\2\7\1\0\1\7\12\0" + + "\1\7\1\165\32\7\6\0\2\7\1\0\1\7\12\0" + "\1\166\1\167\3\7\1\170\5\7\1\171\1\172\17\7" + "\6\0\2\7\1\0\1\7\12\0\3\7\1\173\1\7" + + "\1\174\5\7\1\175\20\7\6\0\2\7\1\0\1\7" + "\12\0\1\176\4\7\1\177\4\7\1\200\21\7\6\0" + "\2\7\1\0\1\7\12\0\13\7\1\201\20\7\6\0" + + "\2\7\1\0\1\7\12\0\1\202\33\7\4\0\57\53" + "\1\203\1\54\1\0\52\54\1\0\3\54\54\0\1\204" + + "\3\0\1\57\1\0\53\57\1\0\2\57\55\0\1\204" + "\2\0\1\62\1\0\11\62\1\0\44\62\14\0\1\205" + + "\46\0\1\206\5\0\2\207\32\0\2\206\1\0\1\206" + "\7\0\1\66\1\0\56\66\2\0\2\7\1\0\1\7" + + "\12\0\4\7\1\210\7\7\1\211\17\7\6\0\2\7" + "\1\0\1\7\12\0\2\7\1\143\31\7\6\0\2\7" + "\1\0\1\7\12\0\3\7\1\143\1\137\27\7\6\0" + + "\2\7\1\0\1\7\12\0\2\7\1\143\4\7\1\143" + "\24\7\6\0\2\7\1\0\1\7\12\0\11\7\1\143" + "\22\7\6\0\2\7\1\0\1\7\12\0\4\7\1\212" + + "\27\7\6\0\2\7\1\0\1\7\12\0\1\7\1\143" + "\25\7\1\213\4\7\6\0\2\7\1\0\1\7\12\0" + "\3\7\1\214\4\7\1\215\23\7\6\0\2\7\1\0" + + "\1\7\12\0\4\7\1\216\27\7\6\0\2\7\1\0" + "\1\7\12\0\13\7\1\113\20\7\6\0\2\7\1\0" + "\1\7\12\0\12\7\1\217\21\7\6\0\2\7\1\0" + + "\1\7\12\0\10\7\1\220\23\7\6\0\2\7\1\0" + "\1\7\12\0\16\7\1\221\5\7\1\120\7\7\6\0" + "\2\7\1\0\1\7\12\0\6\7\1\222\11\7\1\223" + + "\6\7\1\224\4\7\6\0\2\7\1\0\1\7\12\0" + "\32\7\1\225\1\7\6\0\2\7\1\0\1\7\12\0" + "\23\7\1\120\10\7\6\0\2\7\1\0\1\7\12\0" + + "\17\7\1\226\14\7\6\0\2\7\1\0\1\7\12\0" + "\1\7\1\227\12\7\1\230\17\7\6\0\2\7\1\0" + "\1\7\12\0\22\7\1\225\11\7\6\0\2\7\1\0" + + "\1\7\12\0\22\7\1\143\11\7\6\0\2\7\1\0" + "\1\7\12\0\15\7\1\231\16\7\6\0\2\7\1\0" + "\1\7\12\0\1\7\1\232\22\7\1\233\7\7\6\0" + + "\2\7\1\0\1\7\12\0\27\7\1\234\4\7\6\0" + "\2\7\1\0\1\7\12\0\3\7\1\232\11\7\1\235" + "\16\7\6\0\2\7\1\0\1\7\12\0\4\7\1\143" + + "\27\7\6\0\2\7\1\0\1\7\12\0\10\7\1\236" + "\23\7\6\0\2\7\1\0\1\7\12\0\3\7\1\237" + "\1\143\3\7\1\240\23\7\6\0\2\7\1\0\1\7" + + "\12\0\2\7\1\241\2\7\1\242\26\7\6\0\2\7" + "\1\0\1\7\12\0\10\7\1\243\23\7\6\0\2\7" + "\1\0\1\7\12\0\15\7\1\143\1\7\1\244\14\7" + + "\6\0\2\7\1\0\1\7\12\0\15\7\1\225\16\7" + "\6\0\2\7\1\0\1\7\12\0\6\7\1\245\25\7" + "\6\0\2\7\1\0\1\7\12\0\1\7\1\246\32\7" + + "\6\0\2\7\1\0\1\7\12\0\13\7\1\247\20\7" + "\6\0\2\7\1\0\1\7\12\0\1\250\33\7\6\0" + "\2\7\1\0\1\7\12\0\5\7\1\251\26\7\6\0" + + "\2\7\1\0\1\7\12\0\3\7\1\252\2\7\1\253" + "\3\7\1\254\21\7\6\0\2\7\1\0\1\7\12\0" + "\1\7\1\255\32\7\6\0\2\7\1\0\1\7\12\0" + + "\14\7\1\256\17\7\6\0\2\7\1\0\1\7\12\0" + "\1\257\33\7\6\0\2\7\1\0\1\7\12\0\2\7" + "\1\250\17\7\1\223\11\7\6\0\2\7\1\0\1\7" + + "\12\0\1\260\33\7\6\0\2\7\1\0\1\7\12\0" + "\2\7\1\137\31\7\6\0\2\7\1\0\1\7\12\0" + "\4\7\1\261\27\7\6\0\2\7\1\0\1\7\12\0" + + "\4\7\1\137\27\7\6\0\2\7\1\0\1\7\12\0" + "\6\7\1\262\25\7\6\0\2\7\1\0\1\7\12\0" + "\4\7\1\263\27\7\6\0\2\7\1\0\1\7\12\0" + + "\2\7\1\264\1\7\1\265\1\7\1\137\1\7\1\266" + "\23\7\6\0\2\7\1\0\1\7\12\0\6\7\1\267" + "\25\7\6\0\2\7\1\0\1\7\12\0\15\7\1\270" + + "\16\7\6\0\2\7\1\0\1\7\12\0\23\7\1\143" + "\10\7\6\0\2\7\1\0\1\7\12\0\2\7\1\143" + "\3\7\1\50\25\7\6\0\2\7\1\0\1\7\12\0" + + "\6\7\1\143\25\7\6\0\2\7\1\0\1\7\12\0" + "\3\7\1\271\1\7\1\272\26\7\6\0\2\7\1\0" + "\1\7\12\0\4\7\1\273\27\7\6\0\2\7\1\0" + + "\1\7\12\0\4\7\1\225\27\7\6\0\2\7\1\0" + "\1\7\12\0\13\7\1\274\20\7\6\0\2\7\1\0" + "\1\7\12\0\4\7\1\275\1\7\1\276\25\7\6\0" + + "\2\7\1\0\1\7\12\0\4\7\1\277\27\7\6\0" + "\2\7\1\0\1\7\12\0\1\300\33\7\6\0\2\7" + "\1\0\1\7\12\0\16\7\1\242\15\7\6\0\2\7" + + "\1\0\1\7\12\0\5\7\1\301\26\7\6\0\2\7" + "\1\0\1\7\12\0\5\7\1\302\2\7\1\303\23\7" + "\6\0\2\7\1\0\1\7\12\0\14\7\1\304\17\7" + + "\6\0\2\7\1\0\1\7\12\0\10\7\1\305\23\7" + "\6\0\2\7\1\0\1\7\12\0\16\7\1\306\15\7" + "\6\0\2\7\1\0\1\7\12\0\13\7\1\307\20\7" + + "\6\0\2\7\1\0\1\7\12\0\13\7\1\310\20\7" + "\6\0\2\7\1\0\1\7\12\0\5\7\1\311\26\7" + "\6\0\2\7\1\0\1\7\12\0\6\7\1\312\25\7" + + "\6\0\2\7\1\0\1\7\12\0\13\7\1\313\20\7" + "\6\0\2\7\1\0\1\7\12\0\14\7\1\71\17\7" + "\6\0\2\7\1\0\1\7\12\0\14\7\1\155\17\7" + + "\6\0\2\7\1\0\1\7\12\0\7\7\1\143\24\7" + "\7\0\1\206\41\0\2\206\1\0\1\206\11\0\2\7" + "\1\0\1\7\12\0\5\7\1\314\26\7\6\0\2\7" + + "\1\0\1\7\12\0\10\7\1\315\23\7\6\0\2\7" + "\1\0\1\7\12\0\13\7\1\316\20\7\6\0\2\7" + "\1\0\1\7\12\0\1\317\33\7\6\0\2\7\1\0" + + "\1\7\12\0\1\320\1\321\32\7\6\0\2\7\1\0" + "\1\7\12\0\17\7\1\322\14\7\6\0\2\7\1\0" + "\1\7\12\0\1\7\1\323\2\7\1\324\27\7\6\0" + + "\2\7\1\0\1\7\12\0\1\232\33\7\6\0\2\7" + "\1\0\1\7\12\0\27\7\1\325\4\7\6\0\2\7" + "\1\0\1\7\12\0\1\326\33\7\6\0\2\7\1\0" + + "\1\7\12\0\14\7\1\327\17\7\6\0\2\7\1\0" + "\1\7\12\0\1\143\33\7\6\0\2\7\1\0\1\7" + "\12\0\3\7\1\330\30\7\6\0\2\7\1\0\1\7" + + "\12\0\6\7\1\331\25\7\6\0\2\7\1\0\1\7" + "\12\0\15\7\1\213\16\7\6\0\2\7\1\0\1\7" + "\12\0\1\332\33\7\6\0\2\7\1\0\1\7\12\0" + + "\3\7\1\143\30\7\6\0\2\7\1\0\1\7\12\0" + "\1\333\33\7\6\0\2\7\1\0\1\7\12\0\21\7" + "\1\120\12\7\6\0\2\7\1\0\1\7\12\0\1\334" + + "\16\7\1\137\14\7\6\0\2\7\1\0\1\7\12\0" + "\6\7\1\270\25\7\6\0\2\7\1\0\1\7\12\0" + "\1\335\33\7\6\0\2\7\1\0\1\7\12\0\10\7" + + "\1\336\23\7\6\0\2\7\1\0\1\7\12\0\1\337" + "\33\7\6\0\2\7\1\0\1\7\12\0\14\7\1\340" + "\17\7\6\0\2\7\1\0\1\7\12\0\4\7\1\341" + + "\27\7\6\0\2\7\1\0\1\7\12\0\10\7\1\342" + "\23\7\6\0\2\7\1\0\1\7\12\0\27\7\1\322" + "\4\7\6\0\2\7\1\0\1\7\12\0\3\7\1\343" + + "\30\7\6\0\2\7\1\0\1\7\12\0\5\7\1\120" + "\26\7\6\0\2\7\1\0\1\7\12\0\1\7\1\317" + "\32\7\6\0\2\7\1\0\1\7\12\0\5\7\1\344" + + "\26\7\6\0\2\7\1\0\1\7\12\0\12\7\1\345" + "\21\7\6\0\2\7\1\0\1\7\12\0\10\7\1\346" + "\1\347\4\7\1\350\15\7\6\0\2\7\1\0\1\7" + + "\12\0\6\7\1\351\25\7\6\0\2\7\1\0\1\7" + "\12\0\5\7\1\352\26\7\6\0\2\7\1\0\1\7" + "\12\0\13\7\1\155\17\7\1\353\6\0\2\7\1\0" + + "\1\7\12\0\5\7\1\143\26\7\6\0\2\7\1\0" + "\1\7\12\0\13\7\1\354\20\7\6\0\2\7\1\0" + "\1\7\12\0\1\355\33\7\6\0\2\7\1\0\1\7" + + "\12\0\1\356\33\7\6\0\2\7\1\0\1\7\12\0" + "\14\7\1\357\17\7\6\0\2\7\1\0\1\7\12\0" + "\1\153\33\7\6\0\2\7\1\0\1\7\12\0\1\360" + + "\12\7\1\143\20\7\6\0\2\7\1\0\1\7\12\0" + "\1\247\33\7\6\0\2\7\1\0\1\7\12\0\13\7" + "\1\300\20\7\6\0\2\7\1\0\1\7\12\0\13\7" + + "\1\143\20\7\6\0\2\7\1\0\1\7\12\0\12\7" + "\1\361\21\7\6\0\2\7\1\0\1\7\12\0\11\7" + "\1\362\5\7\1\363\2\7\1\143\11\7\6\0\2\7" + + "\1\0\1\7\12\0\20\7\1\364\13\7\6\0\2\7" + "\1\0\1\7\12\0\3\7\1\365\30\7\6\0\2\7" + "\1\0\1\366\12\0\34\7\6\0\2\7\1\0\1\7" + + "\12\0\1\7\1\367\32\7\6\0\2\7\1\0\1\7" + "\12\0\21\7\1\143\12\7\6\0\2\7\1\0\1\7" + "\12\0\5\7\1\225\26\7\6\0\2\7\1\0\1\7" + + "\12\0\11\7\1\370\22\7\6\0\2\7\1\0\1\7" + "\12\0\1\7\1\371\32\7\6\0\2\7\1\0\1\7" + "\12\0\10\7\1\372\23\7\6\0\2\7\1\0\1\7" + + "\12\0\15\7\1\276\16\7\6\0\2\7\1\0\1\7" + "\12\0\14\7\1\373\17\7\6\0\2\7\1\0\1\7" + "\12\0\13\7\1\120\20\7\6\0\2\7\1\0\1\7" + + "\12\0\1\7\1\374\32\7\6\0\2\7\1\0\1\7" + "\12\0\15\7\1\143\16\7\6\0\2\7\1\0\1\7" + "\12\0\1\375\33\7\6\0\2\7\1\0\1\7\12\0" + + "\1\376\33\7\6\0\2\7\1\0\1\7\12\0\12\7" + "\1\113\21\7\6\0\2\7\1\0\1\7\12\0\1\7" + "\1\377\32\7\6\0\2\7\1\0\1\7\12\0\4\7" + + "\1\u0100\27\7\6\0\2\7\1\0\1\7\12\0\14\7" + "\1\u0101\17\7\6\0\2\7\1\0\1\7\12\0\4\7" + + "\1\u0102\27\7\6\0\2\7\1\0\1\7\12\0\17\7" + "\1\u0103\14\7\6\0\2\7\1\0\1\7\12\0\3\7" + "\1\225\30\7\6\0\2\7\1\0\1\7\12\0\3\7" + + "\1\u0104\30\7\6\0\2\7\1\0\1\7\12\0\14\7" + "\1\u0105\17\7\6\0\2\7\1\0\1\7\12\0\4\7" + + "\1\u0106\12\7\1\363\14\7\6\0\2\7\1\0\1\7" + "\12\0\5\7\1\213\26\7\6\0\2\7\1\0\1\7" + + "\12\0\11\7\1\u0107\22\7\6\0\2\7\1\0\1\7" + "\12\0\1\u0108\33\7\6\0\2\7\1\0\1\7\12\0" + + "\10\7\1\u0109\23\7\6\0\2\7\1\0\1\7\12\0" + "\10\7\1\u010a\23\7\6\0\2\7\1\0\1\7\12\0" + + "\5\7\1\u010b\26\7\6\0\2\7\1\0\1\7\12\0" + "\5\7\1\u010c\26\7\6\0\2\7\1\0\1\7\12\0" + "\11\7\1\120\22\7\6\0\2\7\1\0\1\7\12\0" + + "\14\7\1\u010d\17\7\6\0\2\7\1\0\1\7\12\0" + "\16\7\1\u010e\15\7\6\0\2\7\1\0\1\7\12\0" + + "\6\7\1\u010f\25\7\6\0\2\7\1\0\1\7\12\0" + "\1\u0110\33\7\6\0\2\7\1\0\1\7\12\0\4\7" + "\1\u0111\27\7\6\0\2\7\1\0\1\7\12\0\3\7" + + "\1\u0112\30\7\6\0\2\7\1\0\1\7\12\0\1\u0113" + "\33\7\6\0\2\7\1\0\1\7\12\0\15\7\1\155" + + "\16\7\6\0\2\7\1\0\1\7\12\0\4\7\1\u0114" + "\27\7\6\0\2\7\1\0\1\7\12\0\1\7\1\u0115" + + "\32\7\6\0\2\7\1\0\1\7\12\0\1\u0116\33\7" + "\6\0\2\7\1\0\1\7\12\0\4\7\1\u0117\27\7" + + "\6\0\2\7\1\0\1\366\12\0\1\7\1\u0118\32\7" + "\6\0\2\7\1\0\1\7\12\0\12\7\1\225\21\7" + + "\6\0\2\7\1\0\1\7\12\0\17\7\1\u0119\14\7" + "\6\0\2\7\1\0\1\7\12\0\4\7\1\u011a\27\7" + + "\6\0\2\7\1\0\1\7\12\0\5\7\1\u011b\26\7" + "\6\0\2\7\1\0\1\7\12\0\13\7\1\155\20\7" + "\6\0\2\7\1\0\1\7\12\0\27\7\1\u011c\4\7" + + "\6\0\2\7\1\0\1\7\12\0\1\u011d\33\7\6\0" + "\2\7\1\0\1\7\12\0\21\7\1\u011e\12\7\6\0" + + "\2\7\1\0\1\7\12\0\14\7\1\u011f\17\7\6\0" + "\2\7\1\0\1\7\12\0\1\u0120\33\7\6\0\2\7" + + "\1\0\1\7\12\0\1\u0121\33\7\6\0\2\7\1\0" + "\1\7\12\0\3\7\1\u0122\30\7\6\0\2\7\1\0" + "\1\7\12\0\5\7\1\202\26\7\6\0\2\7\1\0" + + "\1\7\12\0\1\u0123\33\7\6\0\2\7\1\0\1\7" + "\12\0\15\7\1\u0124\16\7\6\0\2\7\1\0\1\7" + + "\12\0\20\7\1\u0125\13\7\6\0\2\7\1\0\1\7" + "\12\0\4\7\1\u0126\27\7\6\0\2\7\1\0\1\7" + + "\12\0\4\7\1\u0127\27\7\6\0\2\7\1\0\1\7" + "\12\0\14\7\1\u0128\17\7\6\0\2\7\1\0\1\7" + + "\12\0\5\7\1\u0107\26\7\6\0\2\7\1\0\1\7" + "\12\0\11\7\1\u0129\22\7\6\0\2\7\1\0\1\7" + "\12\0\10\7\1\143\23\7\6\0\2\7\1\0\1\7" + + "\12\0\6\7\1\u012a\25\7\6\0\2\7\1\0\1\7" + "\12\0\14\7\1\126\17\7\6\0\2\7\1\0\1\7" + "\12\0\1\7\1\u012b\32\7\6\0\2\7\1\0\1\7" + + "\12\0\3\7\1\u012c\30\7\6\0\2\7\1\0\1\7" + "\12\0\6\7\1\u012d\25\7\6\0\2\7\1\0\1\7" + "\12\0\1\107\33\7\6\0\2\7\1\0\1\7\12\0" + + "\1\7\1\232\32\7\6\0\2\7\1\0\1\7\12\0" + "\3\7\1\u012e\20\7\1\u012f\7\7\6\0\2\7\1\0" + + "\1\7\12\0\4\7\1\u0130\27\7\6\0\2\7\1\0" + "\1\7\12\0\1\u0131\33\7\6\0\2\7\1\0\1\7" + "\12\0\14\7\1\215\17\7\6\0\2\7\1\0\1\7" + + "\12\0\13\7\1\u0132\20\7\6\0\2\7\1\0\1\7" + "\12\0\27\7\1\143\4\7\6\0\2\7\1\0\1\7" + "\12\0\15\7\1\u0133\16\7\6\0\2\7\1\0\1\7" + + "\12\0\5\7\1\u0134\26\7\6\0\2\7\1\0\1\7" + "\12\0\14\7\1\u0123\17\7\6\0\2\7\1\0\1\7" + + "\12\0\6\7\1\u0135\25\7\6\0\2\7\1\0\1\7" + "\12\0\5\7\1\u0136\26\7\6\0\2\7\1\0\1\7" + "\12\0\4\7\1\u0137\27\7\6\0\2\7\1\0\1\7" + + "\12\0\5\7\1\u0129\26\7\6\0\2\7\1\0\1\7" + "\12\0\11\7\1\145\22\7\6\0\2\7\1\0\1\7" + "\12\0\31\7\1\237\2\7\6\0\2\7\1\0\1\7" + + "\12\0\1\7\1\u0138\32\7\6\0\2\7\1\0\1\7" + "\12\0\1\u0139\33\7\6\0\2\7\1\0\1\7\12\0" + "\1\7\1\257\32\7\6\0\2\7\1\0\1\7\12\0" + + "\6\7\1\276\25\7\6\0\2\7\1\0\1\7\12\0" + "\1\155\33\7\6\0\2\7\1\0\1\7\12\0\1\7" + "\1\155\32\7\6\0\2\7\1\0\1\7\12\0\1\u013a" + + "\33\7\6\0\2\7\1\0\1\7\12\0\6\7\1\120" + "\25\7\6\0\2\7\1\0\1\7\12\0\1\u013b\33\7" + "\6\0\2\7\1\0\1\7\12\0\13\7\1\u013c\20\7" + + "\6\0\2\7\1\0\1\7\12\0\14\7\1\u013d\17\7" + "\6\0\2\7\1\0\1\7\12\0\25\7\2\143\5\7" + "\6\0\2\7\1\0\1\7\12\0\27\7\1\155\4\7" + + "\6\0\2\7\1\0\1\7\12\0\4\7\1\213\27\7" + "\6\0\2\7\1\0\1\7\12\0\11\7\1\u013e\22\7" + "\6\0\2\7\1\0\1\7\12\0\10\7\1\225\23\7" + + "\6\0\2\7\1\0\1\7\12\0\13\7\1\u013f\20\7" + "\6\0\2\7\1\0\1\7\12\0\11\7\1\u0140\22\7" + + "\6\0\2\7\1\0\1\7\12\0\1\7\1\u0141\32\7" + "\6\0\2\7\1\0\1\7\12\0\13\7\1\u0142\20\7" + + "\6\0\2\7\1\0\1\7\12\0\1\7\1\u0143\32\7" + "\6\0\2\7\1\0\1\7\12\0\6\7\1\u0144\25\7" + "\6\0\2\7\1\0\1\7\12\0\6\7\1\u0133\25\7" + + "\6\0\2\7\1\0\1\u0145\12\0\34\7\6\0\2\7" + "\1\0\1\7\12\0\14\7\1\u0146\17\7\6\0\2\7" + + "\1\0\1\7\12\0\4\7\1\u0147\4\7\1\202\22\7" + "\6\0\2\7\1\0\1\7\12\0\1\7\1\u0112\32\7" + + "\6\0\2\7\1\0\1\7\12\0\1\u0148\33\7\6\0" + "\2\7\1\0\1\7\12\0\11\7\1\u0149\22\7\6\0" + + "\2\7\1\0\1\7\12\0\5\7\1\u014a\26\7\6\0" + "\2\7\1\0\1\7\12\0\6\7\1\u014b\25\7\6\0" + "\2\7\1\0\1\7\12\0\4\7\1\u014c\27\7\6\0" + + "\2\7\1\0\1\7\12\0\5\7\1\71\26\7\6\0" + "\2\7\1\0\1\7\12\0\13\7\1\u014d\20\7\6\0" + "\2\7\1\0\1\7\12\0\5\7\1\u014e\26\7\6\0" + + "\2\7\1\0\1\7\12\0\20\7\1\143\13\7\6\0" + "\2\7\1\0\1\7\12\0\4\7\1\u014f\27\7\6\0" + "\2\7\1\0\1\7\12\0\4\7\1\u0150\27\7\6\0" + + "\2\7\1\0\1\7\12\0\5\7\1\310\26\7\6\0" + "\2\7\1\0\1\7\12\0\15\7\1\113\16\7\6\0" + "\2\7\1\0\1\7\12\0\11\7\1\u0151\22\7\6\0" + + "\2\7\1\0\1\7\12\0\12\7\1\u0152\21\7\6\0" + "\2\7\1\0\1\7\12\0\6\7\1\u0153\25\7\6\0" + + "\2\7\1\0\1\u0154\12\0\34\7\6\0\2\7\1\0" + "\1\7\12\0\6\7\1\u012e\25\7\6\0\2\7\1\0" + + "\1\7\12\0\11\7\1\u0155\22\7\6\0\2\7\1\0" + "\1\7\12\0\25\7\1\143\2\7\1\143\3\7\6\0" + + "\2\7\1\0\1\7\12\0\27\7\1\u0156\4\7\6\0" + "\2\7\1\0\1\7\12\0\1\u0157\33\7\6\0\2\7" + "\1\0\1\7\12\0\6\7\1\213\25\7\6\0\2\7" + + "\1\0\1\7\12\0\1\u0158\33\7\6\0\2\7\1\0" + "\1\7\12\0\5\7\1\u012c\26\7\6\0\2\7\1\0" + "\1\7\12\0\1\213\33\7\6\0\2\7\1\0\1\7" + + "\12\0\1\u0100\33\7\6\0\2\7\1\0\1\7\12\0" + "\10\7\1\223\23\7\6\0\2\7\1\0\1\7\12\0" + "\27\7\1\213\4\7\6\0\2\7\1\0\1\7\12\0" + + "\2\7\1\u012e\1\7\1\u0159\5\7\1\u0152\21\7\6\0" + "\2\7\1\0\1\7\12\0\1\u015a\33\7\6\0\2\7" + + "\1\0\1\7\12\0\4\7\1\u015b\27\7\6\0\2\7" + "\1\0\1\7\12\0\5\7\1\u0100\26\7\6\0\2\7" + "\1\0\1\7\12\0\15\7\1\370\16\7\6\0\2\7" + + "\1\0\1\7\12\0\14\7\1\u015c\17\7\6\0\2\7" + "\1\0\1\7\12\0\10\7\1\u0100\23\7\6\0\2\7" + + "\1\0\1\7\12\0\21\7\1\213\12\7\6\0\2\7" + "\1\0\1\7\12\0\15\7\1\u015d\16\7\6\0\2\7" + "\1\0\1\7\12\0\1\u015e\33\7\6\0\2\7\1\0" + + "\1\7\12\0\10\7\1\u015f\23\7\6\0\2\7\1\0" + "\1\7\12\0\4\7\1\u0160\27\7\6\0\2\7\1\0" + + "\1\7\12\0\1\7\1\u0161\32\7\6\0\2\7\1\0" + "\1\7\12\0\15\7\1\u0162\16\7\6\0\2\7\1\0" + "\1\7\12\0\22\7\1\213\11\7\4\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[15936]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\4\0\2\11\4\1\1\11\3\1\1\11\31\1\2\11" + "\2\1\1\11\2\1\1\11\2\1\1\11\1\1\1\0" + + "\1\1\1\11\113\1\3\11\1\1\1\0\333\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[354]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public SQLTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * Overridden to return true so paren matching occurs for * SQL. @@ -690,8 +449,7 @@ public class SQLTokenMaker extends AbstractJFlexTokenMaker { public boolean getCurlyBracesDenoteCodeBlocks(int languageIndex) { return true; } - - + /** * {@inheritDoc} */ @@ -699,26 +457,26 @@ public class SQLTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "--", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; switch (initialTokenType) { @@ -737,7 +495,6 @@ public class SQLTokenMaker extends AbstractJFlexTokenMaker { default: state = Token.NULL; } - s = text; try { yyreset(zzReader); @@ -747,21 +504,18 @@ public class SQLTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -770,7 +524,8 @@ public class SQLTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -779,360 +534,379 @@ public class SQLTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 SQLTokenMaker(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 SQLTokenMaker(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 < 178) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 20: { + addToken(Token.PREPROCESSOR); + } + case 23: + break; + case 2: { + addNullToken(); + return firstToken; + } + case 24: + break; + case 21: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 25: + break; + case 18: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 26: + break; + case 4: { + addToken(Token.WHITESPACE); + } + case 27: + break; + case 14: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 28: + break; + case 9: { + start = zzMarkedPos - 1; + yybegin(CHAR); + } + case 29: + break; + case 7: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 30: + break; + case 19: { + addToken(Token.RESERVED_WORD); + } + case 31: + break; + case 6: { + addToken(Token.SEPARATOR); + } + case 32: + break; + case 15: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_CHAR); + } + case 33: + break; + case 1: { + addToken(Token.IDENTIFIER); + } + case 34: + break; + case 22: { + addToken(Token.FUNCTION); + } + case 35: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 36: + break; + case 17: { + addToken(Token.COMMENT_EOL); + } + case 37: + break; + case 8: { + start = zzMarkedPos - 1; + yybegin(STRING); + } + case 38: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 39: + break; + case 5: { + addToken(Token.OPERATOR); + } + case 40: + break; + case 13: { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 41: + break; + case 10: { + addToken(Token.ERROR_IDENTIFIER); + addNullToken(); + return firstToken; + } + case 42: + break; + case 11: {} + case 43: + break; + case 16: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 44: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case STRING: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 355: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 356: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 357: + break; + case CHAR: { + addToken(start, zzStartRead - 1, Token.LITERAL_CHAR); + return firstToken; + } + case 358: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 SQLTokenMaker(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 SQLTokenMaker(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 < 178) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 20: - { addToken(Token.PREPROCESSOR); - } - case 23: break; - case 2: - { addNullToken(); return firstToken; - } - case 24: break; - case 21: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 25: break; - case 18: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 26: break; - case 4: - { addToken(Token.WHITESPACE); - } - case 27: break; - case 14: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 28: break; - case 9: - { start = zzMarkedPos-1; yybegin(CHAR); - } - case 29: break; - case 7: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 30: break; - case 19: - { addToken(Token.RESERVED_WORD); - } - case 31: break; - case 6: - { addToken(Token.SEPARATOR); - } - case 32: break; - case 15: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_CHAR); - } - case 33: break; - case 1: - { addToken(Token.IDENTIFIER); - } - case 34: break; - case 22: - { addToken(Token.FUNCTION); - } - case 35: break; - case 12: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 36: break; - case 17: - { addToken(Token.COMMENT_EOL); - } - case 37: break; - case 8: - { start = zzMarkedPos-1; yybegin(STRING); - } - case 38: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 39: break; - case 5: - { addToken(Token.OPERATOR); - } - case 40: break; - case 13: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 41: break; - case 10: - { addToken(Token.ERROR_IDENTIFIER); addNullToken(); return firstToken; - } - case 42: break; - case 11: - { - } - case 43: break; - case 16: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 44: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case STRING: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 355: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 356: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 357: break; - case CHAR: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 358: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/ScalaTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/ScalaTokenMaker.java index a7051ae..11a72fa 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/ScalaTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/ScalaTokenMaker.java @@ -1,11 +1,8 @@ /* The following code was generated by JFlex 1.4.1 on 11/10/12 10:31 PM */ - /* * 8/19/2009 - * * ScalaTokenMaker.java - Scanner for the Scala programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -19,532 +16,372 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** - * Scanner for the Scala programming language.

+ * Scanner for the Scala programming language. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated ScalaTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated ScalaTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class ScalaTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 3; - public static final int MULTILINE_STRING_DOUBLE = 1; - public static final int YYINITIAL = 0; - public static final int MLC = 2; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\31\1\24\1\0\1\31\23\0\1\31\1\33\1\25\1\33"+ - "\1\1\1\33\1\33\1\22\2\4\1\30\1\16\1\33\1\16\1\21"+ - "\1\27\1\12\11\3\1\42\1\33\1\0\1\33\1\0\2\33\3\10"+ - "\1\17\1\14\1\17\5\1\1\6\6\1\1\52\7\1\1\4\1\23"+ - "\1\4\1\0\1\5\1\26\1\44\1\45\1\11\1\20\1\15\1\40"+ - "\1\61\1\34\1\41\1\56\1\60\1\7\1\53\1\50\1\47\1\36"+ - "\1\2\1\46\1\37\1\35\1\55\1\57\1\43\1\13\1\51\1\54"+ - "\1\32\1\0\1\32\1\33\uff81\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 = - "\1\0\1\1\2\0\2\2\1\3\1\4\2\2\1\3"+ - "\3\2\1\5\1\6\1\7\2\2\1\10\15\2\1\1"+ - "\1\11\1\12\2\1\1\13\5\1\1\14\3\1\1\2"+ - "\1\3\1\0\2\15\3\2\1\0\3\2\1\16\1\17"+ - "\1\5\2\7\1\20\1\7\1\21\1\22\26\2\1\11"+ - "\1\0\1\23\10\0\1\2\1\15\1\0\4\2\1\24"+ - "\1\2\1\20\1\25\1\26\11\2\1\16\12\2\1\27"+ - "\10\0\21\2\2\0\1\30\2\0\1\31\4\2\1\16"+ - "\6\2\4\0\3\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[184]; - 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\62\0\144\0\226\0\310\0\372\0\u012c\0\310"+ - "\0\u015e\0\u0190\0\u01c2\0\u01f4\0\u0226\0\u0258\0\u028a\0\310"+ - "\0\u02bc\0\u02ee\0\u0320\0\u0352\0\u0384\0\u03b6\0\u03e8\0\u041a"+ - "\0\u044c\0\u047e\0\u04b0\0\u04e2\0\u0514\0\u0546\0\u0578\0\u05aa"+ - "\0\u05dc\0\u060e\0\u0640\0\310\0\u0672\0\u06a4\0\310\0\u06d6"+ - "\0\u0708\0\u073a\0\u076c\0\u079e\0\310\0\u07d0\0\u0802\0\u0834"+ - "\0\u0866\0\310\0\u0898\0\310\0\u08ca\0\u08fc\0\u092e\0\u0960"+ - "\0\u0992\0\u09c4\0\u09f6\0\u0a28\0\372\0\310\0\u0a5a\0\u0a8c"+ - "\0\u0abe\0\u0af0\0\u0b22\0\310\0\310\0\u0b54\0\u0b86\0\u0bb8"+ - "\0\u0bea\0\u0c1c\0\u0c4e\0\u0c80\0\u0cb2\0\u0ce4\0\u0d16\0\u0d48"+ - "\0\u0d7a\0\u0dac\0\u0dde\0\u0e10\0\u0e42\0\u0e74\0\u0ea6\0\u0ed8"+ - "\0\u0f0a\0\u0f3c\0\u0f6e\0\310\0\u0fa0\0\310\0\u0fd2\0\u1004"+ - "\0\u1036\0\u1068\0\u109a\0\u10cc\0\u10fe\0\u1130\0\u1162\0\u1194"+ - "\0\u11c6\0\u11f8\0\u122a\0\u125c\0\u128e\0\u0992\0\u12c0\0\310"+ - "\0\310\0\310\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba\0\u13ec"+ - "\0\u141e\0\u1450\0\u1482\0\u14b4\0\u14e6\0\u1518\0\u154a\0\u157c"+ - "\0\u15ae\0\u15e0\0\u1612\0\u1644\0\u1676\0\u16a8\0\310\0\u16da"+ - "\0\u170c\0\u173e\0\u1770\0\u17a2\0\u17d4\0\u1806\0\u1838\0\u186a"+ - "\0\u189c\0\u18ce\0\u1900\0\u1932\0\u1964\0\u1996\0\u19c8\0\u19fa"+ - "\0\u1a2c\0\u1a5e\0\u1a90\0\u1ac2\0\u1af4\0\u1b26\0\u1b58\0\u1b8a"+ - "\0\u1bbc\0\u1bee\0\u1c20\0\u1c52\0\u1c84\0\u1cb6\0\u1ce8\0\u1d1a"+ - "\0\u1d4c\0\u1d7e\0\u1db0\0\u1de2\0\u1e14\0\u1e46\0\u1e78\0\u1eaa"+ - "\0\u1edc\0\u1f0e\0\u1c20\0\u1f40\0\u1cb6\0\u1f72\0\u1fa4\0\u1fd6"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[184]; - 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 = - "\1\5\2\6\1\7\1\10\2\6\1\11\1\6\1\12"+ - "\1\13\2\6\1\14\1\5\1\6\1\15\1\16\1\17"+ - "\1\5\1\20\1\21\1\22\1\23\1\5\1\24\1\10"+ - "\1\5\1\6\1\25\1\26\1\27\1\30\1\31\1\5"+ - "\1\32\1\33\1\6\1\34\1\35\1\36\1\37\1\6"+ - "\1\40\3\6\1\41\2\6\23\42\1\43\1\44\1\45"+ - "\34\42\24\46\1\47\3\46\1\50\3\46\1\51\3\46"+ - "\1\52\2\46\1\53\16\46\24\54\1\55\7\54\1\56"+ - "\3\54\1\57\2\54\1\60\16\54\63\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\17\6"+ - "\3\0\1\7\2\0\2\62\2\0\1\7\1\0\2\63"+ - "\1\0\2\64\1\65\16\0\1\64\22\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\1\6"+ - "\1\66\15\6\1\0\3\6\1\0\1\61\1\6\1\67"+ - "\6\6\1\0\2\6\13\0\6\6\1\0\1\6\1\70"+ - "\15\6\3\0\1\7\2\0\2\62\2\0\1\7\1\71"+ - "\2\63\1\0\2\64\1\65\16\0\1\64\22\0\3\6"+ - "\1\0\1\61\1\6\1\72\3\6\1\73\2\6\1\0"+ - "\2\6\13\0\6\6\1\0\17\6\1\0\3\6\1\0"+ - "\1\61\7\6\1\74\1\0\2\6\13\0\6\6\1\0"+ - "\4\6\1\75\12\6\3\0\1\65\6\0\1\65\47\0"+ - "\22\17\1\76\1\77\36\17\23\100\1\101\1\100\1\102"+ - "\34\100\26\103\1\0\33\103\27\0\1\104\1\105\62\0"+ - "\1\24\31\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\1\106\5\6\1\0\3\6\1\107\2\6\1\110"+ - "\10\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\6\6\1\0\1\6\1\111\1\6\1\112\13\6"+ - "\1\0\3\6\1\0\1\61\7\6\1\113\1\0\2\6"+ - "\13\0\6\6\1\0\12\6\1\114\4\6\1\0\3\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\5\6\1\115"+ - "\1\0\1\6\1\116\2\6\1\117\12\6\1\0\3\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\4\6\1\75"+ - "\1\6\1\0\10\6\1\120\6\6\1\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\1\121\4\6\1\122"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\6\6\1\0\2\6\1\123\14\6\1\0"+ - "\3\6\1\0\1\61\7\6\1\124\1\0\2\6\13\0"+ - "\6\6\1\0\17\6\1\0\3\6\1\0\1\61\10\6"+ - "\1\0\2\6\13\0\6\6\1\0\2\6\1\125\11\6"+ - "\1\126\2\6\1\0\3\6\1\0\1\61\7\6\1\127"+ - "\1\0\2\6\13\0\6\6\1\0\12\6\1\130\4\6"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\5\6\1\131\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\6\6\1\0\1\6\1\132"+ - "\15\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\6\6\1\0\1\6\1\133\15\6\23\42\3\0"+ - "\34\42\24\134\1\0\35\134\25\0\1\135\34\0\24\46"+ - "\1\0\3\46\1\0\3\46\1\0\3\46\1\0\2\46"+ - "\1\0\16\46\27\0\1\136\67\0\1\137\61\0\1\140"+ - "\3\0\1\141\63\0\1\142\16\0\24\54\1\0\7\54"+ - "\1\0\3\54\1\0\2\54\1\0\16\54\35\0\1\143"+ - "\61\0\1\144\3\0\1\145\63\0\1\146\16\0\1\147"+ - "\3\6\1\0\1\61\10\6\1\147\2\6\1\0\7\147"+ - "\1\0\2\147\6\6\1\147\17\6\3\0\1\150\6\0"+ - "\1\150\3\0\1\151\46\0\1\65\6\0\1\65\1\0"+ - "\2\63\1\0\2\64\17\0\1\64\22\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\11\6"+ - "\1\152\5\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\6\6\1\0\1\6\1\153\15\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\1\6"+ - "\1\154\1\6\1\155\2\6\1\0\17\6\3\0\1\156"+ - "\4\0\3\156\1\0\2\156\1\0\2\156\17\0\1\156"+ - "\3\0\2\156\15\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\3\6\1\155\2\6\1\0\17\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\1\6"+ - "\1\157\4\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\4\6\1\75\1\6\1\0"+ - "\17\6\24\17\1\0\35\17\23\100\1\101\1\100\1\160"+ - "\60\100\1\0\35\100\25\0\1\161\34\0\26\103\1\162"+ - "\33\103\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\5\6\1\163\1\0\3\6\1\164\13\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6"+ - "\1\0\1\6\1\165\4\6\1\75\3\6\1\155\4\6"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\2\6\1\155\3\6\1\0\17\6\1\0\3\6\1\0"+ - "\1\61\3\6\1\166\4\6\1\0\2\6\13\0\6\6"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\5\6\1\167\1\0\4\6\1\170\12\6"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\6\6\1\0\1\6\1\171\15\6\1\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\2\6\1\172\3\6"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\6\6\1\0\5\6\1\173\11\6\1\0"+ - "\3\6\1\0\1\61\1\6\1\72\6\6\1\0\2\6"+ - "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\6\6\1\0\3\6\1\174"+ - "\13\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\2\6\1\175\3\6\1\0\17\6\1\0\3\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\5\6\1\176"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\1\6\1\177\4\6\1\0\17\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\3\6"+ - "\1\200\2\6\1\0\17\6\1\0\1\6\1\201\1\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\1\6\1\202"+ - "\4\6\1\0\17\6\1\0\3\6\1\0\1\61\10\6"+ - "\1\0\2\6\13\0\6\6\1\0\13\6\1\203\3\6"+ - "\1\0\3\6\1\0\1\61\7\6\1\204\1\0\2\6"+ - "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\6\6\1\0\1\75\16\6"+ - "\1\0\3\6\1\0\1\61\1\6\1\205\6\6\1\0"+ - "\2\6\13\0\6\6\1\0\17\6\1\0\3\6\1\0"+ - "\1\61\7\6\1\206\1\0\2\6\13\0\6\6\1\0"+ - "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\1\6\1\154\4\6\1\0\17\6\1\0\3\6"+ - "\1\0\1\61\1\6\1\75\6\6\1\0\2\6\13\0"+ - "\6\6\1\0\3\6\1\75\13\6\25\0\1\207\71\0"+ - "\1\210\62\0\1\211\32\0\1\212\115\0\1\213\53\0"+ - "\1\214\62\0\1\215\32\0\1\216\115\0\1\217\16\0"+ - "\1\147\15\0\1\147\3\0\7\147\1\0\2\147\6\0"+ - "\1\147\22\0\1\150\6\0\1\150\4\0\2\64\17\0"+ - "\1\64\24\0\1\150\6\0\1\150\50\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\6\6"+ - "\1\75\10\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\3\6\1\163\2\6\1\0\17\6\1\0"+ - "\3\6\1\0\1\61\3\6\1\177\4\6\1\0\2\6"+ - "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\7\6\1\75\1\0\2\6\13\0\6\6\1\0\17\6"+ - "\1\0\3\6\1\0\1\61\7\6\1\220\1\0\2\6"+ - "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\3\6\1\75\2\6\1\0"+ - "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\6\6\1\0\4\6\1\127\12\6\1\0\3\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\5\6\1\221"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\6\6\1\0\15\6\1\222\1\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6"+ - "\1\0\14\6\1\223\2\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\1\6\1\224\4\6\1\0"+ - "\17\6\1\0\3\6\1\0\1\61\1\6\1\225\6\6"+ - "\1\0\2\6\13\0\6\6\1\0\17\6\1\0\3\6"+ - "\1\0\1\61\7\6\1\226\1\0\2\6\13\0\6\6"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\6\6\1\0\1\6\1\227\15\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6"+ - "\1\0\7\6\1\230\7\6\1\0\3\6\1\0\1\61"+ - "\1\6\1\231\6\6\1\0\2\6\13\0\6\6\1\0"+ - "\4\6\1\232\12\6\1\0\3\6\1\0\1\61\1\6"+ - "\1\155\6\6\1\0\2\6\13\0\6\6\1\0\17\6"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\1\75\5\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\1\6\1\233\4\6\1\0"+ - "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\6\6\1\0\12\6\1\234\4\6\1\0\3\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\6\6\1\0"+ - "\12\6\1\235\4\6\1\0\3\6\1\0\1\61\7\6"+ - "\1\236\1\0\2\6\13\0\6\6\1\0\17\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6"+ - "\1\0\3\6\1\237\13\6\1\0\3\6\1\0\1\61"+ - "\1\6\1\75\6\6\1\0\2\6\13\0\6\6\1\0"+ - "\17\6\1\0\3\6\1\0\1\61\1\6\1\240\6\6"+ - "\1\0\2\6\13\0\6\6\1\0\17\6\36\0\1\241"+ - "\65\0\1\242\34\0\1\211\65\0\1\243\76\0\1\244"+ - "\65\0\1\245\34\0\1\215\65\0\1\246\41\0\3\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\6\6\1\0"+ - "\5\6\1\247\11\6\1\0\3\6\1\0\1\61\10\6"+ - "\1\0\2\6\13\0\1\6\1\75\4\6\1\0\17\6"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\6\6\1\0\1\6\1\250\15\6\1\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\1\6"+ - "\1\251\15\6\1\0\3\6\1\0\1\61\7\6\1\252"+ - "\1\0\2\6\13\0\6\6\1\0\17\6\1\0\3\6"+ - "\1\0\1\61\7\6\1\240\1\0\2\6\13\0\6\6"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\6\6\1\0\3\6\1\75\13\6\1\0"+ - "\3\6\1\0\1\61\1\6\1\253\6\6\1\0\2\6"+ - "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\6\6\1\0\4\6\1\254"+ - "\12\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\5\6\1\255\1\0\17\6\1\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\3\6"+ - "\1\221\13\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\2\6\13\0\6\6\1\0\3\6\1\256\13\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\5\6"+ - "\1\257\1\0\17\6\1\0\3\6\1\0\1\61\10\6"+ - "\1\0\2\6\13\0\6\6\1\0\3\6\1\260\13\6"+ - "\1\0\3\6\1\0\1\61\3\6\1\221\4\6\1\0"+ - "\2\6\13\0\6\6\1\0\17\6\1\0\3\6\1\0"+ - "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\3\6"+ - "\1\261\13\6\1\0\3\6\1\0\1\61\10\6\1\0"+ - "\1\6\1\75\13\0\6\6\1\0\17\6\37\0\1\211"+ - "\2\0\1\242\46\0\1\262\33\0\3\243\1\263\11\243"+ - "\1\263\2\243\2\263\4\0\1\243\1\263\2\0\1\263"+ - "\6\243\1\263\17\243\37\0\1\215\2\0\1\245\46\0"+ - "\1\264\33\0\3\246\1\265\11\246\1\265\2\246\2\265"+ - "\4\0\1\246\1\265\2\0\1\265\6\246\1\265\17\246"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\1\6\1\163"+ - "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61"+ - "\10\6\1\0\2\6\13\0\6\6\1\0\16\6\1\155"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\1\6\1\155\4\6\1\0\17\6\1\0\3\6\1\0"+ - "\1\61\3\6\1\266\4\6\1\0\2\6\13\0\6\6"+ - "\1\0\17\6\1\0\3\6\1\0\1\61\1\6\1\152"+ - "\6\6\1\0\2\6\13\0\6\6\1\0\17\6\1\0"+ - "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6"+ - "\1\0\10\6\1\155\6\6\1\0\3\6\1\0\1\61"+ - "\3\6\1\165\4\6\1\0\2\6\13\0\6\6\1\0"+ - "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6"+ - "\13\0\6\6\1\0\1\6\1\236\15\6\1\0\3\6"+ - "\1\0\1\61\10\6\1\0\2\6\13\0\6\6\1\0"+ - "\3\6\1\267\13\6\1\0\3\6\1\0\1\61\10\6"+ - "\1\0\2\6\13\0\6\6\1\0\5\6\1\75\11\6"+ - "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\5\6\1\270\1\0\17\6\27\0\1\243\61\0\1\246"+ - "\33\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0"+ - "\1\6\1\225\4\6\1\0\17\6\1\0\3\6\1\0"+ - "\1\61\7\6\1\163\1\0\2\6\13\0\6\6\1\0"+ - "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\1\6"+ - "\1\155\13\0\6\6\1\0\17\6"; - - private static int [] zzUnpackTrans() { - int [] result = new int[8200]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\1\2\0\1\11\2\1\1\11\7\1\1\11"+ - "\23\1\1\11\2\1\1\11\5\1\1\11\4\1\1\11"+ - "\1\0\1\11\4\1\1\0\4\1\1\11\5\1\2\11"+ - "\26\1\1\11\1\0\1\11\10\0\2\1\1\0\6\1"+ - "\3\11\24\1\1\11\10\0\21\1\2\0\1\1\2\0"+ - "\14\1\4\0\3\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[184]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 3; + public static final int MULTILINE_STRING_DOUBLE = 1; + public static final int YYINITIAL = 0; + public static final int MLC = 2; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\31\1\24\1\0\1\31\23\0\1\31\1\33\1\25\1\33" + + "\1\1\1\33\1\33\1\22\2\4\1\30\1\16\1\33\1\16\1\21" + "\1\27\1\12\11\3\1\42\1\33\1\0\1\33\1\0\2\33\3\10" + + "\1\17\1\14\1\17\5\1\1\6\6\1\1\52\7\1\1\4\1\23" + "\1\4\1\0\1\5\1\26\1\44\1\45\1\11\1\20\1\15\1\40" + + "\1\61\1\34\1\41\1\56\1\60\1\7\1\53\1\50\1\47\1\36" + "\1\2\1\46\1\37\1\35\1\55\1\57\1\43\1\13\1\51\1\54" + + "\1\32\1\0\1\32\1\33\uff81\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 = "\1\0\1\1\2\0\2\2\1\3\1\4\2\2\1\3" + "\3\2\1\5\1\6\1\7\2\2\1\10\15\2\1\1" + + "\1\11\1\12\2\1\1\13\5\1\1\14\3\1\1\2" + "\1\3\1\0\2\15\3\2\1\0\3\2\1\16\1\17" + "\1\5\2\7\1\20\1\7\1\21\1\22\26\2\1\11" + + "\1\0\1\23\10\0\1\2\1\15\1\0\4\2\1\24" + "\1\2\1\20\1\25\1\26\11\2\1\16\12\2\1\27" + "\10\0\21\2\2\0\1\30\2\0\1\31\4\2\1\16" + + "\6\2\4\0\3\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[184]; + 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\62\0\144\0\226\0\310\0\372\0\u012c\0\310" + + "\0\u015e\0\u0190\0\u01c2\0\u01f4\0\u0226\0\u0258\0\u028a\0\310" + + "\0\u02bc\0\u02ee\0\u0320\0\u0352\0\u0384\0\u03b6\0\u03e8\0\u041a" + + "\0\u044c\0\u047e\0\u04b0\0\u04e2\0\u0514\0\u0546\0\u0578\0\u05aa" + + "\0\u05dc\0\u060e\0\u0640\0\310\0\u0672\0\u06a4\0\310\0\u06d6" + + "\0\u0708\0\u073a\0\u076c\0\u079e\0\310\0\u07d0\0\u0802\0\u0834" + + "\0\u0866\0\310\0\u0898\0\310\0\u08ca\0\u08fc\0\u092e\0\u0960" + + "\0\u0992\0\u09c4\0\u09f6\0\u0a28\0\372\0\310\0\u0a5a\0\u0a8c" + + "\0\u0abe\0\u0af0\0\u0b22\0\310\0\310\0\u0b54\0\u0b86\0\u0bb8" + + "\0\u0bea\0\u0c1c\0\u0c4e\0\u0c80\0\u0cb2\0\u0ce4\0\u0d16\0\u0d48" + + "\0\u0d7a\0\u0dac\0\u0dde\0\u0e10\0\u0e42\0\u0e74\0\u0ea6\0\u0ed8" + + "\0\u0f0a\0\u0f3c\0\u0f6e\0\310\0\u0fa0\0\310\0\u0fd2\0\u1004" + + "\0\u1036\0\u1068\0\u109a\0\u10cc\0\u10fe\0\u1130\0\u1162\0\u1194" + + "\0\u11c6\0\u11f8\0\u122a\0\u125c\0\u128e\0\u0992\0\u12c0\0\310" + + "\0\310\0\310\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba\0\u13ec" + + "\0\u141e\0\u1450\0\u1482\0\u14b4\0\u14e6\0\u1518\0\u154a\0\u157c" + + "\0\u15ae\0\u15e0\0\u1612\0\u1644\0\u1676\0\u16a8\0\310\0\u16da" + + "\0\u170c\0\u173e\0\u1770\0\u17a2\0\u17d4\0\u1806\0\u1838\0\u186a" + + "\0\u189c\0\u18ce\0\u1900\0\u1932\0\u1964\0\u1996\0\u19c8\0\u19fa" + + "\0\u1a2c\0\u1a5e\0\u1a90\0\u1ac2\0\u1af4\0\u1b26\0\u1b58\0\u1b8a" + + "\0\u1bbc\0\u1bee\0\u1c20\0\u1c52\0\u1c84\0\u1cb6\0\u1ce8\0\u1d1a" + + "\0\u1d4c\0\u1d7e\0\u1db0\0\u1de2\0\u1e14\0\u1e46\0\u1e78\0\u1eaa" + + "\0\u1edc\0\u1f0e\0\u1c20\0\u1f40\0\u1cb6\0\u1f72\0\u1fa4\0\u1fd6"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[184]; + 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 = "\1\5\2\6\1\7\1\10\2\6\1\11\1\6\1\12" + "\1\13\2\6\1\14\1\5\1\6\1\15\1\16\1\17" + + "\1\5\1\20\1\21\1\22\1\23\1\5\1\24\1\10" + "\1\5\1\6\1\25\1\26\1\27\1\30\1\31\1\5" + "\1\32\1\33\1\6\1\34\1\35\1\36\1\37\1\6" + + "\1\40\3\6\1\41\2\6\23\42\1\43\1\44\1\45" + "\34\42\24\46\1\47\3\46\1\50\3\46\1\51\3\46" + + "\1\52\2\46\1\53\16\46\24\54\1\55\7\54\1\56" + "\3\54\1\57\2\54\1\60\16\54\63\0\3\6\1\0" + + "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\17\6" + "\3\0\1\7\2\0\2\62\2\0\1\7\1\0\2\63" + "\1\0\2\64\1\65\16\0\1\64\22\0\3\6\1\0" + + "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\1\6" + "\1\66\15\6\1\0\3\6\1\0\1\61\1\6\1\67" + "\6\6\1\0\2\6\13\0\6\6\1\0\1\6\1\70" + + "\15\6\3\0\1\7\2\0\2\62\2\0\1\7\1\71" + "\2\63\1\0\2\64\1\65\16\0\1\64\22\0\3\6" + "\1\0\1\61\1\6\1\72\3\6\1\73\2\6\1\0" + + "\2\6\13\0\6\6\1\0\17\6\1\0\3\6\1\0" + "\1\61\7\6\1\74\1\0\2\6\13\0\6\6\1\0" + "\4\6\1\75\12\6\3\0\1\65\6\0\1\65\47\0" + + "\22\17\1\76\1\77\36\17\23\100\1\101\1\100\1\102" + "\34\100\26\103\1\0\33\103\27\0\1\104\1\105\62\0" + + "\1\24\31\0\3\6\1\0\1\61\10\6\1\0\2\6" + "\13\0\1\106\5\6\1\0\3\6\1\107\2\6\1\110" + "\10\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + + "\13\0\6\6\1\0\1\6\1\111\1\6\1\112\13\6" + "\1\0\3\6\1\0\1\61\7\6\1\113\1\0\2\6" + "\13\0\6\6\1\0\12\6\1\114\4\6\1\0\3\6" + + "\1\0\1\61\10\6\1\0\2\6\13\0\5\6\1\115" + "\1\0\1\6\1\116\2\6\1\117\12\6\1\0\3\6" + "\1\0\1\61\10\6\1\0\2\6\13\0\4\6\1\75" + + "\1\6\1\0\10\6\1\120\6\6\1\0\3\6\1\0" + "\1\61\10\6\1\0\2\6\13\0\1\121\4\6\1\122" + "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0" + + "\2\6\13\0\6\6\1\0\2\6\1\123\14\6\1\0" + "\3\6\1\0\1\61\7\6\1\124\1\0\2\6\13\0" + "\6\6\1\0\17\6\1\0\3\6\1\0\1\61\10\6" + + "\1\0\2\6\13\0\6\6\1\0\2\6\1\125\11\6" + "\1\126\2\6\1\0\3\6\1\0\1\61\7\6\1\127" + "\1\0\2\6\13\0\6\6\1\0\12\6\1\130\4\6" + + "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\5\6\1\131\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\6\6\1\0\1\6\1\132" + + "\15\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + "\13\0\6\6\1\0\1\6\1\133\15\6\23\42\3\0" + + "\34\42\24\134\1\0\35\134\25\0\1\135\34\0\24\46" + "\1\0\3\46\1\0\3\46\1\0\3\46\1\0\2\46" + + "\1\0\16\46\27\0\1\136\67\0\1\137\61\0\1\140" + "\3\0\1\141\63\0\1\142\16\0\24\54\1\0\7\54" + + "\1\0\3\54\1\0\2\54\1\0\16\54\35\0\1\143" + "\61\0\1\144\3\0\1\145\63\0\1\146\16\0\1\147" + + "\3\6\1\0\1\61\10\6\1\147\2\6\1\0\7\147" + "\1\0\2\147\6\6\1\147\17\6\3\0\1\150\6\0" + + "\1\150\3\0\1\151\46\0\1\65\6\0\1\65\1\0" + "\2\63\1\0\2\64\17\0\1\64\22\0\3\6\1\0" + "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\11\6" + + "\1\152\5\6\1\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\6\6\1\0\1\6\1\153\15\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\1\6" + + "\1\154\1\6\1\155\2\6\1\0\17\6\3\0\1\156" + "\4\0\3\156\1\0\2\156\1\0\2\156\17\0\1\156" + + "\3\0\2\156\15\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\3\6\1\155\2\6\1\0\17\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\1\6" + + "\1\157\4\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\4\6\1\75\1\6\1\0" + + "\17\6\24\17\1\0\35\17\23\100\1\101\1\100\1\160" + "\60\100\1\0\35\100\25\0\1\161\34\0\26\103\1\162" + + "\33\103\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + "\13\0\5\6\1\163\1\0\3\6\1\164\13\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6" + + "\1\0\1\6\1\165\4\6\1\75\3\6\1\155\4\6" + "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\2\6\1\155\3\6\1\0\17\6\1\0\3\6\1\0" + + "\1\61\3\6\1\166\4\6\1\0\2\6\13\0\6\6" + "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\5\6\1\167\1\0\4\6\1\170\12\6" + + "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\6\6\1\0\1\6\1\171\15\6\1\0\3\6\1\0" + "\1\61\10\6\1\0\2\6\13\0\2\6\1\172\3\6" + + "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\6\6\1\0\5\6\1\173\11\6\1\0" + "\3\6\1\0\1\61\1\6\1\72\6\6\1\0\2\6" + + "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\6\6\1\0\3\6\1\174" + "\13\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + + "\13\0\2\6\1\175\3\6\1\0\17\6\1\0\3\6" + "\1\0\1\61\10\6\1\0\2\6\13\0\5\6\1\176" + "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0" + + "\2\6\13\0\1\6\1\177\4\6\1\0\17\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\3\6" + "\1\200\2\6\1\0\17\6\1\0\1\6\1\201\1\6" + + "\1\0\1\61\10\6\1\0\2\6\13\0\1\6\1\202" + "\4\6\1\0\17\6\1\0\3\6\1\0\1\61\10\6" + "\1\0\2\6\13\0\6\6\1\0\13\6\1\203\3\6" + + "\1\0\3\6\1\0\1\61\7\6\1\204\1\0\2\6" + "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\6\6\1\0\1\75\16\6" + + "\1\0\3\6\1\0\1\61\1\6\1\205\6\6\1\0" + "\2\6\13\0\6\6\1\0\17\6\1\0\3\6\1\0" + "\1\61\7\6\1\206\1\0\2\6\13\0\6\6\1\0" + + "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + "\13\0\1\6\1\154\4\6\1\0\17\6\1\0\3\6" + "\1\0\1\61\1\6\1\75\6\6\1\0\2\6\13\0" + + "\6\6\1\0\3\6\1\75\13\6\25\0\1\207\71\0" + "\1\210\62\0\1\211\32\0\1\212\115\0\1\213\53\0" + + "\1\214\62\0\1\215\32\0\1\216\115\0\1\217\16\0" + "\1\147\15\0\1\147\3\0\7\147\1\0\2\147\6\0" + + "\1\147\22\0\1\150\6\0\1\150\4\0\2\64\17\0" + "\1\64\24\0\1\150\6\0\1\150\50\0\3\6\1\0" + + "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\6\6" + "\1\75\10\6\1\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\3\6\1\163\2\6\1\0\17\6\1\0" + + "\3\6\1\0\1\61\3\6\1\177\4\6\1\0\2\6" + "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\7\6\1\75\1\0\2\6\13\0\6\6\1\0\17\6" + + "\1\0\3\6\1\0\1\61\7\6\1\220\1\0\2\6" + "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\3\6\1\75\2\6\1\0" + + "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + "\13\0\6\6\1\0\4\6\1\127\12\6\1\0\3\6" + "\1\0\1\61\10\6\1\0\2\6\13\0\5\6\1\221" + + "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\6\6\1\0\15\6\1\222\1\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6" + + "\1\0\14\6\1\223\2\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\1\6\1\224\4\6\1\0" + "\17\6\1\0\3\6\1\0\1\61\1\6\1\225\6\6" + + "\1\0\2\6\13\0\6\6\1\0\17\6\1\0\3\6" + "\1\0\1\61\7\6\1\226\1\0\2\6\13\0\6\6" + "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0" + + "\2\6\13\0\6\6\1\0\1\6\1\227\15\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6" + "\1\0\7\6\1\230\7\6\1\0\3\6\1\0\1\61" + + "\1\6\1\231\6\6\1\0\2\6\13\0\6\6\1\0" + "\4\6\1\232\12\6\1\0\3\6\1\0\1\61\1\6" + "\1\155\6\6\1\0\2\6\13\0\6\6\1\0\17\6" + + "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\1\75\5\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\1\6\1\233\4\6\1\0" + + "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + "\13\0\6\6\1\0\12\6\1\234\4\6\1\0\3\6" + "\1\0\1\61\10\6\1\0\2\6\13\0\6\6\1\0" + + "\12\6\1\235\4\6\1\0\3\6\1\0\1\61\7\6" + "\1\236\1\0\2\6\13\0\6\6\1\0\17\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6" + + "\1\0\3\6\1\237\13\6\1\0\3\6\1\0\1\61" + "\1\6\1\75\6\6\1\0\2\6\13\0\6\6\1\0" + "\17\6\1\0\3\6\1\0\1\61\1\6\1\240\6\6" + + "\1\0\2\6\13\0\6\6\1\0\17\6\36\0\1\241" + "\65\0\1\242\34\0\1\211\65\0\1\243\76\0\1\244" + + "\65\0\1\245\34\0\1\215\65\0\1\246\41\0\3\6" + "\1\0\1\61\10\6\1\0\2\6\13\0\6\6\1\0" + "\5\6\1\247\11\6\1\0\3\6\1\0\1\61\10\6" + + "\1\0\2\6\13\0\1\6\1\75\4\6\1\0\17\6" + "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\6\6\1\0\1\6\1\250\15\6\1\0\3\6\1\0" + + "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\1\6" + "\1\251\15\6\1\0\3\6\1\0\1\61\7\6\1\252" + "\1\0\2\6\13\0\6\6\1\0\17\6\1\0\3\6" + + "\1\0\1\61\7\6\1\240\1\0\2\6\13\0\6\6" + "\1\0\17\6\1\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\6\6\1\0\3\6\1\75\13\6\1\0" + + "\3\6\1\0\1\61\1\6\1\253\6\6\1\0\2\6" + "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\6\6\1\0\4\6\1\254" + + "\12\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + "\13\0\5\6\1\255\1\0\17\6\1\0\3\6\1\0" + "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\3\6" + + "\1\221\13\6\1\0\3\6\1\0\1\61\10\6\1\0" + "\2\6\13\0\6\6\1\0\3\6\1\256\13\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\5\6" + + "\1\257\1\0\17\6\1\0\3\6\1\0\1\61\10\6" + "\1\0\2\6\13\0\6\6\1\0\3\6\1\260\13\6" + "\1\0\3\6\1\0\1\61\3\6\1\221\4\6\1\0" + + "\2\6\13\0\6\6\1\0\17\6\1\0\3\6\1\0" + "\1\61\10\6\1\0\2\6\13\0\6\6\1\0\3\6" + "\1\261\13\6\1\0\3\6\1\0\1\61\10\6\1\0" + + "\1\6\1\75\13\0\6\6\1\0\17\6\37\0\1\211" + "\2\0\1\242\46\0\1\262\33\0\3\243\1\263\11\243" + + "\1\263\2\243\2\263\4\0\1\243\1\263\2\0\1\263" + "\6\243\1\263\17\243\37\0\1\215\2\0\1\245\46\0" + + "\1\264\33\0\3\246\1\265\11\246\1\265\2\246\2\265" + "\4\0\1\246\1\265\2\0\1\265\6\246\1\265\17\246" + + "\1\0\3\6\1\0\1\61\10\6\1\0\1\6\1\163" + "\13\0\6\6\1\0\17\6\1\0\3\6\1\0\1\61" + "\10\6\1\0\2\6\13\0\6\6\1\0\16\6\1\155" + + "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\1\6\1\155\4\6\1\0\17\6\1\0\3\6\1\0" + "\1\61\3\6\1\266\4\6\1\0\2\6\13\0\6\6" + + "\1\0\17\6\1\0\3\6\1\0\1\61\1\6\1\152" + "\6\6\1\0\2\6\13\0\6\6\1\0\17\6\1\0" + "\3\6\1\0\1\61\10\6\1\0\2\6\13\0\6\6" + + "\1\0\10\6\1\155\6\6\1\0\3\6\1\0\1\61" + "\3\6\1\165\4\6\1\0\2\6\13\0\6\6\1\0" + "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\2\6" + + "\13\0\6\6\1\0\1\6\1\236\15\6\1\0\3\6" + "\1\0\1\61\10\6\1\0\2\6\13\0\6\6\1\0" + "\3\6\1\267\13\6\1\0\3\6\1\0\1\61\10\6" + + "\1\0\2\6\13\0\6\6\1\0\5\6\1\75\11\6" + "\1\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\5\6\1\270\1\0\17\6\27\0\1\243\61\0\1\246" + + "\33\0\3\6\1\0\1\61\10\6\1\0\2\6\13\0" + "\1\6\1\225\4\6\1\0\17\6\1\0\3\6\1\0" + "\1\61\7\6\1\163\1\0\2\6\13\0\6\6\1\0" + + "\17\6\1\0\3\6\1\0\1\61\10\6\1\0\1\6" + "\1\155\13\0\6\6\1\0\17\6"; + + private static int[] zzUnpackTrans() { + int[] result = new int[8200]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\1\1\2\0\1\11\2\1\1\11\7\1\1\11" + "\23\1\1\11\2\1\1\11\5\1\1\11\4\1\1\11" + + "\1\0\1\11\4\1\1\0\4\1\1\11\5\1\2\11" + "\26\1\1\11\1\0\1\11\10\0\2\1\1\0\6\1" + "\3\11\24\1\1\11\10\0\21\1\2\0\1\1\2\0" + + "\14\1\4\0\3\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[184]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public ScalaTokenMaker() { - } - - + public ScalaTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -552,26 +389,26 @@ public class ScalaTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -584,7 +421,6 @@ public class ScalaTokenMaker extends AbstractJFlexCTokenMaker { default: state = YYINITIAL; } - s = text; start = text.offset; try { @@ -595,21 +431,18 @@ public class ScalaTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -618,7 +451,8 @@ public class ScalaTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -627,372 +461,402 @@ public class ScalaTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 ScalaTokenMaker(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 ScalaTokenMaker(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 < 150) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 6: { + addNullToken(); + return firstToken; + } + case 26: + break; + case 15: { + addToken(Token.LITERAL_CHAR); + } + case 27: + break; + case 21: { + start = zzMarkedPos - 3; + yybegin(MULTILINE_STRING_DOUBLE); + } + case 28: + break; + case 19: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 29: + break; + case 18: { + start = zzMarkedPos - 2; + yybegin(MLC); + } + case 30: + break; + case 8: { + addToken(Token.WHITESPACE); + } + case 31: + break; + case 20: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 32: + break; + case 13: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 33: + break; + case 14: { + addToken(Token.RESERVED_WORD); + } + case 34: + break; + case 4: { + addToken(Token.SEPARATOR); + } + case 35: + break; + case 22: { + addToken(Token.LITERAL_BACKQUOTE); + } + case 36: + break; + case 9: { /* Skip escaped chars, handles case: '\"""'. */ + } + case 37: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 38: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 39: + break; + case 17: { + start = zzMarkedPos - 2; + yybegin(EOL_COMMENT); + } + case 40: + break; + case 23: { + addToken(start, zzStartRead + 2, Token.LITERAL_STRING_DOUBLE_QUOTE); + yybegin(YYINITIAL); + } + case 41: + break; + case 5: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 42: + break; + case 7: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 43: + break; + case 16: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 44: + break; + case 10: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 45: + break; + case 25: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 46: + break; + case 24: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 47: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 48: + break; + case 1: {} + case 49: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 50: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 185: + break; + case MULTILINE_STRING_DOUBLE: { + addToken(start, zzStartRead - 1, Token.LITERAL_STRING_DOUBLE_QUOTE); + return firstToken; + } + case 186: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 187: + break; + case MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + return firstToken; + } + case 188: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 ScalaTokenMaker(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 ScalaTokenMaker(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 < 150) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 6: - { addNullToken(); return firstToken; - } - case 26: break; - case 15: - { addToken(Token.LITERAL_CHAR); - } - case 27: break; - case 21: - { start = zzMarkedPos-3; yybegin(MULTILINE_STRING_DOUBLE); - } - case 28: break; - case 19: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 29: break; - case 18: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 30: break; - case 8: - { addToken(Token.WHITESPACE); - } - case 31: break; - case 20: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 32: break; - case 13: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 33: break; - case 14: - { addToken(Token.RESERVED_WORD); - } - case 34: break; - case 4: - { addToken(Token.SEPARATOR); - } - case 35: break; - case 22: - { addToken(Token.LITERAL_BACKQUOTE); - } - case 36: break; - case 9: - { /* Skip escaped chars, handles case: '\"""'. */ - } - case 37: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 38: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 39: break; - case 17: - { start = zzMarkedPos-2; yybegin(EOL_COMMENT); - } - case 40: break; - case 23: - { addToken(start,zzStartRead+2, Token.LITERAL_STRING_DOUBLE_QUOTE); yybegin(YYINITIAL); - } - case 41: break; - case 5: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 42: break; - case 7: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 43: break; - case 16: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 44: break; - case 10: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 45: break; - case 25: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 46: break; - case 24: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 47: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 48: break; - case 1: - { - } - case 49: break; - case 11: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 50: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 185: break; - case MULTILINE_STRING_DOUBLE: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 186: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 187: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 188: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/TclTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/TclTokenMaker.java index a043a29..8b0955f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/TclTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/TclTokenMaker.java @@ -1,693 +1,426 @@ /* The following code was generated by JFlex 1.4.1 on 10/10/10 10:56 PM */ - /* * 10/03/2007 - * * TclTokenMaker.java - Scanner for the Tcl programming language. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; -import java.io.*; +import java.io.IOException; +import java.io.Reader; + import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; /** - * Scanner for the Tcl programming language.

+ * Scanner for the Tcl programming language. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated TclTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated TclTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class TclTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\14\1\13\1\0\1\14\1\7\22\0\1\14\1\27\1\15"+ - "\1\10\1\1\1\27\1\27\1\7\2\24\1\27\1\22\1\25\1\22"+ - "\1\23\1\27\1\3\1\61\1\60\5\5\2\2\1\7\1\25\1\30"+ - "\1\26\1\30\1\7\1\0\3\4\1\20\1\21\1\20\5\1\1\17"+ - "\13\1\1\16\2\1\1\24\1\11\1\24\1\27\1\12\1\0\1\31"+ - "\1\54\1\46\1\35\1\33\1\52\1\53\1\56\1\44\1\55\1\43"+ - "\1\50\1\42\1\34\1\41\1\32\1\62\1\36\1\47\1\40\1\6"+ - "\1\51\1\57\1\45\1\37\1\1\1\24\1\27\1\24\1\27\uff81\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 = - "\1\0\1\1\1\2\2\3\1\2\1\1\1\4\1\5"+ - "\1\6\1\7\1\10\1\2\1\11\1\2\1\10\22\2"+ - "\1\1\1\12\1\3\1\13\1\12\1\13\1\12\1\14"+ - "\1\12\2\2\1\7\1\15\35\2\1\16\5\2\1\16"+ - "\40\2\1\1\1\13\1\0\2\14\5\2\1\15\25\2"+ - "\1\16\30\2\1\16\4\2\1\16\11\2\1\1\5\2"+ - "\2\16\6\2\1\16\15\2\1\16\3\2\1\16\1\2"+ - "\1\1\14\2\1\1\6\2"; - - private static int [] zzUnpackAction() { - int [] result = new int[241]; - 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\63\0\146\0\231\0\314\0\377\0\u0132\0\u0165"+ - "\0\u0132\0\u0198\0\u01cb\0\u0132\0\u01fe\0\u0132\0\u0132\0\u0231"+ - "\0\u0264\0\u0297\0\u02ca\0\u02fd\0\u0330\0\u0363\0\u0396\0\u03c9"+ - "\0\u03fc\0\u042f\0\u0462\0\u0495\0\u04c8\0\u04fb\0\u052e\0\u0561"+ - "\0\u0594\0\u05c7\0\u05fa\0\u062d\0\u062d\0\u062d\0\u0660\0\u0693"+ - "\0\u06c6\0\u06f9\0\u072c\0\u075f\0\u0792\0\u07c5\0\u0132\0\u07f8"+ - "\0\u082b\0\u085e\0\u0891\0\u08c4\0\u08f7\0\u092a\0\u095d\0\u0990"+ - "\0\u09c3\0\u09f6\0\u0a29\0\u0a5c\0\u0a8f\0\u0ac2\0\u0af5\0\u0b28"+ - "\0\u0b5b\0\u0b8e\0\u0bc1\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0"+ - "\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u0df2\0\u0e25\0\u0e58"+ - "\0\u0e8b\0\u0ebe\0\146\0\u0ef1\0\u0f24\0\u0f57\0\u0f8a\0\u0fbd"+ - "\0\u0ff0\0\u1023\0\u1056\0\u1089\0\u10bc\0\u10ef\0\u1122\0\u1155"+ - "\0\u1188\0\u11bb\0\u11ee\0\u1221\0\u1254\0\u1287\0\u12ba\0\u12ed"+ - "\0\u1320\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f\0\u1452\0\u1485"+ - "\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7\0\u062d\0\u15ea"+ - "\0\u161d\0\u1650\0\u1683\0\u16b6\0\u16e9\0\u01cb\0\u171c\0\u174f"+ - "\0\u1782\0\u17b5\0\u17e8\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7"+ - "\0\u191a\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u1a19\0\u1a4c\0\u1a7f"+ - "\0\u1ab2\0\u1ae5\0\u1b18\0\u1b4b\0\u1b7e\0\u1bb1\0\u1be4\0\u1c17"+ - "\0\u1c4a\0\u1c7d\0\u1cb0\0\u1ce3\0\u1d16\0\u1d49\0\u1d7c\0\u1daf"+ - "\0\u1de2\0\u1e15\0\u1e48\0\u1e7b\0\u1eae\0\u1ee1\0\u1f14\0\u1f47"+ - "\0\u1f7a\0\u1fad\0\u1fe0\0\u2013\0\u2046\0\u2079\0\u20ac\0\u20df"+ - "\0\u2112\0\u2145\0\u2178\0\u21ab\0\u21de\0\u2211\0\u2244\0\u2277"+ - "\0\u22aa\0\u22dd\0\u2310\0\u2343\0\u2376\0\u23a9\0\u23dc\0\u240f"+ - "\0\u2442\0\u2475\0\u24a8\0\u24db\0\u250e\0\u2541\0\u2574\0\u25a7"+ - "\0\u25da\0\u260d\0\u2640\0\u1b4b\0\u2673\0\u26a6\0\u26d9\0\u270c"+ - "\0\u273f\0\u2772\0\u27a5\0\u27d8\0\u280b\0\u283e\0\u2871\0\u28a4"+ - "\0\u28d7\0\u290a\0\u293d\0\u0bc1\0\u2970\0\u29a3\0\u29d6\0\u2a09"+ - "\0\u260d\0\u2a3c\0\u2a6f\0\u2aa2\0\u2ad5\0\u2b08\0\u2b3b\0\u2b6e"+ - "\0\u2ba1\0\u2bd4\0\u2c07\0\u2c3a\0\u2c6d\0\u2ca0\0\u2cd3\0\u2d06"+ - "\0\u2d39"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[241]; - 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 = - "\1\2\1\3\1\4\1\5\1\3\1\4\1\6\1\7"+ - "\1\10\1\2\1\3\1\11\1\12\1\13\4\3\1\14"+ - "\1\15\1\16\1\17\2\14\1\20\1\21\1\22\1\23"+ - "\1\3\1\24\1\25\1\3\1\26\1\27\1\30\1\3"+ - "\1\31\1\3\1\32\1\33\1\34\1\3\1\35\1\36"+ - "\1\37\1\40\1\41\1\42\2\4\1\3\7\2\1\0"+ - "\3\2\3\0\4\2\7\0\33\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\32\3\2\44\2\4"+ - "\1\44\1\4\1\44\1\0\3\44\3\0\1\44\1\45"+ - "\1\46\1\47\1\0\1\50\5\0\2\44\1\47\1\44"+ - "\1\46\12\44\1\45\1\44\1\46\5\44\2\4\3\44"+ - "\1\51\1\52\1\44\1\52\1\44\1\0\3\44\3\0"+ - "\1\53\1\45\1\46\1\47\1\0\1\50\5\0\2\44"+ - "\1\47\1\44\1\46\7\44\1\53\2\44\1\45\1\44"+ - "\1\46\5\44\2\52\1\44\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\1\3\1\54\1\3"+ - "\1\55\26\3\63\0\13\10\1\0\47\10\14\0\1\12"+ - "\46\0\11\13\1\56\3\13\1\57\45\13\2\0\2\50"+ - "\1\0\1\50\52\0\2\50\27\0\1\14\34\0\1\2"+ - "\5\3\1\60\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\1\3\1\61\3\3\1\62\1\3\1\63\5\3"+ - "\1\64\1\65\2\3\1\66\1\3\1\67\6\3\1\2"+ - "\5\3\1\70\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\1\71\4\3\1\72\2\3\1\73\2\3\1\74"+ - "\3\3\1\75\6\3\1\74\3\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\76"+ - "\1\3\1\77\2\3\1\100\3\3\1\101\2\3\1\102"+ - "\1\103\11\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\2\3\1\104\5\3\1\105\21\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\1\106\1\3\1\107\5\3\1\110\21\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\1\111\1\3\1\112\2\3\1\113\2\3\1\114\1\3"+ - "\1\115\1\116\16\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\1\3\1\117\30\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\2\3\1\120\27\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\3\3\1\121\5\3\1\122"+ - "\7\3\1\123\10\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\1\124\1\3\1\125\1\3"+ - "\1\123\3\3\1\126\6\3\1\127\5\3\1\130\4\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\1\3\1\131\1\132\4\3\1\133\1\134\2\3"+ - "\1\111\1\3\1\135\10\3\1\136\2\3\1\137\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\1\140\4\3\1\141\2\3\1\142\2\3\1\143\2\3"+ - "\1\144\1\145\12\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\5\3\1\146\2\3\1\147"+ - "\1\150\1\3\1\151\3\3\1\152\12\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3"+ - "\1\70\2\3\1\153\11\3\1\154\12\3\1\2\5\3"+ - "\1\155\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\5\3\1\156\5\3\1\157\16\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\65"+ - "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\6\3\1\160\4\3\1\161\16\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\11\3\1\123\1\3\1\162\11\3\1\163\4\3\6\2"+ - "\1\164\1\0\3\2\3\0\4\2\7\0\32\2\7\44"+ - "\1\0\3\44\3\0\4\44\7\0\34\44\2\165\1\44"+ - "\1\165\1\44\1\0\3\44\3\0\4\44\1\166\6\0"+ - "\27\44\2\165\3\44\2\50\1\44\1\50\1\44\1\0"+ - "\3\44\3\0\2\44\1\46\1\47\7\0\2\44\1\47"+ - "\1\44\1\46\14\44\1\46\5\44\2\50\3\44\2\51"+ - "\1\44\1\51\1\44\1\0\3\44\3\0\2\44\1\46"+ - "\1\47\1\0\1\50\5\0\2\44\1\47\1\44\1\46"+ - "\14\44\1\46\5\44\2\51\3\44\1\51\1\52\1\44"+ - "\1\52\1\44\1\0\3\44\3\0\1\44\1\167\1\46"+ - "\1\47\1\0\1\50\5\0\2\44\1\47\1\44\1\46"+ - "\12\44\1\167\1\44\1\46\5\44\2\52\3\44\4\170"+ - "\1\44\1\0\3\44\3\0\2\44\2\170\7\0\1\170"+ - "\1\44\1\170\1\44\1\170\10\44\1\170\3\44\1\170"+ - "\1\44\1\170\3\44\2\170\1\44\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\4\3\1\171"+ - "\12\3\1\172\1\173\11\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\12\3\1\174\3\3"+ - "\1\175\13\3\13\13\1\0\1\13\1\176\45\13\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\7\3\1\177\22\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\1\3\1\200\30\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\5\3\1\201\24\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\1\202\31\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3"+ - "\1\67\21\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\13\3\1\203\16\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\7\3"+ - "\1\204\22\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\16\3\1\123\13\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\7\3"+ - "\1\67\22\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\15\3\1\205\14\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3"+ - "\1\206\21\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\26\3\1\123\3\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\4\3"+ - "\1\123\25\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\1\207\31\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\7\3\1\210"+ - "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\5\3\1\211\24\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\21\3\1\123"+ - "\10\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\1\3\1\212\1\206\10\3\1\213\16\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\16\3\1\214\13\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\1\215\31\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\16\3\1\216\13\3\1\2\5\3\1\217\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\32\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\4\3"+ - "\1\220\6\3\1\221\16\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\1\74\2\3\1\146"+ - "\3\3\1\222\12\3\1\223\7\3\1\2\5\3\1\157"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\32\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\3\3\1\224\26\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\14\3\1\213\2\3"+ - "\1\215\12\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\1\225\31\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\1\3\1\226"+ - "\30\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\2\3\1\227\23\3\1\230\3\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\11\3\1\231\20\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\2\3\1\203\4\3\1\232"+ - "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\3\3\1\233\12\3\1\234\13\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\7\3\1\123\5\3\1\212\3\3\1\235\10\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\1\236\31\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\3\3\1\237\3\3\1\240\22\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\13\3\1\215\16\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\3\3\1\241\12\3"+ - "\1\224\13\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\10\3\1\221\21\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3"+ - "\1\242\27\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\17\3\1\243\12\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3"+ - "\1\205\1\74\3\3\1\123\7\3\1\244\12\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\5\3\1\245\24\3\1\2\5\3\1\246\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\32\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\1\247"+ - "\4\3\1\250\24\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\13\3\1\251\16\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\5\3\1\213\24\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\1\3\1\61\21\3\1\252"+ - "\6\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\1\253\1\3\1\254\27\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\22\3"+ - "\1\255\3\3\1\204\3\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\3\3\1\256\12\3"+ - "\1\257\13\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\2\3\1\260\5\3\1\137\21\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\2\3\1\261\27\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\1\116\31\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\5\3\1\262\7\3\1\263\14\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\74"+ - "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\17\3\1\231\12\3\1\2\5\3\1\264"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3"+ - "\1\211\21\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\1\265\31\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\266"+ - "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\7\3\1\267\22\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\2\3\1\270"+ - "\27\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\3\3\1\74\26\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\1\3\1\271"+ - "\30\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\16\3\1\272\13\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\273"+ - "\26\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\13\3\1\151\16\3\2\2\4\274\1\2"+ - "\1\0\3\2\3\0\2\2\2\274\7\0\1\274\1\2"+ - "\1\274\1\2\1\274\10\2\1\274\3\2\1\274\1\2"+ - "\1\274\3\2\2\274\1\2\2\44\2\165\1\44\1\165"+ - "\1\44\1\0\3\44\3\0\2\44\1\46\1\44\7\0"+ - "\4\44\1\46\14\44\1\46\5\44\2\165\1\44\2\0"+ - "\2\165\1\0\1\165\52\0\2\165\1\0\2\44\4\170"+ - "\1\44\1\0\3\44\3\0\1\44\1\167\2\170\7\0"+ - "\1\170\1\44\1\170\1\44\1\170\10\44\1\170\1\44"+ - "\1\167\1\44\1\170\1\44\1\170\3\44\2\170\1\44"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\1\275\31\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\2\3\1\276\27\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\1\212\31\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\10\3\1\277\21\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3"+ - "\1\213\27\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\10\3\1\300\21\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3"+ - "\1\157\27\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\1\301\31\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\302"+ - "\26\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\3\3\1\123\26\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\2\3\1\212"+ - "\27\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\12\3\1\123\17\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\15\3\1\123"+ - "\14\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\15\3\1\204\14\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\5\3\1\301"+ - "\24\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\10\3\1\212\21\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\5\3\1\123"+ - "\24\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\7\3\1\123\22\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\2\3\1\303"+ - "\27\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\17\3\1\123\12\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\7\3\1\304"+ - "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\23\3\1\151\6\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\13\3\1\305"+ - "\16\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\16\3\1\231\13\3\1\2\5\3\1\306"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\32\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\2\3\1\307\13\3\1\310\13\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\25\3"+ - "\1\123\4\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\15\3\1\231\14\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\17\3"+ - "\1\172\12\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\5\3\1\77\24\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\1\243"+ - "\31\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\2\3\1\123\27\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\13\3\1\311"+ - "\16\3\1\2\5\3\1\312\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\32\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\16\3\1\122\13\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\10\3\1\123\21\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\22\3\1\231\7\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\20\3\1\313\11\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\15\3\1\314\14\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\7\3\1\315\5\3\1\316\1\317\13\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\15\3\1\320\14\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\13\3\1\213\16\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\2\3\1\321\27\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\13\3\1\322\16\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\5\3\1\225\24\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\3\3\1\123\13\3\1\231"+ - "\12\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\10\3\1\323\21\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\7\3\1\240"+ - "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\2\3\1\215\27\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\236"+ - "\26\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\1\3\1\324\30\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\30\3\1\325"+ - "\1\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\4\3\1\326\11\3\1\327\13\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\7\3\1\330\22\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\1\331\31\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\3\3"+ - "\1\332\26\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\2\3\1\333\6\3\1\316\20\3"+ - "\1\2\5\3\1\67\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\32\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\16\3\1\314\13\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\23\3\1\123\6\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\23\3\1\334\6\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\7\3\1\311\22\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\1\205\31\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3"+ - "\1\213\21\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\7\3\1\335\22\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\21\3"+ - "\1\235\10\3\2\2\4\336\1\2\1\0\3\2\3\0"+ - "\2\2\2\336\7\0\1\336\1\2\1\336\1\2\1\336"+ - "\10\2\1\336\3\2\1\336\1\2\1\336\3\2\2\336"+ - "\2\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\7\3\1\231\22\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\20\3\1\252\11\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\26\3\1\203\3\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\337\3\0\4\3\7\0\32\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\6\3"+ - "\1\123\23\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\27\3\1\123\2\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\13\3"+ - "\1\100\16\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\5\3\1\340\24\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3"+ - "\1\341\21\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\5\3\1\203\24\3\1\2\6\3"+ - "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\14\3"+ - "\1\342\15\3\1\2\5\3\1\265\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\32\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\203"+ - "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\23\3\1\343\6\3\1\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\1\67\31\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\13\3\1\344\16\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\1\213\31\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\10\3\1\151\21\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\12\3\1\341\17\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\15\3\1\345\14\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\3\3\1\346\26\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\17\3\1\347\12\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\17\3\1\113\12\3\1\2"+ - "\2\3\1\123\3\3\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\32\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\2\3\1\350\27\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\2\3\1\137\27\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\23\3\1\351\6\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\5\3\1\240\24\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\22\3\1\352\7\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\1\240\31\3\1\2\6\3\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\10\3\1\210\21\3\2\2\4\353"+ - "\1\2\1\0\3\2\3\0\2\2\2\353\7\0\1\353"+ - "\1\2\1\353\1\2\1\353\10\2\1\353\3\2\1\353"+ - "\1\2\1\353\3\2\2\353\2\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\11\3\1\354\20\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\10\3\1\301\21\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\1\3\1\123\30\3"+ - "\1\2\5\3\1\155\1\0\1\2\1\43\1\3\3\0"+ - "\4\3\7\0\32\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\3\3\1\355\26\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\7\3\1\232\22\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\22\3\1\123\7\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\17\3\1\356\12\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\14\3\1\123\15\3\1\2"+ - "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0"+ - "\10\3\1\350\21\3\1\2\6\3\1\0\1\2\1\43"+ - "\1\3\3\0\4\3\7\0\7\3\1\314\22\3\2\2"+ - "\4\3\1\2\1\0\3\2\3\0\2\2\2\3\7\0"+ - "\1\3\1\2\1\3\1\2\1\3\10\2\1\3\3\2"+ - "\1\3\1\2\1\3\3\2\2\3\2\2\6\3\1\0"+ - "\1\2\1\43\1\3\3\0\4\3\7\0\12\3\1\357"+ - "\17\3\1\2\5\3\1\231\1\0\1\2\1\43\1\3"+ - "\3\0\4\3\7\0\32\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\23\3\1\173\6\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\13\3\1\360\16\3\1\2\6\3\1\0\1\2"+ - "\1\43\1\3\3\0\4\3\7\0\3\3\1\361\26\3"+ - "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3"+ - "\7\0\4\3\1\326\25\3"; - - private static int [] zzUnpackTrans() { - int [] result = new int[11628]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\5\1\1\11\1\1\1\11\2\1\1\11\1\1"+ - "\2\11\37\1\1\11\106\1\1\0\173\1"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[241]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\14\1\13\1\0\1\14\1\7\22\0\1\14\1\27\1\15" + + "\1\10\1\1\1\27\1\27\1\7\2\24\1\27\1\22\1\25\1\22" + "\1\23\1\27\1\3\1\61\1\60\5\5\2\2\1\7\1\25\1\30" + + "\1\26\1\30\1\7\1\0\3\4\1\20\1\21\1\20\5\1\1\17" + "\13\1\1\16\2\1\1\24\1\11\1\24\1\27\1\12\1\0\1\31" + + "\1\54\1\46\1\35\1\33\1\52\1\53\1\56\1\44\1\55\1\43" + "\1\50\1\42\1\34\1\41\1\32\1\62\1\36\1\47\1\40\1\6" + + "\1\51\1\57\1\45\1\37\1\1\1\24\1\27\1\24\1\27\uff81\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 = "\1\0\1\1\1\2\2\3\1\2\1\1\1\4\1\5" + "\1\6\1\7\1\10\1\2\1\11\1\2\1\10\22\2" + + "\1\1\1\12\1\3\1\13\1\12\1\13\1\12\1\14" + "\1\12\2\2\1\7\1\15\35\2\1\16\5\2\1\16" + "\40\2\1\1\1\13\1\0\2\14\5\2\1\15\25\2" + + "\1\16\30\2\1\16\4\2\1\16\11\2\1\1\5\2" + "\2\16\6\2\1\16\15\2\1\16\3\2\1\16\1\2" + "\1\1\14\2\1\1\6\2"; + + private static int[] zzUnpackAction() { + int[] result = new int[241]; + 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\63\0\146\0\231\0\314\0\377\0\u0132\0\u0165" + + "\0\u0132\0\u0198\0\u01cb\0\u0132\0\u01fe\0\u0132\0\u0132\0\u0231" + + "\0\u0264\0\u0297\0\u02ca\0\u02fd\0\u0330\0\u0363\0\u0396\0\u03c9" + + "\0\u03fc\0\u042f\0\u0462\0\u0495\0\u04c8\0\u04fb\0\u052e\0\u0561" + + "\0\u0594\0\u05c7\0\u05fa\0\u062d\0\u062d\0\u062d\0\u0660\0\u0693" + + "\0\u06c6\0\u06f9\0\u072c\0\u075f\0\u0792\0\u07c5\0\u0132\0\u07f8" + + "\0\u082b\0\u085e\0\u0891\0\u08c4\0\u08f7\0\u092a\0\u095d\0\u0990" + + "\0\u09c3\0\u09f6\0\u0a29\0\u0a5c\0\u0a8f\0\u0ac2\0\u0af5\0\u0b28" + + "\0\u0b5b\0\u0b8e\0\u0bc1\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0" + + "\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c\0\u0dbf\0\u0df2\0\u0e25\0\u0e58" + + "\0\u0e8b\0\u0ebe\0\146\0\u0ef1\0\u0f24\0\u0f57\0\u0f8a\0\u0fbd" + + "\0\u0ff0\0\u1023\0\u1056\0\u1089\0\u10bc\0\u10ef\0\u1122\0\u1155" + + "\0\u1188\0\u11bb\0\u11ee\0\u1221\0\u1254\0\u1287\0\u12ba\0\u12ed" + + "\0\u1320\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f\0\u1452\0\u1485" + + "\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7\0\u062d\0\u15ea" + + "\0\u161d\0\u1650\0\u1683\0\u16b6\0\u16e9\0\u01cb\0\u171c\0\u174f" + + "\0\u1782\0\u17b5\0\u17e8\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7" + + "\0\u191a\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u1a19\0\u1a4c\0\u1a7f" + + "\0\u1ab2\0\u1ae5\0\u1b18\0\u1b4b\0\u1b7e\0\u1bb1\0\u1be4\0\u1c17" + + "\0\u1c4a\0\u1c7d\0\u1cb0\0\u1ce3\0\u1d16\0\u1d49\0\u1d7c\0\u1daf" + + "\0\u1de2\0\u1e15\0\u1e48\0\u1e7b\0\u1eae\0\u1ee1\0\u1f14\0\u1f47" + + "\0\u1f7a\0\u1fad\0\u1fe0\0\u2013\0\u2046\0\u2079\0\u20ac\0\u20df" + + "\0\u2112\0\u2145\0\u2178\0\u21ab\0\u21de\0\u2211\0\u2244\0\u2277" + + "\0\u22aa\0\u22dd\0\u2310\0\u2343\0\u2376\0\u23a9\0\u23dc\0\u240f" + + "\0\u2442\0\u2475\0\u24a8\0\u24db\0\u250e\0\u2541\0\u2574\0\u25a7" + + "\0\u25da\0\u260d\0\u2640\0\u1b4b\0\u2673\0\u26a6\0\u26d9\0\u270c" + + "\0\u273f\0\u2772\0\u27a5\0\u27d8\0\u280b\0\u283e\0\u2871\0\u28a4" + + "\0\u28d7\0\u290a\0\u293d\0\u0bc1\0\u2970\0\u29a3\0\u29d6\0\u2a09" + + "\0\u260d\0\u2a3c\0\u2a6f\0\u2aa2\0\u2ad5\0\u2b08\0\u2b3b\0\u2b6e" + + "\0\u2ba1\0\u2bd4\0\u2c07\0\u2c3a\0\u2c6d\0\u2ca0\0\u2cd3\0\u2d06" + "\0\u2d39"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[241]; + 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 = "\1\2\1\3\1\4\1\5\1\3\1\4\1\6\1\7" + "\1\10\1\2\1\3\1\11\1\12\1\13\4\3\1\14" + + "\1\15\1\16\1\17\2\14\1\20\1\21\1\22\1\23" + "\1\3\1\24\1\25\1\3\1\26\1\27\1\30\1\3" + + "\1\31\1\3\1\32\1\33\1\34\1\3\1\35\1\36" + "\1\37\1\40\1\41\1\42\2\4\1\3\7\2\1\0" + "\3\2\3\0\4\2\7\0\33\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\32\3\2\44\2\4" + "\1\44\1\4\1\44\1\0\3\44\3\0\1\44\1\45" + "\1\46\1\47\1\0\1\50\5\0\2\44\1\47\1\44" + + "\1\46\12\44\1\45\1\44\1\46\5\44\2\4\3\44" + "\1\51\1\52\1\44\1\52\1\44\1\0\3\44\3\0" + + "\1\53\1\45\1\46\1\47\1\0\1\50\5\0\2\44" + "\1\47\1\44\1\46\7\44\1\53\2\44\1\45\1\44" + "\1\46\5\44\2\52\1\44\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\1\3\1\54\1\3" + "\1\55\26\3\63\0\13\10\1\0\47\10\14\0\1\12" + + "\46\0\11\13\1\56\3\13\1\57\45\13\2\0\2\50" + "\1\0\1\50\52\0\2\50\27\0\1\14\34\0\1\2" + "\5\3\1\60\1\0\1\2\1\43\1\3\3\0\4\3" + + "\7\0\1\3\1\61\3\3\1\62\1\3\1\63\5\3" + "\1\64\1\65\2\3\1\66\1\3\1\67\6\3\1\2" + "\5\3\1\70\1\0\1\2\1\43\1\3\3\0\4\3" + + "\7\0\1\71\4\3\1\72\2\3\1\73\2\3\1\74" + "\3\3\1\75\6\3\1\74\3\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\76" + + "\1\3\1\77\2\3\1\100\3\3\1\101\2\3\1\102" + "\1\103\11\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\2\3\1\104\5\3\1\105\21\3" + + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\1\106\1\3\1\107\5\3\1\110\21\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\1\111\1\3\1\112\2\3\1\113\2\3\1\114\1\3" + "\1\115\1\116\16\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\1\3\1\117\30\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\2\3\1\120\27\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\3\3\1\121\5\3\1\122" + + "\7\3\1\123\10\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\1\124\1\3\1\125\1\3" + "\1\123\3\3\1\126\6\3\1\127\5\3\1\130\4\3" + + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\1\3\1\131\1\132\4\3\1\133\1\134\2\3" + "\1\111\1\3\1\135\10\3\1\136\2\3\1\137\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\1\140\4\3\1\141\2\3\1\142\2\3\1\143\2\3" + "\1\144\1\145\12\3\1\2\6\3\1\0\1\2\1\43" + + "\1\3\3\0\4\3\7\0\5\3\1\146\2\3\1\147" + "\1\150\1\3\1\151\3\3\1\152\12\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3" + + "\1\70\2\3\1\153\11\3\1\154\12\3\1\2\5\3" + "\1\155\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\5\3\1\156\5\3\1\157\16\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\65" + "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\6\3\1\160\4\3\1\161\16\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\11\3\1\123\1\3\1\162\11\3\1\163\4\3\6\2" + "\1\164\1\0\3\2\3\0\4\2\7\0\32\2\7\44" + + "\1\0\3\44\3\0\4\44\7\0\34\44\2\165\1\44" + "\1\165\1\44\1\0\3\44\3\0\4\44\1\166\6\0" + + "\27\44\2\165\3\44\2\50\1\44\1\50\1\44\1\0" + "\3\44\3\0\2\44\1\46\1\47\7\0\2\44\1\47" + + "\1\44\1\46\14\44\1\46\5\44\2\50\3\44\2\51" + "\1\44\1\51\1\44\1\0\3\44\3\0\2\44\1\46" + + "\1\47\1\0\1\50\5\0\2\44\1\47\1\44\1\46" + "\14\44\1\46\5\44\2\51\3\44\1\51\1\52\1\44" + + "\1\52\1\44\1\0\3\44\3\0\1\44\1\167\1\46" + "\1\47\1\0\1\50\5\0\2\44\1\47\1\44\1\46" + + "\12\44\1\167\1\44\1\46\5\44\2\52\3\44\4\170" + "\1\44\1\0\3\44\3\0\2\44\2\170\7\0\1\170" + + "\1\44\1\170\1\44\1\170\10\44\1\170\3\44\1\170" + "\1\44\1\170\3\44\2\170\1\44\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\4\3\1\171" + "\12\3\1\172\1\173\11\3\1\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\12\3\1\174\3\3" + + "\1\175\13\3\13\13\1\0\1\13\1\176\45\13\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\7\3\1\177\22\3\1\2\6\3\1\0\1\2\1\43" + + "\1\3\3\0\4\3\7\0\1\3\1\200\30\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\5\3\1\201\24\3\1\2\6\3\1\0\1\2\1\43" + + "\1\3\3\0\4\3\7\0\1\202\31\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3" + "\1\67\21\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\13\3\1\203\16\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\7\3" + "\1\204\22\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\16\3\1\123\13\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\7\3" + "\1\67\22\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\15\3\1\205\14\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3" + "\1\206\21\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\26\3\1\123\3\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\4\3" + "\1\123\25\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\1\207\31\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\7\3\1\210" + "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\5\3\1\211\24\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\21\3\1\123" + "\10\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\1\3\1\212\1\206\10\3\1\213\16\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\16\3\1\214\13\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\1\215\31\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\16\3\1\216\13\3\1\2\5\3\1\217\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\32\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\4\3" + "\1\220\6\3\1\221\16\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\1\74\2\3\1\146" + "\3\3\1\222\12\3\1\223\7\3\1\2\5\3\1\157" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\32\3" + + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\3\3\1\224\26\3\1\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\14\3\1\213\2\3" + + "\1\215\12\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\1\225\31\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\1\3\1\226" + + "\30\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\2\3\1\227\23\3\1\230\3\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\11\3\1\231\20\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\2\3\1\203\4\3\1\232" + "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\3\3\1\233\12\3\1\234\13\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\7\3\1\123\5\3\1\212\3\3\1\235\10\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\1\236\31\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\3\3\1\237\3\3\1\240\22\3" + + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\13\3\1\215\16\3\1\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\3\3\1\241\12\3" + + "\1\224\13\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\10\3\1\221\21\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3" + + "\1\242\27\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\17\3\1\243\12\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3" + + "\1\205\1\74\3\3\1\123\7\3\1\244\12\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\5\3\1\245\24\3\1\2\5\3\1\246\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\32\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\1\247" + "\4\3\1\250\24\3\1\2\6\3\1\0\1\2\1\43" + + "\1\3\3\0\4\3\7\0\13\3\1\251\16\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\5\3\1\213\24\3\1\2\6\3\1\0\1\2\1\43" + + "\1\3\3\0\4\3\7\0\1\3\1\61\21\3\1\252" + "\6\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\1\253\1\3\1\254\27\3\1\2\6\3" + + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\22\3" + "\1\255\3\3\1\204\3\3\1\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\3\3\1\256\12\3" + + "\1\257\13\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\2\3\1\260\5\3\1\137\21\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + + "\7\0\2\3\1\261\27\3\1\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\1\116\31\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\5\3\1\262\7\3\1\263\14\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\74" + "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\17\3\1\231\12\3\1\2\5\3\1\264" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3" + "\1\211\21\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\1\265\31\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\266" + "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\7\3\1\267\22\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\2\3\1\270" + "\27\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\3\3\1\74\26\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\1\3\1\271" + "\30\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\16\3\1\272\13\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\273" + "\26\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\13\3\1\151\16\3\2\2\4\274\1\2" + "\1\0\3\2\3\0\2\2\2\274\7\0\1\274\1\2" + + "\1\274\1\2\1\274\10\2\1\274\3\2\1\274\1\2" + "\1\274\3\2\2\274\1\2\2\44\2\165\1\44\1\165" + + "\1\44\1\0\3\44\3\0\2\44\1\46\1\44\7\0" + "\4\44\1\46\14\44\1\46\5\44\2\165\1\44\2\0" + + "\2\165\1\0\1\165\52\0\2\165\1\0\2\44\4\170" + "\1\44\1\0\3\44\3\0\1\44\1\167\2\170\7\0" + + "\1\170\1\44\1\170\1\44\1\170\10\44\1\170\1\44" + "\1\167\1\44\1\170\1\44\1\170\3\44\2\170\1\44" + + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\1\275\31\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\2\3\1\276\27\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\1\212\31\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\10\3\1\277\21\3\1\2\6\3" + + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3" + "\1\213\27\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\10\3\1\300\21\3\1\2\6\3" + + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\2\3" + "\1\157\27\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\1\301\31\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\302" + "\26\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\3\3\1\123\26\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\2\3\1\212" + "\27\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\12\3\1\123\17\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\15\3\1\123" + "\14\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\15\3\1\204\14\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\5\3\1\301" + "\24\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\10\3\1\212\21\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\5\3\1\123" + "\24\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\7\3\1\123\22\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\2\3\1\303" + "\27\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\17\3\1\123\12\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\7\3\1\304" + "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\23\3\1\151\6\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\13\3\1\305" + "\16\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\16\3\1\231\13\3\1\2\5\3\1\306" + + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\32\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\2\3\1\307\13\3\1\310\13\3\1\2\6\3" + + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\25\3" + "\1\123\4\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\15\3\1\231\14\3\1\2\6\3" + + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\17\3" + "\1\172\12\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\5\3\1\77\24\3\1\2\6\3" + + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\1\243" + "\31\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\2\3\1\123\27\3\1\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\13\3\1\311" + "\16\3\1\2\5\3\1\312\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\32\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\16\3\1\122\13\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\10\3\1\123\21\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\22\3\1\231\7\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\20\3\1\313\11\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\15\3\1\314\14\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\7\3\1\315\5\3\1\316\1\317\13\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\15\3\1\320\14\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\13\3\1\213\16\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\2\3\1\321\27\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\13\3\1\322\16\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\5\3\1\225\24\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\3\3\1\123\13\3\1\231" + + "\12\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\10\3\1\323\21\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\7\3\1\240" + + "\22\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\2\3\1\215\27\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\3\3\1\236" + + "\26\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\1\3\1\324\30\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\30\3\1\325" + + "\1\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\4\3\1\326\11\3\1\327\13\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\7\3\1\330\22\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\1\331\31\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\3\3" + + "\1\332\26\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\2\3\1\333\6\3\1\316\20\3" + "\1\2\5\3\1\67\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\32\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\16\3\1\314\13\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\23\3\1\123\6\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\23\3\1\334\6\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\7\3\1\311\22\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\1\205\31\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3" + + "\1\213\21\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\7\3\1\335\22\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\21\3" + + "\1\235\10\3\2\2\4\336\1\2\1\0\3\2\3\0" + "\2\2\2\336\7\0\1\336\1\2\1\336\1\2\1\336" + + "\10\2\1\336\3\2\1\336\1\2\1\336\3\2\2\336" + "\2\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\7\3\1\231\22\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\20\3\1\252\11\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\26\3\1\203\3\3\1\2\6\3\1\0\1\2" + + "\1\43\1\337\3\0\4\3\7\0\32\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\6\3" + "\1\123\23\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\27\3\1\123\2\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\13\3" + "\1\100\16\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\5\3\1\340\24\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\10\3" + "\1\341\21\3\1\2\6\3\1\0\1\2\1\43\1\3" + + "\3\0\4\3\7\0\5\3\1\203\24\3\1\2\6\3" + "\1\0\1\2\1\43\1\3\3\0\4\3\7\0\14\3" + "\1\342\15\3\1\2\5\3\1\265\1\0\1\2\1\43" + + "\1\3\3\0\4\3\7\0\32\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\10\3\1\203" + "\21\3\1\2\6\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\23\3\1\343\6\3\1\2\6\3\1\0" + "\1\2\1\43\1\3\3\0\4\3\7\0\1\67\31\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + + "\7\0\13\3\1\344\16\3\1\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\1\213\31\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\10\3\1\151\21\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\12\3\1\341\17\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\15\3\1\345\14\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\3\3\1\346\26\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\17\3\1\347\12\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\17\3\1\113\12\3\1\2" + "\2\3\1\123\3\3\1\0\1\2\1\43\1\3\3\0" + + "\4\3\7\0\32\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\2\3\1\350\27\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\2\3\1\137\27\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\23\3\1\351\6\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\5\3\1\240\24\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\22\3\1\352\7\3\1\2" + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + + "\1\240\31\3\1\2\6\3\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\10\3\1\210\21\3\2\2\4\353" + "\1\2\1\0\3\2\3\0\2\2\2\353\7\0\1\353" + + "\1\2\1\353\1\2\1\353\10\2\1\353\3\2\1\353" + "\1\2\1\353\3\2\2\353\2\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\11\3\1\354\20\3" + + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\10\3\1\301\21\3\1\2\6\3\1\0\1\2" + "\1\43\1\3\3\0\4\3\7\0\1\3\1\123\30\3" + + "\1\2\5\3\1\155\1\0\1\2\1\43\1\3\3\0" + "\4\3\7\0\32\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\3\3\1\355\26\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\7\3\1\232\22\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\22\3\1\123\7\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\17\3\1\356\12\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\14\3\1\123\15\3\1\2" + + "\6\3\1\0\1\2\1\43\1\3\3\0\4\3\7\0" + "\10\3\1\350\21\3\1\2\6\3\1\0\1\2\1\43" + "\1\3\3\0\4\3\7\0\7\3\1\314\22\3\2\2" + + "\4\3\1\2\1\0\3\2\3\0\2\2\2\3\7\0" + "\1\3\1\2\1\3\1\2\1\3\10\2\1\3\3\2" + "\1\3\1\2\1\3\3\2\2\3\2\2\6\3\1\0" + + "\1\2\1\43\1\3\3\0\4\3\7\0\12\3\1\357" + "\17\3\1\2\5\3\1\231\1\0\1\2\1\43\1\3" + "\3\0\4\3\7\0\32\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\23\3\1\173\6\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\13\3\1\360\16\3\1\2\6\3\1\0\1\2" + + "\1\43\1\3\3\0\4\3\7\0\3\3\1\361\26\3" + "\1\2\6\3\1\0\1\2\1\43\1\3\3\0\4\3" + "\7\0\4\3\1\326\25\3"; + + private static int[] zzUnpackTrans() { + int[] result = new int[11628]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\5\1\1\11\1\1\1\11\2\1\1\11\1\1" + "\2\11\37\1\1\11\106\1\1\0\173\1"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[241]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public TclTokenMaker() { - } - - + public TclTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -695,29 +428,28 @@ public class TclTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = Token.NULL; - s = text; try { yyreset(zzReader); @@ -727,21 +459,18 @@ public class TclTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -750,7 +479,8 @@ public class TclTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -759,316 +489,316 @@ public class TclTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 TclTokenMaker(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 TclTokenMaker(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 < 160) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 14: { + addToken(Token.RESERVED_WORD); + } + case 15: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 16: + break; + case 13: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 17: + break; + case 11: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 18: + break; + case 4: { + addToken(Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 19: + break; + case 6: { + addToken(Token.WHITESPACE); + } + case 20: + break; + case 10: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 21: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 22: + break; + case 12: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 23: + break; + case 8: { + addToken(Token.OPERATOR); + } + case 24: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 25: + break; + case 7: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 26: + break; + case 5: { + addNullToken(); + return firstToken; + } + case 27: + break; + case 9: { + addToken(Token.SEPARATOR); + } + case 28: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 242: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 TclTokenMaker(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 TclTokenMaker(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 < 160) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 14: - { addToken(Token.RESERVED_WORD); - } - case 15: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 16: break; - case 13: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 17: break; - case 11: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 18: break; - case 4: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 19: break; - case 6: - { addToken(Token.WHITESPACE); - } - case 20: break; - case 10: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 21: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 22: break; - case 12: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 23: break; - case 8: - { addToken(Token.OPERATOR); - } - case 24: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 25: break; - case 7: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 26: break; - case 5: - { addNullToken(); return firstToken; - } - case 27: break; - case 9: - { addToken(Token.SEPARATOR); - } - case 28: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 242: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/TypeScriptTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/TypeScriptTokenMaker.java index 1b993cf..ebf0492 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/TypeScriptTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/TypeScriptTokenMaker.java @@ -1,9 +1,7 @@ /* The following code was generated by JFlex 1.4.1 on 12/29/16 1:21 AM */ - /* * 11/24/2015 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -20,1284 +18,841 @@ import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; import org.fife.ui.rsyntaxtextarea.TokenTypes; - /** - * Scanner for TypeScript files. Currently it is a clone of + * Scanner for TypeScript files. Currently it is a clone of * {@code JavaScriptTokenMaker}, but it should diverge over time to match * the added features of TypeScript. * * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated TypeScriptTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated TypeScriptTokenMaker.java file will contain + * two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.9 */ - public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int JS_STRING = 1; - public static final int E4X = 6; - public static final int E4X_INTAG = 10; - public static final int E4X_PI = 8; - public static final int JS_MLC = 3; - public static final int JS_CHAR = 2; - public static final int JS_EOL_COMMENT = 5; - public static final int E4X_COMMENT = 7; - public static final int JS_DOCCOMMENT = 4; - public static final int E4X_DTD = 9; - public static final int JS_TEMPLATE_LITERAL = 14; - public static final int E4X_INATTR_SINGLE = 12; - public static final int E4X_INATTR_DOUBLE = 11; - public static final int JS_TEMPLATE_LITERAL_EXPR = 15; - public static final int YYINITIAL = 0; - public static final int E4X_CDATA = 13; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\75\1\2\1\0\1\1\1\11\22\0\1\75\1\36\1\77"+ - "\1\12\1\15\1\35\1\40\1\107\2\106\1\17\1\30\1\27\1\24"+ - "\1\25\1\16\1\5\7\7\2\4\1\41\1\76\1\31\1\32\1\34"+ - "\1\37\1\45\1\103\1\6\1\101\1\102\1\23\1\22\2\3\1\112"+ - "\2\3\1\21\1\3\1\111\5\3\1\104\3\3\1\20\2\3\1\100"+ - "\1\13\1\105\1\33\1\14\1\113\1\46\1\47\1\53\1\65\1\54"+ - "\1\70\1\57\1\61\1\56\1\3\1\64\1\55\1\44\1\60\1\62"+ - "\1\66\1\73\1\52\1\50\1\51\1\10\1\71\1\63\1\72\1\67"+ - "\1\110\1\74\1\43\1\26\1\42\uff81\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 = - "\13\0\2\1\3\0\1\2\1\3\1\4\1\5\2\6"+ - "\1\5\1\2\3\7\1\5\1\10\1\5\6\7\1\2"+ - "\1\5\1\2\20\5\1\11\1\12\2\5\1\13\1\1"+ - "\1\14\1\15\1\16\1\1\1\17\1\20\1\21\1\1"+ - "\1\22\5\1\1\23\10\1\1\24\3\1\2\5\1\25"+ - "\1\26\1\27\1\30\1\1\1\31\5\1\1\32\2\1"+ - "\1\33\1\1\1\34\1\35\1\36\2\37\1\40\1\41"+ - "\1\42\1\43\1\1\1\44\4\1\1\45\1\46\1\47"+ - "\1\50\1\1\1\51\1\1\1\52\1\2\1\53\1\6"+ - "\1\54\1\53\1\54\1\53\1\55\1\53\1\5\2\0"+ - "\1\56\1\57\2\7\2\0\1\60\1\7\1\5\1\61"+ - "\34\5\2\62\7\5\1\62\13\5\1\63\1\64\1\65"+ - "\1\66\4\0\1\67\2\0\1\70\32\0\1\71\1\26"+ - "\1\72\1\73\1\27\5\0\1\74\2\0\1\75\1\76"+ - "\1\2\1\54\1\0\2\55\1\5\1\77\1\100\2\5"+ - "\1\101\37\5\1\101\26\5\64\0\1\102\2\0\1\103"+ - "\5\0\1\104\1\2\1\105\6\5\1\106\5\5\1\107"+ - "\1\5\1\110\25\5\1\0\1\1\1\0\1\111\15\0"+ - "\1\112\45\0\1\113\4\0\1\114\1\0\1\115\2\0"+ - "\1\116\1\0\1\117\1\2\5\5\1\62\17\5\1\62"+ - "\1\5\15\0\1\112\20\0\1\112\20\0\1\2\4\5"+ - "\1\120\13\5\33\0\10\5\1\112\4\0\1\112\12\0"+ - "\3\5\6\0\1\5\2\0\1\121\1\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[639]; - 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\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214"+ - "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u03dc\0\u0428\0\u0474"+ - "\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688\0\u0558"+ - "\0\u06d4\0\u0720\0\u076c\0\u07b8\0\u0558\0\u0558\0\u0804\0\u0850"+ - "\0\u089c\0\u08e8\0\u0558\0\u0934\0\u0980\0\u09cc\0\u0a18\0\u0a64"+ - "\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0\0\u0c2c\0\u0c78\0\u0cc4"+ - "\0\u0d10\0\u0d5c\0\u0da8\0\u0df4\0\u0e40\0\u0e8c\0\u0ed8\0\u0558"+ - "\0\u0558\0\u0f24\0\u0f70\0\u0558\0\u0fbc\0\u0558\0\u1008\0\u0558"+ - "\0\u1054\0\u0558\0\u1008\0\u0558\0\u10a0\0\u0558\0\u10ec\0\u1138"+ - "\0\u1184\0\u11d0\0\u121c\0\u0558\0\u1268\0\u12b4\0\u1300\0\u134c"+ - "\0\u1398\0\u13e4\0\u1430\0\u147c\0\u0558\0\u14c8\0\u1514\0\u1560"+ - "\0\u15ac\0\u15f8\0\u0558\0\u1644\0\u1690\0\u0558\0\u16dc\0\u0558"+ - "\0\u1728\0\u1774\0\u17c0\0\u180c\0\u1858\0\u0558\0\u18a4\0\u18f0"+ - "\0\u0558\0\u193c\0\u0558\0\u0558\0\u0558\0\u1988\0\u19d4\0\u1a20"+ - "\0\u0558\0\u0558\0\u0558\0\u1a6c\0\u0558\0\u1ab8\0\u1b04\0\u1b50"+ - "\0\u1b9c\0\u0558\0\u1008\0\u1be8\0\u0558\0\u1c34\0\u0558\0\u1c80"+ - "\0\u0558\0\u1ccc\0\u1d18\0\u1d18\0\u1d18\0\u1d64\0\u1db0\0\u1dfc"+ - "\0\u1e48\0\u1e94\0\u1ee0\0\u1f2c\0\u1f78\0\u0558\0\u1fc4\0\u1f2c"+ - "\0\u2010\0\u0720\0\u2010\0\u0558\0\u205c\0\u20a8\0\u20f4\0\u2140"+ - "\0\u218c\0\u21d8\0\u2224\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0"+ - "\0\u23ec\0\u2438\0\u2484\0\u24d0\0\u251c\0\u2568\0\u25b4\0\u2600"+ - "\0\u264c\0\u2698\0\u26e4\0\u2730\0\u277c\0\u27c8\0\u2814\0\u2860"+ - "\0\u28ac\0\u28f8\0\u2944\0\u2990\0\u05a4\0\u29dc\0\u2a28\0\u2a74"+ - "\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88\0\u2cd4"+ - "\0\u2d20\0\u2d6c\0\u2db8\0\u2e04\0\u2e50\0\u2e9c\0\u2ee8\0\u2f34"+ - "\0\u0558\0\u2f80\0\u2fcc\0\u0558\0\u3018\0\u3064\0\u30b0\0\u30fc"+ - "\0\u0558\0\u3148\0\u3194\0\u0558\0\u31e0\0\u322c\0\u3278\0\u32c4"+ - "\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u34d8\0\u3524"+ - "\0\u3570\0\u35bc\0\u3608\0\u3654\0\u36a0\0\u36ec\0\u3738\0\u3784"+ - "\0\u37d0\0\u381c\0\u3868\0\u38b4\0\u3900\0\u394c\0\u3998\0\u39e4"+ - "\0\u3a30\0\u0558\0\u0558\0\u3a7c\0\u3ac8\0\u3b14\0\u3b60\0\u3bac"+ - "\0\u0558\0\u3bf8\0\u3c44\0\u0558\0\u0558\0\u3c90\0\u3cdc\0\u3d28"+ - "\0\u1d18\0\u3d74\0\u3dc0\0\u3e0c\0\u3e58\0\u3ea4\0\u3ef0\0\u05a4"+ - "\0\u3f3c\0\u3f88\0\u3fd4\0\u4020\0\u406c\0\u40b8\0\u4104\0\u4150"+ - "\0\u419c\0\u41e8\0\u4234\0\u4280\0\u42cc\0\u4318\0\u4364\0\u43b0"+ - "\0\u43fc\0\u4448\0\u4494\0\u44e0\0\u452c\0\u4578\0\u45c4\0\u4610"+ - "\0\u465c\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u4870"+ - "\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84\0\u4ad0"+ - "\0\u4b1c\0\u4b68\0\u4bb4\0\u4c00\0\u4c4c\0\u4c98\0\u4ce4\0\u4d30"+ - "\0\u4d7c\0\u4dc8\0\u4e14\0\u4e60\0\u4eac\0\u4ef8\0\u4f44\0\u4f90"+ - "\0\u4fdc\0\u5028\0\u5074\0\u50c0\0\u510c\0\u5158\0\u51a4\0\u51f0"+ - "\0\u523c\0\u5288\0\u52d4\0\u5320\0\u536c\0\u53b8\0\u5404\0\u5450"+ - "\0\u549c\0\u54e8\0\u5534\0\u5580\0\u55cc\0\u5618\0\u5664\0\u56b0"+ - "\0\u56fc\0\u5748\0\u5794\0\u57e0\0\u582c\0\u5878\0\u58c4\0\u5910"+ - "\0\u595c\0\u59a8\0\u59f4\0\u5a40\0\u5a8c\0\u5ad8\0\u5b24\0\u5b70"+ - "\0\u5bbc\0\u5c08\0\u5c54\0\u5ca0\0\u5cec\0\u5d38\0\u5d84\0\u5dd0"+ - "\0\u5e1c\0\u5e68\0\u5eb4\0\u5f00\0\u5f4c\0\u0558\0\u5f98\0\u5fe4"+ - "\0\u6030\0\u607c\0\u60c8\0\u0558\0\u6114\0\u0558\0\u6160\0\u61ac"+ - "\0\u61f8\0\u6244\0\u6290\0\u62dc\0\u05a4\0\u6328\0\u6374\0\u63c0"+ - "\0\u640c\0\u6458\0\u05a4\0\u64a4\0\u05a4\0\u64f0\0\u653c\0\u6588"+ - "\0\u65d4\0\u6620\0\u666c\0\u66b8\0\u6704\0\u6750\0\u679c\0\u67e8"+ - "\0\u6834\0\u6880\0\u68cc\0\u6918\0\u6964\0\u69b0\0\u69fc\0\u6a48"+ - "\0\u6a94\0\u6ae0\0\u2fcc\0\u0558\0\u6b2c\0\u6b78\0\u6bc4\0\u6c10"+ - "\0\u6c5c\0\u6ca8\0\u6cf4\0\u6d40\0\u6d8c\0\u6dd8\0\u6e24\0\u6e70"+ - "\0\u6ebc\0\u6f08\0\u6f54\0\u0558\0\u6fa0\0\u6fec\0\u7038\0\u7084"+ - "\0\u70d0\0\u711c\0\u7168\0\u71b4\0\u7200\0\u724c\0\u7298\0\u72e4"+ - "\0\u7330\0\u737c\0\u73c8\0\u7414\0\u7460\0\u74ac\0\u74f8\0\u7544"+ - "\0\u7590\0\u75dc\0\u7628\0\u7674\0\u76c0\0\u770c\0\u7758\0\u77a4"+ - "\0\u77f0\0\u783c\0\u7888\0\u78d4\0\u7920\0\u796c\0\u79b8\0\u7a04"+ - "\0\u7a50\0\u7a9c\0\u7ae8\0\u7b34\0\u7b80\0\u7bcc\0\u7c18\0\u7c64"+ - "\0\u0558\0\u7cb0\0\u7cfc\0\u7d48\0\u7d94\0\u0558\0\u7de0\0\u7e2c"+ - "\0\u7e78\0\u7ec4\0\u7f10\0\u7f5c\0\u42cc\0\u7fa8\0\u7ff4\0\u8040"+ - "\0\u808c\0\u80d8\0\u8124\0\u8170\0\u81bc\0\u8208\0\u8254\0\u82a0"+ - "\0\u82ec\0\u8338\0\u8384\0\u83d0\0\u841c\0\u8468\0\u6b78\0\u84b4"+ - "\0\u8500\0\u854c\0\u8598\0\u85e4\0\u8630\0\u867c\0\u86c8\0\u8714"+ - "\0\u8760\0\u87ac\0\u87f8\0\u8844\0\u8890\0\u88dc\0\u8928\0\u8974"+ - "\0\u89c0\0\u8a0c\0\u8a58\0\u8aa4\0\u8af0\0\u8b3c\0\u8b88\0\u8bd4"+ - "\0\u8c20\0\u8c6c\0\u8cb8\0\u8d04\0\u8d50\0\u8d9c\0\u8de8\0\u8e34"+ - "\0\u8e80\0\u8ecc\0\u8f18\0\u8f64\0\u7a9c\0\u8fb0\0\u8ffc\0\u9048"+ - "\0\u7c18\0\u9094\0\u90e0\0\u7d48\0\u912c\0\u9178\0\u91c4\0\u9210"+ - "\0\u925c\0\u92a8\0\u05a4\0\u92f4\0\u9340\0\u938c\0\u93d8\0\u9424"+ - "\0\u9470\0\u94bc\0\u9508\0\u9554\0\u95a0\0\u95ec\0\u9638\0\u9684"+ - "\0\u96d0\0\u971c\0\u9768\0\u97b4\0\u9800\0\u984c\0\u9898\0\u98e4"+ - "\0\u9930\0\u997c\0\u99c8\0\u9a14\0\u9a60\0\u9aac\0\u9af8\0\u9b44"+ - "\0\u9b90\0\u9bdc\0\u9c28\0\u9c74\0\u9cc0\0\u9d0c\0\u9d58\0\u9da4"+ - "\0\u9df0\0\u9e3c\0\u9e88\0\u9ed4\0\u9f20\0\u9f6c\0\u9fb8\0\ua004"+ - "\0\ua050\0\ua09c\0\ua0e8\0\ua134\0\ua180\0\ua1cc\0\u7038\0\ua218"+ - "\0\ua264\0\ua2b0\0\ua2fc\0\ua348\0\ua394\0\ua3e0\0\ua42c\0\ua478"+ - "\0\ua4c4\0\ua510\0\ua55c\0\ua5a8\0\ua5f4\0\ua640\0\ua68c\0\ua6d8"+ - "\0\ua724\0\ua770\0\ua7bc\0\ua808\0\ua854\0\u0558\0\ua8a0"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[639]; - 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 = - "\1\21\1\22\1\23\1\24\1\25\1\26\1\24\1\25"+ - "\1\27\1\30\2\21\2\24\1\31\1\32\4\24\1\33"+ - "\1\34\1\35\1\36\1\37\1\40\1\41\1\32\1\42"+ - "\2\32\1\43\1\44\2\43\1\45\1\46\1\47\1\50"+ - "\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60"+ - "\1\61\1\62\2\24\1\63\1\24\1\64\1\65\1\24"+ - "\1\66\1\67\2\24\1\35\1\22\1\36\1\70\1\35"+ - "\4\24\2\35\1\71\1\24\1\72\1\73\1\74\2\75"+ - "\1\76\10\75\1\77\63\75\1\100\14\75\2\101\1\102"+ - "\10\101\1\103\73\101\1\104\4\101\2\105\1\106\14\105"+ - "\1\107\41\105\1\110\1\105\1\111\4\105\1\112\23\105"+ - "\2\113\1\114\14\113\1\115\11\113\1\116\13\113\1\117"+ - "\13\113\1\120\1\113\1\121\4\113\1\122\3\113\1\123"+ - "\17\113\2\124\1\125\56\124\1\126\1\124\1\127\4\124"+ - "\1\130\23\124\1\131\1\132\1\133\26\131\1\134\6\131"+ - "\1\135\34\131\1\22\1\136\15\131\2\137\1\140\21\137"+ - "\1\141\34\137\1\142\1\137\1\143\4\137\1\144\23\137"+ - "\2\145\1\146\34\145\1\147\54\145\2\150\1\151\26\150"+ - "\1\152\2\150\1\153\43\150\1\154\4\150\1\155\6\150"+ - "\1\156\1\157\1\0\13\156\1\160\13\156\1\43\1\156"+ - "\1\161\40\156\1\22\1\156\1\162\7\156\1\163\4\156"+ - "\77\164\1\165\14\164\107\166\1\165\4\166\105\167\1\170"+ - "\6\167\2\171\1\172\10\171\1\173\1\171\1\174\75\171"+ - "\1\175\2\176\1\177\12\176\1\200\10\176\1\201\65\176"+ - "\1\21\2\0\6\21\1\0\4\21\2\0\4\21\20\0"+ - "\30\21\5\0\4\21\3\0\3\21\2\0\1\22\73\0"+ - "\1\22\132\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\26\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\203\2\0\1\203\2\25"+ - "\1\203\1\25\1\203\1\0\4\203\2\0\1\203\1\204"+ - "\1\205\1\206\1\0\1\207\16\0\10\203\1\206\1\204"+ - "\7\203\1\205\2\203\1\205\3\203\5\0\1\203\1\205"+ - "\2\203\3\0\3\203\1\0\1\203\2\0\1\203\1\210"+ - "\1\211\1\203\1\211\1\203\1\0\4\203\2\0\1\212"+ - "\1\204\1\205\1\206\1\0\1\207\16\0\10\203\1\206"+ - "\1\204\7\203\1\205\2\203\1\205\1\203\1\212\1\203"+ - "\5\0\1\203\1\205\2\203\3\0\3\203\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\12\24\1\213\13\24\5\0\4\24"+ - "\3\0\3\24\1\0\13\214\1\215\2\214\1\216\1\217"+ - "\12\214\1\220\61\214\32\0\1\43\105\0\1\43\5\0"+ - "\1\43\65\0\2\207\1\0\1\207\134\0\1\43\1\0"+ - "\1\221\112\0\1\222\1\43\62\0\1\223\27\0\1\224"+ - "\1\43\42\0\1\223\50\0\1\43\1\0\1\225\111\0"+ - "\1\43\5\0\1\43\105\0\1\43\10\0\1\43\50\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\14\24\1\226\11\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\1\227\2\21"+ - "\1\227\1\21\1\227\1\0\4\21\2\0\4\227\20\0"+ - "\1\227\1\21\26\227\5\0\4\227\3\0\3\227\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\24\1\230\10\24\1\231"+ - "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\4\24\1\232\7\24\1\233\4\24\1\234"+ - "\4\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\5\24\1\235\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\3\24\1\236\7\24\1\237\1\24"+ - "\1\240\3\24\1\241\4\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\4\24\1\242\6\24"+ - "\1\243\5\24\1\244\4\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\6\24\1\245\17\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\246\6\24\1\247\3\24\1\250\1\251\11\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\252\1\24\1\253\4\24\1\254\2\24\1\255"+ - "\10\24\1\256\1\257\1\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\6\24\1\260\5\24"+ - "\1\261\11\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\262\1\21\2\24\1\263\7\24\1\264\7\24"+ - "\1\265\3\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\14\24\1\266\11\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\5\24\1\267\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\1\270\5\24\1\271\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\10\24\1\272\2\24"+ - "\1\273\12\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\6\24\1\274\5\24\1\275\11\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24"+ - "\1\276\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\277\3\24\1\300\21\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\5\24\1\301\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\1\302\6\24\1\303\1\304\3\24\1\305\11\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\1\305\13\24\1\306\11\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\1\307\25\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\12\24\1\310\13\24\5\0\4\24\3\0\3\24\1\0"+ - "\2\75\1\0\10\75\1\0\63\75\1\0\14\75\2\311"+ - "\1\0\5\311\1\312\61\311\1\313\21\311\2\101\1\0"+ - "\10\101\1\0\73\101\1\0\4\101\2\105\1\0\14\105"+ - "\1\0\41\105\1\0\1\105\1\0\4\105\1\0\23\105"+ - "\16\0\1\314\146\0\1\315\125\0\1\316\101\0\1\317"+ - "\4\0\1\320\35\0\2\113\1\0\14\113\1\0\11\113"+ - "\1\0\13\113\1\0\13\113\1\0\1\113\1\0\4\113"+ - "\1\0\3\113\1\0\17\113\16\0\1\321\100\0\1\322"+ - "\2\0\1\322\1\0\1\322\5\0\1\323\1\0\4\322"+ - "\10\0\1\324\7\0\1\322\1\0\26\322\5\0\4\322"+ - "\3\0\3\322\45\0\1\325\1\0\1\326\1\327\1\330"+ - "\1\331\1\332\1\333\1\334\1\335\1\336\1\337\1\340"+ - "\3\0\1\341\1\342\1\343\1\0\1\344\1\345\73\0"+ - "\1\346\125\0\1\347\101\0\1\350\4\0\1\351\102\0"+ - "\1\352\46\0\2\124\1\0\56\124\1\0\1\124\1\0"+ - "\4\124\1\0\23\124\51\0\1\353\125\0\1\354\101\0"+ - "\1\355\4\0\1\356\35\0\2\131\1\0\26\131\1\0"+ - "\6\131\1\0\34\131\2\0\16\131\1\132\1\0\26\131"+ - "\1\0\6\131\1\0\34\131\1\22\1\0\15\131\3\0"+ - "\1\357\2\0\1\357\1\0\1\357\3\0\1\357\1\0"+ - "\1\360\1\0\4\357\12\0\1\361\1\362\1\0\1\357"+ - "\2\0\1\357\1\0\26\357\5\0\4\357\3\0\3\357"+ - "\1\0\75\135\1\0\1\363\15\135\2\137\1\0\21\137"+ - "\1\0\34\137\1\0\1\137\1\0\4\137\1\0\23\137"+ - "\24\0\1\364\140\0\1\365\125\0\1\366\101\0\1\367"+ - "\4\0\1\370\35\0\2\145\1\0\34\145\1\0\54\145"+ - "\34\0\1\371\57\0\2\150\1\0\26\150\1\0\2\150"+ - "\1\0\43\150\1\0\4\150\1\0\6\150\36\0\1\372"+ - "\55\0\2\156\1\0\13\156\1\0\13\156\1\0\1\156"+ - "\1\0\40\156\1\0\1\156\1\0\7\156\1\0\5\156"+ - "\1\157\1\0\13\156\1\0\13\156\1\0\1\156\1\0"+ - "\40\156\1\22\1\156\1\0\7\156\1\0\4\156\34\0"+ - "\1\161\57\0\77\164\1\0\14\164\107\166\1\0\4\166"+ - "\105\167\1\0\6\167\105\0\1\373\6\0\2\171\1\0"+ - "\10\171\1\0\1\171\1\0\75\171\75\0\1\374\17\0"+ - "\2\176\1\0\12\176\1\0\10\176\1\0\65\176\74\0"+ - "\1\375\17\0\1\21\2\0\5\21\1\376\1\0\4\21"+ - "\2\0\4\21\20\0\30\21\5\0\4\21\3\0\3\21"+ - "\1\0\1\203\2\0\6\203\1\0\4\203\2\0\4\203"+ - "\20\0\30\203\5\0\4\203\3\0\3\203\1\0\1\203"+ - "\2\0\1\203\2\377\1\203\1\377\1\203\1\0\4\203"+ - "\2\0\4\203\1\u0100\3\0\1\u0100\13\0\30\203\5\0"+ - "\4\203\3\0\3\203\1\0\1\203\2\0\1\203\2\207"+ - "\1\203\1\207\1\203\1\0\4\203\2\0\2\203\1\205"+ - "\1\206\20\0\10\203\1\206\10\203\1\205\2\203\1\205"+ - "\3\203\5\0\1\203\1\205\2\203\3\0\3\203\1\0"+ - "\1\203\2\0\1\203\2\210\1\203\1\210\1\203\1\0"+ - "\4\203\2\0\2\203\1\205\1\206\1\0\1\207\16\0"+ - "\10\203\1\206\10\203\1\205\2\203\1\205\3\203\5\0"+ - "\1\203\1\205\2\203\3\0\3\203\1\0\1\203\2\0"+ - "\1\203\1\210\1\211\1\203\1\211\1\203\1\0\4\203"+ - "\2\0\1\203\1\u0101\1\205\1\206\1\0\1\207\16\0"+ - "\10\203\1\206\1\u0101\7\203\1\205\2\203\1\205\3\203"+ - "\5\0\1\203\1\205\2\203\3\0\3\203\1\0\1\203"+ - "\2\0\1\203\4\u0102\1\203\1\0\4\203\2\0\2\203"+ - "\2\u0102\20\0\2\203\2\u0102\3\203\2\u0102\10\203\1\u0102"+ - "\2\203\1\u0102\3\203\5\0\3\u0102\1\203\3\0\3\203"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\6\24\1\u0103\17\24"+ - "\5\0\4\24\3\0\3\24\1\0\13\214\1\215\2\214"+ - "\1\u0104\77\214\1\0\111\214\17\0\1\u0105\75\0\1\223"+ - "\27\0\1\224\43\0\1\223\50\0\1\43\1\0\1\32"+ - "\57\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\17\24\1\u0106\6\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\227"+ - "\1\0\4\21\2\0\4\227\20\0\1\227\1\21\26\227"+ - "\5\0\4\227\3\0\3\227\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\2\24\1\u0107\23\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\21\24\1\u0108\4\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u0109\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\14\24\1\u010a\11\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u010b\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\20\24\1\u010c\5\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\u010d\3\24\1\u010e\21\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u010f"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\10\24\1\u0110\15\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u0111"+ - "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\5\24\1\u0112\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\1\u0113\20\24\1\265\4\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\4\24\1\u0114\3\24\1\u0115\15\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\20\24\1\u0116"+ - "\5\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\3\24\1\u0117\22\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\2\24\1\u0118"+ - "\1\u0119\22\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\1\u011a\25\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\1\u011b\25\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\12\24\1\u011c\13\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\5\24\1\u011d\20\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\5\24\1\u011e\20\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\2\24\1\u0118\23\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24"+ - "\1\u011f\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\26\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\u0120\25\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\3\24"+ - "\1\u0121\14\24\1\u0122\5\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\3\24\1\265\22\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\12\24\1\u0123\13\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\20\24\1\u0124\5\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\2\24\1\u0125\1\24"+ - "\20\0\1\24\1\21\26\24\5\0\4\24\3\0\1\24"+ - "\1\u0126\1\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\2\24"+ - "\1\u0127\1\u0128\22\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u0129\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\u012a\1\21"+ - "\7\24\1\u012b\16\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u012c\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\15\24\1\265\10\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u012d\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\10\24\1\u012e\15\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\24\1\u012f\5\24\1\u0130"+ - "\12\24\1\u0131\3\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\5\24\1\u0132\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\24"+ - "\1\u0133\24\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\4\24\1\u0134\1\u0135\20\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\10\24\1\u0136\3\24\1\u0137\11\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u0138"+ - "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\7\24\1\u0139\16\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u013a"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u013b\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\265"+ - "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\7\24\1\u013c\1\u013d\15\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24"+ - "\5\0\4\24\3\0\1\24\1\265\1\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\22\24\1\u013e\3\24\5\0\4\24"+ - "\3\0\3\24\5\0\4\u013f\12\0\2\u013f\22\0\2\u013f"+ - "\3\0\2\u013f\10\0\1\u013f\2\0\1\u013f\10\0\3\u013f"+ - "\14\0\4\u0140\12\0\2\u0140\22\0\2\u0140\3\0\2\u0140"+ - "\10\0\1\u0140\2\0\1\u0140\10\0\3\u0140\61\0\1\u0141"+ - "\125\0\1\u0142\116\0\1\u0143\102\0\1\u0144\36\0\34\322"+ - "\1\324\57\322\3\0\1\322\2\0\1\322\1\0\1\322"+ - "\7\0\4\322\10\0\1\324\7\0\1\322\1\0\26\322"+ - "\5\0\4\322\3\0\3\322\55\0\1\u0145\1\0\1\u0146"+ - "\3\0\1\u0147\41\0\1\u0148\36\0\1\u0149\3\0\1\u014a"+ - "\1\0\1\u014b\120\0\1\u014c\41\0\1\u014d\40\0\1\u014e"+ - "\2\0\1\u014f\1\0\1\u0150\116\0\1\u0151\1\u0152\4\0"+ - "\1\u0153\100\0\1\u0154\105\0\1\u0155\6\0\1\u0156\4\0"+ - "\1\u0157\111\0\1\u0158\10\0\1\u0159\1\u015a\75\0\1\u015b"+ - "\1\0\1\u015c\114\0\1\u015d\1\u015e\110\0\1\u015f\104\0"+ - "\1\u0160\123\0\1\u0161\111\0\1\u0162\47\0\1\u0163\35\0"+ - "\1\u0164\3\0\1\u0165\117\0\1\u0166\103\0\1\u0167\5\0"+ - "\1\u0168\110\0\1\u0169\125\0\1\u016a\116\0\1\u016b\102\0"+ - "\1\u016c\107\0\1\u016d\3\0\1\u016e\107\0\1\u016f\125\0"+ - "\1\u0170\116\0\1\u0171\102\0\1\u0172\41\0\6\357\3\0"+ - "\1\357\3\0\6\357\13\0\1\357\2\0\1\357\1\0"+ - "\26\357\5\0\4\357\3\0\3\357\4\0\1\u0173\2\0"+ - "\1\u0173\1\0\1\u0173\3\0\1\u0173\3\0\4\u0173\15\0"+ - "\1\u0173\2\0\1\u0173\1\0\26\u0173\5\0\4\u0173\3\0"+ - "\3\u0173\25\0\1\u0174\53\0\1\u0175\47\0\1\u0176\130\0"+ - "\1\u0177\125\0\1\u0178\116\0\1\u0179\102\0\1\u017a\62\0"+ - "\1\u017b\123\0\1\u017c\57\0\1\21\2\0\1\21\4\u017d"+ - "\1\21\1\0\4\21\2\0\2\21\2\u017d\20\0\2\21"+ - "\2\u017d\3\21\2\u017d\10\21\1\u017d\2\21\1\u017d\3\21"+ - "\5\0\3\u017d\1\21\3\0\3\21\1\0\1\203\2\0"+ - "\1\203\2\377\1\203\1\377\1\203\1\0\4\203\2\0"+ - "\2\203\1\205\1\203\20\0\21\203\1\205\2\203\1\205"+ - "\3\203\5\0\1\203\1\205\2\203\3\0\3\203\5\0"+ - "\2\377\1\0\1\377\104\0\1\203\2\0\1\203\4\u0102"+ - "\1\203\1\0\4\203\2\0\1\203\1\u0101\2\u0102\20\0"+ - "\2\203\2\u0102\3\203\2\u0102\1\u0101\7\203\1\u0102\2\203"+ - "\1\u0102\3\203\5\0\3\u0102\1\203\3\0\3\203\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\2\24\1\253\23\24\5\0"+ - "\4\24\3\0\3\24\45\0\1\u0104\11\0\2\u0104\52\0"+ - "\1\u017e\75\0\1\21\2\0\5\24\1\u012e\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u017f\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\1\u0180\25\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\7\24\1\u0181\16\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\6\24\1\u0108\17\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\6\24\1\305\17\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u0182\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\10\24\1\261\15\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\4\24\1\u0183\21\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\3\24\1\u0119\22\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\5\24\1\u0184\20\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\6\24\1\u0185\17\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\12\24\1\u0186\13\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\14\24\1\u0187\11\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\2\24\1\265\23\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\6\24\1\u0188\17\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\5\24\1\u0189\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\265\17\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\5\24\1\u012d\20\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\2\24"+ - "\1\u0115\23\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\4\24\1\u0108\21\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\2\24"+ - "\1\260\1\u018a\22\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\13\24\1\u018b\12\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\1\u018c\25\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\265\1\21\26\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\7\24\1\u018d\16\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u018e\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\14\24\1\u018f\11\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\11\24\1\u0108\14\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\7\24\1\u0190\4\24"+ - "\1\u018f\11\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\10\24\1\u0191\15\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\u0192"+ - "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\3\24\1\u0193\22\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\6\24\1\u0194"+ - "\17\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\14\24\1\265\11\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\1\24\1\u0195"+ - "\24\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\7\24\1\265\16\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\10\24\1\u0196"+ - "\15\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\13\24\1\265\12\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u0118"+ - "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\5\24\1\u0197\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\26\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\6\24\1\u0198\17\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\u0199\25\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\24\1\u019a\24\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\7\24\1\u0182\16\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\2\24\1\u019b\23\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\16\24\1\u019c\7\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\23\24\1\u019d\2\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\3\24\1\u019e\22\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\5\24\1\u019f\20\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\2\24\1\u0112\23\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\u0183\25\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\u01a0"+ - "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\u01a1\25\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\17\24\1\265\6\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\10\24\1\u01a2\15\24\5\0\4\24\3\0\3\24"+ - "\5\0\4\u01a3\12\0\2\u01a3\22\0\2\u01a3\3\0\2\u01a3"+ - "\10\0\1\u01a3\2\0\1\u01a3\10\0\3\u01a3\14\0\4\u01a4"+ - "\12\0\2\u01a4\22\0\2\u01a4\3\0\2\u01a4\10\0\1\u01a4"+ - "\2\0\1\u01a4\10\0\3\u01a4\76\0\1\u01a5\52\0\1\u01a6"+ - "\127\0\1\u01a7\126\0\1\u0143\103\0\1\u01a8\4\0\1\u01a9"+ - "\134\0\1\u01aa\106\0\1\u01ab\77\0\1\u01ac\5\0\1\u01ad"+ - "\104\0\1\u01ae\116\0\1\u01af\116\0\1\u01b0\107\0\1\u01b1"+ - "\105\0\1\u01b2\115\0\1\u01b3\121\0\1\u01b4\117\0\1\u01b5"+ - "\105\0\1\u01b6\3\0\1\u01b7\122\0\1\u01b8\114\0\1\u01b9"+ - "\73\0\1\u01ba\2\0\1\u01bb\21\0\1\u01bc\75\0\1\u01bd"+ - "\104\0\1\u01be\125\0\1\u01bf\5\0\1\u01c0\35\0\1\u01c1"+ - "\157\0\1\u01c2\105\0\1\u01c3\2\0\1\u01c4\14\0\1\u01c5"+ - "\105\0\1\u01c6\106\0\1\u01c7\4\0\1\u01c8\113\0\1\u01c9"+ - "\103\0\1\u01ca\7\0\1\u01cb\115\0\1\u01cc\75\0\1\u01cd"+ - "\127\0\1\u01ce\103\0\1\u01cf\15\0\1\u01d0\1\0\1\u01d1"+ - "\72\0\1\u01d2\116\0\1\u01d3\117\0\1\u01d4\3\0\1\u01d5"+ - "\103\0\1\u01d6\2\0\1\u014f\110\0\1\u01d7\113\0\1\u01d8"+ - "\127\0\1\u01d9\52\0\1\u01da\127\0\1\u01db\126\0\1\u016b"+ - "\47\0\1\u01dc\161\0\1\u01dd\123\0\1\u01de\52\0\1\u01df"+ - "\127\0\1\u01e0\126\0\1\u0171\42\0\6\u0173\3\0\1\u0173"+ - "\3\0\6\u0173\13\0\1\u0173\2\0\1\u0173\1\0\26\u0173"+ - "\5\0\4\u0173\3\0\3\u0173\25\0\1\u01e1\170\0\1\u01e2"+ - "\100\0\1\u01e3\52\0\1\u01e4\127\0\1\u01e5\126\0\1\u0179"+ - "\63\0\1\u01e6\67\0\1\21\2\0\1\21\4\u01e7\1\21"+ - "\1\0\4\21\2\0\2\21\2\u01e7\20\0\2\21\2\u01e7"+ - "\3\21\2\u01e7\10\21\1\u01e7\2\21\1\u01e7\3\21\5\0"+ - "\3\u01e7\1\21\3\0\3\21\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\4\24\1\u01e8\21\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\16\24\1\265\7\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u01e9\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\10\24\1\u01ea\15\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u0108\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\13\24\1\u01eb\12\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\2\24\1\u01ec\23\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\15\24\1\u01ed\10\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\14\24\1\u01ee\11\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\4\24\1\u01ef\21\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\10\24\1\u01f0\15\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\20\24\1\u01f1\5\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\12\24\1\u01f2\13\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\4\24\1\260\21\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u01f3\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\12\24\1\u01f4\13\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\26\24\5\0\4\24\3\0\1\24\1\u018d\1\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\1\u01f5\25\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\4\24\1\u01f6\21\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\6\24\1\u011b\17\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\23\24\1\u0118\2\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\11\24\1\u01f7\14\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\3\24\1\u0118\22\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\5\24\1\u01f8\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\7\24"+ - "\1\u010b\16\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\6\24\1\u01f9\17\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\u01fa"+ - "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\1\u0198\25\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\6\24\1\u01fb\17\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\u01fc\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\7\24\1\u01fd\16\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\3\24\1\273\22\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\12\24\1\u01fe\13\24"+ - "\5\0\4\24\3\0\3\24\42\0\1\u01a7\6\0\1\u0143"+ - "\46\0\6\u01a6\1\0\1\u01ff\1\0\1\u01ff\2\u01a6\1\u01ff"+ - "\4\u01a6\2\u01ff\1\0\2\u01ff\1\0\1\u01ff\2\0\6\u01ff"+ - "\1\0\1\u01a6\1\u01ff\26\u01a6\2\0\1\u01ff\1\0\1\u01ff"+ - "\4\u01a6\3\u01ff\3\u01a6\17\0\1\u0200\144\0\1\u0201\125\0"+ - "\1\u0202\106\0\1\u01b7\1\0\1\u0203\45\0\1\u0204\164\0"+ - "\1\u0205\76\0\1\u0206\120\0\1\u0207\116\0\1\u0208\105\0"+ - "\1\u01b7\117\0\1\u01b6\105\0\1\u0209\120\0\1\u020a\115\0"+ - "\1\u014f\122\0\1\u020b\101\0\1\u01b4\125\0\1\u01b4\105\0"+ - "\1\u020c\124\0\1\u020d\36\0\1\u020e\113\0\1\u020f\160\0"+ - "\1\u0210\106\0\1\u0211\113\0\1\u0212\132\0\1\u0213\70\0"+ - "\1\u01b4\127\0\1\u0214\77\0\1\u0215\123\0\1\u0216\121\0"+ - "\1\u0217\116\0\1\u01b7\102\0\1\u0218\123\0\1\u01b4\111\0"+ - "\1\u0219\102\0\1\u021a\116\0\1\u021b\106\0\1\u021c\120\0"+ - "\1\u021d\124\0\1\u01b4\101\0\1\u01b4\112\0\1\u021e\107\0"+ - "\1\u021f\122\0\1\u020a\104\0\1\u01c1\136\0\1\u0220\73\0"+ - "\1\u0221\14\0\1\u0222\101\0\1\u01b7\115\0\1\u0223\105\0"+ - "\1\u0224\104\0\1\u01db\6\0\1\u016b\46\0\6\u01da\1\0"+ - "\1\u0225\1\0\1\u0225\2\u01da\1\u0225\4\u01da\2\u0225\1\0"+ - "\2\u0225\1\0\1\u0225\2\0\6\u0225\1\0\1\u01da\1\u0225"+ - "\26\u01da\2\0\1\u0225\1\0\1\u0225\4\u01da\3\u0225\3\u01da"+ - "\17\0\1\u0226\146\0\1\u0227\122\0\1\u0228\74\0\1\u01e0"+ - "\6\0\1\u0171\46\0\6\u01df\1\0\1\u0229\1\0\1\u0229"+ - "\2\u01df\1\u0229\4\u01df\2\u0229\1\0\2\u0229\1\0\1\u0229"+ - "\2\0\6\u0229\1\0\1\u01df\1\u0229\26\u01df\2\0\1\u0229"+ - "\1\0\1\u0229\4\u01df\3\u0229\3\u01df\17\0\1\u022a\177\0"+ - "\1\u022b\52\0\1\u01e5\6\0\1\u0179\46\0\6\u01e4\1\0"+ - "\1\u022c\1\0\1\u022c\2\u01e4\1\u022c\4\u01e4\2\u022c\1\0"+ - "\2\u022c\1\0\1\u022c\2\0\6\u022c\1\0\1\u01e4\1\u022c"+ - "\26\u01e4\2\0\1\u022c\1\0\1\u022c\4\u01e4\3\u022c\3\u01e4"+ - "\17\0\1\u022d\75\0\1\21\2\0\1\21\4\u022e\1\21"+ - "\1\0\4\21\2\0\2\21\2\u022e\20\0\2\21\2\u022e"+ - "\3\21\2\u022e\10\21\1\u022e\2\21\1\u022e\3\21\5\0"+ - "\3\u022e\1\21\3\0\3\21\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\1\u022f\25\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\1\u0230\25\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\5\24"+ - "\1\265\20\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\4\24\1\u0231\21\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\10\24"+ - "\1\u0232\15\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\22\24\1\265\3\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\12\24"+ - "\1\u0233\13\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\12\24\1\u0234\13\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\6\24"+ - "\1\u018d\17\24\5\0\4\24\3\0\3\24\1\0\1\21"+ - "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24"+ - "\20\0\1\24\1\21\17\24\1\u0115\6\24\5\0\4\24"+ - "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\u0235\1\21\26\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\10\24\1\u0236\15\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\12\24\1\u0237\13\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\22\24\1\u0238\3\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\11\24\1\u010c\14\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\7\24\1\260\16\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\2\24\1\u0239\1\24\20\0\1\24\1\21\26\24"+ - "\5\0\4\24\3\0\2\24\1\u023a\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\11\24\1\u0118\14\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\u023b"+ - "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\10\24\1\u023c\15\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u023d"+ - "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\10\24\1\u023e\15\24\5\0\4\24\3\0"+ - "\3\24\17\0\1\u01a6\151\0\1\u023f\121\0\1\u01ce\111\0"+ - "\1\u01b4\110\0\1\u014f\120\0\1\u021b\105\0\1\u0240\111\0"+ - "\1\u0241\111\0\1\u01b7\111\0\1\u0242\123\0\1\u01cf\120\0"+ - "\1\u01b7\115\0\1\u0243\110\0\1\u0244\103\0\1\u0245\117\0"+ - "\1\u0246\104\0\1\u0247\114\0\1\u0248\114\0\1\u0249\114\0"+ - "\1\u024a\112\0\1\u01b4\130\0\1\u0204\77\0\1\u024b\113\0"+ - "\1\u024c\121\0\1\u024d\105\0\1\u014f\107\0\1\u0150\117\0"+ - "\1\u01b4\107\0\1\u024e\115\0\1\u024f\117\0\1\u0250\47\0"+ - "\1\u0251\151\0\1\u0252\121\0\1\u0253\113\0\1\u0254\105\0"+ - "\1\u0255\123\0\1\u0256\53\0\1\u01da\157\0\1\u0257\115\0"+ - "\1\u0258\45\0\1\u01df\200\0\1\u0259\26\0\1\u01e4\75\0"+ - "\1\21\2\0\1\21\4\24\1\21\1\0\4\21\2\0"+ - "\2\21\2\24\20\0\2\21\2\24\3\21\2\24\10\21"+ - "\1\24\2\21\1\24\3\21\5\0\3\24\1\21\3\0"+ - "\3\21\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\260"+ - "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u0108\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u025a"+ - "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\6\24\1\u025b\17\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\5\24\1\u0118\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\6\24\1\u025c\17\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\3\24\1\u01f1\22\24"+ - "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24"+ - "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24"+ - "\1\21\5\24\1\u0116\20\24\5\0\4\24\3\0\3\24"+ - "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24"+ - "\2\0\4\24\20\0\1\24\1\21\1\u025d\25\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\7\24\1\u025e\16\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\12\24\1\u025f\13\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\3\24\1\u0260\22\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\14\24\1\u0261\11\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\21\24\1\265\4\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u023d\22\24\5\0"+ - "\4\24\3\0\3\24\53\0\1\u0262\121\0\1\u024c\101\0"+ - "\1\u0263\117\0\1\u0264\115\0\1\u0265\117\0\1\u0266\113\0"+ - "\1\u0267\105\0\1\u01d6\107\0\1\u0268\132\0\1\u0269\74\0"+ - "\1\u01c2\3\0\1\u026a\117\0\1\u026b\115\0\1\u021c\104\0"+ - "\1\u01b7\112\0\1\u014f\120\0\1\u01b4\124\0\1\u026c\100\0"+ - "\1\u026d\115\0\1\u0214\107\0\1\u014f\115\0\1\u026e\112\0"+ - "\1\u026f\112\0\1\u0224\124\0\1\u0203\103\0\1\u0270\41\0"+ - "\26\u0258\1\u01b4\65\u0258\104\0\1\u0271\7\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u0272\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\260"+ - "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\12\24\1\u0273\13\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\u0118"+ - "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\14\24\1\u0274\11\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u018d"+ - "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0"+ - "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0"+ - "\1\24\1\21\6\24\1\u013d\17\24\5\0\4\24\3\0"+ - "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202"+ - "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\265"+ - "\13\24\5\0\4\24\3\0\3\24\63\0\1\u0265\104\0"+ - "\1\u0214\127\0\1\u01b4\114\0\1\u01b4\100\0\1\u0264\111\0"+ - "\1\u01c8\114\0\1\u0275\47\0\1\u0276\162\0\1\u0277\102\0"+ - "\1\u01b5\113\0\1\u026e\116\0\1\u0278\113\0\1\u0264\120\0"+ - "\1\u0279\140\0\1\u027a\10\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\10\24\1\u027b\15\24\5\0\4\24\3\0\3\24\1\0"+ - "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0"+ - "\4\24\20\0\1\24\1\21\3\24\1\u0115\22\24\5\0"+ - "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0"+ - "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21"+ - "\1\u025f\25\24\5\0\4\24\3\0\3\24\51\0\1\u01cf"+ - "\116\0\1\u027c\121\0\1\u0214\106\0\1\u01ce\105\0\1\u027d"+ - "\145\0\1\u027e\13\0\1\21\2\0\6\24\1\0\1\21"+ - "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24"+ - "\5\0\4\24\3\0\1\u0260\2\24\52\0\1\u027f\117\0"+ - "\1\u0258\106\0\1\u01b4\11\0\1\u021b\31\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[43244]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\13\0\2\1\3\0\2\1\1\11\4\1\1\11\4\1"+ - "\2\11\4\1\1\11\24\1\2\11\2\1\1\11\1\1"+ - "\1\11\1\1\1\11\1\1\1\11\1\1\1\11\1\1"+ - "\1\11\5\1\1\11\10\1\1\11\5\1\1\11\2\1"+ - "\1\11\1\1\1\11\5\1\1\11\2\1\1\11\1\1"+ - "\3\11\3\1\3\11\1\1\1\11\4\1\1\11\2\1"+ - "\1\11\1\1\1\11\1\1\1\11\12\1\2\0\1\11"+ - "\3\1\2\0\1\11\64\1\1\11\2\1\1\11\4\0"+ - "\1\11\2\0\1\11\32\0\3\1\2\11\5\0\1\11"+ - "\2\0\2\11\2\1\1\0\76\1\64\0\1\1\2\0"+ - "\1\11\5\0\1\11\1\1\1\11\44\1\1\0\1\11"+ - "\1\0\1\1\15\0\1\11\45\0\1\1\4\0\1\1"+ - "\1\0\1\11\2\0\1\1\1\0\1\11\30\1\15\0"+ - "\1\1\20\0\1\1\20\0\21\1\33\0\11\1\4\0"+ - "\1\1\12\0\3\1\6\0\1\1\2\0\1\11\1\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[639]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int JS_STRING = 1; + public static final int E4X = 6; + public static final int E4X_INTAG = 10; + public static final int E4X_PI = 8; + public static final int JS_MLC = 3; + public static final int JS_CHAR = 2; + public static final int JS_EOL_COMMENT = 5; + public static final int E4X_COMMENT = 7; + public static final int JS_DOCCOMMENT = 4; + public static final int E4X_DTD = 9; + public static final int JS_TEMPLATE_LITERAL = 14; + public static final int E4X_INATTR_SINGLE = 12; + public static final int E4X_INATTR_DOUBLE = 11; + public static final int JS_TEMPLATE_LITERAL_EXPR = 15; + public static final int YYINITIAL = 0; + public static final int E4X_CDATA = 13; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\75\1\2\1\0\1\1\1\11\22\0\1\75\1\36\1\77" + + "\1\12\1\15\1\35\1\40\1\107\2\106\1\17\1\30\1\27\1\24" + "\1\25\1\16\1\5\7\7\2\4\1\41\1\76\1\31\1\32\1\34" + + "\1\37\1\45\1\103\1\6\1\101\1\102\1\23\1\22\2\3\1\112" + "\2\3\1\21\1\3\1\111\5\3\1\104\3\3\1\20\2\3\1\100" + + "\1\13\1\105\1\33\1\14\1\113\1\46\1\47\1\53\1\65\1\54" + "\1\70\1\57\1\61\1\56\1\3\1\64\1\55\1\44\1\60\1\62" + + "\1\66\1\73\1\52\1\50\1\51\1\10\1\71\1\63\1\72\1\67" + "\1\110\1\74\1\43\1\26\1\42\uff81\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 = "\13\0\2\1\3\0\1\2\1\3\1\4\1\5\2\6" + "\1\5\1\2\3\7\1\5\1\10\1\5\6\7\1\2" + + "\1\5\1\2\20\5\1\11\1\12\2\5\1\13\1\1" + "\1\14\1\15\1\16\1\1\1\17\1\20\1\21\1\1" + "\1\22\5\1\1\23\10\1\1\24\3\1\2\5\1\25" + + "\1\26\1\27\1\30\1\1\1\31\5\1\1\32\2\1" + "\1\33\1\1\1\34\1\35\1\36\2\37\1\40\1\41" + "\1\42\1\43\1\1\1\44\4\1\1\45\1\46\1\47" + + "\1\50\1\1\1\51\1\1\1\52\1\2\1\53\1\6" + "\1\54\1\53\1\54\1\53\1\55\1\53\1\5\2\0" + "\1\56\1\57\2\7\2\0\1\60\1\7\1\5\1\61" + + "\34\5\2\62\7\5\1\62\13\5\1\63\1\64\1\65" + "\1\66\4\0\1\67\2\0\1\70\32\0\1\71\1\26" + + "\1\72\1\73\1\27\5\0\1\74\2\0\1\75\1\76" + "\1\2\1\54\1\0\2\55\1\5\1\77\1\100\2\5" + + "\1\101\37\5\1\101\26\5\64\0\1\102\2\0\1\103" + "\5\0\1\104\1\2\1\105\6\5\1\106\5\5\1\107" + + "\1\5\1\110\25\5\1\0\1\1\1\0\1\111\15\0" + "\1\112\45\0\1\113\4\0\1\114\1\0\1\115\2\0" + + "\1\116\1\0\1\117\1\2\5\5\1\62\17\5\1\62" + "\1\5\15\0\1\112\20\0\1\112\20\0\1\2\4\5" + + "\1\120\13\5\33\0\10\5\1\112\4\0\1\112\12\0" + "\3\5\6\0\1\5\2\0\1\121\1\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[639]; + 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\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214" + + "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u03dc\0\u0428\0\u0474" + + "\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688\0\u0558" + + "\0\u06d4\0\u0720\0\u076c\0\u07b8\0\u0558\0\u0558\0\u0804\0\u0850" + + "\0\u089c\0\u08e8\0\u0558\0\u0934\0\u0980\0\u09cc\0\u0a18\0\u0a64" + + "\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0\0\u0c2c\0\u0c78\0\u0cc4" + + "\0\u0d10\0\u0d5c\0\u0da8\0\u0df4\0\u0e40\0\u0e8c\0\u0ed8\0\u0558" + + "\0\u0558\0\u0f24\0\u0f70\0\u0558\0\u0fbc\0\u0558\0\u1008\0\u0558" + + "\0\u1054\0\u0558\0\u1008\0\u0558\0\u10a0\0\u0558\0\u10ec\0\u1138" + + "\0\u1184\0\u11d0\0\u121c\0\u0558\0\u1268\0\u12b4\0\u1300\0\u134c" + + "\0\u1398\0\u13e4\0\u1430\0\u147c\0\u0558\0\u14c8\0\u1514\0\u1560" + + "\0\u15ac\0\u15f8\0\u0558\0\u1644\0\u1690\0\u0558\0\u16dc\0\u0558" + + "\0\u1728\0\u1774\0\u17c0\0\u180c\0\u1858\0\u0558\0\u18a4\0\u18f0" + + "\0\u0558\0\u193c\0\u0558\0\u0558\0\u0558\0\u1988\0\u19d4\0\u1a20" + + "\0\u0558\0\u0558\0\u0558\0\u1a6c\0\u0558\0\u1ab8\0\u1b04\0\u1b50" + + "\0\u1b9c\0\u0558\0\u1008\0\u1be8\0\u0558\0\u1c34\0\u0558\0\u1c80" + + "\0\u0558\0\u1ccc\0\u1d18\0\u1d18\0\u1d18\0\u1d64\0\u1db0\0\u1dfc" + + "\0\u1e48\0\u1e94\0\u1ee0\0\u1f2c\0\u1f78\0\u0558\0\u1fc4\0\u1f2c" + + "\0\u2010\0\u0720\0\u2010\0\u0558\0\u205c\0\u20a8\0\u20f4\0\u2140" + + "\0\u218c\0\u21d8\0\u2224\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0" + + "\0\u23ec\0\u2438\0\u2484\0\u24d0\0\u251c\0\u2568\0\u25b4\0\u2600" + + "\0\u264c\0\u2698\0\u26e4\0\u2730\0\u277c\0\u27c8\0\u2814\0\u2860" + + "\0\u28ac\0\u28f8\0\u2944\0\u2990\0\u05a4\0\u29dc\0\u2a28\0\u2a74" + + "\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88\0\u2cd4" + + "\0\u2d20\0\u2d6c\0\u2db8\0\u2e04\0\u2e50\0\u2e9c\0\u2ee8\0\u2f34" + + "\0\u0558\0\u2f80\0\u2fcc\0\u0558\0\u3018\0\u3064\0\u30b0\0\u30fc" + + "\0\u0558\0\u3148\0\u3194\0\u0558\0\u31e0\0\u322c\0\u3278\0\u32c4" + + "\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u34d8\0\u3524" + + "\0\u3570\0\u35bc\0\u3608\0\u3654\0\u36a0\0\u36ec\0\u3738\0\u3784" + + "\0\u37d0\0\u381c\0\u3868\0\u38b4\0\u3900\0\u394c\0\u3998\0\u39e4" + + "\0\u3a30\0\u0558\0\u0558\0\u3a7c\0\u3ac8\0\u3b14\0\u3b60\0\u3bac" + + "\0\u0558\0\u3bf8\0\u3c44\0\u0558\0\u0558\0\u3c90\0\u3cdc\0\u3d28" + + "\0\u1d18\0\u3d74\0\u3dc0\0\u3e0c\0\u3e58\0\u3ea4\0\u3ef0\0\u05a4" + + "\0\u3f3c\0\u3f88\0\u3fd4\0\u4020\0\u406c\0\u40b8\0\u4104\0\u4150" + + "\0\u419c\0\u41e8\0\u4234\0\u4280\0\u42cc\0\u4318\0\u4364\0\u43b0" + + "\0\u43fc\0\u4448\0\u4494\0\u44e0\0\u452c\0\u4578\0\u45c4\0\u4610" + + "\0\u465c\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u4870" + + "\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84\0\u4ad0" + + "\0\u4b1c\0\u4b68\0\u4bb4\0\u4c00\0\u4c4c\0\u4c98\0\u4ce4\0\u4d30" + + "\0\u4d7c\0\u4dc8\0\u4e14\0\u4e60\0\u4eac\0\u4ef8\0\u4f44\0\u4f90" + + "\0\u4fdc\0\u5028\0\u5074\0\u50c0\0\u510c\0\u5158\0\u51a4\0\u51f0" + + "\0\u523c\0\u5288\0\u52d4\0\u5320\0\u536c\0\u53b8\0\u5404\0\u5450" + + "\0\u549c\0\u54e8\0\u5534\0\u5580\0\u55cc\0\u5618\0\u5664\0\u56b0" + + "\0\u56fc\0\u5748\0\u5794\0\u57e0\0\u582c\0\u5878\0\u58c4\0\u5910" + + "\0\u595c\0\u59a8\0\u59f4\0\u5a40\0\u5a8c\0\u5ad8\0\u5b24\0\u5b70" + + "\0\u5bbc\0\u5c08\0\u5c54\0\u5ca0\0\u5cec\0\u5d38\0\u5d84\0\u5dd0" + + "\0\u5e1c\0\u5e68\0\u5eb4\0\u5f00\0\u5f4c\0\u0558\0\u5f98\0\u5fe4" + + "\0\u6030\0\u607c\0\u60c8\0\u0558\0\u6114\0\u0558\0\u6160\0\u61ac" + + "\0\u61f8\0\u6244\0\u6290\0\u62dc\0\u05a4\0\u6328\0\u6374\0\u63c0" + + "\0\u640c\0\u6458\0\u05a4\0\u64a4\0\u05a4\0\u64f0\0\u653c\0\u6588" + + "\0\u65d4\0\u6620\0\u666c\0\u66b8\0\u6704\0\u6750\0\u679c\0\u67e8" + + "\0\u6834\0\u6880\0\u68cc\0\u6918\0\u6964\0\u69b0\0\u69fc\0\u6a48" + + "\0\u6a94\0\u6ae0\0\u2fcc\0\u0558\0\u6b2c\0\u6b78\0\u6bc4\0\u6c10" + + "\0\u6c5c\0\u6ca8\0\u6cf4\0\u6d40\0\u6d8c\0\u6dd8\0\u6e24\0\u6e70" + + "\0\u6ebc\0\u6f08\0\u6f54\0\u0558\0\u6fa0\0\u6fec\0\u7038\0\u7084" + + "\0\u70d0\0\u711c\0\u7168\0\u71b4\0\u7200\0\u724c\0\u7298\0\u72e4" + + "\0\u7330\0\u737c\0\u73c8\0\u7414\0\u7460\0\u74ac\0\u74f8\0\u7544" + + "\0\u7590\0\u75dc\0\u7628\0\u7674\0\u76c0\0\u770c\0\u7758\0\u77a4" + + "\0\u77f0\0\u783c\0\u7888\0\u78d4\0\u7920\0\u796c\0\u79b8\0\u7a04" + + "\0\u7a50\0\u7a9c\0\u7ae8\0\u7b34\0\u7b80\0\u7bcc\0\u7c18\0\u7c64" + + "\0\u0558\0\u7cb0\0\u7cfc\0\u7d48\0\u7d94\0\u0558\0\u7de0\0\u7e2c" + + "\0\u7e78\0\u7ec4\0\u7f10\0\u7f5c\0\u42cc\0\u7fa8\0\u7ff4\0\u8040" + + "\0\u808c\0\u80d8\0\u8124\0\u8170\0\u81bc\0\u8208\0\u8254\0\u82a0" + + "\0\u82ec\0\u8338\0\u8384\0\u83d0\0\u841c\0\u8468\0\u6b78\0\u84b4" + + "\0\u8500\0\u854c\0\u8598\0\u85e4\0\u8630\0\u867c\0\u86c8\0\u8714" + + "\0\u8760\0\u87ac\0\u87f8\0\u8844\0\u8890\0\u88dc\0\u8928\0\u8974" + + "\0\u89c0\0\u8a0c\0\u8a58\0\u8aa4\0\u8af0\0\u8b3c\0\u8b88\0\u8bd4" + + "\0\u8c20\0\u8c6c\0\u8cb8\0\u8d04\0\u8d50\0\u8d9c\0\u8de8\0\u8e34" + + "\0\u8e80\0\u8ecc\0\u8f18\0\u8f64\0\u7a9c\0\u8fb0\0\u8ffc\0\u9048" + + "\0\u7c18\0\u9094\0\u90e0\0\u7d48\0\u912c\0\u9178\0\u91c4\0\u9210" + + "\0\u925c\0\u92a8\0\u05a4\0\u92f4\0\u9340\0\u938c\0\u93d8\0\u9424" + + "\0\u9470\0\u94bc\0\u9508\0\u9554\0\u95a0\0\u95ec\0\u9638\0\u9684" + + "\0\u96d0\0\u971c\0\u9768\0\u97b4\0\u9800\0\u984c\0\u9898\0\u98e4" + + "\0\u9930\0\u997c\0\u99c8\0\u9a14\0\u9a60\0\u9aac\0\u9af8\0\u9b44" + + "\0\u9b90\0\u9bdc\0\u9c28\0\u9c74\0\u9cc0\0\u9d0c\0\u9d58\0\u9da4" + + "\0\u9df0\0\u9e3c\0\u9e88\0\u9ed4\0\u9f20\0\u9f6c\0\u9fb8\0\ua004" + + "\0\ua050\0\ua09c\0\ua0e8\0\ua134\0\ua180\0\ua1cc\0\u7038\0\ua218" + + "\0\ua264\0\ua2b0\0\ua2fc\0\ua348\0\ua394\0\ua3e0\0\ua42c\0\ua478" + + "\0\ua4c4\0\ua510\0\ua55c\0\ua5a8\0\ua5f4\0\ua640\0\ua68c\0\ua6d8" + + "\0\ua724\0\ua770\0\ua7bc\0\ua808\0\ua854\0\u0558\0\ua8a0"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[639]; + 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 = "\1\21\1\22\1\23\1\24\1\25\1\26\1\24\1\25" + "\1\27\1\30\2\21\2\24\1\31\1\32\4\24\1\33" + + "\1\34\1\35\1\36\1\37\1\40\1\41\1\32\1\42" + "\2\32\1\43\1\44\2\43\1\45\1\46\1\47\1\50" + + "\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60" + "\1\61\1\62\2\24\1\63\1\24\1\64\1\65\1\24" + + "\1\66\1\67\2\24\1\35\1\22\1\36\1\70\1\35" + "\4\24\2\35\1\71\1\24\1\72\1\73\1\74\2\75" + + "\1\76\10\75\1\77\63\75\1\100\14\75\2\101\1\102" + "\10\101\1\103\73\101\1\104\4\101\2\105\1\106\14\105" + + "\1\107\41\105\1\110\1\105\1\111\4\105\1\112\23\105" + "\2\113\1\114\14\113\1\115\11\113\1\116\13\113\1\117" + + "\13\113\1\120\1\113\1\121\4\113\1\122\3\113\1\123" + "\17\113\2\124\1\125\56\124\1\126\1\124\1\127\4\124" + + "\1\130\23\124\1\131\1\132\1\133\26\131\1\134\6\131" + "\1\135\34\131\1\22\1\136\15\131\2\137\1\140\21\137" + + "\1\141\34\137\1\142\1\137\1\143\4\137\1\144\23\137" + "\2\145\1\146\34\145\1\147\54\145\2\150\1\151\26\150" + + "\1\152\2\150\1\153\43\150\1\154\4\150\1\155\6\150" + "\1\156\1\157\1\0\13\156\1\160\13\156\1\43\1\156" + + "\1\161\40\156\1\22\1\156\1\162\7\156\1\163\4\156" + "\77\164\1\165\14\164\107\166\1\165\4\166\105\167\1\170" + + "\6\167\2\171\1\172\10\171\1\173\1\171\1\174\75\171" + "\1\175\2\176\1\177\12\176\1\200\10\176\1\201\65\176" + + "\1\21\2\0\6\21\1\0\4\21\2\0\4\21\20\0" + "\30\21\5\0\4\21\3\0\3\21\2\0\1\22\73\0" + + "\1\22\132\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\26\24\5\0" + + "\4\24\3\0\3\24\1\0\1\203\2\0\1\203\2\25" + "\1\203\1\25\1\203\1\0\4\203\2\0\1\203\1\204" + + "\1\205\1\206\1\0\1\207\16\0\10\203\1\206\1\204" + "\7\203\1\205\2\203\1\205\3\203\5\0\1\203\1\205" + + "\2\203\3\0\3\203\1\0\1\203\2\0\1\203\1\210" + "\1\211\1\203\1\211\1\203\1\0\4\203\2\0\1\212" + + "\1\204\1\205\1\206\1\0\1\207\16\0\10\203\1\206" + "\1\204\7\203\1\205\2\203\1\205\1\203\1\212\1\203" + + "\5\0\1\203\1\205\2\203\3\0\3\203\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\12\24\1\213\13\24\5\0\4\24" + "\3\0\3\24\1\0\13\214\1\215\2\214\1\216\1\217" + + "\12\214\1\220\61\214\32\0\1\43\105\0\1\43\5\0" + "\1\43\65\0\2\207\1\0\1\207\134\0\1\43\1\0" + + "\1\221\112\0\1\222\1\43\62\0\1\223\27\0\1\224" + "\1\43\42\0\1\223\50\0\1\43\1\0\1\225\111\0" + + "\1\43\5\0\1\43\105\0\1\43\10\0\1\43\50\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\14\24\1\226\11\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\1\227\2\21" + + "\1\227\1\21\1\227\1\0\4\21\2\0\4\227\20\0" + "\1\227\1\21\26\227\5\0\4\227\3\0\3\227\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\1\24\1\230\10\24\1\231" + + "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\4\24\1\232\7\24\1\233\4\24\1\234" + "\4\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\5\24\1\235\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\24\1\21\3\24\1\236\7\24\1\237\1\24" + + "\1\240\3\24\1\241\4\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\4\24\1\242\6\24" + "\1\243\5\24\1\244\4\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\6\24\1\245\17\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\1\246\6\24\1\247\3\24\1\250\1\251\11\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\1\252\1\24\1\253\4\24\1\254\2\24\1\255" + + "\10\24\1\256\1\257\1\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\6\24\1\260\5\24" + "\1\261\11\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\262\1\21\2\24\1\263\7\24\1\264\7\24" + + "\1\265\3\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\14\24\1\266\11\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\5\24\1\267\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\1\270\5\24\1\271\17\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\10\24\1\272\2\24" + + "\1\273\12\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\6\24\1\274\5\24\1\275\11\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24" + + "\1\276\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\1\277\3\24\1\300\21\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\5\24\1\301\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\1\302\6\24\1\303\1\304\3\24\1\305\11\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\1\305\13\24\1\306\11\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\1\307\25\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\12\24\1\310\13\24\5\0\4\24\3\0\3\24\1\0" + + "\2\75\1\0\10\75\1\0\63\75\1\0\14\75\2\311" + "\1\0\5\311\1\312\61\311\1\313\21\311\2\101\1\0" + + "\10\101\1\0\73\101\1\0\4\101\2\105\1\0\14\105" + "\1\0\41\105\1\0\1\105\1\0\4\105\1\0\23\105" + + "\16\0\1\314\146\0\1\315\125\0\1\316\101\0\1\317" + "\4\0\1\320\35\0\2\113\1\0\14\113\1\0\11\113" + + "\1\0\13\113\1\0\13\113\1\0\1\113\1\0\4\113" + "\1\0\3\113\1\0\17\113\16\0\1\321\100\0\1\322" + + "\2\0\1\322\1\0\1\322\5\0\1\323\1\0\4\322" + "\10\0\1\324\7\0\1\322\1\0\26\322\5\0\4\322" + + "\3\0\3\322\45\0\1\325\1\0\1\326\1\327\1\330" + "\1\331\1\332\1\333\1\334\1\335\1\336\1\337\1\340" + + "\3\0\1\341\1\342\1\343\1\0\1\344\1\345\73\0" + "\1\346\125\0\1\347\101\0\1\350\4\0\1\351\102\0" + + "\1\352\46\0\2\124\1\0\56\124\1\0\1\124\1\0" + "\4\124\1\0\23\124\51\0\1\353\125\0\1\354\101\0" + + "\1\355\4\0\1\356\35\0\2\131\1\0\26\131\1\0" + "\6\131\1\0\34\131\2\0\16\131\1\132\1\0\26\131" + + "\1\0\6\131\1\0\34\131\1\22\1\0\15\131\3\0" + "\1\357\2\0\1\357\1\0\1\357\3\0\1\357\1\0" + + "\1\360\1\0\4\357\12\0\1\361\1\362\1\0\1\357" + "\2\0\1\357\1\0\26\357\5\0\4\357\3\0\3\357" + + "\1\0\75\135\1\0\1\363\15\135\2\137\1\0\21\137" + "\1\0\34\137\1\0\1\137\1\0\4\137\1\0\23\137" + + "\24\0\1\364\140\0\1\365\125\0\1\366\101\0\1\367" + "\4\0\1\370\35\0\2\145\1\0\34\145\1\0\54\145" + + "\34\0\1\371\57\0\2\150\1\0\26\150\1\0\2\150" + "\1\0\43\150\1\0\4\150\1\0\6\150\36\0\1\372" + + "\55\0\2\156\1\0\13\156\1\0\13\156\1\0\1\156" + "\1\0\40\156\1\0\1\156\1\0\7\156\1\0\5\156" + + "\1\157\1\0\13\156\1\0\13\156\1\0\1\156\1\0" + "\40\156\1\22\1\156\1\0\7\156\1\0\4\156\34\0" + + "\1\161\57\0\77\164\1\0\14\164\107\166\1\0\4\166" + "\105\167\1\0\6\167\105\0\1\373\6\0\2\171\1\0" + + "\10\171\1\0\1\171\1\0\75\171\75\0\1\374\17\0" + "\2\176\1\0\12\176\1\0\10\176\1\0\65\176\74\0" + + "\1\375\17\0\1\21\2\0\5\21\1\376\1\0\4\21" + "\2\0\4\21\20\0\30\21\5\0\4\21\3\0\3\21" + + "\1\0\1\203\2\0\6\203\1\0\4\203\2\0\4\203" + "\20\0\30\203\5\0\4\203\3\0\3\203\1\0\1\203" + + "\2\0\1\203\2\377\1\203\1\377\1\203\1\0\4\203" + "\2\0\4\203\1\u0100\3\0\1\u0100\13\0\30\203\5\0" + + "\4\203\3\0\3\203\1\0\1\203\2\0\1\203\2\207" + "\1\203\1\207\1\203\1\0\4\203\2\0\2\203\1\205" + + "\1\206\20\0\10\203\1\206\10\203\1\205\2\203\1\205" + "\3\203\5\0\1\203\1\205\2\203\3\0\3\203\1\0" + + "\1\203\2\0\1\203\2\210\1\203\1\210\1\203\1\0" + "\4\203\2\0\2\203\1\205\1\206\1\0\1\207\16\0" + + "\10\203\1\206\10\203\1\205\2\203\1\205\3\203\5\0" + "\1\203\1\205\2\203\3\0\3\203\1\0\1\203\2\0" + + "\1\203\1\210\1\211\1\203\1\211\1\203\1\0\4\203" + "\2\0\1\203\1\u0101\1\205\1\206\1\0\1\207\16\0" + + "\10\203\1\206\1\u0101\7\203\1\205\2\203\1\205\3\203" + "\5\0\1\203\1\205\2\203\3\0\3\203\1\0\1\203" + + "\2\0\1\203\4\u0102\1\203\1\0\4\203\2\0\2\203" + "\2\u0102\20\0\2\203\2\u0102\3\203\2\u0102\10\203\1\u0102" + + "\2\203\1\u0102\3\203\5\0\3\u0102\1\203\3\0\3\203" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\6\24\1\u0103\17\24" + "\5\0\4\24\3\0\3\24\1\0\13\214\1\215\2\214" + + "\1\u0104\77\214\1\0\111\214\17\0\1\u0105\75\0\1\223" + "\27\0\1\224\43\0\1\223\50\0\1\43\1\0\1\32" + + "\57\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\17\24\1\u0106\6\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\227" + "\1\0\4\21\2\0\4\227\20\0\1\227\1\21\26\227" + + "\5\0\4\227\3\0\3\227\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\2\24\1\u0107\23\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\21\24\1\u0108\4\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\6\24\1\u0109\17\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\14\24\1\u010a\11\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\3\24\1\u010b\22\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\20\24\1\u010c\5\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\1\u010d\3\24\1\u010e\21\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u010f" + + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\10\24\1\u0110\15\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u0111" + "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\5\24\1\u0112\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\24\1\21\1\u0113\20\24\1\265\4\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\4\24\1\u0114\3\24\1\u0115\15\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\20\24\1\u0116" + "\5\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\3\24\1\u0117\22\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\2\24\1\u0118" + + "\1\u0119\22\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\1\u011a\25\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\1\u011b\25\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\12\24\1\u011c\13\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\5\24\1\u011d\20\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\5\24\1\u011e\20\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\2\24\1\u0118\23\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\5\24" + + "\1\u011f\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\26\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\1\u0120\25\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\3\24" + + "\1\u0121\14\24\1\u0122\5\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\3\24\1\265\22\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\12\24\1\u0123\13\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\20\24\1\u0124\5\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\2\24\1\u0125\1\24" + + "\20\0\1\24\1\21\26\24\5\0\4\24\3\0\1\24" + "\1\u0126\1\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\2\24" + "\1\u0127\1\u0128\22\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\3\24\1\u0129\22\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\u012a\1\21" + + "\7\24\1\u012b\16\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\3\24\1\u012c\22\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\15\24\1\265\10\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\3\24\1\u012d\22\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\10\24\1\u012e\15\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\1\24\1\u012f\5\24\1\u0130" + "\12\24\1\u0131\3\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\5\24\1\u0132\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\24" + + "\1\u0133\24\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\4\24\1\u0134\1\u0135\20\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\10\24\1\u0136\3\24\1\u0137\11\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\u0138" + + "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\7\24\1\u0139\16\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u013a" + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\12\24\1\u013b\13\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\4\24\1\265" + + "\21\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\7\24\1\u013c\1\u013d\15\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24" + "\5\0\4\24\3\0\1\24\1\265\1\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\24\1\21\22\24\1\u013e\3\24\5\0\4\24" + + "\3\0\3\24\5\0\4\u013f\12\0\2\u013f\22\0\2\u013f" + "\3\0\2\u013f\10\0\1\u013f\2\0\1\u013f\10\0\3\u013f" + + "\14\0\4\u0140\12\0\2\u0140\22\0\2\u0140\3\0\2\u0140" + "\10\0\1\u0140\2\0\1\u0140\10\0\3\u0140\61\0\1\u0141" + + "\125\0\1\u0142\116\0\1\u0143\102\0\1\u0144\36\0\34\322" + "\1\324\57\322\3\0\1\322\2\0\1\322\1\0\1\322" + + "\7\0\4\322\10\0\1\324\7\0\1\322\1\0\26\322" + "\5\0\4\322\3\0\3\322\55\0\1\u0145\1\0\1\u0146" + + "\3\0\1\u0147\41\0\1\u0148\36\0\1\u0149\3\0\1\u014a" + "\1\0\1\u014b\120\0\1\u014c\41\0\1\u014d\40\0\1\u014e" + + "\2\0\1\u014f\1\0\1\u0150\116\0\1\u0151\1\u0152\4\0" + "\1\u0153\100\0\1\u0154\105\0\1\u0155\6\0\1\u0156\4\0" + + "\1\u0157\111\0\1\u0158\10\0\1\u0159\1\u015a\75\0\1\u015b" + "\1\0\1\u015c\114\0\1\u015d\1\u015e\110\0\1\u015f\104\0" + + "\1\u0160\123\0\1\u0161\111\0\1\u0162\47\0\1\u0163\35\0" + "\1\u0164\3\0\1\u0165\117\0\1\u0166\103\0\1\u0167\5\0" + + "\1\u0168\110\0\1\u0169\125\0\1\u016a\116\0\1\u016b\102\0" + "\1\u016c\107\0\1\u016d\3\0\1\u016e\107\0\1\u016f\125\0" + + "\1\u0170\116\0\1\u0171\102\0\1\u0172\41\0\6\357\3\0" + "\1\357\3\0\6\357\13\0\1\357\2\0\1\357\1\0" + + "\26\357\5\0\4\357\3\0\3\357\4\0\1\u0173\2\0" + "\1\u0173\1\0\1\u0173\3\0\1\u0173\3\0\4\u0173\15\0" + + "\1\u0173\2\0\1\u0173\1\0\26\u0173\5\0\4\u0173\3\0" + "\3\u0173\25\0\1\u0174\53\0\1\u0175\47\0\1\u0176\130\0" + + "\1\u0177\125\0\1\u0178\116\0\1\u0179\102\0\1\u017a\62\0" + "\1\u017b\123\0\1\u017c\57\0\1\21\2\0\1\21\4\u017d" + + "\1\21\1\0\4\21\2\0\2\21\2\u017d\20\0\2\21" + "\2\u017d\3\21\2\u017d\10\21\1\u017d\2\21\1\u017d\3\21" + + "\5\0\3\u017d\1\21\3\0\3\21\1\0\1\203\2\0" + "\1\203\2\377\1\203\1\377\1\203\1\0\4\203\2\0" + + "\2\203\1\205\1\203\20\0\21\203\1\205\2\203\1\205" + "\3\203\5\0\1\203\1\205\2\203\3\0\3\203\5\0" + + "\2\377\1\0\1\377\104\0\1\203\2\0\1\203\4\u0102" + "\1\203\1\0\4\203\2\0\1\203\1\u0101\2\u0102\20\0" + + "\2\203\2\u0102\3\203\2\u0102\1\u0101\7\203\1\u0102\2\203" + "\1\u0102\3\203\5\0\3\u0102\1\203\3\0\3\203\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\2\24\1\253\23\24\5\0" + + "\4\24\3\0\3\24\45\0\1\u0104\11\0\2\u0104\52\0" + "\1\u017e\75\0\1\21\2\0\5\24\1\u012e\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\3\24\1\u017f\22\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\1\u0180\25\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\7\24\1\u0181\16\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\6\24\1\u0108\17\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\6\24\1\305\17\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\3\24\1\u0182\22\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\10\24\1\261\15\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\4\24\1\u0183\21\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\3\24\1\u0119\22\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\5\24\1\u0184\20\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\6\24\1\u0185\17\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\12\24\1\u0186\13\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\14\24\1\u0187\11\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\2\24\1\265\23\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\6\24\1\u0188\17\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\5\24\1\u0189\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + "\1\265\17\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\24\1\21\5\24\1\u012d\20\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\2\24" + + "\1\u0115\23\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\4\24\1\u0108\21\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\2\24" + "\1\260\1\u018a\22\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\13\24\1\u018b\12\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\1\u018c\25\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\265\1\21\26\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\7\24\1\u018d\16\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\6\24\1\u018e\17\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\14\24\1\u018f\11\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\11\24\1\u0108\14\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\7\24\1\u0190\4\24" + "\1\u018f\11\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\24\1\21\10\24\1\u0191\15\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\u0192" + + "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\3\24\1\u0193\22\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\6\24\1\u0194" + "\17\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\14\24\1\265\11\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\1\24\1\u0195" + + "\24\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\7\24\1\265\16\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\10\24\1\u0196" + "\15\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\13\24\1\265\12\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u0118" + + "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\5\24\1\u0197\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\26\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\6\24\1\u0198\17\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\1\u0199\25\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\1\24\1\u019a\24\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\7\24\1\u0182\16\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\2\24\1\u019b\23\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\16\24\1\u019c\7\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\23\24\1\u019d\2\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\3\24\1\u019e\22\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\5\24\1\u019f\20\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\2\24\1\u0112\23\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\1\u0183\25\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\u01a0" + + "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\1\u01a1\25\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\17\24\1\265\6\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\10\24\1\u01a2\15\24\5\0\4\24\3\0\3\24" + + "\5\0\4\u01a3\12\0\2\u01a3\22\0\2\u01a3\3\0\2\u01a3" + "\10\0\1\u01a3\2\0\1\u01a3\10\0\3\u01a3\14\0\4\u01a4" + + "\12\0\2\u01a4\22\0\2\u01a4\3\0\2\u01a4\10\0\1\u01a4" + "\2\0\1\u01a4\10\0\3\u01a4\76\0\1\u01a5\52\0\1\u01a6" + + "\127\0\1\u01a7\126\0\1\u0143\103\0\1\u01a8\4\0\1\u01a9" + "\134\0\1\u01aa\106\0\1\u01ab\77\0\1\u01ac\5\0\1\u01ad" + + "\104\0\1\u01ae\116\0\1\u01af\116\0\1\u01b0\107\0\1\u01b1" + "\105\0\1\u01b2\115\0\1\u01b3\121\0\1\u01b4\117\0\1\u01b5" + + "\105\0\1\u01b6\3\0\1\u01b7\122\0\1\u01b8\114\0\1\u01b9" + "\73\0\1\u01ba\2\0\1\u01bb\21\0\1\u01bc\75\0\1\u01bd" + + "\104\0\1\u01be\125\0\1\u01bf\5\0\1\u01c0\35\0\1\u01c1" + "\157\0\1\u01c2\105\0\1\u01c3\2\0\1\u01c4\14\0\1\u01c5" + + "\105\0\1\u01c6\106\0\1\u01c7\4\0\1\u01c8\113\0\1\u01c9" + "\103\0\1\u01ca\7\0\1\u01cb\115\0\1\u01cc\75\0\1\u01cd" + + "\127\0\1\u01ce\103\0\1\u01cf\15\0\1\u01d0\1\0\1\u01d1" + "\72\0\1\u01d2\116\0\1\u01d3\117\0\1\u01d4\3\0\1\u01d5" + + "\103\0\1\u01d6\2\0\1\u014f\110\0\1\u01d7\113\0\1\u01d8" + "\127\0\1\u01d9\52\0\1\u01da\127\0\1\u01db\126\0\1\u016b" + + "\47\0\1\u01dc\161\0\1\u01dd\123\0\1\u01de\52\0\1\u01df" + "\127\0\1\u01e0\126\0\1\u0171\42\0\6\u0173\3\0\1\u0173" + + "\3\0\6\u0173\13\0\1\u0173\2\0\1\u0173\1\0\26\u0173" + "\5\0\4\u0173\3\0\3\u0173\25\0\1\u01e1\170\0\1\u01e2" + + "\100\0\1\u01e3\52\0\1\u01e4\127\0\1\u01e5\126\0\1\u0179" + "\63\0\1\u01e6\67\0\1\21\2\0\1\21\4\u01e7\1\21" + + "\1\0\4\21\2\0\2\21\2\u01e7\20\0\2\21\2\u01e7" + "\3\21\2\u01e7\10\21\1\u01e7\2\21\1\u01e7\3\21\5\0" + + "\3\u01e7\1\21\3\0\3\21\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\4\24\1\u01e8\21\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\16\24\1\265\7\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\6\24\1\u01e9\17\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\10\24\1\u01ea\15\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\3\24\1\u0108\22\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\13\24\1\u01eb\12\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\2\24\1\u01ec\23\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\15\24\1\u01ed\10\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\14\24\1\u01ee\11\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\4\24\1\u01ef\21\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\10\24\1\u01f0\15\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\20\24\1\u01f1\5\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\12\24\1\u01f2\13\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\4\24\1\260\21\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\6\24\1\u01f3\17\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\12\24\1\u01f4\13\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\26\24\5\0\4\24\3\0\1\24\1\u018d\1\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\1\u01f5\25\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\4\24\1\u01f6\21\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\6\24\1\u011b\17\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\23\24\1\u0118\2\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\11\24\1\u01f7\14\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\3\24\1\u0118\22\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\5\24\1\u01f8\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\26\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\7\24" + + "\1\u010b\16\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\6\24\1\u01f9\17\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\1\u01fa" + "\25\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\1\u0198\25\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\6\24\1\u01fb\17\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\3\24\1\u01fc\22\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\7\24\1\u01fd\16\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\3\24\1\273\22\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\12\24\1\u01fe\13\24" + + "\5\0\4\24\3\0\3\24\42\0\1\u01a7\6\0\1\u0143" + "\46\0\6\u01a6\1\0\1\u01ff\1\0\1\u01ff\2\u01a6\1\u01ff" + + "\4\u01a6\2\u01ff\1\0\2\u01ff\1\0\1\u01ff\2\0\6\u01ff" + "\1\0\1\u01a6\1\u01ff\26\u01a6\2\0\1\u01ff\1\0\1\u01ff" + + "\4\u01a6\3\u01ff\3\u01a6\17\0\1\u0200\144\0\1\u0201\125\0" + "\1\u0202\106\0\1\u01b7\1\0\1\u0203\45\0\1\u0204\164\0" + + "\1\u0205\76\0\1\u0206\120\0\1\u0207\116\0\1\u0208\105\0" + "\1\u01b7\117\0\1\u01b6\105\0\1\u0209\120\0\1\u020a\115\0" + + "\1\u014f\122\0\1\u020b\101\0\1\u01b4\125\0\1\u01b4\105\0" + "\1\u020c\124\0\1\u020d\36\0\1\u020e\113\0\1\u020f\160\0" + + "\1\u0210\106\0\1\u0211\113\0\1\u0212\132\0\1\u0213\70\0" + "\1\u01b4\127\0\1\u0214\77\0\1\u0215\123\0\1\u0216\121\0" + + "\1\u0217\116\0\1\u01b7\102\0\1\u0218\123\0\1\u01b4\111\0" + "\1\u0219\102\0\1\u021a\116\0\1\u021b\106\0\1\u021c\120\0" + + "\1\u021d\124\0\1\u01b4\101\0\1\u01b4\112\0\1\u021e\107\0" + "\1\u021f\122\0\1\u020a\104\0\1\u01c1\136\0\1\u0220\73\0" + + "\1\u0221\14\0\1\u0222\101\0\1\u01b7\115\0\1\u0223\105\0" + "\1\u0224\104\0\1\u01db\6\0\1\u016b\46\0\6\u01da\1\0" + + "\1\u0225\1\0\1\u0225\2\u01da\1\u0225\4\u01da\2\u0225\1\0" + "\2\u0225\1\0\1\u0225\2\0\6\u0225\1\0\1\u01da\1\u0225" + + "\26\u01da\2\0\1\u0225\1\0\1\u0225\4\u01da\3\u0225\3\u01da" + "\17\0\1\u0226\146\0\1\u0227\122\0\1\u0228\74\0\1\u01e0" + + "\6\0\1\u0171\46\0\6\u01df\1\0\1\u0229\1\0\1\u0229" + "\2\u01df\1\u0229\4\u01df\2\u0229\1\0\2\u0229\1\0\1\u0229" + + "\2\0\6\u0229\1\0\1\u01df\1\u0229\26\u01df\2\0\1\u0229" + "\1\0\1\u0229\4\u01df\3\u0229\3\u01df\17\0\1\u022a\177\0" + + "\1\u022b\52\0\1\u01e5\6\0\1\u0179\46\0\6\u01e4\1\0" + "\1\u022c\1\0\1\u022c\2\u01e4\1\u022c\4\u01e4\2\u022c\1\0" + + "\2\u022c\1\0\1\u022c\2\0\6\u022c\1\0\1\u01e4\1\u022c" + "\26\u01e4\2\0\1\u022c\1\0\1\u022c\4\u01e4\3\u022c\3\u01e4" + + "\17\0\1\u022d\75\0\1\21\2\0\1\21\4\u022e\1\21" + "\1\0\4\21\2\0\2\21\2\u022e\20\0\2\21\2\u022e" + + "\3\21\2\u022e\10\21\1\u022e\2\21\1\u022e\3\21\5\0" + "\3\u022e\1\21\3\0\3\21\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\1\u022f\25\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\1\u0230\25\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\5\24" + + "\1\265\20\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\4\24\1\u0231\21\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\10\24" + "\1\u0232\15\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\24\1\21\22\24\1\265\3\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\12\24" + + "\1\u0233\13\24\5\0\4\24\3\0\3\24\1\0\1\21" + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + + "\20\0\1\24\1\21\12\24\1\u0234\13\24\5\0\4\24" + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\6\24" + "\1\u018d\17\24\5\0\4\24\3\0\3\24\1\0\1\21" + + "\2\0\6\24\1\0\1\21\1\202\2\24\2\0\4\24" + "\20\0\1\24\1\21\17\24\1\u0115\6\24\5\0\4\24" + + "\3\0\3\24\1\0\1\21\2\0\6\24\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\u0235\1\21\26\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\10\24\1\u0236\15\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\12\24\1\u0237\13\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\22\24\1\u0238\3\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\11\24\1\u010c\14\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\7\24\1\260\16\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\2\24\1\u0239\1\24\20\0\1\24\1\21\26\24" + "\5\0\4\24\3\0\2\24\1\u023a\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\11\24\1\u0118\14\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\u023b" + + "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\10\24\1\u023c\15\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\7\24\1\u023d" + "\16\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\10\24\1\u023e\15\24\5\0\4\24\3\0" + + "\3\24\17\0\1\u01a6\151\0\1\u023f\121\0\1\u01ce\111\0" + "\1\u01b4\110\0\1\u014f\120\0\1\u021b\105\0\1\u0240\111\0" + + "\1\u0241\111\0\1\u01b7\111\0\1\u0242\123\0\1\u01cf\120\0" + "\1\u01b7\115\0\1\u0243\110\0\1\u0244\103\0\1\u0245\117\0" + + "\1\u0246\104\0\1\u0247\114\0\1\u0248\114\0\1\u0249\114\0" + "\1\u024a\112\0\1\u01b4\130\0\1\u0204\77\0\1\u024b\113\0" + + "\1\u024c\121\0\1\u024d\105\0\1\u014f\107\0\1\u0150\117\0" + "\1\u01b4\107\0\1\u024e\115\0\1\u024f\117\0\1\u0250\47\0" + + "\1\u0251\151\0\1\u0252\121\0\1\u0253\113\0\1\u0254\105\0" + "\1\u0255\123\0\1\u0256\53\0\1\u01da\157\0\1\u0257\115\0" + + "\1\u0258\45\0\1\u01df\200\0\1\u0259\26\0\1\u01e4\75\0" + "\1\21\2\0\1\21\4\24\1\21\1\0\4\21\2\0" + + "\2\21\2\24\20\0\2\21\2\24\3\21\2\24\10\21" + "\1\24\2\21\1\24\3\21\5\0\3\24\1\21\3\0" + + "\3\21\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\260" + + "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\12\24\1\u0108\13\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\14\24\1\u025a" + "\11\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\6\24\1\u025b\17\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\5\24\1\u0118\1\0\1\21" + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24" + + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + + "\1\21\6\24\1\u025c\17\24\5\0\4\24\3\0\3\24" + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + + "\2\0\4\24\20\0\1\24\1\21\3\24\1\u01f1\22\24" + "\5\0\4\24\3\0\3\24\1\0\1\21\2\0\6\24" + + "\1\0\1\21\1\202\2\24\2\0\4\24\20\0\1\24" + "\1\21\5\24\1\u0116\20\24\5\0\4\24\3\0\3\24" + + "\1\0\1\21\2\0\6\24\1\0\1\21\1\202\2\24" + "\2\0\4\24\20\0\1\24\1\21\1\u025d\25\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\7\24\1\u025e\16\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\12\24\1\u025f\13\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\3\24\1\u0260\22\24\5\0\4\24\3\0\3\24\1\0" + + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + "\4\24\20\0\1\24\1\21\14\24\1\u0261\11\24\5\0" + + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\21\24\1\265\4\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\3\24\1\u023d\22\24\5\0" + "\4\24\3\0\3\24\53\0\1\u0262\121\0\1\u024c\101\0" + + "\1\u0263\117\0\1\u0264\115\0\1\u0265\117\0\1\u0266\113\0" + "\1\u0267\105\0\1\u01d6\107\0\1\u0268\132\0\1\u0269\74\0" + + "\1\u01c2\3\0\1\u026a\117\0\1\u026b\115\0\1\u021c\104\0" + "\1\u01b7\112\0\1\u014f\120\0\1\u01b4\124\0\1\u026c\100\0" + + "\1\u026d\115\0\1\u0214\107\0\1\u014f\115\0\1\u026e\112\0" + "\1\u026f\112\0\1\u0224\124\0\1\u0203\103\0\1\u0270\41\0" + + "\26\u0258\1\u01b4\65\u0258\104\0\1\u0271\7\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\12\24\1\u0272\13\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\260" + "\13\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\12\24\1\u0273\13\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\5\24\1\u0118" + + "\20\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + + "\1\24\1\21\14\24\1\u0274\11\24\5\0\4\24\3\0" + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + + "\2\24\2\0\4\24\20\0\1\24\1\21\3\24\1\u018d" + "\22\24\5\0\4\24\3\0\3\24\1\0\1\21\2\0" + + "\6\24\1\0\1\21\1\202\2\24\2\0\4\24\20\0" + "\1\24\1\21\6\24\1\u013d\17\24\5\0\4\24\3\0" + + "\3\24\1\0\1\21\2\0\6\24\1\0\1\21\1\202" + "\2\24\2\0\4\24\20\0\1\24\1\21\12\24\1\265" + + "\13\24\5\0\4\24\3\0\3\24\63\0\1\u0265\104\0" + "\1\u0214\127\0\1\u01b4\114\0\1\u01b4\100\0\1\u0264\111\0" + + "\1\u01c8\114\0\1\u0275\47\0\1\u0276\162\0\1\u0277\102\0" + "\1\u01b5\113\0\1\u026e\116\0\1\u0278\113\0\1\u0264\120\0" + + "\1\u0279\140\0\1\u027a\10\0\1\21\2\0\6\24\1\0" + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + + "\10\24\1\u027b\15\24\5\0\4\24\3\0\3\24\1\0" + "\1\21\2\0\6\24\1\0\1\21\1\202\2\24\2\0" + + "\4\24\20\0\1\24\1\21\3\24\1\u0115\22\24\5\0" + "\4\24\3\0\3\24\1\0\1\21\2\0\6\24\1\0" + + "\1\21\1\202\2\24\2\0\4\24\20\0\1\24\1\21" + "\1\u025f\25\24\5\0\4\24\3\0\3\24\51\0\1\u01cf" + + "\116\0\1\u027c\121\0\1\u0214\106\0\1\u01ce\105\0\1\u027d" + "\145\0\1\u027e\13\0\1\21\2\0\6\24\1\0\1\21" + + "\1\202\2\24\2\0\4\24\20\0\1\24\1\21\26\24" + "\5\0\4\24\3\0\1\u0260\2\24\52\0\1\u027f\117\0" + + "\1\u0258\106\0\1\u01b4\11\0\1\u021b\31\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[43244]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\13\0\2\1\3\0\2\1\1\11\4\1\1\11\4\1" + "\2\11\4\1\1\11\24\1\2\11\2\1\1\11\1\1" + + "\1\11\1\1\1\11\1\1\1\11\1\1\1\11\1\1" + "\1\11\5\1\1\11\10\1\1\11\5\1\1\11\2\1" + "\1\11\1\1\1\11\5\1\1\11\2\1\1\11\1\1" + + "\3\11\3\1\3\11\1\1\1\11\4\1\1\11\2\1" + "\1\11\1\1\1\11\1\1\1\11\12\1\2\0\1\11" + "\3\1\2\0\1\11\64\1\1\11\2\1\1\11\4\0" + + "\1\11\2\0\1\11\32\0\3\1\2\11\5\0\1\11" + "\2\0\2\11\2\1\1\0\76\1\64\0\1\1\2\0" + "\1\11\5\0\1\11\1\1\1\11\44\1\1\0\1\11" + + "\1\0\1\1\15\0\1\11\45\0\1\1\4\0\1\1" + "\1\0\1\11\2\0\1\1\1\0\1\11\30\1\15\0" + "\1\1\20\0\1\1\20\0\21\1\33\0\11\1\4\0" + + "\1\1\12\0\3\1\6\0\1\1\2\0\1\11\1\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[639]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Token type specifying we're in a JavaScript multiline comment. */ - private static final int INTERNAL_IN_JS_MLC = -8; - + private static final int INTERNAL_IN_JS_MLC = -8; /** * Token type specifying we're in a JavaScript documentation comment. */ private static final int INTERNAL_IN_JS_COMMENT_DOCUMENTATION = -9; - /** * Token type specifying we're in an invalid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_INVALID = -10; - + private static final int INTERNAL_IN_JS_STRING_INVALID = -10; /** * Token type specifying we're in a valid multi-line JS string. */ - private static final int INTERNAL_IN_JS_STRING_VALID = -11; - + private static final int INTERNAL_IN_JS_STRING_VALID = -11; /** - * Token type specifying we're in an invalid multi-line JS single-quoted string. + * Token type specifying we're in an invalid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_INVALID = -12; - + private static final int INTERNAL_IN_JS_CHAR_INVALID = -12; /** - * Token type specifying we're in a valid multi-line JS single-quoted string. + * Token type specifying we're in a valid multi-line JS single-quoted + * string. */ - private static final int INTERNAL_IN_JS_CHAR_VALID = -13; - + private static final int INTERNAL_IN_JS_CHAR_VALID = -13; private static final int INTERNAL_E4X = -14; - private static final int INTERNAL_E4X_INTAG = -15; - private static final int INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION = -16; - private static final int INTERNAL_IN_E4X_COMMENT = -17; - private static final int INTERNAL_E4X_DTD = -18; - private static final int INTERNAL_E4X_DTD_INTERNAL = -19; - private static final int INTERNAL_E4X_ATTR_SINGLE = -20; - private static final int INTERNAL_E4X_ATTR_DOUBLE = -21; - private static final int INTERNAL_E4X_MARKUP_CDATA = -22; - /** * Token type specifying we're in a valid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID = -23; - /** * Token type specifying we're in an invalid multi-line template literal. */ private static final int INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID = -24; - /** * When in the JS_STRING state, whether the current string is valid. */ private boolean validJSString; - /** - * Whether we're in an internal DTD. Only valid if in an e4x DTD. + * Whether we're in an internal DTD. Only valid if in an e4x DTD. */ private boolean e4x_inInternalDtd; - /** - * The previous e4x state. Only valid if in an e4x state. + * The previous e4x state. Only valid if in an e4x state. */ private int e4x_prevState; - /** * Whether e4x is being highlighted. */ private static boolean e4xSupported; - /** - * Language state set on JS tokens. Must be 0. + * Language state set on JS tokens. Must be 0. */ - private static final int LANG_INDEX_DEFAULT = 0; - + private static final int LANG_INDEX_DEFAULT = 0; /** * Language state set on E4X tokens. */ private static final int LANG_INDEX_E4X = 1; - private Stack varDepths; - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public TypeScriptTokenMaker() { super(); } - - + static { e4xSupported = true; } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * Returns the closest {@link TokenTypes} "standard" token type for a given * "internal" token type (e.g. one whose value is < 0). */ - @Override + @Override public int getClosestStandardTokenTypeForInternalType(int type) { switch (type) { case INTERNAL_IN_JS_MLC: @@ -1316,8 +871,7 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { } return type; } - - + /** * {@inheritDoc} */ @@ -1325,30 +879,30 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "//", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; validJSString = true; e4x_prevState = YYINITIAL; e4x_inInternalDtd = false; int languageIndex = LANG_INDEX_DEFAULT; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -1415,7 +969,8 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { validJSString = false; break; default: - if (initialTokenType<-1024) { // INTERNAL_IN_E4X_COMMENT - prevState + if (initialTokenType < -1024) { // INTERNAL_IN_E4X_COMMENT - + // prevState int main = -(-initialTokenType & 0xffffff00); switch (main) { default: // Should never happen @@ -1423,14 +978,12 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { state = E4X_COMMENT; break; } - e4x_prevState = -initialTokenType&0xff; + e4x_prevState = -initialTokenType & 0xff; languageIndex = LANG_INDEX_E4X; - } - else { // Shouldn't happen + } else { // Shouldn't happen state = Token.NULL; } } - setLanguageIndex(languageIndex); start = text.offset; s = text; @@ -1442,10 +995,8 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Returns whether e4x is being highlighted. * @@ -1455,32 +1006,30 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { public static boolean isE4xSupported() { return e4xSupported; } - - + /** - * Sets whether e4x should be highlighted. A repaint should be forced on + * Sets whether e4x should be highlighted. A repaint should be forced on * all RSyntaxTextAreas editing JavaScript if this property * is changed to see the difference. * - * @param supported Whether e4x should be highlighted. + * @param supported + * Whether e4x should be highlighted. * @see #isE4xSupported() */ public static void setE4xSupported(boolean supported) { e4xSupported = supported; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1489,7 +1038,8 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -1498,745 +1048,933 @@ public class TypeScriptTokenMaker extends AbstractJFlexCTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; } - - - - - /** - * 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 TypeScriptTokenMaker(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 TypeScriptTokenMaker(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 < 172) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 35: - { start = zzMarkedPos-1; yybegin(E4X_INATTR_SINGLE); - } - case 82: break; - case 34: - { start = zzMarkedPos-1; yybegin(E4X_INATTR_DOUBLE); - } - case 83: break; - case 43: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 84: break; - case 80: - { addToken(Token.RESERVED_WORD_2); - } - case 85: break; - case 27: - { addToken(start,zzStartRead-1, Token.MARKUP_DTD); addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); return firstToken; - } - case 86: break; - case 40: - { int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 87: break; - case 16: - { /* Line ending in '\' => continue to next line. */ - if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_CHAR); - addEndToken(INTERNAL_IN_JS_CHAR_INVALID); - } + + /** + * 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 TypeScriptTokenMaker(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 TypeScriptTokenMaker(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 < 172) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 35: { + start = zzMarkedPos - 1; + yybegin(E4X_INATTR_SINGLE); + } + case 82: + break; + case 34: { + start = zzMarkedPos - 1; + yybegin(E4X_INATTR_DOUBLE); + } + case 83: + break; + case 43: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 84: + break; + case 80: { + addToken(Token.RESERVED_WORD_2); + } + case 85: + break; + case 27: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); + return firstToken; + } + case 86: + break; + case 40: { + int type = validJSString ? Token.LITERAL_BACKQUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 87: + break; + case 16: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_CHAR); + addEndToken(INTERNAL_IN_JS_CHAR_INVALID); + } + return firstToken; + } + case 88: + break; + case 3: { + addToken(Token.WHITESPACE); + } + case 89: + break; + case 18: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 90: + break; + case 48: { + int start = zzStartRead; + int operatorLen = yycharat(0) == '+' ? 2 : 1; + int yylen = yylength(); // Cache before first addToken() + // invalidates it + // System.out.println("'" + yytext() + "': " + yylength() + + // ", " + (operatorLen+1)); + addToken(zzStartRead, zzStartRead + operatorLen - 1, Token.OPERATOR); + if (yylen > operatorLen + 1) { + // System.out.println((start+operatorLen) + ", " + + // (zzMarkedPos-2)); + addToken(start + operatorLen, zzMarkedPos - 2, Token.WHITESPACE); + } + zzStartRead = zzCurrentPos = zzMarkedPos = zzMarkedPos - 1; + if (isE4xSupported()) { + // Scanning will continue with "<" as markup tag start + yybegin(E4X, LANG_INDEX_E4X); + } + // Found e4x (or syntax error) but option not enabled; + // Scanning will continue at "<" as operator + } + case 91: + break; + case 72: { + addToken(Token.FUNCTION); + } + case 92: + break; + case 56: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_MARKUP); + start = zzMarkedPos; + } + case 93: + break; + case 61: { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + start = zzMarkedPos - 2; + if (varDepths == null) { + varDepths = new Stack(); + } else { + varDepths.clear(); + } + varDepths.push(Boolean.TRUE); + yybegin(JS_TEMPLATE_LITERAL_EXPR); + } + case 94: + break; + case 42: { + if (!varDepths.empty()) { + varDepths.pop(); + if (varDepths.empty()) { + addToken(start, zzStartRead, Token.VARIABLE); + start = zzMarkedPos; + yybegin(JS_TEMPLATE_LITERAL); + } + } + } + case 95: + break; + case 37: { + if (validJSString) { + addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 96: + break; + case 39: { /* + * Skip valid '$' that is not part of template + * literal expression start + */ + } + case 97: + break; + case 11: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_TEMPLATE_LITERAL); + } + case 98: + break; + case 51: { /* Skip all escaped chars. */ + } + case 99: + break; + case 12: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 100: + break; + case 77: { + start = zzStartRead; + e4x_prevState = zzLexicalState; + yybegin(E4X_COMMENT); + } + case 101: + break; + case 68: { + int temp = zzStartRead; + yybegin(E4X); + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + addToken(temp, zzMarkedPos - 1, Token.MARKUP_CDATA_DELIMITER); + } + case 102: + break; + case 62: { + varDepths.push(Boolean.TRUE); + } + case 103: + break; + case 66: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 2), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(E4X_INTAG); + } + case 104: + break; + case 53: { + /* Invalid latin-1 character \xXX */ validJSString = false; + } + case 105: + break; + case 69: { + addToken(Token.COMMENT_MULTILINE); + } + case 106: + break; + case 59: { + start = zzMarkedPos - 2; + yybegin(E4X_PI); + } + case 107: + break; + case 36: { + yybegin(E4X_INTAG); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 108: + break; + case 14: { + int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 109: + break; + case 20: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 110: + break; + case 24: { + yybegin(YYINITIAL, LANG_INDEX_DEFAULT); + addToken(Token.IDENTIFIER); + } + case 111: + break; + case 52: { + /* Invalid Unicode character \\uXXXX */ validJSString = false; + } + case 112: + break; + case 79: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + start = temp; + e4x_prevState = zzLexicalState; + yybegin(E4X_COMMENT); + } + case 113: + break; + case 71: { + if (e4xSupported) { + addToken(Token.RESERVED_WORD); + } else { + addToken(Token.IDENTIFIER); + } + } + case 114: + break; + case 67: { + int temp = zzMarkedPos; + addToken(start, zzStartRead + 2, Token.MARKUP_COMMENT); + start = temp; + yybegin(e4x_prevState); + } + case 115: + break; + case 7: { + addToken(Token.OPERATOR); + } + case 116: + break; + case 60: { + yybegin(E4X); + addToken(start, zzStartRead + 1, Token.MARKUP_PROCESSING_INSTRUCTION); + } + case 117: + break; + case 55: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_DOCUMENTATION); + } + case 118: + break; + case 19: { + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); + return firstToken; + } + case 119: + break; + case 26: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 120: + break; + case 5: { + addToken(Token.IDENTIFIER); + } + case 121: + break; + case 73: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_MULTILINE); + start = zzMarkedPos; + } + case 122: + break; + case 49: { + addToken(isE4xSupported() ? Token.MARKUP_TAG_ATTRIBUTE : Token.ERROR_IDENTIFIER); + } + case 123: + break; + case 76: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 124: + break; + case 64: { + start = zzMarkedPos - 3; + yybegin(JS_DOCCOMMENT); + } + case 125: + break; + case 9: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_STRING); + } + case 126: + break; + case 58: { + start = zzMarkedPos - 2; + e4x_inInternalDtd = false; + yybegin(E4X_DTD); + } + case 127: + break; + case 38: { + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_BACKQUOTE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + } + return firstToken; + } + case 128: + break; + case 25: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); + return firstToken; + } + case 129: + break; + case 10: { + start = zzMarkedPos - 1; + validJSString = true; + yybegin(JS_CHAR); + } + case 130: + break; + case 29: { + e4x_inInternalDtd = true; + } + case 131: + break; + case 75: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_DOCUMENTATION); + start = zzMarkedPos; + } + case 132: + break; + case 47: { + start = zzMarkedPos - 2; + yybegin(JS_MLC); + } + case 133: + break; + case 45: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 134: + break; + case 81: { + addToken(Token.MARKUP_CDATA_DELIMITER); + start = zzMarkedPos; + yybegin(E4X_CDATA); + } + case 135: + break; + case 32: { + addToken(Token.MARKUP_TAG_DELIMITER); /* + * Not valid but + * we'll still + * accept it + */ + } + case 136: + break; + case 2: { + addToken(Token.ERROR_IDENTIFIER); + } + case 137: + break; + case 78: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 138: + break; + case 33: { + yybegin(E4X); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 139: + break; + case 23: { + addToken(Token.MARKUP_ENTITY_REFERENCE); + } + case 140: + break; + case 70: { + addToken(Token.LITERAL_BOOLEAN); + } + case 141: + break; + case 4: { + addNullToken(); + return firstToken; + } + case 142: + break; + case 50: { + addToken(Token.RESERVED_WORD); + } + case 143: + break; + case 54: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.COMMENT_MULTILINE); + } + case 144: + break; + case 65: { + addToken(Token.DATA_TYPE); + } + case 145: + break; + case 22: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(E4X_INTAG); + } + case 146: + break; + case 8: { + addToken(Token.SEPARATOR); + } + case 147: + break; + case 31: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 148: + break; + case 74: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_DOCUMENTATION); + addToken(temp, zzMarkedPos - 1, Token.COMMENT_KEYWORD); + start = zzMarkedPos; + } + case 149: + break; + case 17: { + int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; + addToken(start, zzStartRead, type); + yybegin(YYINITIAL); + } + case 150: + break; + case 46: { + start = zzMarkedPos - 2; + yybegin(JS_EOL_COMMENT); + } + case 151: + break; + case 21: { + addEndToken(INTERNAL_E4X); + return firstToken; + } + case 152: + break; + case 13: { /* Line ending in '\' => continue to next line. */ + if (validJSString) { + addToken(start, zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); + addEndToken(INTERNAL_IN_JS_STRING_VALID); + } else { + addToken(start, zzStartRead, Token.ERROR_STRING_DOUBLE); + addEndToken(INTERNAL_IN_JS_STRING_INVALID); + } + return firstToken; + } + case 153: + break; + case 44: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 154: + break; + case 57: { + int count = yylength(); + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 1), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(E4X_INTAG); + } + case 155: + break; + case 63: { + boolean highlightedAsRegex = false; + if (firstToken == null) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } else { + // If this is *likely* to be a regex, based on + // the previous token, highlight it as such. + Token t = firstToken.getLastNonCommentNonWhitespaceToken(); + if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { + addToken(Token.REGEX); + highlightedAsRegex = true; + } + } + // If it doesn't *appear* to be a regex, highlight it as + // individual tokens. + if (!highlightedAsRegex) { + int temp = zzStartRead + 1; + addToken(zzStartRead, zzStartRead, Token.OPERATOR); + zzStartRead = zzCurrentPos = zzMarkedPos = temp; + } + } + case 156: + break; + case 28: { + if (!e4x_inInternalDtd) { + yybegin(E4X); + addToken(start, zzStartRead, Token.MARKUP_DTD); + } + } + case 157: + break; + case 6: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 158: + break; + case 30: { + e4x_inInternalDtd = false; + } + case 159: + break; + case 15: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 160: + break; + case 41: { // TODO: This isn't right. The expression and its + // depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 161: + break; + case 1: {} + case 162: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case JS_STRING: { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + addNullToken(); return firstToken; - } - case 88: break; - case 3: - { addToken(Token.WHITESPACE); - } - case 89: break; - case 18: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 90: break; - case 48: - { int start = zzStartRead; - int operatorLen = yycharat(0)=='+' ? 2 : 1; - int yylen = yylength(); // Cache before first addToken() invalidates it - //System.out.println("'" + yytext() + "': " + yylength() + ", " + (operatorLen+1)); - addToken(zzStartRead,zzStartRead+operatorLen-1, Token.OPERATOR); - if (yylen>operatorLen+1) { - //System.out.println((start+operatorLen) + ", " + (zzMarkedPos-2)); - addToken(start+operatorLen,zzMarkedPos-2, Token.WHITESPACE); - } - zzStartRead = zzCurrentPos = zzMarkedPos = zzMarkedPos - 1; - if (isE4xSupported()) { - // Scanning will continue with "<" as markup tag start - yybegin(E4X, LANG_INDEX_E4X); - } - // Found e4x (or syntax error) but option not enabled; - // Scanning will continue at "<" as operator - } - case 91: break; - case 72: - { addToken(Token.FUNCTION); - } - case 92: break; - case 56: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_MARKUP); start = zzMarkedPos; - } - case 93: break; - case 61: - { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - start = zzMarkedPos-2; - if (varDepths==null) { - varDepths = new Stack(); - } - else { - varDepths.clear(); - } - varDepths.push(Boolean.TRUE); - yybegin(JS_TEMPLATE_LITERAL_EXPR); - } - case 94: break; - case 42: - { if (!varDepths.empty()) { - varDepths.pop(); - if (varDepths.empty()) { - addToken(start,zzStartRead, Token.VARIABLE); - start = zzMarkedPos; - yybegin(JS_TEMPLATE_LITERAL); - } } - } - case 95: break; - case 37: - { if (validJSString) { - addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + case 640: + break; + case E4X: { + addEndToken(INTERNAL_E4X); return firstToken; - } - case 96: break; - case 39: - { /* Skip valid '$' that is not part of template literal expression start */ - } - case 97: break; - case 11: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_TEMPLATE_LITERAL); - } - case 98: break; - case 51: - { /* Skip all escaped chars. */ - } - case 99: break; - case 12: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 100: break; - case 77: - { start = zzStartRead; e4x_prevState = zzLexicalState; yybegin(E4X_COMMENT); - } - case 101: break; - case 68: - { int temp=zzStartRead; yybegin(E4X); addToken(start,zzStartRead-1, Token.MARKUP_CDATA); addToken(temp,zzMarkedPos-1, Token.MARKUP_CDATA_DELIMITER); - } - case 102: break; - case 62: - { varDepths.push(Boolean.TRUE); - } - case 103: break; - case 66: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-2), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(E4X_INTAG); - } - case 104: break; - case 53: - { /* Invalid latin-1 character \xXX */ validJSString = false; - } - case 105: break; - case 69: - { addToken(Token.COMMENT_MULTILINE); - } - case 106: break; - case 59: - { start = zzMarkedPos-2; yybegin(E4X_PI); - } - case 107: break; - case 36: - { yybegin(E4X_INTAG); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 108: break; - case 14: - { int type = validJSString ? Token.LITERAL_STRING_DOUBLE_QUOTE : Token.ERROR_STRING_DOUBLE; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 109: break; - case 20: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 110: break; - case 24: - { yybegin(YYINITIAL, LANG_INDEX_DEFAULT); addToken(Token.IDENTIFIER); - } - case 111: break; - case 52: - { /* Invalid Unicode character \\uXXXX */ validJSString = false; - } - case 112: break; - case 79: - { int temp = zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_DTD); start = temp; e4x_prevState = zzLexicalState; yybegin(E4X_COMMENT); - } - case 113: break; - case 71: - { if(e4xSupported){ addToken(Token.RESERVED_WORD);} else {addToken(Token.IDENTIFIER);} - } - case 114: break; - case 67: - { int temp = zzMarkedPos; addToken(start,zzStartRead+2, Token.MARKUP_COMMENT); start = temp; yybegin(e4x_prevState); - } - case 115: break; - case 7: - { addToken(Token.OPERATOR); - } - case 116: break; - case 60: - { yybegin(E4X); addToken(start,zzStartRead+1, Token.MARKUP_PROCESSING_INSTRUCTION); - } - case 117: break; - case 55: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_DOCUMENTATION); - } - case 118: break; - case 19: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); return firstToken; - } - case 119: break; - case 26: - { addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 120: break; - case 5: - { addToken(Token.IDENTIFIER); - } - case 121: break; - case 73: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 122: break; - case 49: - { addToken(isE4xSupported() ? Token.MARKUP_TAG_ATTRIBUTE : Token.ERROR_IDENTIFIER); - } - case 123: break; - case 76: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 124: break; - case 64: - { start = zzMarkedPos-3; yybegin(JS_DOCCOMMENT); - } - case 125: break; - case 9: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_STRING); - } - case 126: break; - case 58: - { start = zzMarkedPos-2; e4x_inInternalDtd = false; yybegin(E4X_DTD); - } - case 127: break; - case 38: - { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_BACKQUOTE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); - } + } + case 641: + break; + case E4X_INTAG: { + addToken(start, zzStartRead - 1, INTERNAL_E4X_INTAG); return firstToken; - } - case 128: break; - case 25: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); return firstToken; - } - case 129: break; - case 10: - { start = zzMarkedPos-1; validJSString = true; yybegin(JS_CHAR); - } - case 130: break; - case 29: - { e4x_inInternalDtd = true; - } - case 131: break; - case 75: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 132: break; - case 47: - { start = zzMarkedPos-2; yybegin(JS_MLC); - } - case 133: break; - case 45: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 134: break; - case 81: - { addToken(Token.MARKUP_CDATA_DELIMITER); start = zzMarkedPos; yybegin(E4X_CDATA); - } - case 135: break; - case 32: - { addToken(Token.MARKUP_TAG_DELIMITER); /* Not valid but we'll still accept it */ - } - case 136: break; - case 2: - { addToken(Token.ERROR_IDENTIFIER); - } - case 137: break; - case 78: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 138: break; - case 33: - { yybegin(E4X); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 139: break; - case 23: - { addToken(Token.MARKUP_ENTITY_REFERENCE); - } - case 140: break; - case 70: - { addToken(Token.LITERAL_BOOLEAN); - } - case 141: break; - case 4: - { addNullToken(); return firstToken; - } - case 142: break; - case 50: - { addToken(Token.RESERVED_WORD); - } - case 143: break; - case 54: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 144: break; - case 65: - { addToken(Token.DATA_TYPE); - } - case 145: break; - case 22: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(E4X_INTAG); - } - case 146: break; - case 8: - { addToken(Token.SEPARATOR); - } - case 147: break; - case 31: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 148: break; - case 74: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.COMMENT_KEYWORD); start = zzMarkedPos; - } - case 149: break; - case 17: - { int type = validJSString ? Token.LITERAL_CHAR : Token.ERROR_CHAR; addToken(start,zzStartRead, type); yybegin(YYINITIAL); - } - case 150: break; - case 46: - { start = zzMarkedPos-2; yybegin(JS_EOL_COMMENT); - } - case 151: break; - case 21: - { addEndToken(INTERNAL_E4X); return firstToken; - } - case 152: break; - case 13: - { /* Line ending in '\' => continue to next line. */ + } + case 642: + break; + case E4X_PI: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 643: + break; + case JS_MLC: { + addToken(start, zzStartRead - 1, Token.COMMENT_MULTILINE); + addEndToken(INTERNAL_IN_JS_MLC); + return firstToken; + } + case 644: + break; + case JS_CHAR: { + addToken(start, zzStartRead - 1, Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 645: + break; + case JS_EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 646: + break; + case E4X_COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); + return firstToken; + } + case 647: + break; + case JS_DOCCOMMENT: { + yybegin(YYINITIAL); + addToken(start, zzEndRead, Token.COMMENT_DOCUMENTATION); + addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); + return firstToken; + } + case 648: + break; + case E4X_DTD: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); + return firstToken; + } + case 649: + break; + case JS_TEMPLATE_LITERAL: { if (validJSString) { - addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - addEndToken(INTERNAL_IN_JS_STRING_VALID); - } - else { - addToken(start,zzStartRead, Token.ERROR_STRING_DOUBLE); - addEndToken(INTERNAL_IN_JS_STRING_INVALID); - } - return firstToken; - } - case 153: break; - case 44: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 154: break; - case 57: - { int count = yylength(); - addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-1), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(E4X_INTAG); - } - case 155: break; - case 63: - { boolean highlightedAsRegex = false; - if (firstToken==null) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - else { - // If this is *likely* to be a regex, based on - // the previous token, highlight it as such. - Token t = firstToken.getLastNonCommentNonWhitespaceToken(); - if (RSyntaxUtilities.regexCanFollowInJavaScript(t)) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - } - // If it doesn't *appear* to be a regex, highlight it as - // individual tokens. - if (!highlightedAsRegex) { - int temp = zzStartRead + 1; - addToken(zzStartRead, zzStartRead, Token.OPERATOR); - zzStartRead = zzCurrentPos = zzMarkedPos = temp; - } - } - case 156: break; - case 28: - { if (!e4x_inInternalDtd) { yybegin(E4X); addToken(start,zzStartRead, Token.MARKUP_DTD); } - } - case 157: break; - case 6: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 158: break; - case 30: - { e4x_inInternalDtd = false; - } - case 159: break; - case 15: - { addToken(start,zzStartRead-1, Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 160: break; - case 41: - { // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 161: break; - case 1: - { - } - case 162: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case JS_STRING: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 640: break; - case E4X: { - addEndToken(INTERNAL_E4X); return firstToken; - } - case 641: break; - case E4X_INTAG: { - addToken(start,zzStartRead-1, INTERNAL_E4X_INTAG); return firstToken; - } - case 642: break; - case E4X_PI: { - addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); addEndToken(INTERNAL_E4X_MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 643: break; - case JS_MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addEndToken(INTERNAL_IN_JS_MLC); return firstToken; - } - case 644: break; - case JS_CHAR: { - addToken(start,zzStartRead-1, Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 645: break; - case JS_EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 646: break; - case E4X_COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_E4X_COMMENT - e4x_prevState); return firstToken; - } - case 647: break; - case JS_DOCCOMMENT: { - yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); addEndToken(INTERNAL_IN_JS_COMMENT_DOCUMENTATION); return firstToken; - } - case 648: break; - case E4X_DTD: { - addToken(start,zzStartRead-1, Token.MARKUP_DTD); addEndToken(e4x_inInternalDtd ? INTERNAL_E4X_DTD_INTERNAL : INTERNAL_E4X_DTD); return firstToken; - } - case 649: break; - case JS_TEMPLATE_LITERAL: { - if (validJSString) { addToken(start, zzStartRead - 1, Token.LITERAL_BACKQUOTE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_VALID); - } - else { - addToken(start,zzStartRead - 1, Token.ERROR_STRING_DOUBLE); + } else { + addToken(start, zzStartRead - 1, Token.ERROR_STRING_DOUBLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); } return firstToken; - } - case 650: break; - case E4X_INATTR_SINGLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_E4X_ATTR_SINGLE); return firstToken; - } - case 651: break; - case E4X_INATTR_DOUBLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_E4X_ATTR_DOUBLE); return firstToken; - } - case 652: break; - case JS_TEMPLATE_LITERAL_EXPR: { - // TODO: This isn't right. The expression and its depth should continue to the next line. - addToken(start,zzStartRead-1, Token.VARIABLE); addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); return firstToken; - } - case 653: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 654: break; - case E4X_CDATA: { - addToken(start,zzStartRead-1, Token.MARKUP_CDATA); addEndToken(INTERNAL_E4X_MARKUP_CDATA); return firstToken; - } - case 655: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - + } + case 650: + break; + case E4X_INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_E4X_ATTR_SINGLE); + return firstToken; + } + case 651: + break; + case E4X_INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_E4X_ATTR_DOUBLE); + return firstToken; + } + case 652: + break; + case JS_TEMPLATE_LITERAL_EXPR: { + // TODO: This isn't right. The expression and + // its depth should continue to the next line. + addToken(start, zzStartRead - 1, Token.VARIABLE); + addEndToken(INTERNAL_IN_JS_TEMPLATE_LITERAL_INVALID); + return firstToken; + } + case 653: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 654: + break; + case E4X_CDATA: { + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + addEndToken(INTERNAL_E4X_MARKUP_CDATA); + return firstToken; + } + case 655: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } + } } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/UnixShellTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/UnixShellTokenMaker.java index 6250c0f..35b91a7 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/UnixShellTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/UnixShellTokenMaker.java @@ -1,17 +1,17 @@ /* * 03/16/2004 - * * UnixShellTokenMaker.java - Scanner for UNIX shell scripts. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractTokenMaker; +import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenMap; /** * A token maker that turns text into a linked list of Tokens @@ -21,44 +21,50 @@ import org.fife.ui.rsyntaxtextarea.*; * @version 0.1 */ public class UnixShellTokenMaker extends AbstractTokenMaker { - + protected final String operators = "=|><&"; protected final String separators = "()[]"; - protected final String separators2 = ".,;"; // Characters you don't want syntax highlighted but separate identifiers. - protected final String shellVariables = "#-?$!*@_"; // Characters that are part of "$" shell variables; e.g., "$_". - - + protected final String separators2 = ".,;"; // Characters you don't want + // syntax highlighted but + // separate identifiers. + protected final String shellVariables = "#-?$!*@_"; // Characters that are + // part of "$" + // shell variables; + // e.g., "$_". private int currentTokenStart; private int currentTokenType; - - + /** * Constructor. */ public UnixShellTokenMaker() { - super(); // Initializes tokensToHighlight. + super(); // Initializes tokensToHighlight. } - - + /** * Checks the token to give it the exact ID it deserves before * being passed up to the super method. * - * @param segment Segment to get text from. - * @param start Start offset in segment of token. - * @param end End offset in segment of token. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which the token occurs. + * @param segment + * Segment to get text from. + * @param start + * Start offset in segment of token. + * @param end + * End offset in segment of token. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which the token occurs. */ @Override public void addToken(Segment segment, int start, int end, int tokenType, int startOffset) { - switch (tokenType) { - // Since reserved words, functions, and data types are all passed into here + // Since reserved words, functions, and data types are all passed + // into here // as "identifiers," we have to see what the token really is... case Token.IDENTIFIER: - int value = wordsToHighlight.get(segment, start,end); - if (value!=-1) + int value = wordsToHighlight.get(segment, start, end); + if (value != -1) tokenType = value; break; case Token.WHITESPACE: @@ -72,18 +78,13 @@ public class UnixShellTokenMaker extends AbstractTokenMaker { case Token.PREPROCESSOR: case Token.VARIABLE: break; - default: tokenType = Token.IDENTIFIER; break; - } - super.addToken(segment, start, end, tokenType, startOffset); - } - - + /** * {@inheritDoc} */ @@ -91,22 +92,21 @@ public class UnixShellTokenMaker extends AbstractTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns whether tokens of the specified type should have "mark * occurrences" enabled for the current programming language. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER || type==Token.VARIABLE; + return type == Token.IDENTIFIER || type == Token.VARIABLE; } - - + /** * Returns the words to highlight for UNIX shell scripts. * @@ -116,998 +116,934 @@ public class UnixShellTokenMaker extends AbstractTokenMaker { */ @Override public TokenMap getWordsToHighlight() { - TokenMap tokenMap = new TokenMap(); - int reservedWord = Token.RESERVED_WORD; - tokenMap.put("case", reservedWord); - tokenMap.put("do", reservedWord); - tokenMap.put("done", reservedWord); - tokenMap.put("elif", reservedWord); - tokenMap.put("else", reservedWord); - tokenMap.put("esac", reservedWord); - tokenMap.put("fi", reservedWord); - tokenMap.put("for", reservedWord); - tokenMap.put("if", reservedWord); - tokenMap.put("in", reservedWord); - tokenMap.put("select", reservedWord); - tokenMap.put("then", reservedWord); - tokenMap.put("until", reservedWord); - tokenMap.put("while", reservedWord); - + tokenMap.put("case", reservedWord); + tokenMap.put("do", reservedWord); + tokenMap.put("done", reservedWord); + tokenMap.put("elif", reservedWord); + tokenMap.put("else", reservedWord); + tokenMap.put("esac", reservedWord); + tokenMap.put("fi", reservedWord); + tokenMap.put("for", reservedWord); + tokenMap.put("if", reservedWord); + tokenMap.put("in", reservedWord); + tokenMap.put("select", reservedWord); + tokenMap.put("then", reservedWord); + tokenMap.put("until", reservedWord); + tokenMap.put("while", reservedWord); int function = Token.FUNCTION; - tokenMap.put("addbib", function); - tokenMap.put("admin", function); - tokenMap.put("alias", function); - tokenMap.put("apropos", function); - tokenMap.put("ar", function); - tokenMap.put("at", function); - tokenMap.put("awk", function); - tokenMap.put("banner", function); - tokenMap.put("basename", function); - tokenMap.put("batch", function); - tokenMap.put("bg", function); - tokenMap.put("biff", function); - tokenMap.put("bin-mail", function); - tokenMap.put("binmail", function); - tokenMap.put("break", function); - tokenMap.put("cal", function); - tokenMap.put("calendar", function); - tokenMap.put("cancel", function); - tokenMap.put("cat", function); - tokenMap.put("cb", function); - tokenMap.put("cc", function); - tokenMap.put("cd", function); - tokenMap.put("cdc", function); - tokenMap.put("chdir", function); - tokenMap.put("checkeq", function); - tokenMap.put("checknr", function); - tokenMap.put("chfn", function); - tokenMap.put("chgrp", function); - tokenMap.put("chmod", function); - tokenMap.put("chown", function); - tokenMap.put("chsh", function); - tokenMap.put("clear", function); - tokenMap.put("cmp", function); - tokenMap.put("colcrt", function); - tokenMap.put("comb", function); - tokenMap.put("comm", function); - tokenMap.put("command", function); - tokenMap.put("compress", function); - tokenMap.put("continue", function); - tokenMap.put("cp", function); - tokenMap.put("cpio", function); - tokenMap.put("cpp", function); - tokenMap.put("crontab", function); - tokenMap.put("csh", function); - tokenMap.put("ctags", function); - tokenMap.put("curl", function); - tokenMap.put("cut", function); - tokenMap.put("cvs", function); - tokenMap.put("date", function); - tokenMap.put("dbx", function); - tokenMap.put("delta", function); - tokenMap.put("deroff", function); - tokenMap.put("df", function); - tokenMap.put("diff", function); - tokenMap.put("dtree", function); - tokenMap.put("du", function); - tokenMap.put("e", function); - tokenMap.put("echo", function); - tokenMap.put("ed", function); - tokenMap.put("edit", function); - tokenMap.put("enscript", function); - tokenMap.put("eqn", function); - tokenMap.put("error", function); - tokenMap.put("eval", function); - tokenMap.put("ex", function); - tokenMap.put("exec", function); - tokenMap.put("exit", function); - tokenMap.put("expand", function); - tokenMap.put("export", function); - tokenMap.put("expr", function); - tokenMap.put("false", function); - tokenMap.put("fc", function); - tokenMap.put("fg", function); - tokenMap.put("file", function); - tokenMap.put("find", function); - tokenMap.put("finger", function); - tokenMap.put("fmt", function); - tokenMap.put("fmt_mail", function); - tokenMap.put("fold", function); - tokenMap.put("ftp", function); - tokenMap.put("function", function); - tokenMap.put("gcore", function); - tokenMap.put("get", function); - tokenMap.put("getopts", function); - tokenMap.put("gprof", function); - tokenMap.put("grep", function); - tokenMap.put("groups", function); - tokenMap.put("gunzip", function); - tokenMap.put("gzip", function); - tokenMap.put("hashcheck", function); - tokenMap.put("hashmake", function); - tokenMap.put("head", function); - tokenMap.put("help", function); - tokenMap.put("history", function); - tokenMap.put("imake", function); - tokenMap.put("indent", function); - tokenMap.put("install", function); - tokenMap.put("jobs", function); - tokenMap.put("join", function); - tokenMap.put("kill", function); - tokenMap.put("last", function); - tokenMap.put("ld", function); - tokenMap.put("leave", function); - tokenMap.put("less", function); - tokenMap.put("let", function); - tokenMap.put("lex", function); - tokenMap.put("lint", function); - tokenMap.put("ln", function); - tokenMap.put("login", function); - tokenMap.put("look", function); - tokenMap.put("lookbib", function); - tokenMap.put("lorder", function); - tokenMap.put("lp", function); - tokenMap.put("lpq", function); - tokenMap.put("lpr", function); - tokenMap.put("lprm", function); - tokenMap.put("ls", function); - tokenMap.put("mail", function); - tokenMap.put("Mail", function); - tokenMap.put("make", function); - tokenMap.put("man", function); - tokenMap.put("md", function); - tokenMap.put("mesg", function); - tokenMap.put("mkdir", function); - tokenMap.put("mkstr", function); - tokenMap.put("more", function); - tokenMap.put("mount", function); - tokenMap.put("mv", function); - tokenMap.put("nawk", function); - tokenMap.put("neqn", function); - tokenMap.put("nice", function); - tokenMap.put("nm", function); - tokenMap.put("nroff", function); - tokenMap.put("od", function); - tokenMap.put("page", function); - tokenMap.put("passwd", function); - tokenMap.put("paste", function); - tokenMap.put("pr", function); - tokenMap.put("print", function); - tokenMap.put("printf", function); - tokenMap.put("printenv", function); - tokenMap.put("prof", function); - tokenMap.put("prs", function); - tokenMap.put("prt", function); - tokenMap.put("ps", function); - tokenMap.put("ptx", function); - tokenMap.put("pwd", function); - tokenMap.put("quota", function); - tokenMap.put("ranlib", function); - tokenMap.put("rcp", function); - tokenMap.put("rcs", function); - tokenMap.put("rcsdiff", function); - tokenMap.put("read", function); - tokenMap.put("readonly", function); - tokenMap.put("red", function); - tokenMap.put("return", function); - tokenMap.put("rev", function); - tokenMap.put("rlogin", function); - tokenMap.put("rm", function); - tokenMap.put("rmdel", function); - tokenMap.put("rmdir", function); - tokenMap.put("roffbib", function); - tokenMap.put("rsh", function); - tokenMap.put("rup", function); - tokenMap.put("ruptime", function); - tokenMap.put("rusers", function); - tokenMap.put("rwall", function); - tokenMap.put("rwho", function); - tokenMap.put("sact", function); - tokenMap.put("sccs", function); - tokenMap.put("sccsdiff", function); - tokenMap.put("script", function); - tokenMap.put("sed", function); - tokenMap.put("set", function); - tokenMap.put("setgroups", function); - tokenMap.put("setsenv", function); - tokenMap.put("sh", function); - tokenMap.put("shift", function); - tokenMap.put("size", function); - tokenMap.put("sleep", function); - tokenMap.put("sort", function); - tokenMap.put("sortbib", function); - tokenMap.put("spell", function); - tokenMap.put("split", function); - tokenMap.put("ssh", function); - tokenMap.put("strings", function); - tokenMap.put("strip", function); - tokenMap.put("stty", function); - tokenMap.put("su", function); - tokenMap.put("sudo", function); - tokenMap.put("symorder", function); - tokenMap.put("tabs", function); - tokenMap.put("tail", function); - tokenMap.put("talk", function); - tokenMap.put("tar", function); - tokenMap.put("tbl", function); - tokenMap.put("tee", function); - tokenMap.put("telnet", function); - tokenMap.put("test", function); - tokenMap.put("tftp", function); - tokenMap.put("time", function); - tokenMap.put("times", function); - tokenMap.put("touch", function); - tokenMap.put("trap", function); - tokenMap.put("troff", function); - tokenMap.put("true", function); - tokenMap.put("tsort", function); - tokenMap.put("tty", function); - tokenMap.put("type", function); - tokenMap.put("typeset", function); - tokenMap.put("ue", function); - tokenMap.put("ul", function); - tokenMap.put("ulimit", function); - tokenMap.put("umask", function); - tokenMap.put("unalias", function); - tokenMap.put("uncompress", function); - tokenMap.put("unexpand", function); - tokenMap.put("unget", function); - tokenMap.put("unifdef", function); - tokenMap.put("uniq", function); - tokenMap.put("units", function); - tokenMap.put("unset", function); - tokenMap.put("uptime", function); - tokenMap.put("users", function); - tokenMap.put("uucp", function); - tokenMap.put("uudecode", function); - tokenMap.put("uuencode", function); - tokenMap.put("uulog", function); - tokenMap.put("uuname", function); - tokenMap.put("uusend", function); - tokenMap.put("uux", function); - tokenMap.put("vacation", function); - tokenMap.put("val", function); - tokenMap.put("vedit", function); - tokenMap.put("vgrind", function); - tokenMap.put("vi", function); - tokenMap.put("view", function); - tokenMap.put("vtroff", function); - tokenMap.put("w", function); - tokenMap.put("wait", function); - tokenMap.put("wall", function); - tokenMap.put("wc", function); - tokenMap.put("wait", function); - tokenMap.put("what", function); - tokenMap.put("whatis", function); - tokenMap.put("whence", function); - tokenMap.put("whereis", function); - tokenMap.put("which", function); - tokenMap.put("who", function); - tokenMap.put("whoami", function); - tokenMap.put("write", function); - tokenMap.put("xargs", function); - tokenMap.put("xstr", function); - tokenMap.put("yacc", function); - tokenMap.put("yes", function); - tokenMap.put("zcat", function); - + tokenMap.put("addbib", function); + tokenMap.put("admin", function); + tokenMap.put("alias", function); + tokenMap.put("apropos", function); + tokenMap.put("ar", function); + tokenMap.put("at", function); + tokenMap.put("awk", function); + tokenMap.put("banner", function); + tokenMap.put("basename", function); + tokenMap.put("batch", function); + tokenMap.put("bg", function); + tokenMap.put("biff", function); + tokenMap.put("bin-mail", function); + tokenMap.put("binmail", function); + tokenMap.put("break", function); + tokenMap.put("cal", function); + tokenMap.put("calendar", function); + tokenMap.put("cancel", function); + tokenMap.put("cat", function); + tokenMap.put("cb", function); + tokenMap.put("cc", function); + tokenMap.put("cd", function); + tokenMap.put("cdc", function); + tokenMap.put("chdir", function); + tokenMap.put("checkeq", function); + tokenMap.put("checknr", function); + tokenMap.put("chfn", function); + tokenMap.put("chgrp", function); + tokenMap.put("chmod", function); + tokenMap.put("chown", function); + tokenMap.put("chsh", function); + tokenMap.put("clear", function); + tokenMap.put("cmp", function); + tokenMap.put("colcrt", function); + tokenMap.put("comb", function); + tokenMap.put("comm", function); + tokenMap.put("command", function); + tokenMap.put("compress", function); + tokenMap.put("continue", function); + tokenMap.put("cp", function); + tokenMap.put("cpio", function); + tokenMap.put("cpp", function); + tokenMap.put("crontab", function); + tokenMap.put("csh", function); + tokenMap.put("ctags", function); + tokenMap.put("curl", function); + tokenMap.put("cut", function); + tokenMap.put("cvs", function); + tokenMap.put("date", function); + tokenMap.put("dbx", function); + tokenMap.put("delta", function); + tokenMap.put("deroff", function); + tokenMap.put("df", function); + tokenMap.put("diff", function); + tokenMap.put("dtree", function); + tokenMap.put("du", function); + tokenMap.put("e", function); + tokenMap.put("echo", function); + tokenMap.put("ed", function); + tokenMap.put("edit", function); + tokenMap.put("enscript", function); + tokenMap.put("eqn", function); + tokenMap.put("error", function); + tokenMap.put("eval", function); + tokenMap.put("ex", function); + tokenMap.put("exec", function); + tokenMap.put("exit", function); + tokenMap.put("expand", function); + tokenMap.put("export", function); + tokenMap.put("expr", function); + tokenMap.put("false", function); + tokenMap.put("fc", function); + tokenMap.put("fg", function); + tokenMap.put("file", function); + tokenMap.put("find", function); + tokenMap.put("finger", function); + tokenMap.put("fmt", function); + tokenMap.put("fmt_mail", function); + tokenMap.put("fold", function); + tokenMap.put("ftp", function); + tokenMap.put("function", function); + tokenMap.put("gcore", function); + tokenMap.put("get", function); + tokenMap.put("getopts", function); + tokenMap.put("gprof", function); + tokenMap.put("grep", function); + tokenMap.put("groups", function); + tokenMap.put("gunzip", function); + tokenMap.put("gzip", function); + tokenMap.put("hashcheck", function); + tokenMap.put("hashmake", function); + tokenMap.put("head", function); + tokenMap.put("help", function); + tokenMap.put("history", function); + tokenMap.put("imake", function); + tokenMap.put("indent", function); + tokenMap.put("install", function); + tokenMap.put("jobs", function); + tokenMap.put("join", function); + tokenMap.put("kill", function); + tokenMap.put("last", function); + tokenMap.put("ld", function); + tokenMap.put("leave", function); + tokenMap.put("less", function); + tokenMap.put("let", function); + tokenMap.put("lex", function); + tokenMap.put("lint", function); + tokenMap.put("ln", function); + tokenMap.put("login", function); + tokenMap.put("look", function); + tokenMap.put("lookbib", function); + tokenMap.put("lorder", function); + tokenMap.put("lp", function); + tokenMap.put("lpq", function); + tokenMap.put("lpr", function); + tokenMap.put("lprm", function); + tokenMap.put("ls", function); + tokenMap.put("mail", function); + tokenMap.put("Mail", function); + tokenMap.put("make", function); + tokenMap.put("man", function); + tokenMap.put("md", function); + tokenMap.put("mesg", function); + tokenMap.put("mkdir", function); + tokenMap.put("mkstr", function); + tokenMap.put("more", function); + tokenMap.put("mount", function); + tokenMap.put("mv", function); + tokenMap.put("nawk", function); + tokenMap.put("neqn", function); + tokenMap.put("nice", function); + tokenMap.put("nm", function); + tokenMap.put("nroff", function); + tokenMap.put("od", function); + tokenMap.put("page", function); + tokenMap.put("passwd", function); + tokenMap.put("paste", function); + tokenMap.put("pr", function); + tokenMap.put("print", function); + tokenMap.put("printf", function); + tokenMap.put("printenv", function); + tokenMap.put("prof", function); + tokenMap.put("prs", function); + tokenMap.put("prt", function); + tokenMap.put("ps", function); + tokenMap.put("ptx", function); + tokenMap.put("pwd", function); + tokenMap.put("quota", function); + tokenMap.put("ranlib", function); + tokenMap.put("rcp", function); + tokenMap.put("rcs", function); + tokenMap.put("rcsdiff", function); + tokenMap.put("read", function); + tokenMap.put("readonly", function); + tokenMap.put("red", function); + tokenMap.put("return", function); + tokenMap.put("rev", function); + tokenMap.put("rlogin", function); + tokenMap.put("rm", function); + tokenMap.put("rmdel", function); + tokenMap.put("rmdir", function); + tokenMap.put("roffbib", function); + tokenMap.put("rsh", function); + tokenMap.put("rup", function); + tokenMap.put("ruptime", function); + tokenMap.put("rusers", function); + tokenMap.put("rwall", function); + tokenMap.put("rwho", function); + tokenMap.put("sact", function); + tokenMap.put("sccs", function); + tokenMap.put("sccsdiff", function); + tokenMap.put("script", function); + tokenMap.put("sed", function); + tokenMap.put("set", function); + tokenMap.put("setgroups", function); + tokenMap.put("setsenv", function); + tokenMap.put("sh", function); + tokenMap.put("shift", function); + tokenMap.put("size", function); + tokenMap.put("sleep", function); + tokenMap.put("sort", function); + tokenMap.put("sortbib", function); + tokenMap.put("spell", function); + tokenMap.put("split", function); + tokenMap.put("ssh", function); + tokenMap.put("strings", function); + tokenMap.put("strip", function); + tokenMap.put("stty", function); + tokenMap.put("su", function); + tokenMap.put("sudo", function); + tokenMap.put("symorder", function); + tokenMap.put("tabs", function); + tokenMap.put("tail", function); + tokenMap.put("talk", function); + tokenMap.put("tar", function); + tokenMap.put("tbl", function); + tokenMap.put("tee", function); + tokenMap.put("telnet", function); + tokenMap.put("test", function); + tokenMap.put("tftp", function); + tokenMap.put("time", function); + tokenMap.put("times", function); + tokenMap.put("touch", function); + tokenMap.put("trap", function); + tokenMap.put("troff", function); + tokenMap.put("true", function); + tokenMap.put("tsort", function); + tokenMap.put("tty", function); + tokenMap.put("type", function); + tokenMap.put("typeset", function); + tokenMap.put("ue", function); + tokenMap.put("ul", function); + tokenMap.put("ulimit", function); + tokenMap.put("umask", function); + tokenMap.put("unalias", function); + tokenMap.put("uncompress", function); + tokenMap.put("unexpand", function); + tokenMap.put("unget", function); + tokenMap.put("unifdef", function); + tokenMap.put("uniq", function); + tokenMap.put("units", function); + tokenMap.put("unset", function); + tokenMap.put("uptime", function); + tokenMap.put("users", function); + tokenMap.put("uucp", function); + tokenMap.put("uudecode", function); + tokenMap.put("uuencode", function); + tokenMap.put("uulog", function); + tokenMap.put("uuname", function); + tokenMap.put("uusend", function); + tokenMap.put("uux", function); + tokenMap.put("vacation", function); + tokenMap.put("val", function); + tokenMap.put("vedit", function); + tokenMap.put("vgrind", function); + tokenMap.put("vi", function); + tokenMap.put("view", function); + tokenMap.put("vtroff", function); + tokenMap.put("w", function); + tokenMap.put("wait", function); + tokenMap.put("wall", function); + tokenMap.put("wc", function); + tokenMap.put("wait", function); + tokenMap.put("what", function); + tokenMap.put("whatis", function); + tokenMap.put("whence", function); + tokenMap.put("whereis", function); + tokenMap.put("which", function); + tokenMap.put("who", function); + tokenMap.put("whoami", function); + tokenMap.put("write", function); + tokenMap.put("xargs", function); + tokenMap.put("xstr", function); + tokenMap.put("yacc", function); + tokenMap.put("yes", function); + tokenMap.put("zcat", function); return tokenMap; - } - - + /** * Returns a list of tokens representing the given text. * - * @param text The text to break into tokens. - * @param startTokenType The token with which to start tokenizing. - * @param startOffset The offset at which the line of tokens begins. + * @param text + * The text to break into tokens. + * @param startTokenType + * The token with which to start tokenizing. + * @param startOffset + * The offset at which the line of tokens begins. * @return A linked list of tokens representing text. */ @Override public Token getTokenList(Segment text, int startTokenType, final int startOffset) { - resetTokenList(); - char[] array = text.array; int offset = text.offset; int count = text.count; int end = offset + count; - - // See, when we find a token, its starting position is always of the form: + // See, when we find a token, its starting position is always of the + // form: // 'startOffset + (currentTokenStart-offset)'; but since startOffset and // offset are constant, tokens' starting positions become: // 'newStartOffset+currentTokenStart' for one less subraction operation. int newStartOffset = startOffset - offset; - currentTokenStart = offset; - currentTokenType = startTokenType; + currentTokenType = startTokenType; boolean backslash = false; - -//beginning: - for (int i=offset; i call '`' an identifier.. - addToken(text, currentTokenStart,i, Token.IDENTIFIER, newStartOffset+currentTokenStart); + if (backslash) { // Escaped back quote => call '`' + // an identifier.. + addToken(text, currentTokenStart, i, Token.IDENTIFIER, newStartOffset + currentTokenStart); backslash = false; - } - else { + } else { currentTokenType = Token.LITERAL_BACKQUOTE; } break; - case '"': - if (backslash) { // Escaped double quote => call '"' an identifier.. - addToken(text, currentTokenStart,i, Token.IDENTIFIER, newStartOffset+currentTokenStart); + if (backslash) { // Escaped double quote => call '"' + // an identifier.. + addToken(text, currentTokenStart, i, Token.IDENTIFIER, newStartOffset + currentTokenStart); backslash = false; - } - else { + } else { currentTokenType = Token.LITERAL_STRING_DOUBLE_QUOTE; } break; - case '\'': - if (backslash) { // Escaped single quote => call '\'' an identifier. - addToken(text, currentTokenStart,i, Token.IDENTIFIER, newStartOffset+currentTokenStart); + if (backslash) { // Escaped single quote => call + // '\'' an identifier. + addToken(text, currentTokenStart, i, Token.IDENTIFIER, newStartOffset + currentTokenStart); backslash = false; - } - else { + } else { currentTokenType = Token.LITERAL_CHAR; } break; - case '\\': - addToken(text, currentTokenStart,i, Token.IDENTIFIER, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; backslash = !backslash; break; - case '$': - if (backslash) { // Escaped dollar sign => call '$' an identifier.. - addToken(text, currentTokenStart,i, Token.IDENTIFIER, newStartOffset+currentTokenStart); + if (backslash) { // Escaped dollar sign => call '$' + // an identifier.. + addToken(text, currentTokenStart, i, Token.IDENTIFIER, newStartOffset + currentTokenStart); backslash = false; - } - else { + } else { currentTokenType = Token.VARIABLE; } break; - case '#': backslash = false; currentTokenType = Token.COMMENT_EOL; break; - default: if (RSyntaxUtilities.isDigit(c)) { currentTokenType = Token.LITERAL_NUMBER_DECIMAL_INT; break; - } - else if (RSyntaxUtilities.isLetter(c) || c=='/' || c=='_') { + } else if (RSyntaxUtilities.isLetter(c) || c == '/' || c == '_') { currentTokenType = Token.IDENTIFIER; break; } - int indexOf = operators.indexOf(c,0); - if (indexOf>-1) { - addToken(text, currentTokenStart,i, Token.OPERATOR, newStartOffset+currentTokenStart); + int indexOf = operators.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, currentTokenStart, i, Token.OPERATOR, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; break; } - indexOf = separators.indexOf(c,0); - if (indexOf>-1) { - addToken(text, currentTokenStart,i, Token.SEPARATOR, newStartOffset+currentTokenStart); + indexOf = separators.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, currentTokenStart, i, Token.SEPARATOR, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; break; } - indexOf = separators2.indexOf(c,0); - if (indexOf>-1) { - addToken(text, currentTokenStart,i, Token.IDENTIFIER, newStartOffset+currentTokenStart); + indexOf = separators2.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, currentTokenStart, i, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; break; - } - else { + } else { currentTokenType = Token.IDENTIFIER; break; } - } // End of switch (c). - break; - case Token.WHITESPACE: - switch (c) { - case ' ': case '\t': - break; // Still whitespace. - + break; // Still whitespace. case '\\': - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; - backslash = true; // Previous char whitespace => this must be first backslash. + backslash = true; // Previous char whitespace => + // this must be first backslash. break; - - case '`': // Don't need to worry about backslashes as previous char is space. - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + case '`': // Don't need to worry about backslashes as + // previous char is space. + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_BACKQUOTE; backslash = false; break; - - case '"': // Don't need to worry about backslashes as previous char is space. - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + case '"': // Don't need to worry about backslashes as + // previous char is space. + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_STRING_DOUBLE_QUOTE; backslash = false; break; - - case '\'': // Don't need to worry about backslashes as previous char is space. - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + case '\'': // Don't need to worry about backslashes as + // previous char is space. + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_CHAR; backslash = false; break; - - case '$': // Don't need to worry about backslashes as previous char is space. - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + case '$': // Don't need to worry about backslashes as + // previous char is space. + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.VARIABLE; backslash = false; break; - case '#': - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.COMMENT_EOL; break; - - default: // Add the whitespace token and start anew. - - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + default: // Add the whitespace token and start anew. + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; - if (RSyntaxUtilities.isDigit(c)) { currentTokenType = Token.LITERAL_NUMBER_DECIMAL_INT; break; - } - else if (RSyntaxUtilities.isLetter(c) || c=='/' || c=='_') { + } else if (RSyntaxUtilities.isLetter(c) || c == '/' || c == '_') { currentTokenType = Token.IDENTIFIER; break; } - int indexOf = operators.indexOf(c,0); - if (indexOf>-1) { - addToken(text, i,i, Token.OPERATOR, newStartOffset+i); + int indexOf = operators.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, i, i, Token.OPERATOR, newStartOffset + i); currentTokenType = Token.NULL; break; } - indexOf = separators.indexOf(c,0); - if (indexOf>-1) { - addToken(text, i,i, Token.SEPARATOR, newStartOffset+i); + indexOf = separators.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, i, i, Token.SEPARATOR, newStartOffset + i); currentTokenType = Token.NULL; break; } - indexOf = separators2.indexOf(c,0); - if (indexOf>-1) { - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + indexOf = separators2.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; break; - } - else { + } else { currentTokenType = Token.IDENTIFIER; } - } // End of switch (c). - break; - default: // Should never happen case Token.IDENTIFIER: - switch (c) { - case ' ': case '\t': - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.WHITESPACE; break; - - case '/': // Special-case to colorize commands like "echo" in "/bin/echo" - addToken(text, currentTokenStart,i, Token.IDENTIFIER, newStartOffset+currentTokenStart); - currentTokenStart = i+1; + case '/': // Special-case to colorize commands like + // "echo" in "/bin/echo" + addToken(text, currentTokenStart, i, Token.IDENTIFIER, newStartOffset + currentTokenStart); + currentTokenStart = i + 1; currentTokenType = Token.NULL; break; - - case '`': // Don't need to worry about backslashes as previous char is space. - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + case '`': // Don't need to worry about backslashes as + // previous char is space. + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_BACKQUOTE; backslash = false; break; - - case '"': // Don't need to worry about backslashes as previous char is non-backslash. - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + case '"': // Don't need to worry about backslashes as + // previous char is non-backslash. + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_STRING_DOUBLE_QUOTE; backslash = false; break; - - case '\'': // Don't need to worry about backslashes as previous char is non-backslash. - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + case '\'': // Don't need to worry about backslashes as + // previous char is non-backslash. + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_CHAR; backslash = false; break; - case '\\': - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; backslash = true; break; - - case '$': // Don't need to worry about backslashes as previous char is non-backslash. - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + case '$': // Don't need to worry about backslashes as + // previous char is non-backslash. + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.VARIABLE; backslash = false; break; - - case '=': // Special case here; when you have "identifier=" in shell, "identifier" is a variable. - addToken(text, currentTokenStart,i-1, Token.VARIABLE, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.OPERATOR, newStartOffset+i); + case '=': // Special case here; when you have + // "identifier=" in shell, + // "identifier" is a variable. + addToken(text, currentTokenStart, i - 1, Token.VARIABLE, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.OPERATOR, newStartOffset + i); currentTokenType = Token.NULL; break; - default: - if (RSyntaxUtilities.isLetterOrDigit(c) || c=='/' || c=='_') { - break; // Still an identifier of some type. + if (RSyntaxUtilities.isLetterOrDigit(c) || c == '/' || c == '_') { + break; // Still an identifier of some type. } int indexOf = operators.indexOf(c); - if (indexOf>-1) { - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.OPERATOR, newStartOffset+i); + if (indexOf > -1) { + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.OPERATOR, newStartOffset + i); currentTokenType = Token.NULL; break; } - indexOf = separators.indexOf(c,0); - if (indexOf>-1) { - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.SEPARATOR, newStartOffset+i); + indexOf = separators.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.SEPARATOR, newStartOffset + i); currentTokenType = Token.NULL; break; } - indexOf = separators2.indexOf(c,0); - if (indexOf>-1) { - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + indexOf = separators2.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; break; } // Otherwise, we're still an identifier (?). - } // End of switch (c). - break; - case Token.LITERAL_NUMBER_DECIMAL_INT: - switch (c) { - case ' ': case '\t': - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.WHITESPACE; break; - - case '`': // Don't need to worry about backslashes as previous char is space. - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); + case '`': // Don't need to worry about backslashes as + // previous char is space. + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_BACKQUOTE; backslash = false; break; - - case '"': // Don't need to worry about backslashes as previous char is non-backslash. - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); + case '"': // Don't need to worry about backslashes as + // previous char is non-backslash. + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_STRING_DOUBLE_QUOTE; backslash = false; break; - - case '\'': // Don't need to worry about backslashes as previous char is non-backslash. - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); + case '\'': // Don't need to worry about backslashes as + // previous char is non-backslash. + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.LITERAL_CHAR; backslash = false; break; - - case '$': // Don't need to worry about backslashes as previous char is non-backslash. - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); + case '$': // Don't need to worry about backslashes as + // previous char is non-backslash. + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.VARIABLE; backslash = false; break; - case '\\': - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; backslash = true; break; - default: - if (RSyntaxUtilities.isDigit(c)) { - break; // Still a literal number. + break; // Still a literal number. } int indexOf = operators.indexOf(c); - if (indexOf>-1) { - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.OPERATOR, newStartOffset+i); + if (indexOf > -1) { + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, + newStartOffset + currentTokenStart); + addToken(text, i, i, Token.OPERATOR, newStartOffset + i); currentTokenType = Token.NULL; break; } indexOf = separators.indexOf(c); - if (indexOf>-1) { - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.SEPARATOR, newStartOffset+i); + if (indexOf > -1) { + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, + newStartOffset + currentTokenStart); + addToken(text, i, i, Token.SEPARATOR, newStartOffset + i); currentTokenType = Token.NULL; break; } indexOf = separators2.indexOf(c); - if (indexOf>-1) { - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + if (indexOf > -1) { + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, + newStartOffset + currentTokenStart); + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; break; } - - // Otherwise, remember this was a number and start over. - addToken(text, currentTokenStart,i-1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset+currentTokenStart); + // Otherwise, remember this was a number and start + // over. + addToken(text, currentTokenStart, i - 1, Token.LITERAL_NUMBER_DECIMAL_INT, newStartOffset + currentTokenStart); i--; currentTokenType = Token.NULL; - } // End of switch (c). - break; - case Token.VARIABLE: - // Note that we first arrive here AFTER the '$' character. - // First check if the variable name is enclosed in '{' and '}' characters. - if (c=='{') { - while (++iJFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated VisualBasicTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated VisualBasicTokenMaker.java file will contain + * two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 1.0 */ - public class VisualBasicTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int EOL_COMMENT = 1; - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\11\1\10\1\0\1\11\1\5\22\0\1\64\1\37\1\12"+ - "\1\6\1\1\1\37\1\16\1\13\2\36\1\41\1\27\1\37\1\27"+ - "\1\30\1\44\1\3\11\3\1\47\1\37\1\42\1\40\1\43\1\37"+ - "\1\6\1\35\1\54\1\4\1\15\1\26\1\34\1\57\1\25\1\21"+ - "\1\60\1\63\1\22\1\61\1\52\1\53\1\46\1\1\1\14\1\24"+ - "\1\31\1\17\1\56\1\50\1\62\1\55\1\1\1\37\1\7\1\37"+ - "\1\45\1\2\1\0\1\35\1\54\1\4\1\51\1\26\1\33\1\57"+ - "\1\65\1\20\1\60\1\63\1\22\1\61\1\52\1\53\1\46\1\1"+ - "\1\32\1\23\1\31\1\17\1\56\1\66\1\62\1\55\1\1\3\5"+ - "\1\37\uff81\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 = - "\2\0\1\1\1\2\1\3\2\2\1\4\1\5\1\6"+ - "\1\7\1\10\2\2\1\4\6\2\1\4\4\2\1\11"+ - "\1\4\13\2\1\12\1\13\6\12\1\14\1\3\2\14"+ - "\1\15\13\2\1\16\5\2\1\17\1\0\3\2\3\17"+ - "\47\2\1\17\14\2\1\12\2\0\3\12\2\0\1\15"+ - "\1\0\1\15\1\14\24\2\1\17\7\2\1\20\24\2"+ - "\1\17\2\2\1\17\11\2\1\17\13\2\1\17\12\2"+ - "\1\17\3\2\1\17\2\2\1\12\2\0\3\12\2\0"+ - "\2\2\1\21\14\2\1\20\1\14\16\2\1\22\17\2"+ - "\1\17\17\2\1\12\1\0\2\12\1\23\1\0\52\2"+ - "\1\0\1\12\1\0\1\2\1\24\21\2\1\17\6\2"+ - "\1\17\14\2\1\0\10\2\1\0\3\2\1\0\2\2"+ - "\6\0\1\17"; - - private static int [] zzUnpackAction() { - int [] result = new int[417]; - 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\67\0\156\0\245\0\334\0\u0113\0\u014a\0\u0181"+ - "\0\u014a\0\u01b8\0\u01ef\0\u014a\0\u0226\0\u025d\0\u0294\0\u02cb"+ - "\0\u0302\0\u0339\0\u0370\0\u03a7\0\u03de\0\u0415\0\u044c\0\u0483"+ - "\0\u04ba\0\u04f1\0\u014a\0\u014a\0\u0528\0\u055f\0\u0596\0\u05cd"+ - "\0\u0604\0\u063b\0\u0672\0\u06a9\0\u06e0\0\u0717\0\u074e\0\u0785"+ - "\0\u014a\0\u07bc\0\u07f3\0\u082a\0\u0861\0\u0898\0\u08cf\0\u0906"+ - "\0\u0906\0\u093d\0\u0974\0\u09ab\0\u09e2\0\u0a19\0\u0a50\0\u0a87"+ - "\0\u0abe\0\u0af5\0\u0b2c\0\u0b63\0\u0b9a\0\u0bd1\0\u0c08\0\u014a"+ - "\0\u0c3f\0\u0c76\0\u0cad\0\u0ce4\0\u0d1b\0\u0d52\0\u0d89\0\u0dc0"+ - "\0\u0df7\0\u0e2e\0\u0e65\0\245\0\u0e9c\0\u0ed3\0\u0f0a\0\u0f41"+ - "\0\u0f78\0\u0faf\0\u0fe6\0\u101d\0\u1054\0\u108b\0\u10c2\0\u10f9"+ - "\0\u1130\0\u1167\0\u119e\0\u11d5\0\u120c\0\u1243\0\u127a\0\u12b1"+ - "\0\u12e8\0\u131f\0\u1356\0\u138d\0\u13c4\0\u13fb\0\u1432\0\u1469"+ - "\0\u14a0\0\u14d7\0\u150e\0\u1545\0\u157c\0\u15b3\0\u15ea\0\u1621"+ - "\0\u1658\0\u168f\0\u16c6\0\u16fd\0\u1734\0\u176b\0\u17a2\0\u17d9"+ - "\0\u1810\0\u1847\0\u187e\0\u18b5\0\u18ec\0\u1923\0\u195a\0\u1991"+ - "\0\u19c8\0\u19ff\0\u1a36\0\u1a6d\0\u1aa4\0\u1adb\0\u1b12\0\u1b49"+ - "\0\u1b80\0\u1bb7\0\u1bee\0\u0906\0\u1c25\0\u1c5c\0\u1c93\0\u1cca"+ - "\0\u1d01\0\u1d38\0\u1d6f\0\u1da6\0\u1ddd\0\u1e14\0\u1e4b\0\u1e82"+ - "\0\u1eb9\0\u1ef0\0\u1f27\0\u1f5e\0\u1f95\0\u1fcc\0\u2003\0\u203a"+ - "\0\u2071\0\u20a8\0\u20df\0\u2116\0\u214d\0\u2184\0\u21bb\0\u21f2"+ - "\0\u2229\0\u2260\0\u2297\0\u22ce\0\u2305\0\u233c\0\u2373\0\u23aa"+ - "\0\u23e1\0\u2418\0\u244f\0\u2486\0\u24bd\0\u24f4\0\u252b\0\u2562"+ - "\0\u2599\0\u25d0\0\u2607\0\u263e\0\u2675\0\u26ac\0\u26e3\0\u271a"+ - "\0\u2751\0\u2788\0\u27bf\0\u27f6\0\u282d\0\u2864\0\u289b\0\u28d2"+ - "\0\u2909\0\u2940\0\u2977\0\u29ae\0\u29e5\0\u2a1c\0\u2a53\0\u2a8a"+ - "\0\u2ac1\0\u2af8\0\u2b2f\0\u2b66\0\u2b9d\0\u2bd4\0\u2c0b\0\u2c42"+ - "\0\u2c79\0\u2cb0\0\u2ce7\0\u2d1e\0\u2d55\0\u2d8c\0\u2dc3\0\u2dfa"+ - "\0\u2e31\0\u2e68\0\u2e9f\0\u2ed6\0\u2f0d\0\u2f44\0\u2f7b\0\u2fb2"+ - "\0\u2fe9\0\u3020\0\u3057\0\u308e\0\u30c5\0\u30fc\0\u3133\0\u316a"+ - "\0\u31a1\0\u31d8\0\u320f\0\245\0\u3246\0\u327d\0\u32b4\0\u32eb"+ - "\0\u3322\0\u3359\0\u3390\0\u33c7\0\u33fe\0\u3435\0\u346c\0\u34a3"+ - "\0\u0906\0\u34da\0\u3511\0\u3548\0\u357f\0\u35b6\0\u35ed\0\u3624"+ - "\0\u365b\0\u3692\0\u36c9\0\u3700\0\u3737\0\u376e\0\u37a5\0\u37dc"+ - "\0\245\0\u3813\0\u384a\0\u3881\0\u38b8\0\u38ef\0\u3926\0\u395d"+ - "\0\u3994\0\u39cb\0\u3a02\0\u3a39\0\u3a70\0\u3aa7\0\u3ade\0\u3b15"+ - "\0\u3b4c\0\u3b83\0\u3bba\0\u3bf1\0\u3c28\0\u3c5f\0\u3c96\0\u3ccd"+ - "\0\u3d04\0\u3d3b\0\u3d72\0\u3da9\0\u3de0\0\u3e17\0\u3e4e\0\u3e85"+ - "\0\u3ebc\0\u3ef3\0\u3f2a\0\u3f61\0\u3f98\0\u3fcf\0\u4006\0\u403d"+ - "\0\u4074\0\u40ab\0\u40e2\0\u4119\0\u4150\0\u4187\0\u41be\0\u41f5"+ - "\0\u422c\0\u4263\0\u429a\0\u42d1\0\u4308\0\u433f\0\u4376\0\u43ad"+ - "\0\u43e4\0\u441b\0\u4452\0\u4489\0\u44c0\0\u44f7\0\u452e\0\u4565"+ - "\0\u459c\0\u45d3\0\u460a\0\u4641\0\u4678\0\u46af\0\u46e6\0\u471d"+ - "\0\u4754\0\u478b\0\u47c2\0\u47f9\0\u4830\0\u4867\0\u489e\0\u48d5"+ - "\0\u490c\0\u4943\0\u3f98\0\u497a\0\245\0\u49b1\0\u49e8\0\u2788"+ - "\0\u4a1f\0\u4a56\0\u4a8d\0\u4ac4\0\u4afb\0\u4b32\0\u4b69\0\u4ba0"+ - "\0\u4bd7\0\u4c0e\0\u4c45\0\u4c7c\0\u4cb3\0\u4cea\0\u2dfa\0\u4d21"+ - "\0\u4d58\0\u4d8f\0\u4dc6\0\u4dfd\0\u4e34\0\u4e6b\0\u4ea2\0\u4ed9"+ - "\0\u4f10\0\u4f47\0\u4f7e\0\u4fb5\0\u4fec\0\u5023\0\u505a\0\u5091"+ - "\0\u50c8\0\u50ff\0\u5136\0\u516d\0\u51a4\0\u51db\0\u5212\0\u5249"+ - "\0\u5280\0\u52b7\0\u52ee\0\u5325\0\u535c\0\u5393\0\u53ca\0\u5401"+ - "\0\u5438\0\u546f\0\u54a6\0\u54dd\0\u5514\0\u554b\0\u5582\0\u55b9"+ - "\0\u014a"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[417]; - 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 = - "\1\3\2\4\1\5\1\6\1\7\1\3\1\10\1\11"+ - "\1\12\1\13\1\14\1\15\1\16\1\17\1\20\2\21"+ - "\1\22\2\23\1\24\1\25\1\26\1\27\1\30\1\15"+ - "\2\31\1\32\1\33\1\7\1\34\1\26\1\35\1\36"+ - "\2\26\1\37\1\7\1\40\1\16\1\41\1\42\1\43"+ - "\1\4\1\44\1\45\1\4\1\46\1\47\1\4\1\12"+ - "\1\24\1\40\10\50\1\51\14\50\1\52\5\50\1\53"+ - "\1\54\13\50\1\55\14\50\1\56\1\57\5\3\1\0"+ - "\2\3\4\0\2\3\1\0\10\3\2\0\5\3\10\0"+ - "\1\3\1\0\14\3\1\0\3\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\3\60\1\5\1\60\1\0"+ - "\2\60\4\0\3\61\1\62\1\60\1\61\2\60\1\61"+ - "\1\60\1\63\1\0\1\64\3\60\1\61\1\60\10\0"+ - "\1\60\1\0\14\60\1\0\2\60\1\3\3\4\1\65"+ - "\1\0\2\3\4\0\1\4\1\66\1\0\1\67\2\70"+ - "\1\71\2\72\1\73\1\4\2\0\1\74\3\4\1\75"+ - "\10\0\1\4\1\0\1\4\1\66\1\4\1\76\1\77"+ - "\7\4\1\0\1\73\1\4\67\0\5\3\1\0\2\3"+ - "\4\0\2\3\1\0\10\3\2\0\5\3\2\0\1\34"+ - "\5\0\1\3\1\0\14\3\1\0\2\3\11\0\1\12"+ - "\52\0\1\12\2\0\12\13\1\100\54\13\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\7\4\1\101\2\0"+ - "\4\4\1\102\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\1\4"+ - "\2\103\4\4\1\104\2\0\4\4\1\105\10\0\1\4"+ - "\1\0\3\4\1\106\10\4\1\0\2\4\25\0\1\107"+ - "\12\0\1\34\24\0\1\107\1\0\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\1\4\2\110\1\111\2\112"+ - "\2\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\4\4\2\113\2\4\2\0\2\4\2\114\1\4\10\0"+ - "\1\4\1\0\2\4\1\115\6\4\1\116\2\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\1\4\2\117\4\4\1\120\2\0\5\4\10\0\1\4"+ - "\1\0\3\4\1\121\10\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\122\2\123\3\4"+ - "\1\124\1\125\2\0\1\126\4\4\10\0\1\4\1\0"+ - "\4\4\1\127\1\130\6\4\1\0\1\124\1\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\4\4\1\131\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\1\132\1\4\1\0"+ - "\3\4\1\133\4\4\2\0\1\4\1\132\2\4\1\134"+ - "\10\0\1\4\1\0\2\4\1\135\3\4\1\136\3\4"+ - "\1\137\1\4\1\0\2\4\40\0\1\34\31\0\1\64"+ - "\63\0\1\3\4\4\1\0\2\3\4\0\1\140\1\4"+ - "\1\0\6\4\1\141\1\4\2\0\1\4\1\140\3\4"+ - "\10\0\1\4\1\0\3\4\1\114\1\4\1\142\6\4"+ - "\1\0\1\141\1\4\1\3\4\4\1\0\2\3\4\0"+ - "\1\143\1\4\1\0\1\144\2\145\5\4\2\0\1\4"+ - "\1\143\2\4\1\146\10\0\1\4\1\0\3\4\1\147"+ - "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\1\4\1\150\1\0\3\4\1\151\2\114\2\4\2\0"+ - "\5\4\10\0\1\4\1\0\1\4\1\150\1\152\11\4"+ - "\1\0\2\4\42\0\1\26\67\0\1\26\23\0\1\3"+ - "\4\4\1\0\2\3\4\0\1\153\1\4\1\0\1\154"+ - "\7\4\2\0\1\4\1\153\2\4\1\155\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\156\1\4\1\0\1\4\2\157\3\4\1\160"+ - "\1\161\2\0\1\4\1\156\3\4\10\0\1\4\1\0"+ - "\14\4\1\0\1\160\1\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\7\4\1\162\2\0\4\4\1\163"+ - "\10\0\1\4\1\0\3\4\1\164\10\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\1\165\1\4\1\0"+ - "\1\120\7\4\2\0\1\4\1\165\2\114\1\4\10\0"+ - "\1\166\1\0\2\4\1\114\1\4\1\167\1\4\1\170"+ - "\5\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\3\4\1\171\1\4\1\172\6\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\4\4\1\173\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4"+ - "\1\174\3\4\1\175\2\0\5\4\10\0\1\4\1\0"+ - "\3\4\1\176\10\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\1\177\6\4\1\114\2\0"+ - "\5\4\10\0\1\4\1\0\3\4\1\200\1\4\1\201"+ - "\6\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\3\4\1\147\10\4\1\0\2\4\10\50\1\0\22\50"+ - "\1\0\31\50\2\0\10\50\1\0\20\50\1\202\1\50"+ - "\1\0\31\50\22\0\2\203\7\0\1\204\35\0\10\50"+ - "\1\0\7\50\2\205\7\50\1\206\1\50\1\0\31\50"+ - "\2\0\10\50\1\0\22\50\1\0\14\50\1\207\14\50"+ - "\1\0\1\210\31\0\1\211\105\0\1\210\15\0\1\210"+ - "\5\60\1\0\2\60\4\0\2\60\1\0\10\60\2\0"+ - "\5\60\10\0\1\60\1\0\14\60\1\0\7\60\1\0"+ - "\2\60\4\0\2\60\1\0\1\60\5\61\2\60\2\0"+ - "\5\60\10\0\1\60\1\0\14\60\1\0\5\60\1\212"+ - "\1\60\1\0\2\60\4\0\2\60\1\0\10\60\1\213"+ - "\1\0\5\60\10\0\1\60\1\0\14\60\1\0\5\60"+ - "\1\64\1\60\1\0\2\60\4\0\3\214\1\215\1\60"+ - "\1\214\2\60\1\214\1\60\1\63\2\0\3\60\1\214"+ - "\1\60\10\0\1\60\1\0\14\60\1\0\2\60\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\6\4\1\216"+ - "\1\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\1\216\1\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\217\2\0\4\4\1\220\10\0\1\4"+ - "\1\0\4\4\1\221\7\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\4\2\70\1\222"+ - "\2\223\2\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4"+ - "\1\120\11\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\4\4\1\224\10\0"+ - "\1\4\1\0\2\4\1\225\11\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\6\4\1\226"+ - "\1\4\2\0\1\147\4\4\10\0\1\4\1\0\2\4"+ - "\1\225\1\4\1\227\7\4\1\0\1\226\1\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\4\4\1\230\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\5\4\1\231\6\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\221\2\232\2\4\2\0\1\134\4\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\2\4\1\233\1\4\1\234\7\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\3\4"+ - "\1\235\1\4\1\220\6\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\1\4\1\236\1\0\4\4\2\237"+ - "\2\4\2\0\1\240\3\4\1\241\10\0\1\4\1\0"+ - "\1\4\1\236\7\4\1\242\2\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\243"+ - "\5\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\1\244\1\4"+ - "\1\0\10\4\2\0\1\4\1\244\3\4\10\0\1\4"+ - "\1\0\11\4\1\114\2\4\1\0\2\4\1\3\3\4"+ - "\1\245\1\0\2\3\4\0\2\4\1\0\3\4\1\246"+ - "\4\4\2\0\2\4\2\247\1\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\1\250\4\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\1\251\7\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\3\0\2\252\10\0"+ - "\1\252\10\0\1\252\4\0\3\252\13\0\1\252\2\0"+ - "\1\252\12\0\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4"+ - "\1\253\11\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\3\4\1\254\10\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\4\2\222\3\4"+ - "\1\255\1\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\1\255\1\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\2\4\1\256\11\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\6\4\1\257\1\4\2\0"+ - "\1\260\4\4\10\0\1\4\1\0\14\4\1\0\1\257"+ - "\1\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\261\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\4\4\1\114"+ - "\6\4\1\232\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\1\114\4\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\2\4\1\262\1\263\10\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\4\4\1\114\7\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4"+ - "\1\264\11\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\4\4\1\265\10\0"+ - "\1\4\1\0\3\4\1\266\10\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\3\4\1\267"+ - "\4\4\2\0\1\114\4\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\270"+ - "\1\4\1\0\7\4\1\263\2\0\1\4\1\270\2\4"+ - "\1\271\10\0\1\4\1\0\3\4\1\263\10\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\5\4\1\105"+ - "\6\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\2\4\1\272\11\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\2\4\1\273\11\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\47\1\4\1\0\10\4"+ - "\2\0\1\4\1\47\2\4\1\274\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\4\4\2\275\2\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\3\4\1\276"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\1\4\1\277\1\0\1\300\7\4"+ - "\2\0\5\4\10\0\1\4\1\0\1\4\1\277\12\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\70\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\1\4\2\120\5\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\1\301\7\4\2\0\5\4"+ - "\10\0\1\4\1\0\5\4\1\302\6\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\1\303\1\4\1\0"+ - "\7\4\1\304\2\0\1\4\1\303\3\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\305"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\1\4\2\306\5\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\2\4\1\307\11\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\2\4\1\310\11\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\311\4\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\114\1\4\1\0\10\4\2\0\1\4\1\114"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\4\1\312\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\1\4\1\312\12\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\1\4\2\313\5\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\4\1\314\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\1\4\1\314\12\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\315"+ - "\5\4\2\0\5\4\10\0\1\4\1\0\3\4\1\316"+ - "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\4\4\1\317\7\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\1\320\1\4\1\0\10\4\2\0\1\4"+ - "\1\320\3\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\1\4"+ - "\2\321\5\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\4"+ - "\1\322\1\0\10\4\2\0\1\323\4\4\10\0\1\4"+ - "\1\0\1\4\1\322\12\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\4\2\324\4\4"+ - "\1\304\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\2\4\1\325"+ - "\11\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\1\114\11\4\1\120\1\4\1\0\1\4\1\114\1\3"+ - "\4\4\1\0\2\3\4\0\1\326\1\4\1\0\10\4"+ - "\2\0\1\4\1\326\3\4\10\0\1\4\1\0\11\4"+ - "\1\327\2\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\1\330\4\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\7\4\1\331\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\7\4\1\332\2\0"+ - "\1\333\4\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\10\4\1\334\3\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\335\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\3\4\1\336\10\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\1\337\1\4\1\0\10\4\2\0\1\250"+ - "\1\337\3\4\10\0\1\4\1\0\6\4\1\340\5\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\341"+ - "\1\4\1\0\10\4\2\0\1\4\1\341\3\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\3\4\1\342\10\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\1\343\4\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4"+ - "\2\344\2\4\2\0\1\345\4\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\4\4\2\346\2\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\1\4\1\347\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\1\4\1\347\12\4\1\0\2\4"+ - "\1\3\3\4\1\350\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\4\4\1\351"+ - "\7\4\1\0\2\4\10\50\1\0\20\50\1\352\1\50"+ - "\1\0\31\50\24\0\1\353\112\0\1\354\20\0\10\50"+ - "\1\0\11\50\1\355\10\50\1\0\31\50\2\0\10\50"+ - "\1\0\22\50\1\0\12\50\1\356\16\50\2\0\10\50"+ - "\1\0\22\50\1\0\14\50\1\357\14\50\1\0\1\360"+ - "\50\0\1\360\15\0\1\360\31\0\1\361\35\0\3\60"+ - "\1\212\1\60\1\0\2\60\4\0\3\214\1\215\1\60"+ - "\1\214\2\60\1\214\2\60\2\0\3\60\1\214\1\60"+ - "\10\0\1\60\1\0\14\60\1\0\2\60\3\0\1\212"+ - "\63\0\5\60\1\0\2\60\4\0\2\60\1\0\1\60"+ - "\5\214\2\60\2\0\5\60\10\0\1\60\1\0\14\60"+ - "\1\0\2\60\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\4\4\1\147\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\3\4\1\114\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\1\232\4\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\3\4\1\114\4\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\2\4\1\225\11\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\6\4\1\226\1\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\1\226\1\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\4\4\2\362\2\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\7\4\1\114\4\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\3\4\1\363\10\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\5\4"+ - "\1\220\6\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\364\1\4\1\0\10\4\2\0\1\4\1\364"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\232\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\114"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4"+ - "\2\120\2\4\2\0\1\365\4\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\10\4\1\114\3\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\3\4\1\221\10\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\300"+ - "\5\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\1\366\7\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\1\367\7\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\1\4\1\370\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\1\4\1\370\12\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\3\4\1\371\10\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4"+ - "\2\372\2\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\373\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\1\4\2\374\1\375\4\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\7\4\1\376\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\4\4\1\377\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\364\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\4\4\1\u0100"+ - "\7\4\1\0\2\4\3\60\2\252\1\0\2\60\4\0"+ - "\1\u0101\1\252\1\u0101\1\u0102\1\60\1\u0101\2\60\1\u0101"+ - "\1\60\1\252\2\0\2\60\3\252\10\0\1\60\1\0"+ - "\1\60\1\252\2\60\1\252\7\60\1\0\2\60\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\1\u0103\4\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\2\4\1\262\11\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\3\4"+ - "\1\266\10\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\3\4\1\120\10\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\7\4\1\u0104\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\u0105"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4"+ - "\1\u0106\4\4\2\0\5\4\10\0\1\4\1\0\3\4"+ - "\1\u0107\10\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\7\4\1\364\4\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\114\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\7\4\1\u0100\4\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\1\u0108\1\u0109\1\0"+ - "\10\4\2\0\1\4\1\u0108\3\4\10\0\1\4\1\0"+ - "\1\4\1\u0109\12\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\1\u010a\1\4\1\0\10\4\2\0\1\4"+ - "\1\u010a\3\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\u010b\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\1\u010c\2\254\5\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\1\u010d\4\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\3\4\1\u010e\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\1\4\1\u010f\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\1\4\1\u010f\12\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4"+ - "\2\232\2\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\277\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\6\4\1\114\1\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\1\114\1\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\4\2\u0110\5\4"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\11\4\1\114\2\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\u0111\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\3\4\1\u0112\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\3\4\1\u0113\10\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\2\4\1\114\11\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\u0114\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\7\4\1\161\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\3\4\1\u0115\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\4\4\1\u0116\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\4\4\2\301\2\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\1\u0117\1\4\1\0\6\4\1\u0118"+ - "\1\4\2\0\1\4\1\u0117\3\4\10\0\1\4\1\0"+ - "\14\4\1\0\1\u0118\1\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\4\4\1\362\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\4\4\1\u0119"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\6\4\1\u011a\5\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\1\u011b\4\4\10\0\1\u011c\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\3\4\1\u010d\4\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\1\u011d\3\4\1\u011e\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\1\u011f\4\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\7\4\1\u0120\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\6\4\1\u0121"+ - "\1\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\1\u0121\1\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\232\4\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\4\1\114\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\1\4\1\114\12\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\u0122\1\4\1\0\10\4"+ - "\2\0\1\4\1\u0122\3\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\u0123\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\1\4\2\u0124\3\4\1\u0125\1\4\2\0"+ - "\5\4\10\0\1\4\1\0\3\4\1\u0126\10\4\1\0"+ - "\1\u0125\1\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\274\4\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\u0127\1\4\1\0\10\4\2\0\1\4\1\u0127"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\u0128"+ - "\5\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\7\4\1\u0129\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\u012a"+ - "\1\4\1\0\10\4\2\0\1\4\1\u012a\3\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\3\4\1\u012b\4\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\u0110"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\4\4\1\221\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\1\4\2\u012c\5\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\4\4\1\340\7\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\1\74\4\4"+ - "\10\0\1\4\1\0\12\4\1\u012d\1\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\1\122"+ - "\7\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\3\4\1\114"+ - "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\1\u012e\4\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\1\u012f\7\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\3\4\1\u0130\4\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\4\4\1\274\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\10\50\1\0\22\50\1\0\12\50\1\u0131\16\50\30\0"+ - "\1\354\107\0\1\u0132\17\0\10\50\1\0\15\50\1\356"+ - "\4\50\1\0\31\50\2\0\10\50\1\0\22\50\1\0"+ - "\13\50\1\u0133\15\50\2\0\10\50\1\0\17\50\1\u0134"+ - "\2\50\1\0\31\50\32\0\1\u0135\104\0\1\u0136\20\0"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4"+ - "\2\114\2\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\120"+ - "\1\4\1\0\10\4\2\0\1\4\1\120\3\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\1\4\2\u0137\5\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\11\4\1\232\2\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\1\u0138\1\4"+ - "\1\0\10\4\2\0\1\4\1\u0138\3\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\3\4\1\u0139\10\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\6\4\1\u013a\5\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\u013b\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\3\4\1\u013c\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\11\4"+ - "\1\u013d\2\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\4\4\1\u013e\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\7\4\1\u011a\4\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\1\u013f\7\4"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4"+ - "\1\250\4\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\5\60\1\0\2\60\4\0\2\60\1\0"+ - "\1\60\5\u0101\2\60\2\0\5\60\10\0\1\60\1\0"+ - "\14\60\1\0\2\60\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\7\4\1\u0140\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\u0141\1\4\1\0\10\4\2\0\1\4\1\u0141"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\u0142\1\4\1\0\10\4"+ - "\2\0\1\4\1\u0142\3\4\10\0\1\4\1\0\7\4"+ - "\1\u0143\4\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\7\4\1\u0144\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\1\u0145\1\4\1\0\10\4\2\0\1\4"+ - "\1\u0145\3\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\325\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\3\4\1\u0146"+ - "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\1\364\4\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\3\4\1\120\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\3\4\1\u0147"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\4\2\217\5\4"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4"+ - "\1\u0148\4\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\u0149\4\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\2\4\2\114\1\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\4\4"+ - "\1\u014a\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\1\114\13\4\1\0\1\4"+ - "\1\114\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\3\4\1\u0110"+ - "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\1\u014b\4\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\3\4\1\u014c\4\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\7\4\1\u014d\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\4\4\1\u014e\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4"+ - "\1\u014f\4\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\4\4\1\220\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\7\4\1\u0150\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\7\4\1\u0151\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\1\4\2\340\5\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\11\4\1\u0152\2\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\7\4\1\370\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4"+ - "\1\u0125\11\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\7\4\1\u0153\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\3\4\1\u0154\10\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\4\4\2\u0155"+ - "\2\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\2\4\1\u0156"+ - "\11\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\1\4\2\222\5\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0"+ - "\1\4\1\0\6\4\1\u0157\5\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\4\4\1\u0158\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\3\4\1\u0159\10\4"+ - "\1\0\2\4\1\3\3\4\1\u010a\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\1\u015a\1\4\1\0\3\4\1\u015b\4\4\2\0\1\4"+ - "\1\u015a\3\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\u015c\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\4\4\1\70\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\11\4"+ - "\1\u015d\2\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\1\4\2\u015e\5\4\2\0\5\4"+ - "\10\0\1\4\1\0\3\4\1\u015f\10\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4"+ - "\1\u0160\4\4\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\4\4\1\224\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\10\50\1\0\12\50\2\356\6\50"+ - "\1\0\13\50\1\u0133\15\50\46\0\1\u0161\22\0\10\50"+ - "\1\0\22\50\1\0\10\50\1\u0162\20\50\2\0\1\50"+ - "\4\u0134\1\50\1\u0134\1\50\1\0\2\50\20\u0134\1\u0135"+ - "\6\u0134\2\50\1\u0134\1\50\16\u0134\1\50\2\u0135\1\0"+ - "\1\u0135\1\u0163\2\u0135\1\0\1\u0163\4\0\1\u0163\2\u0135"+ - "\1\u0163\10\u0135\2\u0163\5\u0135\4\u0163\2\0\1\u0135\1\0"+ - "\1\u0135\1\u0163\14\u0135\1\0\2\u0135\23\0\2\354\22\0"+ - "\1\u0132\17\0\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4"+ - "\1\u0164\11\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\2\4\1\u0165\11\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\2\4\1\u014c\11\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\u0166\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\7\4\1\u0167\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\1\u0168\4\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\4\4\1\u0169\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\232\1\4\1\0\10\4\2\0\1\4\1\232"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\3\4\1\120"+ - "\4\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\7\4\1\u0143"+ - "\4\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\1\4\2\u0145\5\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\2\4\2\u016a"+ - "\1\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\230"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\11\4\1\u016b\2\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\1\362\4\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\1\362\13\4\1\0\1\4\1\362\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\1\u016c\4\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\3\4\1\u016d\10\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\362\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\4\4\2\120\2\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\1\4\2\u016e\5\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\3\4\1\u016f\4\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\4\4\2\u0170"+ - "\2\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\2\4\1\u0171"+ - "\11\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\4\4\2\345\2\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\3\4\1\u0172"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\1\u0173\1\4\1\0\10\4\2\0"+ - "\1\4\1\u0173\3\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\4\4\1\u0174\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\6\4"+ - "\1\u016b\5\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\1\u0125\13\4\1\0\1\4\1\u0125\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\u016a\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\6\4\1\u0175\1\4"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\1\u0175"+ - "\1\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\7\4\1\u0176\2\0\5\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\1\47\4\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\2\4\1\u0177\11\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\1\4\2\u0178\5\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\3\4\1\u0179\10\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\4\4\1\u017a\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\u017b\4\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4"+ - "\1\0\2\4\1\u017c\11\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\6\4\1\u017d\5\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4"+ - "\1\u017e\2\0\5\4\10\0\1\4\1\0\14\4\1\0"+ - "\2\4\44\0\1\u0135\22\0\10\50\1\0\22\50\1\0"+ - "\10\50\1\u0134\20\50\2\0\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\1\232\7\4\2\0\5\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\6\4\1\u0118\1\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\1\u0118\1\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\6\4\1\136\5\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\364\4\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\10\4\2\0\4\4\1\u017f\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\7\4\1\u0180\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\u013e\7\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\3\4\1\u0181\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\3\4\1\304\10\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\5\4"+ - "\1\114\6\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\4\4\2\u0114\2\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\1\4\1\u0182\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\1\4\1\u0182\12\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\1\u0108\4\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\1\u016f\4\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\1\u0183\1\4\1\0\10\4\2\0\1\4\1\u0183\3\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\7\4\1\u0184\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\u0185\1\4\1\0\10\4"+ - "\2\0\1\4\1\u0185\3\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\4"+ - "\1\u0186\1\0\10\4\2\0\5\4\10\0\1\4\1\0"+ - "\1\4\1\u0186\12\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\4\4\1\u0187"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\2\4\1\364\11\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\2\4\1\u0188\11\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\6\4\1\u0189\1\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\1\u0189\1\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\7\4\1\u018a\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\u018b\2\4\1\3\3\4"+ - "\1\232\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\2\4\1\u0145\11\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\10\4\2\0\5\4\10\0\1\4\1\0\13\4\1\114"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\3\4\1\u018c\4\4\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\u018d\1\4\1\0\10\4\2\0\1\4\1\u018d"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\u018e\1\4\1\0\10\4"+ - "\2\0\1\4\1\u018e\3\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\u018f"+ - "\1\4\1\0\10\4\2\0\1\4\1\u018f\3\4\10\0"+ - "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\7\4\1\362\2\0\4\4"+ - "\1\u0190\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\4\1\362\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\1\4\1\362\12\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\4\4\1\u0191\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\7\4\1\u0192\2\0\5\4\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\u0193\1\4\1\0\10\4\2\0\1\4\1\u0193"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\23\0"+ - "\2\u0194\42\0\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\7\4\1\147\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0"+ - "\2\4\1\0\10\4\2\0\4\4\1\u016f\10\0\1\4"+ - "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\2\4\1\0\1\4\2\u0195\5\4\2\0\5\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\1\4\2\u0196\5\4"+ - "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4"+ - "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\4\4\1\324\7\4"+ - "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4"+ - "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\11\4"+ - "\1\327\2\4\1\0\2\4\1\3\4\4\1\0\2\3"+ - "\4\0\1\137\1\4\1\0\10\4\2\0\1\4\1\137"+ - "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\u0197\1\4\1\0\10\4"+ - "\2\0\1\4\1\u0197\3\4\10\0\1\4\1\0\14\4"+ - "\1\0\2\4\31\0\1\u0198\35\0\1\3\4\4\1\0"+ - "\2\3\4\0\2\4\1\0\10\4\2\0\1\u0199\4\4"+ - "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4"+ - "\1\0\2\3\4\0\1\4\1\u0199\1\0\10\4\2\0"+ - "\5\4\10\0\1\4\1\0\1\4\1\u0199\12\4\1\0"+ - "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0"+ - "\1\4\2\u019a\5\4\2\0\5\4\10\0\1\4\1\0"+ - "\14\4\1\0\2\4\35\0\1\u019b\31\0\1\3\4\4"+ - "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\4\4"+ - "\1\u0190\10\0\1\4\1\0\14\4\1\0\2\4\1\3"+ - "\4\4\1\0\2\3\4\0\1\4\1\232\1\0\10\4"+ - "\2\0\5\4\10\0\1\4\1\0\1\4\1\232\12\4"+ - "\1\0\2\4\31\0\1\u019c\63\0\1\u019d\121\0\1\u019e"+ - "\33\0\1\u019f\112\0\1\u01a0\45\0\1\u01a1\35\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[22000]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\4\1\1\11\1\1\1\11\2\1\1\11\16\1"+ - "\2\11\14\1\1\11\26\1\1\11\6\1\1\0\73\1"+ - "\2\0\3\1\2\0\1\1\1\0\137\1\2\0\3\1"+ - "\2\0\100\1\1\0\3\1\1\0\52\1\1\0\1\1"+ - "\1\0\47\1\1\0\10\1\1\0\3\1\1\0\2\1"+ - "\6\0\1\11"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[417]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int EOL_COMMENT = 1; + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\11\1\10\1\0\1\11\1\5\22\0\1\64\1\37\1\12" + + "\1\6\1\1\1\37\1\16\1\13\2\36\1\41\1\27\1\37\1\27" + "\1\30\1\44\1\3\11\3\1\47\1\37\1\42\1\40\1\43\1\37" + + "\1\6\1\35\1\54\1\4\1\15\1\26\1\34\1\57\1\25\1\21" + "\1\60\1\63\1\22\1\61\1\52\1\53\1\46\1\1\1\14\1\24" + + "\1\31\1\17\1\56\1\50\1\62\1\55\1\1\1\37\1\7\1\37" + "\1\45\1\2\1\0\1\35\1\54\1\4\1\51\1\26\1\33\1\57" + + "\1\65\1\20\1\60\1\63\1\22\1\61\1\52\1\53\1\46\1\1" + "\1\32\1\23\1\31\1\17\1\56\1\66\1\62\1\55\1\1\3\5" + "\1\37\uff81\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 = "\2\0\1\1\1\2\1\3\2\2\1\4\1\5\1\6" + "\1\7\1\10\2\2\1\4\6\2\1\4\4\2\1\11" + + "\1\4\13\2\1\12\1\13\6\12\1\14\1\3\2\14" + "\1\15\13\2\1\16\5\2\1\17\1\0\3\2\3\17" + "\47\2\1\17\14\2\1\12\2\0\3\12\2\0\1\15" + + "\1\0\1\15\1\14\24\2\1\17\7\2\1\20\24\2" + "\1\17\2\2\1\17\11\2\1\17\13\2\1\17\12\2" + "\1\17\3\2\1\17\2\2\1\12\2\0\3\12\2\0" + + "\2\2\1\21\14\2\1\20\1\14\16\2\1\22\17\2" + "\1\17\17\2\1\12\1\0\2\12\1\23\1\0\52\2" + "\1\0\1\12\1\0\1\2\1\24\21\2\1\17\6\2" + + "\1\17\14\2\1\0\10\2\1\0\3\2\1\0\2\2" + "\6\0\1\17"; + + private static int[] zzUnpackAction() { + int[] result = new int[417]; + 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\67\0\156\0\245\0\334\0\u0113\0\u014a\0\u0181" + + "\0\u014a\0\u01b8\0\u01ef\0\u014a\0\u0226\0\u025d\0\u0294\0\u02cb" + + "\0\u0302\0\u0339\0\u0370\0\u03a7\0\u03de\0\u0415\0\u044c\0\u0483" + + "\0\u04ba\0\u04f1\0\u014a\0\u014a\0\u0528\0\u055f\0\u0596\0\u05cd" + + "\0\u0604\0\u063b\0\u0672\0\u06a9\0\u06e0\0\u0717\0\u074e\0\u0785" + + "\0\u014a\0\u07bc\0\u07f3\0\u082a\0\u0861\0\u0898\0\u08cf\0\u0906" + + "\0\u0906\0\u093d\0\u0974\0\u09ab\0\u09e2\0\u0a19\0\u0a50\0\u0a87" + + "\0\u0abe\0\u0af5\0\u0b2c\0\u0b63\0\u0b9a\0\u0bd1\0\u0c08\0\u014a" + + "\0\u0c3f\0\u0c76\0\u0cad\0\u0ce4\0\u0d1b\0\u0d52\0\u0d89\0\u0dc0" + + "\0\u0df7\0\u0e2e\0\u0e65\0\245\0\u0e9c\0\u0ed3\0\u0f0a\0\u0f41" + + "\0\u0f78\0\u0faf\0\u0fe6\0\u101d\0\u1054\0\u108b\0\u10c2\0\u10f9" + + "\0\u1130\0\u1167\0\u119e\0\u11d5\0\u120c\0\u1243\0\u127a\0\u12b1" + + "\0\u12e8\0\u131f\0\u1356\0\u138d\0\u13c4\0\u13fb\0\u1432\0\u1469" + + "\0\u14a0\0\u14d7\0\u150e\0\u1545\0\u157c\0\u15b3\0\u15ea\0\u1621" + + "\0\u1658\0\u168f\0\u16c6\0\u16fd\0\u1734\0\u176b\0\u17a2\0\u17d9" + + "\0\u1810\0\u1847\0\u187e\0\u18b5\0\u18ec\0\u1923\0\u195a\0\u1991" + + "\0\u19c8\0\u19ff\0\u1a36\0\u1a6d\0\u1aa4\0\u1adb\0\u1b12\0\u1b49" + + "\0\u1b80\0\u1bb7\0\u1bee\0\u0906\0\u1c25\0\u1c5c\0\u1c93\0\u1cca" + + "\0\u1d01\0\u1d38\0\u1d6f\0\u1da6\0\u1ddd\0\u1e14\0\u1e4b\0\u1e82" + + "\0\u1eb9\0\u1ef0\0\u1f27\0\u1f5e\0\u1f95\0\u1fcc\0\u2003\0\u203a" + + "\0\u2071\0\u20a8\0\u20df\0\u2116\0\u214d\0\u2184\0\u21bb\0\u21f2" + + "\0\u2229\0\u2260\0\u2297\0\u22ce\0\u2305\0\u233c\0\u2373\0\u23aa" + + "\0\u23e1\0\u2418\0\u244f\0\u2486\0\u24bd\0\u24f4\0\u252b\0\u2562" + + "\0\u2599\0\u25d0\0\u2607\0\u263e\0\u2675\0\u26ac\0\u26e3\0\u271a" + + "\0\u2751\0\u2788\0\u27bf\0\u27f6\0\u282d\0\u2864\0\u289b\0\u28d2" + + "\0\u2909\0\u2940\0\u2977\0\u29ae\0\u29e5\0\u2a1c\0\u2a53\0\u2a8a" + + "\0\u2ac1\0\u2af8\0\u2b2f\0\u2b66\0\u2b9d\0\u2bd4\0\u2c0b\0\u2c42" + + "\0\u2c79\0\u2cb0\0\u2ce7\0\u2d1e\0\u2d55\0\u2d8c\0\u2dc3\0\u2dfa" + + "\0\u2e31\0\u2e68\0\u2e9f\0\u2ed6\0\u2f0d\0\u2f44\0\u2f7b\0\u2fb2" + + "\0\u2fe9\0\u3020\0\u3057\0\u308e\0\u30c5\0\u30fc\0\u3133\0\u316a" + + "\0\u31a1\0\u31d8\0\u320f\0\245\0\u3246\0\u327d\0\u32b4\0\u32eb" + + "\0\u3322\0\u3359\0\u3390\0\u33c7\0\u33fe\0\u3435\0\u346c\0\u34a3" + + "\0\u0906\0\u34da\0\u3511\0\u3548\0\u357f\0\u35b6\0\u35ed\0\u3624" + + "\0\u365b\0\u3692\0\u36c9\0\u3700\0\u3737\0\u376e\0\u37a5\0\u37dc" + + "\0\245\0\u3813\0\u384a\0\u3881\0\u38b8\0\u38ef\0\u3926\0\u395d" + + "\0\u3994\0\u39cb\0\u3a02\0\u3a39\0\u3a70\0\u3aa7\0\u3ade\0\u3b15" + + "\0\u3b4c\0\u3b83\0\u3bba\0\u3bf1\0\u3c28\0\u3c5f\0\u3c96\0\u3ccd" + + "\0\u3d04\0\u3d3b\0\u3d72\0\u3da9\0\u3de0\0\u3e17\0\u3e4e\0\u3e85" + + "\0\u3ebc\0\u3ef3\0\u3f2a\0\u3f61\0\u3f98\0\u3fcf\0\u4006\0\u403d" + + "\0\u4074\0\u40ab\0\u40e2\0\u4119\0\u4150\0\u4187\0\u41be\0\u41f5" + + "\0\u422c\0\u4263\0\u429a\0\u42d1\0\u4308\0\u433f\0\u4376\0\u43ad" + + "\0\u43e4\0\u441b\0\u4452\0\u4489\0\u44c0\0\u44f7\0\u452e\0\u4565" + + "\0\u459c\0\u45d3\0\u460a\0\u4641\0\u4678\0\u46af\0\u46e6\0\u471d" + + "\0\u4754\0\u478b\0\u47c2\0\u47f9\0\u4830\0\u4867\0\u489e\0\u48d5" + + "\0\u490c\0\u4943\0\u3f98\0\u497a\0\245\0\u49b1\0\u49e8\0\u2788" + + "\0\u4a1f\0\u4a56\0\u4a8d\0\u4ac4\0\u4afb\0\u4b32\0\u4b69\0\u4ba0" + + "\0\u4bd7\0\u4c0e\0\u4c45\0\u4c7c\0\u4cb3\0\u4cea\0\u2dfa\0\u4d21" + + "\0\u4d58\0\u4d8f\0\u4dc6\0\u4dfd\0\u4e34\0\u4e6b\0\u4ea2\0\u4ed9" + + "\0\u4f10\0\u4f47\0\u4f7e\0\u4fb5\0\u4fec\0\u5023\0\u505a\0\u5091" + + "\0\u50c8\0\u50ff\0\u5136\0\u516d\0\u51a4\0\u51db\0\u5212\0\u5249" + + "\0\u5280\0\u52b7\0\u52ee\0\u5325\0\u535c\0\u5393\0\u53ca\0\u5401" + + "\0\u5438\0\u546f\0\u54a6\0\u54dd\0\u5514\0\u554b\0\u5582\0\u55b9" + "\0\u014a"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[417]; + 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 = "\1\3\2\4\1\5\1\6\1\7\1\3\1\10\1\11" + "\1\12\1\13\1\14\1\15\1\16\1\17\1\20\2\21" + + "\1\22\2\23\1\24\1\25\1\26\1\27\1\30\1\15" + "\2\31\1\32\1\33\1\7\1\34\1\26\1\35\1\36" + + "\2\26\1\37\1\7\1\40\1\16\1\41\1\42\1\43" + "\1\4\1\44\1\45\1\4\1\46\1\47\1\4\1\12" + + "\1\24\1\40\10\50\1\51\14\50\1\52\5\50\1\53" + "\1\54\13\50\1\55\14\50\1\56\1\57\5\3\1\0" + + "\2\3\4\0\2\3\1\0\10\3\2\0\5\3\10\0" + "\1\3\1\0\14\3\1\0\3\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + + "\1\0\14\4\1\0\2\4\3\60\1\5\1\60\1\0" + "\2\60\4\0\3\61\1\62\1\60\1\61\2\60\1\61" + "\1\60\1\63\1\0\1\64\3\60\1\61\1\60\10\0" + + "\1\60\1\0\14\60\1\0\2\60\1\3\3\4\1\65" + "\1\0\2\3\4\0\1\4\1\66\1\0\1\67\2\70" + "\1\71\2\72\1\73\1\4\2\0\1\74\3\4\1\75" + + "\10\0\1\4\1\0\1\4\1\66\1\4\1\76\1\77" + "\7\4\1\0\1\73\1\4\67\0\5\3\1\0\2\3" + "\4\0\2\3\1\0\10\3\2\0\5\3\2\0\1\34" + + "\5\0\1\3\1\0\14\3\1\0\2\3\11\0\1\12" + "\52\0\1\12\2\0\12\13\1\100\54\13\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\7\4\1\101\2\0" + + "\4\4\1\102\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\1\4" + "\2\103\4\4\1\104\2\0\4\4\1\105\10\0\1\4" + + "\1\0\3\4\1\106\10\4\1\0\2\4\25\0\1\107" + "\12\0\1\34\24\0\1\107\1\0\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\1\4\2\110\1\111\2\112" + + "\2\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\4\4\2\113\2\4\2\0\2\4\2\114\1\4\10\0" + + "\1\4\1\0\2\4\1\115\6\4\1\116\2\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\1\4\2\117\4\4\1\120\2\0\5\4\10\0\1\4" + + "\1\0\3\4\1\121\10\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\1\122\2\123\3\4" + "\1\124\1\125\2\0\1\126\4\4\10\0\1\4\1\0" + + "\4\4\1\127\1\130\6\4\1\0\1\124\1\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\4\4\1\131\10\0\1\4\1\0\14\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\1\132\1\4\1\0" + "\3\4\1\133\4\4\2\0\1\4\1\132\2\4\1\134" + "\10\0\1\4\1\0\2\4\1\135\3\4\1\136\3\4" + + "\1\137\1\4\1\0\2\4\40\0\1\34\31\0\1\64" + "\63\0\1\3\4\4\1\0\2\3\4\0\1\140\1\4" + "\1\0\6\4\1\141\1\4\2\0\1\4\1\140\3\4" + + "\10\0\1\4\1\0\3\4\1\114\1\4\1\142\6\4" + "\1\0\1\141\1\4\1\3\4\4\1\0\2\3\4\0" + "\1\143\1\4\1\0\1\144\2\145\5\4\2\0\1\4" + + "\1\143\2\4\1\146\10\0\1\4\1\0\3\4\1\147" + "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\1\4\1\150\1\0\3\4\1\151\2\114\2\4\2\0" + + "\5\4\10\0\1\4\1\0\1\4\1\150\1\152\11\4" + "\1\0\2\4\42\0\1\26\67\0\1\26\23\0\1\3" + "\4\4\1\0\2\3\4\0\1\153\1\4\1\0\1\154" + + "\7\4\2\0\1\4\1\153\2\4\1\155\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\156\1\4\1\0\1\4\2\157\3\4\1\160" + + "\1\161\2\0\1\4\1\156\3\4\10\0\1\4\1\0" + "\14\4\1\0\1\160\1\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\7\4\1\162\2\0\4\4\1\163" + + "\10\0\1\4\1\0\3\4\1\164\10\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\1\165\1\4\1\0" + "\1\120\7\4\2\0\1\4\1\165\2\114\1\4\10\0" + + "\1\166\1\0\2\4\1\114\1\4\1\167\1\4\1\170" + "\5\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + + "\3\4\1\171\1\4\1\172\6\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\4\4\1\173\10\0\1\4\1\0\14\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4" + "\1\174\3\4\1\175\2\0\5\4\10\0\1\4\1\0" + "\3\4\1\176\10\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\1\177\6\4\1\114\2\0" + "\5\4\10\0\1\4\1\0\3\4\1\200\1\4\1\201" + "\6\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\3\4\1\147\10\4\1\0\2\4\10\50\1\0\22\50" + "\1\0\31\50\2\0\10\50\1\0\20\50\1\202\1\50" + + "\1\0\31\50\22\0\2\203\7\0\1\204\35\0\10\50" + "\1\0\7\50\2\205\7\50\1\206\1\50\1\0\31\50" + + "\2\0\10\50\1\0\22\50\1\0\14\50\1\207\14\50" + "\1\0\1\210\31\0\1\211\105\0\1\210\15\0\1\210" + + "\5\60\1\0\2\60\4\0\2\60\1\0\10\60\2\0" + "\5\60\10\0\1\60\1\0\14\60\1\0\7\60\1\0" + "\2\60\4\0\2\60\1\0\1\60\5\61\2\60\2\0" + + "\5\60\10\0\1\60\1\0\14\60\1\0\5\60\1\212" + "\1\60\1\0\2\60\4\0\2\60\1\0\10\60\1\213" + + "\1\0\5\60\10\0\1\60\1\0\14\60\1\0\5\60" + "\1\64\1\60\1\0\2\60\4\0\3\214\1\215\1\60" + + "\1\214\2\60\1\214\1\60\1\63\2\0\3\60\1\214" + "\1\60\10\0\1\60\1\0\14\60\1\0\2\60\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\6\4\1\216" + + "\1\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\1\216\1\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\7\4\1\217\2\0\4\4\1\220\10\0\1\4" + + "\1\0\4\4\1\221\7\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\1\4\2\70\1\222" + "\2\223\2\4\2\0\5\4\10\0\1\4\1\0\14\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4" + "\1\120\11\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\4\4\1\224\10\0" + "\1\4\1\0\2\4\1\225\11\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\6\4\1\226" + + "\1\4\2\0\1\147\4\4\10\0\1\4\1\0\2\4" + "\1\225\1\4\1\227\7\4\1\0\1\226\1\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + + "\4\4\1\230\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\5\4\1\231\6\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\3\4\1\221\2\232\2\4\2\0\1\134\4\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\2\4\1\233\1\4\1\234\7\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\3\4" + "\1\235\1\4\1\220\6\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\1\4\1\236\1\0\4\4\2\237" + + "\2\4\2\0\1\240\3\4\1\241\10\0\1\4\1\0" + "\1\4\1\236\7\4\1\242\2\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\243" + + "\5\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\1\244\1\4" + "\1\0\10\4\2\0\1\4\1\244\3\4\10\0\1\4" + + "\1\0\11\4\1\114\2\4\1\0\2\4\1\3\3\4" + "\1\245\1\0\2\3\4\0\2\4\1\0\3\4\1\246" + "\4\4\2\0\2\4\2\247\1\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\1\250\4\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\1\251\7\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\3\0\2\252\10\0" + "\1\252\10\0\1\252\4\0\3\252\13\0\1\252\2\0" + + "\1\252\12\0\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4" + "\1\253\11\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\3\4\1\254\10\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\1\4\2\222\3\4" + + "\1\255\1\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\1\255\1\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + + "\2\4\1\256\11\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\6\4\1\257\1\4\2\0" + "\1\260\4\4\10\0\1\4\1\0\14\4\1\0\1\257" + + "\1\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\261\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\10\4\2\0\5\4\10\0\1\4\1\0\4\4\1\114" + "\6\4\1\232\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\1\114\4\4\10\0" + + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + "\1\4\1\0\2\4\1\262\1\263\10\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\4\4\1\114\7\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4" + "\1\264\11\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\4\4\1\265\10\0" + + "\1\4\1\0\3\4\1\266\10\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\3\4\1\267" + "\4\4\2\0\1\114\4\4\10\0\1\4\1\0\14\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\270" + "\1\4\1\0\7\4\1\263\2\0\1\4\1\270\2\4" + "\1\271\10\0\1\4\1\0\3\4\1\263\10\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\5\4\1\105" + "\6\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\2\4\1\272\11\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + + "\1\4\1\0\2\4\1\273\11\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\1\47\1\4\1\0\10\4" + "\2\0\1\4\1\47\2\4\1\274\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\4\4\2\275\2\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\3\4\1\276" + + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\1\4\1\277\1\0\1\300\7\4" + + "\2\0\5\4\10\0\1\4\1\0\1\4\1\277\12\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\7\4\1\70\2\0\5\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\1\4\2\120\5\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\1\301\7\4\2\0\5\4" + "\10\0\1\4\1\0\5\4\1\302\6\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\1\303\1\4\1\0" + + "\7\4\1\304\2\0\1\4\1\303\3\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\305" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\1\4\2\306\5\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\2\4\1\307\11\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\2\4\1\310\11\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\3\4\1\311\4\4\2\0\5\4\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\114\1\4\1\0\10\4\2\0\1\4\1\114" + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\1\4\1\312\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\1\4\1\312\12\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\1\4\2\313\5\4\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\4\1\314\1\0\10\4\2\0\5\4\10\0" + + "\1\4\1\0\1\4\1\314\12\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\315" + "\5\4\2\0\5\4\10\0\1\4\1\0\3\4\1\316" + + "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\4\4\1\317\7\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\1\320\1\4\1\0\10\4\2\0\1\4" + "\1\320\3\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\1\4" + + "\2\321\5\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\4" + "\1\322\1\0\10\4\2\0\1\323\4\4\10\0\1\4" + + "\1\0\1\4\1\322\12\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\1\4\2\324\4\4" + "\1\304\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\2\4\1\325" + "\11\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\1\114\11\4\1\120\1\4\1\0\1\4\1\114\1\3" + "\4\4\1\0\2\3\4\0\1\326\1\4\1\0\10\4" + + "\2\0\1\4\1\326\3\4\10\0\1\4\1\0\11\4" + "\1\327\2\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\1\330\4\4\10\0" + + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\7\4\1\331\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\7\4\1\332\2\0" + "\1\333\4\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\10\4\1\334\3\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\7\4\1\335\2\0\5\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\3\4\1\336\10\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\1\337\1\4\1\0\10\4\2\0\1\250" + "\1\337\3\4\10\0\1\4\1\0\6\4\1\340\5\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\341" + + "\1\4\1\0\10\4\2\0\1\4\1\341\3\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + + "\1\4\1\0\3\4\1\342\10\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\1\343\4\4\10\0\1\4\1\0\14\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4" + "\2\344\2\4\2\0\1\345\4\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\4\4\2\346\2\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\1\4\1\347\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\1\4\1\347\12\4\1\0\2\4" + "\1\3\3\4\1\350\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\4\4\1\351" + + "\7\4\1\0\2\4\10\50\1\0\20\50\1\352\1\50" + "\1\0\31\50\24\0\1\353\112\0\1\354\20\0\10\50" + + "\1\0\11\50\1\355\10\50\1\0\31\50\2\0\10\50" + "\1\0\22\50\1\0\12\50\1\356\16\50\2\0\10\50" + + "\1\0\22\50\1\0\14\50\1\357\14\50\1\0\1\360" + "\50\0\1\360\15\0\1\360\31\0\1\361\35\0\3\60" + + "\1\212\1\60\1\0\2\60\4\0\3\214\1\215\1\60" + "\1\214\2\60\1\214\2\60\2\0\3\60\1\214\1\60" + + "\10\0\1\60\1\0\14\60\1\0\2\60\3\0\1\212" + "\63\0\5\60\1\0\2\60\4\0\2\60\1\0\1\60" + + "\5\214\2\60\2\0\5\60\10\0\1\60\1\0\14\60" + "\1\0\2\60\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\4\4\1\147\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\3\4\1\114\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\1\232\4\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\3\4\1\114\4\4\2\0" + + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\5\4\10\0\1\4\1\0\2\4\1\225\11\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\6\4\1\226\1\4\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\1\226\1\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\4\4\2\362\2\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\7\4\1\114\4\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\3\4\1\363\10\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\5\4" + "\1\220\6\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\1\364\1\4\1\0\10\4\2\0\1\4\1\364" + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + + "\5\4\10\0\1\232\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\114" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4" + "\2\120\2\4\2\0\1\365\4\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\10\4\1\114\3\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + + "\1\4\1\0\3\4\1\221\10\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\300" + "\5\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\1\366\7\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\1\367\7\4\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\1\4\1\370\1\0\10\4\2\0\5\4\10\0\1\4" + + "\1\0\1\4\1\370\12\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\3\4\1\371\10\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4" + "\2\372\2\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\7\4\1\373\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\1\4\2\374\1\375\4\4\2\0\5\4" + + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\7\4\1\376\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\4\4\1\377\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + + "\1\364\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\4\4\1\u0100" + + "\7\4\1\0\2\4\3\60\2\252\1\0\2\60\4\0" + "\1\u0101\1\252\1\u0101\1\u0102\1\60\1\u0101\2\60\1\u0101" + + "\1\60\1\252\2\0\2\60\3\252\10\0\1\60\1\0" + "\1\60\1\252\2\60\1\252\7\60\1\0\2\60\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + + "\1\u0103\4\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\2\4\1\262\11\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\3\4" + "\1\266\10\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\3\4\1\120\10\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\7\4\1\u0104\2\0" + + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\u0105" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4" + "\1\u0106\4\4\2\0\5\4\10\0\1\4\1\0\3\4" + "\1\u0107\10\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\7\4\1\364\4\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\114\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\7\4\1\u0100\4\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\1\u0108\1\u0109\1\0" + "\10\4\2\0\1\4\1\u0108\3\4\10\0\1\4\1\0" + + "\1\4\1\u0109\12\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\1\u010a\1\4\1\0\10\4\2\0\1\4" + "\1\u010a\3\4\10\0\1\4\1\0\14\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + "\1\u010b\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\1\u010c\2\254\5\4\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\1\u010d\4\4\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\3\4\1\u010e\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\1\4\1\u010f\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\1\4\1\u010f\12\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4" + + "\2\232\2\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\7\4\1\277\2\0\5\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\6\4\1\114\1\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\1\114\1\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\1\4\2\u0110\5\4" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\11\4\1\114\2\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\7\4\1\u0111\2\0\5\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\3\4\1\u0112\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\3\4\1\u0113\10\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\2\4\1\114\11\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + "\1\u0114\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\7\4\1\161\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\3\4\1\u0115\1\0\2\3\4\0" + + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\4\4\1\u0116\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\4\4\2\301\2\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\1\u0117\1\4\1\0\6\4\1\u0118" + "\1\4\2\0\1\4\1\u0117\3\4\10\0\1\4\1\0" + "\14\4\1\0\1\u0118\1\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\4\4\1\362\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\4\4\1\u0119" + + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\6\4\1\u011a\5\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\1\u011b\4\4\10\0\1\u011c\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\3\4\1\u010d\4\4\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\1\u011d\3\4\1\u011e\10\0" + + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\1\u011f\4\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\7\4\1\u0120\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\6\4\1\u0121" + + "\1\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\1\u0121\1\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\3\4\1\232\4\4\2\0\5\4\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\4\1\114\1\0\10\4\2\0\5\4\10\0" + "\1\4\1\0\1\4\1\114\12\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\1\u0122\1\4\1\0\10\4" + "\2\0\1\4\1\u0122\3\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\7\4\1\u0123\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\1\4\2\u0124\3\4\1\u0125\1\4\2\0" + + "\5\4\10\0\1\4\1\0\3\4\1\u0126\10\4\1\0" + "\1\u0125\1\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\3\4\1\274\4\4\2\0\5\4\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\u0127\1\4\1\0\10\4\2\0\1\4\1\u0127" + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\1\4\2\u0128" + "\5\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\7\4\1\u0129\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\u012a" + "\1\4\1\0\10\4\2\0\1\4\1\u012a\3\4\10\0" + + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\3\4\1\u012b\4\4\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\u0110" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\4\4\1\221\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\1\4\2\u012c\5\4\2\0\5\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\4\4\1\340\7\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\10\4\2\0\1\74\4\4" + "\10\0\1\4\1\0\12\4\1\u012d\1\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\1\122" + + "\7\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\3\4\1\114" + + "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\1\u012e\4\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\1\u012f\7\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\3\4\1\u0130\4\4\2\0" + + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\4\4\1\274\10\0\1\4\1\0\14\4\1\0\2\4" + + "\10\50\1\0\22\50\1\0\12\50\1\u0131\16\50\30\0" + "\1\354\107\0\1\u0132\17\0\10\50\1\0\15\50\1\356" + + "\4\50\1\0\31\50\2\0\10\50\1\0\22\50\1\0" + "\13\50\1\u0133\15\50\2\0\10\50\1\0\17\50\1\u0134" + + "\2\50\1\0\31\50\32\0\1\u0135\104\0\1\u0136\20\0" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\4\4" + + "\2\114\2\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\120" + "\1\4\1\0\10\4\2\0\1\4\1\120\3\4\10\0" + + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\1\4\2\u0137\5\4\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\5\4\10\0\1\4\1\0\11\4\1\232\2\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\1\u0138\1\4" + + "\1\0\10\4\2\0\1\4\1\u0138\3\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + + "\1\0\3\4\1\u0139\10\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\6\4\1\u013a\5\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + "\1\u013b\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\3\4\1\u013c\1\0\2\3\4\0\2\4" + + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\11\4" + + "\1\u013d\2\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\4\4\1\u013e\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + "\1\4\1\0\7\4\1\u011a\4\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\1\u013f\7\4" + + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4" + "\1\250\4\4\2\0\5\4\10\0\1\4\1\0\14\4" + + "\1\0\2\4\5\60\1\0\2\60\4\0\2\60\1\0" + "\1\60\5\u0101\2\60\2\0\5\60\10\0\1\60\1\0" + "\14\60\1\0\2\60\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\7\4\1\u0140\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\u0141\1\4\1\0\10\4\2\0\1\4\1\u0141" + + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\1\u0142\1\4\1\0\10\4" + "\2\0\1\4\1\u0142\3\4\10\0\1\4\1\0\7\4" + + "\1\u0143\4\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\7\4\1\u0144\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\1\u0145\1\4\1\0\10\4\2\0\1\4" + "\1\u0145\3\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + + "\1\325\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\3\4\1\u0146" + + "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\1\364\4\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\3\4\1\120\1\0" + + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\3\4\1\u0147" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\1\4\2\217\5\4" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4" + "\1\u0148\4\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\3\4\1\u0149\4\4\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\2\4\2\114\1\4" + + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\4\4" + "\1\u014a\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\5\4\10\0\1\4\1\0\1\114\13\4\1\0\1\4" + "\1\114\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\10\4\2\0\5\4\10\0\1\4\1\0\3\4\1\u0110" + "\10\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\1\u014b\4\4\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\3\4\1\u014c\4\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\7\4\1\u014d\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + + "\4\4\1\u014e\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4" + "\1\u014f\4\4\2\0\5\4\10\0\1\4\1\0\14\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\4\4\1\220\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\7\4\1\u0150\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\7\4\1\u0151\2\0\5\4\10\0" + + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\1\4\2\340\5\4\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\5\4\10\0\1\4\1\0\11\4\1\u0152\2\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\7\4\1\370\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4" + + "\1\u0125\11\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\7\4\1\u0153\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + "\1\4\1\0\3\4\1\u0154\10\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\4\4\2\u0155" + + "\2\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\2\4\1\u0156" + + "\11\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\1\4\2\222\5\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\10\4\2\0\5\4\10\0" + "\1\4\1\0\6\4\1\u0157\5\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + + "\4\4\1\u0158\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\3\4\1\u0159\10\4" + + "\1\0\2\4\1\3\3\4\1\u010a\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\1\u015a\1\4\1\0\3\4\1\u015b\4\4\2\0\1\4" + "\1\u015a\3\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + + "\1\u015c\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\4\4\1\70\10\0\1\4\1\0\14\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\11\4" + "\1\u015d\2\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\1\4\2\u015e\5\4\2\0\5\4" + "\10\0\1\4\1\0\3\4\1\u015f\10\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\3\4" + + "\1\u0160\4\4\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\4\4\1\224\10\0\1\4\1\0" + + "\14\4\1\0\2\4\10\50\1\0\12\50\2\356\6\50" + "\1\0\13\50\1\u0133\15\50\46\0\1\u0161\22\0\10\50" + + "\1\0\22\50\1\0\10\50\1\u0162\20\50\2\0\1\50" + "\4\u0134\1\50\1\u0134\1\50\1\0\2\50\20\u0134\1\u0135" + + "\6\u0134\2\50\1\u0134\1\50\16\u0134\1\50\2\u0135\1\0" + "\1\u0135\1\u0163\2\u0135\1\0\1\u0163\4\0\1\u0163\2\u0135" + + "\1\u0163\10\u0135\2\u0163\5\u0135\4\u0163\2\0\1\u0135\1\0" + "\1\u0135\1\u0163\14\u0135\1\0\2\u0135\23\0\2\354\22\0" + + "\1\u0132\17\0\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\2\4" + "\1\u0164\11\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\2\4\1\u0165\11\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\2\4\1\u014c\11\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + "\1\u0166\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\7\4\1\u0167\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\10\4\2\0\1\u0168\4\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\4\4\1\u0169\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\232\1\4\1\0\10\4\2\0\1\4\1\232" + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\3\4\1\120" + "\4\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\10\4\2\0\5\4\10\0\1\4\1\0\7\4\1\u0143" + "\4\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\1\4\2\u0145\5\4\2\0\5\4\10\0" + + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\2\4\2\u016a" + "\1\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\2\4\1\0\7\4\1\230" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\11\4\1\u016b\2\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\1\362\4\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\1\362\13\4\1\0\1\4\1\362\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\10\4\2\0\1\u016c\4\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\3\4\1\u016d\10\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + "\1\362\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\4\4\2\120\2\4\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\1\4\2\u016e\5\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\3\4\1\u016f\4\4\2\0" + + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\4\4\2\u0170" + "\2\4\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\2\4\1\u0171" + "\11\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + + "\2\4\1\0\4\4\2\345\2\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\3\4\1\u0172" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\1\u0173\1\4\1\0\10\4\2\0" + "\1\4\1\u0173\3\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\4\4\1\u0174\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\6\4" + "\1\u016b\5\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + + "\1\0\1\u0125\13\4\1\0\1\4\1\u0125\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\u016a\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\6\4\1\u0175\1\4" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\1\u0175" + "\1\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\7\4\1\u0176\2\0\5\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\1\47\4\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + "\2\4\1\u0177\11\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\1\4\2\u0178\5\4\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + + "\5\4\10\0\1\4\1\0\3\4\1\u0179\10\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\4\4\1\u017a\10\0\1\4\1\0\14\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\3\4\1\u017b\4\4\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\5\4\10\0\1\4" + "\1\0\2\4\1\u017c\11\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + + "\10\0\1\4\1\0\6\4\1\u017d\5\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\7\4" + "\1\u017e\2\0\5\4\10\0\1\4\1\0\14\4\1\0" + + "\2\4\44\0\1\u0135\22\0\10\50\1\0\22\50\1\0" + "\10\50\1\u0134\20\50\2\0\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\1\232\7\4\2\0\5\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\6\4\1\u0118\1\4\2\0" + + "\5\4\10\0\1\4\1\0\14\4\1\0\1\u0118\1\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\6\4\1\136\5\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\3\4\1\364\4\4\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\2\4\1\0\10\4\2\0\4\4\1\u017f\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\7\4\1\u0180\2\0\5\4" + + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\1\u013e\7\4\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\3\4\1\u0181\1\0\2\3\4\0\2\4\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\3\4\1\304\10\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\5\4" + + "\1\114\6\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\4\4\2\u0114\2\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\1\4\1\u0182\1\0\10\4\2\0" + "\5\4\10\0\1\4\1\0\1\4\1\u0182\12\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + + "\10\4\2\0\1\u0108\4\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\1\u016f\4\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\1\u0183\1\4\1\0\10\4\2\0\1\4\1\u0183\3\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\7\4\1\u0184\2\0" + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\1\u0185\1\4\1\0\10\4" + + "\2\0\1\4\1\u0185\3\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\4" + "\1\u0186\1\0\10\4\2\0\5\4\10\0\1\4\1\0" + + "\1\4\1\u0186\12\4\1\0\2\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\10\4\2\0\4\4\1\u0187" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\2\4\1\364\11\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\2\4\1\u0188\11\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\6\4\1\u0189\1\4\2\0\5\4\10\0\1\4" + + "\1\0\14\4\1\0\1\u0189\1\4\1\3\4\4\1\0" + "\2\3\4\0\2\4\1\0\7\4\1\u018a\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\u018b\2\4\1\3\3\4" + "\1\232\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + + "\5\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\2\4\1\0\10\4\2\0" + "\5\4\10\0\1\4\1\0\2\4\1\u0145\11\4\1\0" + + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\10\4\2\0\5\4\10\0\1\4\1\0\13\4\1\114" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\3\4\1\u018c\4\4\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\u018d\1\4\1\0\10\4\2\0\1\4\1\u018d" + + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\1\u018e\1\4\1\0\10\4" + "\2\0\1\4\1\u018e\3\4\10\0\1\4\1\0\14\4" + + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\1\u018f" + "\1\4\1\0\10\4\2\0\1\4\1\u018f\3\4\10\0" + "\1\4\1\0\14\4\1\0\2\4\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\7\4\1\362\2\0\4\4" + "\1\u0190\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + "\4\4\1\0\2\3\4\0\1\4\1\362\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\1\4\1\362\12\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\4\4\1\u0191\10\0\1\4\1\0" + + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\7\4\1\u0192\2\0\5\4\10\0\1\4" + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + + "\4\0\1\u0193\1\4\1\0\10\4\2\0\1\4\1\u0193" + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\23\0" + "\2\u0194\42\0\1\3\4\4\1\0\2\3\4\0\2\4" + + "\1\0\7\4\1\147\2\0\5\4\10\0\1\4\1\0" + "\14\4\1\0\2\4\1\3\4\4\1\0\2\3\4\0" + "\2\4\1\0\10\4\2\0\4\4\1\u016f\10\0\1\4" + + "\1\0\14\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\2\4\1\0\1\4\2\u0195\5\4\2\0\5\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + + "\1\0\2\3\4\0\2\4\1\0\1\4\2\u0196\5\4" + "\2\0\5\4\10\0\1\4\1\0\14\4\1\0\2\4" + "\1\3\4\4\1\0\2\3\4\0\2\4\1\0\10\4" + + "\2\0\5\4\10\0\1\4\1\0\4\4\1\324\7\4" + "\1\0\2\4\1\3\4\4\1\0\2\3\4\0\2\4" + "\1\0\10\4\2\0\5\4\10\0\1\4\1\0\11\4" + + "\1\327\2\4\1\0\2\4\1\3\4\4\1\0\2\3" + "\4\0\1\137\1\4\1\0\10\4\2\0\1\4\1\137" + "\3\4\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\1\u0197\1\4\1\0\10\4" + "\2\0\1\4\1\u0197\3\4\10\0\1\4\1\0\14\4" + "\1\0\2\4\31\0\1\u0198\35\0\1\3\4\4\1\0" + + "\2\3\4\0\2\4\1\0\10\4\2\0\1\u0199\4\4" + "\10\0\1\4\1\0\14\4\1\0\2\4\1\3\4\4" + "\1\0\2\3\4\0\1\4\1\u0199\1\0\10\4\2\0" + + "\5\4\10\0\1\4\1\0\1\4\1\u0199\12\4\1\0" + "\2\4\1\3\4\4\1\0\2\3\4\0\2\4\1\0" + "\1\4\2\u019a\5\4\2\0\5\4\10\0\1\4\1\0" + + "\14\4\1\0\2\4\35\0\1\u019b\31\0\1\3\4\4" + "\1\0\2\3\4\0\2\4\1\0\10\4\2\0\4\4" + "\1\u0190\10\0\1\4\1\0\14\4\1\0\2\4\1\3" + + "\4\4\1\0\2\3\4\0\1\4\1\232\1\0\10\4" + "\2\0\5\4\10\0\1\4\1\0\1\4\1\232\12\4" + + "\1\0\2\4\31\0\1\u019c\63\0\1\u019d\121\0\1\u019e" + "\33\0\1\u019f\112\0\1\u01a0\45\0\1\u01a1\35\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[22000]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\2\0\4\1\1\11\1\1\1\11\2\1\1\11\16\1" + "\2\11\14\1\1\11\26\1\1\11\6\1\1\0\73\1" + + "\2\0\3\1\2\0\1\1\1\0\137\1\2\0\3\1" + "\2\0\100\1\1\0\3\1\1\0\52\1\1\0\1\1" + "\1\0\47\1\1\0\10\1\1\0\3\1\1\0\2\1" + + "\6\0\1\11"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[417]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public VisualBasicTokenMaker() { - } - - + public VisualBasicTokenMaker() {} + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addHyperlinkToken(int, int, int) */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, false); + addToken(zzBuffer, start, end, tokenType, so, false); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - * @param hyperlink Whether this token is a hyperlink. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. + * @param hyperlink + * Whether this token is a hyperlink. */ @Override - public void addToken(char[] array, int start, int end, int tokenType, - int startOffset, boolean hyperlink) { - super.addToken(array, start,end, tokenType, startOffset, hyperlink); + public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink) { + super.addToken(array, start, end, tokenType, startOffset, hyperlink); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -1212,29 +627,28 @@ public class VisualBasicTokenMaker extends AbstractJFlexTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "'", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; - s = text; try { yyreset(zzReader); @@ -1244,21 +658,18 @@ public class VisualBasicTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -1267,7 +678,8 @@ public class VisualBasicTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -1276,344 +688,355 @@ public class VisualBasicTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 VisualBasicTokenMaker(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 VisualBasicTokenMaker(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 < 184) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 5: { + addNullToken(); + return firstToken; + } + case 21: + break; + case 6: { + addToken(Token.WHITESPACE); + } + case 22: + break; + case 16: { + addToken(Token.LITERAL_NUMBER_HEXADECIMAL); + } + case 23: + break; + case 13: { + addToken(Token.LITERAL_NUMBER_FLOAT); + } + case 24: + break; + case 15: { + addToken(Token.RESERVED_WORD); + } + case 25: + break; + case 9: { + addToken(Token.SEPARATOR); + } + case 26: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 27: + break; + case 11: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 28: + break; + case 7: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 29: + break; + case 1: { + addToken(Token.ERROR_IDENTIFIER); + } + case 30: + break; + case 17: { + addToken(Token.DATA_TYPE); + } + case 31: + break; + case 18: { + addToken(Token.LITERAL_BOOLEAN); + } + case 32: + break; + case 14: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 33: + break; + case 19: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL); + start = zzMarkedPos; + } + case 34: + break; + case 20: { + addToken(Token.RESERVED_WORD_2); + } + case 35: + break; + case 12: { + addToken(Token.ERROR_NUMBER_FORMAT); + } + case 36: + break; + case 8: { + start = zzMarkedPos - 1; + yybegin(EOL_COMMENT); + } + case 37: + break; + case 3: { + addToken(Token.LITERAL_NUMBER_DECIMAL_INT); + } + case 38: + break; + case 4: { + addToken(Token.OPERATOR); + } + case 39: + break; + case 10: {} + case 40: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case EOL_COMMENT: { + addToken(start, zzStartRead - 1, Token.COMMENT_EOL); + addNullToken(); + return firstToken; + } + case 418: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 419: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 VisualBasicTokenMaker(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 VisualBasicTokenMaker(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 < 184) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 5: - { addNullToken(); return firstToken; - } - case 21: break; - case 6: - { addToken(Token.WHITESPACE); - } - case 22: break; - case 16: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 23: break; - case 13: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 24: break; - case 15: - { addToken(Token.RESERVED_WORD); - } - case 25: break; - case 9: - { addToken(Token.SEPARATOR); - } - case 26: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 27: break; - case 11: - { addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 28: break; - case 7: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 29: break; - case 1: - { addToken(Token.ERROR_IDENTIFIER); - } - case 30: break; - case 17: - { addToken(Token.DATA_TYPE); - } - case 31: break; - case 18: - { addToken(Token.LITERAL_BOOLEAN); - } - case 32: break; - case 14: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 33: break; - case 19: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_EOL); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_EOL); start = zzMarkedPos; - } - case 34: break; - case 20: - { addToken(Token.RESERVED_WORD_2); - } - case 35: break; - case 12: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 36: break; - case 8: - { start = zzMarkedPos-1; yybegin(EOL_COMMENT); - } - case 37: break; - case 3: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 38: break; - case 4: - { addToken(Token.OPERATOR); - } - case 39: break; - case 10: - { - } - case 40: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case EOL_COMMENT: { - addToken(start,zzStartRead-1, Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 418: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 419: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/WindowsBatchTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/WindowsBatchTokenMaker.java index 1333177..78c401c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/WindowsBatchTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/WindowsBatchTokenMaker.java @@ -1,17 +1,17 @@ /* * 03/07/2004 - * * WindowsBatchTokenMaker.java - Scanner for Windows batch files. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; import javax.swing.text.Segment; -import org.fife.ui.rsyntaxtextarea.*; - +import org.fife.ui.rsyntaxtextarea.AbstractTokenMaker; +import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; +import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenMap; /** * A token maker that turns text into a linked list of @@ -22,52 +22,49 @@ import org.fife.ui.rsyntaxtextarea.*; * @version 0.1 */ public class WindowsBatchTokenMaker extends AbstractTokenMaker { - + protected final String operators = "@:*<>=?"; - private int currentTokenStart; private int currentTokenType; - private VariableType varType; - - + /** * Constructor. */ public WindowsBatchTokenMaker() { - super(); // Initializes tokensToHighlight. + super(); // Initializes tokensToHighlight. } - - + /** * Checks the token to give it the exact ID it deserves before * being passed up to the super method. * - * @param segment Segment to get text from. - * @param start Start offset in segment of token. - * @param end End offset in segment of token. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which the token occurs. + * @param segment + * Segment to get text from. + * @param start + * Start offset in segment of token. + * @param end + * End offset in segment of token. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which the token occurs. */ @Override public void addToken(Segment segment, int start, int end, int tokenType, int startOffset) { - switch (tokenType) { // Since reserved words, functions, and data types are all passed // into here as "identifiers," we have to see what the token // really is... case Token.IDENTIFIER: - int value = wordsToHighlight.get(segment, start,end); - if (value!=-1) + int value = wordsToHighlight.get(segment, start, end); + if (value != -1) tokenType = value; break; } - super.addToken(segment, start, end, tokenType, startOffset); - } - - + /** * {@inheritDoc} */ @@ -75,22 +72,21 @@ public class WindowsBatchTokenMaker extends AbstractTokenMaker { public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "rem ", null }; } - - + /** * Returns whether tokens of the specified type should have "mark * occurrences" enabled for the current programming language. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.IDENTIFIER || type==Token.VARIABLE; + return type == Token.IDENTIFIER || type == Token.VARIABLE; } - - + /** * Returns the words to highlight for Windows batch files. * @@ -100,543 +96,482 @@ public class WindowsBatchTokenMaker extends AbstractTokenMaker { */ @Override public TokenMap getWordsToHighlight() { - TokenMap tokenMap = new TokenMap(true); // Ignore case. int reservedWord = Token.RESERVED_WORD; - // Batch-file specific stuff (?) - tokenMap.put("goto", reservedWord); - tokenMap.put("if", reservedWord); - tokenMap.put("shift", reservedWord); - tokenMap.put("start", reservedWord); - + tokenMap.put("goto", reservedWord); + tokenMap.put("if", reservedWord); + tokenMap.put("shift", reservedWord); + tokenMap.put("start", reservedWord); // General command line stuff - tokenMap.put("ansi.sys", reservedWord); - tokenMap.put("append", reservedWord); - tokenMap.put("arp", reservedWord); - tokenMap.put("assign", reservedWord); - tokenMap.put("assoc", reservedWord); - tokenMap.put("at", reservedWord); - tokenMap.put("attrib", reservedWord); - tokenMap.put("break", reservedWord); - tokenMap.put("cacls", reservedWord); - tokenMap.put("call", reservedWord); - tokenMap.put("cd", reservedWord); - tokenMap.put("chcp", reservedWord); - tokenMap.put("chdir", reservedWord); - tokenMap.put("chkdsk", reservedWord); - tokenMap.put("chknfts", reservedWord); - tokenMap.put("choice", reservedWord); - tokenMap.put("cls", reservedWord); - tokenMap.put("cmd", reservedWord); - tokenMap.put("color", reservedWord); - tokenMap.put("comp", reservedWord); - tokenMap.put("compact", reservedWord); - tokenMap.put("control", reservedWord); - tokenMap.put("convert", reservedWord); - tokenMap.put("copy", reservedWord); - tokenMap.put("ctty", reservedWord); - tokenMap.put("date", reservedWord); - tokenMap.put("debug", reservedWord); - tokenMap.put("defrag", reservedWord); - tokenMap.put("del", reservedWord); - tokenMap.put("deltree", reservedWord); - tokenMap.put("dir", reservedWord); - tokenMap.put("diskcomp", reservedWord); - tokenMap.put("diskcopy", reservedWord); - tokenMap.put("do", reservedWord); - tokenMap.put("doskey", reservedWord); - tokenMap.put("dosshell", reservedWord); - tokenMap.put("drivparm", reservedWord); - tokenMap.put("echo", reservedWord); - tokenMap.put("edit", reservedWord); - tokenMap.put("edlin", reservedWord); - tokenMap.put("emm386", reservedWord); - tokenMap.put("erase", reservedWord); - tokenMap.put("exist", reservedWord); - tokenMap.put("exit", reservedWord); - tokenMap.put("expand", reservedWord); - tokenMap.put("extract", reservedWord); - tokenMap.put("fasthelp", reservedWord); - tokenMap.put("fc", reservedWord); - tokenMap.put("fdisk", reservedWord); - tokenMap.put("find", reservedWord); - tokenMap.put("for", reservedWord); - tokenMap.put("format", reservedWord); - tokenMap.put("ftp", reservedWord); - tokenMap.put("graftabl", reservedWord); - tokenMap.put("help", reservedWord); - tokenMap.put("ifshlp.sys", reservedWord); - tokenMap.put("in", reservedWord); - tokenMap.put("ipconfig", reservedWord); - tokenMap.put("keyb", reservedWord); - tokenMap.put("kill", reservedWord); - tokenMap.put("label", reservedWord); - tokenMap.put("lh", reservedWord); - tokenMap.put("loadfix", reservedWord); - tokenMap.put("loadhigh", reservedWord); - tokenMap.put("lock", reservedWord); - tokenMap.put("md", reservedWord); - tokenMap.put("mem", reservedWord); - tokenMap.put("mkdir", reservedWord); - tokenMap.put("mklink", reservedWord); - tokenMap.put("mode", reservedWord); - tokenMap.put("more", reservedWord); - tokenMap.put("move", reservedWord); - tokenMap.put("msav", reservedWord); - tokenMap.put("msd", reservedWord); - tokenMap.put("mscdex", reservedWord); - tokenMap.put("nbtstat", reservedWord); - tokenMap.put("net", reservedWord); - tokenMap.put("netstat", reservedWord); - tokenMap.put("nlsfunc", reservedWord); - tokenMap.put("not", reservedWord); - tokenMap.put("nslookup", reservedWord); - tokenMap.put("path", reservedWord); - tokenMap.put("pathping", reservedWord); - tokenMap.put("pause", reservedWord); - tokenMap.put("ping", reservedWord); - tokenMap.put("power", reservedWord); - tokenMap.put("print", reservedWord); - tokenMap.put("prompt", reservedWord); - tokenMap.put("pushd", reservedWord); - tokenMap.put("popd", reservedWord); - tokenMap.put("qbasic", reservedWord); - tokenMap.put("rd", reservedWord); - tokenMap.put("ren", reservedWord); - tokenMap.put("rename", reservedWord); - tokenMap.put("rmdir", reservedWord); - tokenMap.put("route", reservedWord); - tokenMap.put("sc", reservedWord); - tokenMap.put("scandisk", reservedWord); - tokenMap.put("scandreg", reservedWord); - tokenMap.put("set", reservedWord); - tokenMap.put("setx", reservedWord); - tokenMap.put("setver", reservedWord); - tokenMap.put("share", reservedWord); - tokenMap.put("shutdown", reservedWord); - tokenMap.put("smartdrv", reservedWord); - tokenMap.put("sort", reservedWord); - tokenMap.put("subset", reservedWord); - tokenMap.put("switches", reservedWord); - tokenMap.put("sys", reservedWord); - tokenMap.put("time", reservedWord); - tokenMap.put("tracert", reservedWord); - tokenMap.put("tree", reservedWord); - tokenMap.put("type", reservedWord); - tokenMap.put("undelete", reservedWord); - tokenMap.put("unformat", reservedWord); - tokenMap.put("unlock", reservedWord); - tokenMap.put("ver", reservedWord); - tokenMap.put("verify", reservedWord); - tokenMap.put("vol", reservedWord); - tokenMap.put("xcopy", reservedWord); - + tokenMap.put("ansi.sys", reservedWord); + tokenMap.put("append", reservedWord); + tokenMap.put("arp", reservedWord); + tokenMap.put("assign", reservedWord); + tokenMap.put("assoc", reservedWord); + tokenMap.put("at", reservedWord); + tokenMap.put("attrib", reservedWord); + tokenMap.put("break", reservedWord); + tokenMap.put("cacls", reservedWord); + tokenMap.put("call", reservedWord); + tokenMap.put("cd", reservedWord); + tokenMap.put("chcp", reservedWord); + tokenMap.put("chdir", reservedWord); + tokenMap.put("chkdsk", reservedWord); + tokenMap.put("chknfts", reservedWord); + tokenMap.put("choice", reservedWord); + tokenMap.put("cls", reservedWord); + tokenMap.put("cmd", reservedWord); + tokenMap.put("color", reservedWord); + tokenMap.put("comp", reservedWord); + tokenMap.put("compact", reservedWord); + tokenMap.put("control", reservedWord); + tokenMap.put("convert", reservedWord); + tokenMap.put("copy", reservedWord); + tokenMap.put("ctty", reservedWord); + tokenMap.put("date", reservedWord); + tokenMap.put("debug", reservedWord); + tokenMap.put("defrag", reservedWord); + tokenMap.put("del", reservedWord); + tokenMap.put("deltree", reservedWord); + tokenMap.put("dir", reservedWord); + tokenMap.put("diskcomp", reservedWord); + tokenMap.put("diskcopy", reservedWord); + tokenMap.put("do", reservedWord); + tokenMap.put("doskey", reservedWord); + tokenMap.put("dosshell", reservedWord); + tokenMap.put("drivparm", reservedWord); + tokenMap.put("echo", reservedWord); + tokenMap.put("edit", reservedWord); + tokenMap.put("edlin", reservedWord); + tokenMap.put("emm386", reservedWord); + tokenMap.put("erase", reservedWord); + tokenMap.put("exist", reservedWord); + tokenMap.put("exit", reservedWord); + tokenMap.put("expand", reservedWord); + tokenMap.put("extract", reservedWord); + tokenMap.put("fasthelp", reservedWord); + tokenMap.put("fc", reservedWord); + tokenMap.put("fdisk", reservedWord); + tokenMap.put("find", reservedWord); + tokenMap.put("for", reservedWord); + tokenMap.put("format", reservedWord); + tokenMap.put("ftp", reservedWord); + tokenMap.put("graftabl", reservedWord); + tokenMap.put("help", reservedWord); + tokenMap.put("ifshlp.sys", reservedWord); + tokenMap.put("in", reservedWord); + tokenMap.put("ipconfig", reservedWord); + tokenMap.put("keyb", reservedWord); + tokenMap.put("kill", reservedWord); + tokenMap.put("label", reservedWord); + tokenMap.put("lh", reservedWord); + tokenMap.put("loadfix", reservedWord); + tokenMap.put("loadhigh", reservedWord); + tokenMap.put("lock", reservedWord); + tokenMap.put("md", reservedWord); + tokenMap.put("mem", reservedWord); + tokenMap.put("mkdir", reservedWord); + tokenMap.put("mklink", reservedWord); + tokenMap.put("mode", reservedWord); + tokenMap.put("more", reservedWord); + tokenMap.put("move", reservedWord); + tokenMap.put("msav", reservedWord); + tokenMap.put("msd", reservedWord); + tokenMap.put("mscdex", reservedWord); + tokenMap.put("nbtstat", reservedWord); + tokenMap.put("net", reservedWord); + tokenMap.put("netstat", reservedWord); + tokenMap.put("nlsfunc", reservedWord); + tokenMap.put("not", reservedWord); + tokenMap.put("nslookup", reservedWord); + tokenMap.put("path", reservedWord); + tokenMap.put("pathping", reservedWord); + tokenMap.put("pause", reservedWord); + tokenMap.put("ping", reservedWord); + tokenMap.put("power", reservedWord); + tokenMap.put("print", reservedWord); + tokenMap.put("prompt", reservedWord); + tokenMap.put("pushd", reservedWord); + tokenMap.put("popd", reservedWord); + tokenMap.put("qbasic", reservedWord); + tokenMap.put("rd", reservedWord); + tokenMap.put("ren", reservedWord); + tokenMap.put("rename", reservedWord); + tokenMap.put("rmdir", reservedWord); + tokenMap.put("route", reservedWord); + tokenMap.put("sc", reservedWord); + tokenMap.put("scandisk", reservedWord); + tokenMap.put("scandreg", reservedWord); + tokenMap.put("set", reservedWord); + tokenMap.put("setx", reservedWord); + tokenMap.put("setver", reservedWord); + tokenMap.put("share", reservedWord); + tokenMap.put("shutdown", reservedWord); + tokenMap.put("smartdrv", reservedWord); + tokenMap.put("sort", reservedWord); + tokenMap.put("subset", reservedWord); + tokenMap.put("switches", reservedWord); + tokenMap.put("sys", reservedWord); + tokenMap.put("time", reservedWord); + tokenMap.put("tracert", reservedWord); + tokenMap.put("tree", reservedWord); + tokenMap.put("type", reservedWord); + tokenMap.put("undelete", reservedWord); + tokenMap.put("unformat", reservedWord); + tokenMap.put("unlock", reservedWord); + tokenMap.put("ver", reservedWord); + tokenMap.put("verify", reservedWord); + tokenMap.put("vol", reservedWord); + tokenMap.put("xcopy", reservedWord); return tokenMap; - } - - + /** * Returns a list of tokens representing the given text. * - * @param text The text to break into tokens. - * @param startTokenType The token with which to start tokenizing. - * @param startOffset The offset at which the line of tokens begins. + * @param text + * The text to break into tokens. + * @param startTokenType + * The token with which to start tokenizing. + * @param startOffset + * The offset at which the line of tokens begins. * @return A linked list of tokens representing text. */ @Override public Token getTokenList(Segment text, int startTokenType, final int startOffset) { - resetTokenList(); - char[] array = text.array; int offset = text.offset; int count = text.count; int end = offset + count; - - // See, when we find a token, its starting position is always of the form: + // See, when we find a token, its starting position is always of the + // form: // 'startOffset + (currentTokenStart-offset)'; but since startOffset and // offset are constant, tokens' starting positions become: - // 'newStartOffset+currentTokenStart' for one less subtraction operation. + // 'newStartOffset+currentTokenStart' for one less subtraction + // operation. int newStartOffset = startOffset - offset; - currentTokenStart = offset; - currentTokenType = startTokenType; - -//beginning: - for (int i=offset; i-1) { - addToken(text, currentTokenStart,i, Token.OPERATOR, newStartOffset+currentTokenStart); + int indexOf = operators.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, currentTokenStart, i, Token.OPERATOR, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; break; - } - else { + } else { currentTokenType = Token.IDENTIFIER; break; } - } // End of switch (c). - break; - case Token.WHITESPACE: - switch (c) { - case ' ': case '\t': - break; // Still whitespace. - + break; // Still whitespace. case '"': - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.ERROR_STRING_DOUBLE; break; - case '%': - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.VARIABLE; break; - // The "separators". case '(': case ')': - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.SEPARATOR, newStartOffset+i); + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.SEPARATOR, newStartOffset + i); currentTokenType = Token.NULL; break; - // The "separators2". case ',': case ';': - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; break; - // Newer version of EOL comments, or a label case ':': - addToken(text, currentTokenStart,i-1, Token.WHITESPACE, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.WHITESPACE, newStartOffset + currentTokenStart); currentTokenStart = i; - // If the previous (whitespace) token was the first token + // If the previous (whitespace) token was the first + // token // added, this is a new-style comment or a label - if (firstToken.getNextToken()==null) { - if (i-1) { - addToken(text, currentTokenStart,i, Token.OPERATOR, newStartOffset+currentTokenStart); + int indexOf = operators.indexOf(c, 0); + if (indexOf > -1) { + addToken(text, currentTokenStart, i, Token.OPERATOR, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; break; - } - else { + } else { currentTokenType = Token.IDENTIFIER; } - } // End of switch (c). - break; - default: // Should never happen case Token.IDENTIFIER: - switch (c) { - case ' ': case '\t': // Check for REM comments. - if (i-currentTokenStart==3 && - (array[i-3]=='r' || array[i-3]=='R') && - (array[i-2]=='e' || array[i-2]=='E') && - (array[i-1]=='m' || array[i-1]=='M')) { - currentTokenType = Token.COMMENT_EOL; - break; + if (i - currentTokenStart == 3 && (array[i - 3] == 'r' || array[i - 3] == 'R') + && (array[i - 2] == 'e' || array[i - 2] == 'E') && (array[i - 1] == 'm' || array[i - 1] == 'M')) { + currentTokenType = Token.COMMENT_EOL; + break; } - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.WHITESPACE; break; - case '"': - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.ERROR_STRING_DOUBLE; break; - case '%': - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); currentTokenStart = i; currentTokenType = Token.VARIABLE; break; - - // Should be part of identifiers, but not at end of "REM". + // Should be part of identifiers, but not at end of + // "REM". case '\\': // Check for REM comments. - if (i-currentTokenStart==3 && - (array[i-3]=='r' || array[i-3]=='R') && - (array[i-2]=='e' || array[i-2]=='E') && - (array[i-1]=='m' || array[i-1]=='M')) { - currentTokenType = Token.COMMENT_EOL; + if (i - currentTokenStart == 3 && (array[i - 3] == 'r' || array[i - 3] == 'R') + && (array[i - 2] == 'e' || array[i - 2] == 'E') && (array[i - 1] == 'm' || array[i - 1] == 'M')) { + currentTokenType = Token.COMMENT_EOL; } break; - case '.': case '_': - break; // Characters good for identifiers. - + break; // Characters good for identifiers. // The "separators". case '(': case ')': - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.SEPARATOR, newStartOffset+i); + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.SEPARATOR, newStartOffset + i); currentTokenType = Token.NULL; break; - // The "separators2". case ',': case ';': - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.IDENTIFIER, newStartOffset+i); + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.IDENTIFIER, newStartOffset + i); currentTokenType = Token.NULL; break; - default: - - // Just to speed things up a tad, as this will usually be the case. - if (RSyntaxUtilities.isLetterOrDigit(c) || c=='\\') { + // Just to speed things up a tad, as this will + // usually be the case. + if (RSyntaxUtilities.isLetterOrDigit(c) || c == '\\') { break; } - int indexOf = operators.indexOf(c); - if (indexOf>-1) { - addToken(text, currentTokenStart,i-1, Token.IDENTIFIER, newStartOffset+currentTokenStart); - addToken(text, i,i, Token.OPERATOR, newStartOffset+i); + if (indexOf > -1) { + addToken(text, currentTokenStart, i - 1, Token.IDENTIFIER, newStartOffset + currentTokenStart); + addToken(text, i, i, Token.OPERATOR, newStartOffset + i); currentTokenType = Token.NULL; break; } - - // Otherwise, fall through and assume we're still okay as an IDENTIFIER... - + // Otherwise, fall through and assume we're still + // okay as an IDENTIFIER... } // End of switch (c). - break; - case Token.COMMENT_EOL: i = end - 1; - addToken(text, currentTokenStart,i, Token.COMMENT_EOL, newStartOffset+currentTokenStart); - // We need to set token type to null so at the bottom we don't add one more token. + addToken(text, currentTokenStart, i, Token.COMMENT_EOL, newStartOffset + currentTokenStart); + // We need to set token type to null so at the bottom we + // don't add one more token. currentTokenType = Token.NULL; break; - case Token.PREPROCESSOR: // Used for labels i = end - 1; - addToken(text, currentTokenStart,i, Token.PREPROCESSOR, newStartOffset+currentTokenStart); - // We need to set token type to null so at the bottom we don't add one more token. + addToken(text, currentTokenStart, i, Token.PREPROCESSOR, newStartOffset + currentTokenStart); + // We need to set token type to null so at the bottom we + // don't add one more token. currentTokenType = Token.NULL; break; - case Token.ERROR_STRING_DOUBLE: - - if (c=='"') { - addToken(text, currentTokenStart,i, Token.LITERAL_STRING_DOUBLE_QUOTE, newStartOffset+currentTokenStart); + if (c == '"') { + addToken(text, currentTokenStart, i, Token.LITERAL_STRING_DOUBLE_QUOTE, newStartOffset + currentTokenStart); currentTokenStart = i + 1; currentTokenType = Token.NULL; } // Otherwise, we're still an unclosed string... - break; - case Token.VARIABLE: - - if (i==currentTokenStart+1) { // first character after '%'. - varType = VariableType.NORMAL_VAR; - switch (c) { - case '{': - varType = VariableType.BRACKET_VAR; + if (i == currentTokenStart + 1) { // first character after + // '%'. + varType = VariableType.NORMAL_VAR; + switch (c) { + case '{': + varType = VariableType.BRACKET_VAR; + break; + case '~': + varType = VariableType.TILDE_VAR; + break; + case '%': + varType = VariableType.DOUBLE_PERCENT_VAR; + break; + default: + if (RSyntaxUtilities.isLetter(c) || c == '_' || c == ' ') { // No + // tab, + // just + // space; + // spaces + // are + // okay + // in + // variable + // names. break; - case '~': - varType = VariableType.TILDE_VAR; + } else if (RSyntaxUtilities.isDigit(c)) { // Single-digit + // command-line + // argument + // ("%1"). + addToken(text, currentTokenStart, i, Token.VARIABLE, newStartOffset + currentTokenStart); + currentTokenType = Token.NULL; break; - case '%': - varType = VariableType.DOUBLE_PERCENT_VAR; + } else { // Anything else, ???. + addToken(text, currentTokenStart, i - 1, Token.VARIABLE, newStartOffset + currentTokenStart); // ??? + i--; + currentTokenType = Token.NULL; break; - default: - if (RSyntaxUtilities.isLetter(c) || c=='_' || c==' ') { // No tab, just space; spaces are okay in variable names. - break; - } - else if (RSyntaxUtilities.isDigit(c)) { // Single-digit command-line argument ("%1"). - addToken(text, currentTokenStart,i, Token.VARIABLE, newStartOffset+currentTokenStart); + } + } // End of switch (c). + } else { // Character other than first after the '%'. + switch (varType) { + case BRACKET_VAR: + if (c == '}') { + addToken(text, currentTokenStart, i, Token.VARIABLE, newStartOffset + currentTokenStart); + currentTokenType = Token.NULL; + } + break; + case TILDE_VAR: + if (!RSyntaxUtilities.isLetterOrDigit(c)) { + addToken(text, currentTokenStart, i - 1, Token.VARIABLE, newStartOffset + currentTokenStart); + i--; + currentTokenType = Token.NULL; + } + break; + case DOUBLE_PERCENT_VAR: + // Can be terminated with "%%", or (essentially) + // a space. + // substring chars are valid + if (c == '%') { + if (i < end - 1 && array[i + 1] == '%') { + i++; + addToken(text, currentTokenStart, i, Token.VARIABLE, newStartOffset + currentTokenStart); currentTokenType = Token.NULL; - break; } - else { // Anything else, ???. - addToken(text, currentTokenStart,i-1, Token.VARIABLE, newStartOffset+currentTokenStart); // ??? - i--; - currentTokenType = Token.NULL; - break; - } - } // End of switch (c). + } else if (!RSyntaxUtilities.isLetterOrDigit(c) && c != ':' && c != '~' && c != ',' && c != '-') { + addToken(text, currentTokenStart, i - 1, Token.VARIABLE, newStartOffset + currentTokenStart); + currentTokenType = Token.NULL; + i--; + } + break; + default: + if (c == '%') { + addToken(text, currentTokenStart, i, Token.VARIABLE, newStartOffset + currentTokenStart); + currentTokenType = Token.NULL; + } + break; } - else { // Character other than first after the '%'. - switch (varType) { - case BRACKET_VAR: - if (c=='}') { - addToken(text, currentTokenStart,i, Token.VARIABLE, newStartOffset+currentTokenStart); - currentTokenType = Token.NULL; - } - break; - case TILDE_VAR: - if (!RSyntaxUtilities.isLetterOrDigit(c)) { - addToken(text, currentTokenStart,i-1, Token.VARIABLE, newStartOffset+currentTokenStart); - i--; - currentTokenType = Token.NULL; - } - break; - case DOUBLE_PERCENT_VAR: - // Can be terminated with "%%", or (essentially) a space. - // substring chars are valid - if (c=='%') { - if (iJFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated XMLTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • + *
  • The generated XMLTokenMaker.java file will contain two + * definitions of both zzRefill and yyreset. + * You should hand-delete the second of each definition (the ones + * generated by the lexer), as these generated methods modify the input + * buffer, which we'll never have to do.
  • + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway.
  • + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance.
  • *
* * @author Robert Futrell * @version 0.5 * */ - public class XMLTokenMaker extends AbstractMarkupTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int INTAG = 4; - public static final int DTD = 3; - public static final int INATTR_DOUBLE = 5; - public static final int YYINITIAL = 0; - public static final int COMMENT = 1; - public static final int CDATA = 7; - public static final int INATTR_SINGLE = 6; - public static final int PI = 2; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\6\1\4\1\0\1\3\23\0\1\6\1\12\1\11\1\22"+ - "\1\30\1\22\1\7\1\25\5\22\1\2\1\42\1\24\12\27\1\23"+ - "\1\10\1\5\1\44\1\21\1\43\1\22\1\16\1\26\1\14\1\15"+ - "\17\26\1\17\6\26\1\13\1\0\1\20\1\0\1\1\1\0\4\26"+ - "\1\40\1\35\1\26\1\31\1\36\2\26\1\37\3\26\1\33\2\26"+ - "\1\34\1\32\2\26\1\41\3\26\3\0\1\22\uff81\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\2\1\1\0\2\2\1\3\1\4\1\5\1\6"+ - "\2\1\1\7\4\1\1\10\2\1\1\11\1\1\1\12"+ - "\1\13\1\14\2\15\1\16\1\17\1\20\1\21\1\22"+ - "\1\1\1\23\3\1\1\24\1\25\1\4\1\26\1\6"+ - "\5\0\1\27\4\0\1\30\1\31\5\0\1\32\1\33"+ - "\3\0\1\34\1\35\6\0\1\36"; - - private static int [] zzUnpackAction() { - int [] result = new int[77]; - 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\45\0\112\0\157\0\224\0\271\0\336\0\u0103"+ - "\0\u0128\0\u014d\0\u0172\0\u0197\0\u01bc\0\u01e1\0\u0206\0\u022b"+ - "\0\u0172\0\u0250\0\u0275\0\u029a\0\u02bf\0\u0172\0\u02e4\0\u0309"+ - "\0\u0172\0\u032e\0\u0172\0\u0172\0\u0172\0\u0353\0\u0378\0\u0172"+ - "\0\u0172\0\u039d\0\u0172\0\u0172\0\u03c2\0\u0172\0\u03e7\0\u040c"+ - "\0\u0431\0\u0456\0\u047b\0\u04a0\0\u0172\0\u0172\0\u04c5\0\u04ea"+ - "\0\u050f\0\u0534\0\u0559\0\u0172\0\u057e\0\u05a3\0\u05c8\0\u05ed"+ - "\0\u0612\0\u0172\0\u0637\0\u065c\0\u0681\0\u06a6\0\u06cb\0\u0172"+ - "\0\u0172\0\u06f0\0\u0715\0\u073a\0\u075f\0\u0172\0\u0784\0\u07a9"+ - "\0\u075f\0\u07ce\0\u07f3\0\u0818\0\u0172"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[77]; - 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 = - "\3\11\1\12\1\13\1\14\1\15\1\16\35\11\2\17"+ - "\1\20\1\17\1\21\24\17\1\22\3\17\1\23\3\17"+ - "\1\24\3\17\4\25\1\26\36\25\1\27\1\25\4\30"+ - "\1\31\1\32\5\30\1\33\4\30\1\34\1\35\23\30"+ - "\3\36\1\37\1\0\1\36\1\15\2\36\1\40\7\36"+ - "\1\41\2\36\1\42\1\43\16\36\1\44\11\45\1\46"+ - "\33\45\25\47\1\46\17\47\20\50\1\51\24\50\4\11"+ - "\4\0\40\11\1\12\2\0\1\15\1\0\35\11\46\0"+ - "\1\52\10\0\1\53\1\0\4\52\3\0\1\52\1\54"+ - "\1\0\1\52\2\0\11\52\1\0\1\55\4\0\1\15"+ - "\2\0\1\15\36\0\6\16\1\0\1\16\1\56\34\16"+ - "\2\17\1\0\1\17\1\0\24\17\1\0\3\17\1\0"+ - "\3\17\1\0\3\17\2\0\1\57\74\0\1\60\44\0"+ - "\1\61\3\0\1\62\47\0\1\63\3\0\4\25\1\0"+ - "\36\25\1\0\1\25\21\0\1\64\23\0\4\30\2\0"+ - "\5\30\1\0\4\30\2\0\23\30\12\0\1\65\32\0"+ - "\4\36\1\0\1\36\1\0\2\36\1\0\7\36\1\0"+ - "\2\36\2\0\16\36\1\0\3\36\1\37\1\0\1\36"+ - "\1\15\2\36\1\0\7\36\1\0\2\36\2\0\16\36"+ - "\22\0\1\41\23\0\11\45\1\0\33\45\25\47\1\0"+ - "\17\47\20\50\1\0\24\50\20\0\1\66\25\0\2\52"+ - "\11\0\4\52\3\0\1\52\2\0\2\52\1\0\12\52"+ - "\4\0\1\67\10\0\1\70\32\0\1\71\12\0\4\71"+ - "\3\0\1\71\2\0\1\71\2\0\11\71\24\0\1\72"+ - "\55\0\1\73\45\0\1\74\50\0\1\75\46\0\1\76"+ - "\5\0\1\77\63\0\1\100\25\0\1\101\56\0\1\102"+ - "\31\0\2\71\11\0\4\71\3\0\1\71\2\0\2\71"+ - "\1\0\12\71\35\0\1\103\34\0\1\104\61\0\1\74"+ - "\46\0\1\105\4\0\1\106\57\0\1\107\52\0\1\104"+ - "\10\0\1\74\34\0\1\110\21\0\2\111\4\0\2\111"+ - "\1\0\2\111\4\105\1\111\1\0\2\111\1\105\1\111"+ - "\14\105\3\111\16\0\1\112\52\0\1\105\37\0\1\113"+ - "\43\0\1\114\41\0\1\115\31\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[2109]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\5\0\2\1\1\0\2\1\1\11\5\1\1\11\4\1"+ - "\1\11\2\1\1\11\1\1\3\11\2\1\2\11\1\1"+ - "\2\11\1\1\1\11\6\1\2\11\5\0\1\11\4\0"+ - "\1\1\1\11\5\0\2\11\3\0\1\1\1\11\6\0"+ - "\1\11"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[77]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int INTAG = 4; + public static final int DTD = 3; + public static final int INATTR_DOUBLE = 5; + public static final int YYINITIAL = 0; + public static final int COMMENT = 1; + public static final int CDATA = 7; + public static final int INATTR_SINGLE = 6; + public static final int PI = 2; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\6\1\4\1\0\1\3\23\0\1\6\1\12\1\11\1\22" + + "\1\30\1\22\1\7\1\25\5\22\1\2\1\42\1\24\12\27\1\23" + "\1\10\1\5\1\44\1\21\1\43\1\22\1\16\1\26\1\14\1\15" + + "\17\26\1\17\6\26\1\13\1\0\1\20\1\0\1\1\1\0\4\26" + "\1\40\1\35\1\26\1\31\1\36\2\26\1\37\3\26\1\33\2\26" + + "\1\34\1\32\2\26\1\41\3\26\3\0\1\22\uff81\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\2\1\1\0\2\2\1\3\1\4\1\5\1\6" + "\2\1\1\7\4\1\1\10\2\1\1\11\1\1\1\12" + + "\1\13\1\14\2\15\1\16\1\17\1\20\1\21\1\22" + "\1\1\1\23\3\1\1\24\1\25\1\4\1\26\1\6" + "\5\0\1\27\4\0\1\30\1\31\5\0\1\32\1\33" + + "\3\0\1\34\1\35\6\0\1\36"; + + private static int[] zzUnpackAction() { + int[] result = new int[77]; + 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\45\0\112\0\157\0\224\0\271\0\336\0\u0103" + + "\0\u0128\0\u014d\0\u0172\0\u0197\0\u01bc\0\u01e1\0\u0206\0\u022b" + + "\0\u0172\0\u0250\0\u0275\0\u029a\0\u02bf\0\u0172\0\u02e4\0\u0309" + + "\0\u0172\0\u032e\0\u0172\0\u0172\0\u0172\0\u0353\0\u0378\0\u0172" + + "\0\u0172\0\u039d\0\u0172\0\u0172\0\u03c2\0\u0172\0\u03e7\0\u040c" + + "\0\u0431\0\u0456\0\u047b\0\u04a0\0\u0172\0\u0172\0\u04c5\0\u04ea" + + "\0\u050f\0\u0534\0\u0559\0\u0172\0\u057e\0\u05a3\0\u05c8\0\u05ed" + + "\0\u0612\0\u0172\0\u0637\0\u065c\0\u0681\0\u06a6\0\u06cb\0\u0172" + + "\0\u0172\0\u06f0\0\u0715\0\u073a\0\u075f\0\u0172\0\u0784\0\u07a9" + "\0\u075f\0\u07ce\0\u07f3\0\u0818\0\u0172"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[77]; + 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 = "\3\11\1\12\1\13\1\14\1\15\1\16\35\11\2\17" + + "\1\20\1\17\1\21\24\17\1\22\3\17\1\23\3\17" + "\1\24\3\17\4\25\1\26\36\25\1\27\1\25\4\30" + + "\1\31\1\32\5\30\1\33\4\30\1\34\1\35\23\30" + "\3\36\1\37\1\0\1\36\1\15\2\36\1\40\7\36" + + "\1\41\2\36\1\42\1\43\16\36\1\44\11\45\1\46" + "\33\45\25\47\1\46\17\47\20\50\1\51\24\50\4\11" + + "\4\0\40\11\1\12\2\0\1\15\1\0\35\11\46\0" + "\1\52\10\0\1\53\1\0\4\52\3\0\1\52\1\54" + "\1\0\1\52\2\0\11\52\1\0\1\55\4\0\1\15" + + "\2\0\1\15\36\0\6\16\1\0\1\16\1\56\34\16" + "\2\17\1\0\1\17\1\0\24\17\1\0\3\17\1\0" + "\3\17\1\0\3\17\2\0\1\57\74\0\1\60\44\0" + + "\1\61\3\0\1\62\47\0\1\63\3\0\4\25\1\0" + "\36\25\1\0\1\25\21\0\1\64\23\0\4\30\2\0" + + "\5\30\1\0\4\30\2\0\23\30\12\0\1\65\32\0" + "\4\36\1\0\1\36\1\0\2\36\1\0\7\36\1\0" + "\2\36\2\0\16\36\1\0\3\36\1\37\1\0\1\36" + + "\1\15\2\36\1\0\7\36\1\0\2\36\2\0\16\36" + "\22\0\1\41\23\0\11\45\1\0\33\45\25\47\1\0" + + "\17\47\20\50\1\0\24\50\20\0\1\66\25\0\2\52" + "\11\0\4\52\3\0\1\52\2\0\2\52\1\0\12\52" + + "\4\0\1\67\10\0\1\70\32\0\1\71\12\0\4\71" + "\3\0\1\71\2\0\1\71\2\0\11\71\24\0\1\72" + + "\55\0\1\73\45\0\1\74\50\0\1\75\46\0\1\76" + "\5\0\1\77\63\0\1\100\25\0\1\101\56\0\1\102" + + "\31\0\2\71\11\0\4\71\3\0\1\71\2\0\2\71" + "\1\0\12\71\35\0\1\103\34\0\1\104\61\0\1\74" + + "\46\0\1\105\4\0\1\106\57\0\1\107\52\0\1\104" + "\10\0\1\74\34\0\1\110\21\0\2\111\4\0\2\111" + + "\1\0\2\111\4\105\1\111\1\0\2\111\1\105\1\111" + "\14\105\3\111\16\0\1\112\52\0\1\105\37\0\1\113" + + "\43\0\1\114\41\0\1\115\31\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[2109]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\5\0\2\1\1\0\2\1\1\11\5\1\1\11\4\1" + "\1\11\2\1\1\11\1\1\3\11\2\1\2\11\1\1" + + "\2\11\1\1\1\11\6\1\2\11\5\0\1\11\4\0" + "\1\1\1\11\5\0\2\11\3\0\1\1\1\11\6\0" + "\1\11"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[77]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ /** * Type specific to XMLTokenMaker denoting a line ending with an unclosed * double-quote attribute. */ - public static final int INTERNAL_ATTR_DOUBLE = -1; - - + public static final int INTERNAL_ATTR_DOUBLE = -1; /** * Type specific to XMLTokenMaker denoting a line ending with an unclosed * single-quote attribute. */ - public static final int INTERNAL_ATTR_SINGLE = -2; - - + public static final int INTERNAL_ATTR_SINGLE = -2; /** * Token type specific to XMLTokenMaker denoting a line ending with an * unclosed XML tag; thus a new line is beginning still inside of the tag. */ - public static final int INTERNAL_INTAG = -3; - + public static final int INTERNAL_INTAG = -3; /** * Token type specific to XMLTokenMaker denoting a line ending with an * unclosed DOCTYPE element. */ - public static final int INTERNAL_DTD = -4; - + public static final int INTERNAL_DTD = -4; /** * Token type specific to XMLTokenMaker denoting a line ending with an * unclosed, locally-defined DTD in a DOCTYPE element. */ - public static final int INTERNAL_DTD_INTERNAL = -5; - + public static final int INTERNAL_DTD_INTERNAL = -5; /** * Token type specific to XMLTokenMaker denoting a line ending with an - * unclosed comment. The state to return to when this comment ends is + * unclosed comment. The state to return to when this comment ends is * embedded in the token type as well. */ - public static final int INTERNAL_IN_XML_COMMENT = -(1<<11); - + public static final int INTERNAL_IN_XML_COMMENT = -(1 << 11); /** * Whether closing markup tags are automatically completed for HTML. */ private static boolean completeCloseTags; - /** - * Whether the DTD we're currently in is a locally-defined one. This + * Whether the DTD we're currently in is a locally-defined one. This * field is only valid when in a DOCTYPE element (the state). */ private boolean inInternalDtd; - /** - * The state we were in prior to the current one. This is used to know + * The state we were in prior to the current one. This is used to know * what state to resume after an MLC ends. */ private int prevState; - - + /** - * Constructor. This must be here because JFlex does not generate a + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ - public XMLTokenMaker() { - } - - + public XMLTokenMaker() {} + static { completeCloseTags = true; } - - + /** * Adds the token specified to the current linked list of tokens as an * "end token;" that is, at zzMarkedPos. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addEndToken(int tokenType) { - addToken(zzMarkedPos,zzMarkedPos, tokenType); + addToken(zzMarkedPos, zzMarkedPos, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. * @see #addToken(int, int, int) */ private void addHyperlinkToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); + addToken(zzBuffer, start, end, tokenType, so, true); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + /** * {@inheritDoc} */ @@ -427,10 +372,9 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { protected OccurrenceMarker createOccurrenceMarker() { return new XmlOccurrenceMarker(); } - - + /** - * Returns whether markup close tags should be completed. For XML, the + * Returns whether markup close tags should be completed. For XML, the * default value is true. * * @return Whether closing markup tags are completed. @@ -440,10 +384,9 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { public boolean getCompleteCloseTags() { return completeCloseTags; } - - + /** - * Static version of {@link #getCompleteCloseTags()}. This hack is + * Static version of {@link #getCompleteCloseTags()}. This hack is * unfortunately needed for applications to be able to query this value * without instantiating this class. * @@ -453,41 +396,41 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { public static boolean getCompleteCloseMarkupTags() { return completeCloseTags; } - - + /** * Returns Token.MARKUP_TAG_NAME. * - * @param type The token type. + * @param type + * The token type. * @return Whether tokens of this type should have "mark occurrences" * enabled. */ @Override public boolean getMarkOccurrencesOfTokenType(int type) { - return type==Token.MARKUP_TAG_NAME; + return type == Token.MARKUP_TAG_NAME; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; prevState = YYINITIAL; inInternalDtd = false; - // Start off in the proper state. int state = YYINITIAL; switch (initialTokenType) { @@ -517,7 +460,8 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { state = CDATA; break; default: - if (initialTokenType<-1024) { // INTERNAL_IN_XML_COMMENT - prevState + if (initialTokenType < -1024) { // INTERNAL_IN_XML_COMMENT - + // prevState int main = -(-initialTokenType & 0xffffff00); switch (main) { default: // Should never happen @@ -525,13 +469,11 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { state = COMMENT; break; } - prevState = -initialTokenType&0xff; - } - else { // Shouldn't happen + prevState = -initialTokenType & 0xff; + } else { // Shouldn't happen state = Token.NULL; } } - start = text.offset; s = text; try { @@ -542,32 +484,29 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Sets whether markup close tags should be completed. * - * @param complete Whether closing markup tags are completed. + * @param complete + * Whether closing markup tags are completed. * @see #getCompleteCloseTags() */ public static void setCompleteCloseTags(boolean complete) { completeCloseTags = complete; } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -576,7 +515,8 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(java.io.Reader reader) { // 's' has been updated. @@ -585,414 +525,480 @@ public class XMLTokenMaker extends AbstractMarkupTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 XMLTokenMaker(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 XMLTokenMaker(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 < 116) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 25: { + int temp = zzMarkedPos; + addToken(start, zzStartRead + 2, Token.MARKUP_COMMENT); + start = temp; + yybegin(prevState); + } + case 31: + break; + case 19: { + yybegin(INTAG); + addToken(start, zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + } + case 32: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 33: + break; + case 29: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + start = temp; + prevState = zzLexicalState; + yybegin(COMMENT); + } + case 34: + break; + case 11: { + inInternalDtd = false; + } + case 35: + break; + case 4: { + addToken(Token.MARKUP_TAG_DELIMITER); + yybegin(INTAG); + } + case 36: + break; + case 24: { + int count = yylength(); + addToken(zzStartRead, zzStartRead + 1, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 2), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(INTAG); + } + case 37: + break; + case 9: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + addEndToken(inInternalDtd ? INTERNAL_DTD_INTERNAL : INTERNAL_DTD); + return firstToken; + } + case 38: + break; + case 16: { + addToken(Token.MARKUP_TAG_DELIMITER); /* + * Not valid but + * we'll still + * accept it + */ + } + case 39: + break; + case 7: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_XML_COMMENT - prevState); + return firstToken; + } + case 40: + break; + case 5: { + addToken(Token.WHITESPACE); + } + case 41: + break; + case 27: { + start = zzStartRead; + prevState = zzLexicalState; + yybegin(COMMENT); + } + case 42: + break; + case 26: { + int temp = zzStartRead; + yybegin(YYINITIAL); + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + addToken(temp, zzMarkedPos - 1, Token.MARKUP_CDATA_DELIMITER); + } + case 43: + break; + case 6: { + addToken(Token.MARKUP_ENTITY_REFERENCE); + } + case 44: + break; + case 12: { + if (!inInternalDtd) { + yybegin(YYINITIAL); + addToken(start, zzStartRead, Token.MARKUP_DTD); + } + } + case 45: + break; + case 2: { + addToken(Token.IDENTIFIER); + } + case 46: + break; + case 10: { + inInternalDtd = true; + } + case 47: + break; + case 23: { + yybegin(YYINITIAL); + addToken(start, zzStartRead + 1, Token.MARKUP_PROCESSING_INSTRUCTION); + } + case 48: + break; + case 21: { + start = zzMarkedPos - 2; + inInternalDtd = false; + yybegin(DTD); + } + case 49: + break; + case 20: { + int count = yylength(); + addToken(zzStartRead, zzStartRead, Token.MARKUP_TAG_DELIMITER); + addToken(zzMarkedPos - (count - 1), zzMarkedPos - 1, Token.MARKUP_TAG_NAME); + yybegin(INTAG); + } + case 50: + break; + case 22: { + start = zzMarkedPos - 2; + yybegin(PI); + } + case 51: + break; + case 8: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 52: + break; + case 14: { + start = zzMarkedPos - 1; + yybegin(INATTR_DOUBLE); + } + case 53: + break; + case 28: { + int temp = zzStartRead; + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addHyperlinkToken(temp, zzMarkedPos - 1, Token.MARKUP_COMMENT); + start = zzMarkedPos; + } + case 54: + break; + case 15: { + yybegin(YYINITIAL); + addToken(Token.MARKUP_TAG_DELIMITER); + } + case 55: + break; + case 17: { + start = zzMarkedPos - 1; + yybegin(INATTR_SINGLE); + } + case 56: + break; + case 18: { + addToken(Token.OPERATOR); + } + case 57: + break; + case 30: { + addToken(Token.MARKUP_CDATA_DELIMITER); + start = zzMarkedPos; + yybegin(CDATA); + } + case 58: + break; + case 13: { + addToken(Token.MARKUP_TAG_ATTRIBUTE); + } + case 59: + break; + case 1: {} + case 60: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case INTAG: { + addToken(start, zzStartRead - 1, INTERNAL_INTAG); + return firstToken; + } + case 78: + break; + case DTD: { + addToken(start, zzStartRead - 1, Token.MARKUP_DTD); + addEndToken(inInternalDtd ? INTERNAL_DTD_INTERNAL : INTERNAL_DTD); + return firstToken; + } + case 79: + break; + case INATTR_DOUBLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_DOUBLE); + return firstToken; + } + case 80: + break; + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 81: + break; + case COMMENT: { + addToken(start, zzStartRead - 1, Token.MARKUP_COMMENT); + addEndToken(INTERNAL_IN_XML_COMMENT - prevState); + return firstToken; + } + case 82: + break; + case CDATA: { + addToken(start, zzStartRead - 1, Token.MARKUP_CDATA); + return firstToken; + } + case 83: + break; + case INATTR_SINGLE: { + addToken(start, zzStartRead - 1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); + addEndToken(INTERNAL_ATTR_SINGLE); + return firstToken; + } + case 84: + break; + case PI: { + addToken(start, zzStartRead - 1, Token.MARKUP_PROCESSING_INSTRUCTION); + return firstToken; + } + case 85: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 XMLTokenMaker(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 XMLTokenMaker(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 < 116) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 25: - { int temp = zzMarkedPos; addToken(start,zzStartRead+2, Token.MARKUP_COMMENT); start = temp; yybegin(prevState); - } - case 31: break; - case 19: - { yybegin(INTAG); addToken(start,zzStartRead, Token.MARKUP_TAG_ATTRIBUTE_VALUE); - } - case 32: break; - case 3: - { addNullToken(); return firstToken; - } - case 33: break; - case 29: - { int temp = zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_DTD); start = temp; prevState = zzLexicalState; yybegin(COMMENT); - } - case 34: break; - case 11: - { inInternalDtd = false; - } - case 35: break; - case 4: - { addToken(Token.MARKUP_TAG_DELIMITER); yybegin(INTAG); - } - case 36: break; - case 24: - { int count = yylength(); - addToken(zzStartRead,zzStartRead+1, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-2), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(INTAG); - } - case 37: break; - case 9: - { addToken(start,zzStartRead-1, Token.MARKUP_DTD); addEndToken(inInternalDtd ? INTERNAL_DTD_INTERNAL : INTERNAL_DTD); return firstToken; - } - case 38: break; - case 16: - { addToken(Token.MARKUP_TAG_DELIMITER); /* Not valid but we'll still accept it */ - } - case 39: break; - case 7: - { addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_XML_COMMENT - prevState); return firstToken; - } - case 40: break; - case 5: - { addToken(Token.WHITESPACE); - } - case 41: break; - case 27: - { start = zzStartRead; prevState = zzLexicalState; yybegin(COMMENT); - } - case 42: break; - case 26: - { int temp=zzStartRead; yybegin(YYINITIAL); addToken(start,zzStartRead-1, Token.MARKUP_CDATA); addToken(temp,zzMarkedPos-1, Token.MARKUP_CDATA_DELIMITER); - } - case 43: break; - case 6: - { addToken(Token.MARKUP_ENTITY_REFERENCE); - } - case 44: break; - case 12: - { if (!inInternalDtd) { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.MARKUP_DTD); } - } - case 45: break; - case 2: - { addToken(Token.IDENTIFIER); - } - case 46: break; - case 10: - { inInternalDtd = true; - } - case 47: break; - case 23: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.MARKUP_PROCESSING_INSTRUCTION); - } - case 48: break; - case 21: - { start = zzMarkedPos-2; inInternalDtd = false; yybegin(DTD); - } - case 49: break; - case 20: - { int count = yylength(); - addToken(zzStartRead,zzStartRead, Token.MARKUP_TAG_DELIMITER); - addToken(zzMarkedPos-(count-1), zzMarkedPos-1, Token.MARKUP_TAG_NAME); - yybegin(INTAG); - } - case 50: break; - case 22: - { start = zzMarkedPos-2; yybegin(PI); - } - case 51: break; - case 8: - { addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 52: break; - case 14: - { start = zzMarkedPos-1; yybegin(INATTR_DOUBLE); - } - case 53: break; - case 28: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addHyperlinkToken(temp,zzMarkedPos-1, Token.MARKUP_COMMENT); start = zzMarkedPos; - } - case 54: break; - case 15: - { yybegin(YYINITIAL); addToken(Token.MARKUP_TAG_DELIMITER); - } - case 55: break; - case 17: - { start = zzMarkedPos-1; yybegin(INATTR_SINGLE); - } - case 56: break; - case 18: - { addToken(Token.OPERATOR); - } - case 57: break; - case 30: - { addToken(Token.MARKUP_CDATA_DELIMITER); start = zzMarkedPos; yybegin(CDATA); - } - case 58: break; - case 13: - { addToken(Token.MARKUP_TAG_ATTRIBUTE); - } - case 59: break; - case 1: - { - } - case 60: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case INTAG: { - addToken(start,zzStartRead-1, INTERNAL_INTAG); return firstToken; - } - case 78: break; - case DTD: { - addToken(start,zzStartRead-1, Token.MARKUP_DTD); addEndToken(inInternalDtd ? INTERNAL_DTD_INTERNAL : INTERNAL_DTD); return firstToken; - } - case 79: break; - case INATTR_DOUBLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_DOUBLE); return firstToken; - } - case 80: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 81: break; - case COMMENT: { - addToken(start,zzStartRead-1, Token.MARKUP_COMMENT); addEndToken(INTERNAL_IN_XML_COMMENT - prevState); return firstToken; - } - case 82: break; - case CDATA: { - addToken(start,zzStartRead-1, Token.MARKUP_CDATA); return firstToken; - } - case 83: break; - case INATTR_SINGLE: { - addToken(start,zzStartRead-1, Token.MARKUP_TAG_ATTRIBUTE_VALUE); addEndToken(INTERNAL_ATTR_SINGLE); return firstToken; - } - case 84: break; - case PI: { - addToken(start,zzStartRead-1, Token.MARKUP_PROCESSING_INSTRUCTION); return firstToken; - } - case 85: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/modes/YamlTokenMaker.java b/src/org/fife/ui/rsyntaxtextarea/modes/YamlTokenMaker.java index e9dbdf8..3b0c526 100644 --- a/src/org/fife/ui/rsyntaxtextarea/modes/YamlTokenMaker.java +++ b/src/org/fife/ui/rsyntaxtextarea/modes/YamlTokenMaker.java @@ -1,9 +1,7 @@ /* The following code was generated by JFlex 1.4.1 on 12/30/16 11:20 PM */ - /* * 12/29/2016 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.modes; @@ -17,319 +15,286 @@ import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker; import org.fife.ui.rsyntaxtextarea.Token; import org.fife.ui.rsyntaxtextarea.TokenImpl; - /** - * This class splits up text into tokens representing a YAML file.

+ * This class splits up text into tokens representing a YAML file. + *

* * This implementation was created using * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost + * was modified for performance. Memory allocation needs to be almost * completely removed to be competitive with the handwritten lexers (subclasses * of AbstractTokenMaker, so this class has been modified so that * Strings are never allocated (via yytext()), and the scanner never has to * worry about refilling its buffer (needlessly copying chars around). * We can achieve this because RText always scans exactly 1 line of tokens at a * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings + * really). Since tokens contain pointers to char arrays instead of Strings * holding their contents, there is no need for allocating new memory for - * Strings.

+ * Strings. + *

* * The actual algorithm generated for scanning has, of course, not been - * modified.

+ * modified. + *

* * If you wish to regenerate this file yourself, keep in mind the following: *

    - *
  • The generated YamlTokenMaker.java file will - * contain two definitions of both zzRefill and - * yyreset. You should hand-delete the second of each - * definition (the ones generated by the lexer), as these generated - * methods modify the input buffer, which we'll never have to do. - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway. - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance. + *
  • The generated YamlTokenMaker.java file will + * contain two definitions of both zzRefill and + * yyreset. You should hand-delete the second of each + * definition (the ones generated by the lexer), as these generated + * methods modify the input buffer, which we'll never have to do. + *
  • You should also change the declaration/definition of zzBuffer to NOT + * be initialized. This is a needless memory allocation for us since we + * will be pointing the array somewhere else anyway. + *
  • You should NOT call yylex() on the generated scanner + * directly; rather, you should use getTokenList as you would + * with any other TokenMaker instance. *
* * @author Robert Futrell * @version 0.4 * */ - public class YamlTokenMaker extends AbstractJFlexTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\15\1\4\25\0\1\15\1\11\1\10\1\14\1\0\2\11"+ - "\1\3\2\12\1\11\1\0\1\13\1\11\1\13\1\0\1\2\3\2"+ - "\4\2\2\1\1\11\1\13\3\0\2\11\6\1\24\0\1\12\1\5"+ - "\1\12\2\0\1\11\1\1\1\2\3\1\1\2\7\0\1\7\3\0"+ - "\1\7\1\0\1\7\1\6\5\0\1\12\1\0\1\12\uff82\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 = - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\1"+ - "\1\7\1\10\1\11\1\0\1\2\2\4\1\12\1\0"+ - "\1\2\1\13\1\2\1\4\1\14\1\4\1\0\1\13"+ - "\1\2\1\4\1\0\1\2\1\4\1\0\1\2\1\4"+ - "\1\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[34]; - 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\16\0\34\0\52\0\70\0\52\0\52\0\52"+ - "\0\106\0\124\0\52\0\142\0\160\0\176\0\214\0\52"+ - "\0\232\0\250\0\142\0\266\0\304\0\52\0\322\0\340"+ - "\0\52\0\356\0\374\0\u010a\0\u0118\0\u0126\0\u0134\0\u0142"+ - "\0\u0150\0\u015e"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[34]; - 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 = - "\3\2\1\3\1\4\3\2\1\5\1\6\1\7\1\10"+ - "\1\11\1\12\3\2\2\0\3\2\6\0\3\3\1\13"+ - "\1\14\1\15\10\3\16\0\4\5\1\16\1\17\2\5"+ - "\1\20\5\5\4\11\1\0\11\11\15\0\1\12\3\14"+ - "\1\13\1\14\1\21\10\14\2\22\1\3\1\23\1\0"+ - "\1\3\1\24\2\3\5\22\5\16\1\25\2\16\1\26"+ - "\7\16\2\5\1\0\1\5\1\27\2\5\5\16\2\0"+ - "\2\14\1\0\1\14\1\30\2\14\5\0\3\22\1\31"+ - "\1\0\12\22\2\32\1\31\1\0\11\22\4\16\1\0"+ - "\12\16\2\33\2\16\1\25\2\16\1\26\5\16\1\0"+ - "\2\34\13\0\1\22\2\35\1\31\1\0\11\22\1\16"+ - "\2\36\2\16\1\25\2\16\1\26\5\16\1\0\2\37"+ - "\13\0\1\22\2\40\1\31\1\0\11\22\1\16\2\41"+ - "\2\16\1\25\2\16\1\26\5\16\1\0\2\42\13\0"+ - "\1\22\2\3\1\31\1\0\11\22\1\16\2\5\2\16"+ - "\1\25\2\16\1\26\5\16\1\0\2\14\13\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[364]; - 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 aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\2\1\1\11\1\1\3\11\2\1\1\11\1\0"+ - "\3\1\1\11\1\0\4\1\1\11\1\1\1\0\1\11"+ - "\2\1\1\0\2\1\1\0\2\1\1\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[34]; - 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[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + /** lexical states */ + public static final int YYINITIAL = 0; /** - * Constructor. This must be here because JFlex does not generate a + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = "\11\0\1\15\1\4\25\0\1\15\1\11\1\10\1\14\1\0\2\11" + + "\1\3\2\12\1\11\1\0\1\13\1\11\1\13\1\0\1\2\3\2" + "\4\2\2\1\1\11\1\13\3\0\2\11\6\1\24\0\1\12\1\5" + + "\1\12\2\0\1\11\1\1\1\2\3\1\1\2\7\0\1\7\3\0" + "\1\7\1\0\1\7\1\6\5\0\1\12\1\0\1\12\uff82\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 = "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\1" + "\1\7\1\10\1\11\1\0\1\2\2\4\1\12\1\0" + + "\1\2\1\13\1\2\1\4\1\14\1\4\1\0\1\13" + "\1\2\1\4\1\0\1\2\1\4\1\0\1\2\1\4" + "\1\0"; + + private static int[] zzUnpackAction() { + int[] result = new int[34]; + 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\16\0\34\0\52\0\70\0\52\0\52\0\52" + + "\0\106\0\124\0\52\0\142\0\160\0\176\0\214\0\52" + "\0\232\0\250\0\142\0\266\0\304\0\52\0\322\0\340" + + "\0\52\0\356\0\374\0\u010a\0\u0118\0\u0126\0\u0134\0\u0142" + "\0\u0150\0\u015e"; + + private static int[] zzUnpackRowMap() { + int[] result = new int[34]; + 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 = "\3\2\1\3\1\4\3\2\1\5\1\6\1\7\1\10" + "\1\11\1\12\3\2\2\0\3\2\6\0\3\3\1\13" + + "\1\14\1\15\10\3\16\0\4\5\1\16\1\17\2\5" + "\1\20\5\5\4\11\1\0\11\11\15\0\1\12\3\14" + + "\1\13\1\14\1\21\10\14\2\22\1\3\1\23\1\0" + "\1\3\1\24\2\3\5\22\5\16\1\25\2\16\1\26" + "\7\16\2\5\1\0\1\5\1\27\2\5\5\16\2\0" + + "\2\14\1\0\1\14\1\30\2\14\5\0\3\22\1\31" + "\1\0\12\22\2\32\1\31\1\0\11\22\4\16\1\0" + + "\12\16\2\33\2\16\1\25\2\16\1\26\5\16\1\0" + "\2\34\13\0\1\22\2\35\1\31\1\0\11\22\1\16" + + "\2\36\2\16\1\25\2\16\1\26\5\16\1\0\2\37" + "\13\0\1\22\2\40\1\31\1\0\11\22\1\16\2\41" + + "\2\16\1\25\2\16\1\26\5\16\1\0\2\42\13\0" + "\1\22\2\3\1\31\1\0\11\22\1\16\2\5\2\16" + "\1\25\2\16\1\26\5\16\1\0\2\14\13\0"; + + private static int[] zzUnpackTrans() { + int[] result = new int[364]; + 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 aState + */ + private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\2\1\1\11\1\1\3\11\2\1\1\11\1\0" + "\3\1\1\11\1\0\4\1\1\11\1\1\1\0\1\11" + + "\2\1\1\0\2\1\1\0\2\1\1\0"; + + private static int[] zzUnpackAttribute() { + int[] result = new int[34]; + 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[]; + /** the textposition at the last accepting state */ + private int zzMarkedPos; + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + /** + * endRead marks the last character in the buffer, that has been read + * from input + */ + private int zzEndRead; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + /* user code: */ + + /** + * Constructor. This must be here because JFlex does not generate a * no-parameter constructor. */ public YamlTokenMaker() { super(); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); + addToken(zzStartRead, zzMarkedPos - 1, tokenType); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param tokenType The token's type. + * @param tokenType + * The token's type. */ private void addToken(int start, int end, int tokenType) { int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); + addToken(zzBuffer, start, end, tokenType, so); } - - + /** * Adds the token specified to the current linked list of tokens. * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. + * @param array + * The character array. + * @param start + * The starting offset in the array. + * @param end + * The ending offset in the array. + * @param tokenType + * The token's type. + * @param startOffset + * The offset in the document at which this token + * occurs. */ @Override public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); + super.addToken(array, start, end, tokenType, startOffset); zzStartRead = zzMarkedPos; } - - + @Override public String[] getLineCommentStartAndEnd(int languageIndex) { return new String[] { "#", null }; } - - + /** * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by + * from text. This method must be implemented by * subclasses so they can correctly implement syntax highlighting. * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. + * @param text + * The text from which to get tokens. + * @param initialTokenType + * The token type we should start with. + * @param startOffset + * The offset into the document at which + * text starts. * @return The first Token in a linked list representing * the syntax highlighted text. */ @Override public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - resetTokenList(); this.offsetShift = -text.offset + startOffset; - // Start off in the proper state. int state = YYINITIAL; s = text; @@ -341,21 +306,18 @@ public class YamlTokenMaker extends AbstractJFlexTokenMaker { ioe.printStackTrace(); return new TokenImpl(); } - } - - + /** * Refills the input buffer. * - * @return true if EOF was reached, otherwise - * false. + * @return true if EOF was reached, otherwise + * false. */ private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; + return zzCurrentPos >= s.offset + s.count; } - - + /** * Resets the scanner to read from a new input stream. * Does not close the old reader. @@ -364,7 +326,8 @@ public class YamlTokenMaker extends AbstractJFlexTokenMaker { * cannot be reused (internal buffer is discarded and lost). * Lexical state is set to YY_INITIAL. * - * @param reader the new input stream + * @param reader + * the new input stream */ public final void yyreset(Reader reader) { // 's' has been updated. @@ -373,308 +336,306 @@ public class YamlTokenMaker extends AbstractJFlexTokenMaker { * We replaced the line below with the two below it because zzRefill * no longer "refills" the buffer (since the way we do it, it's always * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. + * array). So, we assign zzEndRead here. */ - //zzStartRead = zzEndRead = s.offset; + // zzStartRead = zzEndRead = s.offset; zzStartRead = s.offset; zzEndRead = zzStartRead + s.count - 1; zzCurrentPos = zzMarkedPos = s.offset; zzLexicalState = YYINITIAL; zzReader = reader; - zzAtEOF = false; + zzAtEOF = false; + } + + /** + * 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 YamlTokenMaker(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 YamlTokenMaker(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 < 98) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do + map[j++] = value; + while (--count > 0); + } + return map; + } + + /** + * 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(); + } + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + /** + * Enters a new lexical state + * + * @param newState + * the new lexical state + */ + @Override + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos + * the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead + pos]; + } + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos - zzStartRead; + } + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode + * the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + throw new Error(message); + } + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number + * the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if (number > yylength()) + zzScanError(ZZ_PUSHBACK_2BIG); + zzMarkedPos -= number; + } + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException + * if any I/O-Error occurs + */ + public org.fife.ui.rsyntaxtextarea.Token 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 1: { + addToken(Token.IDENTIFIER); + } + case 13: + break; + case 10: { + addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); + } + case 14: + break; + case 2: { + addToken(Token.ERROR_CHAR); + addNullToken(); + return firstToken; + } + case 15: + break; + case 8: { + addToken(Token.WHITESPACE); + } + case 16: + break; + case 11: { + addToken(Token.ERROR_CHAR); + } + case 17: + break; + case 7: { + addToken(Token.COMMENT_EOL); + } + case 18: + break; + case 5: { + addToken(Token.OPERATOR); + } + case 19: + break; + case 9: { + addToken(Token.LITERAL_CHAR); + } + case 20: + break; + case 4: { + addToken(Token.ERROR_STRING_DOUBLE); + addNullToken(); + return firstToken; + } + case 21: + break; + case 3: { + addNullToken(); + return firstToken; + } + case 22: + break; + case 12: { + addToken(Token.ERROR_STRING_DOUBLE); + } + case 23: + break; + case 6: { + addToken(Token.SEPARATOR); + } + case 24: + break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + addNullToken(); + return firstToken; + } + case 35: + break; + default: + return null; + } + } else { + zzScanError(ZZ_NO_MATCH); + } + } + } } - - - - - /** - * 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 YamlTokenMaker(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 YamlTokenMaker(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 < 98) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * 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(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override - public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public org.fife.ui.rsyntaxtextarea.Token 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 1: - { addToken(Token.IDENTIFIER); - } - case 13: break; - case 10: - { addToken(Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 14: break; - case 2: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 15: break; - case 8: - { addToken(Token.WHITESPACE); - } - case 16: break; - case 11: - { addToken(Token.ERROR_CHAR); - } - case 17: break; - case 7: - { addToken(Token.COMMENT_EOL); - } - case 18: break; - case 5: - { addToken(Token.OPERATOR); - } - case 19: break; - case 9: - { addToken(Token.LITERAL_CHAR); - } - case 20: break; - case 4: - { addToken(Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 21: break; - case 3: - { addNullToken(); return firstToken; - } - case 22: break; - case 12: - { addToken(Token.ERROR_STRING_DOUBLE); - } - case 23: break; - case 6: - { addToken(Token.SEPARATOR); - } - case 24: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 35: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - } diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/AbstractParser.java b/src/org/fife/ui/rsyntaxtextarea/parser/AbstractParser.java index ab567ae..fcd4f52 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/AbstractParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/AbstractParser.java @@ -1,47 +1,41 @@ /* * 07/31/2009 - * * AbstractParser.java - A base implementation for parsers. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; import java.net.URL; - /** - * A base class for {@link Parser} implementations. Most Parsers + * A base class for {@link Parser} implementations. Most Parsers * should be able to extend this class. * * @author Robert Futrell * @version 1.0 */ public abstract class AbstractParser implements Parser { - + /** - * Whether this parser is enabled. If this is false, then + * Whether this parser is enabled. If this is false, then * this parser will not be run. */ private boolean enabled; - /** * Listens for events from * {@link org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip}s generated * from this parser's notices. */ private ExtendedHyperlinkListener linkListener; - - + /** * Constructor. */ protected AbstractParser() { setEnabled(true); } - - + /** * {@inheritDoc} */ @@ -49,10 +43,9 @@ public abstract class AbstractParser implements Parser { public ExtendedHyperlinkListener getHyperlinkListener() { return linkListener; } - - + /** - * Returns null. Parsers that wish to show images in their + * Returns null. Parsers that wish to show images in their * tool tips should override this method to return the image base URL. * * @return null always. @@ -61,8 +54,7 @@ public abstract class AbstractParser implements Parser { public URL getImageBase() { return null; } - - + /** * {@inheritDoc} */ @@ -70,28 +62,26 @@ public abstract class AbstractParser implements Parser { public boolean isEnabled() { return enabled; } - - + /** * Toggles whether this parser is enabled. * - * @param enabled Whether this parser is enabled. + * @param enabled + * Whether this parser is enabled. * @see #isEnabled() */ public void setEnabled(boolean enabled) { this.enabled = enabled; } - - + /** * Returns the listener for this parser. * - * @param listener The new listener. + * @param listener + * The new listener. * @see #getHyperlinkListener() */ public void setHyperlinkListener(ExtendedHyperlinkListener listener) { linkListener = listener; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParseResult.java b/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParseResult.java index 51a4ede..dc4c45f 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParseResult.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParseResult.java @@ -1,9 +1,7 @@ /* * 07/27/2009 - * * DefaultParseResult.java - A basic implementation of a ParseResult. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; @@ -11,9 +9,8 @@ package org.fife.ui.rsyntaxtextarea.parser; import java.util.ArrayList; import java.util.List; - /** - * A basic implementation of {@link ParseResult}. Most, if not all, + * A basic implementation of {@link ParseResult}. Most, if not all, * Parsers can return instances of this class. * * @author Robert Futrell @@ -21,32 +18,30 @@ import java.util.List; * @see Parser */ public class DefaultParseResult implements ParseResult { - + private Parser parser; private int firstLineParsed; private int lastLineParsed; private List notices; private long parseTime; private Exception error; - - + public DefaultParseResult(Parser parser) { this.parser = parser; notices = new ArrayList(); } - - + /** * Adds a parser notice. * - * @param notice The new notice. + * @param notice + * The new notice. * @see #clearNotices() */ public void addNotice(ParserNotice notice) { notices.add(notice); } - - + /** * Clears any parser notices in this result. * @@ -55,8 +50,7 @@ public class DefaultParseResult implements ParseResult { public void clearNotices() { notices.clear(); } - - + /** * {@inheritDoc} */ @@ -64,8 +58,7 @@ public class DefaultParseResult implements ParseResult { public Exception getError() { return error; } - - + /** * {@inheritDoc} */ @@ -73,8 +66,7 @@ public class DefaultParseResult implements ParseResult { public int getFirstLineParsed() { return firstLineParsed; } - - + /** * {@inheritDoc} */ @@ -82,8 +74,7 @@ public class DefaultParseResult implements ParseResult { public int getLastLineParsed() { return lastLineParsed; } - - + /** * {@inheritDoc} */ @@ -91,8 +82,7 @@ public class DefaultParseResult implements ParseResult { public List getNotices() { return notices; } - - + /** * {@inheritDoc} */ @@ -100,8 +90,7 @@ public class DefaultParseResult implements ParseResult { public Parser getParser() { return parser; } - - + /** * {@inheritDoc} */ @@ -109,25 +98,26 @@ public class DefaultParseResult implements ParseResult { public long getParseTime() { return parseTime; } - - + /** * Sets the error that occurred when last parsing the document, if * any. * - * @param e The error that occurred, or null if no error - * occurred. + * @param e + * The error that occurred, or null if no error + * occurred. */ public void setError(Exception e) { this.error = e; } - - + /** * Sets the line range parsed. * - * @param first The first line parsed, inclusive. - * @param last The last line parsed, inclusive. + * @param first + * The first line parsed, inclusive. + * @param last + * The last line parsed, inclusive. * @see #getFirstLineParsed() * @see #getLastLineParsed() */ @@ -135,17 +125,15 @@ public class DefaultParseResult implements ParseResult { firstLineParsed = first; lastLineParsed = last; } - - + /** * Sets the amount of time it took for this parser to parse the document. * - * @param time The amount of time, in milliseconds. + * @param time + * The amount of time, in milliseconds. * @see #getParseTime() */ public void setParseTime(long time) { parseTime = time; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParserNotice.java b/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParserNotice.java index a56faed..2dc88c8 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParserNotice.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/DefaultParserNotice.java @@ -1,18 +1,15 @@ /* * 08/11/2009 - * * DefaultParserNotice.java - Base implementation of a parser notice. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; import java.awt.Color; - /** - * Base implementation of a parser notice. Most Parser + * Base implementation of a parser notice. Most Parser * implementations can return instances of this in their parse result. * * @author Robert Futrell @@ -21,7 +18,7 @@ import java.awt.Color; * @see ParseResult */ public class DefaultParserNotice implements ParserNotice { - + private Parser parser; private Level level; private int line; @@ -31,39 +28,42 @@ public class DefaultParserNotice implements ParserNotice { private Color color; private String message; private String toolTipText; - - private static final Color[] DEFAULT_COLORS = { - new Color(255, 0, 128), // Error - new Color(244, 200, 45), // Warning - Color.gray, // Info + private static final Color[] DEFAULT_COLORS = { new Color(255, 0, 128), // Error + new Color(244, 200, 45), // Warning + Color.gray, // Info }; - - + /** * Constructor. * - * @param parser The parser that created this notice. - * @param msg The text of the message. - * @param line The line number for the message. + * @param parser + * The parser that created this notice. + * @param msg + * The text of the message. + * @param line + * The line number for the message. */ public DefaultParserNotice(Parser parser, String msg, int line) { this(parser, msg, line, -1, -1); } - - + /** * Constructor. * - * @param parser The parser that created this notice. - * @param message The message. - * @param line The line number corresponding to the message. - * @param offset The offset in the input stream of the code the - * message is concerned with, or -1 if unknown. - * @param length The length of the code the message is concerned with, - * or -1 if unknown. + * @param parser + * The parser that created this notice. + * @param message + * The message. + * @param line + * The line number corresponding to the message. + * @param offset + * The offset in the input stream of the code the + * message is concerned with, or -1 if unknown. + * @param length + * The length of the code the message is concerned with, + * or -1 if unknown. */ - public DefaultParserNotice(Parser parser, String message, int line, - int offset, int length) { + public DefaultParserNotice(Parser parser, String message, int line, int offset, int length) { this.parser = parser; this.message = message; this.line = line; @@ -72,44 +72,43 @@ public class DefaultParserNotice implements ParserNotice { setLevel(Level.ERROR); setShowInEditor(true); } - - + /** * Compares this parser notice to another. * - * @param other Another parser notice. + * @param other + * Another parser notice. * @return How the two parser notices should be sorted relative to one * another. */ @Override public int compareTo(ParserNotice other) { int diff = -1; - if (other!=null) { + if (other != null) { diff = level.getNumericValue() - other.getLevel().getNumericValue(); - if (diff==0) { + if (diff == 0) { diff = line - other.getLine(); - if (diff==0) { + if (diff == 0) { diff = message.compareTo(other.getMessage()); } } } return diff; } - - + /** * {@inheritDoc} */ @Override public boolean containsPosition(int pos) { - return offset<=pos && pos<(offset+length); + return offset <= pos && pos < (offset + length); } - - + /** * Returns whether this parser notice is equal to another one. * - * @param obj Another parser notice. + * @param obj + * Another parser notice. * @return Whether the two notices are equal. */ @Override @@ -117,32 +116,29 @@ public class DefaultParserNotice implements ParserNotice { if (!(obj instanceof ParserNotice)) { return false; } - return compareTo((ParserNotice)obj)==0; + return compareTo((ParserNotice) obj) == 0; } - - + /** * {@inheritDoc} */ @Override public Color getColor() { Color c = color; // User-defined - if (c==null) { + if (c == null) { c = DEFAULT_COLORS[getLevel().getNumericValue()]; } return c; } - - + /** * {@inheritDoc} */ @Override public boolean getKnowsOffsetAndLength() { - return offset>=0 && length>=0; + return offset >= 0 && length >= 0; } - - + /** * {@inheritDoc} */ @@ -150,8 +146,7 @@ public class DefaultParserNotice implements ParserNotice { public int getLength() { return length; } - - + /** * {@inheritDoc} */ @@ -159,8 +154,7 @@ public class DefaultParserNotice implements ParserNotice { public Level getLevel() { return level; } - - + /** * {@inheritDoc} */ @@ -168,8 +162,7 @@ public class DefaultParserNotice implements ParserNotice { public int getLine() { return line; } - - + /** * {@inheritDoc} */ @@ -177,8 +170,7 @@ public class DefaultParserNotice implements ParserNotice { public String getMessage() { return message; } - - + /** * {@inheritDoc} */ @@ -186,8 +178,7 @@ public class DefaultParserNotice implements ParserNotice { public int getOffset() { return offset; } - - + /** * {@inheritDoc} */ @@ -195,8 +186,7 @@ public class DefaultParserNotice implements ParserNotice { public Parser getParser() { return parser; } - - + /** * {@inheritDoc} */ @@ -204,17 +194,15 @@ public class DefaultParserNotice implements ParserNotice { public boolean getShowInEditor() { return showInEditor; } - - + /** * {@inheritDoc} */ @Override public String getToolTipText() { - return toolTipText!=null ? toolTipText : getMessage(); + return toolTipText != null ? toolTipText : getMessage(); } - - + /** * Returns the hash code for this notice. * @@ -222,60 +210,59 @@ public class DefaultParserNotice implements ParserNotice { */ @Override public int hashCode() { - return (line<<16) | offset; + return (line << 16) | offset; } - - + /** * Sets the color to use when painting this notice. * - * @param color The color to use. + * @param color + * The color to use. * @see #getColor() */ public void setColor(Color color) { this.color = color; } - - + /** * Sets the level of this notice. * - * @param level The new level. + * @param level + * The new level. * @see #getLevel() */ public void setLevel(Level level) { - if (level==null) { + if (level == null) { level = Level.ERROR; } this.level = level; } - - + /** * Sets whether a squiggle underline should be drawn in the editor for * this notice. * - * @param show Whether to draw a squiggle underline. + * @param show + * Whether to draw a squiggle underline. * @see #getShowInEditor() */ public void setShowInEditor(boolean show) { showInEditor = show; } - - + /** * Sets the tool tip text to display for this notice. * - * @param text The new tool tip text. This can be HTML. If this is - * null, then tool tips will return the same text as - * {@link #getMessage()}. + * @param text + * The new tool tip text. This can be HTML. If this is + * null, then tool tips will return the same text as + * {@link #getMessage()}. * @see #getToolTipText() */ public void setToolTipText(String text) { this.toolTipText = text; } - - + /** * Returns a string representation of this parser notice. * @@ -285,6 +272,4 @@ public class DefaultParserNotice implements ParserNotice { public String toString() { return "Line " + getLine() + ": " + getMessage(); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/ExtendedHyperlinkListener.java b/src/org/fife/ui/rsyntaxtextarea/parser/ExtendedHyperlinkListener.java index 5b52d65..c2d6444 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/ExtendedHyperlinkListener.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/ExtendedHyperlinkListener.java @@ -1,9 +1,7 @@ /* * 07/31/2009 - * * ExtendedHyeprlinkListener.java - A hyperlink event from a FocusableTip. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; @@ -14,10 +12,9 @@ import javax.swing.event.HyperlinkEvent; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; - /** * Listens for hyperlink events from - * {@link org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip}s. In addition + * {@link org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip}s. In addition * to the link event, the text area that the tip is for is also received, which * allows the listener to modify the displayed content, if desired. * @@ -25,16 +22,15 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; * @version 1.0 */ public interface ExtendedHyperlinkListener extends EventListener { - - + /** * Called when a link in a * {@link org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip} is clicked. * - * @param textArea The text area displaying the tip. - * @param e The event. + * @param textArea + * The text area displaying the tip. + * @param e + * The event. */ void linkClicked(RSyntaxTextArea textArea, HyperlinkEvent e); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/ParseResult.java b/src/org/fife/ui/rsyntaxtextarea/parser/ParseResult.java index 67c3ee1..a0ceccc 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/ParseResult.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/ParseResult.java @@ -1,19 +1,16 @@ /* * 07/27/2009 - * * ParseResult.java - The result of a Parser parsing some section of an * RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; import java.util.List; - /** - * The result from a {@link Parser}. This contains the section of lines + * The result from a {@link Parser}. This contains the section of lines * parsed and any notices for that section. * * @author Robert Futrell @@ -22,8 +19,7 @@ import java.util.List; * @see ParserNotice */ public interface ParseResult { - - + /** * Returns an error that occurred while parsing the document, if any. * @@ -31,20 +27,18 @@ public interface ParseResult { * successfully parsed. */ Exception getError(); - - + /** - * Returns the first line parsed. All parser implementations should + * Returns the first line parsed. All parser implementations should * currently set this to 0 and parse the entire document. * * @return The first line parsed. * @see #getLastLineParsed() */ int getFirstLineParsed(); - - + /** - * Returns the first line parsed. All parser implementations should + * Returns the first line parsed. All parser implementations should * currently set this to the document's line count and parse the entire * document. * @@ -52,33 +46,28 @@ public interface ParseResult { * @see #getFirstLineParsed() */ int getLastLineParsed(); - - + /** * Returns the notices for the parsed section. * * @return A list of {@link ParserNotice}s. */ List getNotices(); - - + /** * Returns the parser that generated these notices. * * @return The parser. */ Parser getParser(); - - + /** * Returns the amount of time this parser took to parse the specified - * range of text. This is an optional operation; parsers are permitted + * range of text. This is an optional operation; parsers are permitted * to return 0 for this value. * * @return The parse time, in milliseconds, or 0 if the * parse time was not recorded. */ long getParseTime(); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/Parser.java b/src/org/fife/ui/rsyntaxtextarea/parser/Parser.java index dce0d76..7625c34 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/Parser.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/Parser.java @@ -1,9 +1,7 @@ /* * 09/23/2005 - * * Parser.java - An interface for a parser for RSyntaxTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; @@ -12,13 +10,13 @@ import java.net.URL; import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; - /** * An interface for a parser for content in an * {@link org.fife.ui.rsyntaxtextarea.RSyntaxTextArea}. * A Parser returns a list of issues it finds in the text area's - * content, which the text area can flag (e.g. squiggle underline). It can - * also return descriptions of the issues, to be used in tool tips.

+ * content, which the text area can flag (e.g. squiggle underline). It can + * also return descriptions of the issues, to be used in tool tips. + *

* * To install a Parser, simply call * {@link org.fife.ui.rsyntaxtextarea.RSyntaxTextArea#addParser(Parser)}. @@ -28,8 +26,7 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; * @see AbstractParser */ public interface Parser { - - + /** * Returns the listener for hyperlink events from * {@link org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip}s, or @@ -38,38 +35,35 @@ public interface Parser { * @return The listener. */ ExtendedHyperlinkListener getHyperlinkListener(); - - + /** * Returns the base URL for any images displayed in returned - * {@link ParserNotice} HTML text. Note that if a parser notice's text + * {@link ParserNotice} HTML text. Note that if a parser notice's text * is not HTML, this URL is not used. * - * @return The URL. This may be null. + * @return The URL. This may be null. */ URL getImageBase(); - - + /** - * Returns whether this parser is enabled. If this returns + * Returns whether this parser is enabled. If this returns * false, it will not be run. * * @return Whether this parser is enabled. */ boolean isEnabled(); - - + /** * Parses input from the specified document. * - * @param doc The document to parse. This document is in a read lock, - * so it cannot be modified while parsing is occurring. - * @param style The language being rendered, such as - * {@link org.fife.ui.rsyntaxtextarea.SyntaxConstants#SYNTAX_STYLE_JAVA}. + * @param doc + * The document to parse. This document is in a read lock, + * so it cannot be modified while parsing is occurring. + * @param style + * The language being rendered, such as + * {@link org.fife.ui.rsyntaxtextarea.SyntaxConstants#SYNTAX_STYLE_JAVA}. * @return An object describing the section of the document parsed and the - * results. This is guaranteed to be non-null. + * results. This is guaranteed to be non-null. */ ParseResult parse(RSyntaxDocument doc, String style); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/ParserNotice.java b/src/org/fife/ui/rsyntaxtextarea/parser/ParserNotice.java index 5f65f28..6c79a68 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/ParserNotice.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/ParserNotice.java @@ -1,26 +1,24 @@ /* * 09/23/2005 - * * ParserNotice.java - A notice (i.e, and error or warning) from a parser. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; import java.awt.Color; - /** - * A notice (e.g., a warning or error) from a parser.

+ * A notice (e.g., a warning or error) from a parser. + *

* * Since different parsers have different levels of precision when it comes * to identifying errors in code, this class supports marking parser notices - * on either a per-line basis or arbitrary regions of a document. For any + * on either a per-line basis or arbitrary regions of a document. For any * ParserNotice, {@link #getLine()} is guaranteed to return the * (primary) line containing the notice, but {@link #getOffset()} and * {@link #getLength()} are allowed to return -1 if that - * particular notice isn't mapped to a specific region of code. Applications + * particular notice isn't mapped to a specific region of code. Applications * can check whether an instance of this class only has line-level information * with the * @@ -29,54 +27,50 @@ import java.awt.Color; * @see DefaultParserNotice */ public interface ParserNotice extends Comparable { - + /** * Returns whether this parser notice contains the specified location * in the document. * - * @param pos The position in the document. - * @return Whether the position is contained. This will always return + * @param pos + * The position in the document. + * @return Whether the position is contained. This will always return * false if {@link #getOffset()} returns * -1. */ boolean containsPosition(int pos); - - + /** * Returns the color to use when painting this notice. * * @return The color. */ Color getColor(); - - + /** * Returns the length of the code the message is concerned with. * - * @return The length of the code the message is concerned with, or - * -1 if unknown. - * @see #getOffset() - * @see #getLine() + * @return The length of the code the message is concerned with, or + * -1 if unknown. + * @see #getOffset() + * @see #getLine() */ int getLength(); - - + /** * Returns the level of this notice. * * @return A value from the {@link Level} enumeration. */ Level getLevel(); - - + /** * Returns the line number the notice is about. * * @return The line number. */ int getLine(); - - + /** * Returns whether this parser notice has offset and length information * (as opposed to just what line number to mark). @@ -87,16 +81,14 @@ public interface ParserNotice extends Comparable { * @see #getLength() */ boolean getKnowsOffsetAndLength(); - - + /** * Returns the message from the parser. * * @return The message from the parser. */ String getMessage(); - - + /** * Returns the offset of the code the message is concerned with. * @@ -105,16 +97,14 @@ public interface ParserNotice extends Comparable { * @see #getLine() */ int getOffset(); - - + /** * Returns the parser that created this message. * * @return The parser. */ Parser getParser(); - - + /** * Whether a squiggle underline should be drawn in the editor for this * notice. @@ -122,43 +112,38 @@ public interface ParserNotice extends Comparable { * @return Whether a squiggle underline should be drawn. */ boolean getShowInEditor(); - - + /** * Returns the tool tip text to display for this notice. * - * @return The tool tip text. If none has been explicitly set, this + * @return The tool tip text. If none has been explicitly set, this * method returns the same text as {@link #getMessage()}. */ String getToolTipText(); - - + /** * Denotes the severity of a parser notice. */ enum Level { - /** * Indicates an informational notice. */ INFO(2), - /** * Indicates a warning notice. */ WARNING(1), - /** * Indicates an error notice. */ ERROR(0); - + private int value; - + Level(int value) { this.value = value; } - + /** * Returns the value of this notice level, as an integer. * @@ -167,19 +152,17 @@ public interface ParserNotice extends Comparable { public int getNumericValue() { return value; } - + /** * Returns whether this level is as sever as, or worse than, another * level. * - * @param other The other level. + * @param other + * The other level. * @return Whether this level is equal to or more severe. */ public boolean isEqualToOrWorseThan(Level other) { - return value<=other.getNumericValue(); + return value <= other.getNumericValue(); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/TaskTagParser.java b/src/org/fife/ui/rsyntaxtextarea/parser/TaskTagParser.java index 1dcd163..8db8088 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/TaskTagParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/TaskTagParser.java @@ -1,9 +1,7 @@ /* * 08/11/2009 - * * TaskTagParser.java - Parser that scans code comments for task tags. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; @@ -18,7 +16,6 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; import org.fife.ui.rsyntaxtextarea.Token; - /** * Parser that identifies "task tags," such as "TODO", * "FIXME", etc. in source code comments. @@ -27,80 +24,65 @@ import org.fife.ui.rsyntaxtextarea.Token; * @version 1.0 */ public class TaskTagParser extends AbstractParser { - + private DefaultParseResult result; - private static final String DEFAULT_TASK_PATTERN = "TODO|FIXME|HACK"; + private static final String DEFAULT_TASK_PATTERN = "TODO|FIXME|HACK"; private Pattern taskPattern; - private static final Color COLOR = new Color(48, 150, 252); - - + /** - * Creates a new task parser. The default parser treats the following - * identifiers in comments as task definitions: "TODO", + * Creates a new task parser. The default parser treats the following + * identifiers in comments as task definitions: "TODO", * "FIXME", and "HACK". */ public TaskTagParser() { result = new DefaultParseResult(this); setTaskPattern(DEFAULT_TASK_PATTERN); } - - + /** * Returns the regular expression used to search for tasks. * - * @return The regular expression. This may be null if no + * @return The regular expression. This may be null if no * regular expression was specified (or an empty string was * specified). * @see #setTaskPattern(String) */ public String getTaskPattern() { - return taskPattern==null ? null : taskPattern.pattern(); + return taskPattern == null ? null : taskPattern.pattern(); } - - + @Override public ParseResult parse(RSyntaxDocument doc, String style) { - Element root = doc.getDefaultRootElement(); int lineCount = root.getElementCount(); - - if (taskPattern==null || - style==null || SyntaxConstants.SYNTAX_STYLE_NONE.equals(style)){ + if (taskPattern == null || style == null || SyntaxConstants.SYNTAX_STYLE_NONE.equals(style)) { result.clearNotices(); - result.setParsedLines(0, lineCount-1); + result.setParsedLines(0, lineCount - 1); return result; } - // TODO: Pass in parsed line range and just do that result.clearNotices(); - result.setParsedLines(0, lineCount-1); - - for (int line=0; line-1 && text != null) { // "text != null" just for Sonar + if (start > -1 && text != null) { // "text != null" just for Sonar text = text.substring(start); // TODO: Strip off end of MLC's if they're there. int len = text.length(); @@ -110,49 +92,41 @@ public class TaskTagParser extends AbstractParser { pn.setColor(COLOR); result.addNotice(pn); } - } - return result; - } - - + /** - * Sets the pattern of task identifiers. You will usually want this to be + * Sets the pattern of task identifiers. You will usually want this to be * a list of words "or'ed" together, such as * "TODO|FIXME|HACK|REMIND". * - * @param pattern The pattern. A value of null or an - * empty string effectively disables task parsing. - * @throws java.util.regex.PatternSyntaxException If pattern - * is an invalid regular expression. + * @param pattern + * The pattern. A value of null or an + * empty string effectively disables task parsing. + * @throws java.util.regex.PatternSyntaxException + * If pattern + * is an invalid regular expression. * @see #getTaskPattern() */ public void setTaskPattern(String pattern) { - if (pattern==null || pattern.length()==0) { + if (pattern == null || pattern.length() == 0) { taskPattern = null; - } - else { + } else { taskPattern = Pattern.compile(pattern); } } - - + /** - * A parser notice that signifies a task. This class is here so we can + * A parser notice that signifies a task. This class is here so we can * treat tasks specially and show them in the * {@link org.fife.ui.rsyntaxtextarea.ErrorStrip} even though they are * INFO-level and marked as "don't show in editor." */ public static class TaskNotice extends DefaultParserNotice { - - public TaskNotice(Parser parser, String message, int line, int offs, - int length) { + + public TaskNotice(Parser parser, String message, int line, int offs, int length) { super(parser, message, line, offs, length); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/ToolTipInfo.java b/src/org/fife/ui/rsyntaxtextarea/parser/ToolTipInfo.java index f6dfbeb..7a30fe7 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/ToolTipInfo.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/ToolTipInfo.java @@ -1,9 +1,7 @@ /* * 07/29/2009 - * * ToolTipInfo.java - A tool tip's text and hyperlink listener. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; @@ -12,10 +10,9 @@ import java.net.URL; import javax.swing.event.HyperlinkListener; - /** * Wrapper for a tool tip and a listener for hyperlink events in the tool - * tip (assuming the tip is HTML). If the {@code RSyntaxTextArea} instance + * tip (assuming the tip is HTML). If the {@code RSyntaxTextArea} instance * has {@link org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip}s enabled, * and the user clicks on a hyperlink in the tool tip, the specified * {@link HyperlinkListener} will be called. @@ -24,38 +21,40 @@ import javax.swing.event.HyperlinkListener; * @version 1.0 */ public class ToolTipInfo { - + private String text; private HyperlinkListener listener; private URL imageBase; - - + /** * Constructor. * - * @param text The tool tip text, or null for none. - * @param listener The hyperlink listener, or null for none. + * @param text + * The tool tip text, or null for none. + * @param listener + * The hyperlink listener, or null for none. */ public ToolTipInfo(String text, HyperlinkListener listener) { this(text, listener, null); } - - + /** * Constructor. * - * @param text The tool tip text, or null for none. - * @param l The hyperlink listener, or null for none. - * @param imageBase The base URL for images in the HTML text, - * or null for the default. + * @param text + * The tool tip text, or null for none. + * @param l + * The hyperlink listener, or null for none. + * @param imageBase + * The base URL for images in the HTML text, + * or null for the default. */ public ToolTipInfo(String text, HyperlinkListener l, URL imageBase) { this.text = text; this.listener = l; this.imageBase = imageBase; } - - + /** * Returns the listener to call when hyperlinks are clicked in the tool * tip. @@ -65,8 +64,7 @@ public class ToolTipInfo { public HyperlinkListener getHyperlinkListener() { return listener; } - - + /** * Returns the base URL that any images in the HTML tool tip live in. * This allows you to reference images in a jar file in your @@ -79,8 +77,7 @@ public class ToolTipInfo { public URL getImageBase() { return imageBase; } - - + /** * Returns the tool tip text to display. * @@ -89,6 +86,4 @@ public class ToolTipInfo { public String getToolTipText() { return text; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/parser/XmlParser.java b/src/org/fife/ui/rsyntaxtextarea/parser/XmlParser.java index 0bbe897..99654ea 100644 --- a/src/org/fife/ui/rsyntaxtextarea/parser/XmlParser.java +++ b/src/org/fife/ui/rsyntaxtextarea/parser/XmlParser.java @@ -1,9 +1,7 @@ /* * 08/16/2008 - * * XMLParser.java - Simple XML parser. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.parser; @@ -24,14 +22,14 @@ import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler; - /** - * A parser for XML documents. Adds squiggle underlines for any XML errors + * A parser for XML documents. Adds squiggle underlines for any XML errors * found (though most XML parsers don't really have error recovery and so only - * can find one error at a time).

+ * can find one error at a time). + *

* * This class isn't actually used by RSyntaxTextArea anywhere, but you can - * install and use it yourself. Doing so is as simple as: + * install and use it yourself. Doing so is as simple as: * *

  * XmlParser xmlParser = new XmlParser();
@@ -48,31 +46,32 @@ import org.xml.sax.helpers.DefaultHandler;
  * 
* * Also note that a single instance of this class can be installed on - * multiple instances of RSyntaxTextArea.

+ * multiple instances of RSyntaxTextArea. + *

* * For a more complete XML parsing/validation solution, see the - * RSTALanguageSupport + * RSTALanguageSupport * project's XmlLanguageSupport class. * * @author Robert Futrell * @version 1.1 */ public class XmlParser extends AbstractParser { - + private SAXParserFactory spf; private DefaultParseResult result; private EntityResolver entityResolver; - - + public XmlParser() { this(null); } - - + /** * Constructor allowing DTD validation of documents. * - * @param resolver An entity resolver to use if validation is enabled. + * @param resolver + * An entity resolver to use if validation is enabled. * @see #setValidating(boolean) */ public XmlParser(EntityResolver resolver) { @@ -84,8 +83,7 @@ public class XmlParser extends AbstractParser { fce.printStackTrace(); } } - - + /** * Returns whether this parser does DTD validation. * @@ -95,22 +93,18 @@ public class XmlParser extends AbstractParser { public boolean isValidating() { return spf.isValidating(); } - - + /** * {@inheritDoc} */ @Override public ParseResult parse(RSyntaxDocument doc, String style) { - result.clearNotices(); Element root = doc.getDefaultRootElement(); - result.setParsedLines(0, root.getElementCount()-1); - - if (spf==null || doc.getLength()==0) { + result.setParsedLines(0, root.getElementCount() - 1); + if (spf == null || doc.getLength() == 0) { return result; } - try { SAXParser sp = spf.newSAXParser(); Handler handler = new Handler(doc); @@ -121,109 +115,105 @@ public class XmlParser extends AbstractParser { } catch (SAXParseException spe) { // A fatal parse error - ignore; a ParserNotice was already created. } catch (Exception e) { - //e.printStackTrace(); // Will print if DTD specified and can't be found - result.addNotice(new DefaultParserNotice(this, - "Error parsing XML: " + e.getMessage(), 0, -1, -1)); + // e.printStackTrace(); // Will print if DTD specified and can't be + // found + result.addNotice(new DefaultParserNotice(this, "Error parsing XML: " + e.getMessage(), 0, -1, -1)); } - return result; - } - - + /** * Sets whether this parser will use DTD validation if required. * - * @param validating Whether DTD validation should be enabled. If this is - * true, documents must specify a DOCTYPE, and you - * should have used the constructor specifying an entity resolver. + * @param validating + * Whether DTD validation should be enabled. If this is + * true, documents must specify a DOCTYPE, and you + * should have used the constructor specifying an entity + * resolver. * @see #isValidating() */ public void setValidating(boolean validating) { spf.setValidating(validating); } - -/* - public static void main(String[] args) { - javax.swing.JFrame frame = new javax.swing.JFrame(); - org.fife.ui.rsyntaxtextarea.RSyntaxTextArea textArea = new - org.fife.ui.rsyntaxtextarea.RSyntaxTextArea(25, 40); - textArea.setSyntaxEditingStyle("text/xml"); - XmlParser parser = new XmlParser(new EntityResolver() { - public InputSource resolveEntity(String publicId, String systemId) - throws SAXException, IOException { - if ("http://fifesoft.com/rsyntaxtextarea/theme.dtd".equals(systemId)) { - return new org.xml.sax.InputSource(getClass().getResourceAsStream("/theme.dtd")); - } - return null; - } - }); - parser.setValidating(true); - textArea.addParser(parser); - try { - textArea.read(new java.io.BufferedReader(new java.io.FileReader("C:/temp/test.xml")), null); - } catch (Exception e) { - e.printStackTrace(); - } - frame.setContentPane(new org.fife.ui.rtextarea.RTextScrollPane(textArea)); - frame.pack(); - frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); - frame.setVisible(true); - } -*/ - + + /* + * public static void main(String[] args) { + * javax.swing.JFrame frame = new javax.swing.JFrame(); + * org.fife.ui.rsyntaxtextarea.RSyntaxTextArea textArea = new + * org.fife.ui.rsyntaxtextarea.RSyntaxTextArea(25, 40); + * textArea.setSyntaxEditingStyle("text/xml"); + * XmlParser parser = new XmlParser(new EntityResolver() { + * public InputSource resolveEntity(String publicId, String systemId) + * throws SAXException, IOException { + * if ("http://fifesoft.com/rsyntaxtextarea/theme.dtd".equals(systemId)) { + * return new + * org.xml.sax.InputSource(getClass().getResourceAsStream("/theme.dtd")); + * } + * return null; + * } + * }); + * parser.setValidating(true); + * textArea.addParser(parser); + * try { + * textArea.read(new java.io.BufferedReader(new + * java.io.FileReader("C:/temp/test.xml")), null); + * } catch (Exception e) { + * e.printStackTrace(); + * } + * frame.setContentPane(new + * org.fife.ui.rtextarea.RTextScrollPane(textArea)); + * frame.pack(); + * frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); + * frame.setVisible(true); + * } + */ /** - * Callback notified when errors are found in the XML document. Adds a + * Callback notified when errors are found in the XML document. Adds a * notice to be squiggle-underlined. */ private final class Handler extends DefaultHandler { - + private Document doc; - + private Handler(Document doc) { this.doc = doc; } - + private void doError(SAXParseException e, ParserNotice.Level level) { int line = e.getLineNumber() - 1; Element root = doc.getDefaultRootElement(); Element elem = root.getElement(line); int offs = elem.getStartOffset(); int len = elem.getEndOffset() - offs; - if (line==root.getElementCount()-1) { + if (line == root.getElementCount() - 1) { len++; } - DefaultParserNotice pn = new DefaultParserNotice(XmlParser.this, - e.getMessage(), line, offs, len); + DefaultParserNotice pn = new DefaultParserNotice(XmlParser.this, e.getMessage(), line, offs, len); pn.setLevel(level); result.addNotice(pn); } - + @Override public void error(SAXParseException e) { doError(e, ParserNotice.Level.ERROR); } - + @Override public void fatalError(SAXParseException e) { doError(e, ParserNotice.Level.ERROR); } - + @Override - public InputSource resolveEntity(String publicId, String systemId) - throws IOException, SAXException { - if (entityResolver!=null) { + public InputSource resolveEntity(String publicId, String systemId) throws IOException, SAXException { + if (entityResolver != null) { return entityResolver.resolveEntity(publicId, systemId); } return super.resolveEntity(publicId, systemId); } - + @Override public void warning(SAXParseException e) { doError(e, ParserNotice.Level.WARNING); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/templates/AbstractCodeTemplate.java b/src/org/fife/ui/rsyntaxtextarea/templates/AbstractCodeTemplate.java index 6c5d9a4..89607be 100644 --- a/src/org/fife/ui/rsyntaxtextarea/templates/AbstractCodeTemplate.java +++ b/src/org/fife/ui/rsyntaxtextarea/templates/AbstractCodeTemplate.java @@ -1,14 +1,11 @@ /* * 12/01/2008 - * * AbstractCodeTemplate.java - Base class for code templates. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.templates; - /** * A base class to build code templates on top of. * @@ -16,31 +13,29 @@ package org.fife.ui.rsyntaxtextarea.templates; * @version 1.0 */ public abstract class AbstractCodeTemplate implements CodeTemplate { - + /** * The ID of this template. */ private String id; - - + /** * This no-arg constructor is required for serialization purposes. */ - public AbstractCodeTemplate() { - } - - + public AbstractCodeTemplate() {} + /** * Creates a new template. * - * @param id The ID for this template. - * @throws IllegalArgumentException If id is null. + * @param id + * The ID for this template. + * @throws IllegalArgumentException + * If id is null. */ public AbstractCodeTemplate(String id) { setID(id); } - - + /** * Creates a deep copy of this template. * @@ -49,37 +44,34 @@ public abstract class AbstractCodeTemplate implements CodeTemplate { @Override public Object clone() { // This method can't be abstract as compilers don't like concrete - // subclassses calling super.clone() on an abstract super. + // subclassses calling super.clone() on an abstract super. try { return super.clone(); } catch (CloneNotSupportedException e) { - throw new InternalError( - "CodeTemplate implementation not Cloneable: " + - getClass().getName()); + throw new InternalError("CodeTemplate implementation not Cloneable: " + getClass().getName()); } } - - - + /** * Compares the StaticCodeTemplate to another. * - * @param o Another StaticCodeTemplate object. + * @param o + * Another StaticCodeTemplate object. * @return A negative integer, zero, or a positive integer as this * object is less than, equal-to, or greater than the passed-in * object. - * @throws ClassCastException If o is - * not an instance of CodeTemplate. + * @throws ClassCastException + * If o is + * not an instance of CodeTemplate. */ @Override public int compareTo(CodeTemplate o) { - if (o==null) { + if (o == null) { return -1; } return getID().compareTo(o.getID()); } - - + /** * Overridden to return "true" iff * {@link #compareTo(CodeTemplate)} returns 0. @@ -89,12 +81,11 @@ public abstract class AbstractCodeTemplate implements CodeTemplate { @Override public boolean equals(Object obj) { if (obj instanceof CodeTemplate) { - return compareTo(((CodeTemplate)obj))==0; + return compareTo(((CodeTemplate) obj)) == 0; } return false; } - - + /** * Returns the ID of this code template. * @@ -105,8 +96,7 @@ public abstract class AbstractCodeTemplate implements CodeTemplate { public String getID() { return id; } - - + /** * Returns the hash code for this template. * @@ -116,21 +106,20 @@ public abstract class AbstractCodeTemplate implements CodeTemplate { public int hashCode() { return id.hashCode(); } - - + /** * Sets the ID for this template. * - * @param id The ID for this template. - * @throws IllegalArgumentException If id is null. + * @param id + * The ID for this template. + * @throws IllegalArgumentException + * If id is null. * @see #getID() */ public void setID(String id) { - if (id==null) { + if (id == null) { throw new IllegalArgumentException("id cannot be null"); } this.id = id; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/templates/CodeTemplate.java b/src/org/fife/ui/rsyntaxtextarea/templates/CodeTemplate.java index 040746e..52c375d 100644 --- a/src/org/fife/ui/rsyntaxtextarea/templates/CodeTemplate.java +++ b/src/org/fife/ui/rsyntaxtextarea/templates/CodeTemplate.java @@ -1,9 +1,7 @@ /* * 11/29/2008 - * * CodeTemplate.java - A "template" (macro) for commonly-typed code. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.templates; @@ -14,15 +12,16 @@ import javax.swing.text.BadLocationException; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; - /** - * A "code template" is a kind of macro for commonly-typed code. It + * A "code template" is a kind of macro for commonly-typed code. It * associates a short identifier with a longer code snippet, then when the * code template is enabled and the short identifier is typed, it is - * replaced with the longer code snippet.

+ * replaced with the longer code snippet. + *

* * For example, you can associate the identifier forb - * (short for "for-block") with the following code:

+ * (short for "for-block") with the following code: + *

* *

  *   for (<caret>) {
@@ -32,44 +31,41 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
  *
  * Then, whenever you type forb followed by a trigger
  * (e.g., a space) into a text area with this CodeTemplate,
- * the code snippet is added in place of forb.  Further,
- * the caret is placed at the position denoted by <caret>.

+ * the code snippet is added in place of forb. Further, + * the caret is placed at the position denoted by <caret>. + *

* - * Static text replacements are done with {@link StaticCodeTemplate}. Dynamic + * Static text replacements are done with {@link StaticCodeTemplate}. Dynamic * templates can also be created and used. * * @author Robert Futrell * @version 0.1 * @see StaticCodeTemplate */ -public interface CodeTemplate extends Cloneable, Comparable, - Serializable { - - +public interface CodeTemplate extends Cloneable, Comparable, Serializable { + /** * Creates a deep copy of this template. * * @return A deep copy of this template. */ Object clone(); - - + /** * Returns the ID of this code template. * * @return The template's ID. */ String getID(); - - + /** - * Invokes this code template. The changes are made to the given text + * Invokes this code template. The changes are made to the given text * area. * - * @param textArea The text area to operate on. - * @throws BadLocationException If something bad happens. + * @param textArea + * The text area to operate on. + * @throws BadLocationException + * If something bad happens. */ void invoke(RSyntaxTextArea textArea) throws BadLocationException; - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rsyntaxtextarea/templates/StaticCodeTemplate.java b/src/org/fife/ui/rsyntaxtextarea/templates/StaticCodeTemplate.java index 5b34008..235935c 100644 --- a/src/org/fife/ui/rsyntaxtextarea/templates/StaticCodeTemplate.java +++ b/src/org/fife/ui/rsyntaxtextarea/templates/StaticCodeTemplate.java @@ -1,15 +1,14 @@ /* * 02/21/2005 - * * CodeTemplate.java - A "template" (macro) for commonly-typed code. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.templates; import java.io.IOException; import java.io.ObjectInputStream; + import javax.swing.text.BadLocationException; import javax.swing.text.Caret; import javax.swing.text.Element; @@ -18,12 +17,13 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; - /** - * A code template that inserts static text before and after the caret.

+ * A code template that inserts static text before and after the caret. + *

* * For example, you can associate the identifier forb - * (short for "for-block") with the following code:

+ * (short for "for-block") with the following code: + *

* *

  *   for (<caret>) {
@@ -33,7 +33,7 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities;
  *
  * Then, whenever you type forb followed by a trigger
  * (e.g., a space) into a text area with this CodeTemplate,
- * the code snippet is added in place of forb.  Further,
+ * the code snippet is added in place of forb. Further,
  * the caret is placed at the position denoted by <caret>.
  *
  * @author Robert Futrell
@@ -41,56 +41,50 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities;
  * @see CodeTemplate
  */
 public class StaticCodeTemplate extends AbstractCodeTemplate {
-
+	
 	private static final long serialVersionUID = 1;
-
 	/**
 	 * The code inserted before the caret position.
 	 */
 	private String beforeCaret;
-
 	/**
 	 * The code inserted after the caret position.
 	 */
 	private String afterCaret;
-
 	/**
 	 * Cached value representing whether beforeCaret contains
 	 * one or more newlines.
 	 */
 	private transient int firstBeforeNewline;
-
 	/**
 	 * Cached value representing whether afterCaret contains
 	 * one or more newlines.
 	 */
 	private transient int firstAfterNewline;
-
-	private static final String EMPTY_STRING		= "";
-
-
+	private static final String EMPTY_STRING = "";
+	
 	/**
-	 * Constructor.  This constructor only exists to support persistance
+	 * Constructor. This constructor only exists to support persistance
 	 * through serialization.
 	 */
-	public StaticCodeTemplate() {
-	}
-
-
+	public StaticCodeTemplate() {}
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param id The ID of this code template.
-	 * @param beforeCaret The text to place before the caret.
-	 * @param afterCaret The text to place after the caret.
+	 * @param id
+	 *            The ID of this code template.
+	 * @param beforeCaret
+	 *            The text to place before the caret.
+	 * @param afterCaret
+	 *            The text to place after the caret.
 	 */
-	public StaticCodeTemplate(String id, String beforeCaret, String afterCaret){
+	public StaticCodeTemplate(String id, String beforeCaret, String afterCaret) {
 		super(id);
 		setBeforeCaretText(beforeCaret);
 		setAfterCaretText(afterCaret);
 	}
-
-
+	
 	/**
 	 * Returns the text that will be placed after the caret.
 	 *
@@ -100,8 +94,7 @@ public class StaticCodeTemplate extends AbstractCodeTemplate {
 	public String getAfterCaretText() {
 		return afterCaret;
 	}
-
-
+	
 	/**
 	 * Returns the text that will be placed before the caret.
 	 *
@@ -111,143 +104,142 @@ public class StaticCodeTemplate extends AbstractCodeTemplate {
 	public String getBeforeCaretText() {
 		return beforeCaret;
 	}
-
-
+	
 	/**
 	 * Returns the "after caret" text, with each new line indented by
 	 * the specified amount.
 	 *
-	 * @param indent The amount to indent.
+	 * @param indent
+	 *            The amount to indent.
 	 * @return The "after caret" text.
 	 */
 	private String getAfterTextIndented(String indent) {
 		return getTextIndented(getAfterCaretText(), firstAfterNewline, indent);
 	}
-
-
+	
 	/**
 	 * Returns the "before caret" text, with each new line indented by
 	 * the specified amount.
 	 *
-	 * @param indent The amount to indent.
+	 * @param indent
+	 *            The amount to indent.
 	 * @return The "before caret" text.
 	 */
 	private String getBeforeTextIndented(String indent) {
-		return getTextIndented(getBeforeCaretText(),firstBeforeNewline,indent);
+		return getTextIndented(getBeforeCaretText(), firstBeforeNewline, indent);
 	}
-
-
+	
 	/**
 	 * Returns text with newlines indented by the specified amount.
 	 *
-	 * @param text The original text.
-	 * @param firstNewline The index of the first '\n' character.
-	 * @param indent The amount to indent.
+	 * @param text
+	 *            The original text.
+	 * @param firstNewline
+	 *            The index of the first '\n' character.
+	 * @param indent
+	 *            The amount to indent.
 	 * @return The indented text.
 	 */
-	private String getTextIndented(String text,int firstNewline,String indent) {
-		if (firstNewline==-1) {
+	private String getTextIndented(String text, int firstNewline, String indent) {
+		if (firstNewline == -1) {
 			return text;
 		}
 		int pos = 0;
-		int old = firstNewline+1;
+		int old = firstNewline + 1;
 		StringBuilder sb = new StringBuilder(text.substring(0, old));
 		sb.append(indent);
-		while ((pos=text.indexOf('\n', old))>-1) {
-			sb.append(text.substring(old, pos+1));
+		while ((pos = text.indexOf('\n', old)) > -1) {
+			sb.append(text.substring(old, pos + 1));
 			sb.append(indent);
-			old = pos+1;
+			old = pos + 1;
 		}
-		if (oldViews tend to use Shape.
 	 *
-	 * @param parent The parent view of the child whose bounds we're getting.
-	 * @param line The index of the child view.
-	 * @param editorRect Returned from the text area's
-	 *        getVisibleEditorRect method.
+	 * @param parent
+	 *            The parent view of the child whose bounds we're getting.
+	 * @param line
+	 *            The index of the child view.
+	 * @param editorRect
+	 *            Returned from the text area's
+	 *            getVisibleEditorRect method.
 	 * @return The child view's bounds.
 	 */
-	protected static final Rectangle getChildViewBounds(View parent, int line,
-										Rectangle editorRect) {
+	protected static final Rectangle getChildViewBounds(View parent, int line, Rectangle editorRect) {
 		Shape alloc = parent.getChildAllocation(line, editorRect);
-		if (alloc==null) {
+		if (alloc == null) {
 			// WrappedSyntaxView can have this when made so small it's
 			// no longer visible
 			return new Rectangle();
 		}
-		return alloc instanceof Rectangle ? (Rectangle)alloc :
-										alloc.getBounds();
+		return alloc instanceof Rectangle ? (Rectangle) alloc : alloc.getBounds();
 	}
-
-
+	
 	/**
 	 * Returns the parent Gutter component.
 	 *
@@ -77,49 +72,44 @@ abstract class AbstractGutterComponent extends JPanel {
 	 */
 	protected Gutter getGutter() {
 		Container parent = getParent();
-		return (parent instanceof Gutter) ? (Gutter)parent : null;
+		return (parent instanceof Gutter) ? (Gutter) parent : null;
 	}
-
-
+	
 	/**
 	 * Called when text is inserted to or removed from the text area.
 	 * Implementations can take this opportunity to repaint, revalidate, etc.
 	 *
-	 * @param e The document event.
+	 * @param e
+	 *            The document event.
 	 */
 	abstract void handleDocumentEvent(DocumentEvent e);
-
-
+	
 	/**
-	 * Called by the constructor before the text area is set.  This is a hook
-	 * to allow subclasses to do any needed initialization.  The default
+	 * Called by the constructor before the text area is set. This is a hook
+	 * to allow subclasses to do any needed initialization. The default
 	 * implementation does nothing.
 	 */
-	protected void init() {
-	}
-
-
+	protected void init() {}
+	
 	/**
-	 * Called when the line heights of the text area change.  This is usually
+	 * Called when the line heights of the text area change. This is usually
 	 * the result of one or more of the fonts in the editor changing.
 	 */
 	abstract void lineHeightsChanged();
-
-
+	
 	/**
-	 * Sets the text area being displayed.  Subclasses can override, but
+	 * Sets the text area being displayed. Subclasses can override, but
 	 * should call the super implementation.
 	 *
-	 * @param textArea The text area.
+	 * @param textArea
+	 *            The text area.
 	 */
 	public void setTextArea(RTextArea textArea) {
 		this.textArea = textArea;
-		int lineCount = textArea==null ? 0 : textArea.getLineCount();
-		if (currentLineCount!=lineCount) {
+		int lineCount = textArea == null ? 0 : textArea.getLineCount();
+		if (currentLineCount != lineCount) {
 			currentLineCount = lineCount;
 			repaint();
 		}
 	}
-
-
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/rtextarea/BackgroundPainterStrategy.java b/src/org/fife/ui/rtextarea/BackgroundPainterStrategy.java
index d7b9724..a459719 100644
--- a/src/org/fife/ui/rtextarea/BackgroundPainterStrategy.java
+++ b/src/org/fife/ui/rtextarea/BackgroundPainterStrategy.java
@@ -1,10 +1,8 @@
 /*
  * 01/22/2005
- *
  * BackgroundPainterStrategy.java - Renders an RTextAreaBase's background
  * using some strategy.
- *
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * RSyntaxTextArea.License.txt file for details.
  */
 package org.fife.ui.rtextarea;
@@ -12,10 +10,9 @@ package org.fife.ui.rtextarea;
 import java.awt.Graphics;
 import java.awt.Rectangle;
 
-
 /**
  * Interface for classes that paint the background of an
- * RTextAreaBase.  The Strategy pattern is used for this
+ * RTextAreaBase. The Strategy pattern is used for this
  * object because the background can be painted as a solid color, as
  * an image, and possibly other ways (gradients, animated images, etc.).
  * When a method to change the background of an RTextAreaBase
@@ -29,16 +26,15 @@ import java.awt.Rectangle;
  * @see org.fife.ui.rtextarea.ColorBackgroundPainterStrategy
  */
 public interface BackgroundPainterStrategy {
-
-
+	
 	/**
 	 * Paints the background.
 	 *
-	 * @param g The graphics context.
-	 * @param bounds The bounds of the object whose backgrouns we're
-	 *        painting.
+	 * @param g
+	 *            The graphics context.
+	 * @param bounds
+	 *            The bounds of the object whose backgrouns we're
+	 *            painting.
 	 */
 	void paint(Graphics g, Rectangle bounds);
-
-
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/rtextarea/BufferedImageBackgroundPainterStrategy.java b/src/org/fife/ui/rtextarea/BufferedImageBackgroundPainterStrategy.java
index 4f9534e..f770c49 100644
--- a/src/org/fife/ui/rtextarea/BufferedImageBackgroundPainterStrategy.java
+++ b/src/org/fife/ui/rtextarea/BufferedImageBackgroundPainterStrategy.java
@@ -1,10 +1,8 @@
 /*
  * 01/22/2005
- *
  * BufferedImageBackgroundPainterStrategy.java - Renders an RTextAreaBase's
  * background as an image using a BufferedImage.
- *
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * RSyntaxTextArea.License.txt file for details.
  */
 package org.fife.ui.rtextarea;
@@ -18,17 +16,18 @@ import java.awt.image.BufferedImage;
 import java.util.HashMap;
 import java.util.Map;
 
-
 /**
  * A strategy for painting the background of an RTextAreaBase
- * as an image.  The image is always stretched to completely fill the
- * RTextAreaBase.

+ * as an image. The image is always stretched to completely fill the + * RTextAreaBase. + *

* * A java.awt.image.BufferedImage is used for rendering; * theoretically, for performance you should use * java.awt.image.VolatileImage; see * org.fife.ui.RTextArea.VolatileImageBackgroundPainterStrategy - * for this.

+ * for this. + *

* * You can set the scaling hint used when stretching/skewing the image * to fit in the RTextAreaBase's background via the @@ -42,84 +41,75 @@ import java.util.Map; * @see org.fife.ui.rtextarea.ImageBackgroundPainterStrategy * @see org.fife.ui.rtextarea.VolatileImageBackgroundPainterStrategy */ -public class BufferedImageBackgroundPainterStrategy - extends ImageBackgroundPainterStrategy { - +public class BufferedImageBackgroundPainterStrategy extends ImageBackgroundPainterStrategy { + private BufferedImage bgImage; - - + /** * Constructor. * - * @param ta The text area whose background we'll be painting. + * @param ta + * The text area whose background we'll be painting. */ public BufferedImageBackgroundPainterStrategy(RTextAreaBase ta) { super(ta); } - - + /** - * Paints the image at the specified location. This method assumes + * Paints the image at the specified location. This method assumes * scaling has already been done, and simply paints the background * image "as-is." * - * @param g The graphics context. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. + * @param g + * The graphics context. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. */ @Override protected void paintImage(Graphics g, int x, int y) { if (bgImage != null) { - g.drawImage(bgImage, x,y, null); + g.drawImage(bgImage, x, y, null); } } - - + /** * Rescales the displayed image to be the specified size. * - * @param width The new width of the image. - * @param height The new height of the image. - * @param hint The scaling hint to use. + * @param width + * The new width of the image. + * @param height + * The new height of the image. + * @param hint + * The scaling hint to use. */ @Override protected void rescaleImage(int width, int height, int hint) { - Image master = getMasterImage(); - if (master!=null) { - - Map hints = - new HashMap(); + if (master != null) { + Map hints = new HashMap(); switch (hint) { default: case Image.SCALE_AREA_AVERAGING: case Image.SCALE_SMOOTH: - hints.put(RenderingHints.KEY_INTERPOLATION, - RenderingHints.VALUE_INTERPOLATION_BICUBIC); - hints.put(RenderingHints.KEY_RENDERING, - RenderingHints.VALUE_RENDER_QUALITY); - hints.put(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); + hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); + hints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); + hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); } - bgImage = createAcceleratedImage(width, height); Graphics2D g = bgImage.createGraphics(); g.addRenderingHints(hints); - g.drawImage(master, 0,0, width,height, null); + g.drawImage(master, 0, 0, width, height, null); g.dispose(); - - } - else { + } else { bgImage = null; } } - - + private BufferedImage createAcceleratedImage(int width, int height) { - GraphicsConfiguration gc= getRTextAreaBase().getGraphicsConfiguration(); + GraphicsConfiguration gc = getRTextAreaBase().getGraphicsConfiguration(); BufferedImage image = gc.createCompatibleImage(width, height); return image; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/CaretStyle.java b/src/org/fife/ui/rtextarea/CaretStyle.java index 110993b..1734471 100644 --- a/src/org/fife/ui/rtextarea/CaretStyle.java +++ b/src/org/fife/ui/rtextarea/CaretStyle.java @@ -1,38 +1,26 @@ /* * 04/23/2014 - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; - /** * Provides various ways to render a caret such as {@link ConfigurableCaret}.. * * Currently supported renderings include: * *

    - *
  1. As a vertical line (like DefaultCaret)
  2. - *
  3. As a slightly thicker vertical line (like Eclipse)
  4. - *
  5. As an underline
  6. - *
  7. As a "block caret"
  8. - *
  9. As a rectangle around the current character
  10. + *
  11. As a vertical line (like DefaultCaret)
  12. + *
  13. As a slightly thicker vertical line (like Eclipse)
  14. + *
  15. As an underline
  16. + *
  17. As a "block caret"
  18. + *
  19. As a rectangle around the current character
  20. *
* * @author Robert Futrell * @version 1.0 */ public enum CaretStyle { - - VERTICAL_LINE_STYLE, - - UNDERLINE_STYLE, - - BLOCK_STYLE, - - BLOCK_BORDER_STYLE, - - THICK_VERTICAL_LINE_STYLE; - -} \ No newline at end of file + VERTICAL_LINE_STYLE, UNDERLINE_STYLE, BLOCK_STYLE, BLOCK_BORDER_STYLE, THICK_VERTICAL_LINE_STYLE; +} diff --git a/src/org/fife/ui/rtextarea/ChangeableHighlightPainter.java b/src/org/fife/ui/rtextarea/ChangeableHighlightPainter.java index c48d888..1d5f298 100644 --- a/src/org/fife/ui/rtextarea/ChangeableHighlightPainter.java +++ b/src/org/fife/ui/rtextarea/ChangeableHighlightPainter.java @@ -1,10 +1,8 @@ /* * 11/10/2004 - * * ChangableHighlightPainter.java - A highlight painter whose color you can * change. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -22,6 +20,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; + import javax.swing.plaf.TextUI; import javax.swing.text.BadLocationException; import javax.swing.text.JTextComponent; @@ -29,52 +28,43 @@ import javax.swing.text.LayeredHighlighter; import javax.swing.text.Position; import javax.swing.text.View; - /** * An extension of LayerPainter that allows the user to * change several of its properties: * *
    - *
  • Its color/fill style (can use a GradientPaint, for - * example).
  • - *
  • Whether the edges of a painted highlight are rounded.
  • - *
  • Whether painted highlights have translucency.
  • + *
  • Its color/fill style (can use a GradientPaint, for + * example).
  • + *
  • Whether the edges of a painted highlight are rounded.
  • + *
  • Whether painted highlights have translucency.
  • *
* * @author Robert Futrell * @version 0.6 */ -public class ChangeableHighlightPainter - extends LayeredHighlighter.LayerPainter implements Serializable { - - +public class ChangeableHighlightPainter extends LayeredHighlighter.LayerPainter implements Serializable { + /** * The Paint/Color of this highlight. */ private Paint paint; - /** * Whether selections have rounded edges. */ private boolean roundedEdges; - /** * The alpha composite used to render with translucency. */ private transient AlphaComposite alphaComposite; - /** - * The alpha value used in computing translucency. This should stay in the + * The alpha value used in computing translucency. This should stay in the * range 0.0f (completely invisible) to 1.0f * (completely opaque). */ private float alpha; - - - private static final int ARCWIDTH = 8; - private static final int ARCHEIGHT = 8; - - + private static final int ARCWIDTH = 8; + private static final int ARCHEIGHT = 8; + /** * Creates a new ChangableHighlightPainter that paints * highlights with the text area's selection color (i.e., behaves exactly @@ -85,57 +75,58 @@ public class ChangeableHighlightPainter public ChangeableHighlightPainter() { this(null); } - - + /** * Creates a new highlight painter using the specified Paint * without rounded edges. * - * @param paint The Paint (usually a - * java.awt.Color) with which to paint the - * highlights. + * @param paint + * The Paint (usually a + * java.awt.Color) with which to paint the + * highlights. */ public ChangeableHighlightPainter(Paint paint) { this(paint, false); } - - + /** * Creates a new highlight painter. * - * @param paint The Paint (usually a - * java.awt.Color) with which to paint the - * highlights. - * @param rounded Whether to use rounded edges on the highlights. + * @param paint + * The Paint (usually a + * java.awt.Color) with which to paint the + * highlights. + * @param rounded + * Whether to use rounded edges on the highlights. */ public ChangeableHighlightPainter(Paint paint, boolean rounded) { this(paint, rounded, 1.0f); } - - + /** * Creates a new highlight painter. * - * @param paint The Paint (usually a - * java.awt.Color) with which to paint the - * highlights. - * @param rounded Whether to use rounded edges on the highlights. - * @param alpha The alpha value to use when painting highlights. This - * value should be in the range 0.0f (completely - * transparent) through 1.0f (opaque). + * @param paint + * The Paint (usually a + * java.awt.Color) with which to paint the + * highlights. + * @param rounded + * Whether to use rounded edges on the highlights. + * @param alpha + * The alpha value to use when painting highlights. This + * value should be in the range 0.0f (completely + * transparent) through 1.0f (opaque). */ - public ChangeableHighlightPainter(Paint paint, boolean rounded, - float alpha) { + public ChangeableHighlightPainter(Paint paint, boolean rounded, float alpha) { setPaint(paint); setRoundedEdges(rounded); setAlpha(alpha); } - - + /** * Returns the alpha value used in computing the translucency of these - * highlights. A value of 1.0f (the default) means that no - * translucency is used; there is no performance hit for this value. For + * highlights. A value of 1.0f (the default) means that no + * translucency is used; there is no performance hit for this value. For * all other values ([0.0f..1.0f)), there will be a * performance hit. * @@ -145,8 +136,7 @@ public class ChangeableHighlightPainter public float getAlpha() { return alpha; } - - + /** * Returns the alpha composite to use when rendering highlights with this * painter. @@ -154,14 +144,12 @@ public class ChangeableHighlightPainter * @return The alpha composite. */ private AlphaComposite getAlphaComposite() { - if (alphaComposite==null) { - alphaComposite = AlphaComposite.getInstance( - AlphaComposite.SRC_OVER, alpha); + if (alphaComposite == null) { + alphaComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha); } return alphaComposite; } - - + /** * Returns the Paint (usually a java.awt.Color) * being used to paint highlights. @@ -172,8 +160,7 @@ public class ChangeableHighlightPainter public Paint getPaint() { return paint; } - - + /** * Returns whether rounded edges are used when painting selections with * this highlight painter. @@ -184,222 +171,192 @@ public class ChangeableHighlightPainter public boolean getRoundedEdges() { return roundedEdges; } - - + /** * Paints a highlight. * - * @param g the graphics context - * @param offs0 the starting model offset >= 0 - * @param offs1 the ending model offset >= offs1 - * @param bounds the bounding box for the highlight - * @param c the editor + * @param g + * the graphics context + * @param offs0 + * the starting model offset >= 0 + * @param offs1 + * the ending model offset >= offs1 + * @param bounds + * the bounding box for the highlight + * @param c + * the editor */ @Override - public void paint(Graphics g, int offs0, int offs1, Shape bounds, - JTextComponent c) { - + public void paint(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c) { Rectangle alloc = bounds.getBounds(); - // Set up translucency if necessary. - Graphics2D g2d = (Graphics2D)g; + Graphics2D g2d = (Graphics2D) g; Composite originalComposite = null; - if (getAlpha()<1.0f) { + if (getAlpha() < 1.0f) { originalComposite = g2d.getComposite(); g2d.setComposite(getAlphaComposite()); } - try { - // Determine locations. TextUI mapper = c.getUI(); Rectangle p0 = mapper.modelToView(c, offs0); Rectangle p1 = mapper.modelToView(c, offs1); Paint paint = getPaint(); - if (paint==null) { + if (paint == null) { g2d.setColor(c.getSelectionColor()); - } - else { + } else { g2d.setPaint(paint); } - // Entire highlight is on one line. if (p0.y == p1.y) { // Standard Swing views return 0 width for chars, but ours - // returns the char's width. Set this to 0 here since p1 is + // returns the char's width. Set this to 0 here since p1 is // technically an exclusive boundary. p1.width = 0; Rectangle r = p0.union(p1); g2d.fillRect(r.x, r.y, r.width, r.height); } - // Highlight spans lines. else { int p0ToMarginWidth = alloc.x + alloc.width - p0.x; g2d.fillRect(p0.x, p0.y, p0ToMarginWidth, p0.height); if ((p0.y + p0.height) != p1.y) { - g2d.fillRect(alloc.x, p0.y + p0.height, alloc.width, - p1.y - (p0.y + p0.height)); + g2d.fillRect(alloc.x, p0.y + p0.height, alloc.width, p1.y - (p0.y + p0.height)); } g2d.fillRect(alloc.x, p1.y, (p1.x - alloc.x), p1.height); } - } catch (BadLocationException e) { // Never happens. e.printStackTrace(); } finally { // Restore state from before translucency if necessary. - if (getAlpha()<1.0f) { + if (getAlpha() < 1.0f) { g2d.setComposite(originalComposite); } } - } - - + /** * Paints a portion of a highlight. * - * @param g the graphics context - * @param offs0 the starting model offset >= 0 - * @param offs1 the ending model offset >= offs1 - * @param bounds the bounding box of the view, which is not - * necessarily the region to paint. - * @param c the editor - * @param view View painting for + * @param g + * the graphics context + * @param offs0 + * the starting model offset >= 0 + * @param offs1 + * the ending model offset >= offs1 + * @param bounds + * the bounding box of the view, which is not + * necessarily the region to paint. + * @param c + * the editor + * @param view + * View painting for * @return region drawing occurred in */ @Override - public Shape paintLayer(Graphics g, int offs0, int offs1, - Shape bounds, JTextComponent c, View view) { - + public Shape paintLayer(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c, View view) { // Set up translucency if necessary. - Graphics2D g2d = (Graphics2D)g; + Graphics2D g2d = (Graphics2D) g; Composite originalComposite = null; - if (getAlpha()<1.0f) { + if (getAlpha() < 1.0f) { originalComposite = g2d.getComposite(); g2d.setComposite(getAlphaComposite()); } - // Set the color (our own if defined, otherwise text area's). Paint paint = getPaint(); - if (paint==null) { + if (paint == null) { g2d.setColor(c.getSelectionColor()); - } - else { + } else { g2d.setPaint(paint); } - // This special case isn't needed for most standard Swing Views (which // always return a width of 1 for modelToView() calls), but it is // needed for RSTA views, which actually return the width of chars for - // modelToView calls. But this should be faster anyway, as we + // modelToView calls. But this should be faster anyway, as we // short-circuit and do only one modelToView() for one offset. - if (offs0==offs1) { + if (offs0 == offs1) { try { - Shape s = view.modelToView(offs0, bounds, - Position.Bias.Forward); + Shape s = view.modelToView(offs0, bounds, Position.Bias.Forward); Rectangle r = s.getBounds(); - g.drawLine(r.x, r.y, r.x, r.y+r.height); + g.drawLine(r.x, r.y, r.x, r.y + r.height); return r; } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens return null; } } - // Contained in view, can just use bounds. - if (offs0==view.getStartOffset() && offs1==view.getEndOffset()) { - + if (offs0 == view.getStartOffset() && offs1 == view.getEndOffset()) { Rectangle alloc; if (bounds instanceof Rectangle) { - alloc = (Rectangle)bounds; - } - else { + alloc = (Rectangle) bounds; + } else { alloc = bounds.getBounds(); } - g2d.fillRect(alloc.x, alloc.y, alloc.width, alloc.height); - // Restore state from before translucency if necessary. - if (getAlpha()<1.0f) { + if (getAlpha() < 1.0f) { g2d.setComposite(originalComposite); } - return alloc; - } - // Should only render part of View. else { - try { - - Shape shape = view.modelToView(offs0, Position.Bias.Forward, - offs1,Position.Bias.Backward, - bounds); - Rectangle r = (shape instanceof Rectangle) ? - (Rectangle)shape : shape.getBounds(); + Shape shape = view.modelToView(offs0, Position.Bias.Forward, offs1, Position.Bias.Backward, bounds); + Rectangle r = (shape instanceof Rectangle) ? (Rectangle) shape : shape.getBounds(); if (roundedEdges) { - g2d.fillRoundRect(r.x,r.y, r.width,r.height, ARCWIDTH, - ARCHEIGHT); - } - else { + g2d.fillRoundRect(r.x, r.y, r.width, r.height, ARCWIDTH, ARCHEIGHT); + } else { g2d.fillRect(r.x, r.y, r.width, r.height); } - // Restore state from before translucency if necessary. - if (getAlpha()<1.0f) { + if (getAlpha() < 1.0f) { g2d.setComposite(originalComposite); } - return r; - } catch (BadLocationException ble) { ble.printStackTrace(); } finally { // Restore state from before translucency if necessary. - if (getAlpha()<1.0f) { + if (getAlpha() < 1.0f) { g2d.setComposite(originalComposite); } } - } - // Only if exception return null; - } - - + /** * Deserializes a painter. * - * @param s The stream to read from. + * @param s + * The stream to read from. * @throws ClassNotFoundException * @throws IOException */ - private void readObject(ObjectInputStream s) - throws ClassNotFoundException, IOException { + private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException { s.defaultReadObject(); - // We cheat and always serialize the Paint as a Color. "-1" means + // We cheat and always serialize the Paint as a Color. "-1" means // no Paint (i.e. use system selection color when painting). int rgb = s.readInt(); - paint = rgb==-1 ? null : new Color(rgb); - alphaComposite = null; // Keep FindBugs happy. This will get set later + paint = rgb == -1 ? null : new Color(rgb); + alphaComposite = null; // Keep FindBugs happy. This will get set later } - - + /** - * Sets the alpha value used in rendering highlights. If this value is + * Sets the alpha value used in rendering highlights. If this value is * 1.0f (the default), the highlights are rendered completely - * opaque. This behavior matches that of - * DefaultHighlightPainter and imposes no performance hit. If + * opaque. This behavior matches that of + * DefaultHighlightPainter and imposes no performance hit. If * this value is below 1.0f, it represents how opaque the - * highlight will be. There will be a small performance hit for values + * highlight will be. There will be a small performance hit for values * less than 1.0f. * - * @param alpha The new alpha value to use for transparency. + * @param alpha + * The new alpha value to use for transparency. * @see #getAlpha */ public void setAlpha(float alpha) { @@ -408,49 +365,47 @@ public class ChangeableHighlightPainter this.alpha = Math.min(1.0f, alpha); alphaComposite = null; // So it is recreated with new alpha. } - - + /** * Sets the Paint (usually a java.awt.Color) * used to paint this highlight. * - * @param paint The new Paint. + * @param paint + * The new Paint. * @see #getPaint */ public void setPaint(Paint paint) { this.paint = paint; } - - + /** * Sets whether rounded edges are used when painting this highlight. * - * @param rounded Whether rounded edges should be used. + * @param rounded + * Whether rounded edges should be used. * @see #getRoundedEdges */ public void setRoundedEdges(boolean rounded) { roundedEdges = rounded; } - - + /** * Serializes this painter. * - * @param s The stream to write to. - * @throws IOException If an IO error occurs. + * @param s + * The stream to write to. + * @throws IOException + * If an IO error occurs. */ private void writeObject(ObjectOutputStream s) throws IOException { s.defaultWriteObject(); int rgb = -1; // No Paint -> Use JTextComponent's selection color - if (paint!=null) { + if (paint != null) { // NOTE: We cheat and always serialize the Paint as a Color. // This is (practically) always the case anyway. - Color c = (paint instanceof Color) ? ((Color)paint) : - SystemColor.textHighlight; + Color c = (paint instanceof Color) ? ((Color) paint) : SystemColor.textHighlight; rgb = c.getRGB(); } s.writeInt(rgb); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/ClipboardHistory.java b/src/org/fife/ui/rtextarea/ClipboardHistory.java index 29badd1..4a4870d 100644 --- a/src/org/fife/ui/rtextarea/ClipboardHistory.java +++ b/src/org/fife/ui/rtextarea/ClipboardHistory.java @@ -1,9 +1,7 @@ /* * 08/29/2014 - * * ClipboardHistory.java - A history of text added to the clipboard. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -12,14 +10,15 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; - /** - * Listens for cuts and copies from instances of {@link RTextArea}. This is - * used for the "clipboard history" shortcut (Ctrl+Shift+V by default).

+ * Listens for cuts and copies from instances of {@link RTextArea}. This is + * used for the "clipboard history" shortcut (Ctrl+Shift+V by default). + *

* * Note that this class does not listen for all events on the system clipboard, - * because that functionality is pretty fragile. See - * + * because that functionality is pretty fragile. See + * * http://stackoverflow.com/questions/5484927/listen-to-clipboard-changes-check-ownership * for more information. * @@ -27,36 +26,32 @@ import java.util.List; * @version 1.0 */ public final class ClipboardHistory { - + private static ClipboardHistory instance; - private List history; private int maxSize; - private static final int DEFAULT_MAX_SIZE = 12; - - + private ClipboardHistory() { history = new ArrayList(); maxSize = DEFAULT_MAX_SIZE; } - - + /** * Adds an entry to the clipboard history. * - * @param str The text to add. + * @param str + * The text to add. * @see #getHistory() */ public void add(String str) { int size = history.size(); - if (size==0) { + if (size == 0) { history.add(str); - } - else { + } else { int index = history.indexOf(str); - if (index!=size-1) { - if (index>-1) { + if (index != size - 1) { + if (index > -1) { history.remove(index); } history.add(str); @@ -64,24 +59,23 @@ public final class ClipboardHistory { trim(); } } - - + /** * Returns the singleton instance of this class, lazily creating it if - * necessary.

+ * necessary. + *

* * This method should only be called on the EDT. * * @return The singleton instance of this class. */ public static ClipboardHistory get() { - if (instance==null) { + if (instance == null) { instance = new ClipboardHistory(); } return instance; } - - + /** * Returns the clipboard history, in most-recently-used order. * @@ -92,8 +86,7 @@ public final class ClipboardHistory { Collections.reverse(copy); return copy; } - - + /** * Returns the maximum number of clipboard values remembered. * @@ -103,34 +96,32 @@ public final class ClipboardHistory { public int getMaxSize() { return maxSize; } - - + /** * Sets the maximum number of clipboard values remembered. * - * @param maxSize The maximum number of clipboard values to remember. - * @throws IllegalArgumentException If maxSize is not greater - * than zero. + * @param maxSize + * The maximum number of clipboard values to remember. + * @throws IllegalArgumentException + * If maxSize is not greater + * than zero. * @see #getMaxSize() */ public void setMaxSize(int maxSize) { - if (maxSize<=0) { + if (maxSize <= 0) { throw new IllegalArgumentException("Maximum size must be >= 0"); } this.maxSize = maxSize; trim(); } - - + /** * Ensures the remembered set of strings is not larger than the maximum * allowed size. */ private void trim() { - while (history.size()>maxSize) { + while (history.size() > maxSize) { history.remove(0); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/ClipboardHistoryPopup.java b/src/org/fife/ui/rtextarea/ClipboardHistoryPopup.java index 17f0cd6..a028e20 100644 --- a/src/org/fife/ui/rtextarea/ClipboardHistoryPopup.java +++ b/src/org/fife/ui/rtextarea/ClipboardHistoryPopup.java @@ -1,9 +1,7 @@ /* * 08/16/2014 - * * ClipboardHistoryPopup.java - Shows clipboard history in a popup window. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -43,122 +41,102 @@ import javax.swing.text.Caret; import org.fife.ui.rsyntaxtextarea.focusabletip.TipUtil; - /** * A popup window that displays the most recent snippets added to the clipboard - * of an RSyntaxTextArea. Selecting one pastes that snippet. + * of an RSyntaxTextArea. Selecting one pastes that snippet. * * @author Robert Futrell * @version 1.0 */ class ClipboardHistoryPopup extends JWindow { - + private RTextArea textArea; - private ChoiceList list; private transient Listener listener; private boolean prevCaretAlwaysVisible; - /** * The space between the caret and the completion popup. */ - private static final int VERTICAL_SPACE = 1; - - private static final String MSG = "org.fife.ui.rtextarea.RTextArea"; - - + private static final int VERTICAL_SPACE = 1; + private static final String MSG = "org.fife.ui.rtextarea.RTextArea"; + /** * Constructor. * - * @param parent The parent window containing textArea. - * @param textArea The text area to paste into. + * @param parent + * The parent window containing textArea. + * @param textArea + * The text area to paste into. */ ClipboardHistoryPopup(Window parent, RTextArea textArea) { - super(parent); this.textArea = textArea; - JPanel cp = new JPanel(new BorderLayout()); - cp.setBorder(BorderFactory.createCompoundBorder( - org.fife.ui.rsyntaxtextarea.focusabletip.TipUtil.getToolTipBorder(), + cp.setBorder(BorderFactory.createCompoundBorder(org.fife.ui.rsyntaxtextarea.focusabletip.TipUtil.getToolTipBorder(), BorderFactory.createEmptyBorder(2, 5, 5, 5))); cp.setBackground(org.fife.ui.rsyntaxtextarea.focusabletip.TipUtil.getToolTipBackground()); setContentPane(cp); - ResourceBundle msg = ResourceBundle.getBundle(MSG); - JLabel title = new JLabel( - msg.getString("Action.ClipboardHistory.Popup.Label")); + JLabel title = new JLabel(msg.getString("Action.ClipboardHistory.Popup.Label")); cp.add(title, BorderLayout.NORTH); - list = new ChoiceList(); JScrollPane sp = new JScrollPane(list); sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); cp.add(sp); - installKeyBindings(); listener = new Listener(); setLocation(); - } - - + /** * Overridden to ensure this popup stays in a specific size range. */ @Override public Dimension getPreferredSize() { Dimension size = super.getPreferredSize(); - if (size!=null) { + if (size != null) { size.width = Math.min(size.width, 300); size.width = Math.max(size.width, 200); } return size; } - - + /** * Inserts the selected item into the editor and disposes of this popup. */ private void insertSelectedItem() { Object lvp = list.getSelectedValue(); - if (lvp!=null) { + if (lvp != null) { listener.uninstallAndHide(); - String text = ((LabelValuePair)lvp).value; + String text = ((LabelValuePair) lvp).value; textArea.replaceSelection(text); ClipboardHistory.get().add(text); // Move this item to the top } } - - + /** * Adds key bindings to this popup. */ private void installKeyBindings() { - - InputMap im = getRootPane().getInputMap( - JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + InputMap im = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); ActionMap am = getRootPane().getActionMap(); - KeyStroke escapeKS = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); im.put(escapeKS, "onEscape"); am.put("onEscape", new EscapeAction()); list.getInputMap().remove(escapeKS); } - - + public void setContents(List contents) { list.setContents(contents); // Must re-size since we now have data! pack(); } - - + /** * Positions this popup to be in the top right-hand corner of the parent * editor. */ private void setLocation() { - Rectangle r = null; try { r = textArea.modelToView(textArea.getCaretPosition()); @@ -170,40 +148,34 @@ class ClipboardHistoryPopup extends JWindow { SwingUtilities.convertPointToScreen(p, textArea); r.x = p.x; r.y = p.y; - Rectangle screenBounds = TipUtil.getScreenBoundsForPoint(r.x, r.y); - //Dimension screenSize = getToolkit().getScreenSize(); - + // Dimension screenSize = getToolkit().getScreenSize(); int totalH = getHeight(); - - // Try putting our stuff "below" the caret first. We assume that the + // Try putting our stuff "below" the caret first. We assume that the // entire height of our stuff fits on the screen one way or the other. - int y = r.y + r.height + VERTICAL_SPACE; - if (y+totalH>screenBounds.height) { + int y = r.y + r.height + VERTICAL_SPACE; + if (y + totalH > screenBounds.height) { y = r.y - VERTICAL_SPACE - getHeight(); } - - // Get x-coordinate of completions. Try to align left edge with the + // Get x-coordinate of completions. Try to align left edge with the // caret first. int x = r.x; if (!textArea.getComponentOrientation().isLeftToRight()) { x -= getWidth(); // RTL => align right edge } - if (xscreenBounds.x+screenBounds.width) { // completions don't fit + } else if (x + getWidth() > screenBounds.x + screenBounds.width) { // completions + // don't + // fit x = screenBounds.x + screenBounds.width - getWidth(); } - setLocation(x, y); - } - - + @Override public void setVisible(boolean visible) { - if (list.getModel().getSize()==0) { + if (list.getModel().getSize() == 0) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } @@ -211,10 +183,11 @@ class ClipboardHistoryPopup extends JWindow { updateTextAreaCaret(visible); if (visible) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { requestFocus(); - if (list.getModel().getSize()>0) { + if (list.getModel().getSize() > 0) { list.setSelectedIndex(0); } list.requestFocusInWindow(); @@ -222,123 +195,117 @@ class ClipboardHistoryPopup extends JWindow { }); } } - - + /** * (Possibly) toggles the "always visible" state of the text area's * caret. * - * @param visible Whether this popup window was just made visible (as - * opposed to hidden). + * @param visible + * Whether this popup window was just made visible (as + * opposed to hidden). */ private void updateTextAreaCaret(boolean visible) { Caret caret = textArea.getCaret(); if (caret instanceof ConfigurableCaret) { // Always true by default - ConfigurableCaret cc = (ConfigurableCaret)caret; + ConfigurableCaret cc = (ConfigurableCaret) caret; if (visible) { prevCaretAlwaysVisible = cc.isAlwaysVisible(); cc.setAlwaysVisible(true); - } - else { + } else { cc.setAlwaysVisible(prevCaretAlwaysVisible); } } } - - + /** * Action performed when Escape is pressed in this popup. */ private class EscapeAction extends AbstractAction { - + @Override public void actionPerformed(ActionEvent e) { listener.uninstallAndHide(); } - } - - + /** * Listens for events in this popup. */ private class Listener extends WindowAdapter implements ComponentListener { - + Listener() { - addWindowFocusListener(this); list.addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { - if (e.getClickCount()==2) { + if (e.getClickCount() == 2) { insertSelectedItem(); } } }); - list.getInputMap().put( - KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onEnter"); + list.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "onEnter"); list.getActionMap().put("onEnter", new AbstractAction() { + @Override public void actionPerformed(ActionEvent e) { insertSelectedItem(); } }); - // If anything happens to the "parent" window, hide this popup - Window parent = (Window)getParent(); + Window parent = (Window) getParent(); parent.addWindowFocusListener(this); parent.addWindowListener(this); parent.addComponentListener(this); - } - + @Override public void componentResized(ComponentEvent e) { uninstallAndHide(); } - + @Override public void componentMoved(ComponentEvent e) { uninstallAndHide(); } - + @Override public void componentShown(ComponentEvent e) { uninstallAndHide(); } - + @Override public void componentHidden(ComponentEvent e) { uninstallAndHide(); } - + @Override public void windowActivated(WindowEvent e) { checkForParentWindowEvent(e); } - + @Override public void windowLostFocus(WindowEvent e) { - if (e.getSource()==ClipboardHistoryPopup.this) { + if (e.getSource() == ClipboardHistoryPopup.this) { uninstallAndHide(); } } - + @Override public void windowIconified(WindowEvent e) { checkForParentWindowEvent(e); } - + private boolean checkForParentWindowEvent(WindowEvent e) { - if (e.getSource()==getParent()) { + if (e.getSource() == getParent()) { uninstallAndHide(); return true; } return false; } - + private void uninstallAndHide() { - Window parent = (Window)getParent(); + Window parent = (Window) getParent(); parent.removeWindowFocusListener(this); parent.removeWindowListener(this); parent.removeComponentListener(this); @@ -346,38 +313,35 @@ class ClipboardHistoryPopup extends JWindow { setVisible(false); dispose(); } - } - - + /** * The list component used in this popup. */ private static final class ChoiceList extends JList { - + private ChoiceList() { super(new DefaultListModel()); setSelectionMode(ListSelectionModel.SINGLE_SELECTION); installKeyboardActions(); } - + private void installKeyboardActions() { - InputMap im = getInputMap(); ActionMap am = getActionMap(); - im.put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), "onDown"); am.put("onDown", new AbstractAction() { + @Override public void actionPerformed(ActionEvent e) { - int index = (getSelectedIndex()+1) % getModel().getSize(); + int index = (getSelectedIndex() + 1) % getModel().getSize(); ensureIndexIsVisible(index); setSelectedIndex(index); } }); - im.put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), "onUp"); am.put("onUp", new AbstractAction() { + @Override public void actionPerformed(ActionEvent e) { int index = getSelectedIndex() - 1; @@ -388,59 +352,51 @@ class ClipboardHistoryPopup extends JWindow { setSelectedIndex(index); } }); - } - + private void setContents(List contents) { - DefaultListModel model = (DefaultListModel)getModel(); + DefaultListModel model = (DefaultListModel) getModel(); model.clear(); for (String str : contents) { model.addElement(new LabelValuePair(str)); } setVisibleRowCount(Math.min(model.getSize(), 8)); } - } - - + /** - * Entries in the choices list are of this type. This truncates entries - * that are too long. In the future it can provide more information + * Entries in the choices list are of this type. This truncates entries + * that are too long. In the future it can provide more information * (line count for multi-line pastes, etc.). */ private static class LabelValuePair { - + private String label; private String value; - private static final int LABEL_MAX_LENGTH = 50; - + LabelValuePair(String value) { this.label = this.value = value; int newline = label.indexOf('\n'); boolean multiLine = false; - if (newline>-1) { + if (newline > -1) { label = label.substring(0, newline); multiLine = true; } - if (label.length()>LABEL_MAX_LENGTH) { + if (label.length() > LABEL_MAX_LENGTH) { label = label.substring(0, LABEL_MAX_LENGTH) + "..."; - } - else if (multiLine) { + } else if (multiLine) { int toRemove = 3 - (LABEL_MAX_LENGTH - label.length()); - if (toRemove>0) { - label = label.substring(0, label.length()-toRemove); + if (toRemove > 0) { + label = label.substring(0, label.length() - toRemove); } label += "..."; } } - + @Override public String toString() { return label; } - } - - } diff --git a/src/org/fife/ui/rtextarea/ColorBackgroundPainterStrategy.java b/src/org/fife/ui/rtextarea/ColorBackgroundPainterStrategy.java index d41928c..5f14371 100644 --- a/src/org/fife/ui/rtextarea/ColorBackgroundPainterStrategy.java +++ b/src/org/fife/ui/rtextarea/ColorBackgroundPainterStrategy.java @@ -1,10 +1,8 @@ /* * 01/22/2005 - * * ColorBackgroundPainterStrategy.java - Renders an RTextAreaBase's background * as a single color. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -13,50 +11,45 @@ import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; - /** * A strategy for painting the background of an RTextAreaBase - * as a solid color. The default background for RTextAreaBases + * as a solid color. The default background for RTextAreaBases * is this strategy using the color white. * * @author Robert Futrell * @version 0.1 * @see org.fife.ui.rtextarea.ImageBackgroundPainterStrategy */ -public class ColorBackgroundPainterStrategy - implements BackgroundPainterStrategy { - +public class ColorBackgroundPainterStrategy implements BackgroundPainterStrategy { + private Color color; - - + /** * Constructor. * - * @param color The color to use when painting the background. + * @param color + * The color to use when painting the background. */ public ColorBackgroundPainterStrategy(Color color) { setColor(color); } - - + /** * Returns whether or not the specified object is equivalent to * this one. * - * @param o2 The object to which to compare. + * @param o2 + * The object to which to compare. * @return Whether o2 is another * ColorBackgroundPainterStrategy representing * the same color as this one. */ @Override public boolean equals(Object o2) { - return o2!=null && - (o2 instanceof ColorBackgroundPainterStrategy) && - this.color.equals( - ((ColorBackgroundPainterStrategy)o2).getColor()); + return o2 != null && (o2 instanceof ColorBackgroundPainterStrategy) + && this.color.equals(((ColorBackgroundPainterStrategy) o2).getColor()); } - - + /** * Returns the color used to paint the background. * @@ -66,11 +59,10 @@ public class ColorBackgroundPainterStrategy public Color getColor() { return color; } - - + /** * Returns the hash code to use when placing an object of this type into - * hash maps. This method is implemented since we overrode + * hash maps. This method is implemented since we overrode * {@link #equals(Object)}, to keep FindBugs happy. * * @return The hash code. @@ -79,33 +71,32 @@ public class ColorBackgroundPainterStrategy public int hashCode() { return color.hashCode(); } - - + /** * Paints the background. * - * @param g The graphics context. - * @param bounds The bounds of the object whose backgrouns we're - * painting. + * @param g + * The graphics context. + * @param bounds + * The bounds of the object whose backgrouns we're + * painting. */ @Override public void paint(Graphics g, Rectangle bounds) { Color temp = g.getColor(); g.setColor(color); - g.fillRect(bounds.x,bounds.y, bounds.width,bounds.height); + g.fillRect(bounds.x, bounds.y, bounds.width, bounds.height); g.setColor(temp); } - - + /** * Sets the color used to paint the background. * - * @param color The color to use. + * @param color + * The color to use. * @see #getColor */ public void setColor(Color color) { this.color = color; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/ConfigurableCaret.java b/src/org/fife/ui/rtextarea/ConfigurableCaret.java index ee2d0e1..75f4189 100644 --- a/src/org/fife/ui/rtextarea/ConfigurableCaret.java +++ b/src/org/fife/ui/rtextarea/ConfigurableCaret.java @@ -1,9 +1,7 @@ /* * 12/21/2004 - * * ConfigurableCaret.java - The caret used by RTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -37,83 +35,75 @@ import javax.swing.text.Segment; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.folding.FoldManager; - /** - * The caret used by {@link RTextArea}. This caret has all of the properties + * The caret used by {@link RTextArea}. This caret has all of the properties * that javax.swing.text.DefaultCaret does, as well as adding the * following niceties: * *

    - *
  • This caret can render itself many different ways; see the - * {@link #setStyle(CaretStyle)} method and {@link CaretStyle} for - * more information.
  • - *
  • On Microsoft Windows and other operating systems that do not - * support system selection (i.e., selecting text, then pasting - * via the middle mouse button), clicking the middle mouse button - * will cause a regular paste operation to occur. On systems - * that support system selection (i.e., all UNIX variants), - * the middle mouse button will behave normally.
  • + *
  • This caret can render itself many different ways; see the + * {@link #setStyle(CaretStyle)} method and {@link CaretStyle} for + * more information.
  • + *
  • On Microsoft Windows and other operating systems that do not + * support system selection (i.e., selecting text, then pasting + * via the middle mouse button), clicking the middle mouse button + * will cause a regular paste operation to occur. On systems + * that support system selection (i.e., all UNIX variants), + * the middle mouse button will behave normally.
  • *
* * @author Robert Futrell * @version 0.6 */ public class ConfigurableCaret extends DefaultCaret { - + /** * Action used to select a word on a double click. */ private static transient Action selectWord = null; - /** * Action used to select a line on a triple click. */ private static transient Action selectLine = null; - /** * holds last MouseEvent which caused the word selection. */ private transient MouseEvent selectedWordEvent = null; - /** * Used for fastest-possible retrieval of the character at the * caret's position in the document. */ private transient Segment seg; - /** * Whether the caret is a vertical line, a horizontal line, or a block. */ private CaretStyle style; - /** - * The selection painter. By default this paints selections with the + * The selection painter. By default this paints selections with the * text area's selection color. */ private ChangeableHighlightPainter selectionPainter; - private boolean alwaysVisible; - /** * Whether this caret will try to paste into the editor (assuming it is * editable) on middle-mouse clicks. */ private boolean pasteOnMiddleMouseClick; - + /** * Creates the caret using {@link CaretStyle#THICK_VERTICAL_LINE_STYLE}. */ public ConfigurableCaret() { this(CaretStyle.THICK_VERTICAL_LINE_STYLE); } - - + /** * Constructs a new ConfigurableCaret. * - * @param style The style to use when painting the caret. If this is - * invalid, then {@link CaretStyle#THICK_VERTICAL_LINE_STYLE} is - * used. + * @param style + * The style to use when painting the caret. If this is + * invalid, then {@link CaretStyle#THICK_VERTICAL_LINE_STYLE} is + * used. */ public ConfigurableCaret(CaretStyle style) { seg = new Segment(); @@ -121,45 +111,41 @@ public class ConfigurableCaret extends DefaultCaret { selectionPainter = new ChangeableHighlightPainter(); pasteOnMiddleMouseClick = true; } - - + /** * Adjusts the caret location based on the MouseEvent. */ private void adjustCaret(MouseEvent e) { - if ((e.getModifiers()&ActionEvent.SHIFT_MASK)!=0 && getDot()!=-1) { + if ((e.getModifiers() & ActionEvent.SHIFT_MASK) != 0 && getDot() != -1) { moveCaret(e); - } - else { + } else { positionCaret(e); } } - - + /** * Adjusts the focus, if necessary. * - * @param inWindow if true indicates requestFocusInWindow should be used + * @param inWindow + * if true indicates requestFocusInWindow should be used */ private void adjustFocus(boolean inWindow) { RTextArea textArea = getTextArea(); - if ((textArea != null) && textArea.isEnabled() && - textArea.isRequestFocusEnabled()) { + if ((textArea != null) && textArea.isEnabled() && textArea.isRequestFocusEnabled()) { if (inWindow) { textArea.requestFocusInWindow(); - } - else { + } else { textArea.requestFocus(); } } } - - + /** * Overridden to damage the correct width of the caret, since this caret * can be different sizes. * - * @param r The current location of the caret. + * @param r + * The current location of the caret. */ @Override protected synchronized void damage(Rectangle r) { @@ -172,28 +158,26 @@ public class ConfigurableCaret extends DefaultCaret { repaint(); } } - - + /** * Called when the UI is being removed from the - * interface of a JTextComponent. This is used to + * interface of a JTextComponent. This is used to * unregister any listeners that were attached. * - * @param c The text component. If this is not an - * RTextArea, an Exception - * will be thrown. + * @param c + * The text component. If this is not an + * RTextArea, an Exception + * will be thrown. */ @Override public void deinstall(JTextComponent c) { if (!(c instanceof RTextArea)) { - throw new IllegalArgumentException( - "c must be instance of RTextArea"); + throw new IllegalArgumentException("c must be instance of RTextArea"); } super.deinstall(c); c.setNavigationFilter(null); } - - + /** * Returns whether this caret will paste the contents of the clipboard into * the editor (assuming it is editable) on middle-mouse-button clicks. @@ -204,18 +188,16 @@ public class ConfigurableCaret extends DefaultCaret { public boolean getPasteOnMiddleMouseClick() { return pasteOnMiddleMouseClick; } - - + /** * Gets the text editor component that this caret is bound to. * * @return The RTextArea. */ protected RTextArea getTextArea() { - return (RTextArea)getComponent(); + return (RTextArea) getComponent(); } - - + /** * Returns whether this caret's selection uses rounded edges. * @@ -223,13 +205,11 @@ public class ConfigurableCaret extends DefaultCaret { * @see #setRoundedSelectionEdges */ public boolean getRoundedSelectionEdges() { - return ((ChangeableHighlightPainter)getSelectionPainter()). - getRoundedEdges(); + return ((ChangeableHighlightPainter) getSelectionPainter()).getRoundedEdges(); } - - + /** - * Gets the painter for the Highlighter. This is overridden to return + * Gets the painter for the Highlighter. This is overridden to return * our custom selection painter. * * @return The painter. @@ -238,8 +218,7 @@ public class ConfigurableCaret extends DefaultCaret { protected Highlighter.HighlightPainter getSelectionPainter() { return selectionPainter; } - - + /** * Gets the current style of this caret. * @@ -249,25 +228,23 @@ public class ConfigurableCaret extends DefaultCaret { public CaretStyle getStyle() { return style; } - - + /** * Installs this caret on a text component. * - * @param c The text component. If this is not an {@link RTextArea}, - * an Exception will be thrown. + * @param c + * The text component. If this is not an {@link RTextArea}, + * an Exception will be thrown. */ @Override public void install(JTextComponent c) { if (!(c instanceof RTextArea)) { - throw new IllegalArgumentException( - "c must be instance of RTextArea"); + throw new IllegalArgumentException("c must be instance of RTextArea"); } super.install(c); c.setNavigationFilter(new FoldAwareNavigationFilter()); } - - + /** * Returns whether this caret is always visible (as opposed to * blinking, or not visible when the editor's window is not focused). @@ -280,25 +257,22 @@ public class ConfigurableCaret extends DefaultCaret { public boolean isAlwaysVisible() { return alwaysVisible; } - - + /** - * Called when the mouse is clicked. If the click was generated from + * Called when the mouse is clicked. If the click was generated from * button1, a double click selects a word, and a triple click the * current line. * - * @param e the mouse event + * @param e + * the mouse event */ @Override public void mouseClicked(MouseEvent e) { - - if (! e.isConsumed()) { - + if (!e.isConsumed()) { RTextArea textArea = getTextArea(); int nclicks = e.getClickCount(); - if (SwingUtilities.isLeftMouseButton(e)) { - if (nclicks>2) { + if (nclicks > 2) { nclicks %= 2; // Alternate selecting word/line. switch (nclicks) { case 0: @@ -317,26 +291,23 @@ public class ConfigurableCaret extends DefaultCaret { } a = selectLine; } - a.actionPerformed(new ActionEvent(textArea, - ActionEvent.ACTION_PERFORMED, - null, e.getWhen(), e.getModifiers())); + a.actionPerformed(new ActionEvent(textArea, ActionEvent.ACTION_PERFORMED, null, e.getWhen(), e.getModifiers())); } } - } - - else if (SwingUtilities.isMiddleMouseButton(e) && - getPasteOnMiddleMouseClick()) { + } else if (SwingUtilities.isMiddleMouseButton(e) && getPasteOnMiddleMouseClick()) { if (nclicks == 1 && textArea.isEditable() && textArea.isEnabled()) { // Paste the system selection, if it exists (e.g., on UNIX - // platforms, the user can select text, the middle-mouse click - // to paste it; this doesn't work on Windows). If the system + // platforms, the user can select text, the middle-mouse + // click + // to paste it; this doesn't work on Windows). If the system // doesn't support system selection, just do a normal paste. JTextComponent c = (JTextComponent) e.getSource(); if (c != null) { try { Toolkit tk = c.getToolkit(); Clipboard buffer = tk.getSystemSelection(); - // If the system supports system selections, (e.g. UNIX), + // If the system supports system selections, (e.g. + // UNIX), // try to do it. if (buffer != null) { adjustCaret(e); @@ -358,67 +329,60 @@ public class ConfigurableCaret extends DefaultCaret { // do nothing... there is no system clipboard } } // if (c!=null) - } // if (nclicks == 1 && component.isEditable() && component.isEnabled()) + } // if (nclicks == 1 && component.isEditable() && + // component.isEnabled()) } // else if (SwingUtilities.isMiddleMouseButton(e)) - } // if (!c.isConsumed()) - } - - + /** * Overridden to also focus the text component on right mouse clicks. * - * @param e The mouse event. + * @param e + * The mouse event. */ @Override public void mousePressed(MouseEvent e) { super.mousePressed(e); if (!e.isConsumed() && SwingUtilities.isRightMouseButton(e)) { JTextComponent c = getComponent(); - if (c!=null && c.isEnabled() && c.isRequestFocusEnabled()) { + if (c != null && c.isEnabled() && c.isRequestFocusEnabled()) { c.requestFocusInWindow(); } } } - - + /** * Paints the cursor. * - * @param g The graphics context in which to paint. + * @param g + * The graphics context in which to paint. */ @Override public void paint(Graphics g) { - // If the cursor is currently visible... if (isVisible() || alwaysVisible) { - try { - RTextArea textArea = getTextArea(); g.setColor(textArea.getCaretColor()); TextUI mapper = textArea.getUI(); Rectangle r = mapper.modelToView(textArea, getDot()); - // "Correct" the value of rect.width (takes into // account caret being at EOL (and thus rect.width==1), // etc. // We do this even for LINE_STYLE because // if they change from that caret to block/underline, // the first time they do so width==1, so it will take - // one caret flash to paint correctly (wider). If we + // one caret flash to paint correctly (wider). If we // do this every time, then it's painted correctly the // first blink. validateWidth(r); - // This condition is most commonly hit when code folding is // enabled and the user collapses a fold above the caret - // position. If our cached x/y/w/h aren't updated, this caret + // position. If our cached x/y/w/h aren't updated, this caret // appears to stop blinking because the wrong line range gets - // damaged. This check keeps us in sync. - if (width>0 && height>0 && - !contains(r.x, r.y, r.width, r.height)) { + // damaged. This check keeps us in sync. + if (width > 0 && height > 0 && !contains(r.x, r.y, r.width, r.height)) { Rectangle clip = g.getClipBounds(); if (clip != null && !clip.contains(this)) { // Clip doesn't contain the old location, force it @@ -430,72 +394,58 @@ public class ConfigurableCaret extends DefaultCaret { // semantics of damage we can't really get around this. damage(r); } - // Need to subtract 2 from height, otherwise // the caret will expand too far vertically. r.height -= 2; - switch (style) { - // Draw a big rectangle, and xor the foreground color. case BLOCK_STYLE: Color textAreaBg = textArea.getBackground(); - if (textAreaBg==null) { + if (textAreaBg == null) { textAreaBg = Color.white; } g.setXORMode(textAreaBg); // fills x==r.x to x==(r.x+(r.width)-1), inclusive. - g.fillRect(r.x,r.y, r.width,r.height); + g.fillRect(r.x, r.y, r.width, r.height); break; - // Draw a rectangular border. case BLOCK_BORDER_STYLE: // fills x==r.x to x==(r.x+(r.width-1)), inclusive. - g.drawRect(r.x,r.y, r.width-1,r.height); + g.drawRect(r.x, r.y, r.width - 1, r.height); break; - // Draw an "underline" below the current position. case UNDERLINE_STYLE: textAreaBg = textArea.getBackground(); - if (textAreaBg==null) { + if (textAreaBg == null) { textAreaBg = Color.white; } g.setXORMode(textAreaBg); int y = r.y + r.height; - g.drawLine(r.x,y, r.x+r.width-1,y); + g.drawLine(r.x, y, r.x + r.width - 1, y); break; - // Draw a vertical line. default: case VERTICAL_LINE_STYLE: - g.drawLine(r.x,r.y, r.x,r.y+r.height); + g.drawLine(r.x, r.y, r.x, r.y + r.height); break; - // A thicker vertical line. case THICK_VERTICAL_LINE_STYLE: - g.drawLine(r.x,r.y, r.x,r.y+r.height); + g.drawLine(r.x, r.y, r.x, r.y + r.height); r.x++; - g.drawLine(r.x,r.y, r.x,r.y+r.height); + g.drawLine(r.x, r.y, r.x, r.y + r.height); break; - } // End of switch (style). - } catch (BadLocationException ble) { ble.printStackTrace(); } - } // End of if (isVisible()). - } - - + /** * Selects word based on a mouse event. */ private void selectWord(MouseEvent e) { - if (selectedWordEvent != null && - selectedWordEvent.getX() == e.getX() && - selectedWordEvent.getY() == e.getY()) { + if (selectedWordEvent != null && selectedWordEvent.getX() == e.getX() && selectedWordEvent.getY() == e.getY()) { // We've already the done selection for this. return; } @@ -511,20 +461,18 @@ public class ConfigurableCaret extends DefaultCaret { } a = selectWord; } - a.actionPerformed(new ActionEvent(textArea, - ActionEvent.ACTION_PERFORMED, - null, e.getWhen(), e.getModifiers())); + a.actionPerformed(new ActionEvent(textArea, ActionEvent.ACTION_PERFORMED, null, e.getWhen(), e.getModifiers())); selectedWordEvent = e; } - - + /** * Toggles whether this caret should always be visible (as opposed to * blinking, or not visible when the editor's window is not focused). * This can be used by popup windows that want the caret's location * to still be visible for contextual purposes while they are displayed. * - * @param alwaysVisible Whether this caret should always be visible. + * @param alwaysVisible + * Whether this caret should always be visible. * @see #isAlwaysVisible() */ public void setAlwaysVisible(boolean alwaysVisible) { @@ -537,200 +485,176 @@ public class ConfigurableCaret extends DefaultCaret { } } } - - + /** * Sets whether this caret will paste the contents of the clipboard into * the editor (assuming it is editable) on middle-mouse-button clicks. * - * @param paste Whether a paste operation will be performed. + * @param paste + * Whether a paste operation will be performed. * @see #getPasteOnMiddleMouseClick() */ public void setPasteOnMiddleMouseClick(boolean paste) { pasteOnMiddleMouseClick = paste; } - - + /** * Sets whether this caret's selection should have rounded edges. * - * @param rounded Whether it should have rounded edges. + * @param rounded + * Whether it should have rounded edges. * @see #getRoundedSelectionEdges() */ public void setRoundedSelectionEdges(boolean rounded) { - ((ChangeableHighlightPainter)getSelectionPainter()). - setRoundedEdges(rounded); + ((ChangeableHighlightPainter) getSelectionPainter()).setRoundedEdges(rounded); } - - + /** * Overridden to always render the selection, even when the text component * loses focus. * - * @param visible Whether the selection should be visible. This parameter - * is ignored. + * @param visible + * Whether the selection should be visible. This parameter + * is ignored. */ @Override public void setSelectionVisible(boolean visible) { super.setSelectionVisible(true); } - - + /** * Sets the style used when painting the caret. * - * @param style The style to use. This should not be null. + * @param style + * The style to use. This should not be null. * @see #getStyle() */ public void setStyle(CaretStyle style) { - if (style==null) { + if (style == null) { style = CaretStyle.THICK_VERTICAL_LINE_STYLE; } - if (style!=this.style) { + if (style != this.style) { this.style = style; repaint(); } } - - + /** * Helper function used by the block and underline carets to ensure the - * width of the painted caret is valid. This is done for the following + * width of the painted caret is valid. This is done for the following * reasons: * *
    - *
  • The View classes in the javax.swing.text package - * always return a width of "1" when modelToView is - * called. We'll be needing the actual width.
  • - *
  • Even in smart views, such as RSyntaxTextArea's - * SyntaxView and WrappedSyntaxView that - * return the width of the current character, if the caret is at the - * end of a line for example, the width returned from - * modelToView will be 0 (as the width of unprintable - * characters such as '\n' is calculated as 0). In this case, we'll - * use a default width value.
  • + *
  • The View classes in the javax.swing.text package + * always return a width of "1" when modelToView is + * called. We'll be needing the actual width.
  • + *
  • Even in smart views, such as RSyntaxTextArea's + * SyntaxView and WrappedSyntaxView that + * return the width of the current character, if the caret is at the + * end of a line for example, the width returned from + * modelToView will be 0 (as the width of unprintable + * characters such as '\n' is calculated as 0). In this case, we'll + * use a default width value.
  • *
* - * @param rect The rectangle returned by the current - * View's modelToView - * method for the caret position. + * @param rect + * The rectangle returned by the current + * View's modelToView + * method for the caret position. */ private void validateWidth(Rectangle rect) { - // If the width value > 1, we assume the View is // a "smart" view that returned the proper width. // So only worry about this stuff if width <= 1. - if (rect!=null && rect.width<=1) { - + if (rect != null && rect.width <= 1) { // The width is either 1 (most likely, we're using a "dumb" view // like those in javax.swing.text) or 0 (most likely, we're using // a "smart" view like org.fife.ui.rsyntaxtextarea.SyntaxView, // we're at the end of a line, and the width of '\n' is being // computed as 0). - try { - // Try to get a width for the character at the caret - // position. We use the text area's font instead of g's + // position. We use the text area's font instead of g's // because g's may vary in an RSyntaxTextArea. RTextArea textArea = getTextArea(); - textArea.getDocument().getText(getDot(),1, seg); + textArea.getDocument().getText(getDot(), 1, seg); Font font = textArea.getFont(); FontMetrics fm = textArea.getFontMetrics(font); rect.width = fm.charWidth(seg.array[seg.offset]); - // This width being returned 0 likely means that it is an // unprintable character (which is almost 100% to be a - // newline char, i.e., we're at the end of a line). So, + // newline char, i.e., we're at the end of a line). So, // just use the width of a space. - if (rect.width==0) { + if (rect.width == 0) { rect.width = fm.charWidth(' '); } - } catch (BadLocationException ble) { // This shouldn't ever happen. ble.printStackTrace(); rect.width = 8; } - } // End of if (rect!=null && rect.width<=1). - } - - + /** * Keeps the caret out of folded regions in edge cases where it doesn't * happen automatically, for example, when the caret moves automatically in - * response to Document.insert() and Document.remove() calls. Most keyboard + * response to Document.insert() and Document.remove() calls. Most keyboard * shortcuts already take folding into account, as do viewToModel() and - * modelToView(), so this filter usually does not do anything.

+ * modelToView(), so this filter usually does not do anything. + *

* * Common cases: backspacing to visible line of collapsed region. */ private class FoldAwareNavigationFilter extends NavigationFilter { - + @Override - public void setDot(FilterBypass fb, int dot, Position.Bias bias) { - - RTextArea textArea = getTextArea(); - if (textArea instanceof RSyntaxTextArea) { - - RSyntaxTextArea rsta = (RSyntaxTextArea)getTextArea(); - if (rsta.isCodeFoldingEnabled()) { - - int lastDot = getDot(); - FoldManager fm = rsta.getFoldManager(); - int line = 0; - try { - line = textArea.getLineOfOffset(dot); - } catch (Exception e) { - e.printStackTrace(); - } - - if (fm.isLineHidden(line)) { - - //System.out.println("filterBypass: avoiding hidden line"); - try { - if (dot>lastDot) { // Moving to further line - int lineCount = textArea.getLineCount(); - while (++line=0 && fm.isLineHidden(line)); - if (line>=0) { - dot = textArea.getLineEndOffset(line) - 1; - } - } + public void setDot(FilterBypass fb, int dot, Position.Bias bias) { + RTextArea textArea = getTextArea(); + if (textArea instanceof RSyntaxTextArea) { + RSyntaxTextArea rsta = (RSyntaxTextArea) getTextArea(); + if (rsta.isCodeFoldingEnabled()) { + int lastDot = getDot(); + FoldManager fm = rsta.getFoldManager(); + int line = 0; + try { + line = textArea.getLineOfOffset(dot); + } catch (Exception e) { + e.printStackTrace(); + } + if (fm.isLineHidden(line)) { + // System.out.println("filterBypass: avoiding hidden + // line"); + try { + if (dot > lastDot) { // Moving to further line + int lineCount = textArea.getLineCount(); + while (++line < lineCount && fm.isLineHidden(line)); + if (line < lineCount) { + dot = textArea.getLineStartOffset(line); + } else { // No lower lines visible + UIManager.getLookAndFeel().provideErrorFeedback(textArea); + return; + } + } else if (dot < lastDot) { // Moving to earlier + // line + while (--line >= 0 && fm.isLineHidden(line)); + if (line >= 0) { + dot = textArea.getLineEndOffset(line) - 1; + } + } } catch (Exception e) { e.printStackTrace(); return; } - - } - - } - - } - - super.setDot(fb, dot, bias); - - } - + } + } + } + super.setDot(fb, dot, bias); + } + @Override - public void moveDot(FilterBypass fb, int dot, Position.Bias bias) { - super.moveDot(fb, dot, bias); - } - + public void moveDot(FilterBypass fb, int dot, Position.Bias bias) { + super.moveDot(fb, dot, bias); + } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/FoldIndicator.java b/src/org/fife/ui/rtextarea/FoldIndicator.java index 1b70197..1bf7001 100644 --- a/src/org/fife/ui/rtextarea/FoldIndicator.java +++ b/src/org/fife/ui/rtextarea/FoldIndicator.java @@ -1,10 +1,8 @@ /* * 10/08/2011 - * * FoldIndicator.java - Gutter component allowing the user to expand and * collapse folds. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -36,7 +34,6 @@ import org.fife.ui.rsyntaxtextarea.focusabletip.TipUtil; import org.fife.ui.rsyntaxtextarea.folding.Fold; import org.fife.ui.rsyntaxtextarea.folding.FoldManager; - /** * Component in the gutter that displays +/- icons to expand and collapse * fold regions in the editor. @@ -45,90 +42,75 @@ import org.fife.ui.rsyntaxtextarea.folding.FoldManager; * @version 1.0 */ public class FoldIndicator extends AbstractGutterComponent { - + /** * Used in {@link #paintComponent(Graphics)} to prevent reallocation on * each paint. */ private Insets textAreaInsets; - /** * Used in {@link #paintComponent(Graphics)} to prevent reallocation on * each paint. */ private Rectangle visibleRect; - /** * The fold to show the outline line for. */ private Fold foldWithOutlineShowing; - /** * The color to use for fold icon backgrounds, if the default icons * are used. */ private Color foldIconBackground; - /** * The color to use for armed fold icon backgrounds, if the default icons - * are used. This may be {@code null}. + * are used. This may be {@code null}. */ private Color foldIconArmedBackground; - /** * The icon used for collapsed folds. */ private Icon collapsedFoldIcon; - /** * The icon used for expanded folds. */ private Icon expandedFoldIcon; - /** * Used while painting; global flag to denote whether the mouse is over * a fold indicator. */ private boolean mouseOverFoldIcon; - /** * Used while painting; global flag to denote whether the * currently-being-painted fold should be rendered as armed. */ private boolean paintFoldArmed; - /** * Whether tool tips are displayed showing the contents of collapsed * fold regions. */ private boolean showFoldRegionTips; - /** * The color used to paint fold outlines. */ public static final Color DEFAULT_FOREGROUND = Color.gray; - /** * The default color used to paint the "inside" of fold icons. */ public static final Color DEFAULT_FOLD_BACKGROUND = Color.white; - /** * Listens for events in this component. */ private Listener listener; - /** * Width of this component. */ private static final int WIDTH = 12; - - + public FoldIndicator(RTextArea textArea) { super(textArea); } - - + /** * Overridden to use the editor's background if it's detected that the * user isn't using white as the editor bg, but the system's tool tip @@ -140,28 +122,25 @@ public class FoldIndicator extends AbstractGutterComponent { public JToolTip createToolTip() { JToolTip tip = super.createToolTip(); Color textAreaBG = textArea.getBackground(); - if (textAreaBG!=null && !Color.white.equals(textAreaBG)) { + if (textAreaBG != null && !Color.white.equals(textAreaBG)) { Color bg = TipUtil.getToolTipBackground(); // If current L&F's tool tip color is close enough to "yellow", // and we're not using the default text background of white, use // the editor background as the tool tip background. - if (bg.getRed()>=240 && bg.getGreen()>=240 && bg.getBlue()>=200) { + if (bg.getRed() >= 240 && bg.getGreen() >= 240 && bg.getBlue() >= 200) { tip.setBackground(textAreaBG); } } return tip; } - - + private Fold findOpenFoldClosestTo(Point p) { - Fold fold = null; mouseOverFoldIcon = false; - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { // Should always be true int offs = rsta.viewToModel(p); // TODO: Optimize me - if (offs>-1) { + if (offs > -1) { try { int line = rsta.getLineOfOffset(offs); FoldManager fm = rsta.getFoldManager(); @@ -169,8 +148,7 @@ public class FoldIndicator extends AbstractGutterComponent { if (fold != null) { // The mouse is directly over the fold indicator mouseOverFoldIcon = true; - } - else { + } else { fold = fm.getDeepestOpenFoldContaining(offs); } } catch (BadLocationException ble) { @@ -178,17 +156,14 @@ public class FoldIndicator extends AbstractGutterComponent { } } } - return fold; - } - - + /** - * Returns the color to use for the "background" of armed fold icons. This + * Returns the color to use for the "background" of armed fold icons. This * is ignored if custom icons are used. * - * @return The background color. If this is {@code null}, there is no + * @return The background color. If this is {@code null}, there is no * special color for armed fold icons. * @see #setFoldIconArmedBackground(Color) * @see #getFoldIconBackground() @@ -196,10 +171,9 @@ public class FoldIndicator extends AbstractGutterComponent { public Color getFoldIconArmedBackground() { return foldIconArmedBackground; } - - + /** - * Returns the color to use for the "background" of fold icons. This + * Returns the color to use for the "background" of fold icons. This * is ignored if custom icons are used. * * @return The background color. @@ -209,15 +183,13 @@ public class FoldIndicator extends AbstractGutterComponent { public Color getFoldIconBackground() { return foldIconBackground; } - - + @Override public Dimension getPreferredSize() { - int h = textArea!=null ? textArea.getHeight() : 100; // Arbitrary + int h = textArea != null ? textArea.getHeight() : 100; // Arbitrary return new Dimension(WIDTH, h); } - - + /** * Returns whether tool tips are displayed showing the contents of * collapsed fold regions when the mouse hovers over a +/- icon. @@ -228,30 +200,28 @@ public class FoldIndicator extends AbstractGutterComponent { public boolean getShowCollapsedRegionToolTips() { return showFoldRegionTips; } - - + /** * Positions tool tips to be aligned in the text component, so that the * displayed content is shown (almost) exactly where it would be in the * editor. * - * @param e The mouse location. + * @param e + * The mouse location. */ @Override public Point getToolTipLocation(MouseEvent e) { - // ToolTipManager requires both location and text to be null to hide - // a currently-visible tool tip window. If text is null but location + // a currently-visible tool tip window. If text is null but location // has some value, it will show a tool tip with empty content, the size // of its border (!). String text = getToolTipText(e); - if (text==null) { + if (text == null) { return null; } - // Try to overlap the tip's text directly over the code Point p = e.getPoint(); - p.y = (p.y/textArea.getLineHeight()) * textArea.getLineHeight(); + p.y = (p.y / textArea.getLineHeight()) * textArea.getLineHeight(); p.x = getWidth() + textArea.getMargin().left; Gutter gutter = getGutter(); int gutterMargin = gutter.getInsets().right; @@ -261,23 +231,21 @@ public class FoldIndicator extends AbstractGutterComponent { p.y += 16; return p; } - - + /** * Overridden to show the content of a collapsed fold on mouse-overs. * - * @param e The mouse location. + * @param e + * The mouse location. */ @Override public String getToolTipText(MouseEvent e) { - String text = null; - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (rsta.isCodeFoldingEnabled()) { FoldManager fm = rsta.getFoldManager(); int pos = rsta.viewToModel(new Point(0, e.getY())); - if (pos>=0) { // Not -1 + if (pos >= 0) { // Not -1 int line = 0; try { line = rsta.getLineOfOffset(pos); @@ -286,45 +254,37 @@ public class FoldIndicator extends AbstractGutterComponent { return null; } Fold fold = fm.getFoldForLine(line); - if (fold!=null && fold.isCollapsed()) { - + if (fold != null && fold.isCollapsed()) { int endLine = fold.getEndLine(); - if (fold.getLineCount()>25) { // Not too big + if (fold.getLineCount() > 25) { // Not too big endLine = fold.getStartLine() + 25; } - StringBuilder sb = new StringBuilder(""); - while (line<=endLine && line"); line++; } - text = sb.toString(); - } } } - return text; - } - - + @Override void handleDocumentEvent(DocumentEvent e) { int newLineCount = textArea.getLineCount(); - if (newLineCount!=currentLineCount) { + if (newLineCount != currentLineCount) { currentLineCount = newLineCount; repaint(); } } - - + @Override protected void init() { super.init(); @@ -336,92 +296,78 @@ public class FoldIndicator extends AbstractGutterComponent { visibleRect = new Rectangle(); setShowCollapsedRegionToolTips(true); } - - + @Override void lineHeightsChanged() { // TODO Auto-generated method stub } - - + @Override protected void paintComponent(Graphics g) { - - if (textArea==null) { + if (textArea == null) { return; } - visibleRect = g.getClipBounds(visibleRect); - if (visibleRect==null) { // ??? + if (visibleRect == null) { // ??? visibleRect = getVisibleRect(); } - //System.out.println("FoldIndicator repainting: " + visibleRect); - if (visibleRect==null) { + // System.out.println("FoldIndicator repainting: " + visibleRect); + if (visibleRect == null) { return; } - Color bg = getBackground(); - if (getGutter()!=null) { // Should always be true + if (getGutter() != null) { // Should always be true bg = getGutter().getBackground(); } g.setColor(bg); - g.fillRect(0,visibleRect.y, getWidth(),visibleRect.height); - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + g.fillRect(0, visibleRect.y, getWidth(), visibleRect.height); + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; if (!rsta.isCodeFoldingEnabled()) { return; // We should be hidden in this case, but still... } - if (textArea.getLineWrap()) { paintComponentWrapped(g); return; } - // Get where to start painting (top of the row). // We need to be "scrolled up" up just enough for the missing part of // the first line. textAreaInsets = textArea.getInsets(textAreaInsets); - if (visibleRect.y at least 1 physical line, so it may be that - // y<0. The computed y-value is the y-value of the top of the first + // y<0. The computed y-value is the y-value of the top of the first // (possibly) partially-visible view. Rectangle visibleEditorRect = ui.getVisibleEditorRect(); - Rectangle r = LineNumberList.getChildViewBounds(v, topLine, - visibleEditorRect); + Rectangle r = LineNumberList.getChildViewBounds(v, topLine, visibleEditorRect); int y = r.y; - y += (cellHeight-collapsedFoldIcon.getIconHeight())/2; - + y += (cellHeight - collapsedFoldIcon.getIconHeight()) / 2; int visibleBottom = visibleRect.y + visibleRect.height; int x = width - 10; int line = topLine; - boolean paintingOutlineLine = foldWithOutlineShowing!=null && - foldWithOutlineShowing.containsLine(line); + boolean paintingOutlineLine = foldWithOutlineShowing != null && foldWithOutlineShowing.containsLine(line); int lineCount = root.getElementCount(); - - while (y-1) { + if (offs > -1) { line = textArea.getLineOfOffset(offs); } } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - return line; - } - - + /** - * Sets the color to use for the "background" of armed fold icons. This + * Sets the color to use for the "background" of armed fold icons. This * will be ignored if custom icons are used. * - * @param bg The new background color. If {@code null} is passed in, - * there will be no special color for armed fold icons. + * @param bg + * The new background color. If {@code null} is passed in, + * there will be no special color for armed fold icons. * @see #getFoldIconArmedBackground() * @see #setFoldIconBackground(Color) */ public void setFoldIconArmedBackground(Color bg) { foldIconArmedBackground = bg; } - - + /** - * Sets the color to use for the "background" of fold icons. This will + * Sets the color to use for the "background" of fold icons. This will * be ignored if custom icons are used. * - * @param bg The new background color. This should not be {@code null}. + * @param bg + * The new background color. This should not be {@code null}. * @see #getFoldIconBackground() * @see #setFoldIconArmedBackground(Color) */ public void setFoldIconBackground(Color bg) { foldIconBackground = bg; } - - + /** * Sets the icons to use to represent collapsed and expanded folds. * - * @param collapsedIcon The collapsed fold icon. This cannot be - * null. - * @param expandedIcon The expanded fold icon. This cannot be - * null. + * @param collapsedIcon + * The collapsed fold icon. This cannot be + * null. + * @param expandedIcon + * The expanded fold icon. This cannot be + * null. */ public void setFoldIcons(Icon collapsedIcon, Icon expandedIcon) { this.collapsedFoldIcon = collapsedIcon; @@ -634,66 +556,61 @@ public class FoldIndicator extends AbstractGutterComponent { revalidate(); // Icons may be different sizes. repaint(); } - - + /** * Toggles whether tool tips should be displayed showing the contents of * collapsed fold regions when the mouse hovers over a +/- icon. * - * @param show Whether to show these tool tips. + * @param show + * Whether to show these tool tips. * @see #getShowCollapsedRegionToolTips() */ public void setShowCollapsedRegionToolTips(boolean show) { - if (show!=showFoldRegionTips) { + if (show != showFoldRegionTips) { if (show) { ToolTipManager.sharedInstance().registerComponent(this); - } - else { + } else { ToolTipManager.sharedInstance().unregisterComponent(this); } showFoldRegionTips = show; } } - - + /** * Overridden so we can track when code folding is enabled/disabled. */ @Override public void setTextArea(RTextArea textArea) { - if (this.textArea!=null) { - this.textArea.removePropertyChangeListener( - RSyntaxTextArea.CODE_FOLDING_PROPERTY, listener); + if (this.textArea != null) { + this.textArea.removePropertyChangeListener(RSyntaxTextArea.CODE_FOLDING_PROPERTY, listener); } super.setTextArea(textArea); - if (this.textArea!=null) { - this.textArea.addPropertyChangeListener( - RSyntaxTextArea.CODE_FOLDING_PROPERTY, listener); + if (this.textArea != null) { + this.textArea.addPropertyChangeListener(RSyntaxTextArea.CODE_FOLDING_PROPERTY, listener); } } - - + /** * The default +/- icon for expanding and collapsing folds. */ private class FoldIcon implements Icon { - + private boolean collapsed; - + FoldIcon(boolean collapsed) { this.collapsed = collapsed; } - + @Override public int getIconHeight() { return 8; } - + @Override public int getIconWidth() { return 8; } - + @Override public void paintIcon(Component c, Graphics g, int x, int y) { Color bg = foldIconBackground; @@ -701,77 +618,65 @@ public class FoldIndicator extends AbstractGutterComponent { bg = foldIconArmedBackground; } g.setColor(bg); - g.fillRect(x,y, 8,8); + g.fillRect(x, y, 8, 8); g.setColor(getForeground()); - g.drawRect(x,y, 8,8); - g.drawLine(x+2,y+4, x+2+4,y+4); + g.drawRect(x, y, 8, 8); + g.drawLine(x + 2, y + 4, x + 2 + 4, y + 4); if (collapsed) { - g.drawLine(x+4,y+2, x+4,y+6); + g.drawLine(x + 4, y + 2, x + 4, y + 6); } } - } - - + /** * Listens for events in this component. */ - private class Listener extends MouseInputAdapter - implements PropertyChangeListener { - + private class Listener extends MouseInputAdapter implements PropertyChangeListener { + Listener(FoldIndicator fgc) { fgc.addMouseListener(this); fgc.addMouseMotionListener(this); } - + @Override public void mouseClicked(MouseEvent e) { - Point p = e.getPoint(); int line = rowAtPoint(p); - - RSyntaxTextArea rsta = (RSyntaxTextArea)textArea; + RSyntaxTextArea rsta = (RSyntaxTextArea) textArea; FoldManager fm = rsta.getFoldManager(); - Fold fold = fm.getFoldForLine(line); - if (fold!=null) { + if (fold != null) { fold.toggleCollapsedState(); getGutter().repaint(); textArea.repaint(); } - } - + @Override public void mouseExited(MouseEvent e) { - if (foldWithOutlineShowing!=null) { + if (foldWithOutlineShowing != null) { foldWithOutlineShowing = null; mouseOverFoldIcon = false; repaint(); } } - + @Override public void mouseMoved(MouseEvent e) { boolean oldMouseOverFoldIcon = mouseOverFoldIcon; Fold newSelectedFold = findOpenFoldClosestTo(e.getPoint()); - if (newSelectedFold!=foldWithOutlineShowing && - newSelectedFold!=null && !newSelectedFold.isOnSingleLine()) { + if (newSelectedFold != foldWithOutlineShowing && newSelectedFold != null && !newSelectedFold.isOnSingleLine()) { foldWithOutlineShowing = newSelectedFold; repaint(); - } - else if (mouseOverFoldIcon != oldMouseOverFoldIcon) { + } else if (mouseOverFoldIcon != oldMouseOverFoldIcon) { repaint(); } } - + @Override public void propertyChange(PropertyChangeEvent e) { // Whether folding is enabled in the editor has changed. repaint(); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/Gutter.java b/src/org/fife/ui/rtextarea/Gutter.java index b2619ce..ff84f3e 100644 --- a/src/org/fife/ui/rtextarea/Gutter.java +++ b/src/org/fife/ui/rtextarea/Gutter.java @@ -1,10 +1,8 @@ /* * 02/17/2009 - * * Gutter.java - Manages line numbers, icons, etc. on the left-hand side of * an RTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -35,25 +33,26 @@ import org.fife.ui.rsyntaxtextarea.ActiveLineRangeListener; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.folding.FoldManager; - /** * The gutter is the component on the left-hand side of the text area that * displays optional information such as line numbers, fold regions, and icons - * (for bookmarks, debugging breakpoints, error markers, etc.).

+ * (for bookmarks, debugging breakpoints, error markers, etc.). + *

* * Icons can be added on a per-line basis to visually mark syntax errors, lines - * with breakpoints set on them, etc. To add icons to the gutter, you must + * with breakpoints set on them, etc. To add icons to the gutter, you must * first call {@link RTextScrollPane#setIconRowHeaderEnabled(boolean)} on the - * parent scroll pane, to make the icon area visible. Then, you can add icons + * parent scroll pane, to make the icon area visible. Then, you can add icons * that track either lines in the document, or offsets, via * {@link #addLineTrackingIcon(int, Icon)} and - * {@link #addOffsetTrackingIcon(int, Icon)}, respectively. To remove an - * icon you've added, use {@link #removeTrackingIcon(GutterIconInfo)}.

+ * {@link #addOffsetTrackingIcon(int, Icon)}, respectively. To remove an + * icon you've added, use {@link #removeTrackingIcon(GutterIconInfo)}. + *

* * In addition to support for arbitrary per-line icons, this component also * has built-in support for displaying icons representing "bookmarks;" that is, - * lines a user can cycle through via F2 and Shift+F2. Bookmarked lines are - * toggled via Ctrl+F2. In order to enable bookmarking, you must first assign + * lines a user can cycle through via F2 and Shift+F2. Bookmarked lines are + * toggled via Ctrl+F2. In order to enable bookmarking, you must first assign * an icon to represent a bookmarked line, then actually enable the feature: * *

@@ -67,183 +66,173 @@ import org.fife.ui.rsyntaxtextarea.folding.FoldManager;
  * @see GutterIconInfo
  */
 public class Gutter extends JPanel {
-
+	
 	/**
 	 * The color used to highlight active line ranges if none is specified.
 	 */
-	public static final Color DEFAULT_ACTIVE_LINE_RANGE_COLOR =
-												new Color(51, 153, 255);
-
+	public static final Color DEFAULT_ACTIVE_LINE_RANGE_COLOR = new Color(51, 153, 255);
 	/**
 	 * The text area.
 	 */
 	private RTextArea textArea;
-
 	/**
 	 * Renders line numbers.
 	 */
 	private LineNumberList lineNumberList;
-
 	/**
 	 * The color used to render line numbers.
 	 */
 	private Color lineNumberColor;
-
 	/**
 	 * The starting index for line numbers in the gutter.
 	 */
 	private int lineNumberingStartIndex;
-
 	/**
 	 * The font used to render line numbers.
 	 */
 	private Font lineNumberFont;
-
 	/**
 	 * Renders bookmark icons, breakpoints, error icons, etc.
 	 */
 	private IconRowHeader iconArea;
-
 	/**
 	 * Whether the icon area inherits the gutter background (as opposed to
 	 * painting with its own, default "panel" color).
 	 */
 	private boolean iconRowHeaderInheritsGutterBackground;
-
 	/**
 	 * Shows lines that are code-foldable.
 	 */
 	private FoldIndicator foldIndicator;
-
 	/**
 	 * Listens for events in our text area.
 	 */
 	private transient TextAreaListener listener;
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param textArea The parent text area.
+	 * @param textArea
+	 *            The parent text area.
 	 */
 	public Gutter(RTextArea textArea) {
-
 		listener = new TextAreaListener();
 		lineNumberColor = Color.gray;
 		lineNumberFont = RTextArea.getDefaultFont();
 		lineNumberingStartIndex = 1;
 		iconRowHeaderInheritsGutterBackground = false;
-
 		setTextArea(textArea);
 		setLayout(new BorderLayout());
-		if (this.textArea!=null) {
+		if (this.textArea != null) {
 			// Enable line numbers our first time through if they give us
 			// a text area.
 			setLineNumbersEnabled(true);
 			if (this.textArea instanceof RSyntaxTextArea) {
-				RSyntaxTextArea rsta = (RSyntaxTextArea)this.textArea;
+				RSyntaxTextArea rsta = (RSyntaxTextArea) this.textArea;
 				setFoldIndicatorEnabled(rsta.isCodeFoldingEnabled());
 			}
 		}
-
 		setBorder(new GutterBorder(0, 0, 0, 1)); // Assume ltr
-
 		Color bg = null;
-		if (textArea!=null) {
+		if (textArea != null) {
 			bg = textArea.getBackground(); // May return null if image bg
 		}
-		setBackground(bg!=null ? bg : Color.WHITE);
-
+		setBackground(bg != null ? bg : Color.WHITE);
 	}
-
-
+	
 	/**
 	 * Adds an icon that tracks an offset in the document, and is displayed
-	 * adjacent to the line numbers.  This is useful for marking things such
+	 * adjacent to the line numbers. This is useful for marking things such
 	 * as source code errors.
 	 *
-	 * @param line The line to track (zero-based).
-	 * @param icon The icon to display.  This should be small (say 16x16).
-	 * @return A tag for this icon.  This can later be used in a call to
+	 * @param line
+	 *            The line to track (zero-based).
+	 * @param icon
+	 *            The icon to display. This should be small (say 16x16).
+	 * @return A tag for this icon. This can later be used in a call to
 	 *         {@link #removeTrackingIcon(GutterIconInfo)} to remove this
 	 *         icon.
-	 * @throws BadLocationException If offs is an invalid offset
-	 *         into the text area.
+	 * @throws BadLocationException
+	 *             If offs is an invalid offset
+	 *             into the text area.
 	 * @see #addLineTrackingIcon(int, Icon, String)
 	 * @see #addOffsetTrackingIcon(int, Icon)
 	 * @see #removeTrackingIcon(GutterIconInfo)
 	 */
-	public GutterIconInfo addLineTrackingIcon(int line, Icon icon)
-											throws BadLocationException {
+	public GutterIconInfo addLineTrackingIcon(int line, Icon icon) throws BadLocationException {
 		return addLineTrackingIcon(line, icon, null);
 	}
-
-
+	
 	/**
 	 * Adds an icon that tracks an offset in the document, and is displayed
-	 * adjacent to the line numbers.  This is useful for marking things such
+	 * adjacent to the line numbers. This is useful for marking things such
 	 * as source code errors.
 	 *
-	 * @param line The line to track (zero-based).
-	 * @param icon The icon to display.  This should be small (say 16x16).
-	 * @param tip An optional tool tip for the icon.
-	 * @return A tag for this icon.  This can later be used in a call to
+	 * @param line
+	 *            The line to track (zero-based).
+	 * @param icon
+	 *            The icon to display. This should be small (say 16x16).
+	 * @param tip
+	 *            An optional tool tip for the icon.
+	 * @return A tag for this icon. This can later be used in a call to
 	 *         {@link #removeTrackingIcon(GutterIconInfo)} to remove this
 	 *         icon.
-	 * @throws BadLocationException If offs is an invalid offset
-	 *         into the text area.
+	 * @throws BadLocationException
+	 *             If offs is an invalid offset
+	 *             into the text area.
 	 * @see #addLineTrackingIcon(int, Icon)
 	 * @see #addOffsetTrackingIcon(int, Icon)
 	 * @see #removeTrackingIcon(GutterIconInfo)
 	 */
-	public GutterIconInfo addLineTrackingIcon(int line, Icon icon, String tip)
-											throws BadLocationException {
+	public GutterIconInfo addLineTrackingIcon(int line, Icon icon, String tip) throws BadLocationException {
 		int offs = textArea.getLineStartOffset(line);
 		return addOffsetTrackingIcon(offs, icon, tip);
 	}
-
-
+	
 	/**
 	 * Adds an icon that tracks an offset in the document, and is displayed
-	 * adjacent to the line numbers.  This is useful for marking things such
+	 * adjacent to the line numbers. This is useful for marking things such
 	 * as source code errors.
 	 *
-	 * @param offs The offset to track.
-	 * @param icon The icon to display.  This should be small (say 16x16).
+	 * @param offs
+	 *            The offset to track.
+	 * @param icon
+	 *            The icon to display. This should be small (say 16x16).
 	 * @return A tag for this icon.
-	 * @throws BadLocationException If offs is an invalid offset
-	 *         into the text area.
+	 * @throws BadLocationException
+	 *             If offs is an invalid offset
+	 *             into the text area.
 	 * @see #addOffsetTrackingIcon(int, Icon, String)
 	 * @see #addLineTrackingIcon(int, Icon)
 	 * @see #removeTrackingIcon(GutterIconInfo)
 	 */
-	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon)
-												throws BadLocationException {
+	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon) throws BadLocationException {
 		return addOffsetTrackingIcon(offs, icon, null);
 	}
-
-
+	
 	/**
 	 * Adds an icon that tracks an offset in the document, and is displayed
-	 * adjacent to the line numbers.  This is useful for marking things such
+	 * adjacent to the line numbers. This is useful for marking things such
 	 * as source code errors.
 	 *
-	 * @param offs The offset to track.
-	 * @param icon The icon to display.  This should be small (say 16x16).
-	 * @param tip An optional tool tip for the icon.
+	 * @param offs
+	 *            The offset to track.
+	 * @param icon
+	 *            The icon to display. This should be small (say 16x16).
+	 * @param tip
+	 *            An optional tool tip for the icon.
 	 * @return A tag for this icon.
-	 * @throws BadLocationException If offs is an invalid offset
-	 *         into the text area.
+	 * @throws BadLocationException
+	 *             If offs is an invalid offset
+	 *             into the text area.
 	 * @see #addOffsetTrackingIcon(int, Icon)
 	 * @see #addLineTrackingIcon(int, Icon)
 	 * @see #removeTrackingIcon(GutterIconInfo)
 	 */
-	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon, String tip)
-												throws BadLocationException {
+	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon, String tip) throws BadLocationException {
 		return iconArea.addOffsetTrackingIcon(offs, icon, tip);
 	}
-
-
+	
 	/**
 	 * Clears the active line range.
 	 *
@@ -252,8 +241,7 @@ public class Gutter extends JPanel {
 	private void clearActiveLineRange() {
 		iconArea.clearActiveLineRange();
 	}
-
-
+	
 	/**
 	 * Returns the color used to paint the active line range, if any.
 	 *
@@ -263,8 +251,7 @@ public class Gutter extends JPanel {
 	public Color getActiveLineRangeColor() {
 		return iconArea.getActiveLineRangeColor();
 	}
-
-
+	
 	/**
 	 * Returns the background color used by the (default) fold icons when they
 	 * are armed.
@@ -276,12 +263,11 @@ public class Gutter extends JPanel {
 	public Color getArmedFoldBackground() {
 		return foldIndicator.getFoldIconArmedBackground();
 	}
-
-
+	
 	/**
 	 * Returns the icon to use for bookmarks.
 	 *
-	 * @return The icon to use for bookmarks.  If this is null,
+	 * @return The icon to use for bookmarks. If this is null,
 	 *         bookmarking is effectively disabled.
 	 * @see #setBookmarkIcon(Icon)
 	 * @see #isBookmarkingEnabled()
@@ -289,20 +275,18 @@ public class Gutter extends JPanel {
 	public Icon getBookmarkIcon() {
 		return iconArea.getBookmarkIcon();
 	}
-
-
+	
 	/**
 	 * Returns the bookmarks known to this gutter.
 	 *
-	 * @return The bookmarks.  If there are no bookmarks, an empty array is
+	 * @return The bookmarks. If there are no bookmarks, an empty array is
 	 *         returned.
 	 * @see #toggleBookmark(int)
 	 */
 	public GutterIconInfo[] getBookmarks() {
 		return iconArea.getBookmarks();
 	}
-
-
+	
 	/**
 	 * Returns the color of the "border" line.
 	 *
@@ -310,10 +294,9 @@ public class Gutter extends JPanel {
 	 * @see #setBorderColor(Color)
 	 */
 	public Color getBorderColor() {
-		return ((GutterBorder)getBorder()).getColor();
+		return ((GutterBorder) getBorder()).getColor();
 	}
-
-
+	
 	/**
 	 * Returns the background color used by the (default) fold icons.
 	 *
@@ -323,8 +306,7 @@ public class Gutter extends JPanel {
 	public Color getFoldBackground() {
 		return foldIndicator.getFoldIconBackground();
 	}
-
-
+	
 	/**
 	 * Returns the foreground color of the fold indicator.
 	 *
@@ -334,8 +316,7 @@ public class Gutter extends JPanel {
 	public Color getFoldIndicatorForeground() {
 		return foldIndicator.getForeground();
 	}
-
-
+	
 	/**
 	 * Returns whether the icon area inherits the gutter background (as opposed
 	 * to painting with its own, default "panel" color, which is the default).
@@ -346,8 +327,7 @@ public class Gutter extends JPanel {
 	public boolean getIconRowHeaderInheritsGutterBackground() {
 		return iconRowHeaderInheritsGutterBackground;
 	}
-
-
+	
 	/**
 	 * Returns the color to use to paint line numbers.
 	 *
@@ -357,8 +337,7 @@ public class Gutter extends JPanel {
 	public Color getLineNumberColor() {
 		return lineNumberColor;
 	}
-
-
+	
 	/**
 	 * Returns the font used for line numbers.
 	 *
@@ -368,10 +347,9 @@ public class Gutter extends JPanel {
 	public Font getLineNumberFont() {
 		return lineNumberFont;
 	}
-
-
+	
 	/**
-	 * Returns the starting line's line number.  The default value is
+	 * Returns the starting line's line number. The default value is
 	 * 1.
 	 *
 	 * @return The index
@@ -380,23 +358,21 @@ public class Gutter extends JPanel {
 	public int getLineNumberingStartIndex() {
 		return lineNumberingStartIndex;
 	}
-
-
+	
 	/**
 	 * Returns true if the line numbers are enabled and visible.
 	 *
 	 * @return Whether or not line numbers are visible.
 	 */
 	public boolean getLineNumbersEnabled() {
-		for (int i=0; ip is invalid.
+	 * @throws BadLocationException
+	 *             If p is invalid.
 	 */
-	public GutterIconInfo[] getTrackingIcons(Point p)
-			throws BadLocationException {
+	public GutterIconInfo[] getTrackingIcons(Point p) throws BadLocationException {
 		int offs = textArea.viewToModel(new Point(0, p.y));
 		int line = textArea.getLineOfOffset(offs);
 		return iconArea.getTrackingIcons(line);
 	}
-
-
+	
 	/**
 	 * Returns whether the fold indicator is enabled.
 	 *
@@ -432,15 +407,14 @@ public class Gutter extends JPanel {
 	 * @see #setFoldIndicatorEnabled(boolean)
 	 */
 	public boolean isFoldIndicatorEnabled() {
-		for (int i=0; inull,
-	 *        bookmarking is effectively disabled.
+	 * @param icon
+	 *            The new bookmark icon. If this is null,
+	 *            bookmarking is effectively disabled.
 	 * @see #getBookmarkIcon()
 	 * @see #isBookmarkingEnabled()
 	 */
 	public void setBookmarkIcon(Icon icon) {
 		iconArea.setBookmarkIcon(icon);
 	}
-
-
+	
 	/**
-	 * Sets whether bookmarking is enabled.  Note that a bookmarking icon
+	 * Sets whether bookmarking is enabled. Note that a bookmarking icon
 	 * must be set via {@link #setBookmarkIcon(Icon)} before bookmarks are
 	 * truly enabled.
 	 *
-	 * @param enabled Whether bookmarking is enabled.
+	 * @param enabled
+	 *            Whether bookmarking is enabled.
 	 * @see #isBookmarkingEnabled()
 	 * @see #setBookmarkIcon(Icon)
 	 */
@@ -561,422 +534,392 @@ public class Gutter extends JPanel {
 			setIconRowHeaderEnabled(true);
 		}
 	}
-
-
+	
 	/**
 	 * Sets the color for the "border" line.
 	 *
-	 * @param color The new color.
+	 * @param color
+	 *            The new color.
 	 * @see #getBorderColor()
 	 */
 	public void setBorderColor(Color color) {
-		((GutterBorder)getBorder()).setColor(color);
+		((GutterBorder) getBorder()).setColor(color);
 		repaint();
 	}
-
-
+	
 	/**
 	 * {@inheritDoc}
 	 */
 	@Override
 	public void setComponentOrientation(ComponentOrientation o) {
-
 		// Some LaFs might do fun stuff, resulting in this method being called
 		// before a border is installed.
-
 		if (getBorder() instanceof GutterBorder) {
 			// Reuse the border to preserve its color.
 			if (o.isLeftToRight()) {
-				((GutterBorder)getBorder()).setEdges(0, 0, 0, 1);
-			}
-			else {
-				((GutterBorder)getBorder()).setEdges(0, 1, 0, 0);
+				((GutterBorder) getBorder()).setEdges(0, 0, 0, 1);
+			} else {
+				((GutterBorder) getBorder()).setEdges(0, 1, 0, 0);
 			}
 		}
 		super.setComponentOrientation(o);
 	}
-
-
+	
 	/**
 	 * Sets the icons to use to represent collapsed and expanded folds.
 	 *
-	 * @param collapsedIcon The collapsed fold icon.  This cannot be
-	 *        null.
-	 * @param expandedIcon The expanded fold icon.  This cannot be
-	 *        null.
+	 * @param collapsedIcon
+	 *            The collapsed fold icon. This cannot be
+	 *            null.
+	 * @param expandedIcon
+	 *            The expanded fold icon. This cannot be
+	 *            null.
 	 */
 	public void setFoldIcons(Icon collapsedIcon, Icon expandedIcon) {
-		if (foldIndicator!=null) {
+		if (foldIndicator != null) {
 			foldIndicator.setFoldIcons(collapsedIcon, expandedIcon);
 		}
 	}
-
-
+	
 	/**
 	 * Toggles whether the fold indicator is enabled.
 	 *
-	 * @param enabled Whether the fold indicator should be enabled.
+	 * @param enabled
+	 *            Whether the fold indicator should be enabled.
 	 * @see #isFoldIndicatorEnabled()
 	 */
 	public void setFoldIndicatorEnabled(boolean enabled) {
-		if (foldIndicator!=null) {
+		if (foldIndicator != null) {
 			if (enabled) {
 				add(foldIndicator, BorderLayout.LINE_END);
-			}
-			else {
+			} else {
 				remove(foldIndicator);
 			}
 			revalidate();
 		}
 	}
-
-
+	
 	/**
 	 * Sets the background color used by the (default) fold icons.
 	 *
-	 * @param bg The new background color.
+	 * @param bg
+	 *            The new background color.
 	 * @see #getFoldBackground()
 	 * @see #setArmedFoldBackground(Color)
 	 */
 	public void setFoldBackground(Color bg) {
-		if (bg==null) {
+		if (bg == null) {
 			bg = FoldIndicator.DEFAULT_FOLD_BACKGROUND;
 		}
 		foldIndicator.setFoldIconBackground(bg);
 	}
-
-
+	
 	/**
 	 * Sets the foreground color used by the fold indicator.
 	 *
-	 * @param fg The new fold indicator foreground.
+	 * @param fg
+	 *            The new fold indicator foreground.
 	 * @see #getFoldIndicatorForeground()
 	 */
 	public void setFoldIndicatorForeground(Color fg) {
-		if (fg==null) {
+		if (fg == null) {
 			fg = FoldIndicator.DEFAULT_FOREGROUND;
 		}
 		foldIndicator.setForeground(fg);
 	}
-
-
+	
 	/**
 	 * Toggles whether the icon row header (used for breakpoints, bookmarks,
 	 * etc.) is enabled.
 	 *
-	 * @param enabled Whether the icon row header is enabled.
+	 * @param enabled
+	 *            Whether the icon row header is enabled.
 	 * @see #isIconRowHeaderEnabled()
 	 */
 	void setIconRowHeaderEnabled(boolean enabled) {
-		if (iconArea!=null) {
+		if (iconArea != null) {
 			if (enabled) {
 				add(iconArea, BorderLayout.LINE_START);
-			}
-			else {
+			} else {
 				remove(iconArea);
 			}
 			revalidate();
 		}
 	}
-
-
+	
 	/**
 	 * Sets whether the icon area inherits the gutter background (as opposed
 	 * to painting with its own, default "panel" color, which is the default).
 	 *
-	 * @param inherits Whether the gutter background should be used in the icon
-	 *        row header.  If this is false, a default,
-	 *        Look-and-feel-dependent color is used.
+	 * @param inherits
+	 *            Whether the gutter background should be used in the icon
+	 *            row header. If this is false, a default,
+	 *            Look-and-feel-dependent color is used.
 	 * @see #getIconRowHeaderInheritsGutterBackground()
 	 */
 	public void setIconRowHeaderInheritsGutterBackground(boolean inherits) {
-		if (inherits!=iconRowHeaderInheritsGutterBackground) {
+		if (inherits != iconRowHeaderInheritsGutterBackground) {
 			iconRowHeaderInheritsGutterBackground = inherits;
-			if (iconArea!=null) {
+			if (iconArea != null) {
 				iconArea.setInheritsGutterBackground(inherits);
 			}
 		}
 	}
-
-
+	
 	/**
 	 * Sets the color to use to paint line numbers.
 	 *
-	 * @param color The color to use when painting line numbers.
+	 * @param color
+	 *            The color to use when painting line numbers.
 	 * @see #getLineNumberColor()
 	 */
 	public void setLineNumberColor(Color color) {
-		if (color!=null && !color.equals(lineNumberColor)) {
+		if (color != null && !color.equals(lineNumberColor)) {
 			lineNumberColor = color;
-			if (lineNumberList!=null) {
+			if (lineNumberList != null) {
 				lineNumberList.setForeground(color);
 			}
 		}
 	}
-
-
+	
 	/**
 	 * Sets the font used for line numbers.
 	 *
-	 * @param font The font to use.  This cannot be null.
+	 * @param font
+	 *            The font to use. This cannot be null.
 	 * @see #getLineNumberFont()
 	 */
 	public void setLineNumberFont(Font font) {
-		if (font==null) {
+		if (font == null) {
 			throw new IllegalArgumentException("font cannot be null");
 		}
 		if (!font.equals(lineNumberFont)) {
 			lineNumberFont = font;
-			if (lineNumberList!=null) {
+			if (lineNumberList != null) {
 				lineNumberList.setFont(font);
 			}
 		}
 	}
-
-
+	
 	/**
-	 * Sets the starting line's line number.  The default value is
-	 * 1.  Applications can call this method to change this value
+	 * Sets the starting line's line number. The default value is
+	 * 1. Applications can call this method to change this value
 	 * if they are displaying a subset of lines in a file, for example.
 	 *
-	 * @param index The new index.
+	 * @param index
+	 *            The new index.
 	 * @see #getLineNumberingStartIndex()
 	 */
 	public void setLineNumberingStartIndex(int index) {
-		if (index!=lineNumberingStartIndex) {
+		if (index != lineNumberingStartIndex) {
 			lineNumberingStartIndex = index;
 			lineNumberList.setLineNumberingStartIndex(index);
 		}
 	}
-
-
+	
 	/**
 	 * Toggles whether or not line numbers are visible.
 	 *
-	 * @param enabled Whether or not line numbers should be visible.
+	 * @param enabled
+	 *            Whether or not line numbers should be visible.
 	 * @see #getLineNumbersEnabled()
 	 */
 	void setLineNumbersEnabled(boolean enabled) {
-		if (lineNumberList!=null) {
+		if (lineNumberList != null) {
 			if (enabled) {
 				add(lineNumberList);
-			}
-			else {
+			} else {
 				remove(lineNumberList);
 			}
 			revalidate();
 		}
 	}
-
-
+	
 	/**
 	 * Toggles whether tool tips should be displayed showing the contents of
 	 * collapsed fold regions when the mouse hovers over a +/- icon.
 	 *
-	 * @param show Whether to show these tool tips.
+	 * @param show
+	 *            Whether to show these tool tips.
 	 * @see #getShowCollapsedRegionToolTips()
 	 */
 	public void setShowCollapsedRegionToolTips(boolean show) {
-		if (foldIndicator!=null) {
+		if (foldIndicator != null) {
 			foldIndicator.setShowCollapsedRegionToolTips(show);
 		}
 	}
-
-
+	
 	/**
-	 * Sets the text area being displayed.  This will clear any tracking
+	 * Sets the text area being displayed. This will clear any tracking
 	 * icons currently displayed.
 	 *
-	 * @param textArea The text area.
+	 * @param textArea
+	 *            The text area.
 	 */
 	void setTextArea(RTextArea textArea) {
-
-		if (this.textArea!=null) {
+		if (this.textArea != null) {
 			listener.uninstall();
 		}
-
-		if (textArea!=null) {
-
-			RTextAreaEditorKit kit = (RTextAreaEditorKit)textArea.getUI().
-					getEditorKit(textArea);
-
-			if (lineNumberList==null) {
+		if (textArea != null) {
+			RTextAreaEditorKit kit = (RTextAreaEditorKit) textArea.getUI().getEditorKit(textArea);
+			if (lineNumberList == null) {
 				lineNumberList = kit.createLineNumberList(textArea);
 				lineNumberList.setFont(getLineNumberFont());
 				lineNumberList.setForeground(getLineNumberColor());
-				lineNumberList.setLineNumberingStartIndex(
-						getLineNumberingStartIndex());
-			}
-			else {
+				lineNumberList.setLineNumberingStartIndex(getLineNumberingStartIndex());
+			} else {
 				lineNumberList.setTextArea(textArea);
 			}
-			if (iconArea==null) {
+			if (iconArea == null) {
 				iconArea = kit.createIconRowHeader(textArea);
-				iconArea.setInheritsGutterBackground(
-						getIconRowHeaderInheritsGutterBackground());
-			}
-			else {
+				iconArea.setInheritsGutterBackground(getIconRowHeaderInheritsGutterBackground());
+			} else {
 				iconArea.setTextArea(textArea);
 			}
-			if (foldIndicator==null) {
+			if (foldIndicator == null) {
 				foldIndicator = new FoldIndicator(textArea);
-			}
-			else {
+			} else {
 				foldIndicator.setTextArea(textArea);
 			}
-
 			listener.install(textArea);
-
 		}
-
 		this.textArea = textArea;
-
 	}
-
-
+	
 	/**
 	 * Programatically toggles whether there is a bookmark for the specified
-	 * line.  If bookmarking is not enabled, this method does nothing.
+	 * line. If bookmarking is not enabled, this method does nothing.
 	 *
-	 * @param line The line.
+	 * @param line
+	 *            The line.
 	 * @return Whether a bookmark is now at the specified line.
-	 * @throws BadLocationException If line is an invalid line
-	 *         number in the text area.
+	 * @throws BadLocationException
+	 *             If line is an invalid line
+	 *             number in the text area.
 	 * @see #getBookmarks()
 	 */
 	public boolean toggleBookmark(int line) throws BadLocationException {
 		return iconArea.toggleBookmark(line);
 	}
-
-
-//	public void setUI(ComponentUI ui) {
-//
-//		Border gutterBorder = getBorder();
-//
-//		super.setUI(ui);
-//
-//		// Some LaFs, such as WebLookAndFeel, override borders even when
-//		// they aren't UIResources.
-//		Border border = getBorder();
-//		if (border != gutterBorder) {
-//			setBorder(gutterBorder);
-//		}
-//
-//	}
-//
-//
-@Override
-public void setBorder(Border border) {
-	if (border instanceof GutterBorder) {
-		super.setBorder(border);
+	
+	// public void setUI(ComponentUI ui) {
+	//
+	// Border gutterBorder = getBorder();
+	//
+	// super.setUI(ui);
+	//
+	// // Some LaFs, such as WebLookAndFeel, override borders even when
+	// // they aren't UIResources.
+	// Border border = getBorder();
+	// if (border != gutterBorder) {
+	// setBorder(gutterBorder);
+	// }
+	//
+	// }
+	//
+	//
+	@Override
+	public void setBorder(Border border) {
+		if (border instanceof GutterBorder) {
+			super.setBorder(border);
+		}
 	}
-}
+	
 	/**
 	 * The border used by the gutter.
 	 */
 	public static class GutterBorder extends EmptyBorder {
-
+		
 		private Color color;
 		private Rectangle visibleRect;
-
+		
 		public GutterBorder(int top, int left, int bottom, int right) {
 			super(top, left, bottom, right);
 			color = new Color(221, 221, 221);
 			visibleRect = new Rectangle();
 		}
-
+		
 		public Color getColor() {
 			return color;
 		}
-
+		
 		@Override
-		public void paintBorder(Component c, Graphics g, int x, int y,
-								int width, int height) {
-
+		public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
 			visibleRect = g.getClipBounds(visibleRect);
-			if (visibleRect==null) { // ???
-				visibleRect = ((JComponent)c).getVisibleRect();
+			if (visibleRect == null) { // ???
+				visibleRect = ((JComponent) c).getVisibleRect();
 			}
-
 			g.setColor(color);
-			if (left==1) {
-				g.drawLine(0,visibleRect.y,
-						0,visibleRect.y+visibleRect.height);
+			if (left == 1) {
+				g.drawLine(0, visibleRect.y, 0, visibleRect.y + visibleRect.height);
+			} else {
+				g.drawLine(width - 1, visibleRect.y, width - 1, visibleRect.y + visibleRect.height);
 			}
-			else {
-				g.drawLine(width-1,visibleRect.y,
-						width-1,visibleRect.y+visibleRect.height);
-			}
-
 		}
-
+		
 		public void setColor(Color color) {
 			this.color = color;
 		}
-
+		
 		public void setEdges(int top, int left, int bottom, int right) {
 			this.top = top;
 			this.left = left;
 			this.bottom = bottom;
 			this.right = right;
 		}
-
 	}
-
-
+	
 	/**
 	 * Listens for the text area resizing.
 	 */
-	private class TextAreaListener extends ComponentAdapter
-						implements DocumentListener, PropertyChangeListener,
-						ActiveLineRangeListener {
-
-		// This is necessary to keep child components the same height as the text
-		// area.  The worse case is when the user toggles word-wrap and it changes
+	private class TextAreaListener extends ComponentAdapter implements DocumentListener, PropertyChangeListener, ActiveLineRangeListener {
+		
+		// This is necessary to keep child components the same height as the
+		// text
+		// area. The worse case is when the user toggles word-wrap and it
+		// changes
 		// the height of the text area. In that case, if we listen for the
 		// "lineWrap" property change, we get notified BEFORE the text area
-		// decides on its new size, thus we cannot resize properly.  We listen
+		// decides on its new size, thus we cannot resize properly. We listen
 		// instead for ComponentEvents so we change size after the text area has
 		// resized.
-
 		private boolean installed;
-
+		
 		/**
 		 * Modifies the "active line range" that is painted in this component.
 		 *
-		 * @param e Information about the new "active line range."
+		 * @param e
+		 *            Information about the new "active line range."
 		 */
 		@Override
 		public void activeLineRangeChanged(ActiveLineRangeEvent e) {
-			if (e.getMin()==-1) {
+			if (e.getMin() == -1) {
 				clearActiveLineRange();
-			}
-			else {
+			} else {
 				setActiveLineRange(e.getMin(), e.getMax());
 			}
 		}
-
+		
 		@Override
 		public void changedUpdate(DocumentEvent e) {}
-
+		
 		@Override
 		public void componentResized(java.awt.event.ComponentEvent e) {
 			revalidate();
 		}
-
+		
 		protected void handleDocumentEvent(DocumentEvent e) {
-			for (int i=0; iRTextArea.  If the location of the icon
+ * for an instance of RTextArea. If the location of the icon
  * group is invalid in any way, any attempt to retrieve icons from an icon
  * group will return null.
  *
@@ -28,100 +26,110 @@ import javax.swing.ImageIcon;
  * @version 0.5
  */
 public class IconGroup {
-
+	
 	private String path;
 	private boolean separateLargeIcons;
 	private String largeIconSubDir;
 	private String extension;
 	private String name;
 	private String jarFile;
-
-	private static final String DEFAULT_EXTENSION	= "gif";
-
-
+	private static final String DEFAULT_EXTENSION = "gif";
+	
 	/**
 	 * Creates an icon set without "large versions" of the icons.
 	 *
-	 * @param name The name of the icon group.
-	 * @param path The directory containing the icon group.
+	 * @param name
+	 *            The name of the icon group.
+	 * @param path
+	 *            The directory containing the icon group.
 	 */
 	public IconGroup(String name, String path) {
 		this(name, path, null);
 	}
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param name The name of the icon group.
-	 * @param path The directory containing the icon group.
-	 * @param largeIconSubDir The subdirectory containing "large versions" of
-	 *        the icons.  If no subdirectory exists, pass in null.
+	 * @param name
+	 *            The name of the icon group.
+	 * @param path
+	 *            The directory containing the icon group.
+	 * @param largeIconSubDir
+	 *            The subdirectory containing "large versions" of
+	 *            the icons. If no subdirectory exists, pass in
+	 *            null.
 	 */
 	public IconGroup(String name, String path, String largeIconSubDir) {
 		this(name, path, largeIconSubDir, DEFAULT_EXTENSION);
 	}
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param name The name of the icon group.
-	 * @param path The directory containing the icon group.
-	 * @param largeIconSubDir The subdirectory containing "large versions" of
-	 *        the icons.  If no subdirectory exists, pass in null.
-	 * @param extension The extension of the icons (one of gif,
-	 *        jpg, or png).
+	 * @param name
+	 *            The name of the icon group.
+	 * @param path
+	 *            The directory containing the icon group.
+	 * @param largeIconSubDir
+	 *            The subdirectory containing "large versions" of
+	 *            the icons. If no subdirectory exists, pass in
+	 *            null.
+	 * @param extension
+	 *            The extension of the icons (one of gif,
+	 *            jpg, or png).
 	 */
-	public IconGroup(String name, String path, String largeIconSubDir,
-											String extension) {
+	public IconGroup(String name, String path, String largeIconSubDir, String extension) {
 		this(name, path, largeIconSubDir, extension, null);
 	}
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param name The name of the icon group.
-	 * @param path The directory containing the icon group.
-	 * @param largeIconSubDir The subdirectory containing "large versions" of
-	 *        the icons.  If no subdirectory exists, pass in null.
-	 * @param extension The extension of the icons (one of gif,
-	 *        jpg, or png).
-	 * @param jar The Jar file containing the icons, or null if
-	 *        the icons are on the local file system.  If a Jar is specified,
-	 *        the value of path must be a path in the Jar file.
-	 *        If this is not a valid Jar file, then no Jar file will be used,
-	 *        meaning all icons returned from this icon group will be
-	 *        null.
+	 * @param name
+	 *            The name of the icon group.
+	 * @param path
+	 *            The directory containing the icon group.
+	 * @param largeIconSubDir
+	 *            The subdirectory containing "large versions" of
+	 *            the icons. If no subdirectory exists, pass in
+	 *            null.
+	 * @param extension
+	 *            The extension of the icons (one of gif,
+	 *            jpg, or png).
+	 * @param jar
+	 *            The Jar file containing the icons, or null if
+	 *            the icons are on the local file system. If a Jar is specified,
+	 *            the value of path must be a path in the Jar file.
+	 *            If this is not a valid Jar file, then no Jar file will be
+	 *            used,
+	 *            meaning all icons returned from this icon group will be
+	 *            null.
 	 */
-	public IconGroup(String name, String path, String largeIconSubDir,
-					String extension, String jar) {
+	public IconGroup(String name, String path, String largeIconSubDir, String extension, String jar) {
 		this.name = name;
 		this.path = path;
-		if (path!=null && path.length()>0 && !path.endsWith("/")) {
+		if (path != null && path.length() > 0 && !path.endsWith("/")) {
 			this.path += "/";
 		}
-		this.separateLargeIcons = (largeIconSubDir!=null);
+		this.separateLargeIcons = (largeIconSubDir != null);
 		this.largeIconSubDir = largeIconSubDir;
-		this.extension = extension!=null ? extension : DEFAULT_EXTENSION;
+		this.extension = extension != null ? extension : DEFAULT_EXTENSION;
 		this.jarFile = jar;
 	}
-
-
+	
 	/**
 	 * Returns whether two icon groups are equal.
 	 *
-	 * @param o2 The object to check against.
+	 * @param o2
+	 *            The object to check against.
 	 * @return Whether o2 represents the same icons as this icon
 	 *         group.
 	 */
 	@Override
 	public boolean equals(Object o2) {
-		if (o2!=null && o2 instanceof IconGroup) {
-			IconGroup ig2 = (IconGroup)o2;
-			if (ig2.getName().equals(getName()) &&
-					separateLargeIcons==ig2.hasSeparateLargeIcons()) {
+		if (o2 != null && o2 instanceof IconGroup) {
+			IconGroup ig2 = (IconGroup) o2;
+			if (ig2.getName().equals(getName()) && separateLargeIcons == ig2.hasSeparateLargeIcons()) {
 				if (separateLargeIcons) {
 					if (!largeIconSubDir.equals(ig2.largeIconSubDir)) {
 						return false;
@@ -133,14 +141,14 @@ public class IconGroup {
 		}
 		return false;
 	}
-
-
+	
 	/**
 	 * Returns the icon from this icon group with the specified name.
 	 *
-	 * @param name The name of the icon.  For example, if you want the icon
-	 * specified in new.gif, this value should be
-	 * new.
+	 * @param name
+	 *            The name of the icon. For example, if you want the icon
+	 *            specified in new.gif, this value should be
+	 *            new.
 	 * @return The icon, or null if it could not be found or
 	 *         loaded.
 	 * @see #getLargeIcon
@@ -148,43 +156,40 @@ public class IconGroup {
 	public Icon getIcon(String name) {
 		Icon icon = getIconImpl(path + name + "." + extension);
 		// JDK 6.0 b74 returns icons with width/height==-1 in certain error
-		// cases (new ImageIcon(url) where url is not resolved?).  We'll
+		// cases (new ImageIcon(url) where url is not resolved?). We'll
 		// just return null in this case as Swing AbstractButtons throw
 		// exceptions when expected to paint an icon with width or height
 		// is less than 1.
-		if (icon!=null && (icon.getIconWidth()<1 || icon.getIconHeight()<1)) {
+		if (icon != null && (icon.getIconWidth() < 1 || icon.getIconHeight() < 1)) {
 			icon = null;
 		}
 		return icon;
 	}
-
-
+	
 	/**
 	 * Does the dirty work of loading an image.
 	 *
-	 * @param iconFullPath The full path to the icon, either on the local
-	 *        file system or in the Jar file, if this icon group represents
-	 *        icons in a Jar file.
+	 * @param iconFullPath
+	 *            The full path to the icon, either on the local
+	 *            file system or in the Jar file, if this icon group represents
+	 *            icons in a Jar file.
 	 * @return The icon.
 	 */
 	private Icon getIconImpl(String iconFullPath) {
 		try {
-			if (jarFile==null) {
+			if (jarFile == null) {
 				// First see if it's on our classpath (e.g. an icon in
 				// RText.jar, so we'd need to use the class loader).
-				URL url = getClass().getClassLoader().
-										getResource(iconFullPath);
-				if (url!=null) {
+				URL url = getClass().getClassLoader().getResource(iconFullPath);
+				if (url != null) {
 					return new ImageIcon(url);
 				}
 				// If not, see if it's a plain file on disk.
 				BufferedImage image = ImageIO.read(new File(iconFullPath));
-				return image!=null ? new ImageIcon(image) : null;
-			}
-			else { // If it's in a Jar, create a URL and grab it.
-				URL url = new URL("jar:file:///" +
-									jarFile + "!/" + iconFullPath);
-				//System.err.println("***** " + url.toString());
+				return image != null ? new ImageIcon(image) : null;
+			} else { // If it's in a Jar, create a URL and grab it.
+				URL url = new URL("jar:file:///" + jarFile + "!/" + iconFullPath);
+				// System.err.println("***** " + url.toString());
 				return new ImageIcon(url);
 			}
 		} catch (AccessControlException ace) {
@@ -193,26 +198,24 @@ public class IconGroup {
 			return null;
 		}
 	}
-
-
+	
 	/**
 	 * Returns the large icon from this icon group with the specified name.
 	 * If this icon group does not have large icons, null is
 	 * returned.
 	 *
-	 * @param name The name of the icon.  For example, if you want the icon
-	 *        specified in new.gif, this value should be
-	 *        new.
+	 * @param name
+	 *            The name of the icon. For example, if you want the icon
+	 *            specified in new.gif, this value should be
+	 *            new.
 	 * @return The icon, or null if it could not be found or
 	 *         loaded.
 	 * @see #getLargeIcon
 	 */
 	public Icon getLargeIcon(String name) {
-		return getIconImpl(path + largeIconSubDir + "/" +
-						name + "." + extension);
+		return getIconImpl(path + largeIconSubDir + "/" + name + "." + extension);
 	}
-
-
+	
 	/**
 	 * Returns the name of this icon group.
 	 *
@@ -221,8 +224,7 @@ public class IconGroup {
 	public String getName() {
 		return name;
 	}
-
-
+	
 	/**
 	 * Returns whether a separate directory for the large icons exists.
 	 *
@@ -233,17 +235,14 @@ public class IconGroup {
 	public boolean hasSeparateLargeIcons() {
 		return separateLargeIcons;
 	}
-
-
+	
 	/**
 	 * Overridden since we also override {@link #equals(Object)}, to honor
-	 * the invariant that equal objects must have equal hashcodes.  This also
+	 * the invariant that equal objects must have equal hashcodes. This also
 	 * keeps FindBugs happy.
 	 */
 	@Override
 	public int hashCode() {
 		return getName().hashCode();
 	}
-
-
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/rtextarea/IconRowHeader.java b/src/org/fife/ui/rtextarea/IconRowHeader.java
index d66a028..cf5995d 100644
--- a/src/org/fife/ui/rtextarea/IconRowHeader.java
+++ b/src/org/fife/ui/rtextarea/IconRowHeader.java
@@ -1,9 +1,7 @@
 /*
  * 02/17/2009
- *
  * IconRowHeader.java - Renders icons in the gutter.
- *
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * RSyntaxTextArea.License.txt file for details.
  */
 package org.fife.ui.rtextarea;
@@ -32,17 +30,18 @@ import javax.swing.text.Element;
 import javax.swing.text.Position;
 import javax.swing.text.View;
 
-
 /**
- * Renders icons in the {@link Gutter}.  This can be used to visually mark
- * lines containing syntax errors, lines with breakpoints set on them, etc.

+ * Renders icons in the {@link Gutter}. This can be used to visually mark + * lines containing syntax errors, lines with breakpoints set on them, etc. + *

* * This component has built-in support for displaying icons representing * "bookmarks;" that is, lines a user can cycle through via F2 and Shift+F2. * Bookmarked lines are toggled via Ctrl+F2, or by clicking in the icon area - * at the line to bookmark. In order to enable bookmarking, you must first + * at the line to bookmark. In order to enable bookmarking, you must first * assign an icon to represent a bookmarked line, then actually enable the - * feature. This is actually done on the parent {@link Gutter} component:

+ * feature. This is actually done on the parent {@link Gutter} component: + *

* *

  * Gutter gutter = scrollPane.getGutter();
@@ -55,142 +54,133 @@ import javax.swing.text.View;
  * @see org.fife.ui.rsyntaxtextarea.FoldingAwareIconRowHeader
  */
 public class IconRowHeader extends AbstractGutterComponent implements MouseListener {
-
+	
 	/**
 	 * The icons to render.
 	 */
 	protected List trackingIcons;
-
 	/**
 	 * The width of this component.
 	 */
 	protected int width;
-
 	/**
 	 * Whether this component listens for mouse clicks and toggles "bookmark"
 	 * icons on them.
 	 */
 	private boolean bookmarkingEnabled;
-
 	/**
 	 * The icon to use for bookmarks.
 	 */
 	private Icon bookmarkIcon;
-
 	/**
 	 * Used in {@link #paintComponent(Graphics)} to prevent reallocation on
 	 * each paint.
 	 */
 	protected Rectangle visibleRect;
-
 	/**
 	 * Used in {@link #paintComponent(Graphics)} to prevent reallocation on
 	 * each paint.
 	 */
 	protected Insets textAreaInsets;
-
 	/**
 	 * The first line in the active line range.
 	 */
 	protected int activeLineRangeStart;
-
 	/**
 	 * The end line in the active line range.
 	 */
 	protected int activeLineRangeEnd;
-
 	/**
 	 * The color used to highlight the active code block.
 	 */
 	private Color activeLineRangeColor;
-
 	/**
 	 * Whether this component should use the gutter's background color (as
 	 * opposed to using a LookAndFeel-dependent color, which is the default
 	 * behavior).
 	 */
 	private boolean inheritsGutterBackground;
-
-
+	
 	/**
 	 * Constructor.
 	 *
-	 * @param textArea The parent text area.
+	 * @param textArea
+	 *            The parent text area.
 	 */
 	public IconRowHeader(RTextArea textArea) {
 		super(textArea);
 	}
-
-
+	
 	/**
 	 * Adds an icon that tracks an offset in the document, and is displayed
-	 * adjacent to the line numbers.  This is useful for marking things such
+	 * adjacent to the line numbers. This is useful for marking things such
 	 * as source code errors.
 	 *
-	 * @param offs The offset to track.
-	 * @param icon The icon to display.  This should be small (say 16x16).
+	 * @param offs
+	 *            The offset to track.
+	 * @param icon
+	 *            The icon to display. This should be small (say 16x16).
 	 * @return A tag for this icon.
-	 * @throws BadLocationException If offs is an invalid offset
-	 *         into the text area.
+	 * @throws BadLocationException
+	 *             If offs is an invalid offset
+	 *             into the text area.
 	 * @see #removeTrackingIcon(Object)
 	 */
-	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon)
-												throws BadLocationException {
+	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon) throws BadLocationException {
 		return addOffsetTrackingIcon(offs, icon, null);
 	}
-
-
+	
 	/**
 	 * Adds an icon that tracks an offset in the document, and is displayed
-	 * adjacent to the line numbers.  This is useful for marking things such
+	 * adjacent to the line numbers. This is useful for marking things such
 	 * as source code errors.
 	 *
-	 * @param offs The offset to track.
-	 * @param icon The icon to display.  This should be small (say 16x16).
-	 * @param tip A tool tip for the icon.
+	 * @param offs
+	 *            The offset to track.
+	 * @param icon
+	 *            The icon to display. This should be small (say 16x16).
+	 * @param tip
+	 *            A tool tip for the icon.
 	 * @return A tag for this icon.
-	 * @throws BadLocationException If offs is an invalid offset
-	 *         into the text area.
+	 * @throws BadLocationException
+	 *             If offs is an invalid offset
+	 *             into the text area.
 	 * @see #removeTrackingIcon(Object)
 	 */
-	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon, String tip)
-												throws BadLocationException {
+	public GutterIconInfo addOffsetTrackingIcon(int offs, Icon icon, String tip) throws BadLocationException {
 		// Despite its documentation, AbstractDocument does *not* throw BLEs
 		// when creating sticky positions for offsets that do not exist.
 		// We must check for that ourselves.
 		if (offs < 0 || offs > textArea.getDocument().getLength()) {
-			throw new BadLocationException("Offset " + offs + " not in " +
-				"required range of 0-" + textArea.getDocument().getLength(),
-				offs);
+			throw new BadLocationException("Offset " + offs + " not in " + "required range of 0-" + textArea.getDocument().getLength(),
+					offs);
 		}
 		Position pos = textArea.getDocument().createPosition(offs);
 		GutterIconImpl ti = new GutterIconImpl(icon, pos, tip);
-		if (trackingIcons==null) {
+		if (trackingIcons == null) {
 			trackingIcons = new ArrayList(1); // Usually small
 		}
 		int index = Collections.binarySearch(trackingIcons, ti);
-		if (index<0) {
-			index = -(index+1);
+		if (index < 0) {
+			index = -(index + 1);
 		}
 		trackingIcons.add(index, ti);
 		repaint();
 		return ti;
 	}
-
-
+	
 	/**
 	 * Clears the active line range.
 	 *
 	 * @see #setActiveLineRange(int, int)
 	 */
 	public void clearActiveLineRange() {
-		if (activeLineRangeStart!=-1 || activeLineRangeEnd!=-1) {
+		if (activeLineRangeStart != -1 || activeLineRangeEnd != -1) {
 			activeLineRangeStart = activeLineRangeEnd = -1;
 			repaint();
 		}
 	}
-
-
+	
 	/**
 	 * Returns the color used to paint the active line range, if any.
 	 *
@@ -200,12 +190,11 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 	public Color getActiveLineRangeColor() {
 		return activeLineRangeColor;
 	}
-
-
+	
 	/**
 	 * Returns the icon to use for bookmarks.
 	 *
-	 * @return The icon to use for bookmarks.  If this is null,
+	 * @return The icon to use for bookmarks. If this is null,
 	 *         bookmarking is effectively disabled.
 	 * @see #setBookmarkIcon(Icon)
 	 * @see #isBookmarkingEnabled()
@@ -213,70 +202,63 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 	public Icon getBookmarkIcon() {
 		return bookmarkIcon;
 	}
-
-
+	
 	/**
 	 * Returns the bookmarks known to this gutter.
 	 *
-	 * @return The bookmarks.  If there are no bookmarks, an empty array is
+	 * @return The bookmarks. If there are no bookmarks, an empty array is
 	 *         returned.
 	 */
 	public GutterIconInfo[] getBookmarks() {
-
 		List retVal = new ArrayList(1);
-
-		if (trackingIcons!=null) {
-			for (int i=0; i-1) {
+			if (line > -1) {
 				GutterIconInfo[] infos = getTrackingIcons(line);
-				if (infos.length>0) {
+				if (infos.length > 0) {
 					// TODO: Display all messages?
-					return infos[infos.length-1].getToolTip();
+					return infos[infos.length - 1].getToolTip();
 				}
 			}
 		} catch (BadLocationException ble) {
@@ -284,70 +266,57 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 		}
 		return null;
 	}
-
-
+	
 	protected GutterIconImpl getTrackingIcon(int index) {
 		return trackingIcons.get(index);
 	}
-
-
+	
 	/**
 	 * Returns the tracking icons at the specified line.
 	 *
-	 * @param line The line.
-	 * @return The tracking icons at that line.  If there are no tracking
+	 * @param line
+	 *            The line.
+	 * @return The tracking icons at that line. If there are no tracking
 	 *         icons there, this will be an empty array.
-	 * @throws BadLocationException If line is invalid.
+	 * @throws BadLocationException
+	 *             If line is invalid.
 	 */
-	public GutterIconInfo[] getTrackingIcons(int line)
-								throws BadLocationException {
-
+	public GutterIconInfo[] getTrackingIcons(int line) throws BadLocationException {
 		List retVal = new ArrayList(1);
-
-		if (trackingIcons!=null) {
+		if (trackingIcons != null) {
 			int start = textArea.getLineStartOffset(line);
 			int end = textArea.getLineEndOffset(line);
-			if (line==textArea.getLineCount()-1) {
+			if (line == textArea.getLineCount() - 1) {
 				end++; // Hack
 			}
-			for (int i=0; i=start && offs= start && offs < end) {
 					retVal.add(ti);
-				}
-				else if (offs>=end) {
+				} else if (offs >= end) {
 					break; // Quit early
 				}
 			}
 		}
-
 		GutterIconInfo[] array = new GutterIconInfo[retVal.size()];
 		return retVal.toArray(array);
-
 	}
-
-
+	
 	@Override
 	protected void init() {
-
 		super.init();
-
 		visibleRect = new Rectangle();
 		width = 16;
 		addMouseListener(this);
 		activeLineRangeStart = activeLineRangeEnd = -1;
 		setActiveLineRangeColor(null);
-
 		// Must explicitly set our background color, otherwise we inherit that
 		// of the parent Gutter.
 		updateBackground();
-
 		ToolTipManager.sharedInstance().registerComponent(this);
-
 	}
-
-
+	
 	/**
 	 * Returns whether bookmarking is enabled.
 	 *
@@ -357,8 +326,7 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 	public boolean isBookmarkingEnabled() {
 		return bookmarkingEnabled;
 	}
-
-
+	
 	/**
 	 * {@inheritDoc}
 	 */
@@ -366,29 +334,22 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 	void lineHeightsChanged() {
 		repaint();
 	}
-
-
+	
 	@Override
-	public void mouseClicked(MouseEvent e) {
-	}
-
-
+	public void mouseClicked(MouseEvent e) {}
+	
 	@Override
-	public void mouseEntered(MouseEvent e) {
-	}
-
-
+	public void mouseEntered(MouseEvent e) {}
+	
 	@Override
-	public void mouseExited(MouseEvent e) {
-	}
-
-
+	public void mouseExited(MouseEvent e) {}
+	
 	@Override
 	public void mousePressed(MouseEvent e) {
-		if (bookmarkingEnabled && bookmarkIcon!=null) {
+		if (bookmarkingEnabled && bookmarkIcon != null) {
 			try {
 				int line = viewToModelLine(e.getPoint());
-				if (line>-1) {
+				if (line > -1) {
 					toggleBookmark(line);
 				}
 			} catch (BadLocationException ble) {
@@ -396,281 +357,245 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 			}
 		}
 	}
-
-
+	
 	@Override
-	public void mouseReleased(MouseEvent e) {
-	}
-
-
+	public void mouseReleased(MouseEvent e) {}
+	
 	/**
 	 * {@inheritDoc}
 	 */
 	@Override
 	protected void paintComponent(Graphics g) {
-
-		if (textArea==null) {
+		if (textArea == null) {
 			return;
 		}
-
 		visibleRect = g.getClipBounds(visibleRect);
-		if (visibleRect==null) { // ???
+		if (visibleRect == null) { // ???
 			visibleRect = getVisibleRect();
 		}
-		//System.out.println("IconRowHeader repainting: " + visibleRect);
-		if (visibleRect==null) {
+		// System.out.println("IconRowHeader repainting: " + visibleRect);
+		if (visibleRect == null) {
 			return;
 		}
 		paintBackgroundImpl(g, visibleRect);
-
 		if (textArea.getLineWrap()) {
 			paintComponentWrapped(g);
 			return;
 		}
-
 		Document doc = textArea.getDocument();
 		Element root = doc.getDefaultRootElement();
 		textAreaInsets = textArea.getInsets(textAreaInsets);
-		if (visibleRect.y=topLine&&activeLineRangeStart<=bottomLine) ||
-			(activeLineRangeEnd>=topLine && activeLineRangeEnd<=bottomLine) ||
-			(activeLineRangeStart<=topLine && activeLineRangeEnd>=bottomLine)) {
-
+		int y = topLine * cellHeight + textAreaInsets.top;
+		if ((activeLineRangeStart >= topLine && activeLineRangeStart <= bottomLine)
+				|| (activeLineRangeEnd >= topLine && activeLineRangeEnd <= bottomLine)
+				|| (activeLineRangeStart <= topLine && activeLineRangeEnd >= bottomLine)) {
 			g.setColor(activeLineRangeColor);
 			int firstLine = Math.max(activeLineRangeStart, topLine);
 			int y1 = firstLine * cellHeight + textAreaInsets.top;
 			int lastLine = Math.min(activeLineRangeEnd, bottomLine);
-			int y2 = (lastLine+1) * cellHeight + textAreaInsets.top - 1;
-
+			int y2 = (lastLine + 1) * cellHeight + textAreaInsets.top - 1;
 			int j = y1;
-			while (j<=y2) {
-				int yEnd = Math.min(y2, j+getWidth());
-				int xEnd = yEnd-j;
-				g.drawLine(0,j, xEnd,yEnd);
+			while (j <= y2) {
+				int yEnd = Math.min(y2, j + getWidth());
+				int xEnd = yEnd - j;
+				g.drawLine(0, j, xEnd, yEnd);
 				j += 2;
 			}
-
 			int i = 2;
-			while (i=0; i--) { // Last to first
+			for (int i = trackingIcons.size() - 1; i >= 0; i--) { // Last to
+																	// first
 				GutterIconInfo ti = getTrackingIcon(i);
 				int offs = ti.getMarkedOffset();
-				if (offs>=0 && offs<=doc.getLength()) {
+				if (offs >= 0 && offs <= doc.getLength()) {
 					int line = root.getElementIndex(offs);
-					if (line<=lastLine && line>=topLine) {
+					if (line <= lastLine && line >= topLine) {
 						Icon icon = ti.getIcon();
-						if (icon!=null) {
-							int y2 = y + (line-topLine)*cellHeight;
-							y2 += (cellHeight-icon.getIconHeight())/2;
+						if (icon != null) {
+							int y2 = y + (line - topLine) * cellHeight;
+							y2 += (cellHeight - icon.getIconHeight()) / 2;
 							ti.getIcon().paintIcon(this, g, 0, y2);
-							lastLine = line-1; // Paint only 1 icon per line
+							lastLine = line - 1; // Paint only 1 icon per line
 						}
-					}
-					else if (line at least 1 physical line, so it may be that
-		// y<0.  The computed y-value is the y-value of the top of the first
+		// y<0. The computed y-value is the y-value of the top of the first
 		// (possibly) partially-visible view.
 		Rectangle visibleEditorRect = ui.getVisibleEditorRect();
-		Rectangle r = IconRowHeader.getChildViewBounds(v, topLine,
-												visibleEditorRect);
+		Rectangle r = IconRowHeader.getChildViewBounds(v, topLine, visibleEditorRect);
 		int y = r.y;
-
 		int visibleBottom = visibleRect.y + visibleRect.height;
-
 		// Get the first possibly visible icon index.
 		int currentIcon = -1;
-		if (trackingIcons!=null) {
-			for (int i=0; i=0 && offs<=doc.getLength()) {
+				if (offs >= 0 && offs <= doc.getLength()) {
 					int line = root.getElementIndex(offs);
-					if (line>=topLine) {
+					if (line >= topLine) {
 						currentIcon = i;
 						break;
 					}
 				}
 			}
 		}
-
 		// Keep painting lines until our y-coordinate is past the visible
 		// end of the text area.
 		g.setColor(getForeground());
 		int cellHeight = textArea.getLineHeight();
 		while (y < visibleBottom) {
-
 			r = getChildViewBounds(v, topLine, visibleEditorRect);
-//			int lineEndY = r.y+r.height;
-
+			// int lineEndY = r.y+r.height;
 			/*
-			// Highlight the current line's line number, if desired.
-			if (currentLineHighlighted && topLine==currentLine) {
-				g.setColor(textArea.getCurrentLineHighlightColor());
-				g.fillRect(0,y, width,lineEndY-y);
-				g.setColor(getForeground());
-			}
-			*/
-
+			 * // Highlight the current line's line number, if desired.
+			 * if (currentLineHighlighted && topLine==currentLine) {
+			 * g.setColor(textArea.getCurrentLineHighlightColor());
+			 * g.fillRect(0,y, width,lineEndY-y);
+			 * g.setColor(getForeground());
+			 * }
+			 */
 			// Possibly paint an icon.
-			if (currentIcon>-1) {
+			if (currentIcon > -1) {
 				// We want to paint the last icon added for this line.
 				GutterIconImpl toPaint = null;
-				while (currentIcon=0 && offs<=doc.getLength()) {
+					if (offs >= 0 && offs <= doc.getLength()) {
 						int line = root.getElementIndex(offs);
-						if (line==topLine) {
+						if (line == topLine) {
 							toPaint = ti;
-						}
-						else if (line>topLine) {
+						} else if (line > topLine) {
 							break;
 						}
 					}
 					currentIcon++;
 				}
-				if (toPaint!=null) {
+				if (toPaint != null) {
 					Icon icon = toPaint.getIcon();
-					if (icon!=null) {
-						int y2 = y + (cellHeight-icon.getIconHeight())/2;
+					if (icon != null) {
+						int y2 = y + (cellHeight - icon.getIconHeight()) / 2;
 						icon.paintIcon(this, g, 0, y2);
 					}
 				}
 			}
-
 			// The next possible y-coordinate is just after the last line
 			// painted.
 			y += r.height;
-
 			// Update topLine (we're actually using it for our "current line"
 			// variable now).
 			topLine++;
-			if (topLine>=lineCount) {
+			if (topLine >= lineCount) {
 				break;
 			}
-
 		}
-
 	}
-
-
+	
 	/**
 	 * Removes the specified tracking icon.
 	 *
-	 * @param tag A tag for a tracking icon.
+	 * @param tag
+	 *            A tag for a tracking icon.
 	 * @see #removeAllTrackingIcons()
 	 * @see #addOffsetTrackingIcon(int, Icon)
 	 */
 	public void removeTrackingIcon(Object tag) {
-		if (trackingIcons!=null && trackingIcons.remove(tag)) {
+		if (trackingIcons != null && trackingIcons.remove(tag)) {
 			repaint();
 		}
 	}
-
-
+	
 	/**
 	 * Removes all tracking icons.
 	 *
@@ -678,56 +603,54 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 	 * @see #addOffsetTrackingIcon(int, Icon)
 	 */
 	public void removeAllTrackingIcons() {
-		if (trackingIcons!=null && trackingIcons.size()>0) {
+		if (trackingIcons != null && trackingIcons.size() > 0) {
 			trackingIcons.clear();
 			repaint();
 		}
 	}
-
-
+	
 	/**
 	 * Removes all bookmark tracking icons.
 	 */
 	private void removeBookmarkTrackingIcons() {
-		if (trackingIcons!=null) {
-			for (Iterator i=trackingIcons.iterator();
-					i.hasNext();) {
+		if (trackingIcons != null) {
+			for (Iterator i = trackingIcons.iterator(); i.hasNext();) {
 				GutterIconImpl ti = i.next();
-				if (ti.getIcon()==bookmarkIcon) {
+				if (ti.getIcon() == bookmarkIcon) {
 					i.remove();
 				}
 			}
 		}
 	}
-
-
+	
 	/**
 	 * Highlights a range of lines in the icon area.
 	 *
-	 * @param startLine The start of the line range.
-	 * @param endLine The end of the line range.
+	 * @param startLine
+	 *            The start of the line range.
+	 * @param endLine
+	 *            The end of the line range.
 	 * @see #clearActiveLineRange()
 	 */
 	public void setActiveLineRange(int startLine, int endLine) {
-		if (startLine!=activeLineRangeStart ||
-				endLine!=activeLineRangeEnd) {
+		if (startLine != activeLineRangeStart || endLine != activeLineRangeEnd) {
 			activeLineRangeStart = startLine;
 			activeLineRangeEnd = endLine;
 			repaint();
 		}
 	}
-
-
+	
 	/**
 	 * Sets the color to use to render active line ranges.
 	 *
-	 * @param color The color to use.  If this is null, then the default
-	 *        color is used.
+	 * @param color
+	 *            The color to use. If this is null, then the default
+	 *            color is used.
 	 * @see #getActiveLineRangeColor()
 	 * @see Gutter#DEFAULT_ACTIVE_LINE_RANGE_COLOR
 	 */
 	public void setActiveLineRangeColor(Color color) {
-		if (color==null) {
+		if (color == null) {
 			color = Gutter.DEFAULT_ACTIVE_LINE_RANGE_COLOR;
 		}
 		if (!color.equals(activeLineRangeColor)) {
@@ -735,14 +658,14 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 			repaint();
 		}
 	}
-
-
+	
 	/**
-	 * Sets the icon to use for bookmarks.  Any previous bookmark icons
+	 * Sets the icon to use for bookmarks. Any previous bookmark icons
 	 * are removed.
 	 *
-	 * @param icon The new bookmark icon.  If this is null,
-	 *        bookmarking is effectively disabled.
+	 * @param icon
+	 *            The new bookmark icon. If this is null,
+	 *            bookmarking is effectively disabled.
 	 * @see #getBookmarkIcon()
 	 * @see #isBookmarkingEnabled()
 	 */
@@ -751,20 +674,20 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 		bookmarkIcon = icon;
 		repaint();
 	}
-
-
+	
 	/**
-	 * Sets whether bookmarking is enabled.  Note that a bookmarking icon
+	 * Sets whether bookmarking is enabled. Note that a bookmarking icon
 	 * must be set via {@link #setBookmarkIcon(Icon)} before bookmarks are
 	 * truly enabled.
 	 *
-	 * @param enabled Whether bookmarking is enabled.  If this is
-	 *        false, any bookmark icons are removed.
+	 * @param enabled
+	 *            Whether bookmarking is enabled. If this is
+	 *            false, any bookmark icons are removed.
 	 * @see #isBookmarkingEnabled()
 	 * @see #setBookmarkIcon(Icon)
 	 */
 	public void setBookmarkingEnabled(boolean enabled) {
-		if (enabled!=bookmarkingEnabled) {
+		if (enabled != bookmarkingEnabled) {
 			bookmarkingEnabled = enabled;
 			if (!enabled) {
 				removeBookmarkTrackingIcons();
@@ -772,67 +695,65 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 			repaint();
 		}
 	}
-
-
+	
 	/**
 	 * Sets whether the icon area inherits the gutter background (as opposed
 	 * to painting with its own, default "panel" color, which is the default).
 	 *
-	 * @param inherits Whether the gutter background should be used in the icon
-	 *        row header.  If this is false, a default,
-	 *        Look-and-feel-dependent color is used.
+	 * @param inherits
+	 *            Whether the gutter background should be used in the icon
+	 *            row header. If this is false, a default,
+	 *            Look-and-feel-dependent color is used.
 	 */
 	public void setInheritsGutterBackground(boolean inherits) {
-		if (inherits!=inheritsGutterBackground) {
+		if (inherits != inheritsGutterBackground) {
 			inheritsGutterBackground = inherits;
 			repaint();
 		}
 	}
-
-
+	
 	/**
-	 * Sets the text area being displayed.  This will clear any tracking
+	 * Sets the text area being displayed. This will clear any tracking
 	 * icons currently displayed.
 	 *
-	 * @param textArea The text area.
+	 * @param textArea
+	 *            The text area.
 	 */
 	@Override
 	public void setTextArea(RTextArea textArea) {
 		removeAllTrackingIcons();
 		super.setTextArea(textArea);
 	}
-
-
+	
 	/**
 	 * Programatically toggles whether there is a bookmark for the specified
-	 * line.  If bookmarking is not enabled, this method does nothing.
+	 * line. If bookmarking is not enabled, this method does nothing.
 	 *
-	 * @param line The line.
+	 * @param line
+	 *            The line.
 	 * @return Whether a bookmark is now at the specified line.
-	 * @throws BadLocationException If line is an invalid line
-	 *         number in the text area.
+	 * @throws BadLocationException
+	 *             If line is an invalid line
+	 *             number in the text area.
 	 */
 	public boolean toggleBookmark(int line) throws BadLocationException {
-
-		if (!isBookmarkingEnabled() || getBookmarkIcon()==null) {
+		if (!isBookmarkingEnabled() || getBookmarkIcon() == null) {
 			return false;
 		}
-
 		GutterIconInfo[] icons = getTrackingIcons(line);
-		if (icons.length==0) {
+		if (icons.length == 0) {
 			int offs = textArea.getLineStartOffset(line);
 			addOffsetTrackingIcon(offs, bookmarkIcon);
 			return true;
 		}
-
 		boolean found = false;
-		for (int i=0; i 1
 				// bookmark is on a single line (kind of flaky, but it
-				// works...).  If they delete all chars in the document,
+				// works...). If they delete all chars in the document,
 				// AbstractDocument gets a little flaky with the returned line
 				// number for viewToModel(), so this is just us trying to save
 				// face a little.
@@ -842,26 +763,22 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 			int offs = textArea.getLineStartOffset(line);
 			addOffsetTrackingIcon(offs, bookmarkIcon);
 		}
-
 		return !found;
-
 	}
-
-
+	
 	/**
 	 * Sets our background color to that of standard "panels" in this
-	 * LookAndFeel.  This is necessary because, otherwise, we'd inherit the
+	 * LookAndFeel. This is necessary because, otherwise, we'd inherit the
 	 * background color of our parent component (the Gutter).
 	 */
 	private void updateBackground() {
 		Color bg = UIManager.getColor("Panel.background");
-		if (bg==null) { // UIManager properties aren't guaranteed to exist
+		if (bg == null) { // UIManager properties aren't guaranteed to exist
 			bg = new JPanel().getBackground();
 		}
 		setBackground(bg);
 	}
-
-
+	
 	/**
 	 * {@inheritDoc}
 	 */
@@ -870,71 +787,67 @@ public class IconRowHeader extends AbstractGutterComponent implements MouseListe
 		super.updateUI(); // Does nothing
 		updateBackground();
 	}
-
-
+	
 	/**
 	 * Returns the line rendered at the specified location.
 	 *
-	 * @param p The location in this row header.
+	 * @param p
+	 *            The location in this row header.
 	 * @return The corresponding line in the editor.
-	 * @throws BadLocationException ble If an error occurs.
+	 * @throws BadLocationException
+	 *             ble If an error occurs.
 	 */
 	private int viewToModelLine(Point p) throws BadLocationException {
 		int offs = textArea.viewToModel(p);
-		return offs>-1 ? textArea.getLineOfOffset(offs) : -1;
+		return offs > -1 ? textArea.getLineOfOffset(offs) : -1;
 	}
-
-
+	
 	/**
 	 * Implementation of the icons rendered.
 	 */
-	private static class GutterIconImpl implements GutterIconInfo,
-			Comparable {
-
+	private static class GutterIconImpl implements GutterIconInfo, Comparable {
+		
 		private Icon icon;
 		private Position pos;
 		private String toolTip;
-
+		
 		GutterIconImpl(Icon icon, Position pos, String toolTip) {
 			this.icon = icon;
 			this.pos = pos;
 			this.toolTip = toolTip;
 		}
-
+		
 		@Override
 		public int compareTo(GutterIconInfo other) {
-			if (other!=null) {
+			if (other != null) {
 				return pos.getOffset() - other.getMarkedOffset();
 			}
 			return -1;
 		}
-
+		
 		@Override
 		public boolean equals(Object o) {
-			return o==this;
+			return o == this;
 		}
-
+		
 		@Override
 		public Icon getIcon() {
 			return icon;
 		}
-
+		
 		@Override
 		public int getMarkedOffset() {
 			return pos.getOffset();
 		}
-
+		
 		@Override
 		public String getToolTip() {
 			return toolTip;
 		}
-
+		
 		@Override
 		public int hashCode() {
 			return icon.hashCode(); // FindBugs
 		}
-
 	}
-
-
-}
\ No newline at end of file
+}
diff --git a/src/org/fife/ui/rtextarea/ImageBackgroundPainterStrategy.java b/src/org/fife/ui/rtextarea/ImageBackgroundPainterStrategy.java
index f2b24d7..66ae04f 100644
--- a/src/org/fife/ui/rtextarea/ImageBackgroundPainterStrategy.java
+++ b/src/org/fife/ui/rtextarea/ImageBackgroundPainterStrategy.java
@@ -1,10 +1,8 @@
 /*
  * 01/22/2005
- *
  * ImageBackgroundPainterStrategy.java - Renders an RTextAreaBase's
  * background as an image.
- *
- * This library is distributed under a modified BSD license.  See the included
+ * This library is distributed under a modified BSD license. See the included
  * RSyntaxTextArea.License.txt file for details.
  */
 package org.fife.ui.rtextarea;
@@ -15,13 +13,14 @@ import java.awt.MediaTracker;
 import java.awt.Rectangle;
 import java.awt.image.BufferedImage;
 import java.net.URL;
-import javax.imageio.ImageIO;
 
+import javax.imageio.ImageIO;
 
 /**
  * A strategy for painting the background of an RTextAreaBase
- * as an image.  The image is always stretched to completely fill the
- * RTextAreaBase.

+ * as an image. The image is always stretched to completely fill the + * RTextAreaBase. + *

* * You can set the scaling hint used when stretching/skewing the image * to fit in the RTextAreaBase's background via the @@ -35,29 +34,26 @@ import javax.imageio.ImageIO; * @see org.fife.ui.rtextarea.BufferedImageBackgroundPainterStrategy * @see org.fife.ui.rtextarea.VolatileImageBackgroundPainterStrategy */ -public abstract class ImageBackgroundPainterStrategy - implements BackgroundPainterStrategy { - +public abstract class ImageBackgroundPainterStrategy implements BackgroundPainterStrategy { + protected MediaTracker tracker; - private RTextAreaBase textArea; private Image master; private int oldWidth, oldHeight; private int scalingHint; - - + /** * Constructor. * - * @param textArea The text area using this image as its background. + * @param textArea + * The text area using this image as its background. */ public ImageBackgroundPainterStrategy(RTextAreaBase textArea) { this.textArea = textArea; tracker = new MediaTracker(textArea); scalingHint = Image.SCALE_FAST; } - - + /** * Returns the text area using this strategy. * @@ -66,8 +62,7 @@ public abstract class ImageBackgroundPainterStrategy public RTextAreaBase getRTextAreaBase() { return textArea; } - - + /** * Returns the "master" image; that is, the original, unscaled image. * When the image needs to be rescaled, scaling should be done from @@ -78,8 +73,7 @@ public abstract class ImageBackgroundPainterStrategy public Image getMasterImage() { return master; } - - + /** * Returns the scaling hint being used. * @@ -89,53 +83,57 @@ public abstract class ImageBackgroundPainterStrategy public int getScalingHint() { return scalingHint; } - - + /** * Paints the image at the specified location and at the specified size. * - * @param g The graphics context. - * @param bounds The bounds in which to paint the image. The image - * will be scaled to fit exactly in these bounds if necessary. + * @param g + * The graphics context. + * @param bounds + * The bounds in which to paint the image. The image + * will be scaled to fit exactly in these bounds if necessary. */ @Override public final void paint(Graphics g, Rectangle bounds) { - if (bounds.width!=oldWidth || bounds.height!=oldHeight) { + if (bounds.width != oldWidth || bounds.height != oldHeight) { rescaleImage(bounds.width, bounds.height, getScalingHint()); oldWidth = bounds.width; oldHeight = bounds.height; } - paintImage(g, bounds.x,bounds.y); + paintImage(g, bounds.x, bounds.y); } - - + /** - * Paints the image at the specified location. This method assumes + * Paints the image at the specified location. This method assumes * scaling has already been done, and simply paints the background * image "as-is." * - * @param g The graphics context. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. + * @param g + * The graphics context. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. */ protected abstract void paintImage(Graphics g, int x, int y); - - + /** * Rescales the displayed image to be the specified size. * - * @param width The new width of the image. - * @param height The new height of the image. - * @param hint The scaling hint to use. + * @param width + * The new width of the image. + * @param height + * The new height of the image. + * @param hint + * The scaling hint to use. */ - protected abstract void rescaleImage(int width, int height, - int hint); - - + protected abstract void rescaleImage(int width, int height, int hint); + /** * Sets the image this background painter displays. * - * @param imageURL URL of a file containing the image to display. + * @param imageURL + * URL of a file containing the image to display. */ public void setImage(URL imageURL) { BufferedImage image = null; @@ -146,27 +144,26 @@ public abstract class ImageBackgroundPainterStrategy } setImage(image); } - + /** * Sets the image this background painter displays. * - * @param image The new image to use for the background. + * @param image + * The new image to use for the background. */ public void setImage(Image image) { master = image; oldWidth = -1; // To trick us into fixing bgImage. } - - + /** * Sets the scaling hint to use when scaling the image. * - * @param hint The hint to apply; e.g. Image.SCALE_DEFAULT. + * @param hint + * The hint to apply; e.g. Image.SCALE_DEFAULT. * @see #getScalingHint */ public void setScalingHint(int hint) { this.scalingHint = hint; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/LineHighlightManager.java b/src/org/fife/ui/rtextarea/LineHighlightManager.java index 2d91d2d..f7c720f 100644 --- a/src/org/fife/ui/rtextarea/LineHighlightManager.java +++ b/src/org/fife/ui/rtextarea/LineHighlightManager.java @@ -1,9 +1,7 @@ /* * 02/10/2009 - * * LineHighlightManager - Manages line highlights. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -19,7 +17,6 @@ import java.util.List; import javax.swing.text.BadLocationException; import javax.swing.text.Position; - /** * Manages line highlights in an RTextArea. * @@ -27,50 +24,50 @@ import javax.swing.text.Position; * @version 1.0 */ class LineHighlightManager { - + private RTextArea textArea; private List lineHighlights; private LineHighlightInfoComparator comparator; - + /** * Constructor. * - * @param textArea The parent text area. + * @param textArea + * The parent text area. */ LineHighlightManager(RTextArea textArea) { this.textArea = textArea; comparator = new LineHighlightInfoComparator(); } - - + /** * Highlights the specified line. * - * @param line The line to highlight. - * @param color The color to highlight with. + * @param line + * The line to highlight. + * @param color + * The color to highlight with. * @return A tag for the highlight. - * @throws BadLocationException If line is not a valid line - * number. + * @throws BadLocationException + * If line is not a valid line + * number. * @see #removeLineHighlight(Object) */ - public Object addLineHighlight(int line, Color color) - throws BadLocationException { + public Object addLineHighlight(int line, Color color) throws BadLocationException { int offs = textArea.getLineStartOffset(line); - LineHighlightInfo lhi = new LineHighlightInfo( - textArea.getDocument().createPosition(offs), color); - if (lineHighlights==null) { + LineHighlightInfo lhi = new LineHighlightInfo(textArea.getDocument().createPosition(offs), color); + if (lineHighlights == null) { lineHighlights = new ArrayList(1); } int index = Collections.binarySearch(lineHighlights, lhi, comparator); - if (index<0) { // Common case - index = -(index+1); + if (index < 0) { // Common case + index = -(index + 1); } lineHighlights.add(index, lhi); repaintLine(lhi); return lhi; } - - + /** * Returns the current line highlights' tags. * @@ -78,151 +75,136 @@ class LineHighlightManager { * are none. */ protected List getCurrentLineHighlightTags() { - return lineHighlights == null ? Collections.emptyList() : - new ArrayList(lineHighlights); + return lineHighlights == null ? Collections.emptyList() : new ArrayList(lineHighlights); } - - + /** - * Returns the current number of line highlights. Useful for testing. + * Returns the current number of line highlights. Useful for testing. * * @return The current number of line highlights. */ protected int getLineHighlightCount() { return lineHighlights == null ? 0 : lineHighlights.size(); } - - + /** * Paints any highlighted lines in the specified line range. * - * @param g The graphics context. + * @param g + * The graphics context. */ public void paintLineHighlights(Graphics g) { - - int count = lineHighlights==null ? 0 : lineHighlights.size(); - if (count>0) { - + int count = lineHighlights == null ? 0 : lineHighlights.size(); + if (count > 0) { int docLen = textArea.getDocument().getLength(); Rectangle vr = textArea.getVisibleRect(); int lineHeight = textArea.getLineHeight(); - try { - - for (int i=0; i=0 && offs<=docLen) { + if (offs >= 0 && offs <= docLen) { int y = textArea.yForLineContaining(offs); - if (y>vr.y-lineHeight) { - if (y vr.y - lineHeight) { + if (y < vr.y + vr.height) { g.setColor(lhi.getColor()); - g.fillRect(0,y, textArea.getWidth(),lineHeight); - } - else { + g.fillRect(0, y, textArea.getWidth(), lineHeight); + } else { break; // Out of visible rect } } } } - } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); } } - } - - + /** * Removes all line highlights. * * @see #removeLineHighlight(Object) */ public void removeAllLineHighlights() { - if (lineHighlights!=null) { + if (lineHighlights != null) { lineHighlights.clear(); textArea.repaint(); } } - - + /** * Removes a line highlight. * - * @param tag The tag of the line highlight to remove. + * @param tag + * The tag of the line highlight to remove. * @see #addLineHighlight(int, Color) */ public void removeLineHighlight(Object tag) { if (tag instanceof LineHighlightInfo) { lineHighlights.remove(tag); - repaintLine((LineHighlightInfo)tag); + repaintLine((LineHighlightInfo) tag); } } - - + /** * Repaints the line pointed to by the specified highlight information. * - * @param lhi The highlight information. + * @param lhi + * The highlight information. */ private void repaintLine(LineHighlightInfo lhi) { int offs = lhi.getOffset(); // May be > length if they deleted text including the highlight - if (offs>=0 && offs<=textArea.getDocument().getLength()) { + if (offs >= 0 && offs <= textArea.getDocument().getLength()) { try { int y = textArea.yForLineContaining(offs); - if (y>-1) { - textArea.repaint(0, y, - textArea.getWidth(), textArea.getLineHeight()); + if (y > -1) { + textArea.repaint(0, y, textArea.getWidth(), textArea.getLineHeight()); } } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } } } - - + /** * Information about a line highlight. */ private static class LineHighlightInfo { - + private Position offs; private Color color; - + LineHighlightInfo(Position offs, Color c) { this.offs = offs; this.color = c; } - + public Color getColor() { return color; } - + public int getOffset() { return offs.getOffset(); } - + @Override public int hashCode() { return getOffset(); } - } - - + /** - * Comparator used when adding new highlights. This is done here instead + * Comparator used when adding new highlights. This is done here instead * of making LineHighlightInfo implement * Comparable as correctly implementing the latter prevents * two LHI's pointing to the same line from correctly being distinguished - * from one another. See: + * from one another. See: * https://github.com/bobbylight/RSyntaxTextArea/issues/161 */ - private static class LineHighlightInfoComparator - implements Comparator { - + private static class LineHighlightInfoComparator implements Comparator { + @Override public int compare(LineHighlightInfo lhi1, LineHighlightInfo lhi2) { if (lhi1.getOffset() < lhi2.getOffset()) { @@ -230,8 +212,5 @@ class LineHighlightManager { } return lhi1.getOffset() == lhi2.getOffset() ? 0 : 1; } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/LineNumberList.java b/src/org/fife/ui/rtextarea/LineNumberList.java index 8f4a32d..0b00346 100644 --- a/src/org/fife/ui/rtextarea/LineNumberList.java +++ b/src/org/fife/ui/rtextarea/LineNumberList.java @@ -1,9 +1,7 @@ /* * 02/11/2009 - * * LineNumberList.java - Renders line numbers in an RTextScrollPane. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -36,87 +34,76 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; import org.fife.ui.rsyntaxtextarea.folding.Fold; import org.fife.ui.rsyntaxtextarea.folding.FoldManager; - /** * Renders line numbers in the gutter. * * @author Robert Futrell * @version 1.0 */ -public class LineNumberList extends AbstractGutterComponent - implements MouseInputListener { - - private int currentLine; // The last line the caret was on. - private int lastY = -1; // Used to check if caret changes lines when line wrap is enabled. +public class LineNumberList extends AbstractGutterComponent implements MouseInputListener { + + private int currentLine; // The last line the caret was on. + private int lastY = -1; // Used to check if caret changes lines when line + // wrap is enabled. private int lastVisibleLine;// Last line index painted. - - private int cellHeight; // Height of a line number "cell" when word wrap is off. - private int cellWidth; // The width used for all line number cells. - private int ascent; // The ascent to use when painting line numbers. - - private Map aaHints; - + private int cellHeight; // Height of a line number "cell" when word wrap is + // off. + private int cellWidth; // The width used for all line number cells. + private int ascent; // The ascent to use when painting line numbers. + private Map aaHints; private int mouseDragStartOffset; - /** * Listens for events from the current text area. */ private Listener l; - /** * Used in {@link #paintComponent(Graphics)} to prevent reallocation on * each paint. */ private Insets textAreaInsets; - /** * Used in {@link #paintComponent(Graphics)} to prevent reallocation on * each paint. */ private Rectangle visibleRect; - /** - * The index at which line numbering should start. The default value is + * The index at which line numbering should start. The default value is * 1, but applications can change this if, for example, they * are displaying a subset of lines in a file. */ private int lineNumberingStartIndex; - - + /** * Constructs a new LineNumberList using default values for * line number color (gray) and highlighting the current line. * - * @param textArea The text component for which line numbers will be - * displayed. + * @param textArea + * The text component for which line numbers will be + * displayed. */ public LineNumberList(RTextArea textArea) { this(textArea, null); } - - + /** * Constructs a new LineNumberList. * - * @param textArea The text component for which line numbers will be - * displayed. - * @param numberColor The color to use for the line numbers. If this is - * null, gray will be used. + * @param textArea + * The text component for which line numbers will be + * displayed. + * @param numberColor + * The color to use for the line numbers. If this is + * null, gray will be used. */ public LineNumberList(RTextArea textArea, Color numberColor) { - super(textArea); - - if (numberColor!=null) { + if (numberColor != null) { setForeground(numberColor); - } - else { + } else { setForeground(Color.GRAY); } - } - - + /** * Overridden to set width of this component correctly when we are first * displayed (as keying off of the RTextArea gives us (0,0) when it isn't @@ -125,14 +112,13 @@ public class LineNumberList extends AbstractGutterComponent @Override public void addNotify() { super.addNotify(); - if (textArea!=null) { + if (textArea != null) { l.install(textArea); // Won't double-install } updateCellWidths(); updateCellHeights(); } - - + /** * Calculates the last line number index painted in this component. * @@ -140,15 +126,14 @@ public class LineNumberList extends AbstractGutterComponent */ private int calculateLastVisibleLineNumber() { int lastLine = 0; - if (textArea!=null) { - lastLine = textArea.getLineCount()+getLineNumberingStartIndex()-1; + if (textArea != null) { + lastLine = textArea.getLineCount() + getLineNumberingStartIndex() - 1; } return lastLine; } - - + /** - * Returns the starting line's line number. The default value is + * Returns the starting line's line number. The default value is * 1. * * @return The index @@ -157,18 +142,16 @@ public class LineNumberList extends AbstractGutterComponent public int getLineNumberingStartIndex() { return lineNumberingStartIndex; } - - + /** * {@inheritDoc} */ @Override public Dimension getPreferredSize() { - int h = textArea!=null ? textArea.getHeight() : 100; // Arbitrary + int h = textArea != null ? textArea.getHeight() : 100; // Arbitrary return new Dimension(cellWidth, h); } - - + /** * Returns the width of the empty border on this component's right-hand * side (or left-hand side, if the orientation is RTL). @@ -178,52 +161,43 @@ public class LineNumberList extends AbstractGutterComponent private int getRhsBorderWidth() { int w = 4; if (textArea instanceof RSyntaxTextArea) { - if (((RSyntaxTextArea)textArea).isCodeFoldingEnabled()) { + if (((RSyntaxTextArea) textArea).isCodeFoldingEnabled()) { w = 0; } } return w; } - - + /** * {@inheritDoc} */ @Override void handleDocumentEvent(DocumentEvent e) { int newLastLine = calculateLastVisibleLineNumber(); - if (newLastLine!=lastVisibleLine) { + if (newLastLine != lastVisibleLine) { // Adjust the amount of space the line numbers take up, // if necessary. - if (newLastLine/10 != lastVisibleLine/10) { + if (newLastLine / 10 != lastVisibleLine / 10) { updateCellWidths(); } lastVisibleLine = newLastLine; repaint(); } } - - + @Override protected void init() { - super.init(); - // Initialize currentLine; otherwise, the current line won't start // off as highlighted. currentLine = 0; setLineNumberingStartIndex(1); - visibleRect = new Rectangle(); // Must be initialized - addMouseListener(this); addMouseMotionListener(this); - aaHints = RSyntaxUtilities.getDesktopAntiAliasHints(); - } - - + /** * {@inheritDoc} */ @@ -231,131 +205,110 @@ public class LineNumberList extends AbstractGutterComponent void lineHeightsChanged() { updateCellHeights(); } - - + @Override - public void mouseClicked(MouseEvent e) { - } - - + public void mouseClicked(MouseEvent e) {} + @Override public void mouseDragged(MouseEvent e) { - if (mouseDragStartOffset>-1) { + if (mouseDragStartOffset > -1) { int pos = textArea.viewToModel(new Point(0, e.getY())); - if (pos>=0) { // Not -1 + if (pos >= 0) { // Not -1 textArea.setCaretPosition(mouseDragStartOffset); textArea.moveCaretPosition(pos); } } } - - + @Override - public void mouseEntered(MouseEvent e) { - } - - + public void mouseEntered(MouseEvent e) {} + @Override - public void mouseExited(MouseEvent e) { - } - - + public void mouseExited(MouseEvent e) {} + @Override - public void mouseMoved(MouseEvent e) { - } - - + public void mouseMoved(MouseEvent e) {} + @Override public void mousePressed(MouseEvent e) { - if (textArea==null) { + if (textArea == null) { return; } - if (e.getButton()==MouseEvent.BUTTON1) { + if (e.getButton() == MouseEvent.BUTTON1) { int pos = textArea.viewToModel(new Point(0, e.getY())); - if (pos>=0) { // Not -1 + if (pos >= 0) { // Not -1 textArea.setCaretPosition(pos); } mouseDragStartOffset = pos; - } - else { + } else { mouseDragStartOffset = -1; } } - - + @Override - public void mouseReleased(MouseEvent e) { - } - - + public void mouseReleased(MouseEvent e) {} + /** * Paints this component. * - * @param g The graphics context. + * @param g + * The graphics context. */ @Override protected void paintComponent(Graphics g) { - - if (textArea==null) { + if (textArea == null) { return; } - visibleRect = g.getClipBounds(visibleRect); - if (visibleRect==null) { // ??? + if (visibleRect == null) { // ??? visibleRect = getVisibleRect(); } - //System.out.println("LineNumberList repainting: " + visibleRect); - if (visibleRect==null) { + // System.out.println("LineNumberList repainting: " + visibleRect); + if (visibleRect == null) { return; } - Color bg = getBackground(); - if (getGutter()!=null) { // Should always be true + if (getGutter() != null) { // Should always be true bg = getGutter().getBackground(); } g.setColor(bg); - g.fillRect(0,visibleRect.y, cellWidth,visibleRect.height); + g.fillRect(0, visibleRect.y, cellWidth, visibleRect.height); g.setFont(getFont()); - if (aaHints!=null) { - ((Graphics2D)g).addRenderingHints(aaHints); + if (aaHints != null) { + ((Graphics2D) g).addRenderingHints(aaHints); } - if (textArea.getLineWrap()) { paintWrappedLineNumbers(g, visibleRect); return; } - // Get where to start painting (top of the row), and where to paint // the line number (drawString expects y==baseline). // We need to be "scrolled up" just enough for the missing part of // the first line. textAreaInsets = textArea.getInsets(textAreaInsets); - if (visibleRect.y=topLine && - currentLine<=bottomLine) { - g.setColor(textArea.getCurrentLineHighlightColor()); - g.fillRect(0,actualTopY+(currentLine-topLine)*cellHeight, - cellWidth,cellHeight); - } -*/ - + /* + * // Highlight the current line's line number, if desired. + * if (textArea.getHighlightCurrentLine() && currentLine>=topLine && + * currentLine<=bottomLine) { + * g.setColor(textArea.getCurrentLineHighlightColor()); + * g.fillRect(0,actualTopY+(currentLine-topLine)*cellHeight, + * cellWidth,cellHeight); + * } + */ // Paint line numbers g.setColor(getForeground()); boolean ltr = getComponentOrientation().isLeftToRight(); @@ -363,40 +316,42 @@ public class LineNumberList extends AbstractGutterComponent FontMetrics metrics = g.getFontMetrics(); int rhs = getWidth() - rhsBorderWidth; int line = topLine + 1; - while (y at least 1 physical line, so it may be that - // y<0. The computed y-value is the y-value of the top of the first + // y<0. The computed y-value is the y-value of the top of the first // (possibly) partially-visible view. Rectangle visibleEditorRect = ui.getVisibleEditorRect(); - Rectangle r = LineNumberList.getChildViewBounds(v, topLine, - visibleEditorRect); + Rectangle r = LineNumberList.getChildViewBounds(v, topLine, visibleEditorRect); int y = r.y; final int rhsBorderWidth = getRhsBorderWidth(); int rhs; boolean ltr = getComponentOrientation().isLeftToRight(); if (ltr) { rhs = width - rhsBorderWidth; - } - else { // rtl + } else { // rtl rhs = rhsBorderWidth; } int visibleBottom = visibleRect.y + visibleRect.height; FontMetrics metrics = g.getFontMetrics(); - // Keep painting lines until our y-coordinate is past the visible // end of the text area. g.setColor(getForeground()); - while (y < visibleBottom) { - r = LineNumberList.getChildViewBounds(v, topLine, visibleEditorRect); - /* - // Highlight the current line's line number, if desired. - if (currentLineHighlighted && topLine==currentLine) { - g.setColor(textArea.getCurrentLineHighlightColor()); - g.fillRect(0,y, width,(r.y+r.height)-y); - g.setColor(getForeground()); - } - */ - + * // Highlight the current line's line number, if desired. + * if (currentLineHighlighted && topLine==currentLine) { + * g.setColor(textArea.getCurrentLineHighlightColor()); + * g.fillRect(0,y, width,(r.y+r.height)-y); + * g.setColor(getForeground()); + * } + */ // Paint the line number. - int index = (topLine+1) + getLineNumberingStartIndex() - 1; + int index = (topLine + 1) + getLineNumberingStartIndex() - 1; String number = Integer.toString(index); if (ltr) { int strWidth = metrics.stringWidth(number); - g.drawString(number, rhs-strWidth,y+ascent); - } - else { + g.drawString(number, rhs - strWidth, y + ascent); + } else { int x = rhsBorderWidth; - g.drawString(number, x, y+ascent); + g.drawString(number, x, y + ascent); } - // The next possible y-coordinate is just after the last line // painted. y += r.height; - // Update topLine (we're actually using it for our "current line" // variable now). - if (fm!=null) { + if (fm != null) { Fold fold = fm.getFoldForLine(topLine); - if (fold!=null && fold.isCollapsed()) { + if (fold != null && fold.isCollapsed()) { topLine += fold.getCollapsedLineCount(); } } topLine++; - if (topLine>=lineCount) { + if (topLine >= lineCount) { break; } - } - } - - + /** * Called when this component is removed from the view hierarchy. */ @Override public void removeNotify() { super.removeNotify(); - if (textArea!=null) { + if (textArea != null) { l.uninstall(textArea); } } - - + /** * Repaints a single line in this list. * - * @param line The line to repaint. + * @param line + * The line to repaint. */ private void repaintLine(int line) { int y = textArea.getInsets().top; - y += line*cellHeight; - repaint(0,y, cellWidth,cellHeight); + y += line * cellHeight; + repaint(0, y, cellWidth, cellHeight); } - - + /** * Overridden to ensure line number cell sizes are updated with the * font size change. * - * @param font The new font to use for line numbers. + * @param font + * The new font to use for line numbers. */ @Override public void setFont(Font font) { @@ -569,181 +504,153 @@ public class LineNumberList extends AbstractGutterComponent updateCellWidths(); updateCellHeights(); } - - + /** - * Sets the starting line's line number. The default value is - * 1. Applications can call this method to change this value + * Sets the starting line's line number. The default value is + * 1. Applications can call this method to change this value * if they are displaying a subset of lines in a file, for example. * - * @param index The new index. + * @param index + * The new index. * @see #getLineNumberingStartIndex() */ public void setLineNumberingStartIndex(int index) { - if (index!=lineNumberingStartIndex) { + if (index != lineNumberingStartIndex) { lineNumberingStartIndex = index; updateCellWidths(); repaint(); } } - - + /** * Sets the text area being displayed. * - * @param textArea The text area. + * @param textArea + * The text area. */ @Override public void setTextArea(RTextArea textArea) { - - if (l==null) { + if (l == null) { l = new Listener(); } - - if (this.textArea!=null) { + if (this.textArea != null) { l.uninstall(textArea); } - super.setTextArea(textArea); lastVisibleLine = calculateLastVisibleLineNumber(); - - if (textArea!=null) { + if (textArea != null) { l.install(textArea); // Won't double-install updateCellHeights(); updateCellWidths(); } - } - - + /** * Changes the height of the cells in the JList so that they are as tall as * font. This function should be called whenever the user changes the Font * of textArea. */ private void updateCellHeights() { - if (textArea!=null) { + if (textArea != null) { cellHeight = textArea.getLineHeight(); ascent = textArea.getMaxAscent(); - } - else { + } else { cellHeight = 20; // Arbitrary number. ascent = 5; // Also arbitrary } repaint(); } - - + /** * Changes the width of the cells in the JList so you can see every digit * of each. */ void updateCellWidths() { - int oldCellWidth = cellWidth; cellWidth = getRhsBorderWidth(); - // Adjust the amount of space the line numbers take up, if necessary. - if (textArea!=null) { + if (textArea != null) { Font font = getFont(); - if (font!=null) { + if (font != null) { FontMetrics fontMetrics = getFontMetrics(font); int count = 0; - int lineCount = textArea.getLineCount() + - getLineNumberingStartIndex() - 1; + int lineCount = textArea.getLineCount() + getLineNumberingStartIndex() - 1; do { - lineCount = lineCount/10; + lineCount = lineCount / 10; count++; } while (lineCount >= 10); - cellWidth += fontMetrics.charWidth('9')*(count+1) + 3; + cellWidth += fontMetrics.charWidth('9') * (count + 1) + 3; } } - - if (cellWidth!=oldCellWidth) { // Always true + if (cellWidth != oldCellWidth) { // Always true revalidate(); } - } - - + /** * Listens for events in the text area we're interested in. */ private class Listener implements CaretListener, PropertyChangeListener { - + private boolean installed; - + @Override public void caretUpdate(CaretEvent e) { - int dot = textArea.getCaretPosition(); - // We separate the line wrap/no line wrap cases because word wrap // can make a single line from the model (document) be on multiple // lines on the screen (in the view); thus, we have to enhance the // logic for that case a bit - we check the actual y-coordinate of - // the caret when line wrap is enabled. For the no-line-wrap case, - // getting the line number of the caret suffices. This increases + // the caret when line wrap is enabled. For the no-line-wrap case, + // getting the line number of the caret suffices. This increases // efficiency in the no-line-wrap case. - if (!textArea.getLineWrap()) { - int line = textArea.getDocument().getDefaultRootElement(). - getElementIndex(dot); - if (currentLine!=line) { + int line = textArea.getDocument().getDefaultRootElement().getElementIndex(dot); + if (currentLine != line) { repaintLine(line); repaintLine(currentLine); currentLine = line; } - } - else { // lineWrap enabled; must check actual y position of caret + } else { // lineWrap enabled; must check actual y position of caret try { int y = textArea.yForLineContaining(dot); - if (y!=lastY) { + if (y != lastY) { lastY = y; - currentLine = textArea.getDocument(). - getDefaultRootElement().getElementIndex(dot); + currentLine = textArea.getDocument().getDefaultRootElement().getElementIndex(dot); repaint(); // *Could* be optimized... } } catch (BadLocationException ble) { ble.printStackTrace(); } } - } - + public void install(RTextArea textArea) { if (!installed) { - //System.out.println("Installing"); + // System.out.println("Installing"); textArea.addCaretListener(this); textArea.addPropertyChangeListener(this); caretUpdate(null); // Force current line highlight repaint installed = true; } } - + @Override public void propertyChange(PropertyChangeEvent e) { - String name = e.getPropertyName(); - // If they change the current line highlight in any way... - if (RTextArea.HIGHLIGHT_CURRENT_LINE_PROPERTY.equals(name) || - RTextArea.CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY.equals(name)) { + if (RTextArea.HIGHLIGHT_CURRENT_LINE_PROPERTY.equals(name) || RTextArea.CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY.equals(name)) { repaintLine(currentLine); } - } - + public void uninstall(RTextArea textArea) { if (installed) { - //System.out.println("Uninstalling"); + // System.out.println("Uninstalling"); textArea.removeCaretListener(this); textArea.removePropertyChangeListener(this); installed = false; } } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/Macro.java b/src/org/fife/ui/rtextarea/Macro.java index da7e0aa..d01ff17 100644 --- a/src/org/fife/ui/rtextarea/Macro.java +++ b/src/org/fife/ui/rtextarea/Macro.java @@ -1,9 +1,7 @@ /* * 09/16/2004 - * * Macro.java - A macro as recorded/played back by an RTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -31,28 +29,28 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; - /** - * A macro as recorded/played back by an {@link RTextArea}.

+ * A macro as recorded/played back by an {@link RTextArea}. + *

* * Macros are static; when a Macro is loaded, it can be run by any - * instance of RTextArea in the application. To activate and play + * instance of RTextArea in the application. To activate and play * back a macro, use the following methods: * *

    - *
  • {@link RTextArea#loadMacro(Macro)} - *
  • {@link RTextArea#playbackLastMacro()} + *
  • {@link RTextArea#loadMacro(Macro)} + *
  • {@link RTextArea#playbackLastMacro()} *
* * To record and save a new macro, you'd use the following methods: * *
    - *
  • {@link RTextArea#beginRecordingMacro()} (this discards the previous - * "current" macro, if any) - *
  • {@link RTextArea#endRecordingMacro()} (at this point, you could call - * playbackLastMacro() to play this macro immediately if - * desired) - *
  • {@link RTextArea#getCurrentMacro()}.{@link #saveToFile(File)} + *
  • {@link RTextArea#beginRecordingMacro()} (this discards the previous + * "current" macro, if any) + *
  • {@link RTextArea#endRecordingMacro()} (at this point, you could call + * playbackLastMacro() to play this macro immediately if + * desired) + *
  • {@link RTextArea#getCurrentMacro()}.{@link #saveToFile(File)} *
* * As Macros save themselves as XML files, a common technique is @@ -63,60 +61,53 @@ import org.xml.sax.InputSource; * @version 0.1 */ public class Macro { - + private String name; private ArrayList macroRecords; - - private static final String ROOT_ELEMENT = "macro"; - private static final String MACRO_NAME = "macroName"; - private static final String ACTION = "action"; - private static final String ID = "id"; - - private static final String UNTITLED_MACRO_NAME = ""; - - private static final String FILE_ENCODING = "UTF-8"; - - + private static final String ROOT_ELEMENT = "macro"; + private static final String MACRO_NAME = "macroName"; + private static final String ACTION = "action"; + private static final String ID = "id"; + private static final String UNTITLED_MACRO_NAME = ""; + private static final String FILE_ENCODING = "UTF-8"; + /** * Constructor. */ public Macro() { this(UNTITLED_MACRO_NAME); } - - + /** * Loads a macro from a file on disk. * - * @param file The file from which to load the macro. - * @throws IOException If the file does not exist or an I/O exception occurs - * while reading the file. + * @param file + * The file from which to load the macro. + * @throws IOException + * If the file does not exist or an I/O exception occurs + * while reading the file. * @see #saveToFile(String) * @see #saveToFile(File) */ public Macro(File file) throws IOException { - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; Document doc = null; try { db = dbf.newDocumentBuilder(); - //InputSource is = new InputSource(new FileReader(file)); - InputSource is = new InputSource(new UnicodeReader( - new FileInputStream(file), FILE_ENCODING)); + // InputSource is = new InputSource(new FileReader(file)); + InputSource is = new InputSource(new UnicodeReader(new FileInputStream(file), FILE_ENCODING)); is.setEncoding(FILE_ENCODING); - doc = db.parse(is);//db.parse(file); + doc = db.parse(is);// db.parse(file); } catch (Exception e) { e.printStackTrace(); String desc = e.getMessage(); - if (desc==null) { + if (desc == null) { desc = e.toString(); } throw new IOException("Error parsing XML: " + desc); } - macroRecords = new ArrayList(); - // Traverse the XML tree. boolean parsedOK = initializeFromXMLFile(doc.getDocumentElement()); if (!parsedOK) { @@ -125,56 +116,51 @@ public class Macro { macroRecords = null; throw new IOException("Error parsing XML!"); } - } - - + /** * Constructor. * - * @param name The name of the macro. + * @param name + * The name of the macro. */ public Macro(String name) { this(name, null); } - - + /** * Constructor. * - * @param name The name of the macro. - * @param records The initial records of the macro. + * @param name + * The name of the macro. + * @param records + * The initial records of the macro. */ public Macro(String name, List records) { - this.name = name; - - if (records!=null) { + if (records != null) { macroRecords = new ArrayList(records.size()); for (MacroRecord record : records) { macroRecords.add(record); } - } - else { + } else { macroRecords = new ArrayList(10); } - } - - + /** * Adds a macro record to this macro. * - * @param record The record to add. If null, nothing happens. + * @param record + * The record to add. If null, nothing happens. * @see #getMacroRecords */ public void addMacroRecord(MacroRecord record) { - if (record!=null) { + if (record != null) { macroRecords.add(record); } } - - + /** * Returns the macro records that make up this macro. * @@ -184,10 +170,9 @@ public class Macro { public List getMacroRecords() { return macroRecords; } - - + /** - * Returns the name of this macro. A macro's name is simply something to + * Returns the name of this macro. A macro's name is simply something to * identify it with in a UI; it has nothing to do with the name of the file * to save the macro to. * @@ -197,63 +182,51 @@ public class Macro { public String getName() { return name; } - - + /** - * Used in parsing an XML document containing a macro. This method + * Used in parsing an XML document containing a macro. This method * initializes this macro with the data contained in the passed-in node. * - * @param node The root node of the parsed XML document. + * @param node + * The root node of the parsed XML document. * @return true if the macro initialization went okay; * false if an error occurred. */ private boolean initializeFromXMLFile(Element root) { - /* * This method expects the XML document to be in the following format: - * * * - * test - * abcdefg - * [...] - * ... + * test + * abcdefg + * [...] + * ... * - * */ - NodeList childNodes = root.getChildNodes(); int count = childNodes.getLength(); - - for (int i=0; i0) { + if (childNodes2.getLength() > 0) { node = childNodes2.item(0); int type2 = node.getNodeType(); - if (type2!=Node.CDATA_SECTION_NODE && - type2!=Node.TEXT_NODE) { + if (type2 != Node.CDATA_SECTION_NODE && type2 != Node.TEXT_NODE) { return false; } name = node.getNodeValue().trim(); } - //System.err.println("Macro name==" + name); - } - - else if (nodeName.equals(ACTION)) { + // System.err.println("Macro name==" + name); + } else if (nodeName.equals(ACTION)) { NamedNodeMap attributes = node.getAttributes(); - if (attributes==null || attributes.getLength()!=1) { + if (attributes == null || attributes.getLength() != 1) { return false; } Node node2 = attributes.item(0); @@ -264,113 +237,98 @@ public class Macro { macroRecord.id = node2.getNodeValue(); NodeList childNodes2 = node.getChildNodes(); int length = childNodes2.getLength(); - if (length==0) { // Could be empty "" command. - //System.err.println("... empty actionCommand"); + if (length == 0) { // Could be empty "" command. + // System.err.println("... empty actionCommand"); macroRecord.actionCommand = ""; - //System.err.println("... adding action: " + macroRecord); + // System.err.println("... adding action: " + + // macroRecord); macroRecords.add(macroRecord); break; - } - else { + } else { node = childNodes2.item(0); int type2 = node.getNodeType(); - if (type2!=Node.CDATA_SECTION_NODE && - type2!=Node.TEXT_NODE) { + if (type2 != Node.CDATA_SECTION_NODE && type2 != Node.TEXT_NODE) { return false; } macroRecord.actionCommand = node.getNodeValue(); macroRecords.add(macroRecord); } - } break; - default: break; // Skip whitespace nodes, etc. - } - } - // Everything went okay. return true; - } - - + /** - * Saves this macro to an XML file. This file can later be read in by the + * Saves this macro to an XML file. This file can later be read in by the * constructor taking a File parameter; this is the mechanism * for saving macros. * - * @param file The file in which to save the macro. - * @throws IOException If an error occurs while generating the XML for - * the output file. + * @param file + * The file in which to save the macro. + * @throws IOException + * If an error occurs while generating the XML for + * the output file. * @see #saveToFile(String) */ public void saveToFile(File file) throws IOException { saveToFile(file.getAbsolutePath()); } - - + /** - * Saves this macro to a file. This file can later be read in by the + * Saves this macro to a file. This file can later be read in by the * constructor taking a File parameter; this is the mechanism * for saving macros. * - * @param fileName The name of the file in which to save the macro. - * @throws IOException If an error occurs while generating the XML for - * the output file. + * @param fileName + * The name of the file in which to save the macro. + * @throws IOException + * If an error occurs while generating the XML for + * the output file. * @see #saveToFile(File) */ public void saveToFile(String fileName) throws IOException { - /* * This method writes the XML document in the following format: - * * * - * test - * abcdefg - * [...] - * ... + * test + * abcdefg + * [...] + * ... * - * */ - try { - - DocumentBuilder db = DocumentBuilderFactory.newInstance(). - newDocumentBuilder(); + DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); DOMImplementation impl = db.getDOMImplementation(); - Document doc = impl.createDocument(null, ROOT_ELEMENT, null); Element rootElement = doc.getDocumentElement(); - // Write the name of the macro. Element nameElement = doc.createElement(MACRO_NAME); nameElement.appendChild(doc.createCDATASection(name)); rootElement.appendChild(nameElement); - // Write all actions (the meat) in the macro. for (MacroRecord record : macroRecords) { Element actionElement = doc.createElement(ACTION); actionElement.setAttribute(ID, record.id); - if (record.actionCommand!=null && - record.actionCommand.length()>0) { - // Remove illegal characters. I'm no XML expert, but - // I'm not sure what I'm doing wrong. If we don't + if (record.actionCommand != null && record.actionCommand.length() > 0) { + // Remove illegal characters. I'm no XML expert, but + // I'm not sure what I'm doing wrong. If we don't // strip out chars with Unicode value < 32, our // generator will insert '&#', which will cause // our parser to barf when reading the macro back in - // (it says "Invalid XML character"). But why doesn't + // (it says "Invalid XML character"). But why doesn't // our generator tell us the character is invalid too? String command = record.actionCommand; - for (int j=0; jRTextArea. * @@ -20,46 +17,42 @@ import javax.swing.text.PlainDocument; * @version 1.0 */ public class RDocument extends PlainDocument { - - + /** * Constructor. */ public RDocument() { super(new RGapContent()); } - - + /** * Returns the character in the document at the specified offset. * - * @param offset The offset of the character. + * @param offset + * The offset of the character. * @return The character. - * @throws BadLocationException If the offset is invalid. + * @throws BadLocationException + * If the offset is invalid. */ public char charAt(int offset) throws BadLocationException { - return ((RGapContent)getContent()).charAt(offset); + return ((RGapContent) getContent()).charAt(offset); } - - + /** * Document content that provides fast access to individual characters. */ private static class RGapContent extends GapContent { - + public char charAt(int offset) throws BadLocationException { - if (offset<0 || offset>=length()) { + if (offset < 0 || offset >= length()) { throw new BadLocationException("Invalid offset", offset); } int g0 = getGapStart(); char[] array = (char[]) getArray(); - if (offsetRDocument. This is of + * Allows iterating over a portion of an RDocument. This is of * course not thread-safe, so should only be used on the EDT or with external * synchronization. * @@ -21,55 +18,55 @@ import javax.swing.text.BadLocationException; * @version 1.0 */ class RDocumentCharSequence implements CharSequence { - + private RDocument doc; private int start; private int end; - - + /** * Creates a CharSequence representing the text in a document * from the specified offset to the end of that document. * - * @param doc The document. - * @param start The starting offset in the document, inclusive. + * @param doc + * The document. + * @param start + * The starting offset in the document, inclusive. */ RDocumentCharSequence(RDocument doc, int start) { this(doc, start, doc.getLength()); } - - + /** * Constructor. * - * @param doc The document. - * @param start The starting offset in the document, inclusive. - * @param end the ending offset in the document, exclusive. + * @param doc + * The document. + * @param start + * The starting offset in the document, inclusive. + * @param end + * the ending offset in the document, exclusive. */ RDocumentCharSequence(RDocument doc, int start, int end) { this.doc = doc; this.start = start; this.end = end; } - - + /** * {@inheritDoc} */ @Override public char charAt(int index) { - if (index<0 || index>=length()) { - throw new IndexOutOfBoundsException("Index " + index + - " is not in range [0-" + length() + ")"); + if (index < 0 || index >= length()) { + throw new IndexOutOfBoundsException("Index " + index + " is not in range [0-" + length() + ")"); } try { - return doc.charAt(start+index); + return doc.charAt(start + index); } catch (BadLocationException ble) { throw new IndexOutOfBoundsException(ble.toString()); } } - - + /** * {@inheritDoc} */ @@ -77,35 +74,26 @@ class RDocumentCharSequence implements CharSequence { public int length() { return end - start; } - - + /** * {@inheritDoc} */ @Override public CharSequence subSequence(int start, int end) { - if (start<0) { - throw new IndexOutOfBoundsException("start must be >= 0 (" + - start + ")"); - } - else if (end<0) { - throw new IndexOutOfBoundsException("end must be >= 0 (" + - end + ")"); - } - else if (end>length()) { - throw new IndexOutOfBoundsException("end must be <= " + - length() + " (" + end + ")"); - } - else if (start>end) { - throw new IndexOutOfBoundsException("start (" + start + - ") cannot be > end (" + end + ")"); + if (start < 0) { + throw new IndexOutOfBoundsException("start must be >= 0 (" + start + ")"); + } else if (end < 0) { + throw new IndexOutOfBoundsException("end must be >= 0 (" + end + ")"); + } else if (end > length()) { + throw new IndexOutOfBoundsException("end must be <= " + length() + " (" + end + ")"); + } else if (start > end) { + throw new IndexOutOfBoundsException("start (" + start + ") cannot be > end (" + end + ")"); } int newStart = this.start + start; int newEnd = this.start + end; return new RDocumentCharSequence(doc, newStart, newEnd); } - - + /** * {@inheritDoc} */ @@ -118,5 +106,4 @@ class RDocumentCharSequence implements CharSequence { return ""; } } - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RTADefaultInputMap.java b/src/org/fife/ui/rtextarea/RTADefaultInputMap.java index 0a009dd..88fffc2 100644 --- a/src/org/fife/ui/rtextarea/RTADefaultInputMap.java +++ b/src/org/fife/ui/rtextarea/RTADefaultInputMap.java @@ -1,9 +1,7 @@ /* * 08/19/2004 - * * RTADefaultInputMap.java - The default input map for RTextAreas. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -16,140 +14,127 @@ import javax.swing.InputMap; import javax.swing.KeyStroke; import javax.swing.text.DefaultEditorKit; - /** - * The default input map for an RTextArea. For the most part it is + * The default input map for an RTextArea. For the most part it is * exactly that the one for a JTextArea, but it adds a few things. * Currently, the new key bindings include: *
    - *
  • HOME key toggles between first character on line and first non- - * whitespace character on line. - *
  • INSERT key toggles between insert and overwrite modes. - *
  • Ctrl+DELETE key deletes all text between the caret and the end of the - * current line. - *
  • Ctrl+Shift+Up and Ctrl+Shift+Down move the current line up and - * down, respectively. - *
  • Ctrl+J joins lines. - *
  • Ctrl+Z is undo and Ctrl+Y is redo. - *
  • Ctrl+Up and Ctrl+Down shift the visible area of the text area up and - * down one line, respectively. - *
  • F2 and Shift+F2 moves to the next and previous bookmarks, - * respectively. - *
  • Ctrl+F2 toggles whether a bookmark is on the current line. - *
  • etc. + *
  • HOME key toggles between first character on line and first non- + * whitespace character on line. + *
  • INSERT key toggles between insert and overwrite modes. + *
  • Ctrl+DELETE key deletes all text between the caret and the end of the + * current line. + *
  • Ctrl+Shift+Up and Ctrl+Shift+Down move the current line up and + * down, respectively. + *
  • Ctrl+J joins lines. + *
  • Ctrl+Z is undo and Ctrl+Y is redo. + *
  • Ctrl+Up and Ctrl+Down shift the visible area of the text area up and + * down one line, respectively. + *
  • F2 and Shift+F2 moves to the next and previous bookmarks, + * respectively. + *
  • Ctrl+F2 toggles whether a bookmark is on the current line. + *
  • etc. *
*/ @SuppressWarnings({ "checkstyle:linelength" }) public class RTADefaultInputMap extends InputMap { - - + /** * Constructs the default input map for an RTextArea. */ public RTADefaultInputMap() { - super(); - int defaultModifier = getDefaultModifier(); - //int ctrl = InputEvent.CTRL_MASK; + // int ctrl = InputEvent.CTRL_MASK; int alt = InputEvent.ALT_MASK; int shift = InputEvent.SHIFT_MASK; boolean isOSX = RTextArea.isOSX(); int moveByWordMod = isOSX ? alt : defaultModifier; - - put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, 0), isOSX ? DefaultEditorKit.beginAction : DefaultEditorKit.beginLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, shift), isOSX ? DefaultEditorKit.selectionBeginAction : DefaultEditorKit.selectionBeginLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, defaultModifier), DefaultEditorKit.beginAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, defaultModifier|shift), DefaultEditorKit.selectionBeginAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_END, 0), isOSX ? DefaultEditorKit.endAction : DefaultEditorKit.endLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_END, shift), isOSX ? DefaultEditorKit.selectionEndAction : DefaultEditorKit.selectionEndLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_END, defaultModifier), DefaultEditorKit.endAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_END, defaultModifier|shift), DefaultEditorKit.selectionEndAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), DefaultEditorKit.backwardAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, shift), DefaultEditorKit.selectionBackwardAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, moveByWordMod), DefaultEditorKit.previousWordAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, moveByWordMod|shift), DefaultEditorKit.selectionPreviousWordAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), DefaultEditorKit.downAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, shift), DefaultEditorKit.selectionDownAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, defaultModifier), RTextAreaEditorKit.rtaScrollDownAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, alt), RTextAreaEditorKit.rtaLineDownAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0), DefaultEditorKit.forwardAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, shift), DefaultEditorKit.selectionForwardAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, moveByWordMod), DefaultEditorKit.nextWordAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, moveByWordMod|shift), DefaultEditorKit.selectionNextWordAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), DefaultEditorKit.upAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, shift), DefaultEditorKit.selectionUpAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, defaultModifier), RTextAreaEditorKit.rtaScrollUpAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, alt), RTextAreaEditorKit.rtaLineUpAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,0), DefaultEditorKit.pageUpAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,shift), RTextAreaEditorKit.rtaSelectionPageUpAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,defaultModifier|shift), RTextAreaEditorKit.rtaSelectionPageLeftAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,0), DefaultEditorKit.pageDownAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,shift), RTextAreaEditorKit.rtaSelectionPageDownAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,defaultModifier|shift), RTextAreaEditorKit.rtaSelectionPageRightAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_CUT, 0), DefaultEditorKit.cutAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_COPY, 0), DefaultEditorKit.copyAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_PASTE, 0), DefaultEditorKit.pasteAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_X, defaultModifier), DefaultEditorKit.cutAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_C, defaultModifier), DefaultEditorKit.copyAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_V, defaultModifier), DefaultEditorKit.pasteAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_V, defaultModifier|shift), RTextAreaEditorKit.clipboardHistoryAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), DefaultEditorKit.deleteNextCharAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, shift), DefaultEditorKit.cutAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, defaultModifier), RTextAreaEditorKit.rtaDeleteRestOfLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, 0), RTextAreaEditorKit.rtaToggleTextModeAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, shift), DefaultEditorKit.pasteAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, defaultModifier), DefaultEditorKit.copyAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_A, defaultModifier), DefaultEditorKit.selectAllAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_D, defaultModifier), RTextAreaEditorKit.rtaDeleteLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_J, defaultModifier), RTextAreaEditorKit.rtaJoinLinesAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, shift), DefaultEditorKit.deletePrevCharAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, defaultModifier), RTextAreaEditorKit.rtaDeletePrevWordAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), DefaultEditorKit.insertTabAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), DefaultEditorKit.insertBreakAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, shift), DefaultEditorKit.insertBreakAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, defaultModifier), RTextAreaEditorKit.rtaDumbCompleteWordAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_Z, defaultModifier), RTextAreaEditorKit.rtaUndoAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_Y, defaultModifier), RTextAreaEditorKit.rtaRedoAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), RTextAreaEditorKit.rtaNextBookmarkAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, shift), RTextAreaEditorKit.rtaPrevBookmarkAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, defaultModifier), RTextAreaEditorKit.rtaToggleBookmarkAction); - - put(KeyStroke.getKeyStroke(KeyEvent.VK_K, defaultModifier|shift), RTextAreaEditorKit.rtaPrevOccurrenceAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_K, defaultModifier), RTextAreaEditorKit.rtaNextOccurrenceAction); - + put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, 0), isOSX ? DefaultEditorKit.beginAction : DefaultEditorKit.beginLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, shift), + isOSX ? DefaultEditorKit.selectionBeginAction : DefaultEditorKit.selectionBeginLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, defaultModifier), DefaultEditorKit.beginAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, defaultModifier | shift), DefaultEditorKit.selectionBeginAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_END, 0), isOSX ? DefaultEditorKit.endAction : DefaultEditorKit.endLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_END, shift), + isOSX ? DefaultEditorKit.selectionEndAction : DefaultEditorKit.selectionEndLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_END, defaultModifier), DefaultEditorKit.endAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_END, defaultModifier | shift), DefaultEditorKit.selectionEndAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), DefaultEditorKit.backwardAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, shift), DefaultEditorKit.selectionBackwardAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, moveByWordMod), DefaultEditorKit.previousWordAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, moveByWordMod | shift), DefaultEditorKit.selectionPreviousWordAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), DefaultEditorKit.downAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, shift), DefaultEditorKit.selectionDownAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, defaultModifier), RTextAreaEditorKit.rtaScrollDownAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, alt), RTextAreaEditorKit.rtaLineDownAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0), DefaultEditorKit.forwardAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, shift), DefaultEditorKit.selectionForwardAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, moveByWordMod), DefaultEditorKit.nextWordAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, moveByWordMod | shift), DefaultEditorKit.selectionNextWordAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), DefaultEditorKit.upAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, shift), DefaultEditorKit.selectionUpAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, defaultModifier), RTextAreaEditorKit.rtaScrollUpAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, alt), RTextAreaEditorKit.rtaLineUpAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, 0), DefaultEditorKit.pageUpAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, shift), RTextAreaEditorKit.rtaSelectionPageUpAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, defaultModifier | shift), RTextAreaEditorKit.rtaSelectionPageLeftAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0), DefaultEditorKit.pageDownAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, shift), RTextAreaEditorKit.rtaSelectionPageDownAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, defaultModifier | shift), RTextAreaEditorKit.rtaSelectionPageRightAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_CUT, 0), DefaultEditorKit.cutAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_COPY, 0), DefaultEditorKit.copyAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_PASTE, 0), DefaultEditorKit.pasteAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_X, defaultModifier), DefaultEditorKit.cutAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_C, defaultModifier), DefaultEditorKit.copyAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_V, defaultModifier), DefaultEditorKit.pasteAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_V, defaultModifier | shift), RTextAreaEditorKit.clipboardHistoryAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), DefaultEditorKit.deleteNextCharAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, shift), DefaultEditorKit.cutAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, defaultModifier), RTextAreaEditorKit.rtaDeleteRestOfLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, 0), RTextAreaEditorKit.rtaToggleTextModeAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, shift), DefaultEditorKit.pasteAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_INSERT, defaultModifier), DefaultEditorKit.copyAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_A, defaultModifier), DefaultEditorKit.selectAllAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_D, defaultModifier), RTextAreaEditorKit.rtaDeleteLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_J, defaultModifier), RTextAreaEditorKit.rtaJoinLinesAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, shift), DefaultEditorKit.deletePrevCharAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, defaultModifier), RTextAreaEditorKit.rtaDeletePrevWordAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), DefaultEditorKit.insertTabAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), DefaultEditorKit.insertBreakAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, shift), DefaultEditorKit.insertBreakAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, defaultModifier), RTextAreaEditorKit.rtaDumbCompleteWordAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_Z, defaultModifier), RTextAreaEditorKit.rtaUndoAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_Y, defaultModifier), RTextAreaEditorKit.rtaRedoAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), RTextAreaEditorKit.rtaNextBookmarkAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, shift), RTextAreaEditorKit.rtaPrevBookmarkAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, defaultModifier), RTextAreaEditorKit.rtaToggleBookmarkAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_K, defaultModifier | shift), RTextAreaEditorKit.rtaPrevOccurrenceAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_K, defaultModifier), RTextAreaEditorKit.rtaNextOccurrenceAction); if (isOSX) { - put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, defaultModifier), DefaultEditorKit.beginLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, defaultModifier), DefaultEditorKit.endLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, defaultModifier|shift), DefaultEditorKit.selectionBeginLineAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, defaultModifier|shift), DefaultEditorKit.selectionEndLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, defaultModifier), DefaultEditorKit.beginLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, defaultModifier), DefaultEditorKit.endLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, defaultModifier | shift), DefaultEditorKit.selectionBeginLineAction); + put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, defaultModifier | shift), DefaultEditorKit.selectionEndLineAction); } - - /* NOTE: Currently, macros aren't part of the default input map for */ - /* RTextArea, as they display their own popup windows, etc. which */ - /* may or may not clash with the application in which the RTextArea */ - /* resides. You can add the macro actions yourself into an */ - /* application if you want. They may become standard in the future */ - /* if I can find a way to implement them that I like. */ + /* NOTE: Currently, macros aren't part of the default input map for */ + /* RTextArea, as they display their own popup windows, etc. which */ + /* may or may not clash with the application in which the RTextArea */ + /* resides. You can add the macro actions yourself into an */ + /* application if you want. They may become standard in the future */ + /* if I can find a way to implement them that I like. */ /* - put(KeyStroke.getKeyStroke(KeyEvent.VK_R, defaultModifier|shift), RTextAreaEditorKit.rtaBeginRecordingMacroAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_S, defaultModifier|shift), RTextAreaEditorKit.rtaEndRecordingMacroAction); - put(KeyStroke.getKeyStroke(KeyEvent.VK_M, defaultModifier|shift), RTextAreaEditorKit.rtaPlaybackLastMacroAction); - */ - + * put(KeyStroke.getKeyStroke(KeyEvent.VK_R, defaultModifier|shift), + * RTextAreaEditorKit.rtaBeginRecordingMacroAction); + * put(KeyStroke.getKeyStroke(KeyEvent.VK_S, defaultModifier|shift), + * RTextAreaEditorKit.rtaEndRecordingMacroAction); + * put(KeyStroke.getKeyStroke(KeyEvent.VK_M, defaultModifier|shift), + * RTextAreaEditorKit.rtaPlaybackLastMacroAction); + */ } - - + /** - * Returns the default modifier key for a system. For example, on Windows + * Returns the default modifier key for a system. For example, on Windows * this would be the CTRL key (InputEvent.CTRL_MASK). * * @return The default modifier key. @@ -157,7 +142,4 @@ public class RTADefaultInputMap extends InputMap { protected static final int getDefaultModifier() { return Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); } - - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RTATextTransferHandler.java b/src/org/fife/ui/rtextarea/RTATextTransferHandler.java index f5a6674..1849c30 100644 --- a/src/org/fife/ui/rtextarea/RTATextTransferHandler.java +++ b/src/org/fife/ui/rtextarea/RTATextTransferHandler.java @@ -1,10 +1,8 @@ /* * 07/29/2004 - * * RTATextTransferHandler.java - Handles the transfer of data to/from an * RTextArea via drag-and-drop. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -26,13 +24,13 @@ import javax.swing.text.Document; import javax.swing.text.JTextComponent; import javax.swing.text.Position; - /** * Handles the transfer of data to/from an RTextArea via - * drag-and-drop. This class is pretty much ripped off from a subclass of - * BasicTextUI. In the future, it will include the ability to + * drag-and-drop. This class is pretty much ripped off from a subclass of + * BasicTextUI. In the future, it will include the ability to * drag-and-drop files into RTextAreas (i.e., the text will be - * inserted into the text area).

+ * inserted into the text area). + *

* * The main reason this class is kept around is so we can subclass it. * @@ -41,101 +39,80 @@ import javax.swing.text.Position; */ @SuppressWarnings("deprecation") public class RTATextTransferHandler extends TransferHandler { - + private JTextComponent exportComp; private boolean shouldRemove; private int p0; private int p1; private boolean withinSameComponent; - - + /** * Try to find a flavor that can be used to import a Transferable to a * specified text component. * The set of usable flavors are tried in the following order: *

    - *
  1. First, an attempt is made to find a flavor matching the content - * tyep of the EditorKit for the component. - *
  2. Second, an attempt to find a text/plain flavor is made. - *
  3. Third, an attempt to find a flavor representing a String - * reference in the same VM is made. - *
  4. Lastly, DataFlavor.stringFlavor is searched for. + *
  5. First, an attempt is made to find a flavor matching the content + * tyep of the EditorKit for the component. + *
  6. Second, an attempt to find a text/plain flavor is made. + *
  7. Third, an attempt to find a flavor representing a String + * reference in the same VM is made. + *
  8. Lastly, DataFlavor.stringFlavor is searched for. *
* - * @param flavors The flavors to check if c will accept them. - * @param c The text component to see whether it will accept any of the - * specified data flavors as input. + * @param flavors + * The flavors to check if c will accept them. + * @param c + * The text component to see whether it will accept any of the + * specified data flavors as input. */ - protected DataFlavor getImportFlavor(DataFlavor[] flavors, - JTextComponent c) { - + protected DataFlavor getImportFlavor(DataFlavor[] flavors, JTextComponent c) { DataFlavor refFlavor = null; DataFlavor stringFlavor = null; - for (int i = 0; i < flavors.length; i++) { - String mime = flavors[i].getMimeType(); if (mime.startsWith("text/plain")) { return flavors[i]; - } - else if (refFlavor == null && - mime.startsWith("application/x-java-jvm-local-objectref") && - flavors[i].getRepresentationClass() == String.class) { + } else if (refFlavor == null && mime.startsWith("application/x-java-jvm-local-objectref") + && flavors[i].getRepresentationClass() == String.class) { refFlavor = flavors[i]; - } - else if (stringFlavor==null && - flavors[i].equals(DataFlavor.stringFlavor)) { + } else if (stringFlavor == null && flavors[i].equals(DataFlavor.stringFlavor)) { stringFlavor = flavors[i]; } - } - if (refFlavor != null) { return refFlavor; - } - else if (stringFlavor != null) { + } else if (stringFlavor != null) { return stringFlavor; } - return null; - } - - + /** * Import the given stream data into the text component. */ - protected void handleReaderImport(Reader in, JTextComponent c) - throws IOException { - + protected void handleReaderImport(Reader in, JTextComponent c) throws IOException { char[] buff = new char[1024]; int nch; boolean lastWasCR = false; int last; StringBuilder sbuff = null; - // Read in a block at a time, mapping \r\n to \n, as well as single // \r to \n. while ((nch = in.read(buff, 0, buff.length)) != -1) { - if (sbuff == null) { sbuff = new StringBuilder(nch); - } + } last = 0; - for (int counter = 0; counter < nch; counter++) { - switch (buff[counter]) { case '\r': if (lastWasCR) { if (counter == 0) { sbuff.append('\n'); - } - else { + } else { buff[counter - 1] = '\n'; } - } - else { + } else { lastWasCR = true; } break; @@ -154,138 +131,128 @@ public class RTATextTransferHandler extends TransferHandler { if (lastWasCR) { if (counter == 0) { sbuff.append('\n'); - } - else { + } else { buff[counter - 1] = '\n'; } lastWasCR = false; } break; - } // End fo switch (buff[counter]). - } // End of for (int counter = 0; counter < nch; counter++). - if (last < nch) { if (lastWasCR) { if (last < (nch - 1)) { sbuff.append(buff, last, nch - last - 1); } - } - else { + } else { sbuff.append(buff, last, nch - last); } } - } // End of while ((nch = in.read(buff, 0, buff.length)) != -1). - if (withinSameComponent) { - ((RTextArea)c).beginAtomicEdit(); + ((RTextArea) c).beginAtomicEdit(); } - if (lastWasCR) { sbuff.append('\n'); } c.replaceSelection(sbuff != null ? sbuff.toString() : ""); - } - - + /** - * This is the type of transfer actions supported by the source. Some + * This is the type of transfer actions supported by the source. Some * models are not mutable, so a transfer operation of COPY only should * be advertised in that case. * - * @param c The component holding the data to be transfered. This - * argument is provided to enable sharing of TransferHandlers by - * multiple components. + * @param c + * The component holding the data to be transfered. This + * argument is provided to enable sharing of TransferHandlers by + * multiple components. * @return If the text component is editable, COPY_OR_MOVE is returned, * otherwise just COPY is allowed. */ @Override public int getSourceActions(JComponent c) { - if (((JTextComponent)c).isEditable()) { + if (((JTextComponent) c).isEditable()) { return COPY_OR_MOVE; - } - else { + } else { return COPY; } } - - + /** * Create a Transferable to use as the source for a data transfer. * - * @param comp The component holding the data to be transfered. This - * argument is provided to enable sharing of TransferHandlers by - * multiple components. - * @return The representation of the data to be transfered. + * @param comp + * The component holding the data to be transfered. This + * argument is provided to enable sharing of TransferHandlers by + * multiple components. + * @return The representation of the data to be transfered. * */ @Override protected Transferable createTransferable(JComponent comp) { - exportComp = (JTextComponent)comp; + exportComp = (JTextComponent) comp; shouldRemove = true; p0 = exportComp.getSelectionStart(); p1 = exportComp.getSelectionEnd(); return (p0 != p1) ? (new TextTransferable(exportComp, p0, p1)) : null; } - - + /** - * This method is called after data has been exported. This method should + * This method is called after data has been exported. This method should * remove the data that was transfered if the action was MOVE. * - * @param source The component that was the source of the data. - * @param data The data that was transferred or possibly null - * if the action is NONE. - * @param action The actual action that was performed. + * @param source + * The component that was the source of the data. + * @param data + * The data that was transferred or possibly null + * if the action is NONE. + * @param action + * The actual action that was performed. */ @Override protected void exportDone(JComponent source, Transferable data, int action) { // only remove the text if shouldRemove has not been set to // false by importData and only if the action is a move if (shouldRemove && action == MOVE) { - TextTransferable t = (TextTransferable)data; + TextTransferable t = (TextTransferable) data; t.removeText(); if (withinSameComponent) { - ((RTextArea)source).endAtomicEdit(); + ((RTextArea) source).endAtomicEdit(); withinSameComponent = false; } } exportComp = null; if (data instanceof TextTransferable) { - ClipboardHistory.get().add(((TextTransferable)data).getPlainData()); + ClipboardHistory.get().add(((TextTransferable) data).getPlainData()); } } - - + /** * This method causes a transfer to a component from a clipboard or a - * DND drop operation. The Transferable represents the data to be + * DND drop operation. The Transferable represents the data to be * imported into the component. * - * @param comp The component to receive the transfer. This - * argument is provided to enable sharing of TransferHandlers by - * multiple components. - * @param t The data to import + * @param comp + * The component to receive the transfer. This + * argument is provided to enable sharing of TransferHandlers by + * multiple components. + * @param t + * The data to import * @return true iff the data was inserted into the component. */ @Override public boolean importData(JComponent comp, Transferable t) { - - JTextComponent c = (JTextComponent)comp; - withinSameComponent = c==exportComp; - + JTextComponent c = (JTextComponent) comp; + withinSameComponent = c == exportComp; // if we are importing to the same component that we exported from // then don't actually do anything if the drop location is inside // the drag location and set shouldRemove to false so that exportDone // knows not to remove any data - if (withinSameComponent && c.getCaretPosition()>=p0 && c.getCaretPosition()<=p1) { + if (withinSameComponent && c.getCaretPosition() >= p0 && c.getCaretPosition() <= p1) { shouldRemove = false; return true; } - boolean imported = false; DataFlavor importFlavor = getImportFlavor(t.getTransferDataFlavors(), c); if (importFlavor != null) { @@ -303,45 +270,42 @@ public class RTATextTransferHandler extends TransferHandler { ioe.printStackTrace(); } } - return imported; - } - + /** * This method indicates if a component would accept an import of the * given set of data flavors prior to actually attempting to import it. * - * @param comp The component to receive the transfer. This argument is - * provided to enable sharing of TransferHandlers by multiple - * components. - * @param flavors The data formats available. + * @param comp + * The component to receive the transfer. This argument is + * provided to enable sharing of TransferHandlers by multiple + * components. + * @param flavors + * The data formats available. * @return true iff the data can be inserted. */ @Override public boolean canImport(JComponent comp, DataFlavor[] flavors) { - JTextComponent c = (JTextComponent)comp; + JTextComponent c = (JTextComponent) comp; if (!(c.isEditable() && c.isEnabled())) { return false; } return (getImportFlavor(flavors, c) != null); } - - + /** * A possible implementation of the Transferable interface for RTextAreas. */ static class TextTransferable implements Transferable { - + private Position p0; private Position p1; private JTextComponent c; - protected String plainData; - private static DataFlavor[] stringFlavors; private static DataFlavor[] plainFlavors; - + TextTransferable(JTextComponent c, int start, int end) { this.c = c; Document doc = c.getDocument(); @@ -349,27 +313,31 @@ public class RTATextTransferHandler extends TransferHandler { p0 = doc.createPosition(start); p1 = doc.createPosition(end); plainData = c.getSelectedText(); - } catch (BadLocationException ble) { - } + } catch (BadLocationException ble) {} } - + /** * Fetch the data in a text/plain format. */ protected String getPlainData() { return plainData; } - + /** - * Returns an object which represents the data to be transferred. The class - * of the object returned is defined by the representation class of the flavor. + * Returns an object which represents the data to be transferred. The + * class + * of the object returned is defined by the representation class of the + * flavor. * - * @param flavor the requested flavor for the data + * @param flavor + * the requested flavor for the data * @see DataFlavor#getRepresentationClass - * @exception IOException if the data is no longer available - * in the requested flavor. - * @exception UnsupportedFlavorException if the requested data flavor is - * not supported. + * @exception IOException + * if the data is no longer available + * in the requested flavor. + * @exception UnsupportedFlavorException + * if the requested data flavor is + * not supported. */ @Override public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { @@ -391,22 +359,24 @@ public class RTATextTransferHandler extends TransferHandler { } throw new UnsupportedFlavorException(flavor); } - + /** - * Returns an array of DataFlavor objects indicating the flavors the data - * can be provided in. The array should be ordered according to preference - * for providing the data (from most richly descriptive to least descriptive). + * Returns an array of DataFlavor objects indicating the flavors the + * data + * can be provided in. The array should be ordered according to + * preference + * for providing the data (from most richly descriptive to least + * descriptive). * - * @return an array of data flavors in which this data can be transferred + * @return an array of data flavors in which this data can be + * transferred */ @Override public DataFlavor[] getTransferDataFlavors() { - - int plainCount = (isPlainSupported()) ? plainFlavors.length: 0; + int plainCount = (isPlainSupported()) ? plainFlavors.length : 0; int stringCount = (isPlainSupported()) ? stringFlavors.length : 0; int totalCount = plainCount + stringCount; DataFlavor[] flavors = new DataFlavor[totalCount]; - // fill in the array int pos = 0; if (plainCount > 0) { @@ -415,18 +385,19 @@ public class RTATextTransferHandler extends TransferHandler { } if (stringCount > 0) { System.arraycopy(stringFlavors, 0, flavors, pos, stringCount); - //pos += stringCount; + // pos += stringCount; } - return flavors; - } - + /** * Returns whether or not the specified data flavor is supported for * this object. - * @param flavor the requested flavor for the data - * @return boolean indicating whether or not the data flavor is supported + * + * @param flavor + * the requested flavor for the data + * @return boolean indicating whether or not the data flavor is + * supported */ @Override public boolean isDataFlavorSupported(DataFlavor flavor) { @@ -438,12 +409,16 @@ public class RTATextTransferHandler extends TransferHandler { } return false; } - + /** - * Returns whether or not the specified data flavor is an plain flavor that + * Returns whether or not the specified data flavor is an plain flavor + * that * is supported. - * @param flavor the requested flavor for the data - * @return boolean indicating whether or not the data flavor is supported + * + * @param flavor + * the requested flavor for the data + * @return boolean indicating whether or not the data flavor is + * supported */ protected boolean isPlainFlavor(DataFlavor flavor) { DataFlavor[] flavors = plainFlavors; @@ -454,20 +429,24 @@ public class RTATextTransferHandler extends TransferHandler { } return false; } - + /** - * Should the plain text flavors be offered? If so, the method + * Should the plain text flavors be offered? If so, the method * getPlainData should be implemented to provide something reasonable. */ protected boolean isPlainSupported() { return plainData != null; } - + /** - * Returns whether or not the specified data flavor is a String flavor that + * Returns whether or not the specified data flavor is a String flavor + * that * is supported. - * @param flavor the requested flavor for the data - * @return boolean indicating whether or not the data flavor is supported + * + * @param flavor + * the requested flavor for the data + * @return boolean indicating whether or not the data flavor is + * supported */ protected boolean isStringFlavor(DataFlavor flavor) { DataFlavor[] flavors = stringFlavors; @@ -478,36 +457,29 @@ public class RTATextTransferHandler extends TransferHandler { } return false; } - + void removeText() { if ((p0 != null) && (p1 != null) && (p0.getOffset() != p1.getOffset())) { try { Document doc = c.getDocument(); doc.remove(p0.getOffset(), p1.getOffset() - p0.getOffset()); - } catch (BadLocationException e) { - } + } catch (BadLocationException e) {} } } - + // Initialization of supported flavors. static { try { - plainFlavors = new DataFlavor[3]; plainFlavors[0] = new DataFlavor("text/plain;class=java.lang.String"); plainFlavors[1] = new DataFlavor("text/plain;class=java.io.Reader"); plainFlavors[2] = new DataFlavor("text/plain;charset=unicode;class=java.io.InputStream"); - stringFlavors = new DataFlavor[2]; - stringFlavors[0] = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType+";class=java.lang.String"); + stringFlavors[0] = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + ";class=java.lang.String"); stringFlavors[1] = DataFlavor.stringFlavor; - } catch (ClassNotFoundException cle) { System.err.println("Error initializing org.fife.ui.RTATextTransferHandler"); } } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RTextArea.java b/src/org/fife/ui/rtextarea/RTextArea.java index 15a6e14..a1cfc0f 100644 --- a/src/org/fife/ui/rtextarea/RTextArea.java +++ b/src/org/fife/ui/rtextarea/RTextArea.java @@ -1,9 +1,7 @@ /* * 11/14/2003 - * * RTextArea.java - An extension of JTextArea that adds many features. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -76,36 +74,31 @@ import org.fife.ui.rtextarea.Macro.MacroRecord; * @version 1.0 */ public class RTextArea extends RTextAreaBase implements Printable { - + /** * Constant representing insert mode. * * @see #setCaretStyle(int, CaretStyle) */ public static final int INSERT_MODE = 0; - /** * Constant representing overwrite mode. * * @see #setCaretStyle(int, CaretStyle) */ public static final int OVERWRITE_MODE = 1; - /** * The property fired when the "mark all" color changes. */ public static final String MARK_ALL_COLOR_PROPERTY = "RTA.markAllColor"; - /** * The property fired when the "mark all on occurrence" property changes. */ public static final String MARK_ALL_ON_OCCURRENCE_SEARCHES_PROPERTY = "RTA.markAllOnOccurrenceSearches"; - /** * The property fired when what ranges are labeled "mark all" changes. */ public static final String MARK_ALL_OCCURRENCES_CHANGED_PROPERTY = "RTA.markAllOccurrencesChanged"; - /* * Constants for all actions. */ @@ -118,47 +111,40 @@ public class RTextArea extends RTextAreaBase implements Printable { public static final int SELECT_ALL_ACTION = 5; public static final int UNDO_ACTION = 6; private static final int MAX_ACTION_CONSTANT = 6; - private static final Color DEFAULT_MARK_ALL_COLOR = new Color(0xffc800); - /** * The current text mode ({@link #INSERT_MODE} or {@link #OVERWRITE_MODE}). */ private int textMode; - // All macros are shared across all RTextAreas. private static boolean recordingMacro; // Whether we're recording a macro. private static Macro currentMacro; - /** * This text area's popup menu. */ private JPopupMenu popupMenu; - private JMenuItem undoMenuItem; private JMenuItem redoMenuItem; private JMenuItem cutMenuItem; private JMenuItem pasteMenuItem; private JMenuItem deleteMenuItem; - /** * Whether the popup menu has been created. */ private boolean popupMenuCreated; - /** * The text last searched for via Ctrl+K or Ctrl+Shift+K. */ private static String selectedOccurrenceText; - /** - * Can return tool tips for this text area. Subclasses can install a supplier as - * a means of adding custom tool tips without subclassing RTextArea. + * Can return tool tips for this text area. Subclasses can install a + * supplier as + * a means of adding custom tool tips without subclassing + * RTextArea. * {@link #getToolTipText()} checks this supplier before calling the super * class's version. */ private ToolTipSupplier toolTipSupplier; - private static RecordableTextAction cutAction; private static RecordableTextAction copyAction; private static RecordableTextAction pasteAction; @@ -166,27 +152,19 @@ public class RTextArea extends RTextAreaBase implements Printable { private static RecordableTextAction undoAction; private static RecordableTextAction redoAction; private static RecordableTextAction selectAllAction; - private static IconGroup iconGroup; // Info on icons for actions. - private transient RUndoManager undoManager; - private transient LineHighlightManager lineHighlightManager; - private SmartHighlightPainter markAllHighlightPainter; - private boolean markAllOnOccurrenceSearches; - private CaretStyle[] carets; // Index 0=>insert caret, 1=>overwrite. - private static final String MSG = "org.fife.ui.rtextarea.RTextArea"; - + /** * Constructor. */ - public RTextArea() { - } - + public RTextArea() {} + /** * Constructor. * @@ -196,7 +174,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public RTextArea(AbstractDocument doc) { super(doc); } - + /** * Constructor. * @@ -206,7 +184,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public RTextArea(String text) { super(text); } - + /** * Constructor. * @@ -220,7 +198,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public RTextArea(int rows, int cols) { super(rows, cols); } - + /** * Constructor. * @@ -236,7 +214,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public RTextArea(String text, int rows, int cols) { super(text, rows, cols); } - + /** * Constructor. * @@ -254,19 +232,21 @@ public class RTextArea extends RTextAreaBase implements Printable { public RTextArea(AbstractDocument doc, String text, int rows, int cols) { super(doc, text, rows, cols); } - + /** * Creates a new RTextArea. * * @param textMode - * Either INSERT_MODE or OVERWRITE_MODE. + * Either INSERT_MODE or + * OVERWRITE_MODE. */ public RTextArea(int textMode) { setTextMode(textMode); } - + /** - * Adds an action event to the current macro. This shouldn't be called directly, + * Adds an action event to the current macro. This shouldn't be called + * directly, * as it is called by the actions themselves. * * @param id @@ -277,7 +257,7 @@ public class RTextArea extends RTextAreaBase implements Printable { static synchronized void addToCurrentMacro(String id, String actionCommand) { currentMacro.addMacroRecord(new Macro.MacroRecord(id, actionCommand)); } - + /** * Adds a line highlight. * @@ -296,14 +276,16 @@ public class RTextArea extends RTextAreaBase implements Printable { } return lineHighlightManager.addLineHighlight(line, color); } - + /** - * Begins an "atomic edit." All text editing operations between this call and + * Begins an "atomic edit." All text editing operations between this call + * and * the next call to endAtomicEdit() will be treated as a single * operation by the undo manager. *

* - * Using this method should be done with great care. You should probably wrap + * Using this method should be done with great care. You should probably + * wrap * the call to endAtomicEdit() in a finally block: * *

@@ -320,11 +302,13 @@ public class RTextArea extends RTextAreaBase implements Printable {
 	public void beginAtomicEdit() {
 		undoManager.beginInternalAtomicEdit();
 	}
-
+	
 	/**
 	 * Begins recording a macro. After this method is called, all input/caret
-	 * events, etc. are recorded until endMacroRecording is called. If
-	 * this method is called but the text component is already recording a macro,
+	 * events, etc. are recorded until endMacroRecording is called.
+	 * If
+	 * this method is called but the text component is already recording a
+	 * macro,
 	 * nothing happens (but the macro keeps recording).
 	 *
 	 * @see #isRecordingMacro()
@@ -342,7 +326,7 @@ public class RTextArea extends RTextAreaBase implements Printable {
 		currentMacro = new Macro();
 		recordingMacro = true;
 	}
-
+	
 	/**
 	 * Returns whether an undo is possible.
 	 *
@@ -352,7 +336,7 @@ public class RTextArea extends RTextAreaBase implements Printable {
 	public boolean canUndo() {
 		return undoManager.canUndo();
 	}
-
+	
 	/**
 	 * Returns whether a redo is possible.
 	 *
@@ -362,7 +346,7 @@ public class RTextArea extends RTextAreaBase implements Printable {
 	public boolean canRedo() {
 		return undoManager.canRedo();
 	}
-
+	
 	/**
 	 * Clears any "mark all" highlights, if any.
 	 *
@@ -375,7 +359,7 @@ public class RTextArea extends RTextAreaBase implements Printable {
 		// markedWord = null;
 		repaint();
 	}
-
+	
 	/**
 	 * Configures the popup menu for this text area. This method is called right
 	 * before it is displayed, so a hosting application can do any custom
@@ -386,7 +370,8 @@ public class RTextArea extends RTextAreaBase implements Printable {
 	 * 

* * If you set the popup menu via {@link #setPopupMenu(JPopupMenu)}, you will - * want to override this method, especially if you removed any of the menu items + * want to override this method, especially if you removed any of the menu + * items * in the default popup menu. * * @param popupMenu @@ -395,9 +380,7 @@ public class RTextArea extends RTextAreaBase implements Printable { * @see #setPopupMenu(JPopupMenu) */ protected void configurePopupMenu(JPopupMenu popupMenu) { - boolean canType = isEditable() && isEnabled(); - // Since the user can customize the popup menu, these actions may not // have been created. if (undoMenuItem != null) { @@ -407,11 +390,11 @@ public class RTextArea extends RTextAreaBase implements Printable { pasteMenuItem.setEnabled(pasteAction.isEnabled() && canType); deleteMenuItem.setEnabled(deleteAction.isEnabled() && canType); } - } - + /** - * Creates the default implementation of the model to be used at construction if + * Creates the default implementation of the model to be used at + * construction if * one isn't explicitly given. A new instance of RDocument is returned. * * @return The default document. @@ -420,7 +403,7 @@ public class RTextArea extends RTextAreaBase implements Printable { protected Document createDefaultModel() { return new RDocument(); } - + /** * Returns the caret event/mouse listener for RTextAreas. * @@ -430,9 +413,10 @@ public class RTextArea extends RTextAreaBase implements Printable { protected RTAMouseListener createMouseListener() { return new RTextAreaMutableCaretEvent(this); } - + /** - * Creates the right-click popup menu. Subclasses can override this method to + * Creates the right-click popup menu. Subclasses can override this method + * to * replace or augment the popup menu returned. * * @return The popup menu. @@ -453,20 +437,20 @@ public class RTextArea extends RTextAreaBase implements Printable { menu.add(createPopupMenuItem(selectAllAction)); return menu; } - + /** * Creates the actions used in the popup menu and retrievable by * {@link #getAction(int)}. TODO: Remove these horrible hacks and move - * localizing of actions into the editor kits, where it should be! The context + * localizing of actions into the editor kits, where it should be! The + * context * menu should contain actions from the editor kits. */ private static void createPopupMenuActions() { - // Create actions for right-click popup menu. - // 1.5.2004/pwy: Replaced the CTRL_MASK with the cross-platform version... + // 1.5.2004/pwy: Replaced the CTRL_MASK with the cross-platform + // version... int mod = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); ResourceBundle msg = ResourceBundle.getBundle(MSG); - cutAction = new RTextAreaEditorKit.CutAction(); cutAction.setProperties(msg, "Action.Cut"); cutAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, mod)); @@ -488,9 +472,8 @@ public class RTextArea extends RTextAreaBase implements Printable { selectAllAction = new RTextAreaEditorKit.SelectAllAction(); selectAllAction.setProperties(msg, "Action.SelectAll"); selectAllAction.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, mod)); - } - + /** * Creates and configures a menu item for used in the popup menu. * @@ -501,6 +484,7 @@ public class RTextArea extends RTextAreaBase implements Printable { */ protected JMenuItem createPopupMenuItem(Action a) { JMenuItem item = new JMenuItem(a) { + @Override public void setToolTipText(String text) { // Ignore! Actions (e.g. undo/redo) set this when changing @@ -510,7 +494,7 @@ public class RTextArea extends RTextAreaBase implements Printable { item.setAccelerator(null); return item; } - + /** * Returns the a real UI to install on this text area. * @@ -520,7 +504,7 @@ public class RTextArea extends RTextAreaBase implements Printable { protected RTextAreaUI createRTextAreaUI() { return new RTextAreaUI(this); } - + /** * Creates a string of space characters of the specified size. * @@ -535,7 +519,7 @@ public class RTextArea extends RTextAreaBase implements Printable { } return sb.toString(); } - + /** * Creates an undo manager for use in this text area. * @@ -544,14 +528,15 @@ public class RTextArea extends RTextAreaBase implements Printable { protected RUndoManager createUndoManager() { return new RUndoManager(this); } - + /** * Removes all undoable edits from this document's undo manager. This method * also makes the undo/redo actions disabled. */ /* * NOTE: For some reason, it appears I have to create an entirely new - * undoManager for undo/redo to continue functioning properly; if I + * undoManager for undo/redo to continue functioning properly; + * if I * don't, it only ever lets you do one undo. Not too sure why this is... */ public void discardAllEdits() { @@ -561,7 +546,7 @@ public class RTextArea extends RTextAreaBase implements Printable { getDocument().addUndoableEditListener(undoManager); undoManager.updateActions(); } - + /** * Completes an "atomic" edit. * @@ -570,9 +555,10 @@ public class RTextArea extends RTextAreaBase implements Printable { public void endAtomicEdit() { undoManager.endInternalAtomicEdit(); } - + /** - * Ends recording a macro. If this method is called but the text component is + * Ends recording a macro. If this method is called but the text component + * is * not recording a macro, nothing happens. * * @see #isRecordingMacro() @@ -588,7 +574,7 @@ public class RTextArea extends RTextAreaBase implements Printable { } recordingMacro = false; } - + /** * Notifies all listeners that a caret change has occurred. * @@ -597,17 +583,16 @@ public class RTextArea extends RTextAreaBase implements Printable { */ @Override protected void fireCaretUpdate(CaretEvent e) { - // Decide whether we need to repaint the current line background. possiblyUpdateCurrentLineHighlightLocation(); - // Now, if there is a highlighted region of text, allow them to cut // and copy. - if (e != null && e.getDot() != e.getMark()) {// && !cutAction.isEnabled()) { + if (e != null && e.getDot() != e.getMark()) {// && + // !cutAction.isEnabled()) + // { cutAction.setEnabled(true); copyAction.setEnabled(true); } - // Otherwise, if there is no highlighted region, don't let them cut // or copy. The condition here should speed things up, because this // way, we will only enable the actions the first time the selection @@ -616,11 +601,9 @@ public class RTextArea extends RTextAreaBase implements Printable { cutAction.setEnabled(false); copyAction.setEnabled(false); } - super.fireCaretUpdate(e); - } - + /** * Removes the "Ctrl+H <=> Backspace" behavior that Java shows, for some odd * reason... @@ -638,45 +621,50 @@ public class RTextArea extends RTextAreaBase implements Printable { inputMap.put(backspace, DefaultEditorKit.deletePrevCharAction); } } - + /** - * Provides a way to gain access to the editor actions on the right-click popup + * Provides a way to gain access to the editor actions on the right-click + * popup * menu. This way you can make toolbar/menu bar items use the actual actions - * used by all RTextAreas, so that icons stay synchronized and you + * used by all RTextAreas, so that icons stay synchronized and + * you * don't have to worry about enabling/disabling them yourself. *

* Keep in mind that these actions are shared across all instances of - * RTextArea, so a change to any action returned by this method is + * RTextArea, so a change to any action returned by this method + * is * global across all RTextArea editors in your application. * * @param action - * The action to retrieve, such as {@link #CUT_ACTION}. If the action + * The action to retrieve, such as {@link #CUT_ACTION}. If the + * action * name is invalid, null is returned. - * @return The action, or null if an invalid action is requested. + * @return The action, or null if an invalid action is + * requested. */ public static RecordableTextAction getAction(int action) { if (action < MIN_ACTION_CONSTANT || action > MAX_ACTION_CONSTANT) { return null; } switch (action) { - case COPY_ACTION: - return copyAction; - case CUT_ACTION: - return cutAction; - case DELETE_ACTION: - return deleteAction; - case PASTE_ACTION: - return pasteAction; - case REDO_ACTION: - return redoAction; - case SELECT_ALL_ACTION: - return selectAllAction; - case UNDO_ACTION: - return undoAction; + case COPY_ACTION: + return copyAction; + case CUT_ACTION: + return cutAction; + case DELETE_ACTION: + return deleteAction; + case PASTE_ACTION: + return pasteAction; + case REDO_ACTION: + return redoAction; + case SELECT_ALL_ACTION: + return selectAllAction; + case UNDO_ACTION: + return undoAction; } return null; } - + /** * Returns the macro currently stored in this RTextArea. Since * macros are shared, all RTextAreas in the currently- running @@ -689,7 +677,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public static synchronized Macro getCurrentMacro() { return currentMacro; } - + /** * Returns the default color used for "mark all" highlights. * @@ -700,7 +688,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public static final Color getDefaultMarkAllHighlightColor() { return DEFAULT_MARK_ALL_COLOR; } - + /** * Returns the icon group being used for the actions of this text area. * @@ -710,10 +698,11 @@ public class RTextArea extends RTextAreaBase implements Printable { public static IconGroup getIconGroup() { return iconGroup; } - + /** * Returns whether "mark all" should be enabled when a user does a "find - * next/find previous" action via Ctrl+K or Ctrl+Shift+K (the default shortcut + * next/find previous" action via Ctrl+K or Ctrl+Shift+K (the default + * shortcut * keys for this action). The default value is {@code true}. * * @return Whether "mark all" should be enabled. @@ -722,7 +711,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public boolean getMarkAllOnOccurrenceSearches() { return markAllOnOccurrenceSearches; } - + /** * Returns the line highlight manager. * @@ -731,7 +720,7 @@ public class RTextArea extends RTextAreaBase implements Printable { LineHighlightManager getLineHighlightManager() { return lineHighlightManager; } - + /** * Returns the color used in "mark all" highlights. * @@ -741,9 +730,10 @@ public class RTextArea extends RTextAreaBase implements Printable { public Color getMarkAllHighlightColor() { return (Color) markAllHighlightPainter.getPaint(); } - + /** - * Returns the maximum ascent of all fonts used in this text area. In the case + * Returns the maximum ascent of all fonts used in this text area. In the + * case * of a standard RTextArea, this is simply the ascent of the * current font. *

@@ -756,9 +746,10 @@ public class RTextArea extends RTextAreaBase implements Printable { public int getMaxAscent() { return getFontMetrics(getFont()).getAscent(); } - + /** - * Returns the popup menu for this component, lazily creating it if necessary. + * Returns the popup menu for this component, lazily creating it if + * necessary. * * @return The popup menu. * @see #createPopupMenu() @@ -775,7 +766,7 @@ public class RTextArea extends RTextAreaBase implements Printable { } return popupMenu; } - + /** * Returns the text last selected and used in a Ctrl+K operation. * @@ -785,7 +776,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public static String getSelectedOccurrenceText() { return selectedOccurrenceText; } - + /** * Returns the text mode this editor pane is currently in. * @@ -795,20 +786,23 @@ public class RTextArea extends RTextAreaBase implements Printable { public final int getTextMode() { return textMode; } - + /** * Returns the tool tip supplier. * - * @return The tool tip supplier, or null if one isn't installed. + * @return The tool tip supplier, or null if one isn't + * installed. * @see #setToolTipSupplier(ToolTipSupplier) */ public ToolTipSupplier getToolTipSupplier() { return toolTipSupplier; } - + /** - * Returns the tooltip to display for a mouse event at the given location. This - * method is overridden to check for a {@link ToolTipSupplier}; if there is one + * Returns the tooltip to display for a mouse event at the given location. + * This + * method is overridden to check for a {@link ToolTipSupplier}; if there is + * one * installed, it is queried for tool tip text before using the super class's * implementation of this method. * @@ -826,10 +820,12 @@ public class RTextArea extends RTextAreaBase implements Printable { } return tip != null ? tip : super.getToolTipText(); } - + /** - * Does the actual dirty-work of replacing the selected text in this text area - * (i.e., in its document). This method provides a hook for subclasses to handle + * Does the actual dirty-work of replacing the selected text in this text + * area + * (i.e., in its document). This method provides a hook for subclasses to + * handle * this in a different way. * * @param content @@ -839,12 +835,10 @@ public class RTextArea extends RTextAreaBase implements Printable { // Call into super to handle composed text. super.replaceSelection(content); } - + @Override protected void init() { - super.init(); - // NOTE: Our actions are created here instead of in a static block // so they are only created when the first RTextArea is instantiated, // not before. There have been reports of users calling static getters @@ -854,11 +848,9 @@ public class RTextArea extends RTextAreaBase implements Printable { if (cutAction == null) { createPopupMenuActions(); } - // Install the undo manager. undoManager = createUndoManager(); getDocument().addUndoableEditListener(undoManager); - // Set the defaults for various stuff. Color markAllHighlightColor = getDefaultMarkAllHighlightColor(); markAllHighlightPainter = new SmartHighlightPainter(markAllHighlightColor); @@ -867,15 +859,12 @@ public class RTextArea extends RTextAreaBase implements Printable { setCaretStyle(INSERT_MODE, CaretStyle.THICK_VERTICAL_LINE_STYLE); setCaretStyle(OVERWRITE_MODE, CaretStyle.BLOCK_STYLE); setDragEnabled(true); // Enable drag-and-drop. - setTextMode(INSERT_MODE); // Carets array must be created first! setMarkAllOnOccurrenceSearches(true); - // Fix the odd "Ctrl+H <=> Backspace" Java behavior. fixCtrlH(); - } - + /** * Returns whether or not a macro is being recorded. * @@ -886,7 +875,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public static synchronized boolean isRecordingMacro() { return recordingMacro; } - + /** * Loads a macro to be used by all RTextAreas in the current * application. @@ -898,10 +887,12 @@ public class RTextArea extends RTextAreaBase implements Printable { public static synchronized void loadMacro(Macro macro) { currentMacro = macro; } - + /** - * Marks all ranges specified with the "mark all" highlighter. Typically, this - * method is called indirectly from {@link SearchEngine} when doing a fine or + * Marks all ranges specified with the "mark all" highlighter. Typically, + * this + * method is called indirectly from {@link SearchEngine} when doing a fine + * or * replace operation. *

* @@ -917,10 +908,8 @@ public class RTextArea extends RTextAreaBase implements Printable { * @see #setMarkAllHighlightColor(Color) */ void markAll(List ranges) { - RTextAreaHighlighter h = (RTextAreaHighlighter) getHighlighter(); if (/* toMark!=null && !toMark.equals(markedWord) && */h != null) { - // markedWord = toMark; if (ranges != null) { for (DocumentRange range : ranges) { @@ -931,14 +920,11 @@ public class RTextArea extends RTextAreaBase implements Printable { } } } - repaint(); firePropertyChange(MARK_ALL_OCCURRENCES_CHANGED_PROPERTY, null, ranges); - } - } - + @Override public void paste() { // Treat paste operations as atomic, otherwise the removal and @@ -950,7 +936,7 @@ public class RTextArea extends RTextAreaBase implements Printable { endAtomicEdit(); } } - + /** * "Plays back" the last recorded macro in this text area. */ @@ -965,8 +951,7 @@ public class RTextArea extends RTextAreaBase implements Printable { for (int i = 0; i < actions.length; i++) { if ((actions[i] instanceof RecordableTextAction) && record.id.equals(((RecordableTextAction) actions[i]).getMacroID())) { - actions[i].actionPerformed( - new ActionEvent(this, ActionEvent.ACTION_PERFORMED, record.actionCommand)); + actions[i].actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, record.actionCommand)); break; } } @@ -977,9 +962,10 @@ public class RTextArea extends RTextAreaBase implements Printable { } } } - + /** - * Method called when it's time to print this badboy (the old-school, AWT way). + * Method called when it's time to print this badboy (the old-school, AWT + * way). * * @param g * The context into which the page is drawn. @@ -992,15 +978,16 @@ public class RTextArea extends RTextAreaBase implements Printable { public int print(Graphics g, PageFormat pageFormat, int pageIndex) { return RPrintUtilities.printDocumentWordWrap(g, this, getFont(), pageIndex, pageFormat, getTabSize()); } - + /** - * We override this method because the super version gives us an entirely new - * Document, thus requiring us to re-attach our Undo manager. With + * We override this method because the super version gives us an entirely + * new + * Document, thus requiring us to re-attach our Undo manager. + * With * this version we just replace the text. */ @Override public void read(Reader in, Object desc) throws IOException { - RTextAreaEditorKit kit = (RTextAreaEditorKit) getUI().getEditorKit(this); setText(null); Document doc = getDocument(); @@ -1013,9 +1000,8 @@ public class RTextArea extends RTextAreaBase implements Printable { } catch (BadLocationException e) { throw new IOException(e.getMessage()); } - } - + /** * De-serializes a text area. * @@ -1025,18 +1011,14 @@ public class RTextArea extends RTextAreaBase implements Printable { * @throws IOException */ private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException { - s.defaultReadObject(); - // UndoManagers cannot be serialized without Exceptions. See // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4275892 undoManager = createUndoManager(); getDocument().addUndoableEditListener(undoManager); - lineHighlightManager = null; // Keep FindBugs happy. - } - + /** * Attempt to redo the last action. * @@ -1052,7 +1034,7 @@ public class RTextArea extends RTextAreaBase implements Printable { cre.printStackTrace(); } } - + /** * Removes all line highlights. * @@ -1063,7 +1045,7 @@ public class RTextArea extends RTextAreaBase implements Printable { lineHighlightManager.removeAllLineHighlights(); } } - + /** * Removes a line highlight. * @@ -1077,15 +1059,17 @@ public class RTextArea extends RTextAreaBase implements Printable { lineHighlightManager.removeLineHighlight(tag); } } - + /** * Replaces text from the indicated start to end position with the new text - * specified. Does nothing if the model is null. Simply does a delete if the new + * specified. Does nothing if the model is null. Simply does a delete if the + * new * string is null or empty. *

* This method is thread safe, although most Swing methods are not. *

- * This method is overridden so that our Undo manager remembers it as a single + * This method is overridden so that our Undo manager remembers it as a + * single * operation (it has trouble with this, especially for * RSyntaxTextArea and the "auto-indent" feature). * @@ -1124,7 +1108,7 @@ public class RTextArea extends RTextAreaBase implements Printable { } } } - + /** * This method overrides JTextComponent's * replaceSelection, so that if textMode is @@ -1135,13 +1119,11 @@ public class RTextArea extends RTextAreaBase implements Printable { */ @Override public void replaceSelection(String text) { - // It's legal for null to be used here... if (text == null) { handleReplaceSelection(text); return; } - if (getTabsEmulated()) { int firstTab = text.indexOf('\t'); if (firstTab > -1) { @@ -1153,19 +1135,15 @@ public class RTextArea extends RTextAreaBase implements Printable { } } } - // If the user wants to overwrite text... if (textMode == OVERWRITE_MODE && !"\n".equals(text)) { - Caret caret = getCaret(); int caretPos = caret.getDot(); Document doc = getDocument(); Element map = doc.getDefaultRootElement(); int curLine = map.getElementIndex(caretPos); int lastLine = map.getElementCount() - 1; - try { - // If we're not at the end of a line, select the characters // that will be overwritten (otherwise JTextArea will simply // insert in front of them). @@ -1178,24 +1156,20 @@ public class RTextArea extends RTextAreaBase implements Printable { } caret.moveDot(caretPos);// moveCaretPosition(caretPos); } - } catch (BadLocationException ble) { // Never happens UIManager.getLookAndFeel().provideErrorFeedback(this); ble.printStackTrace(); } - } // End of if (textMode==OVERWRITE_MODE). - - // Now, actually do the inserting/replacing. Our undoManager will - // take care of remembering the remove/insert as atomic if we are in - // overwrite mode. + // Now, actually do the inserting/replacing. Our undoManager will + // take care of remembering the remove/insert as atomic if we are in + // overwrite mode. handleReplaceSelection(text); - } - + private static StringBuilder repTabsSB; private static Segment repTabsSeg = new Segment(); - + /** * Replaces all instances of the tab character in text with the * number of spaces equivalent to a tab in this text area. @@ -1205,21 +1179,24 @@ public class RTextArea extends RTextAreaBase implements Printable { * {@link #replaceSelection(String)}. * * @param text - * The java.lang.String in which to replace tabs with - * spaces. This has already been verified to have at least one tab + * The java.lang.String in which to replace tabs + * with + * spaces. This has already been verified to have at least one + * tab * character in it. * @param docOffs - * The offset in the document at which the text is being inserted. + * The offset in the document at which the text is being + * inserted. * @param firstTab - * The offset into text of the first tab. Assumed to be + * The offset into text of the first tab. Assumed to + * be * >= 0. - * @return A String just like text, but with spaces + * @return A String just like text, but with + * spaces * instead of tabs. */ private String replaceTabsWithSpaces(String text, int docOffs, int firstTab) throws BadLocationException { - int tabSize = getTabSize(); - // Get how many chars into the current line we are Document doc = getDocument(); Element root = doc.getDefaultRootElement(); @@ -1227,7 +1204,6 @@ public class RTextArea extends RTextAreaBase implements Printable { Element line = root.getElement(lineIndex); int lineStart = line.getStartOffset(); int charCount = docOffs - lineStart; - // Figure out how many chars into the "current tab" we are if (charCount > 0) { doc.getText(lineStart, charCount, repTabsSeg); @@ -1241,14 +1217,11 @@ public class RTextArea extends RTextAreaBase implements Printable { } } } - // Common case: The user's entering a single tab (pressed the tab key). if (text.length() == 1) { return createSpacer(tabSize - charCount); } - // Otherwise, there may be more than one tab. - if (repTabsSB == null) { repTabsSB = new StringBuilder(); } @@ -1259,31 +1232,29 @@ public class RTextArea extends RTextAreaBase implements Printable { for (int pos = firstTab; pos < array.length; pos++) { char ch = array[pos]; switch (ch) { - case '\t': - if (pos > lastPos) { - repTabsSB.append(array, lastPos, pos - lastPos); - } - int thisTabSize = tabSize - (offsInLine % tabSize); - repTabsSB.append(createSpacer(thisTabSize)); - lastPos = pos + 1; - offsInLine = 0; - break; - case '\n': - offsInLine = 0; - break; - default: - offsInLine++; - break; + case '\t': + if (pos > lastPos) { + repTabsSB.append(array, lastPos, pos - lastPos); + } + int thisTabSize = tabSize - (offsInLine % tabSize); + repTabsSB.append(createSpacer(thisTabSize)); + lastPos = pos + 1; + offsInLine = 0; + break; + case '\n': + offsInLine = 0; + break; + default: + offsInLine++; + break; } } if (lastPos < array.length) { repTabsSB.append(array, lastPos, array.length - lastPos); } - return repTabsSB.toString(); - } - + /** * Sets the properties of one of the actions this text area owns. * @@ -1299,7 +1270,7 @@ public class RTextArea extends RTextAreaBase implements Printable { public static void setActionProperties(int action, String name, char mnemonic, KeyStroke accelerator) { setActionProperties(action, name, Integer.valueOf(mnemonic), accelerator); } - + /** * Sets the properties of one of the actions this text area owns. * @@ -1313,42 +1284,40 @@ public class RTextArea extends RTextAreaBase implements Printable { * The new accelerator key for the action. */ public static void setActionProperties(int action, String name, Integer mnemonic, KeyStroke accelerator) { - Action tempAction = null; - switch (action) { - case CUT_ACTION: - tempAction = cutAction; - break; - case COPY_ACTION: - tempAction = copyAction; - break; - case PASTE_ACTION: - tempAction = pasteAction; - break; - case DELETE_ACTION: - tempAction = deleteAction; - break; - case SELECT_ALL_ACTION: - tempAction = selectAllAction; - break; - case UNDO_ACTION: - case REDO_ACTION: - default: - return; + case CUT_ACTION: + tempAction = cutAction; + break; + case COPY_ACTION: + tempAction = copyAction; + break; + case PASTE_ACTION: + tempAction = pasteAction; + break; + case DELETE_ACTION: + tempAction = deleteAction; + break; + case SELECT_ALL_ACTION: + tempAction = selectAllAction; + break; + case UNDO_ACTION: + case REDO_ACTION: + default: + return; } - tempAction.putValue(Action.NAME, name); tempAction.putValue(Action.SHORT_DESCRIPTION, name); tempAction.putValue(Action.ACCELERATOR_KEY, accelerator); tempAction.putValue(Action.MNEMONIC_KEY, mnemonic); - } - + /** * Sets the caret to use in this text area. It is strongly encouraged to use - * {@link ConfigurableCaret}s (which is used by default), or a subclass, since - * they know how to render themselves differently when the user toggles between + * {@link ConfigurableCaret}s (which is used by default), or a subclass, + * since + * they know how to render themselves differently when the user toggles + * between * insert and overwrite modes. * * @param caret @@ -1363,7 +1332,7 @@ public class RTextArea extends RTextAreaBase implements Printable { ((ConfigurableCaret) caret).setStyle(carets[getTextMode()]); } } - + /** * Sets the style of caret used when in insert or overwrite mode. * @@ -1383,7 +1352,7 @@ public class RTextArea extends RTextAreaBase implements Printable { ((ConfigurableCaret) getCaret()).setStyle(style); } } - + /** * Sets the document used by this text area. * @@ -1409,10 +1378,12 @@ public class RTextArea extends RTextAreaBase implements Printable { discardAllEdits(); } } - + /** - * Sets the path in which to find images to associate with the editor's actions. - * The path MUST contain the following images (with the appropriate extension as + * Sets the path in which to find images to associate with the editor's + * actions. + * The path MUST contain the following images (with the appropriate + * extension as * defined by the icon group):
*

    *
  • cut
  • @@ -1447,7 +1418,7 @@ public class RTextArea extends RTextAreaBase implements Printable { selectAllAction.putValue(Action.SMALL_ICON, icon); iconGroup = group; } - + /** * Sets the color used for "mark all." This fires a property change of type * {@link #MARK_ALL_COLOR_PROPERTY}. @@ -1467,10 +1438,12 @@ public class RTextArea extends RTextAreaBase implements Printable { firePropertyChange(MARK_ALL_COLOR_PROPERTY, old, color); } } - + /** - * Sets whether "mark all" should be enabled when a user does a "find next/find - * previous" action via Ctrl+K or Ctrl+Shift+K (the default shortcut keys for + * Sets whether "mark all" should be enabled when a user does a "find + * next/find + * previous" action via Ctrl+K or Ctrl+Shift+K (the default shortcut keys + * for * this action). The default value is {@code true}. *

    * This method fires a property change event of type @@ -1486,17 +1459,19 @@ public class RTextArea extends RTextAreaBase implements Printable { firePropertyChange(MARK_ALL_ON_OCCURRENCE_SEARCHES_PROPERTY, !markAll, markAll); } } - + /** * Sets the popup menu used by this text area. *

    * * If you set the popup menu with this method, you'll want to consider also - * overriding {@link #configurePopupMenu(JPopupMenu)}, especially if you removed + * overriding {@link #configurePopupMenu(JPopupMenu)}, especially if you + * removed * any of the default menu items. * * @param popupMenu - * The popup menu. If this is null, no popup menu will + * The popup menu. If this is null, no popup menu + * will * be displayed. * @see #getPopupMenu() * @see #configurePopupMenu(JPopupMenu) @@ -1505,7 +1480,7 @@ public class RTextArea extends RTextAreaBase implements Printable { this.popupMenu = popupMenu; popupMenuCreated = true; } - + @Override public void setRoundedSelectionEdges(boolean rounded) { if (getRoundedSelectionEdges() != rounded) { @@ -1513,16 +1488,21 @@ public class RTextArea extends RTextAreaBase implements Printable { super.setRoundedSelectionEdges(rounded); // Fires event. } } - + /** - * Sets the text last selected/Ctrl+K'd in an RTextArea. This text - * will be searched for in subsequent Ctrl+K/Ctrl+Shift+K actions (Cmd+K on OS + * Sets the text last selected/Ctrl+K'd in an RTextArea. This + * text + * will be searched for in subsequent Ctrl+K/Ctrl+Shift+K actions (Cmd+K on + * OS * X). *

    * - * Since the selected occurrence actions are built into RTextArea, applications - * usually do not have to call this method directly, but can choose to do so if - * they wish (for example, if they wish to set this value when the user does a + * Since the selected occurrence actions are built into RTextArea, + * applications + * usually do not have to call this method directly, but can choose to do so + * if + * they wish (for example, if they wish to set this value when the user does + * a * search via a Find dialog). * * @param text @@ -1532,10 +1512,12 @@ public class RTextArea extends RTextAreaBase implements Printable { public static void setSelectedOccurrenceText(String text) { selectedOccurrenceText = text; } - + /** - * Sets the text mode for this editor pane. If the currently installed caret is - * an instance of {@link ConfigurableCaret}, it will be automatically updated to + * Sets the text mode for this editor pane. If the currently installed caret + * is + * an instance of {@link ConfigurableCaret}, it will be automatically + * updated to * render itself appropriately for the new text mode. * * @param mode @@ -1543,11 +1525,9 @@ public class RTextArea extends RTextAreaBase implements Printable { * @see #getTextMode() */ public void setTextMode(int mode) { - if (mode != INSERT_MODE && mode != OVERWRITE_MODE) { mode = INSERT_MODE; } - if (textMode != mode) { Caret caret = getCaret(); if (caret instanceof ConfigurableCaret) { @@ -1559,25 +1539,26 @@ public class RTextArea extends RTextAreaBase implements Printable { caret.setVisible(false); caret.setVisible(true); } - } - + /** * Sets the tool tip supplier. * * @param supplier - * The new tool tip supplier, or null if there is to be + * The new tool tip supplier, or null if there is to + * be * no supplier. * @see #getToolTipSupplier() */ public void setToolTipSupplier(ToolTipSupplier supplier) { this.toolTipSupplier = supplier; } - + /** * Sets the UI used by this text area. This is overridden so only the * right-click popup menu's UI is updated. The look and feel of an - * RTextArea is independent of the Java Look and Feel, and so this + * RTextArea is independent of the Java Look and Feel, and so + * this * method does not change the text area itself. Subclasses (such as * RSyntaxTextArea can call setRTextAreaUI if they * wish to install a new UI. @@ -1587,21 +1568,18 @@ public class RTextArea extends RTextAreaBase implements Printable { */ @Override public final void setUI(TextUI ui) { - // Update the popup menu's ui. if (popupMenu != null) { SwingUtilities.updateComponentTreeUI(popupMenu); } - // Set things like selection color, selected text color, etc. to // laf defaults (if values are null or UIResource instances). RTextAreaUI rtaui = (RTextAreaUI) getUI(); if (rtaui != null) { rtaui.installDefaults(); } - } - + /** * Attempt to undo an "action" done in this text area. * @@ -1617,7 +1595,7 @@ public class RTextArea extends RTextAreaBase implements Printable { cre.printStackTrace(); } } - + /** * Serializes this text area. * @@ -1627,27 +1605,28 @@ public class RTextArea extends RTextAreaBase implements Printable { * If an IO error occurs. */ private void writeObject(ObjectOutputStream s) throws IOException { - // UndoManagers cannot be serialized without Exceptions. See // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4275892 getDocument().removeUndoableEditListener(undoManager); s.defaultWriteObject(); getDocument().addUndoableEditListener(undoManager); - } - + /** - * Modified from MutableCaretEvent in JTextComponent - * so that mouse events get fired when the user is selecting text with the mouse - * as well. This class also displays the popup menu when the user right-clicks + * Modified from MutableCaretEvent in + * JTextComponent + * so that mouse events get fired when the user is selecting text with the + * mouse + * as well. This class also displays the popup menu when the user + * right-clicks * in the text area. */ protected class RTextAreaMutableCaretEvent extends RTAMouseListener { - + protected RTextAreaMutableCaretEvent(RTextArea textArea) { super(textArea); } - + @Override public void focusGained(FocusEvent e) { Caret c = getCaret(); @@ -1656,11 +1635,10 @@ public class RTextArea extends RTextAreaBase implements Printable { copyAction.setEnabled(enabled); undoManager.updateActions(); // To reflect this text area. } - + @Override - public void focusLost(FocusEvent e) { - } - + public void focusLost(FocusEvent e) {} + @Override public void mouseDragged(MouseEvent e) { // WORKAROUND: Since JTextComponent only updates the caret @@ -1673,7 +1651,7 @@ public class RTextArea extends RTextAreaBase implements Printable { fireCaretUpdate(this); } } - + @Override public void mousePressed(MouseEvent e) { if (e.isPopupTrigger()) { // OS X popup triggers are on pressed @@ -1685,16 +1663,17 @@ public class RTextArea extends RTextAreaBase implements Printable { fireCaretUpdate(this); } } - + @Override public void mouseReleased(MouseEvent e) { if (e.isPopupTrigger()) { showPopup(e); } } - + /** - * Shows a popup menu with cut, copy, paste, etc. options if the user clicked + * Shows a popup menu with cut, copy, paste, etc. options if the user + * clicked * the right button. * * @param e @@ -1708,7 +1687,5 @@ public class RTextArea extends RTextAreaBase implements Printable { e.consume(); } } - } - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RTextAreaBase.java b/src/org/fife/ui/rtextarea/RTextAreaBase.java index fa401ac..f27c3f4 100644 --- a/src/org/fife/ui/rtextarea/RTextAreaBase.java +++ b/src/org/fife/ui/rtextarea/RTextAreaBase.java @@ -1,9 +1,7 @@ /* * 04/07/2005 - * * RTextAreaBase.java - The base class for an RTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -32,7 +30,6 @@ import javax.swing.text.BadLocationException; import javax.swing.text.Caret; import javax.swing.text.StyleContext; - /** * This is the base class for RTextArea; basically it's just an * extension of javax.swing.JTextArea adding a bunch of properties. @@ -44,159 +41,167 @@ import javax.swing.text.StyleContext; * @version 0.8 */ public abstract class RTextAreaBase extends JTextArea { - - public static final String BACKGROUND_IMAGE_PROPERTY = "background.image"; - public static final String CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY = "RTA.currentLineHighlightColor"; - public static final String CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY = "RTA.currentLineHighlightFade"; - public static final String HIGHLIGHT_CURRENT_LINE_PROPERTY = "RTA.currentLineHighlight"; - public static final String ROUNDED_SELECTION_PROPERTY = "RTA.roundedSelection"; - - private boolean tabsEmulatedWithSpaces; // If true, tabs will be expanded to spaces. - - private boolean highlightCurrentLine; // If true, the current line is highlighted. - private Color currentLineColor; // The color used to highlight the current line. - private boolean marginLineEnabled; // If true, paint a "margin line." - private Color marginLineColor; // The color used to paint the margin line. - private int marginLineX; // The x-location of the margin line. - private int marginSizeInChars; // How many 'm' widths the margin line is over. - private boolean fadeCurrentLineHighlight; // "Fade effect" for current line highlight. + + public static final String BACKGROUND_IMAGE_PROPERTY = "background.image"; + public static final String CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY = "RTA.currentLineHighlightColor"; + public static final String CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY = "RTA.currentLineHighlightFade"; + public static final String HIGHLIGHT_CURRENT_LINE_PROPERTY = "RTA.currentLineHighlight"; + public static final String ROUNDED_SELECTION_PROPERTY = "RTA.roundedSelection"; + private boolean tabsEmulatedWithSpaces; // If true, tabs will be expanded to + // spaces. + private boolean highlightCurrentLine; // If true, the current line is + // highlighted. + private Color currentLineColor; // The color used to highlight the current + // line. + private boolean marginLineEnabled; // If true, paint a "margin line." + private Color marginLineColor; // The color used to paint the margin line. + private int marginLineX; // The x-location of the margin line. + private int marginSizeInChars; // How many 'm' widths the margin line is + // over. + private boolean fadeCurrentLineHighlight; // "Fade effect" for current line + // highlight. private boolean roundedSelectionEdges; private int previousCaretY; - int currentCaretY; // Used to know when to rehighlight current line. - - private BackgroundPainterStrategy backgroundPainter; // Paints the background. - + int currentCaretY; // Used to know when to rehighlight current line. + private BackgroundPainterStrategy backgroundPainter; // Paints the + // background. private RTAMouseListener mouseListener; - - private static final Color DEFAULT_CARET_COLOR = new ColorUIResource(255,51,51); - private static final Color DEFAULT_CURRENT_LINE_HIGHLIGHT_COLOR = new Color(255,255,170); - private static final Color DEFAULT_MARGIN_LINE_COLOR = new Color(255,224,224); - private static final int DEFAULT_TAB_SIZE = 4; - private static final int DEFAULT_MARGIN_LINE_POSITION = 80; - - + private static final Color DEFAULT_CARET_COLOR = new ColorUIResource(255, 51, 51); + private static final Color DEFAULT_CURRENT_LINE_HIGHLIGHT_COLOR = new Color(255, 255, 170); + private static final Color DEFAULT_MARGIN_LINE_COLOR = new Color(255, 224, 224); + private static final int DEFAULT_TAB_SIZE = 4; + private static final int DEFAULT_MARGIN_LINE_POSITION = 80; + /** * Constructor. */ public RTextAreaBase() { init(); } - - + /** * Constructor. * - * @param doc The document for the editor. + * @param doc + * The document for the editor. */ public RTextAreaBase(AbstractDocument doc) { super(doc); init(); } - - + /** * Constructor. * - * @param text The initial text to display. + * @param text + * The initial text to display. */ public RTextAreaBase(String text) { // Don't call super(text) to avoid NPE due to our funky RTextAreaUI... init(); setText(text); } - - + /** * Constructor. * - * @param rows The number of rows to display. - * @param cols The number of columns to display. - * @throws IllegalArgumentException If either rows or - * cols is negative. + * @param rows + * The number of rows to display. + * @param cols + * The number of columns to display. + * @throws IllegalArgumentException + * If either rows or + * cols is negative. */ public RTextAreaBase(int rows, int cols) { super(rows, cols); init(); } - - + /** * Constructor. * - * @param text The initial text to display. - * @param rows The number of rows to display. - * @param cols The number of columns to display. - * @throws IllegalArgumentException If either rows or - * cols is negative. + * @param text + * The initial text to display. + * @param rows + * The number of rows to display. + * @param cols + * The number of columns to display. + * @throws IllegalArgumentException + * If either rows or + * cols is negative. */ public RTextAreaBase(String text, int rows, int cols) { // Don't call this super() due to NPE from our funky RTextAreaUI... - //super(text, rows, cols); + // super(text, rows, cols); super(rows, cols); init(); setText(text); } - - + /** * Constructor. * - * @param doc The document for the editor. - * @param text The initial text to display. - * @param rows The number of rows to display. - * @param cols The number of columns to display. - * @throws IllegalArgumentException If either rows or - * cols is negative. + * @param doc + * The document for the editor. + * @param text + * The initial text to display. + * @param rows + * The number of rows to display. + * @param cols + * The number of columns to display. + * @throws IllegalArgumentException + * If either rows or + * cols is negative. */ - public RTextAreaBase(AbstractDocument doc, String text, int rows, - int cols) { + public RTextAreaBase(AbstractDocument doc, String text, int rows, int cols) { // Don't call super() with text due to NPE from our funky RTextAreaUI... - super(doc, null/*text*/, rows, cols); + super(doc, null/* text */, rows, cols); init(); setText(text); } - - + /** * Adds listeners that listen for changes to the current line, so we can - * update our "current line highlight." This is needed only because of an + * update our "current line highlight." This is needed only because of an * apparent difference between the JRE 1.4.2 and 1.5.0 (needed on 1.4.2, * not needed on 1.5.0). */ private void addCurrentLineHighlightListeners() { boolean add = true; MouseMotionListener[] mouseMotionListeners = getMouseMotionListeners(); - for (int i=0; iRTextAreas. * * @return The caret event/mouse listener. */ protected abstract RTAMouseListener createMouseListener(); - - + /** - * Returns the a real UI to install on this text component. Subclasses + * Returns the a real UI to install on this text component. Subclasses * can override this method to return an extended version of * RTextAreaUI. * * @return The UI. */ protected abstract RTextAreaUI createRTextAreaUI(); - - + /** - * Forces the current line highlight to be repainted. This hack is + * Forces the current line highlight to be repainted. This hack is * necessary for those situations when the view (appearance) changes * but the caret's location hasn't (and thus the current line highlight - * coordinates won't get changed). Examples of this are when + * coordinates won't get changed). Examples of this are when * word wrap is toggled and when syntax styles are changed in an * RSyntaxTextArea. */ @@ -315,11 +304,10 @@ public abstract class RTextAreaBase extends JTextArea { fireCaretUpdate(mouseListener); } } - - + /** * Returns the java.awt.Color used as the background color for - * this text area. If a java.awt.Image image is currently + * this text area. If a java.awt.Image image is currently * being used instead, null is returned. * * @return The current background color, or null if an image @@ -328,9 +316,9 @@ public abstract class RTextAreaBase extends JTextArea { @Override public final Color getBackground() { Object bg = getBackgroundObject(); - return (bg instanceof Color) ? (Color)bg : null; + return (bg instanceof Color) ? (Color) bg : null; } - + /** * Returns the image currently used for the background. * If the current background is currently a java.awt.Color and @@ -342,10 +330,9 @@ public abstract class RTextAreaBase extends JTextArea { */ public final Image getBackgroundImage() { Object bg = getBackgroundObject(); - return (bg instanceof Image) ? (Image)bg : null; + return (bg instanceof Image) ? (Image) bg : null; } - - + /** * Returns the Object representing the background for all * documents in this tabbed pane; either a java.awt.Color or a @@ -356,17 +343,14 @@ public abstract class RTextAreaBase extends JTextArea { * @see #setBackgroundObject(Object newBackground) */ public final Object getBackgroundObject() { - if (backgroundPainter==null) { + if (backgroundPainter == null) { return null; } - return (backgroundPainter instanceof ImageBackgroundPainterStrategy) ? - (Object)((ImageBackgroundPainterStrategy)backgroundPainter). - getMasterImage() : - (Object)((ColorBackgroundPainterStrategy)backgroundPainter). - getColor(); + return (backgroundPainter instanceof ImageBackgroundPainterStrategy) + ? (Object) ((ImageBackgroundPainterStrategy) backgroundPainter).getMasterImage() + : (Object) ((ColorBackgroundPainterStrategy) backgroundPainter).getColor(); } - - + /** * Gets the line number that the caret is on. * @@ -379,8 +363,7 @@ public abstract class RTextAreaBase extends JTextArea { return 0; // Never happens } } - - + /** * Gets the position from the beginning of the current line that the caret * is on. @@ -396,8 +379,7 @@ public abstract class RTextAreaBase extends JTextArea { return 0; // Never happens } } - - + /** * Returns the y-offset of the caret. * @@ -406,10 +388,9 @@ public abstract class RTextAreaBase extends JTextArea { protected int getCurrentCaretY() { return currentCaretY; } - - + /** - * Returns the color being used to highlight the current line. Note that + * Returns the color being used to highlight the current line. Note that * if highlighting the current line is turned off, you will not be seeing * this highlight. * @@ -421,8 +402,7 @@ public abstract class RTextAreaBase extends JTextArea { public Color getCurrentLineHighlightColor() { return currentLineColor; } - - + /** * Returns the default caret color. * @@ -431,10 +411,9 @@ public abstract class RTextAreaBase extends JTextArea { public static final Color getDefaultCaretColor() { return DEFAULT_CARET_COLOR; } - - + /** - * Returns the "default" color for highlighting the current line. Note + * Returns the "default" color for highlighting the current line. Note * that this color was chosen only because it looks nice (to me) against a * white background. * @@ -443,20 +422,17 @@ public abstract class RTextAreaBase extends JTextArea { public static final Color getDefaultCurrentLineHighlightColor() { return DEFAULT_CURRENT_LINE_HIGHLIGHT_COLOR; } - - + /** * Returns the default font for text areas. * * @return The default font. */ public static final Font getDefaultFont() { - // Use StyleContext to get a composite font for better Asian language // support; see Sun bug S282887. StyleContext sc = StyleContext.getDefaultStyleContext(); Font font = null; - if (isOSX()) { // Snow Leopard (1.6) uses Menlo as default monospaced font, // pre-Snow Leopard used Monaco. @@ -467,21 +443,17 @@ public abstract class RTextAreaBase extends JTextArea { font = sc.getFont("Monospaced", Font.PLAIN, 13); } } - } - else { + } else { // Consolas added in Vista, used by VS2010+. font = sc.getFont("Consolas", Font.PLAIN, 13); if (!"Consolas".equals(font.getFamily())) { font = sc.getFont("Monospaced", Font.PLAIN, 13); } } - - //System.out.println(font.getFamily() + ", " + font.getName()); + // System.out.println(font.getFamily() + ", " + font.getName()); return font; - } - - + /** * Returns the default foreground color for text in this text area. * @@ -490,8 +462,7 @@ public abstract class RTextAreaBase extends JTextArea { public static final Color getDefaultForeground() { return Color.BLACK; } - - + /** * Returns the default color for the margin line. * @@ -502,8 +473,7 @@ public abstract class RTextAreaBase extends JTextArea { public static final Color getDefaultMarginLineColor() { return DEFAULT_MARGIN_LINE_COLOR; } - - + /** * Returns the default margin line position. * @@ -514,8 +484,7 @@ public abstract class RTextAreaBase extends JTextArea { public static final int getDefaultMarginLinePosition() { return DEFAULT_MARGIN_LINE_POSITION; } - - + /** * Returns the default tab size, in spaces. * @@ -524,8 +493,7 @@ public abstract class RTextAreaBase extends JTextArea { public static final int getDefaultTabSize() { return DEFAULT_TAB_SIZE; } - - + /** * Returns whether the current line highlight is faded. * @@ -535,8 +503,7 @@ public abstract class RTextAreaBase extends JTextArea { public boolean getFadeCurrentLineHighlight() { return fadeCurrentLineHighlight; } - - + /** * Returns whether or not the current line is highlighted. * @@ -548,8 +515,7 @@ public abstract class RTextAreaBase extends JTextArea { public boolean getHighlightCurrentLine() { return highlightCurrentLine; } - - + /** * Returns the offset of the last character of the line that the caret is * on. @@ -563,8 +529,7 @@ public abstract class RTextAreaBase extends JTextArea { return 0; // Never happens } } - - + /** * Returns the height of a line of text in this text area. * @@ -573,8 +538,7 @@ public abstract class RTextAreaBase extends JTextArea { public int getLineHeight() { return getRowHeight(); } - - + /** * Returns the offset of the first character of the line that the caret is * on. @@ -588,8 +552,7 @@ public abstract class RTextAreaBase extends JTextArea { return 0; // Never happens } } - - + /** * Returns the color used to paint the margin line. * @@ -599,8 +562,7 @@ public abstract class RTextAreaBase extends JTextArea { public Color getMarginLineColor() { return marginLineColor; } - - + /** * Returns the margin line position (in pixels) from the left-hand side of * the text area. @@ -612,8 +574,7 @@ public abstract class RTextAreaBase extends JTextArea { public int getMarginLinePixelLocation() { return marginLineX; } - - + /** * Returns the margin line position (which is the number of 'm' widths in * the current font the margin line is over). @@ -625,8 +586,7 @@ public abstract class RTextAreaBase extends JTextArea { public int getMarginLinePosition() { return marginSizeInChars; } - - + /** * Returns whether selection edges are rounded in this text area. * @@ -636,8 +596,7 @@ public abstract class RTextAreaBase extends JTextArea { public boolean getRoundedSelectionEdges() { return roundedSelectionEdges; } - - + /** * Returns whether or not tabs are emulated with spaces (i.e., "soft" * tabs). @@ -649,22 +608,18 @@ public abstract class RTextAreaBase extends JTextArea { public boolean getTabsEmulated() { return tabsEmulatedWithSpaces; } - - + /** * Initializes this text area. */ protected void init() { - - // Sets the UI. Note that setUI() is overridden in RTextArea to only + // Sets the UI. Note that setUI() is overridden in RTextArea to only // update the popup menu; this method must be called to set the real - // UI. This is done because the look and feel of an RTextArea is + // UI. This is done because the look and feel of an RTextArea is // independent of the installed Java look and feels. setRTextAreaUI(createRTextAreaUI()); - // So we get notified when the component is resized. - enableEvents(AWTEvent.COMPONENT_EVENT_MASK|AWTEvent.KEY_EVENT_MASK); - + enableEvents(AWTEvent.COMPONENT_EVENT_MASK | AWTEvent.KEY_EVENT_MASK); // Defaults for various properties. setHighlightCurrentLine(true); setCurrentLineHighlightColor(getDefaultCurrentLineHighlightColor()); @@ -676,20 +631,16 @@ public abstract class RTextAreaBase extends JTextArea { setTabSize(5); setForeground(Color.BLACK); setTabsEmulated(false); - // Stuff needed by the caret listener below. previousCaretY = currentCaretY = getInsets().top; - // Stuff to highlight the current line. mouseListener = createMouseListener(); // Also acts as a focus listener so we can update our shared actions // (cut, copy, etc. on the popup menu). addFocusListener(mouseListener); addCurrentLineHighlightListeners(); - } - - + /** * Returns whether or not the margin line is being painted. * @@ -699,8 +650,7 @@ public abstract class RTextAreaBase extends JTextArea { public boolean isMarginLineEnabled() { return marginLineEnabled; } - - + /** * Returns whether the OS we're running on is OS X. * @@ -712,20 +662,17 @@ public abstract class RTextAreaBase extends JTextArea { String osName = System.getProperty("os.name").toLowerCase(); return osName.startsWith("mac os x"); } - - + /** * Paints the text area. * - * @param g The graphics context with which to paint. + * @param g + * The graphics context with which to paint. */ @Override protected void paintComponent(Graphics g) { - - //long startTime = System.currentTimeMillis(); - + // long startTime = System.currentTimeMillis(); backgroundPainter.paint(g, getVisibleRect()); - // Paint the main part of the text area. TextUI ui = getUI(); if (ui != null) { @@ -737,155 +684,141 @@ public abstract class RTextAreaBase extends JTextArea { scratchGraphics.dispose(); } } - - //long endTime = System.currentTimeMillis(); - //System.err.println(endTime-startTime); - + // long endTime = System.currentTimeMillis(); + // System.err.println(endTime-startTime); } - - + /** * Updates the current line highlight location. */ protected void possiblyUpdateCurrentLineHighlightLocation() { - int width = getWidth(); int lineHeight = getLineHeight(); int dot = getCaretPosition(); - // If we're wrapping lines we need to check the actual y-coordinate // of the caret, not just the line number, since a single logical // line can span multiple physical lines. if (getLineWrap()) { try { Rectangle temp = modelToView(dot); - if (temp!=null) { + if (temp != null) { currentCaretY = temp.y; } } catch (BadLocationException ble) { ble.printStackTrace(); // Should never happen. } } - // No line wrap - we can simply check the line number (quicker). else { -// Document doc = getDocument(); -// if (doc!=null) { -// Element map = doc.getDefaultRootElement(); -// int caretLine = map.getElementIndex(dot); -// Rectangle alloc = ((RTextAreaUI)getUI()). -// getVisibleEditorRect(); -// if (alloc!=null) -// currentCaretY = alloc.y + caretLine*lineHeight; -// } -// Modified for code folding requirements -try { - Rectangle temp = modelToView(dot); - if (temp!=null) { - currentCaretY = temp.y; - } -} catch (BadLocationException ble) { - ble.printStackTrace(); // Should never happen. -} + // Document doc = getDocument(); + // if (doc!=null) { + // Element map = doc.getDefaultRootElement(); + // int caretLine = map.getElementIndex(dot); + // Rectangle alloc = ((RTextAreaUI)getUI()). + // getVisibleEditorRect(); + // if (alloc!=null) + // currentCaretY = alloc.y + caretLine*lineHeight; + // } + // Modified for code folding requirements + try { + Rectangle temp = modelToView(dot); + if (temp != null) { + currentCaretY = temp.y; + } + } catch (BadLocationException ble) { + ble.printStackTrace(); // Should never happen. + } } - // Repaint current line (to fill in entire highlight), and old line - // (to erase entire old highlight) if necessary. Always repaint + // (to erase entire old highlight) if necessary. Always repaint // current line in case selection is added or removed. - repaint(0,currentCaretY, width,lineHeight); - if (previousCaretY!=currentCaretY) { - repaint(0,previousCaretY, width,lineHeight); + repaint(0, currentCaretY, width, lineHeight); + if (previousCaretY != currentCaretY) { + repaint(0, previousCaretY, width, lineHeight); } - previousCaretY = currentCaretY; - } - - + /** * Overridden so we can tell when the text area is resized and update the * current-line highlight, if necessary (i.e., if it is enabled and if * lineWrap is enabled. * - * @param e The component event about to be sent to all registered - * ComponentListeners. + * @param e + * The component event about to be sent to all registered + * ComponentListeners. */ @Override protected void processComponentEvent(ComponentEvent e) { - // In line wrap mode, resizing the text area means that the caret's // "line" could change - not to a different logical line, but a - // different physical one. So, here we force a repaint of the current + // different physical one. So, here we force a repaint of the current // line's highlight if necessary. - if (e.getID()==ComponentEvent.COMPONENT_RESIZED && - getLineWrap() && getHighlightCurrentLine()) { - previousCaretY = -1; // So we are sure to repaint. + if (e.getID() == ComponentEvent.COMPONENT_RESIZED && getLineWrap() && getHighlightCurrentLine()) { + previousCaretY = -1; // So we are sure to repaint. fireCaretUpdate(mouseListener); } - super.processComponentEvent(e); - } - - + /** - * Sets the background color of this text editor. Note that this is - * equivalent to calling setBackgroundObject(bg).

    + * Sets the background color of this text editor. Note that this is + * equivalent to calling setBackgroundObject(bg). + *

    * - * NOTE: the opaque property is set to true when the - * background is set to a color with 1.0 alpha (by this method). When an - * image is used for the background, opaque is set to false. This is + * NOTE: the opaque property is set to true when the + * background is set to a color with 1.0 alpha (by this method). When an + * image is used for the background, opaque is set to false. This is * because we perform better when setOpaque is true, but if we use an * image for the background when opaque is true, we get on-screen - * garbage when the user scrolls via the arrow keys. Thus we - * need setOpaque to be false in that case.

    + * garbage when the user scrolls via the arrow keys. Thus we + * need setOpaque to be false in that case. + *

    * You never have to change the opaque property yourself; it is always done * for you. * - * @param bg The color to use as the background color. + * @param bg + * The color to use as the background color. */ @Override public void setBackground(Color bg) { Object oldBG = getBackgroundObject(); if (oldBG instanceof Color) { // Just change color of strategy. - ((ColorBackgroundPainterStrategy)backgroundPainter). - setColor(bg); - } - else { // Was an image painter... + ((ColorBackgroundPainterStrategy) backgroundPainter).setColor(bg); + } else { // Was an image painter... backgroundPainter = new ColorBackgroundPainterStrategy(bg); } - setOpaque(bg==null || bg.getAlpha()==0xff); + setOpaque(bg == null || bg.getAlpha() == 0xff); firePropertyChange("background", oldBG, bg); repaint(); } - - + /** - * Sets this image as the background image. This method fires a - * property change event of type {@link #BACKGROUND_IMAGE_PROPERTY}.

    + * Sets this image as the background image. This method fires a + * property change event of type {@link #BACKGROUND_IMAGE_PROPERTY}. + *

    * - * NOTE: the opaque property is set to true when the - * background is set to a color. When an image is used for the - * background (by this method), opaque is set to false. This is because + * NOTE: the opaque property is set to true when the + * background is set to a color. When an image is used for the + * background (by this method), opaque is set to false. This is because * we perform better when setOpaque is true, but if we use an * image for the background when opaque is true, we get on-screen - * garbage when the user scrolls via the arrow keys. Thus we - * need setOpaque to be false in that case.

    + * garbage when the user scrolls via the arrow keys. Thus we + * need setOpaque to be false in that case. + *

    * You never have to change the opaque property yourself; it is always done * for you. * - * @param image The image to use as this text area's background. + * @param image + * The image to use as this text area's background. * @see #getBackgroundImage */ public void setBackgroundImage(Image image) { Object oldBG = getBackgroundObject(); if (oldBG instanceof Image) { // Just change image being displayed. - ((ImageBackgroundPainterStrategy)backgroundPainter). - setImage(image); - } - else { // Was a color strategy... - ImageBackgroundPainterStrategy strategy = - new BufferedImageBackgroundPainterStrategy(this); + ((ImageBackgroundPainterStrategy) backgroundPainter).setImage(image); + } else { // Was a color strategy... + ImageBackgroundPainterStrategy strategy = new BufferedImageBackgroundPainterStrategy(this); strategy.setImage(image); backgroundPainter = strategy; } @@ -893,163 +826,157 @@ try { firePropertyChange(BACKGROUND_IMAGE_PROPERTY, oldBG, image); repaint(); } - - + /** * Makes the background into this Object. * - * @param newBackground The java.awt.Color or - * java.awt.Image object. If newBackground - * is not either of these, the background is set to plain white. + * @param newBackground + * The java.awt.Color or + * java.awt.Image object. If + * newBackground + * is not either of these, the background is set to plain white. */ public void setBackgroundObject(Object newBackground) { if (newBackground instanceof Color) { - setBackground((Color)newBackground); - } - else if (newBackground instanceof Image) { - setBackgroundImage((Image)newBackground); - } - else { + setBackground((Color) newBackground); + } else if (newBackground instanceof Image) { + setBackgroundImage((Image) newBackground); + } else { setBackground(Color.WHITE); } - } - - + /* * TODO: Figure out why RTextArea doesn't work with RTL (e.g. Arabic) * and fix it! */ -// public void setComponentOrientation(ComponentOrientation o) { -// if (!o.isLeftToRight()) { -// o = ComponentOrientation.LEFT_TO_RIGHT; -// } -// super.setComponentOrientation(o); -// } - - + // public void setComponentOrientation(ComponentOrientation o) { + // if (!o.isLeftToRight()) { + // o = ComponentOrientation.LEFT_TO_RIGHT; + // } + // super.setComponentOrientation(o); + // } /** - * Sets the color to use to highlight the current line. Note that if + * Sets the color to use to highlight the current line. Note that if * highlighting the current line is turned off, you will not be able to - * see this highlight. This method fires a property change of type + * see this highlight. This method fires a property change of type * {@link #CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY}. * - * @param color The color to use to highlight the current line. - * @throws NullPointerException if color is null. + * @param color + * The color to use to highlight the current line. + * @throws NullPointerException + * if color is null. * @see #getHighlightCurrentLine() * @see #setHighlightCurrentLine(boolean) * @see #getCurrentLineHighlightColor */ public void setCurrentLineHighlightColor(Color color) { - if (color==null) { + if (color == null) { throw new NullPointerException(); } if (!color.equals(currentLineColor)) { Color old = currentLineColor; currentLineColor = color; - firePropertyChange(CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY, - old, color); + firePropertyChange(CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY, old, color); } } - - + /** * Sets whether the current line highlight should have a "fade" effect. * This method fires a property change event of type * CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY. * - * @param fade Whether the fade effect should be enabled. + * @param fade + * Whether the fade effect should be enabled. * @see #getFadeCurrentLineHighlight */ public void setFadeCurrentLineHighlight(boolean fade) { - if (fade!=fadeCurrentLineHighlight) { + if (fade != fadeCurrentLineHighlight) { fadeCurrentLineHighlight = fade; if (getHighlightCurrentLine()) { forceCurrentLineHighlightRepaint(); } - firePropertyChange(CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY, - !fade, fade); + firePropertyChange(CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY, !fade, fade); } } - - + /** - * Sets the font for this text area. This is overridden only so that we + * Sets the font for this text area. This is overridden only so that we * can update the size of the "current line highlight" and the location of * the "margin line," if necessary. * - * @param font The font to use for this text component. + * @param font + * The font to use for this text component. */ @Override public void setFont(Font font) { - if (font!=null && font.getSize()<=0) { + if (font != null && font.getSize() <= 0) { throw new IllegalArgumentException("Font size must be > 0"); } super.setFont(font); - if (font!=null) { + if (font != null) { updateMarginLineX(); if (highlightCurrentLine) { possiblyUpdateCurrentLineHighlightLocation(); } } } - - + /** - * Sets whether or not the current line is highlighted. This method + * Sets whether or not the current line is highlighted. This method * fires a property change of type {@link #HIGHLIGHT_CURRENT_LINE_PROPERTY}. * - * @param highlight Whether or not to highlight the current line. + * @param highlight + * Whether or not to highlight the current line. * @see #getHighlightCurrentLine() * @see #getCurrentLineHighlightColor * @see #setCurrentLineHighlightColor */ public void setHighlightCurrentLine(boolean highlight) { - if (highlight!=highlightCurrentLine) { + if (highlight != highlightCurrentLine) { highlightCurrentLine = highlight; - firePropertyChange(HIGHLIGHT_CURRENT_LINE_PROPERTY, - !highlight, highlight); + firePropertyChange(HIGHLIGHT_CURRENT_LINE_PROPERTY, !highlight, highlight); repaint(); // Repaint entire width of line. } } - - + /** - * Sets whether or not word wrap is enabled. This is overridden so that + * Sets whether or not word wrap is enabled. This is overridden so that * the "current line highlight" gets updated if it needs to be. * - * @param wrap Whether or not word wrap should be enabled. + * @param wrap + * Whether or not word wrap should be enabled. */ @Override public void setLineWrap(boolean wrap) { super.setLineWrap(wrap); forceCurrentLineHighlightRepaint(); } - - + /** * Overridden to update the current line highlight location. * - * @param insets The new insets. + * @param insets + * The new insets. */ @Override public void setMargin(Insets insets) { Insets old = getInsets(); - int oldTop = old!=null ? old.top : 0; - int newTop = insets!=null ? insets.top : 0; - if (oldTop!=newTop) { + int oldTop = old != null ? old.top : 0; + int newTop = insets != null ? insets.top : 0; + if (oldTop != newTop) { // The entire editor will be automatically repainted if it is // visible, so no need to call repaint() or forceCurrentLine...(). previousCaretY = currentCaretY = newTop; } super.setMargin(insets); } - - + /** * Sets the color used to paint the margin line. * - * @param color The new margin line color. + * @param color + * The new margin line color. * @see #getDefaultMarginLineColor() * @see #getMarginLineColor() */ @@ -1057,99 +984,95 @@ try { marginLineColor = color; if (marginLineEnabled) { Rectangle visibleRect = getVisibleRect(); - repaint(marginLineX,visibleRect.y, 1,visibleRect.height); + repaint(marginLineX, visibleRect.y, 1, visibleRect.height); } } - - + /** * Enables or disables the margin line. * - * @param enabled Whether or not the margin line should be enabled. + * @param enabled + * Whether or not the margin line should be enabled. * @see #isMarginLineEnabled */ public void setMarginLineEnabled(boolean enabled) { - if (enabled!=marginLineEnabled) { + if (enabled != marginLineEnabled) { marginLineEnabled = enabled; if (marginLineEnabled) { Rectangle visibleRect = getVisibleRect(); - repaint(marginLineX,visibleRect.y, 1,visibleRect.height); + repaint(marginLineX, visibleRect.y, 1, visibleRect.height); } } } - - + /** * Sets the number of 'm' widths the margin line is over. * - * @param size The margin size. - * #see #getDefaultMarginLinePosition + * @param size + * The margin size. + * #see #getDefaultMarginLinePosition * @see #getMarginLinePosition */ public void setMarginLinePosition(int size) { marginSizeInChars = size; if (marginLineEnabled) { Rectangle visibleRect = getVisibleRect(); - repaint(marginLineX,visibleRect.y, 1,visibleRect.height); + repaint(marginLineX, visibleRect.y, 1, visibleRect.height); updateMarginLineX(); - repaint(marginLineX,visibleRect.y, 1,visibleRect.height); + repaint(marginLineX, visibleRect.y, 1, visibleRect.height); } } - - + /** * Sets whether the edges of selections are rounded in this text area. * This method fires a property change of type * {@link #ROUNDED_SELECTION_PROPERTY}. * - * @param rounded Whether selection edges should be rounded. + * @param rounded + * Whether selection edges should be rounded. * @see #getRoundedSelectionEdges() */ public void setRoundedSelectionEdges(boolean rounded) { - if (roundedSelectionEdges!=rounded) { + if (roundedSelectionEdges != rounded) { roundedSelectionEdges = rounded; Caret c = getCaret(); if (c instanceof ConfigurableCaret) { - ((ConfigurableCaret)c).setRoundedSelectionEdges(rounded); - if (c.getDot()!=c.getMark()) { // e.g., there's is a selection + ((ConfigurableCaret) c).setRoundedSelectionEdges(rounded); + if (c.getDot() != c.getMark()) { // e.g., there's is a selection repaint(); } } - firePropertyChange(ROUNDED_SELECTION_PROPERTY, !rounded, - rounded); + firePropertyChange(ROUNDED_SELECTION_PROPERTY, !rounded, rounded); } } - - + /** - * Sets the UI for this RTextArea. Note that, for instances + * Sets the UI for this RTextArea. Note that, for instances * of RTextArea, setUI only updates the popup * menu; this is because RTextAreas' look and feels are - * independent of the Java Look and Feel. This method is here so + * independent of the Java Look and Feel. This method is here so * subclasses can set a UI (subclass of RTextAreaUI) if they * have to. * - * @param ui The new UI. + * @param ui + * The new UI. * @see #setUI */ protected void setRTextAreaUI(RTextAreaUI ui) { - super.setUI(ui); - // Workaround as setUI makes the text area opaque, even if we don't // want it to be. setOpaque(getBackgroundObject() instanceof Color); - } - - + /** * Changes whether or not tabs should be emulated with spaces (i.e., soft - * tabs). Note that this affects all tabs inserted AFTER this call, not - * tabs already in the document. For that, see + * tabs). Note that this affects all tabs inserted AFTER this call, not + * tabs already in the document. For that, see * {@link #convertTabsToSpaces} and {@link #convertSpacesToTabs}. * - * @param areEmulated Whether or not tabs should be emulated with spaces. + * @param areEmulated + * Whether or not tabs should be emulated with spaces. * @see #convertSpacesToTabs * @see #convertTabsToSpaces * @see #getTabsEmulated @@ -1157,17 +1080,18 @@ try { public void setTabsEmulated(boolean areEmulated) { tabsEmulatedWithSpaces = areEmulated; } - - + /** * Workaround, since in JDK1.4 it appears that setTabSize() * doesn't work for a JTextArea unless you use the constructor - * specifying the number of rows and columns...

    + * specifying the number of rows and columns... + *

    * Sets the number of characters to expand tabs to. This will be multiplied * by the maximum advance for variable width fonts. A PropertyChange event * ("tabSize") is fired when the tab size changes. * - * @param size Number of characters to expand to. + * @param size + * Number of characters to expand to. */ @Override public void setTabSize(int size) { @@ -1176,8 +1100,7 @@ try { setLineWrap(!b); setLineWrap(b); } - - + /** * This is here so subclasses such as RSyntaxTextArea that * have multiple fonts can define exactly what it means, for example, for @@ -1189,84 +1112,88 @@ try { marginLineX = 0; return; } - marginLineX = getFontMetrics(font).charWidth('m') * - marginSizeInChars; + marginLineX = getFontMetrics(font).charWidth('m') * marginSizeInChars; } - - + /** * Returns the y-coordinate of the specified line. * - * @param line The line number. + * @param line + * The line number. * @return The y-coordinate of the top of the line, or -1 if * this text area doesn't yet have a positive size or the line is * hidden (i.e. from folding). - * @throws BadLocationException If line isn't a valid line - * number for this document. + * @throws BadLocationException + * If line isn't a valid line + * number for this document. */ public int yForLine(int line) throws BadLocationException { - return ((RTextAreaUI)getUI()).yForLine(line); + return ((RTextAreaUI) getUI()).yForLine(line); } - - + /** * Returns the y-coordinate of the line containing an offset. * - * @param offs The offset info the document. + * @param offs + * The offset info the document. * @return The y-coordinate of the top of the offset, or -1 if * this text area doesn't yet have a positive size or the line is * hidden (i.e. from folding). - * @throws BadLocationException If offs isn't a valid offset - * into the document. + * @throws BadLocationException + * If offs isn't a valid offset + * into the document. */ public int yForLineContaining(int offs) throws BadLocationException { - return ((RTextAreaUI)getUI()).yForLineContaining(offs); + return ((RTextAreaUI) getUI()).yForLineContaining(offs); } - - + /** * Listens for mouse events in this component. */ - protected class RTAMouseListener extends CaretEvent implements - MouseListener, MouseMotionListener, FocusListener { - + protected class RTAMouseListener extends CaretEvent implements MouseListener, MouseMotionListener, FocusListener { + RTAMouseListener(RTextAreaBase textArea) { super(textArea); } - + @Override public void focusGained(FocusEvent e) {} + @Override public void focusLost(FocusEvent e) {} + @Override public void mouseDragged(MouseEvent e) {} + @Override public void mouseMoved(MouseEvent e) {} + @Override public void mouseClicked(MouseEvent e) {} + @Override public void mousePressed(MouseEvent e) {} + @Override public void mouseReleased(MouseEvent e) {} + @Override public void mouseEntered(MouseEvent e) {} + @Override public void mouseExited(MouseEvent e) {} - + @Override public int getDot() { return dot; } - + @Override public int getMark() { return mark; } - + protected int dot; protected int mark; - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RTextAreaEditorKit.java b/src/org/fife/ui/rtextarea/RTextAreaEditorKit.java index bbd4a9b..affe579 100644 --- a/src/org/fife/ui/rtextarea/RTextAreaEditorKit.java +++ b/src/org/fife/ui/rtextarea/RTextAreaEditorKit.java @@ -1,9 +1,7 @@ /* * 08/13/2004 - * * RTextAreaEditorKit.java - The editor kit used by RTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -41,7 +39,6 @@ import javax.swing.text.Utilities; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; - /** * An extension of DefaultEditorKit that adds functionality found * in RTextArea. @@ -49,292 +46,215 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; * @author Robert Futrell * @version 0.1 */ -// FIXME: Replace Utilities calls with custom versions (in RSyntaxUtilities) to +// FIXME: Replace Utilities calls with custom versions (in RSyntaxUtilities) to // cut down on all of the modelToViews, as each call causes // a getTokenList => expensive! @SuppressWarnings({ "checkstyle:constantname" }) public class RTextAreaEditorKit extends DefaultEditorKit { - + /** * The name of the action that begins recording a macro. */ - public static final String rtaBeginRecordingMacroAction = "RTA.BeginRecordingMacroAction"; - + public static final String rtaBeginRecordingMacroAction = "RTA.BeginRecordingMacroAction"; /** * The name of the action to decrease the font size. */ - public static final String rtaDecreaseFontSizeAction = "RTA.DecreaseFontSizeAction"; - + public static final String rtaDecreaseFontSizeAction = "RTA.DecreaseFontSizeAction"; /** * The name of the action that deletes the current line. */ - public static final String rtaDeleteLineAction = "RTA.DeleteLineAction"; - + public static final String rtaDeleteLineAction = "RTA.DeleteLineAction"; /** * The name of the action to delete the word before the caret. */ - public static final String rtaDeletePrevWordAction = "RTA.DeletePrevWordAction"; - + public static final String rtaDeletePrevWordAction = "RTA.DeletePrevWordAction"; /** * The name of the action taken to delete the remainder of the line (from * the caret position to the end of the line). */ - public static final String rtaDeleteRestOfLineAction = "RTA.DeleteRestOfLineAction"; - + public static final String rtaDeleteRestOfLineAction = "RTA.DeleteRestOfLineAction"; /** * The name of the action that completes the word at the caret position * with the last word in the document that starts with the text up to the * caret. */ - public static final String rtaDumbCompleteWordAction = "RTA.DumbCompleteWordAction"; - + public static final String rtaDumbCompleteWordAction = "RTA.DumbCompleteWordAction"; /** * The name of the action that ends recording a macro. */ - public static final String rtaEndRecordingMacroAction = "RTA.EndRecordingMacroAction"; - + public static final String rtaEndRecordingMacroAction = "RTA.EndRecordingMacroAction"; /** * The name of the action to increase the font size. */ - public static final String rtaIncreaseFontSizeAction = "RTA.IncreaseFontSizeAction"; - + public static final String rtaIncreaseFontSizeAction = "RTA.IncreaseFontSizeAction"; /** * The name of the action that inverts the case of the current selection. */ - public static final String rtaInvertSelectionCaseAction = "RTA.InvertCaseAction"; - + public static final String rtaInvertSelectionCaseAction = "RTA.InvertCaseAction"; /** * The name of the action to join two lines. */ - public static final String rtaJoinLinesAction = "RTA.JoinLinesAction"; - + public static final String rtaJoinLinesAction = "RTA.JoinLinesAction"; /** * Action to move a line down. */ - public static final String rtaLineDownAction = "RTA.LineDownAction"; - + public static final String rtaLineDownAction = "RTA.LineDownAction"; /** * Action to move a line up. */ - public static final String rtaLineUpAction = "RTA.LineUpAction"; - + public static final String rtaLineUpAction = "RTA.LineUpAction"; /** * The name of the action to make the current selection lower-case. */ - public static final String rtaLowerSelectionCaseAction = "RTA.LowerCaseAction"; - + public static final String rtaLowerSelectionCaseAction = "RTA.LowerCaseAction"; /** * Action to select the next occurrence of the selected text. */ - public static final String rtaNextOccurrenceAction = "RTA.NextOccurrenceAction"; - + public static final String rtaNextOccurrenceAction = "RTA.NextOccurrenceAction"; /** - * Action to select the previous occurrence of the selected text. + * Action to select the previous occurrence of the selected text. */ - public static final String rtaPrevOccurrenceAction = "RTA.PrevOccurrenceAction"; - + public static final String rtaPrevOccurrenceAction = "RTA.PrevOccurrenceAction"; /** * Action to jump to the next bookmark. */ - public static final String rtaNextBookmarkAction = "RTA.NextBookmarkAction"; - + public static final String rtaNextBookmarkAction = "RTA.NextBookmarkAction"; /** * Action to display the paste history popup. */ - public static final String clipboardHistoryAction = "RTA.PasteHistoryAction"; - + public static final String clipboardHistoryAction = "RTA.PasteHistoryAction"; /** * Action to jump to the previous bookmark. */ - public static final String rtaPrevBookmarkAction = "RTA.PrevBookmarkAction"; - + public static final String rtaPrevBookmarkAction = "RTA.PrevBookmarkAction"; /** * The name of the action that "plays back" the last macro. */ - public static final String rtaPlaybackLastMacroAction = "RTA.PlaybackLastMacroAction"; - + public static final String rtaPlaybackLastMacroAction = "RTA.PlaybackLastMacroAction"; /** * The name of the action for "redoing" the last action undone. */ - public static final String rtaRedoAction = "RTA.RedoAction"; - + public static final String rtaRedoAction = "RTA.RedoAction"; /** * The name of the action to scroll the text area down one line * without changing the caret's position. */ - public static final String rtaScrollDownAction = "RTA.ScrollDownAction"; - + public static final String rtaScrollDownAction = "RTA.ScrollDownAction"; /** * The name of the action to scroll the text area up one line * without changing the caret's position. */ - public static final String rtaScrollUpAction = "RTA.ScrollUpAction"; - + public static final String rtaScrollUpAction = "RTA.ScrollUpAction"; /** * The name of the action for "paging up" with the selection. */ - public static final String rtaSelectionPageUpAction = "RTA.SelectionPageUpAction"; - + public static final String rtaSelectionPageUpAction = "RTA.SelectionPageUpAction"; /** * The name of the action for "paging down" with the selection. */ - public static final String rtaSelectionPageDownAction = "RTA.SelectionPageDownAction"; - + public static final String rtaSelectionPageDownAction = "RTA.SelectionPageDownAction"; /** * The name of the action for "paging left" with the selection. */ - public static final String rtaSelectionPageLeftAction = "RTA.SelectionPageLeftAction"; - + public static final String rtaSelectionPageLeftAction = "RTA.SelectionPageLeftAction"; /** * The name of the action for "paging right" with the selection. */ - public static final String rtaSelectionPageRightAction = "RTA.SelectionPageRightAction"; - + public static final String rtaSelectionPageRightAction = "RTA.SelectionPageRightAction"; /** * The name of the action for inserting a time/date stamp. */ - public static final String rtaTimeDateAction = "RTA.TimeDateAction"; - + public static final String rtaTimeDateAction = "RTA.TimeDateAction"; /** * Toggles whether the current line has a bookmark, if this text area * is in an {@link RTextScrollPane}. */ - public static final String rtaToggleBookmarkAction = "RTA.ToggleBookmarkAction"; - + public static final String rtaToggleBookmarkAction = "RTA.ToggleBookmarkAction"; /** * The name of the action taken when the user hits the Insert key (thus * toggling between insert and overwrite modes). */ - public static final String rtaToggleTextModeAction = "RTA.ToggleTextModeAction"; - + public static final String rtaToggleTextModeAction = "RTA.ToggleTextModeAction"; /** * The name of the action for "undoing" the last action done. */ - public static final String rtaUndoAction = "RTA.UndoAction"; - + public static final String rtaUndoAction = "RTA.UndoAction"; /** * The name of the action for unselecting any selected text in the text * area. */ - public static final String rtaUnselectAction = "RTA.UnselectAction"; - + public static final String rtaUnselectAction = "RTA.UnselectAction"; /** * The name of the action for making the current selection upper-case. */ - public static final String rtaUpperSelectionCaseAction = "RTA.UpperCaseAction"; - + public static final String rtaUpperSelectionCaseAction = "RTA.UpperCaseAction"; /** * The actions that RTextAreaEditorKit adds to those of * the default editor kit. */ - private static final RecordableTextAction[] defaultActions = { - new BeginAction(beginAction, false), - new BeginAction(selectionBeginAction, true), - new BeginLineAction(beginLineAction, false), - new BeginLineAction(selectionBeginLineAction, true), - new BeginRecordingMacroAction(), - new BeginWordAction(beginWordAction, false), - new BeginWordAction(selectionBeginWordAction, true), - new ClipboardHistoryAction(), - new CopyAction(), - new CutAction(), - new DefaultKeyTypedAction(), - new DeleteLineAction(), - new DeleteNextCharAction(), - new DeletePrevCharAction(), - new DeletePrevWordAction(), - new DeleteRestOfLineAction(), - new DumbCompleteWordAction(), - new EndAction(endAction, false), - new EndAction(selectionEndAction, true), - new EndLineAction(endLineAction, false), - new EndLineAction(selectionEndLineAction, true), - new EndRecordingMacroAction(), - new EndWordAction(endWordAction, false), - new EndWordAction(endWordAction, true), - new InsertBreakAction(), - new InsertContentAction(), - new InsertTabAction(), - new InvertSelectionCaseAction(), - new JoinLinesAction(), - new LowerSelectionCaseAction(), - new LineMoveAction(rtaLineUpAction, -1), - new LineMoveAction(rtaLineDownAction, 1), - new NextBookmarkAction(rtaNextBookmarkAction, true), - new NextBookmarkAction(rtaPrevBookmarkAction, false), - new NextVisualPositionAction(forwardAction, false, SwingConstants.EAST), - new NextVisualPositionAction(backwardAction, false, SwingConstants.WEST), - new NextVisualPositionAction(selectionForwardAction, true, SwingConstants.EAST), - new NextVisualPositionAction(selectionBackwardAction, true, SwingConstants.WEST), - new NextVisualPositionAction(upAction, false, SwingConstants.NORTH), - new NextVisualPositionAction(downAction, false, SwingConstants.SOUTH), - new NextVisualPositionAction(selectionUpAction, true, SwingConstants.NORTH), - new NextVisualPositionAction(selectionDownAction, true, SwingConstants.SOUTH), - new NextOccurrenceAction(rtaNextOccurrenceAction), - new PreviousOccurrenceAction(rtaPrevOccurrenceAction), - new NextWordAction(nextWordAction, false), - new NextWordAction(selectionNextWordAction, true), - new PageAction(rtaSelectionPageLeftAction, true, true), - new PageAction(rtaSelectionPageRightAction, false, true), - new PasteAction(), - new PlaybackLastMacroAction(), - new PreviousWordAction(previousWordAction, false), - new PreviousWordAction(selectionPreviousWordAction, true), - new RedoAction(), - new ScrollAction(rtaScrollUpAction, -1), - new ScrollAction(rtaScrollDownAction, 1), - new SelectAllAction(), - new SelectLineAction(), - new SelectWordAction(), - new SetReadOnlyAction(), - new SetWritableAction(), - new ToggleBookmarkAction(), - new ToggleTextModeAction(), - new UndoAction(), - new UnselectAction(), - new UpperSelectionCaseAction(), - new VerticalPageAction(pageUpAction, -1, false), - new VerticalPageAction(pageDownAction, 1, false), - new VerticalPageAction(rtaSelectionPageUpAction, -1, true), - new VerticalPageAction(rtaSelectionPageDownAction, 1, true) - }; - + private static final RecordableTextAction[] defaultActions = { new BeginAction(beginAction, false), + new BeginAction(selectionBeginAction, true), new BeginLineAction(beginLineAction, false), + new BeginLineAction(selectionBeginLineAction, true), new BeginRecordingMacroAction(), + new BeginWordAction(beginWordAction, false), new BeginWordAction(selectionBeginWordAction, true), new ClipboardHistoryAction(), + new CopyAction(), new CutAction(), new DefaultKeyTypedAction(), new DeleteLineAction(), new DeleteNextCharAction(), + new DeletePrevCharAction(), new DeletePrevWordAction(), new DeleteRestOfLineAction(), new DumbCompleteWordAction(), + new EndAction(endAction, false), new EndAction(selectionEndAction, true), new EndLineAction(endLineAction, false), + new EndLineAction(selectionEndLineAction, true), new EndRecordingMacroAction(), new EndWordAction(endWordAction, false), + new EndWordAction(endWordAction, true), new InsertBreakAction(), new InsertContentAction(), new InsertTabAction(), + new InvertSelectionCaseAction(), new JoinLinesAction(), new LowerSelectionCaseAction(), new LineMoveAction(rtaLineUpAction, -1), + new LineMoveAction(rtaLineDownAction, 1), new NextBookmarkAction(rtaNextBookmarkAction, true), + new NextBookmarkAction(rtaPrevBookmarkAction, false), new NextVisualPositionAction(forwardAction, false, SwingConstants.EAST), + new NextVisualPositionAction(backwardAction, false, SwingConstants.WEST), + new NextVisualPositionAction(selectionForwardAction, true, SwingConstants.EAST), + new NextVisualPositionAction(selectionBackwardAction, true, SwingConstants.WEST), + new NextVisualPositionAction(upAction, false, SwingConstants.NORTH), + new NextVisualPositionAction(downAction, false, SwingConstants.SOUTH), + new NextVisualPositionAction(selectionUpAction, true, SwingConstants.NORTH), + new NextVisualPositionAction(selectionDownAction, true, SwingConstants.SOUTH), + new NextOccurrenceAction(rtaNextOccurrenceAction), new PreviousOccurrenceAction(rtaPrevOccurrenceAction), + new NextWordAction(nextWordAction, false), new NextWordAction(selectionNextWordAction, true), + new PageAction(rtaSelectionPageLeftAction, true, true), new PageAction(rtaSelectionPageRightAction, false, true), + new PasteAction(), new PlaybackLastMacroAction(), new PreviousWordAction(previousWordAction, false), + new PreviousWordAction(selectionPreviousWordAction, true), new RedoAction(), new ScrollAction(rtaScrollUpAction, -1), + new ScrollAction(rtaScrollDownAction, 1), new SelectAllAction(), new SelectLineAction(), new SelectWordAction(), + new SetReadOnlyAction(), new SetWritableAction(), new ToggleBookmarkAction(), new ToggleTextModeAction(), new UndoAction(), + new UnselectAction(), new UpperSelectionCaseAction(), new VerticalPageAction(pageUpAction, -1, false), + new VerticalPageAction(pageDownAction, 1, false), new VerticalPageAction(rtaSelectionPageUpAction, -1, true), + new VerticalPageAction(rtaSelectionPageDownAction, 1, true) }; /** * The amount of characters read at a time when reading a file. */ - private static final int READBUFFER_SIZE = 32768; - - + private static final int READBUFFER_SIZE = 32768; + /** * Constructor. */ public RTextAreaEditorKit() { super(); } - - + /** * Creates an icon row header to use in the gutter for a text area. * - * @param textArea The text area. + * @param textArea + * The text area. * @return The icon row header. */ public IconRowHeader createIconRowHeader(RTextArea textArea) { return new IconRowHeader(textArea); } - - + /** * Creates a line number list to use in the gutter for a text area. * - * @param textArea The text area. + * @param textArea + * The text area. * @return The line number list. */ public LineNumberList createLineNumberList(RTextArea textArea) { return new LineNumberList(textArea); } - - + /** * Fetches the set of commands that can be used * on a text component that is using a model and @@ -346,25 +266,27 @@ public class RTextAreaEditorKit extends DefaultEditorKit { public Action[] getActions() { return defaultActions; } - - + /** * Inserts content from the given stream, which will be - * treated as plain text. This method is overridden merely + * treated as plain text. This method is overridden merely * so we can increase the number of characters read at a time. * - * @param in The stream to read from - * @param doc The destination for the insertion. - * @param pos The location in the document to place the - * content >= 0. - * @exception IOException on any I/O error - * @exception BadLocationException if pos represents an invalid - * location within the document. - */ + * @param in + * The stream to read from + * @param doc + * The destination for the insertion. + * @param pos + * The location in the document to place the + * content >= 0. + * @exception IOException + * on any I/O error + * @exception BadLocationException + * if pos represents an invalid + * location within the document. + */ @Override - public void read(Reader in, Document doc, int pos) - throws IOException, BadLocationException { - + public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException { char[] buff = new char[READBUFFER_SIZE]; int nch; boolean lastWasCR = false; @@ -372,7 +294,6 @@ public class RTextAreaEditorKit extends DefaultEditorKit { boolean isCR = false; int last; boolean wasEmpty = (doc.getLength() == 0); - // Read in a block at a time, mapping \r\n to \n, as well as single // \r's to \n's. If a \r\n is encountered, \r\n will be set as the // newline string for the document, if \r is encountered it will @@ -388,20 +309,17 @@ public class RTextAreaEditorKit extends DefaultEditorKit { if (counter == 0) { doc.insertString(pos, "\n", null); pos++; - } - else { + } else { buff[counter - 1] = '\n'; } - } - else { + } else { lastWasCR = true; } break; case '\n': if (lastWasCR) { if (counter > (last + 1)) { - doc.insertString(pos, new String(buff, last, - counter - last - 1), null); + doc.insertString(pos, new String(buff, last, counter - last - 1), null); pos += (counter - last - 1); } // else nothing to do, can skip \r, next write will @@ -417,8 +335,7 @@ public class RTextAreaEditorKit extends DefaultEditorKit { if (counter == 0) { doc.insertString(pos, "\n", null); pos++; - } - else { + } else { buff[counter - 1] = '\n'; } lastWasCR = false; @@ -426,121 +343,102 @@ public class RTextAreaEditorKit extends DefaultEditorKit { break; } // End of switch (buff[counter]). } // End of for (int counter = 0; counter < nch; counter++). - if (last < nch) { - if(lastWasCR) { + if (lastWasCR) { if (last < (nch - 1)) { - doc.insertString(pos, new String(buff, last, - nch - last - 1), null); + doc.insertString(pos, new String(buff, last, nch - last - 1), null); pos += (nch - last - 1); } - } - else { - doc.insertString(pos, new String(buff, last, - nch - last), null); + } else { + doc.insertString(pos, new String(buff, last, nch - last), null); pos += (nch - last); } } - } // End of while ((nch = in.read(buff, 0, buff.length)) != -1). - if (lastWasCR) { doc.insertString(pos, "\n", null); isCR = true; } - if (wasEmpty) { if (isCRLF) { doc.putProperty(EndOfLineStringProperty, "\r\n"); - } - else if (isCR) { + } else if (isCR) { doc.putProperty(EndOfLineStringProperty, "\r"); - } - else { + } else { doc.putProperty(EndOfLineStringProperty, "\n"); } } - } - - + /** * Creates a beep. */ public static class BeepAction extends RecordableTextAction { - + public BeepAction() { super(beepAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } - + @Override public final String getMacroID() { return beepAction; } - } - - + /** * Moves the caret to the beginning of the document. */ public static class BeginAction extends RecordableTextAction { - - private boolean select; - + + private boolean select; + public BeginAction(String name, boolean select) { super(name); this.select = select; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { if (select) { textArea.moveCaretPosition(0); - } - else { + } else { textArea.setCaretPosition(0); } } - + @Override public final String getMacroID() { return getName(); } - } - - + /** * Toggles the position of the caret between the beginning of the line, * and the first non-whitespace character on the line. */ public static class BeginLineAction extends RecordableTextAction { - - private Segment currentLine = new Segment(); // For speed. - private boolean select; - + + private Segment currentLine = new Segment(); // For speed. + private boolean select; + public BeginLineAction(String name, boolean select) { super(name); this.select = select; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - int newPos = 0; - try { - // Is line wrap enabled? if (textArea.getLineWrap()) { int offs = textArea.getCaretPosition(); - // TODO: Replace Utilities call with custom version + // TODO: Replace Utilities call with custom version // to cut down on all of the modelToViews, as each call // causes TokenList => expensive! int begOffs = Utilities.getRowStart(textArea, offs); @@ -549,10 +447,8 @@ public class RTextAreaEditorKit extends DefaultEditorKit { // of the line line the no-line-wrap version does. newPos = begOffs; } - // No line wrap - optimized for performance! else { - // We use the elements instead of calling // getLineOfOffset(), etc. to speed things up just a // tad (i.e. micro-optimize). @@ -564,104 +460,91 @@ public class RTextAreaEditorKit extends DefaultEditorKit { int currentLineStart = currentLineElement.getStartOffset(); int currentLineEnd = currentLineElement.getEndOffset(); int count = currentLineEnd - currentLineStart; - if (count>0) { // If there are chars in the line... + if (count > 0) { // If there are chars in the line... document.getText(currentLineStart, count, currentLine); int firstNonWhitespace = getFirstNonWhitespacePos(); - firstNonWhitespace = currentLineStart + - (firstNonWhitespace - currentLine.offset); - if (caretPosition!=firstNonWhitespace) { + firstNonWhitespace = currentLineStart + (firstNonWhitespace - currentLine.offset); + if (caretPosition != firstNonWhitespace) { newPos = firstNonWhitespace; - } - else { + } else { newPos = currentLineStart; } - } - else { // Empty line (at end of the document only). + } else { // Empty line (at end of the document only). newPos = currentLineStart; } - } - if (select) { textArea.moveCaretPosition(newPos); - } - else { + } else { textArea.setCaretPosition(newPos); } - //e.consume(); - + // e.consume(); } catch (BadLocationException ble) { /* Shouldn't ever happen. */ UIManager.getLookAndFeel().provideErrorFeedback(textArea); ble.printStackTrace(); } - } - + private int getFirstNonWhitespacePos() { int offset = currentLine.offset; int end = offset + currentLine.count - 1; int pos = offset; char[] array = currentLine.array; char currentChar = array[pos]; - while ((currentChar=='\t' || currentChar==' ') && (++pos=MINIMUM_SIZE) { + if (newSize >= MINIMUM_SIZE) { // Shrink by decreaseAmount. font = font.deriveFont(newSize); textArea.setFont(font); - } - else if (oldSize>MINIMUM_SIZE) { + } else if (oldSize > MINIMUM_SIZE) { // Can't shrink by full decreaseAmount, but can shrink a // little bit. font = font.deriveFont(MINIMUM_SIZE); textArea.setFont(font); - } - else { + } else { // Our font size must be at or below MINIMUM_SIZE. UIManager.getLookAndFeel().provideErrorFeedback(textArea); } textArea.requestFocusInWindow(); } - + @Override public final String getMacroID() { return rtaDecreaseFontSizeAction; } - + protected void initialize() { decreaseAmount = 1.0f; } - } - - + /** * The action to use when no actions in the input/action map meet the key - * pressed. This is actually called from the keymap I believe. + * pressed. This is actually called from the keymap I believe. */ public static class DefaultKeyTypedAction extends RecordableTextAction { - + private Action delegate; - + public DefaultKeyTypedAction() { - super(DefaultEditorKit.defaultKeyTypedAction, null, null, null, - null); + super(DefaultEditorKit.defaultKeyTypedAction, null, null, null, null); delegate = new DefaultEditorKit.DefaultKeyTypedAction(); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { // DefaultKeyTypedAction *is* different across different JVM's // (at least the OSX implementation must be different - Alt+Numbers // inputs symbols such as '[', '{', etc., which is a *required* // feature on MacBooks running with non-English input, such as - // German or Swedish Pro). So we can't just copy the + // German or Swedish Pro). So we can't just copy the // implementation, we must delegate to it. delegate.actionPerformed(e); } - + @Override public final String getMacroID() { return DefaultEditorKit.defaultKeyTypedAction; } - } - - + /** * Deletes the current line(s). */ public static class DeleteLineAction extends RecordableTextAction { - + public DeleteLineAction() { - super(RTextAreaEditorKit.rtaDeleteLineAction, null, null, null, - null); + super(RTextAreaEditorKit.rtaDeleteLineAction, null, null, null, null); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - if (!textArea.isEditable() || !textArea.isEnabled()) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - int selStart = textArea.getSelectionStart(); - int selEnd = textArea.getSelectionEnd(); - + int selEnd = textArea.getSelectionEnd(); try { - - int line1 = textArea.getLineOfOffset(selStart); + int line1 = textArea.getLineOfOffset(selStart); int startOffs = textArea.getLineStartOffset(line1); - int line2 = textArea.getLineOfOffset(selEnd); - int endOffs = textArea.getLineEndOffset(line2); - + int line2 = textArea.getLineOfOffset(selEnd); + int endOffs = textArea.getLineEndOffset(line2); // Don't remove the last line if no actual chars are selected - if (line2>line1) { - if (selEnd==textArea.getLineStartOffset(line2)) { + if (line2 > line1) { + if (selEnd == textArea.getLineStartOffset(line2)) { endOffs = selEnd; } } - textArea.replaceRange(null, startOffs, endOffs); - } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens } - } - + @Override public final String getMacroID() { return RTextAreaEditorKit.rtaDeleteLineAction; } - } - - + /** * Deletes the character of content that follows the current caret * position. */ public static class DeleteNextCharAction extends RecordableTextAction { - + public DeleteNextCharAction() { - super(DefaultEditorKit.deleteNextCharAction, null, null, - null, null); + super(DefaultEditorKit.deleteNextCharAction, null, null, null, null); } - - public DeleteNextCharAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public DeleteNextCharAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - boolean beep = true; if (textArea != null && textArea.isEditable()) { try { @@ -950,55 +797,47 @@ public class RTextAreaEditorKit extends DefaultEditorKit { if (dot != mark) { doc.remove(Math.min(dot, mark), Math.abs(dot - mark)); beep = false; - } - else if (dot < doc.getLength()) { + } else if (dot < doc.getLength()) { int delChars = 1; if (dot < doc.getLength() - 1) { String dotChars = doc.getText(dot, 2); char c0 = dotChars.charAt(0); char c1 = dotChars.charAt(1); - if (c0 >= '\uD800' && c0 <= '\uDBFF' && - c1 >= '\uDC00' && c1 <= '\uDFFF') { + if (c0 >= '\uD800' && c0 <= '\uDBFF' && c1 >= '\uDC00' && c1 <= '\uDFFF') { delChars = 2; } } doc.remove(dot, delChars); beep = false; } - } catch (BadLocationException bl) { - } + } catch (BadLocationException bl) {} } - if (beep) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } - if (textArea != null) { - textArea.requestFocusInWindow(); - } - + if (textArea != null) { + textArea.requestFocusInWindow(); + } } - + @Override public final String getMacroID() { return DefaultEditorKit.deleteNextCharAction; } - } - - + /** * Deletes the character of content that precedes the current caret * position. */ public static class DeletePrevCharAction extends RecordableTextAction { - + public DeletePrevCharAction() { super(deletePrevCharAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - boolean beep = true; if (textArea != null && textArea.isEditable()) { try { @@ -1009,48 +848,41 @@ public class RTextAreaEditorKit extends DefaultEditorKit { if (dot != mark) { doc.remove(Math.min(dot, mark), Math.abs(dot - mark)); beep = false; - } - else if (dot > 0) { + } else if (dot > 0) { int delChars = 1; if (dot > 1) { String dotChars = doc.getText(dot - 2, 2); char c0 = dotChars.charAt(0); char c1 = dotChars.charAt(1); - if (c0 >= '\uD800' && c0 <= '\uDBFF' && - c1 >= '\uDC00' && c1 <= '\uDFFF') { + if (c0 >= '\uD800' && c0 <= '\uDBFF' && c1 >= '\uDC00' && c1 <= '\uDFFF') { delChars = 2; } } doc.remove(dot - delChars, delChars); beep = false; } - } catch (BadLocationException bl) { - } + } catch (BadLocationException bl) {} } - if (beep) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } - } - + @Override public final String getMacroID() { return DefaultEditorKit.deletePrevCharAction; } - } - - + /** * Action that deletes the previous word in the text area. */ public static class DeletePrevWordAction extends RecordableTextAction { - + public DeletePrevWordAction() { super(rtaDeletePrevWordAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { if (!textArea.isEditable() || !textArea.isEnabled()) { @@ -1060,46 +892,41 @@ public class RTextAreaEditorKit extends DefaultEditorKit { try { int end = textArea.getSelectionStart(); int start = getPreviousWordStart(textArea, end); - if (end>start) { - textArea.getDocument().remove(start, end-start); + if (end > start) { + textArea.getDocument().remove(start, end - start); } } catch (BadLocationException ex) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } } - + @Override public String getMacroID() { return rtaDeletePrevWordAction; } - + /** - * Returns the starting offset to delete. Exists so subclasses can + * Returns the starting offset to delete. Exists so subclasses can * override. */ - protected int getPreviousWordStart(RTextArea textArea, int end) - throws BadLocationException { + protected int getPreviousWordStart(RTextArea textArea, int end) throws BadLocationException { return Utilities.getPreviousWord(textArea, end); } - } - - + /** * Action that deletes all text from the caret position to the end of the * caret's line. */ public static class DeleteRestOfLineAction extends RecordableTextAction { - + public DeleteRestOfLineAction() { super(rtaDeleteRestOfLineAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - try { - // We use the elements instead of calling getLineOfOffset(), // etc. to speed things up just a tad (i.e. micro-optimize). Document document = textArea.getDocument(); @@ -1108,62 +935,52 @@ public class RTextAreaEditorKit extends DefaultEditorKit { int currentLineNum = map.getElementIndex(caretPosition); Element currentLineElement = map.getElement(currentLineNum); // Always take -1 as we don't want to remove the newline. - int currentLineEnd = currentLineElement.getEndOffset()-1; - if (caretPosition 0) { int wordStart = 0; try { wordStart = getPreviousWord(textArea, searchOffs); } catch (BadLocationException ble) { - // No more words. Sometimes happens for example if the + // No more words. Sometimes happens for example if the // document starts off with whitespace - then searchOffs // is > 0 but there are no more words wordStart = BreakIterator.DONE; } - if (wordStart==BreakIterator.DONE) { - UIManager.getLookAndFeel().provideErrorFeedback( - textArea); + if (wordStart == BreakIterator.DONE) { + UIManager.getLookAndFeel().provideErrorFeedback(textArea); break; } int end = getWordEnd(textArea, wordStart); @@ -1200,98 +1015,88 @@ searchOffs = Math.max(lastWordStart - 1, 0); break; } } - } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); } - } - + @Override public final String getMacroID() { return getName(); } - - protected int getPreviousWord(RTextArea textArea, int offs) - throws BadLocationException { + + protected int getPreviousWord(RTextArea textArea, int offs) throws BadLocationException { return Utilities.getPreviousWord(textArea, offs); } - - protected int getWordEnd(RTextArea textArea, int offs) - throws BadLocationException { + + protected int getWordEnd(RTextArea textArea, int offs) throws BadLocationException { return Utilities.getWordEnd(textArea, offs); } - - protected int getWordStart(RTextArea textArea, int offs) - throws BadLocationException { + + protected int getWordStart(RTextArea textArea, int offs) throws BadLocationException { return Utilities.getWordStart(textArea, offs); } - + /** * Utilities.getWordStart() treats spans of whitespace and - * single non-letter chars as "words." This method is used to filter + * single non-letter chars as "words." This method is used to filter * that kind of thing out - non-words should not be suggested by this * action. * - * @param prefix The prefix characters before the caret. + * @param prefix + * The prefix characters before the caret. * @return Whether the prefix could be part of a "word" in the context * of the text area's current content. */ protected boolean isAcceptablePrefix(String prefix) { - return prefix.length() > 0 && - Character.isLetter(prefix.charAt(prefix.length()-1)); + return prefix.length() > 0 && Character.isLetter(prefix.charAt(prefix.length() - 1)); } - } - - + /** * Moves the caret to the end of the document. */ public static class EndAction extends RecordableTextAction { - - private boolean select; - + + private boolean select; + public EndAction(String name, boolean select) { super(name); this.select = select; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { int dot = getVisibleEnd(textArea); if (select) { textArea.moveCaretPosition(dot); - } - else { + } else { textArea.setCaretPosition(dot); } } - + @Override public final String getMacroID() { return getName(); } - + protected int getVisibleEnd(RTextArea textArea) { return textArea.getDocument().getLength(); } - } - - + /** * Positions the caret at the end of the line. */ public static class EndLineAction extends RecordableTextAction { - - private boolean select; - + + private boolean select; + public EndLineAction(String name, boolean select) { super(name); this.select = select; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { int offs = textArea.getCaretPosition(); @@ -1300,79 +1105,72 @@ searchOffs = Math.max(lastWordStart - 1, 0); if (textArea.getLineWrap()) { // Must check per character, since one logical line may be // many physical lines. - // FIXME: Replace Utilities call with custom version to + // FIXME: Replace Utilities call with custom version to // cut down on all of the modelToViews, as each call causes // a getTokenList => expensive! endOffs = Utilities.getRowEnd(textArea, offs); - } - else { + } else { Element root = textArea.getDocument().getDefaultRootElement(); int line = root.getElementIndex(offs); endOffs = root.getElement(line).getEndOffset() - 1; } if (select) { textArea.moveCaretPosition(endOffs); - } - else { + } else { textArea.setCaretPosition(endOffs); } } catch (Exception ex) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } } - + @Override public final String getMacroID() { return getName(); } - } - - + /** * Action that ends recording a macro. */ public static class EndRecordingMacroAction extends RecordableTextAction { - + public EndRecordingMacroAction() { super(rtaEndRecordingMacroAction); } - - public EndRecordingMacroAction(String name, Icon icon, - String desc, Integer mnemonic, KeyStroke accelerator) { + + public EndRecordingMacroAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { RTextArea.endRecordingMacro(); } - + @Override public final String getMacroID() { return rtaEndRecordingMacroAction; } - + @Override public boolean isRecordable() { return false; // Never record the recording of a macro! } - } - - + /** * Positions the caret at the end of the word. */ protected static class EndWordAction extends RecordableTextAction { - - private boolean select; - + + private boolean select; + protected EndWordAction(String name, boolean select) { super(name); this.select = select; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { try { @@ -1380,92 +1178,82 @@ searchOffs = Math.max(lastWordStart - 1, 0); int endOffs = getWordEnd(textArea, offs); if (select) { textArea.moveCaretPosition(endOffs); - } - else { + } else { textArea.setCaretPosition(endOffs); } } catch (BadLocationException ble) { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } } - + @Override public final String getMacroID() { return getName(); } - - protected int getWordEnd(RTextArea textArea, int offs) - throws BadLocationException { + + protected int getWordEnd(RTextArea textArea, int offs) throws BadLocationException { return Utilities.getWordEnd(textArea, offs); } - } - - + /** * Action for increasing the font size. */ public static class IncreaseFontSizeAction extends RecordableTextAction { - + protected float increaseAmount; - - protected static final float MAXIMUM_SIZE = 40.0f; - + protected static final float MAXIMUM_SIZE = 40.0f; + public IncreaseFontSizeAction() { super(rtaIncreaseFontSizeAction); initialize(); } - - public IncreaseFontSizeAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public IncreaseFontSizeAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); initialize(); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { Font font = textArea.getFont(); float oldSize = font.getSize2D(); float newSize = oldSize + increaseAmount; - if (newSize<=MAXIMUM_SIZE) { + if (newSize <= MAXIMUM_SIZE) { // Grow by increaseAmount. font = font.deriveFont(newSize); textArea.setFont(font); - } - else if (oldSize0) { + if (moveAmt == -1 && startLine > 0) { moveLineUp(textArea, startLine, moveCount); - } - else if (moveAmt==1 && endLine < root.getElementCount()-1) { + } else if (moveAmt == 1 && endLine < root.getElementCount() - 1) { moveLineDown(textArea, startLine, moveCount); - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } @@ -1697,68 +1464,54 @@ searchOffs = Math.max(lastWordStart - 1, 0); return; } } - + @Override public final String getMacroID() { return getName(); } - - private void moveLineDown(RTextArea textArea, int line, int lineCount) - throws BadLocationException { - + + private void moveLineDown(RTextArea textArea, int line, int lineCount) throws BadLocationException { // If we'd be moving lines past the end of the document, stop. // We could perhaps just decide to move the lines to the end of the // file, but this just keeps things simple. -// if (textArea.getLineCount() - line < lineCount) { -// UIManager.getLookAndFeel().provideErrorFeedback(textArea); -// return; -// } - + // if (textArea.getLineCount() - line < lineCount) { + // UIManager.getLookAndFeel().provideErrorFeedback(textArea); + // return; + // } Document doc = textArea.getDocument(); Element root = doc.getDefaultRootElement(); Element elem = root.getElement(line); int start = elem.getStartOffset(); - int endLine = line + lineCount - 1; elem = root.getElement(endLine); int end = elem.getEndOffset(); - textArea.beginAtomicEdit(); try { - String text = doc.getText(start, end - start); doc.remove(start, end - start); - int insertLine = Math.min(line + 1, textArea.getLineCount()); boolean newlineInserted = false; if (insertLine == textArea.getLineCount()) { textArea.append("\n"); newlineInserted = true; } - int insertOffs = textArea.getLineStartOffset(insertLine); doc.insertString(insertOffs, text, null); textArea.setSelectionStart(insertOffs); textArea.setSelectionEnd(insertOffs + text.length() - 1); - if (newlineInserted) { doc.remove(doc.getLength() - 1, 1); } - } finally { textArea.endAtomicEdit(); } - } - - private void moveLineUp(RTextArea textArea, int line, int moveCount) - throws BadLocationException { - + + private void moveLineUp(RTextArea textArea, int line, int moveCount) throws BadLocationException { Document doc = textArea.getDocument(); Element root = doc.getDefaultRootElement(); Element elem = root.getElement(line); int start = elem.getStartOffset(); - int endLine = line + moveCount - 1; elem = root.getElement(endLine); int end = elem.getEndOffset(); @@ -1768,18 +1521,14 @@ searchOffs = Math.max(lastWordStart - 1, 0); movingLastLine = true; end--; } - int insertLine = Math.max(line - 1, 0); - textArea.beginAtomicEdit(); try { - String text = doc.getText(start, end - start); if (movingLastLine) { text += '\n'; } doc.remove(start, end - start); - int insertOffs = textArea.getLineStartOffset(insertLine); doc.insertString(insertOffs, text, null); textArea.setSelectionStart(insertOffs); @@ -1788,25 +1537,21 @@ searchOffs = Math.max(lastWordStart - 1, 0); if (movingLastLine) { // Remove the artifically-added newline doc.remove(doc.getLength() - 1, 1); } - } finally { textArea.endAtomicEdit(); } - } - } - - + /** * Action to make the selection lower-case. */ public static class LowerSelectionCaseAction extends RecordableTextAction { - + public LowerSelectionCaseAction() { super(rtaLowerSelectionCaseAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { if (!textArea.isEditable() || !textArea.isEnabled()) { @@ -1814,117 +1559,101 @@ searchOffs = Math.max(lastWordStart - 1, 0); return; } String selection = textArea.getSelectedText(); - if (selection!=null) { + if (selection != null) { textArea.replaceSelection(selection.toLowerCase()); } textArea.requestFocusInWindow(); } - + @Override public final String getMacroID() { return getName(); } - } - - + /** * Action that moves the caret to the next (or previous) bookmark. */ public static class NextBookmarkAction extends RecordableTextAction { - + private boolean forward; - + public NextBookmarkAction(String name, boolean forward) { super(name); this.forward = forward; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - Gutter gutter = RSyntaxUtilities.getGutter(textArea); - if (gutter!=null) { - + if (gutter != null) { try { - GutterIconInfo[] bookmarks = gutter.getBookmarks(); - if (bookmarks.length==0) { - UIManager.getLookAndFeel(). - provideErrorFeedback(textArea); + if (bookmarks.length == 0) { + UIManager.getLookAndFeel().provideErrorFeedback(textArea); return; } - GutterIconInfo moveTo = null; int curLine = textArea.getCaretLineNumber(); - if (forward) { - for (int i=0; icurLine) { + if (line > curLine) { moveTo = bookmark; break; } } - if (moveTo==null) { // Loop back to beginning + if (moveTo == null) { // Loop back to beginning moveTo = bookmarks[0]; } - } - else { - for (int i=bookmarks.length-1; i>=0; i--) { + } else { + for (int i = bookmarks.length - 1; i >= 0; i--) { GutterIconInfo bookmark = bookmarks[i]; int offs = bookmark.getMarkedOffset(); int line = textArea.getLineOfOffset(offs); - if (line= curPara.getEndOffset() && - oldOffs != curPara.getEndOffset() - 1) { + if (offs >= curPara.getEndOffset() && oldOffs != curPara.getEndOffset() - 1) { // we should first move to the end of current paragraph // http://bugs.sun.com/view_bug.do?bug_id=4278839 offs = curPara.getEndOffset() - 1; @@ -2080,170 +1783,144 @@ searchOffs = Math.max(lastWordStart - 1, 0); } catch (BadLocationException ble) { int end = textArea.getDocument().getLength(); if (offs != end) { - if(oldOffs != curPara.getEndOffset() - 1) { + if (oldOffs != curPara.getEndOffset() - 1) { offs = curPara.getEndOffset() - 1; - } - else { + } else { offs = end; } } } - if (select) { textArea.moveCaretPosition(offs); - } - else { + } else { textArea.setCaretPosition(offs); } - } - + @Override public final String getMacroID() { return getName(); } - - protected int getNextWord(RTextArea textArea, int offs) - throws BadLocationException { + + protected int getNextWord(RTextArea textArea, int offs) throws BadLocationException { return Utilities.getNextWord(textArea, offs); } - } - - + /** * Pages one view to the left or right. */ static class PageAction extends RecordableTextAction { - + private boolean select; private boolean left; - + PageAction(String name, boolean left, boolean select) { super(name); this.select = select; this.left = left; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - int selectedIndex; Rectangle visible = new Rectangle(); textArea.computeVisibleRect(visible); if (left) { visible.x = Math.max(0, visible.x - visible.width); - } - else { + } else { visible.x += visible.width; } - selectedIndex = textArea.getCaretPosition(); - if(selectedIndex != -1) { + if (selectedIndex != -1) { if (left) { - selectedIndex = textArea.viewToModel( - new Point(visible.x, visible.y)); - } - else { - selectedIndex = textArea.viewToModel( - new Point(visible.x + visible.width - 1, - visible.y + visible.height - 1)); + selectedIndex = textArea.viewToModel(new Point(visible.x, visible.y)); + } else { + selectedIndex = textArea.viewToModel(new Point(visible.x + visible.width - 1, visible.y + visible.height - 1)); } Document doc = textArea.getDocument(); - if ((selectedIndex != 0) && - (selectedIndex > (doc.getLength()-1))) { - selectedIndex = doc.getLength()-1; - } - else if(selectedIndex < 0) { + if ((selectedIndex != 0) && (selectedIndex > (doc.getLength() - 1))) { + selectedIndex = doc.getLength() - 1; + } else if (selectedIndex < 0) { selectedIndex = 0; } if (select) { textArea.moveCaretPosition(selectedIndex); - } - else { + } else { textArea.setCaretPosition(selectedIndex); } } - } - + @Override public final String getMacroID() { return getName(); } - } - - + /** * Action for pasting text. */ public static class PasteAction extends RecordableTextAction { - - public PasteAction() { + + public PasteAction() { super(DefaultEditorKit.pasteAction); } - - public PasteAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public PasteAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { textArea.paste(); textArea.requestFocusInWindow(); } - + @Override public final String getMacroID() { return DefaultEditorKit.pasteAction; } - } - - + /** * "Plays back" the last macro recorded. */ public static class PlaybackLastMacroAction extends RecordableTextAction { - + public PlaybackLastMacroAction() { super(rtaPlaybackLastMacroAction); } - - public PlaybackLastMacroAction(String name, Icon icon, - String desc, Integer mnemonic, KeyStroke accelerator) { + + public PlaybackLastMacroAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { textArea.playbackLastMacro(); } - + @Override public boolean isRecordable() { return false; // Don't record macro playbacks. } - + @Override public final String getMacroID() { return rtaPlaybackLastMacroAction; } - } - - + /** * Select the previous occurrence of the text last selected. */ public static class PreviousOccurrenceAction extends RecordableTextAction { - + public PreviousOccurrenceAction(String name) { super(name); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { String selectedText = textArea.getSelectedText(); @@ -2264,91 +1941,76 @@ searchOffs = Math.max(lastWordStart - 1, 0); } RTextArea.setSelectedOccurrenceText(selectedText); } - + @Override public final String getMacroID() { return getName(); } - } - - - /** - * Positions the caret at the beginning of the previous word. - */ - public static class PreviousWordAction extends RecordableTextAction { - - private boolean select; - + + /** + * Positions the caret at the beginning of the previous word. + */ + public static class PreviousWordAction extends RecordableTextAction { + + private boolean select; + public PreviousWordAction(String name, boolean select) { super(name); this.select = select; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - int offs = textArea.getCaretPosition(); boolean failed = false; try { - Element curPara = Utilities.getParagraphElement(textArea, offs); offs = getPreviousWord(textArea, offs); - if(offs < curPara.getStartOffset()) { - offs = Utilities.getParagraphElement(textArea, offs). - getEndOffset() - 1; + if (offs < curPara.getStartOffset()) { + offs = Utilities.getParagraphElement(textArea, offs).getEndOffset() - 1; } - } catch (BadLocationException bl) { if (offs != 0) { offs = 0; - } - else { + } else { failed = true; } } - if (!failed) { if (select) { textArea.moveCaretPosition(offs); - } - else { + } else { textArea.setCaretPosition(offs); } - } - else { + } else { UIManager.getLookAndFeel().provideErrorFeedback(textArea); } - } - + @Override public final String getMacroID() { return getName(); } - - protected int getPreviousWord(RTextArea textArea, int offs) - throws BadLocationException { + + protected int getPreviousWord(RTextArea textArea, int offs) throws BadLocationException { return Utilities.getPreviousWord(textArea, offs); } - } - - + /** * Re-does the last action undone. */ public static class RedoAction extends RecordableTextAction { - + public RedoAction() { super(rtaRedoAction); } - - public RedoAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public RedoAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { if (textArea.isEnabled() && textArea.isEditable()) { @@ -2356,216 +2018,197 @@ searchOffs = Math.max(lastWordStart - 1, 0); textArea.requestFocusInWindow(); } } - + @Override public final String getMacroID() { return rtaRedoAction; } - } - - + /** * Scrolls the text area one line up or down, without changing * the caret position. */ public static class ScrollAction extends RecordableTextAction { - + private int delta; - + public ScrollAction(String name, int delta) { super(name); this.delta = delta; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { Container parent = textArea.getParent(); if (parent instanceof JViewport) { - JViewport viewport = (JViewport)parent; + JViewport viewport = (JViewport) parent; Point p = viewport.getViewPosition(); - p.y += delta*textArea.getLineHeight(); - if (p.y<0) { + p.y += delta * textArea.getLineHeight(); + if (p.y < 0) { p.y = 0; - } - else { + } else { Rectangle viewRect = viewport.getViewRect(); int visibleEnd = p.y + viewRect.height; - if (visibleEnd>=textArea.getHeight()) { + if (visibleEnd >= textArea.getHeight()) { p.y = textArea.getHeight() - viewRect.height; } } viewport.setViewPosition(p); } } - + @Override public final String getMacroID() { return getName(); } - } - - + /** * Selects the entire document. */ public static class SelectAllAction extends RecordableTextAction { - + public SelectAllAction() { super(selectAllAction); } - - public SelectAllAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public SelectAllAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { Document doc = textArea.getDocument(); textArea.setCaretPosition(0); textArea.moveCaretPosition(doc.getLength()); } - + @Override public final String getMacroID() { return DefaultEditorKit.selectAllAction; } - } - - + /** * Selects the line around the caret. */ public static class SelectLineAction extends RecordableTextAction { - - private Action start; + + private Action start; private Action end; - + public SelectLineAction() { super(selectLineAction); start = new BeginLineAction("pigdog", false); end = new EndLineAction("pigdog", true); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { start.actionPerformed(e); end.actionPerformed(e); } - + @Override public final String getMacroID() { return DefaultEditorKit.selectLineAction; } - } - - + /** * Selects the word around the caret. */ public static class SelectWordAction extends RecordableTextAction { - - protected Action start; + + protected Action start; protected Action end; - + public SelectWordAction() { super(selectWordAction); createActions(); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { start.actionPerformed(e); end.actionPerformed(e); } - + protected void createActions() { start = new BeginWordAction("pigdog", false); end = new EndWordAction("pigdog", true); } - + @Override public final String getMacroID() { return DefaultEditorKit.selectWordAction; } - } - - + /** * Puts the text area into read-only mode. */ public static class SetReadOnlyAction extends RecordableTextAction { - - + public SetReadOnlyAction() { super(readOnlyAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { textArea.setEditable(false); } - + @Override public final String getMacroID() { return DefaultEditorKit.readOnlyAction; } - + @Override public boolean isRecordable() { return false; // Why would you want to record this? } - } - - + /** * Puts the text area into writable (from read-only) mode. */ public static class SetWritableAction extends RecordableTextAction { - + public SetWritableAction() { super(writableAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { textArea.setEditable(true); } - + @Override public final String getMacroID() { return DefaultEditorKit.writableAction; } - + @Override public boolean isRecordable() { return false; // Why would you want to record this? } - } - - + /** * The action for inserting a time/date stamp. */ public static class TimeDateAction extends RecordableTextAction { - - + public TimeDateAction() { super(rtaTimeDateAction); } - - public TimeDateAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public TimeDateAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { if (!textArea.isEditable() || !textArea.isEnabled()) { @@ -2577,89 +2220,80 @@ searchOffs = Math.max(lastWordStart - 1, 0); String dateString = timeDateStamp.format(today); textArea.replaceSelection(dateString); } - + @Override public final String getMacroID() { return rtaTimeDateAction; } - } - - + /** * Toggles whether the current line has a bookmark. */ public static class ToggleBookmarkAction extends RecordableTextAction { - + public ToggleBookmarkAction() { super(rtaToggleBookmarkAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { Gutter gutter = RSyntaxUtilities.getGutter(textArea); - if (gutter!=null) { + if (gutter != null) { int line = textArea.getCaretLineNumber(); try { gutter.toggleBookmark(line); } catch (BadLocationException ble) { // Never happens - UIManager.getLookAndFeel(). - provideErrorFeedback(textArea); + UIManager.getLookAndFeel().provideErrorFeedback(textArea); ble.printStackTrace(); } } } - + @Override public final String getMacroID() { return rtaToggleBookmarkAction; } - } - - + /** * The action for the insert key toggling insert/overwrite modes. */ public static class ToggleTextModeAction extends RecordableTextAction { - + public ToggleTextModeAction() { super(rtaToggleTextModeAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { int textMode = textArea.getTextMode(); - if (textMode==RTextArea.INSERT_MODE) { + if (textMode == RTextArea.INSERT_MODE) { textArea.setTextMode(RTextArea.OVERWRITE_MODE); - } - else { + } else { textArea.setTextMode(RTextArea.INSERT_MODE); } } - + @Override public final String getMacroID() { return rtaToggleTextModeAction; } - } - - + /** * Undoes the last action done. */ public static class UndoAction extends RecordableTextAction { - - public UndoAction() { + + public UndoAction() { super(rtaUndoAction); } - - public UndoAction(String name, Icon icon, String desc, - Integer mnemonic, KeyStroke accelerator) { + + public UndoAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) { super(name, icon, desc, mnemonic, accelerator); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { if (textArea.isEnabled() && textArea.isEditable()) { @@ -2667,46 +2301,42 @@ searchOffs = Math.max(lastWordStart - 1, 0); textArea.requestFocusInWindow(); } } - + @Override public final String getMacroID() { return rtaUndoAction; } - } - - + /** * Removes the selection, if any. */ public static class UnselectAction extends RecordableTextAction { - + public UnselectAction() { super(rtaUnselectAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { textArea.setCaretPosition(textArea.getCaretPosition()); } - + @Override public final String getMacroID() { return rtaUnselectAction; } - } - - + /** * Action to make the selection upper-case. */ public static class UpperSelectionCaseAction extends RecordableTextAction { - + public UpperSelectionCaseAction() { super(rtaUpperSelectionCaseAction); } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { if (!textArea.isEditable() || !textArea.isEnabled()) { @@ -2714,78 +2344,62 @@ searchOffs = Math.max(lastWordStart - 1, 0); return; } String selection = textArea.getSelectedText(); - if (selection!=null) { + if (selection != null) { textArea.replaceSelection(selection.toUpperCase()); } textArea.requestFocusInWindow(); } - + @Override public final String getMacroID() { return getName(); } - } - - + /** - * Scrolls up/down vertically. The select version of this action extends + * Scrolls up/down vertically. The select version of this action extends * the selection, instead of simply moving the caret. */ public static class VerticalPageAction extends RecordableTextAction { - + private boolean select; private int direction; - + public VerticalPageAction(String name, int direction, boolean select) { super(name); this.select = select; this.direction = direction; } - + @Override public void actionPerformedImpl(ActionEvent e, RTextArea textArea) { - Rectangle visible = textArea.getVisibleRect(); Rectangle newVis = new Rectangle(visible); int selectedIndex = textArea.getCaretPosition(); - int scrollAmount = textArea.getScrollableBlockIncrement( - visible, SwingConstants.VERTICAL, direction); + int scrollAmount = textArea.getScrollableBlockIncrement(visible, SwingConstants.VERTICAL, direction); int initialY = visible.y; Caret caret = textArea.getCaret(); Point magicPosition = caret.getMagicCaretPosition(); int yOffset; - - if (selectedIndex!=-1) { - + if (selectedIndex != -1) { try { - Rectangle dotBounds = textArea.modelToView(selectedIndex); - int x = (magicPosition != null) ? magicPosition.x : - dotBounds.x; + int x = (magicPosition != null) ? magicPosition.x : dotBounds.x; int h = dotBounds.height; - yOffset = direction * - ((int)Math.ceil(scrollAmount/(double)h)-1)*h; - newVis.y = constrainY(textArea, initialY+yOffset, yOffset, visible.height); + yOffset = direction * ((int) Math.ceil(scrollAmount / (double) h) - 1) * h; + newVis.y = constrainY(textArea, initialY + yOffset, yOffset, visible.height); int newIndex; - if (visible.contains(dotBounds.x, dotBounds.y)) { // Dot is currently visible, base the new // location off the old, or - newIndex = textArea.viewToModel( - new Point(x, constrainY(textArea, - dotBounds.y + yOffset, 0, 0))); - } - else { + newIndex = textArea.viewToModel(new Point(x, constrainY(textArea, dotBounds.y + yOffset, 0, 0))); + } else { // Dot isn't visible, choose the top or the bottom // for the new location. if (direction == -1) { - newIndex = textArea.viewToModel(new Point( - x, newVis.y)); - } - else { - newIndex = textArea.viewToModel(new Point( - x, newVis.y + visible.height)); + newIndex = textArea.viewToModel(new Point(x, newVis.y)); + } else { + newIndex = textArea.viewToModel(new Point(x, newVis.y + visible.height)); } } newIndex = constrainOffset(textArea, newIndex); @@ -2793,85 +2407,68 @@ searchOffs = Math.max(lastWordStart - 1, 0); // Make sure the new visible location contains // the location of dot, otherwise Caret will // cause an additional scroll. - adjustScrollIfNecessary(textArea, newVis, initialY, - newIndex); + adjustScrollIfNecessary(textArea, newVis, initialY, newIndex); if (select) { textArea.moveCaretPosition(newIndex); - } - else { + } else { textArea.setCaretPosition(newIndex); } } - - } catch (BadLocationException ble) { } - + } catch (BadLocationException ble) {} } // End of if (selectedIndex!=-1). - else { yOffset = direction * scrollAmount; newVis.y = constrainY(textArea, initialY + yOffset, yOffset, visible.height); } - if (magicPosition != null) { caret.setMagicCaretPosition(magicPosition); } - textArea.scrollRectToVisible(newVis); } - + private int constrainY(JTextComponent textArea, int y, int vis, int screenHeight) { if (y < 0) { y = 0; - } - else if (y + vis > textArea.getHeight()) { - //y = Math.max(0, textArea.getHeight() - vis); - y = Math.max(0, textArea.getHeight()-screenHeight); + } else if (y + vis > textArea.getHeight()) { + // y = Math.max(0, textArea.getHeight() - vis); + y = Math.max(0, textArea.getHeight() - screenHeight); } return y; } - + private int constrainOffset(JTextComponent text, int offset) { Document doc = text.getDocument(); if ((offset != 0) && (offset > doc.getLength())) { offset = doc.getLength(); } - if (offset < 0) { + if (offset < 0) { offset = 0; } return offset; } - - private void adjustScrollIfNecessary(JTextComponent text, - Rectangle visible, int initialY, - int index) { + + private void adjustScrollIfNecessary(JTextComponent text, Rectangle visible, int initialY, int index) { try { Rectangle dotBounds = text.modelToView(index); - if (dotBounds.y < visible.y || - (dotBounds.y > (visible.y + visible.height)) || - (dotBounds.y + dotBounds.height) > - (visible.y + visible.height)) { + if (dotBounds.y < visible.y || (dotBounds.y > (visible.y + visible.height)) + || (dotBounds.y + dotBounds.height) > (visible.y + visible.height)) { int y; if (dotBounds.y < visible.y) { y = dotBounds.y; - } - else { + } else { y = dotBounds.y + dotBounds.height - visible.height; } - if ((direction == -1 && y < initialY) || - (direction == 1 && y > initialY)) { + if ((direction == -1 && y < initialY) || (direction == 1 && y > initialY)) { // Only adjust if won't cause scrolling upward. visible.y = y; } } } catch (BadLocationException ble) {} } - + @Override public final String getMacroID() { return getName(); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RTextAreaHighlighter.java b/src/org/fife/ui/rtextarea/RTextAreaHighlighter.java index 2c2aa73..9c9add1 100644 --- a/src/org/fife/ui/rtextarea/RTextAreaHighlighter.java +++ b/src/org/fife/ui/rtextarea/RTextAreaHighlighter.java @@ -1,9 +1,7 @@ /* * 10/13/2013 - * * RTextAreaHighlighter.java - Highlighter for RTextAreas. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -27,10 +25,10 @@ import javax.swing.text.View; import org.fife.ui.rsyntaxtextarea.DocumentRange; - /** - * The highlighter implementation used by {@link RTextArea}s. It knows to - * always paint "mark all" highlights below selection highlights.

    + * The highlighter implementation used by {@link RTextArea}s. It knows to + * always paint "mark all" highlights below selection highlights. + *

    * * Most of this code is copied from javax.swing.text.DefaultHighlighter; * unfortunately, we cannot re-use much of it since it is package private. @@ -39,26 +37,24 @@ import org.fife.ui.rsyntaxtextarea.DocumentRange; * @version 1.0 */ public class RTextAreaHighlighter extends BasicHighlighter { - + /** * The text component we are the highlighter for. */ protected RTextArea textArea; - /** * The "mark all" highlights (to be painted separately from other * highlights). */ private List markAllHighlights; - + /** * Constructor. */ public RTextAreaHighlighter() { markAllHighlights = new ArrayList(); } - - + /** * Adds a special "marked occurrence" highlight. * @@ -69,8 +65,7 @@ public class RTextAreaHighlighter extends BasicHighlighter { * @throws BadLocationException * @see #clearMarkAllHighlights() */ - Object addMarkAllHighlight(int start, int end, HighlightPainter p) - throws BadLocationException { + Object addMarkAllHighlight(int start, int end, HighlightPainter p) throws BadLocationException { Document doc = textArea.getDocument(); TextUI mapper = textArea.getUI(); // Always layered highlights for marked occurrences. @@ -80,17 +75,17 @@ public class RTextAreaHighlighter extends BasicHighlighter { // HACK: Use "end-1" to prevent chars the user types at the "end" of // the highlight to be absorbed into the highlight (default Highlight // behavior). - i.p1 = doc.createPosition(end-1); + i.p1 = doc.createPosition(end - 1); markAllHighlights.add(i); mapper.damageRange(textArea, start, end); return i; } - - + /** * Removes all "mark all" highlights from the view. * - * @see #addMarkAllHighlight(int, int, javax.swing.text.Highlighter.HighlightPainter) + * @see #addMarkAllHighlight(int, int, + * javax.swing.text.Highlighter.HighlightPainter) */ void clearMarkAllHighlights() { // Don't remove via an iterator; since our List is an ArrayList, this @@ -100,8 +95,7 @@ public class RTextAreaHighlighter extends BasicHighlighter { } markAllHighlights.clear(); } - - + /** * {@inheritDoc} */ @@ -110,8 +104,7 @@ public class RTextAreaHighlighter extends BasicHighlighter { this.textArea = null; markAllHighlights.clear(); } - - + /** * Returns the number of "mark all" highlights currently shown in the * editor. @@ -121,17 +114,15 @@ public class RTextAreaHighlighter extends BasicHighlighter { public int getMarkAllHighlightCount() { return markAllHighlights.size(); } - - + /** - * Returns a list of "mark all" highlights in the text area. If there are + * Returns a list of "mark all" highlights in the text area. If there are * no such highlights, this will be an empty list. * * @return The list of "mark all" highlight ranges. */ public List getMarkAllHighlightRanges() { - List list = new ArrayList( - markAllHighlights.size()); + List list = new ArrayList(markAllHighlights.size()); for (HighlightInfo info : markAllHighlights) { int start = info.getStartOffset(); int end = info.getEndOffset() + 1; // HACK @@ -140,174 +131,164 @@ public class RTextAreaHighlighter extends BasicHighlighter { } return list; } - - + /** * {@inheritDoc} */ @Override public void install(JTextComponent c) { super.install(c); - this.textArea = (RTextArea)c; + this.textArea = (RTextArea) c; } - - + /** * When leaf Views (such as LabelView) are rendering they should * call into this method. If a highlight is in the given region it will * be drawn immediately. * - * @param g Graphics used to draw - * @param lineStart starting offset of view - * @param lineEnd ending offset of view - * @param viewBounds Bounds of View - * @param editor JTextComponent - * @param view View instance being rendered + * @param g + * Graphics used to draw + * @param lineStart + * starting offset of view + * @param lineEnd + * ending offset of view + * @param viewBounds + * Bounds of View + * @param editor + * JTextComponent + * @param view + * View instance being rendered */ @Override - public void paintLayeredHighlights(Graphics g, int lineStart, int lineEnd, - Shape viewBounds, JTextComponent editor, View view) { - paintListLayered(g, lineStart,lineEnd, viewBounds, editor, view, - markAllHighlights); - super.paintLayeredHighlights(g, lineStart, lineEnd, viewBounds, editor, - view); + public void paintLayeredHighlights(Graphics g, int lineStart, int lineEnd, Shape viewBounds, JTextComponent editor, View view) { + paintListLayered(g, lineStart, lineEnd, viewBounds, editor, view, markAllHighlights); + super.paintLayeredHighlights(g, lineStart, lineEnd, viewBounds, editor, view); } - - - protected void paintListLayered(Graphics g, int lineStart, int lineEnd, - Shape viewBounds, JTextComponent editor, View view, + + protected void paintListLayered(Graphics g, int lineStart, int lineEnd, Shape viewBounds, JTextComponent editor, View view, List highlights) { - for (int i=highlights.size()-1; i>=0; i--) { + for (int i = highlights.size() - 1; i >= 0; i--) { HighlightInfo tag = highlights.get(i); if (tag instanceof LayeredHighlightInfo) { - LayeredHighlightInfo lhi = (LayeredHighlightInfo)tag; + LayeredHighlightInfo lhi = (LayeredHighlightInfo) tag; int highlightStart = lhi.getStartOffset(); - int highlightEnd = lhi.getEndOffset() + 1; // "+1" workaround for Java highlight issues - if ((lineStart < highlightStart && lineEnd > highlightStart) || - (lineStart >= highlightStart && lineStart < highlightEnd)) { - lhi.paintLayeredHighlights(g, lineStart, lineEnd, viewBounds, - editor, view); + int highlightEnd = lhi.getEndOffset() + 1; // "+1" workaround + // for Java + // highlight issues + if ((lineStart < highlightStart && lineEnd > highlightStart) || (lineStart >= highlightStart && lineStart < highlightEnd)) { + lhi.paintLayeredHighlights(g, lineStart, lineEnd, viewBounds, editor, view); } } } } - - + protected void repaintListHighlight(HighlightInfo info) { - // Note: We're relying on implementation here, not interface. Yuck... + // Note: We're relying on implementation here, not interface. Yuck... if (info instanceof LayeredHighlightInfoImpl) { - LayeredHighlightInfoImpl lhi = (LayeredHighlightInfoImpl)info; - if (lhi.width > 0 && lhi.height > 0) { - textArea.repaint(lhi.x, lhi.y, lhi.width, lhi.height); - } - } - else { + LayeredHighlightInfoImpl lhi = (LayeredHighlightInfoImpl) info; + if (lhi.width > 0 && lhi.height > 0) { + textArea.repaint(lhi.x, lhi.y, lhi.width, lhi.height); + } + } else { TextUI ui = textArea.getUI(); - ui.damageRange(textArea, info.getStartOffset(),info.getEndOffset()); - //safeDamageRange(info.p0, info.p1); + ui.damageRange(textArea, info.getStartOffset(), info.getEndOffset()); + // safeDamageRange(info.p0, info.p1); } } - - + /** * Information about a highlight being painted by this highlighter. */ public interface HighlightInfo extends Highlighter.Highlight {} - - + /** * Information about a layered highlight being painted by this highlighter. */ public interface LayeredHighlightInfo extends HighlightInfo { - + /** * Restricts the region based on the receivers offsets and messages * the painter to paint the region. */ - void paintLayeredHighlights(Graphics g, int p0, int p1, - Shape viewBounds, JTextComponent editor, View view); - + void paintLayeredHighlights(Graphics g, int p0, int p1, Shape viewBounds, JTextComponent editor, View view); } - - + /** * A straightforward implementation of HighlightInfo. */ protected static class HighlightInfoImpl implements HighlightInfo { - + private Position p0; private Position p1; private Highlighter.HighlightPainter painter; - + /** To be extended by subclasses. */ public Color getColor() { return null; } - + @Override public int getStartOffset() { return p0.getOffset(); } - + @Override public int getEndOffset() { return p1.getOffset(); } - + @Override public Highlighter.HighlightPainter getPainter() { return painter; } - + public void setStartOffset(Position startOffset) { this.p0 = startOffset; } - + public void setEndOffset(Position endOffset) { this.p1 = endOffset; } - + public void setPainter(Highlighter.HighlightPainter painter) { this.painter = painter; } - } - - + /** * A straightforward implementation of HighlightInfo for * painting layered highlights. */ @SuppressWarnings({ "checkstyle:visibilitymodifier" }) - protected static class LayeredHighlightInfoImpl extends HighlightInfoImpl - implements LayeredHighlightInfo { - + protected static class LayeredHighlightInfoImpl extends HighlightInfoImpl implements LayeredHighlightInfo { + /* - * NOTE: This implementation is a "hack" so typing at the "end" of the highlight - * does not extend it to include the newly-typed chars, which is the standard - * behavior of Swing Highlights. It assumes that the "p1" Position set is - * actually 1 char too short, and will render the selection as if that "extra" + * NOTE: This implementation is a "hack" so typing at the "end" of the + * highlight + * does not extend it to include the newly-typed chars, which is the + * standard + * behavior of Swing Highlights. It assumes that the "p1" Position set + * is + * actually 1 char too short, and will render the selection as if that + * "extra" * char should be highlighted. */ - public int x; public int y; public int width; public int height; - + void union(Shape bounds) { if (bounds == null) { return; } - Rectangle alloc = (bounds instanceof Rectangle) ? - (Rectangle)bounds : bounds.getBounds(); + Rectangle alloc = (bounds instanceof Rectangle) ? (Rectangle) bounds : bounds.getBounds(); if (width == 0 || height == 0) { x = alloc.x; y = alloc.y; width = alloc.width; height = alloc.height; - } - else { + } else { width = Math.max(x + width, alloc.x + alloc.width); height = Math.max(y + height, alloc.y + alloc.height); x = Math.min(x, alloc.x); @@ -316,31 +297,24 @@ public class RTextAreaHighlighter extends BasicHighlighter { height -= y; } } - + /** * {@inheritDoc} */ @Override - public void paintLayeredHighlights(Graphics g, int p0, int p1, - Shape viewBounds, JTextComponent editor, - View view) { + public void paintLayeredHighlights(Graphics g, int p0, int p1, Shape viewBounds, JTextComponent editor, View view) { int start = getStartOffset(); int end = getEndOffset(); end++; // Workaround for Java highlight issues // Restrict the region to what we represent p0 = Math.max(start, p0); p1 = Math.min(end, p1); - if (getColor()!=null && - getPainter() instanceof ChangeableHighlightPainter) { - ((ChangeableHighlightPainter)getPainter()).setPaint(getColor()); + if (getColor() != null && getPainter() instanceof ChangeableHighlightPainter) { + ((ChangeableHighlightPainter) getPainter()).setPaint(getColor()); } // Paint the appropriate region using the painter and union // the effected region with our bounds. - union(((LayeredHighlighter.LayerPainter)getPainter()).paintLayer( - g, p0, p1, viewBounds, editor, view)); + union(((LayeredHighlighter.LayerPainter) getPainter()).paintLayer(g, p0, p1, viewBounds, editor, view)); } - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RTextAreaUI.java b/src/org/fife/ui/rtextarea/RTextAreaUI.java index f4c7874..7ec32b5 100644 --- a/src/org/fife/ui/rtextarea/RTextAreaUI.java +++ b/src/org/fife/ui/rtextarea/RTextAreaUI.java @@ -1,25 +1,48 @@ /* * 04/25/2007 - * * RTextAreaUI.java - UI used by instances of RTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; -import java.awt.*; -import java.awt.event.*; +import java.awt.Color; +import java.awt.GradientPaint; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; -import javax.swing.*; -import javax.swing.text.*; +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; +import javax.swing.SwingUtilities; +import javax.swing.TransferHandler; +import javax.swing.UIManager; import javax.swing.border.Border; -import javax.swing.plaf.*; -import javax.swing.plaf.basic.*; - +import javax.swing.plaf.ActionMapUIResource; +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.ComponentUI; +import javax.swing.plaf.InputMapUIResource; +import javax.swing.plaf.InsetsUIResource; +import javax.swing.plaf.TextUI; +import javax.swing.plaf.basic.BasicBorders; +import javax.swing.plaf.basic.BasicTextAreaUI; +import javax.swing.text.BadLocationException; +import javax.swing.text.Caret; +import javax.swing.text.EditorKit; +import javax.swing.text.Element; +import javax.swing.text.JTextComponent; +import javax.swing.text.Keymap; +import javax.swing.text.PlainView; +import javax.swing.text.View; +import javax.swing.text.WrappedPlainView; /** - * The UI used by instances of RTextArea. This UI takes into + * The UI used by instances of RTextArea. This UI takes into * account all of the "extras" involved in an RTextArea, including * having a special caret (for insert and overwrite), background images, * highlighting the current line, etc. @@ -28,140 +51,125 @@ import javax.swing.plaf.basic.*; * @version 0.5 */ public class RTextAreaUI extends BasicTextAreaUI { - - private static final String SHARED_ACTION_MAP_NAME = "RTextAreaUI.actionMap"; - private static final String SHARED_INPUT_MAP_NAME = "RTextAreaUI.inputMap"; - - protected RTextArea textArea; // The text area for which we are the UI. - + + private static final String SHARED_ACTION_MAP_NAME = "RTextAreaUI.actionMap"; + private static final String SHARED_INPUT_MAP_NAME = "RTextAreaUI.inputMap"; + protected RTextArea textArea; // The text area for which we are the UI. private static final EditorKit DEFAULT_KIT = new RTextAreaEditorKit(); - private static final TransferHandler DEFAULT_TRANSFER_HANDLER = - new RTATextTransferHandler(); - - private static final String RTEXTAREA_KEYMAP_NAME = "RTextAreaKeymap"; - - + private static final TransferHandler DEFAULT_TRANSFER_HANDLER = new RTATextTransferHandler(); + private static final String RTEXTAREA_KEYMAP_NAME = "RTextAreaKeymap"; + /** * Creates a UI for an RTextArea. * - * @param textArea A text area. + * @param textArea + * A text area. * @return The UI. */ public static ComponentUI createUI(JComponent textArea) { return new RTextAreaUI(textArea); } - - + /** * Constructor. * - * @param textArea An instance of RTextArea. - * @throws IllegalArgumentException If textArea is not an - * instance of RTextArea. + * @param textArea + * An instance of RTextArea. + * @throws IllegalArgumentException + * If textArea is not an + * instance of RTextArea. */ public RTextAreaUI(JComponent textArea) { if (!(textArea instanceof RTextArea)) { - throw new IllegalArgumentException("RTextAreaUI is for " + - "instances of RTextArea only!"); + throw new IllegalArgumentException("RTextAreaUI is for " + "instances of RTextArea only!"); } - this.textArea = (RTextArea)textArea; + this.textArea = (RTextArea) textArea; } - - + /** * The Nimbus LAF (and any Synth laf might have similar issues) doesn't set - * many UIManager properties that BasicLAF UI's look for. This causes - * problems for custom Basic-based UI's such as RTextAreaUI. This method + * many UIManager properties that BasicLAF UI's look for. This causes + * problems for custom Basic-based UI's such as RTextAreaUI. This method * attempts to detect if Nimbus has been installed, and if so, sets proper * values for some editor properties. * - * @param editor The text area. + * @param editor + * The text area. */ private void correctNimbusDefaultProblems(JTextComponent editor) { - // Don't check UIManager.getLookAndFeel().getName() for "Nimbus", // as other Synth-based LaFs might have not set these properties, // in which case we'll need to use our fallback values. - // Check for null, but not for UIResource, for these properties, // because if Nimbus was installed these values would all be given - // null values. Another laf might have successfully installed + // null values. Another laf might have successfully installed // UIResource values, which we don't want to override. - Color c = editor.getCaretColor(); - if (c==null) { + if (c == null) { editor.setCaretColor(RTextArea.getDefaultCaretColor()); } - c = editor.getSelectionColor(); - if (c==null) { + if (c == null) { c = UIManager.getColor("nimbusSelectionBackground"); - if (c==null) { // Not Nimbus, but still need a value - fallback + if (c == null) { // Not Nimbus, but still need a value - fallback c = UIManager.getColor("textHighlight"); - if (c==null) { + if (c == null) { c = new ColorUIResource(Color.BLUE); } } editor.setSelectionColor(c); } - c = editor.getSelectedTextColor(); - if (c==null) { + if (c == null) { c = UIManager.getColor("nimbusSelectedText"); - if (c==null) { // Not Nimbus, but still need a value - fallback + if (c == null) { // Not Nimbus, but still need a value - fallback c = UIManager.getColor("textHighlightText"); - if (c==null) { + if (c == null) { c = new ColorUIResource(Color.WHITE); } } editor.setSelectedTextColor(c); } - c = editor.getDisabledTextColor(); - if (c==null) { + if (c == null) { c = UIManager.getColor("nimbusDisabledText"); - if (c==null) { // Not Nimbus, but still need a value - fallback + if (c == null) { // Not Nimbus, but still need a value - fallback c = UIManager.getColor("textInactiveText"); - if (c==null) { + if (c == null) { c = new ColorUIResource(Color.DARK_GRAY); } } editor.setDisabledTextColor(c); } - Border border = editor.getBorder(); - if (border==null) { + if (border == null) { editor.setBorder(new BasicBorders.MarginBorder()); } - Insets margin = editor.getMargin(); - if (margin==null) { + if (margin == null) { editor.setMargin(new InsetsUIResource(2, 2, 2, 2)); } - } - - + /** - * Creates the view for an element. Returns a WrappedPlainView or + * Creates the view for an element. Returns a WrappedPlainView or * PlainView. * - * @param elem The element. + * @param elem + * The element. * @return The view. */ @Override public View create(Element elem) { if (textArea.getLineWrap()) { return new WrappedPlainView(elem, textArea.getWrapStyleWord()); - } - else { + } else { return new PlainView(elem); } } - - + /** - * Returns the default caret for an RTextArea. This caret is + * Returns the default caret for an RTextArea. This caret is * capable of displaying itself differently for insert/overwrite modes. * * @return The caret. @@ -172,36 +180,32 @@ public class RTextAreaUI extends BasicTextAreaUI { caret.setBlinkRate(500); return caret; } - - + /** - * Creates the keymap for this text area. This takes the super class's + * Creates the keymap for this text area. This takes the super class's * keymap, but sets the default keystroke to be RTextAreaEditorKit's - * DefaultKeyTypedAction. This must be done to override the default + * DefaultKeyTypedAction. This must be done to override the default * keymap's default key-typed action. * * @return The keymap. */ @Override protected Keymap createKeymap() { - // Load the keymap we'll be using (it's saved by // JTextComponent.addKeymap). Keymap map = JTextComponent.getKeymap(RTEXTAREA_KEYMAP_NAME); - if (map==null) { + if (map == null) { Keymap parent = JTextComponent.getKeymap(JTextComponent.DEFAULT_KEYMAP); map = JTextComponent.addKeymap(RTEXTAREA_KEYMAP_NAME, parent); map.setDefaultAction(new RTextAreaEditorKit.DefaultKeyTypedAction()); } - return map; - } - - + /** - * Creates a default action map. This action map contains actions for all - * basic text area work - cut, copy, paste, select, caret motion, etc.

    + * Creates a default action map. This action map contains actions for all + * basic text area work - cut, copy, paste, select, caret motion, etc. + *

    * * This isn't named createActionMap() because there is a * package-private member by that name in BasicTextAreaUI, @@ -211,7 +215,6 @@ public class RTextAreaUI extends BasicTextAreaUI { * @return The action map. */ protected ActionMap createRTextAreaActionMap() { - // Get the actions of the text area (which in turn gets them from its // DefaultEditorKit). ActionMap map = new ActionMapUIResource(); @@ -221,23 +224,16 @@ public class RTextAreaUI extends BasicTextAreaUI { Action a = actions[i]; map.put(a.getValue(Action.NAME), a); } - // Not sure if we need these; not sure they are ever called // (check their NAMEs). - map.put(TransferHandler.getCutAction().getValue(Action.NAME), - TransferHandler.getCutAction()); - map.put(TransferHandler.getCopyAction().getValue(Action.NAME), - TransferHandler.getCopyAction()); - map.put(TransferHandler.getPasteAction().getValue(Action.NAME), - TransferHandler.getPasteAction()); - + map.put(TransferHandler.getCutAction().getValue(Action.NAME), TransferHandler.getCutAction()); + map.put(TransferHandler.getCopyAction().getValue(Action.NAME), TransferHandler.getCopyAction()); + map.put(TransferHandler.getPasteAction().getValue(Action.NAME), TransferHandler.getPasteAction()); return map; - } - - + /** - * Returns the name to use to cache/fetch the shared action map. This + * Returns the name to use to cache/fetch the shared action map. This * should be overridden by subclasses if the subclass has its own custom * editor kit to install, so its actions get picked up. * @@ -246,12 +242,12 @@ public class RTextAreaUI extends BasicTextAreaUI { protected String getActionMapName() { return SHARED_ACTION_MAP_NAME; } - - + /** * Fetches the EditorKit for the UI. * - * @param tc the text component for which this UI is installed + * @param tc + * the text component for which this UI is installed * @return the editor capabilities * @see TextUI#getEditorKit */ @@ -259,8 +255,7 @@ public class RTextAreaUI extends BasicTextAreaUI { public EditorKit getEditorKit(JTextComponent tc) { return DEFAULT_KIT; } - - + /** * Returns the text area for which we are the UI. * @@ -269,10 +264,10 @@ public class RTextAreaUI extends BasicTextAreaUI { public RTextArea getRTextArea() { return textArea; } - - + /** - * Returns an action map to use by a text area.

    + * Returns an action map to use by a text area. + *

    * * This method is not named getActionMap() because there is * a package-private method in BasicTextAreaUI with that name. @@ -284,28 +279,24 @@ public class RTextAreaUI extends BasicTextAreaUI { * @see #createRTextAreaActionMap() */ private ActionMap getRTextAreaActionMap() { - // Get the UIManager-cached action map; if this is the first // RTextArea created, create the action map and cache it. - ActionMap map = (ActionMap)UIManager.get(getActionMapName()); - if (map==null) { + ActionMap map = (ActionMap) UIManager.get(getActionMapName()); + if (map == null) { map = createRTextAreaActionMap(); UIManager.put(getActionMapName(), map); } - ActionMap componentMap = new ActionMapUIResource(); componentMap.put("requestFocus", new FocusAction()); - if (map != null) { componentMap.setParent(map); } return componentMap; - } - - + /** - * Get the InputMap to use for the UI.

    + * Get the InputMap to use for the UI. + *

    * * This method is not named getInputMap() because there is * a package-private method in BasicTextAreaUI with that name. @@ -315,23 +306,22 @@ public class RTextAreaUI extends BasicTextAreaUI { */ protected InputMap getRTextAreaInputMap() { InputMap map = new InputMapUIResource(); - InputMap shared = (InputMap)UIManager.get(SHARED_INPUT_MAP_NAME); - if (shared==null) { + InputMap shared = (InputMap) UIManager.get(SHARED_INPUT_MAP_NAME); + if (shared == null) { shared = new RTADefaultInputMap(); UIManager.put(SHARED_INPUT_MAP_NAME, shared); } - //KeyStroke[] keys = shared.allKeys(); - //for (int i=0; i " + shared.get(keys[i])); + // KeyStroke[] keys = shared.allKeys(); + // for (int i=0; i " + shared.get(keys[i])); map.setParent(shared); return map; } - - + /** - * Gets the allocation to give the root View. Due + * Gets the allocation to give the root View. Due * to an unfortunate set of historical events this - * method is inappropriately named. The Rectangle + * method is inappropriately named. The Rectangle * returned has nothing to do with visibility. * The component must have a non-zero positive size for * this translation to be computed. @@ -352,62 +342,47 @@ public class RTextAreaUI extends BasicTextAreaUI { } return null; } - - + @Override protected void installDefaults() { - super.installDefaults(); - JTextComponent editor = getComponent(); editor.setFont(RTextAreaBase.getDefaultFont()); - // Nimbus (and possibly other Synth lafs) doesn't play by BasicLaf // rules and doesn't set properties needed by custom BasicTextAreaUI's. correctNimbusDefaultProblems(editor); - editor.setTransferHandler(DEFAULT_TRANSFER_HANDLER); - } - - + /** * {@inheritDoc} */ @Override protected void installKeyboardActions() { - // NOTE: Don't call super.installKeyboardActions(), as that causes // JTextAreas to stop responding to certain keystrokes if an RTextArea - // is the first-instantiated text area. This is because of the code + // is the first-instantiated text area. This is because of the code // path installKeyboardActions() -> getActionMap() -> createActionMap(). // In BasicTextUI#createActionMap(), "editor.getActions()" is called, // and the current editor's returned Actions are used to create the // ActionMap, which is then cached and used in all future J/RTextAreas. // Unfortunately, RTextArea actions don't worn in JTextAreas. - //super.installKeyboardActions(); - + // super.installKeyboardActions(); RTextArea textArea = getRTextArea(); - // backward compatibility support... keymaps for the UI // are now installed in the more friendly input map. textArea.setKeymap(createKeymap()); - // Since BasicTextUI.getInputMap() is package-private, instead use // our own version here. InputMap map = getRTextAreaInputMap(); - SwingUtilities.replaceUIInputMap(textArea,JComponent.WHEN_FOCUSED,map); - + SwingUtilities.replaceUIInputMap(textArea, JComponent.WHEN_FOCUSED, map); // Same thing here with action map. ActionMap am = getRTextAreaActionMap(); - if (am!=null) { - SwingUtilities.replaceUIActionMap(textArea, am); + if (am != null) { + SwingUtilities.replaceUIActionMap(textArea, am); } - - } - - + /** * Installs this UI to the given text component. */ @@ -418,77 +393,62 @@ public class RTextAreaUI extends BasicTextAreaUI { } super.installUI(c); } - - + @Override protected void paintBackground(Graphics g) { - // Only fill in the background if an image isn't being used. Color bg = textArea.getBackground(); - if (bg!=null) { + if (bg != null) { g.setColor(bg); - //g.fillRect(0, 0, textArea.getWidth(), textArea.getHeight()); + // g.fillRect(0, 0, textArea.getWidth(), textArea.getHeight()); Rectangle r = g.getClipBounds(); - g.fillRect(r.x,r.y, r.width,r.height); + g.fillRect(r.x, r.y, r.width, r.height); } - paintEditorAugmentations(g); - } - - + /** * Paints the highlighted current line, if it is enabled. * - * @param g The graphics context with which to paint. - * @param visibleRect The visible rectangle of the text area. + * @param g + * The graphics context with which to paint. + * @param visibleRect + * The visible rectangle of the text area. */ protected void paintCurrentLineHighlight(Graphics g, Rectangle visibleRect) { - if (textArea.getHighlightCurrentLine()) { - Caret caret = textArea.getCaret(); - if (caret.getDot()==caret.getMark()) { - + if (caret.getDot() == caret.getMark()) { Color highlight = textArea.getCurrentLineHighlightColor(); - // NOTE: We use the getLineHeight() method below instead + // NOTE: We use the getLineHeight() method below instead // of currentCaretRect.height because of a bug where // currentCaretRect.height is incorrect when an RSyntaxTextArea - // is first displayed (it is initialized with the text area's + // is first displayed (it is initialized with the text area's // font.getHeight() (via RTextArea), but isn't changed to // account for the syntax styles before it is displayed). - //int height = textArea.currentCaretRect.height); + // int height = textArea.currentCaretRect.height); int height = textArea.getLineHeight(); - if (textArea.getFadeCurrentLineHighlight()) { - Graphics2D g2d = (Graphics2D)g; + Graphics2D g2d = (Graphics2D) g; Color bg = textArea.getBackground(); - GradientPaint paint = new GradientPaint( - visibleRect.x,0, highlight, - visibleRect.x+visibleRect.width,0, - bg==null ? Color.WHITE : bg); + GradientPaint paint = new GradientPaint(visibleRect.x, 0, highlight, visibleRect.x + visibleRect.width, 0, + bg == null ? Color.WHITE : bg); g2d.setPaint(paint); - g2d.fillRect(visibleRect.x,textArea.currentCaretY, - visibleRect.width, height); - } - else { + g2d.fillRect(visibleRect.x, textArea.currentCaretY, visibleRect.width, height); + } else { g.setColor(highlight); - g.fillRect(visibleRect.x,textArea.currentCaretY, - visibleRect.width, height); + g.fillRect(visibleRect.x, textArea.currentCaretY, visibleRect.width, height); } - } - } - } - - + /** - * Paints editor augmentations added by RTextArea: highlighted lines, + * Paints editor augmentations added by RTextArea: highlighted lines, * current line highlight, and margin line. * - * @param g The graphics context with which to paint. + * @param g + * The graphics context with which to paint. */ protected void paintEditorAugmentations(Graphics g) { Rectangle visibleRect = textArea.getVisibleRect(); @@ -496,39 +456,37 @@ public class RTextAreaUI extends BasicTextAreaUI { paintCurrentLineHighlight(g, visibleRect); paintMarginLine(g, visibleRect); } - - + /** * Paints any line highlights. * - * @param g The graphics context. + * @param g + * The graphics context. */ protected void paintLineHighlights(Graphics g) { LineHighlightManager lhm = textArea.getLineHighlightManager(); - if (lhm!=null) { + if (lhm != null) { lhm.paintLineHighlights(g); } } - - + /** * Draws the "margin line" if enabled. * - * @param g The graphics context to paint with. - * @param visibleRect The visible rectangle of this text area. + * @param g + * The graphics context to paint with. + * @param visibleRect + * The visible rectangle of this text area. */ protected void paintMarginLine(Graphics g, Rectangle visibleRect) { if (textArea.isMarginLineEnabled()) { g.setColor(textArea.getMarginLineColor()); Insets insets = textArea.getInsets(); - int marginLineX = textArea.getMarginLinePixelLocation() + - (insets==null ? 0 : insets.left); - g.drawLine(marginLineX,visibleRect.y, - marginLineX,visibleRect.y+visibleRect.height); + int marginLineX = textArea.getMarginLinePixelLocation() + (insets == null ? 0 : insets.left); + g.drawLine(marginLineX, visibleRect.y, marginLineX, visibleRect.y + visibleRect.height); } } - - + @Override protected void paintSafely(Graphics g) { // Paint editor augmentations if editor is not opaque because @@ -538,12 +496,13 @@ public class RTextAreaUI extends BasicTextAreaUI { } super.paintSafely(g); } - - + /** - * Returns the y-coordinate of the specified line.

    + * Returns the y-coordinate of the specified line. + *

    * * The default implementation is equivalent to: + * *

     	 * int startOffs = textArea.getLineStartOffset(line);
     	 * return yForLineContaining(startOffs);
    @@ -554,23 +513,26 @@ public class RTextAreaUI extends BasicTextAreaUI {
     	 * method to do so. This method may be used when the entire bounding box
     	 * isn't needed, to speed up rendering.
     	 *
    -	 * @param line The line number.
    +	 * @param line
    +	 *            The line number.
     	 * @return The y-coordinate of the top of the line, or -1 if
     	 *         this text area doesn't yet have a positive size or the line is
     	 *         hidden (i.e. from folding).
    -	 * @throws BadLocationException If line isn't a valid line
    -	 *         number for this document.
    +	 * @throws BadLocationException
    +	 *             If line isn't a valid line
    +	 *             number for this document.
     	 */
     	public int yForLine(int line) throws BadLocationException {
     		int startOffs = textArea.getLineStartOffset(line);
     		return yForLineContaining(startOffs);
     	}
    -
    -
    +	
     	/**
    -	 * Returns the y-coordinate of the line containing an offset.

    + * Returns the y-coordinate of the line containing an offset. + *

    * * The default implementation is equivalent to: + * *

     	 * int line = textArea.getLineOfOffset(offs);
     	 * int startOffs = textArea.getLineStartOffset(line);
    @@ -582,35 +544,33 @@ public class RTextAreaUI extends BasicTextAreaUI {
     	 * method to do so. This method may be used when the entire bounding box
     	 * isn't needed, to speed up rendering.
     	 *
    -	 * @param offs The offset info the document.
    +	 * @param offs
    +	 *            The offset info the document.
     	 * @return The y-coordinate of the top of the offset, or -1 if
     	 *         this text area doesn't yet have a positive size or the line is
     	 *         hidden (i.e. from folding).
    -	 * @throws BadLocationException If offs isn't a valid offset
    -	 *         into the document.
    +	 * @throws BadLocationException
    +	 *             If offs isn't a valid offset
    +	 *             into the document.
     	 */
     	public int yForLineContaining(int offs) throws BadLocationException {
     		Rectangle r = modelToView(textArea, offs);
    -		return r!=null ? r.y : -1;
    +		return r != null ? r.y : -1;
     	}
    -
    -
    +	
     	/**
     	 * Registered in the ActionMap.
     	 */
     	class FocusAction extends AbstractAction {
    -
    +		
     		@Override
     		public void actionPerformed(ActionEvent e) {
     			textArea.requestFocus();
     		}
    -
    +		
     		@Override
     		public boolean isEnabled() {
     			return textArea.isEditable();
     		}
    -
     	}
    -
    -
    -}
    \ No newline at end of file
    +}
    diff --git a/src/org/fife/ui/rtextarea/RTextScrollPane.java b/src/org/fife/ui/rtextarea/RTextScrollPane.java
    index 7f8456f..a42a4a2 100644
    --- a/src/org/fife/ui/rtextarea/RTextScrollPane.java
    +++ b/src/org/fife/ui/rtextarea/RTextScrollPane.java
    @@ -1,10 +1,8 @@
     /*
      * 11/14/2003
    - *
      * RTextScrollPane.java - A JScrollPane that will only accept RTextAreas
      * so that it can display line numbers, fold indicators, and icons.
    - *
    - * This library is distributed under a modified BSD license.  See the included
    + * This library is distributed under a modified BSD license. See the included
      * RSyntaxTextArea.License.txt file for details.
      */
     package org.fife.ui.rtextarea;
    @@ -38,18 +36,19 @@ import javax.swing.JScrollPane;
      * @version 1.0
      */
     public class RTextScrollPane extends JScrollPane {
    -
    +	
     	private Gutter gutter;
    -
    +	
     	/**
     	 * Constructor. If you use this constructor, you must call
    -	 * {@link #setViewportView(Component)} and pass in an {@link RTextArea} for this
    +	 * {@link #setViewportView(Component)} and pass in an {@link RTextArea} for
    +	 * this
     	 * scroll pane to render line numbers properly.
     	 */
     	public RTextScrollPane() {
     		this(null, true);
     	}
    -
    +	
     	/**
     	 * Creates a scroll pane. A default value will be used for line number color
     	 * (gray), and the current line's line number will be highlighted.
    @@ -60,23 +59,27 @@ public class RTextScrollPane extends JScrollPane {
     	public RTextScrollPane(RTextArea textArea) {
     		this(textArea, true);
     	}
    -
    +	
     	/**
     	 * Creates a scroll pane. A default value will be used for line number color
     	 * (gray), and the current line's line number will be highlighted.
     	 *
     	 * @param comp
    -	 *            The component this scroll pane should display. This should be an
    -	 *            instance of {@link RTextArea}, javax.swing.JLayer (or
    +	 *            The component this scroll pane should display. This should be
    +	 *            an
    +	 *            instance of {@link RTextArea}, javax.swing.JLayer
    +	 *            (or
     	 *            the older org.jdesktop.jxlayer.JXLayer), or
    -	 *            null. If this argument is null, you must
    -	 *            call {@link #setViewportView(Component)}, passing in an instance
    +	 *            null. If this argument is null, you
    +	 *            must
    +	 *            call {@link #setViewportView(Component)}, passing in an
    +	 *            instance
     	 *            of one of the types above.
     	 */
     	public RTextScrollPane(Component comp) {
     		this(comp, true);
     	}
    -
    +	
     	/**
     	 * Creates a scroll pane. A default value will be used for line number color
     	 * (gray), and the current line's line number will be highlighted.
    @@ -92,17 +95,21 @@ public class RTextScrollPane extends JScrollPane {
     	public RTextScrollPane(RTextArea textArea, boolean lineNumbers) {
     		this(textArea, lineNumbers, Color.GRAY);
     	}
    -
    +	
     	/**
     	 * Creates a scroll pane. A default value will be used for line number color
     	 * (gray), and the current line's line number will be highlighted.
     	 *
     	 * @param comp
    -	 *            The component this scroll pane should display. This should be an
    -	 *            instance of {@link RTextArea}, javax.swing.JLayer (or
    +	 *            The component this scroll pane should display. This should be
    +	 *            an
    +	 *            instance of {@link RTextArea}, javax.swing.JLayer
    +	 *            (or
     	 *            the older org.jdesktop.jxlayer.JXLayer), or
    -	 *            null. If this argument is null, you must
    -	 *            call {@link #setViewportView(Component)}, passing in an instance
    +	 *            null. If this argument is null, you
    +	 *            must
    +	 *            call {@link #setViewportView(Component)}, passing in an
    +	 *            instance
     	 *            of one of the types above.
     	 * @param lineNumbers
     	 *            Whether line numbers should be enabled.
    @@ -110,16 +117,20 @@ public class RTextScrollPane extends JScrollPane {
     	public RTextScrollPane(Component comp, boolean lineNumbers) {
     		this(comp, lineNumbers, Color.GRAY);
     	}
    -
    +	
     	/**
     	 * Creates a scroll pane.
     	 *
     	 * @param comp
    -	 *            The component this scroll pane should display. This should be an
    -	 *            instance of {@link RTextArea}, javax.swing.JLayer (or
    +	 *            The component this scroll pane should display. This should be
    +	 *            an
    +	 *            instance of {@link RTextArea}, javax.swing.JLayer
    +	 *            (or
     	 *            the older org.jdesktop.jxlayer.JXLayer), or
    -	 *            null. If this argument is null, you must
    -	 *            call {@link #setViewportView(Component)}, passing in an instance
    +	 *            null. If this argument is null, you
    +	 *            must
    +	 *            call {@link #setViewportView(Component)}, passing in an
    +	 *            instance
     	 *            of one of the types above.
     	 * @param lineNumbers
     	 *            Whether line numbers are initially enabled.
    @@ -127,24 +138,19 @@ public class RTextScrollPane extends JScrollPane {
     	 *            The color to use for line numbers.
     	 */
     	public RTextScrollPane(Component comp, boolean lineNumbers, Color lineNumberColor) {
    -
     		super(comp);
    -
     		RTextArea textArea = getFirstRTextAreaDescendant(comp);
    -
     		// Create the gutter for this document.
     		Font defaultFont = new Font("Monospaced", Font.PLAIN, 12);
     		gutter = new Gutter(textArea);
     		gutter.setLineNumberFont(defaultFont);
     		gutter.setLineNumberColor(lineNumberColor);
     		setLineNumbersEnabled(lineNumbers);
    -
     		// Set miscellaneous properties.
     		setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_ALWAYS);
     		setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_AS_NEEDED);
    -
     	}
    -
    +	
     	/**
     	 * Ensures the gutter is visible if it's showing anything.
     	 */
    @@ -160,7 +166,7 @@ public class RTextScrollPane extends JScrollPane {
     			}
     		}
     	}
    -
    +	
     	/**
     	 * Returns the gutter.
     	 *
    @@ -169,7 +175,7 @@ public class RTextScrollPane extends JScrollPane {
     	public Gutter getGutter() {
     		return gutter;
     	}
    -
    +	
     	/**
     	 * Returns true if the line numbers are enabled and visible.
     	 *
    @@ -179,7 +185,7 @@ public class RTextScrollPane extends JScrollPane {
     	public boolean getLineNumbersEnabled() {
     		return gutter.getLineNumbersEnabled();
     	}
    -
    +	
     	/**
     	 * Returns the text area being displayed.
     	 *
    @@ -189,7 +195,7 @@ public class RTextScrollPane extends JScrollPane {
     	public RTextArea getTextArea() {
     		return (RTextArea) getViewport().getView();
     	}
    -
    +	
     	/**
     	 * Returns whether the fold indicator is enabled.
     	 *
    @@ -199,7 +205,7 @@ public class RTextScrollPane extends JScrollPane {
     	public boolean isFoldIndicatorEnabled() {
     		return gutter.isFoldIndicatorEnabled();
     	}
    -
    +	
     	/**
     	 * Returns whether the icon row header is enabled.
     	 *
    @@ -209,7 +215,7 @@ public class RTextScrollPane extends JScrollPane {
     	public boolean isIconRowHeaderEnabled() {
     		return gutter.isIconRowHeaderEnabled();
     	}
    -
    +	
     	/**
     	 * Toggles whether the fold indicator is enabled.
     	 *
    @@ -221,9 +227,10 @@ public class RTextScrollPane extends JScrollPane {
     		gutter.setFoldIndicatorEnabled(enabled);
     		checkGutterVisibility();
     	}
    -
    +	
     	/**
    -	 * Toggles whether the icon row header (used for breakpoints, bookmarks, etc.)
    +	 * Toggles whether the icon row header (used for breakpoints, bookmarks,
    +	 * etc.)
     	 * is enabled.
     	 *
     	 * @param enabled
    @@ -234,7 +241,7 @@ public class RTextScrollPane extends JScrollPane {
     		gutter.setIconRowHeaderEnabled(enabled);
     		checkGutterVisibility();
     	}
    -
    +	
     	/**
     	 * Toggles whether or not line numbers are visible.
     	 *
    @@ -246,7 +253,7 @@ public class RTextScrollPane extends JScrollPane {
     		gutter.setLineNumbersEnabled(enabled);
     		checkGutterVisibility();
     	}
    -
    +	
     	/**
     	 * Sets the view for this scroll pane. This must be an {@link RTextArea}.
     	 *
    @@ -256,9 +263,7 @@ public class RTextScrollPane extends JScrollPane {
     	 */
     	@Override
     	public void setViewportView(Component view) {
    -
     		RTextArea rtaCandidate = null;
    -
     		if (!(view instanceof RTextArea)) {
     			rtaCandidate = getFirstRTextAreaDescendant(view);
     			if (rtaCandidate == null) {
    @@ -272,7 +277,7 @@ public class RTextScrollPane extends JScrollPane {
     			gutter.setTextArea(rtaCandidate);
     		}
     	}
    -
    +	
     	/**
     	 * Returns the first descendant of a component that is an
     	 * RTextArea. This is primarily here to support
    @@ -298,5 +303,4 @@ public class RTextScrollPane extends JScrollPane {
     		}
     		return null;
     	}
    -
     }
    diff --git a/src/org/fife/ui/rtextarea/RUndoManager.java b/src/org/fife/ui/rtextarea/RUndoManager.java
    index 6162f65..b66a112 100644
    --- a/src/org/fife/ui/rtextarea/RUndoManager.java
    +++ b/src/org/fife/ui/rtextarea/RUndoManager.java
    @@ -1,9 +1,7 @@
     /*
      * 12/06/2008
    - *
      * RUndoManager.java - Handles undo/redo behavior for RTextArea.
    - *
    - * This library is distributed under a modified BSD license.  See the included
    + * This library is distributed under a modified BSD license. See the included
      * RSyntaxTextArea.License.txt file for details.
      */
     package org.fife.ui.rtextarea;
    @@ -17,11 +15,10 @@ import javax.swing.undo.CompoundEdit;
     import javax.swing.undo.UndoManager;
     import javax.swing.undo.UndoableEdit;
     
    -
     /**
    - * This class manages undos/redos for a particular editor pane.  It groups
    + * This class manages undos/redos for a particular editor pane. It groups
      * all undos that occur one character position apart together, to avoid
    - * Java's horrible "one character at a time" undo behavior.  It also
    + * Java's horrible "one character at a time" undo behavior. It also
      * recognizes "replace" actions (i.e., text is selected, then the user
      * types), and treats it as a single action, instead of a remove/insert
      * action pair.
    @@ -30,22 +27,20 @@ import javax.swing.undo.UndoableEdit;
      * @version 1.0
      */
     public class RUndoManager extends UndoManager {
    -
    +	
     	private RCompoundEdit compoundEdit;
     	private RTextArea textArea;
     	private int lastOffset;
     	private String cantUndoText;
     	private String cantRedoText;
    -
     	private int internalAtomicEditDepth;
    -
    -	private static final String MSG	= "org.fife.ui.rtextarea.RTextArea";
    -
    -
    +	private static final String MSG = "org.fife.ui.rtextarea.RTextArea";
    +	
     	/**
     	 * Constructor.
     	 *
    -	 * @param textArea The parent text area.
    +	 * @param textArea
    +	 *            The parent text area.
     	 */
     	public RUndoManager(RTextArea textArea) {
     		this.textArea = textArea;
    @@ -53,10 +48,9 @@ public class RUndoManager extends UndoManager {
     		cantUndoText = msg.getString("Action.CantUndo.Name");
     		cantRedoText = msg.getString("Action.CantRedo.Name");
     	}
    -
    -
    +	
     	/**
    -	 * Begins an "atomic" edit.  This method is called when RTextArea
    +	 * Begins an "atomic" edit. This method is called when RTextArea
     	 * KNOWS that some edits should be compound automatically, such as
     	 * when the user is typing in overwrite mode (the deletion of the
     	 * current char + insertion of the new one) or the playing back of a
    @@ -65,30 +59,28 @@ public class RUndoManager extends UndoManager {
     	 * @see #endInternalAtomicEdit()
     	 */
     	public void beginInternalAtomicEdit() {
    -		if (++internalAtomicEditDepth==1) {
    -			if (compoundEdit!=null) {
    +		if (++internalAtomicEditDepth == 1) {
    +			if (compoundEdit != null) {
     				compoundEdit.end();
     			}
     			compoundEdit = new RCompoundEdit();
     		}
     	}
    -
    -
    +	
     	/**
     	 * Ends an "atomic" edit.
     	 *
     	 * @see #beginInternalAtomicEdit()
     	 */
     	public void endInternalAtomicEdit() {
    -		if (internalAtomicEditDepth>0 && --internalAtomicEditDepth==0) {
    +		if (internalAtomicEditDepth > 0 && --internalAtomicEditDepth == 0) {
     			addEdit(compoundEdit);
     			compoundEdit.end();
     			compoundEdit = null;
    -			updateActions();	// Needed to show the new display name.
    +			updateActions(); // Needed to show the new display name.
     		}
     	}
    -
    -
    +	
     	/**
     	 * Returns the localized "Can't Redo" string.
     	 *
    @@ -98,8 +90,7 @@ public class RUndoManager extends UndoManager {
     	public String getCantRedoText() {
     		return cantRedoText;
     	}
    -
    -
    +	
     	/**
     	 * Returns the localized "Can't Undo" string.
     	 *
    @@ -109,8 +100,7 @@ public class RUndoManager extends UndoManager {
     	public String getCantUndoText() {
     		return cantUndoText;
     	}
    -
    -
    +	
     	/**
     	 * {@inheritDoc}
     	 */
    @@ -119,8 +109,7 @@ public class RUndoManager extends UndoManager {
     		super.redo();
     		updateActions();
     	}
    -
    -
    +	
     	private RCompoundEdit startCompoundEdit(UndoableEdit edit) {
     		lastOffset = textArea.getCaretPosition();
     		compoundEdit = new RCompoundEdit();
    @@ -128,8 +117,7 @@ public class RUndoManager extends UndoManager {
     		addEdit(compoundEdit);
     		return compoundEdit;
     	}
    -
    -
    +	
     	/**
     	 * {@inheritDoc}
     	 */
    @@ -138,66 +126,55 @@ public class RUndoManager extends UndoManager {
     		super.undo();
     		updateActions();
     	}
    -
    -
    +	
     	@Override
     	public void undoableEditHappened(UndoableEditEvent e) {
    -
     		// This happens when the first undoable edit occurs, and
    -		// just after an undo.  So, we need to update our actions.
    -		if (compoundEdit==null) {
    +		// just after an undo. So, we need to update our actions.
    +		if (compoundEdit == null) {
     			compoundEdit = startCompoundEdit(e.getEdit());
     			updateActions();
     			return;
    -		}
    -
    -		else if (internalAtomicEditDepth>0) {
    +		} else if (internalAtomicEditDepth > 0) {
     			compoundEdit.addEdit(e.getEdit());
     			return;
     		}
    -
     		// This happens when there's already an undo that has occurred.
     		// Test to see if these undos are on back-to-back characters,
    -		// and if they are, group them as a single edit.  Since an
    +		// and if they are, group them as a single edit. Since an
     		// undo has already occurred, there is no need to update our
     		// actions here.
     		int diff = textArea.getCaretPosition() - lastOffset;
     		// "<=1" allows contiguous "overwrite mode" key presses to be
     		// grouped together.
    -		if (Math.abs(diff)<=1) {//==1) {
    +		if (Math.abs(diff) <= 1) {// ==1) {
     			compoundEdit.addEdit(e.getEdit());
     			lastOffset += diff;
    -			//updateActions();
    +			// updateActions();
     			return;
     		}
    -
     		// This happens when this UndoableEdit didn't occur at the
    -		// character just after the previous undlabeledit.  Since an
    +		// character just after the previous undlabeledit. Since an
     		// undo has already occurred, there is no need to update our
     		// actions here either.
     		compoundEdit.end();
     		compoundEdit = startCompoundEdit(e.getEdit());
    -		//updateActions();
    -
    +		// updateActions();
     	}
    -
    -
    +	
     	/**
     	 * Ensures that undo/redo actions are enabled appropriately and have
     	 * descriptive text at all times.
     	 */
     	public void updateActions() {
    -
     		String text;
    -
     		Action a = RTextArea.getAction(RTextArea.UNDO_ACTION);
     		if (canUndo()) {
     			a.setEnabled(true);
     			text = getUndoPresentationName();
     			a.putValue(Action.NAME, text);
     			a.putValue(Action.SHORT_DESCRIPTION, text);
    -		}
    -		else {
    +		} else {
     			if (a.isEnabled()) {
     				a.setEnabled(false);
     				text = cantUndoText;
    @@ -205,15 +182,13 @@ public class RUndoManager extends UndoManager {
     				a.putValue(Action.SHORT_DESCRIPTION, text);
     			}
     		}
    -
     		a = RTextArea.getAction(RTextArea.REDO_ACTION);
     		if (canRedo()) {
     			a.setEnabled(true);
     			text = getRedoPresentationName();
     			a.putValue(Action.NAME, text);
     			a.putValue(Action.SHORT_DESCRIPTION, text);
    -		}
    -		else {
    +		} else {
     			if (a.isEnabled()) {
     				a.setEnabled(false);
     				text = cantRedoText;
    @@ -221,39 +196,35 @@ public class RUndoManager extends UndoManager {
     				a.putValue(Action.SHORT_DESCRIPTION, text);
     			}
     		}
    -
     	}
    -
    +	
     	/**
     	 * The edit used by {@link RUndoManager}.
     	 */
     	class RCompoundEdit extends CompoundEdit {
    -
    +		
     		@Override
     		public String getUndoPresentationName() {
     			return UIManager.getString("AbstractUndoableEdit.undoText");
     		}
    -
    +		
     		@Override
     		public String getRedoPresentationName() {
     			return UIManager.getString("AbstractUndoableEdit.redoText");
     		}
    -
    +		
     		@Override
     		public boolean isInProgress() {
     			return false;
     		}
    -
    +		
     		@Override
     		public void undo() {
    -			if (compoundEdit!=null) {
    +			if (compoundEdit != null) {
     				compoundEdit.end();
     			}
     			super.undo();
     			compoundEdit = null;
     		}
    -
     	}
    -
    -
    -}
    \ No newline at end of file
    +}
    diff --git a/src/org/fife/ui/rtextarea/RecordableTextAction.java b/src/org/fife/ui/rtextarea/RecordableTextAction.java
    index ce31c05..081b8a5 100644
    --- a/src/org/fife/ui/rtextarea/RecordableTextAction.java
    +++ b/src/org/fife/ui/rtextarea/RecordableTextAction.java
    @@ -1,10 +1,8 @@
     /*
      * 08/19/2004
    - *
      * RecordableTextAction.java - An action that can be recorded and replayed
      * in an RTextArea macro.
    - *
    - * This library is distributed under a modified BSD license.  See the included
    + * This library is distributed under a modified BSD license. See the included
      * RSyntaxTextArea.License.txt file for details.
      */
     package org.fife.ui.rtextarea;
    @@ -18,10 +16,9 @@ import javax.swing.text.DefaultEditorKit;
     import javax.swing.text.JTextComponent;
     import javax.swing.text.TextAction;
     
    -
     /**
      * The base action used by the actions defined in
    - * {@link RTextAreaEditorKit}.  This action is what allows instances of
    + * {@link RTextAreaEditorKit}. This action is what allows instances of
      * RTextArea to record keystrokes into "macros;" if an action is
      * recordable and occurs while the user is recording a macro, it adds itself to
      * the currently-being-recorded macro.
    @@ -30,34 +27,37 @@ import javax.swing.text.TextAction;
      * @version 0.5
      */
     public abstract class RecordableTextAction extends TextAction {
    -
    +	
     	/**
     	 * Whether or not this text action should be recorded in a macro.
     	 */
     	private boolean isRecordable;
    -
    -
    +	
     	/**
     	 * Constructor.
     	 *
    -	 * @param text The text (name) associated with the action.
    +	 * @param text
    +	 *            The text (name) associated with the action.
     	 */
     	public RecordableTextAction(String text) {
     		this(text, null, null, null, null);
     	}
    -
    -
    +	
     	/**
     	 * Constructor.
     	 *
    -	 * @param text The text (name) associated with the action.
    -	 * @param icon The icon associated with the action.
    -	 * @param desc The description of the action.
    -	 * @param mnemonic The mnemonic for the action.
    -	 * @param accelerator The accelerator key for the action.
    +	 * @param text
    +	 *            The text (name) associated with the action.
    +	 * @param icon
    +	 *            The icon associated with the action.
    +	 * @param desc
    +	 *            The description of the action.
    +	 * @param mnemonic
    +	 *            The mnemonic for the action.
    +	 * @param accelerator
    +	 *            The accelerator key for the action.
     	 */
    -	public RecordableTextAction(String text, Icon icon, String desc,
    -					Integer mnemonic, KeyStroke accelerator) {
    +	public RecordableTextAction(String text, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator) {
     		super(text);
     		putValue(SMALL_ICON, icon);
     		putValue(SHORT_DESCRIPTION, desc);
    @@ -65,23 +65,22 @@ public abstract class RecordableTextAction extends TextAction {
     		putValue(MNEMONIC_KEY, mnemonic);
     		setRecordable(true);
     	}
    -
    -
    +	
     	/**
     	 * This method is final so that you cannot override it and mess up the
    -	 * macro-recording part of it.  The actual meat of the action is in
    +	 * macro-recording part of it. The actual meat of the action is in
     	 * actionPerformedImpl.
     	 *
    -	 * @param e The action being performed.
    +	 * @param e
    +	 *            The action being performed.
     	 * @see #actionPerformedImpl
     	 */
     	@Override
     	public final void actionPerformed(ActionEvent e) {
    -
     		JTextComponent textComponent = getTextComponent(e);
     		if (textComponent instanceof RTextArea) {
    -			RTextArea textArea = (RTextArea)textComponent;
    -			//System.err.println("Recordable action: " + getMacroID());
    +			RTextArea textArea = (RTextArea) textComponent;
    +			// System.err.println("Recordable action: " + getMacroID());
     			if (RTextArea.isRecordingMacro() && isRecordable()) {
     				int mod = e.getModifiers();
     				// We ignore keypresses involving ctrl/alt/meta if they are
    @@ -89,37 +88,33 @@ public abstract class RecordableTextAction extends TextAction {
     				// action like paste (e.g., paste would return Ctrl+V, but
     				// its action would be "paste-action").
     				String macroID = getMacroID();
    -//System.err.println(macroID);
    -//System.err.println("... " + (mod&ActionEvent.ALT_MASK));
    -//System.err.println("... " + (mod&ActionEvent.CTRL_MASK));
    -//System.err.println("... " + (mod&ActionEvent.META_MASK));
    -				if (!DefaultEditorKit.defaultKeyTypedAction.equals(macroID) || (
    -						(mod&ActionEvent.ALT_MASK)==0 &&
    -						(mod&ActionEvent.CTRL_MASK)==0 &&
    -						(mod&ActionEvent.META_MASK)==0)
    -					) {
    +				// System.err.println(macroID);
    +				// System.err.println("... " + (mod&ActionEvent.ALT_MASK));
    +				// System.err.println("... " + (mod&ActionEvent.CTRL_MASK));
    +				// System.err.println("... " + (mod&ActionEvent.META_MASK));
    +				if (!DefaultEditorKit.defaultKeyTypedAction.equals(macroID) || ((mod & ActionEvent.ALT_MASK) == 0
    +						&& (mod & ActionEvent.CTRL_MASK) == 0 && (mod & ActionEvent.META_MASK) == 0)) {
     					String command = e.getActionCommand();
     					RTextArea.addToCurrentMacro(macroID, command);
    -					//System.err.println("... recording it!");
    +					// System.err.println("... recording it!");
     				}
     			}
     			actionPerformedImpl(e, textArea);
     		}
    -
     	}
    -
    -
    +	
     	/**
    -	 * The actual meat of the action.  If you wish to subclass this action
    +	 * The actual meat of the action. If you wish to subclass this action
     	 * and modify its behavior, this is the method to override.
     	 *
    -	 * @param e The action being performed.
    -	 * @param textArea The text area "receiving" the action.
    +	 * @param e
    +	 *            The action being performed.
    +	 * @param textArea
    +	 *            The text area "receiving" the action.
     	 * @see #actionPerformed
     	 */
     	public abstract void actionPerformedImpl(ActionEvent e, RTextArea textArea);
    -
    -
    +	
     	/**
     	 * Returns the accelerator for this action.
     	 *
    @@ -127,36 +122,34 @@ public abstract class RecordableTextAction extends TextAction {
     	 * @see #setAccelerator(KeyStroke)
     	 */
     	public KeyStroke getAccelerator() {
    -		return (KeyStroke)getValue(ACCELERATOR_KEY);
    +		return (KeyStroke) getValue(ACCELERATOR_KEY);
     	}
    -
    -
    +	
     	/**
     	 * Returns the description for this action.
     	 *
     	 * @return The description.
     	 */
     	public String getDescription() {
    -		return (String)getValue(SHORT_DESCRIPTION);
    +		return (String) getValue(SHORT_DESCRIPTION);
     	}
    -
    -
    +	
     	/**
     	 * Returns the icon for this action.
     	 *
     	 * @return The icon.
     	 */
     	public Icon getIcon() {
    -		return (Icon)getValue(SMALL_ICON);
    +		return (Icon) getValue(SMALL_ICON);
     	}
    -
    -
    +	
     	/**
    -	 * Returns the identifier for this macro.  This method makes it so that you
    +	 * Returns the identifier for this macro. This method makes it so that you
     	 * can create an instance of the RTextAreaEditorKit.CutAction
     	 * action, for example, rename it to "Remove", and it will still be
    -	 * recorded as a "cut" action.  Subclasses should return a unique string
    -	 * from this method; preferably the name of the action.

    + * recorded as a "cut" action. Subclasses should return a unique string + * from this method; preferably the name of the action. + *

    * If you subclass a RecordableTextAction, you should NOT * override this method; if you do, the action may not be properly * recorded in a macro. @@ -164,8 +157,7 @@ public abstract class RecordableTextAction extends TextAction { * @return The internally-used macro ID. */ public abstract String getMacroID(); - - + /** * Returns the mnemonic for this action. * @@ -174,11 +166,10 @@ public abstract class RecordableTextAction extends TextAction { * @see #setMnemonic(Integer) */ public int getMnemonic() { - Integer i = (Integer)getValue(MNEMONIC_KEY); - return i!=null ? i.intValue() : -1; + Integer i = (Integer) getValue(MNEMONIC_KEY); + return i != null ? i.intValue() : -1; } - - + /** * Returns the name of this action. * @@ -186,10 +177,9 @@ public abstract class RecordableTextAction extends TextAction { * @see #setName(String) */ public String getName() { - return (String)getValue(NAME); + return (String) getValue(NAME); } - - + /** * Returns whether or not this action will be recorded and replayed in * a macro. @@ -200,91 +190,91 @@ public abstract class RecordableTextAction extends TextAction { public boolean isRecordable() { return isRecordable; } - - + /** * Sets the accelerator for this action. * - * @param accelerator The new accelerator. + * @param accelerator + * The new accelerator. * @see #getAccelerator() */ public void setAccelerator(KeyStroke accelerator) { putValue(ACCELERATOR_KEY, accelerator); } - - + /** * Sets the mnemonic for this action. * - * @param mnemonic The new mnemonic. + * @param mnemonic + * The new mnemonic. * @see #setMnemonic(Integer) * @see #getMnemonic() */ public void setMnemonic(char mnemonic) { setMnemonic(Integer.valueOf(mnemonic)); } - - + /** * Sets the mnemonic for this action. * - * @param mnemonic The new mnemonic. + * @param mnemonic + * The new mnemonic. * @see #setMnemonic(char) * @see #getMnemonic() */ public void setMnemonic(Integer mnemonic) { putValue(MNEMONIC_KEY, mnemonic); } - - + /** * Sets the name of this action. * - * @param name The new name. + * @param name + * The new name. * @see #getName() */ public void setName(String name) { putValue(NAME, name); } - - + /** * Sets the name, mnemonic, and description of this action. * - * @param msg The resource bundle. - * @param keyRoot The root of the keys for the properties. - * ".Name", ".Mnemonic", and - * ".Desc" will be appended to create the key for each - * property. + * @param msg + * The resource bundle. + * @param keyRoot + * The root of the keys for the properties. + * ".Name", ".Mnemonic", and + * ".Desc" will be appended to create the key for + * each + * property. */ public void setProperties(ResourceBundle msg, String keyRoot) { setName(msg.getString(keyRoot + ".Name")); setMnemonic(msg.getString(keyRoot + ".Mnemonic").charAt(0)); setShortDescription(msg.getString(keyRoot + ".Desc")); } - - + /** * Sets whether or not this action will be recorded and replayed in * a macro. * - * @param recordable Whether or not this action should be recorded - * and replayed. + * @param recordable + * Whether or not this action should be recorded + * and replayed. * @see #isRecordable() */ public void setRecordable(boolean recordable) { isRecordable = recordable; } - - + /** * Sets the short description for this action. * - * @param shortDesc The short description for this action. + * @param shortDesc + * The short description for this action. */ public void setShortDescription(String shortDesc) { putValue(SHORT_DESCRIPTION, shortDesc); } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/RegExReplaceInfo.java b/src/org/fife/ui/rtextarea/RegExReplaceInfo.java index 808a1c6..339a120 100644 --- a/src/org/fife/ui/rtextarea/RegExReplaceInfo.java +++ b/src/org/fife/ui/rtextarea/RegExReplaceInfo.java @@ -1,14 +1,11 @@ /* * 02/19/2006 - * * RegExReplaceInfo.java - Information about a regex text match. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; - /** * Information on how to implement a regular expression "replace" operation. * @@ -16,32 +13,34 @@ package org.fife.ui.rtextarea; * @version 1.0 */ class RegExReplaceInfo { - + private String matchedText; private int startIndex; private int endIndex; private String replacement; - - + /** * Constructor. * - * @param matchedText The text that matched the regular expression. - * @param start The start index of the matched text in the - * CharSequence searched. - * @param end The end index of the matched text in the - * CharSequence searched. - * @param replacement The text to replace the matched text with. This - * string has any matched groups and character escapes replaced. + * @param matchedText + * The text that matched the regular expression. + * @param start + * The start index of the matched text in the + * CharSequence searched. + * @param end + * The end index of the matched text in the + * CharSequence searched. + * @param replacement + * The text to replace the matched text with. This + * string has any matched groups and character escapes replaced. */ - RegExReplaceInfo(String matchedText, int start, int end, - String replacement) { + RegExReplaceInfo(String matchedText, int start, int end, String replacement) { this.matchedText = matchedText; this.startIndex = start; this.endIndex = end; this.replacement = replacement; } - + /** * Returns the end index of the matched text. * @@ -52,7 +51,7 @@ class RegExReplaceInfo { public int getEndIndex() { return endIndex; } - + /** * Returns the text that matched the regular expression. * @@ -61,7 +60,7 @@ class RegExReplaceInfo { public String getMatchedText() { return matchedText; } - + /** * Returns the string to replaced the matched text with. * @@ -70,7 +69,7 @@ class RegExReplaceInfo { public String getReplacement() { return replacement; } - + /** * Returns the start index of the matched text. * @@ -81,5 +80,4 @@ class RegExReplaceInfo { public int getStartIndex() { return startIndex; } - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/SearchContext.java b/src/org/fife/ui/rtextarea/SearchContext.java index 87fe400..05c9a65 100644 --- a/src/org/fife/ui/rtextarea/SearchContext.java +++ b/src/org/fife/ui/rtextarea/SearchContext.java @@ -1,9 +1,7 @@ /* * 02/17/2012 - * * SearchContext.java - Container for options of a search/replace operation. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -11,12 +9,11 @@ package org.fife.ui.rtextarea; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; - /** - * Contains information about a find/replace operation. Applications can + * Contains information about a find/replace operation. Applications can * keep an instance of this class around and use it to maintain the user's * selection for options such as "match case," "regular expression," etc., - * between search operations. They can then pass the instance as a parameter + * between search operations. They can then pass the instance as a parameter * to the public {@link SearchEngine} methods to do the actual searching. * * @author Robert Futrell @@ -24,31 +21,25 @@ import java.beans.PropertyChangeSupport; * @see SearchEngine */ public class SearchContext implements Cloneable { - + /** Fired when the "search for" property is modified. */ - public static final String PROPERTY_SEARCH_FOR = "Search.searchFor"; - + public static final String PROPERTY_SEARCH_FOR = "Search.searchFor"; /** Fired when the "replace with" property is modified. */ - public static final String PROPERTY_REPLACE_WITH = "Search.replaceWith"; - + public static final String PROPERTY_REPLACE_WITH = "Search.replaceWith"; /** Fired when the "match case" property is toggled. */ - public static final String PROPERTY_MATCH_CASE = "Search.MatchCase"; - + public static final String PROPERTY_MATCH_CASE = "Search.MatchCase"; /** Fired when the "whole word" property is toggled. */ - public static final String PROPERTY_MATCH_WHOLE_WORD = "Search.MatchWholeWord"; - + public static final String PROPERTY_MATCH_WHOLE_WORD = "Search.MatchWholeWord"; /** Fired when search direction is toggled. */ public static final String PROPERTY_SEARCH_FORWARD = "Search.Forward"; - - /** Fired when "search in selection" is toggled (not currently supported). */ + /** + * Fired when "search in selection" is toggled (not currently supported). + */ public static final String PROPERTY_SELECTION_ONLY = "Search.SelectionOnly"; - /** Fired when "use regular expressions" is toggled. */ - public static final String PROPERTY_USE_REGEX = "Search.UseRegex"; - + public static final String PROPERTY_USE_REGEX = "Search.UseRegex"; /** Fired when the user toggles the "Mark All" property. */ public static final String PROPERTY_MARK_ALL = "Search.MarkAll"; - private String searchFor; private String replaceWith; private boolean forward; @@ -57,36 +48,35 @@ public class SearchContext implements Cloneable { private boolean regex; private boolean selectionOnly; private boolean markAll; - private PropertyChangeSupport support; - - + /** - * Creates a new search context. Specifies a forward search, + * Creates a new search context. Specifies a forward search, * case-insensitive, not whole-word, not a regular expression. */ public SearchContext() { this(null); } - - + /** - * Creates a new search context. Specifies a forward search, + * Creates a new search context. Specifies a forward search, * case-insensitive, not whole-word, not a regular expression. * - * @param searchFor The text to search for. + * @param searchFor + * The text to search for. */ public SearchContext(String searchFor) { this(searchFor, false); } - - + /** - * Creates a new search context. Specifies a forward search, not + * Creates a new search context. Specifies a forward search, not * whole-word, not a regular expression. * - * @param searchFor The text to search for. - * @param matchCase Whether to do a case-sensitive search. + * @param searchFor + * The text to search for. + * @param matchCase + * Whether to do a case-sensitive search. */ public SearchContext(String searchFor, boolean matchCase) { support = new PropertyChangeSupport(this); @@ -95,24 +85,23 @@ public class SearchContext implements Cloneable { markAll = true; forward = true; } - - + /** * Adds a property change listener to this context. * - * @param l The new listener. + * @param l + * The new listener. * @see #removePropertyChangeListener(PropertyChangeListener) */ public void addPropertyChangeListener(PropertyChangeListener l) { support.addPropertyChangeListener(l); } - - + @Override public SearchContext clone() { try { SearchContext context = null; - context = (SearchContext)super.clone(); + context = (SearchContext) super.clone(); // Don't copy over listeners context.support = new PropertyChangeSupport(context); return context; @@ -120,20 +109,15 @@ public class SearchContext implements Cloneable { throw new RuntimeException("Should never happen", cnse); } } - - - protected void firePropertyChange(String property, boolean oldValue, - boolean newValue) { + + protected void firePropertyChange(String property, boolean oldValue, boolean newValue) { support.firePropertyChange(property, oldValue, newValue); } - - - protected void firePropertyChange(String property, String oldValue, - String newValue) { + + protected void firePropertyChange(String property, String oldValue, String newValue) { support.firePropertyChange(property, oldValue, newValue); } - - + /** * Returns whether "mark all" should be selected or enabled. * @@ -143,8 +127,7 @@ public class SearchContext implements Cloneable { public boolean getMarkAll() { return markAll; } - - + /** * Returns whether case should be honored while searching. * @@ -154,8 +137,7 @@ public class SearchContext implements Cloneable { public boolean getMatchCase() { return matchCase; } - - + /** * Returns the text to replace with, if doing a replace operation. * @@ -166,8 +148,7 @@ public class SearchContext implements Cloneable { public String getReplaceWith() { return replaceWith; } - - + /** * Returns the text to search for. * @@ -178,8 +159,7 @@ public class SearchContext implements Cloneable { public String getSearchFor() { return searchFor; } - - + /** * Returns whether the search should be forward through the text (vs. * backwards). @@ -190,8 +170,7 @@ public class SearchContext implements Cloneable { public boolean getSearchForward() { return forward; } - - + /** * Returns whether the search should only be done in the selected text. * This flag is currently not supported. @@ -202,10 +181,9 @@ public class SearchContext implements Cloneable { public boolean getSearchSelectionOnly() { return selectionOnly; } - - + /** - * Returns whether only "whole word" matches should be returned. A match + * Returns whether only "whole word" matches should be returned. A match * is considered to be "whole word" if the character on either side of the * matched text is a non-word character, or if there is no character on * one side of the word, such as when it's at the beginning or end of a @@ -217,8 +195,7 @@ public class SearchContext implements Cloneable { public boolean getWholeWord() { return wholeWord; } - - + /** * Returns whether a regular expression search should be done. * @@ -228,171 +205,158 @@ public class SearchContext implements Cloneable { public boolean isRegularExpression() { return regex; } - - + /** * Removes a property change listener from this context. * - * @param l The listener to remove. + * @param l + * The listener to remove. * @see #addPropertyChangeListener(PropertyChangeListener) */ public void removePropertyChangeListener(PropertyChangeListener l) { support.removePropertyChangeListener(l); } - - + /** - * Sets whether "mark all" should be selected or enabled. This method + * Sets whether "mark all" should be selected or enabled. This method * fires property change events of type {@link #PROPERTY_MARK_ALL}. * - * @param markAll Whether "mark all" should be enabled. + * @param markAll + * Whether "mark all" should be enabled. * @see #getMarkAll() */ public void setMarkAll(boolean markAll) { - if (markAll!=this.markAll) { + if (markAll != this.markAll) { this.markAll = markAll; firePropertyChange(PROPERTY_MARK_ALL, !markAll, markAll); } } - - + /** * Sets whether case should be honored while searching. This method * fires a property change event of type {@link #PROPERTY_MATCH_CASE}. * - * @param matchCase Whether case should be honored. + * @param matchCase + * Whether case should be honored. * @see #getMatchCase() */ public void setMatchCase(boolean matchCase) { - if (matchCase!=this.matchCase) { + if (matchCase != this.matchCase) { this.matchCase = matchCase; firePropertyChange(PROPERTY_MATCH_CASE, !matchCase, matchCase); } } - - + /** * Sets whether a regular expression search should be done.This method * fires a property change event of type {@link #PROPERTY_USE_REGEX}. * - * @param regex Whether a regular expression search should be done. + * @param regex + * Whether a regular expression search should be done. * @see #isRegularExpression() */ public void setRegularExpression(boolean regex) { - if (regex!=this.regex) { + if (regex != this.regex) { this.regex = regex; firePropertyChange(PROPERTY_USE_REGEX, !regex, regex); } } - - + /** - * Sets the text to replace with, if doing a replace operation. This + * Sets the text to replace with, if doing a replace operation. This * method fires a property change event of type * {@link #PROPERTY_REPLACE_WITH}. * - * @param replaceWith The text to replace with. + * @param replaceWith + * The text to replace with. * @see #getReplaceWith() * @see #setSearchFor(String) */ public void setReplaceWith(String replaceWith) { - if ((replaceWith==null && this.replaceWith!=null) || - (replaceWith!=null && !replaceWith.equals(this.replaceWith))) { + if ((replaceWith == null && this.replaceWith != null) || (replaceWith != null && !replaceWith.equals(this.replaceWith))) { String old = this.replaceWith; this.replaceWith = replaceWith; firePropertyChange(PROPERTY_REPLACE_WITH, old, replaceWith); } } - - + /** - * Sets the text to search for. This method fires a property change + * Sets the text to search for. This method fires a property change * event of type {@link #PROPERTY_SEARCH_FOR}. * - * @param searchFor The text to search for. + * @param searchFor + * The text to search for. * @see #getSearchFor() * @see #setReplaceWith(String) */ public void setSearchFor(String searchFor) { - if ((searchFor==null && this.searchFor!=null) || - (searchFor!=null && !searchFor.equals(this.searchFor))) { + if ((searchFor == null && this.searchFor != null) || (searchFor != null && !searchFor.equals(this.searchFor))) { String old = this.searchFor; this.searchFor = searchFor; firePropertyChange(PROPERTY_SEARCH_FOR, old, searchFor); } } - - + /** * Sets whether the search should be forward through the text (vs. - * backwards). This method fires a property change event of type + * backwards). This method fires a property change event of type * {@link #PROPERTY_SEARCH_FORWARD}. * - * @param forward Whether we should search forwards. + * @param forward + * Whether we should search forwards. * @see #getSearchForward() */ public void setSearchForward(boolean forward) { - if (forward!=this.forward) { + if (forward != this.forward) { this.forward = forward; firePropertyChange(PROPERTY_SEARCH_FORWARD, !forward, forward); } } - - + /** - * Sets whether only the selected text should be searched. This method + * Sets whether only the selected text should be searched. This method * fires a property change event of type {@link #PROPERTY_SELECTION_ONLY}. *

    * - * This flag is currently not supported. Calling this method will throw + * This flag is currently not supported. Calling this method will throw * an {@link UnsupportedOperationException} until it is implemented. * - * @param selectionOnly Whether only selected text should be searched. + * @param selectionOnly + * Whether only selected text should be searched. * @see #getSearchSelectionOnly() */ public void setSearchSelectionOnly(boolean selectionOnly) { - if (selectionOnly!=this.selectionOnly) { + if (selectionOnly != this.selectionOnly) { this.selectionOnly = selectionOnly; - firePropertyChange(PROPERTY_SELECTION_ONLY, - !selectionOnly, selectionOnly); + firePropertyChange(PROPERTY_SELECTION_ONLY, !selectionOnly, selectionOnly); if (selectionOnly) { - throw new UnsupportedOperationException( - "Searching in selection is not currently supported"); + throw new UnsupportedOperationException("Searching in selection is not currently supported"); } } } - - + /** - * Sets whether only "whole word" matches should be returned. A match + * Sets whether only "whole word" matches should be returned. A match * is considered to be "whole word" if the character on either side of the * matched text is a non-word character, or if there is no character on * one side of the word, such as when it's at the beginning or end of a * line.This method fires a property change event of type * {@link #PROPERTY_MATCH_WHOLE_WORD}. * - * @param wholeWord Whether only "whole word" matches should be returned. + * @param wholeWord + * Whether only "whole word" matches should be returned. * @see #getWholeWord() */ public void setWholeWord(boolean wholeWord) { - if (wholeWord!=this.wholeWord) { + if (wholeWord != this.wholeWord) { this.wholeWord = wholeWord; - firePropertyChange(PROPERTY_MATCH_WHOLE_WORD, !wholeWord,wholeWord); + firePropertyChange(PROPERTY_MATCH_WHOLE_WORD, !wholeWord, wholeWord); } } - - + @Override public String toString() { - return "[SearchContext: " + - "searchFor=" + getSearchFor() + - ", replaceWith=" + getReplaceWith() + - ", matchCase=" + getMatchCase() + - ", wholeWord=" + getWholeWord() + - ", regex=" + isRegularExpression() + - ", markAll=" + getMarkAll() + - "]"; + return "[SearchContext: " + "searchFor=" + getSearchFor() + ", replaceWith=" + getReplaceWith() + ", matchCase=" + getMatchCase() + + ", wholeWord=" + getWholeWord() + ", regex=" + isRegularExpression() + ", markAll=" + getMarkAll() + "]"; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/SearchEngine.java b/src/org/fife/ui/rtextarea/SearchEngine.java index 91b4729..eb5cf85 100644 --- a/src/org/fife/ui/rtextarea/SearchEngine.java +++ b/src/org/fife/ui/rtextarea/SearchEngine.java @@ -1,9 +1,7 @@ /* * 02/19/2006 - * * SearchEngine.java - Handles find/replace operations in an RTextArea. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -23,17 +21,16 @@ import javax.swing.text.Caret; import org.fife.ui.rsyntaxtextarea.DocumentRange; import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; - /** * A singleton class that can perform advanced find/replace operations - * in an {@link RTextArea}. Simply create a {@link SearchContext} and call + * in an {@link RTextArea}. Simply create a {@link SearchContext} and call * one of the following methods: * *

      - *
    • {@link #find(JTextArea, SearchContext)} - *
    • {@link #replace(RTextArea, SearchContext)} - *
    • {@link #replaceAll(RTextArea, SearchContext)} - *
    • {@link #markAll(RTextArea, SearchContext)} + *
    • {@link #find(JTextArea, SearchContext)} + *
    • {@link #replace(RTextArea, SearchContext)} + *
    • {@link #replaceAll(RTextArea, SearchContext)} + *
    • {@link #markAll(RTextArea, SearchContext)} *
    * * @author Robert Futrell @@ -41,283 +38,258 @@ import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; * @see SearchContext */ public final class SearchEngine { - - + /** * Private constructor to prevent instantiation. */ - private SearchEngine() { - } - - + private SearchEngine() {} + /** * Finds the next instance of the string/regular expression specified - * from the caret position. If a match is found, it is selected in this + * from the caret position. If a match is found, it is selected in this * text area. * - * @param textArea The text area in which to search. - * @param context What to search for and all search options. + * @param textArea + * The text area in which to search. + * @param context + * What to search for and all search options. * @return The result of the operation. - * @throws PatternSyntaxException If this is a regular expression search - * but the search text is an invalid regular expression. + * @throws PatternSyntaxException + * If this is a regular expression search + * but the search text is an invalid regular expression. * @see #replace(RTextArea, SearchContext) * @see #replaceAll(RTextArea, SearchContext) */ public static SearchResult find(JTextArea textArea, SearchContext context) { - // Always clear previous "mark all" highlights if (textArea instanceof RTextArea || context.getMarkAll()) { - ((RTextArea)textArea).clearMarkAllHighlights(); + ((RTextArea) textArea).clearMarkAllHighlights(); } boolean doMarkAll = textArea instanceof RTextArea && context.getMarkAll(); - String text = context.getSearchFor(); - if (text==null || text.length()==0) { + if (text == null || text.length() == 0) { if (doMarkAll) { // Force "mark all" event to be broadcast so listeners know to - // clear their mark-all markers. The RSTA already cleared its + // clear their mark-all markers. The RSTA already cleared its // highlights above, but cleraMarkAllHighlights() doesn't fire // an event itself for performance reasons. List emptyRangeList = Collections.emptyList(); - ((RTextArea)textArea).markAll(emptyRangeList); + ((RTextArea) textArea).markAll(emptyRangeList); } return new SearchResult(); } - - // Be smart about what position we're "starting" at. We don't want + // Be smart about what position we're "starting" at. We don't want // to find a match in the currently selected text (if any), so we // start searching AFTER the selection if searching forward, and // BEFORE the selection if searching backward. Caret c = textArea.getCaret(); boolean forward = context.getSearchForward(); - int start = forward ? Math.max(c.getDot(), c.getMark()) : - Math.min(c.getDot(), c.getMark()); - + int start = forward ? Math.max(c.getDot(), c.getMark()) : Math.min(c.getDot(), c.getMark()); String findIn = getFindInText(textArea, start, forward); - if (findIn==null || findIn.length()==0) { + if (findIn == null || findIn.length() == 0) { return new SearchResult(); } - int markAllCount = 0; if (doMarkAll) { - markAllCount = markAllImpl((RTextArea)textArea, context). - getMarkedCount(); + markAllCount = markAllImpl((RTextArea) textArea, context).getMarkedCount(); } - SearchResult result = SearchEngine.findImpl(findIn, context); if (result.wasFound() && !result.getMatchRange().isZeroLength()) { // Without this, if JTextArea isn't in focus, selection // won't appear selected. textArea.getCaret().setSelectionVisible(true); - if (forward && start>-1) { + if (forward && start > -1) { result.getMatchRange().translate(start); } - RSyntaxUtilities.selectAndPossiblyCenter(textArea, - result.getMatchRange(), true); + RSyntaxUtilities.selectAndPossiblyCenter(textArea, result.getMatchRange(), true); } - result.setMarkedCount(markAllCount); return result; - } - - + /** * Finds the next instance of the string/regular expression specified - * from the caret position. If a match is found, it is selected in this + * from the caret position. If a match is found, it is selected in this * text area. * - * @param findIn The text to search in. - * @param context The search context. - * @return The result of the operation. "Mark all" will always be zero, + * @param findIn + * The text to search in. + * @param context + * The search context. + * @return The result of the operation. "Mark all" will always be zero, * since this method does not perform that operation. - * @throws PatternSyntaxException If this is a regular expression search - * but the search text is an invalid regular expression. + * @throws PatternSyntaxException + * If this is a regular expression search + * but the search text is an invalid regular expression. */ private static SearchResult findImpl(String findIn, SearchContext context) { - String text = context.getSearchFor(); boolean forward = context.getSearchForward(); - // Find the next location of the text we're searching for. DocumentRange range = null; if (!context.isRegularExpression()) { - int pos = getNextMatchPos(text, findIn, forward, - context.getMatchCase(), context.getWholeWord()); + int pos = getNextMatchPos(text, findIn, forward, context.getMatchCase(), context.getWholeWord()); findIn = null; // May help garbage collecting. - if (pos!=-1) { - range = new DocumentRange(pos, pos+text.length()); + if (pos != -1) { + range = new DocumentRange(pos, pos + text.length()); } - } - - else { - // Regex matches can have varying widths. The returned point's + } else { + // Regex matches can have varying widths. The returned point's // x- and y-values represent the start and end indices of the // match in findIn. Point regExPos = null; int start = 0; do { - regExPos = getNextMatchPosRegEx(text, findIn.substring(start), - forward, context.getMatchCase(), context.getWholeWord()); - if (regExPos!=null) { - if (regExPos.x!=regExPos.y) { + regExPos = getNextMatchPosRegEx(text, findIn.substring(start), forward, context.getMatchCase(), context.getWholeWord()); + if (regExPos != null) { + if (regExPos.x != regExPos.y) { regExPos.translate(start, start); range = new DocumentRange(regExPos.x, regExPos.y); - } - else { + } else { start += regExPos.x + 1; } } - } while (startCharSequence for a text area that doesn't make a - * copy of its contents for iteration. This conserves memory but is likely + * copy of its contents for iteration. This conserves memory but is likely * just a tad slower. * - * @param textArea The text area whose document is the basis for the - * CharSequence. - * @param start The starting offset of the sequence (or ending offset if - * forward is false). - * @param forward Whether we're searching forward or backward. + * @param textArea + * The text area whose document is the basis for the + * CharSequence. + * @param start + * The starting offset of the sequence (or ending offset if + * forward is false). + * @param forward + * Whether we're searching forward or backward. * @return The character sequence. */ - private static CharSequence getFindInCharSequence(RTextArea textArea, - int start, boolean forward) { - RDocument doc = (RDocument)textArea.getDocument(); + private static CharSequence getFindInCharSequence(RTextArea textArea, int start, boolean forward) { + RDocument doc = (RDocument) textArea.getDocument(); int csStart = 0; int csEnd = 0; if (forward) { csStart = start; csEnd = doc.getLength(); - } - else { + } else { csStart = 0; csEnd = start; } return new RDocumentCharSequence(doc, csStart, csEnd); } - - + /** - * Returns the text in which to search, as a string. This is used + * Returns the text in which to search, as a string. This is used * internally to grab the smallest buffer possible in which to search. */ - private static String getFindInText(JTextArea textArea, int start, - boolean forward) { - - // Be smart about the text we grab to search in. We grab more than + private static String getFindInText(JTextArea textArea, int start, boolean forward) { + // Be smart about the text we grab to search in. We grab more than // a single line because our searches can return multi-line results. // We copy only the chars that will be searched through. String findIn = null; try { if (forward) { - findIn = textArea.getText(start, - textArea.getDocument().getLength()-start); - } - else { // backward + findIn = textArea.getText(start, textArea.getDocument().getLength() - start); + } else { // backward findIn = textArea.getText(0, start); } } catch (BadLocationException ble) { // Never happens; findIn will be null anyway. ble.printStackTrace(); } - return findIn; - } - - + /** * This method is called internally by * getNextMatchPosRegExImpl and is used to get the locations * of all regular-expression matches, and possibly their replacement - * strings.

    + * strings. + *

    * * Returns either: *

      - *
    • A list of points representing the starting and ending positions - * of all matches returned by the specified matcher, or - *
    • A list of RegExReplaceInfos describing the matches - * found by the matcher and the replacement strings for each. + *
    • A list of points representing the starting and ending positions + * of all matches returned by the specified matcher, or + *
    • A list of RegExReplaceInfos describing the matches + * found by the matcher and the replacement strings for each. *
    * * If replacement is null, this method call is - * assumed to be part of a "find" operation and points are returned. If + * assumed to be part of a "find" operation and points are returned. If * if is non-null, it is assumed to be part of a "replace" - * operation and the RegExReplaceInfos are returned.

    + * operation and the RegExReplaceInfos are returned. + *

    * - * @param m The matcher. - * @param replaceStr The string to replace matches with. This is a - * "template" string and can contain captured group references in - * the form "${digit}". + * @param m + * The matcher. + * @param replaceStr + * The string to replace matches with. This is a + * "template" string and can contain captured group references in + * the form "${digit}". * @return A list of result objects. - * @throws IndexOutOfBoundsException If replaceStr references - * an invalid group (less than zero or greater than the number of - * groups matched). + * @throws IndexOutOfBoundsException + * If replaceStr references + * an invalid group (less than zero or greater than the number + * of + * groups matched). */ @SuppressWarnings({ "rawtypes", "unchecked" }) private static List getMatches(Matcher m, String replaceStr) { ArrayList matches = new ArrayList(); while (m.find()) { Point loc = new Point(m.start(), m.end()); - if (replaceStr==null) { // Find, not replace. + if (replaceStr == null) { // Find, not replace. matches.add(loc); - } - else { // Replace. - matches.add(new RegExReplaceInfo(m.group(0), loc.x, loc.y, - getReplacementText(m, replaceStr))); + } else { // Replace. + matches.add(new RegExReplaceInfo(m.group(0), loc.x, loc.y, getReplacementText(m, replaceStr))); } } return matches; } - - + /** * Searches searchIn for an occurrence of * searchFor either forwards or backwards, matching - * case or not.

    + * case or not. + *

    * * Most clients will have no need to call this method directly. * - * @param searchFor The string to look for. - * @param searchIn The string to search in. - * @param forward Whether to search forward or backward in - * searchIn. - * @param matchCase If true, do a case-sensitive search for - * searchFor. - * @param wholeWord If true, searchFor - * occurrences embedded in longer words in searchIn - * don't count as matches. + * @param searchFor + * The string to look for. + * @param searchIn + * The string to search in. + * @param forward + * Whether to search forward or backward in + * searchIn. + * @param matchCase + * If true, do a case-sensitive search for + * searchFor. + * @param wholeWord + * If true, searchFor + * occurrences embedded in longer words in searchIn + * don't count as matches. * @return The starting position of a match, or -1 if no * match was found. */ - public static int getNextMatchPos(String searchFor, String searchIn, - boolean forward, boolean matchCase, - boolean wholeWord) { - + public static int getNextMatchPos(String searchFor, String searchIn, boolean forward, boolean matchCase, boolean wholeWord) { // Make our variables lower case if we're ignoring case. if (!matchCase) { - return getNextMatchPosImpl(searchFor.toLowerCase(), - searchIn.toLowerCase(), forward, - matchCase, wholeWord); + return getNextMatchPosImpl(searchFor.toLowerCase(), searchIn.toLowerCase(), forward, matchCase, wholeWord); } - - return getNextMatchPosImpl(searchFor, searchIn, forward, - matchCase, wholeWord); - + return getNextMatchPosImpl(searchFor, searchIn, forward, matchCase, wholeWord); } - - + /** * Actually does the work of matching; assumes searchFor and searchIn * are already upper/lower-cased appropriately.
    @@ -327,18 +299,20 @@ public final class SearchEngine { * performance as it no longer has to allocate a lower-cased string for * every call. * - * @param searchFor The string to search for. - * @param searchIn The string to search in. - * @param goForward Whether the search is forward or backward. - * @param matchCase Whether the search is case-sensitive. - * @param wholeWord Whether only whole words should be matched. + * @param searchFor + * The string to search for. + * @param searchIn + * The string to search in. + * @param goForward + * Whether the search is forward or backward. + * @param matchCase + * Whether the search is case-sensitive. + * @param wholeWord + * Whether only whole words should be matched. * @return The location of the next match, or -1 if no * match was found. */ - private static int getNextMatchPosImpl(String searchFor, - String searchIn, boolean goForward, - boolean matchCase, boolean wholeWord) { - + private static int getNextMatchPosImpl(String searchFor, String searchIn, boolean goForward, boolean matchCase, boolean wholeWord) { if (wholeWord) { int len = searchFor.length(); int temp = goForward ? 0 : searchIn.length(); @@ -346,97 +320,100 @@ public final class SearchEngine { while (true) { if (goForward) { temp = searchIn.indexOf(searchFor, temp); - } - else { + } else { temp = searchIn.lastIndexOf(searchFor, temp); } - if (temp!=-1) { + if (temp != -1) { if (isWholeWord(searchIn, temp, len)) { return temp; - } - else { + } else { temp += tempChange; continue; } } return temp; // Always -1. } + } else { + return goForward ? searchIn.indexOf(searchFor) : searchIn.lastIndexOf(searchFor); } - else { - return goForward ? searchIn.indexOf(searchFor) : - searchIn.lastIndexOf(searchFor); - } - } - - + /** * Searches searchIn for an occurrence of regEx * either forwards or backwards, matching case or not. * - * @param regEx The regular expression to look for. - * @param searchIn The string to search in. - * @param goForward Whether to search forward. If false, - * search backward. - * @param matchCase Whether or not to do a case-sensitive search for - * regEx. - * @param wholeWord If true, regEx - * occurrences embedded in longer words in searchIn - * don't count as matches. + * @param regEx + * The regular expression to look for. + * @param searchIn + * The string to search in. + * @param goForward + * Whether to search forward. If false, + * search backward. + * @param matchCase + * Whether or not to do a case-sensitive search for + * regEx. + * @param wholeWord + * If true, regEx + * occurrences embedded in longer words in searchIn + * don't count as matches. * @return A Point representing the starting and ending * position of the match, or null if no match was * found. - * @throws PatternSyntaxException If regEx is an invalid - * regular expression. + * @throws PatternSyntaxException + * If regEx is an invalid + * regular expression. * @see #getNextMatchPos */ - private static Point getNextMatchPosRegEx(String regEx, - CharSequence searchIn, boolean goForward, - boolean matchCase, boolean wholeWord) { - return (Point)getNextMatchPosRegExImpl(regEx, searchIn, goForward, - matchCase, wholeWord, null); + private static Point getNextMatchPosRegEx(String regEx, CharSequence searchIn, boolean goForward, boolean matchCase, + boolean wholeWord) { + return (Point) getNextMatchPosRegExImpl(regEx, searchIn, goForward, matchCase, wholeWord, null); } - - + /** * Searches searchIn for an occurrence of regEx * either forwards or backwards, matching case or not. * - * @param regEx The regular expression to look for. - * @param searchIn The string to search in. - * @param goForward Whether to search forward. If false, - * search backward. - * @param matchCase Whether or not to do a case-sensitive search for - * regEx. - * @param wholeWord If true, regEx - * occurrences embedded in longer words in searchIn - * don't count as matches. - * @param replaceStr The string that will replace the match found (if - * a match is found). The object returned will contain the - * replacement string with matched groups substituted. If this - * value is null, it is assumed this call is part of a - * "find" instead of a "replace" operation. + * @param regEx + * The regular expression to look for. + * @param searchIn + * The string to search in. + * @param goForward + * Whether to search forward. If false, + * search backward. + * @param matchCase + * Whether or not to do a case-sensitive search for + * regEx. + * @param wholeWord + * If true, regEx + * occurrences embedded in longer words in searchIn + * don't count as matches. + * @param replaceStr + * The string that will replace the match found (if + * a match is found). The object returned will contain the + * replacement string with matched groups substituted. If this + * value is null, it is assumed this call is part of + * a + * "find" instead of a "replace" operation. * @return If replaceStr is null, a * Point representing the starting and ending points - * of the match. If it is non-null, an object with + * of the match. If it is non-null, an object with * information about the match and the morphed string to replace - * it with. If no match is found, null is returned. - * @throws PatternSyntaxException If regEx is an invalid - * regular expression. - * @throws IndexOutOfBoundsException If replaceStr references - * an invalid group (less than zero or greater than the number of - * groups matched). + * it with. If no match is found, null is returned. + * @throws PatternSyntaxException + * If regEx is an invalid + * regular expression. + * @throws IndexOutOfBoundsException + * If replaceStr references + * an invalid group (less than zero or greater than the number + * of + * groups matched). * @see #getNextMatchPos */ - private static Object getNextMatchPosRegExImpl(String regEx, - CharSequence searchIn, boolean goForward, - boolean matchCase, boolean wholeWord, - String replaceStr) { - + private static Object getNextMatchPosRegExImpl(String regEx, CharSequence searchIn, boolean goForward, boolean matchCase, + boolean wholeWord, String replaceStr) { if (wholeWord) { regEx = "\\b" + regEx + "\\b"; } - // Make a pattern that takes into account whether or not to match case. int flags = Pattern.MULTILINE; // '^' and '$' are done per line. flags = RSyntaxUtilities.getPatternFlags(matchCase, flags); @@ -446,106 +423,101 @@ public final class SearchEngine { } catch (PatternSyntaxException pse) { return null; // e.g. a "mark all" request with incomplete regex } - // Make a Matcher to find the regEx instances. Matcher m = pattern.matcher(searchIn); - // Search forwards if (goForward) { if (m.find()) { - if (replaceStr==null) { // Find, not replace. + if (replaceStr == null) { // Find, not replace. return new Point(m.start(), m.end()); } // Otherwise, replace - return new RegExReplaceInfo(m.group(0), - m.start(), m.end(), - getReplacementText(m, replaceStr)); + return new RegExReplaceInfo(m.group(0), m.start(), m.end(), getReplacementText(m, replaceStr)); } } - // Search backwards else { List matches = getMatches(m, replaceStr); if (!matches.isEmpty()) { - return matches.get(matches.size()-1); + return matches.get(matches.size() - 1); } } - return null; // No match found - } - - + /** * Returns information on how to implement a regular expression "replace" * action in the specified text with the specified replacement string. * - * @param searchIn The string to search in. - * @param context The search options. + * @param searchIn + * The string to search in. + * @param context + * The search options. * @return A RegExReplaceInfo object describing how to * implement the replace. - * @throws PatternSyntaxException If the search text is an invalid regular - * expression. - * @throws IndexOutOfBoundsException If the replacement text references an - * invalid group (less than zero or greater than the number of - * groups matched). + * @throws PatternSyntaxException + * If the search text is an invalid regular + * expression. + * @throws IndexOutOfBoundsException + * If the replacement text references an + * invalid group (less than zero or greater than the number of + * groups matched). * @see #getNextMatchPos */ - private static RegExReplaceInfo getRegExReplaceInfo(CharSequence searchIn, - SearchContext context) { + private static RegExReplaceInfo getRegExReplaceInfo(CharSequence searchIn, SearchContext context) { // Can't pass null to getNextMatchPosRegExImpl or it'll think // you're doing a "find" operation instead of "replace, and return a // Point. String replacement = context.getReplaceWith(); - if (replacement==null) { + if (replacement == null) { replacement = ""; } String regex = context.getSearchFor(); boolean goForward = context.getSearchForward(); boolean matchCase = context.getMatchCase(); boolean wholeWord = context.getWholeWord(); - return (RegExReplaceInfo)getNextMatchPosRegExImpl(regex, searchIn, - goForward, matchCase, wholeWord, replacement); + return (RegExReplaceInfo) getNextMatchPosRegExImpl(regex, searchIn, goForward, matchCase, wholeWord, replacement); } - - + /** - * Called internally by getMatches(). This method assumes + * Called internally by getMatches(). This method assumes * that the specified matcher has just found a match, and that you want - * to get the string with which to replace that match.

    + * to get the string with which to replace that match. + *

    * * Escapes simply insert the escaped character, except for \n * and \t, which insert a newline and tab respectively. * Substrings of the form $\d+ are considered to be matched - * groups. To include a literal dollar sign in your template, escape it - * (i.e. \$).

    + * groups. To include a literal dollar sign in your template, escape it + * (i.e. \$). + *

    * * Most clients will have no need to call this method directly. * - * @param m The matcher. - * @param template The template for the replacement string. For example, - * "foo" would yield the replacement string - * "foo", while "$1 is the greatest" - * would yield different values depending on the value of the first - * captured group in the match. + * @param m + * The matcher. + * @param template + * The template for the replacement string. For example, + * "foo" would yield the replacement string + * "foo", while "$1 is the greatest" + * would yield different values depending on the value of the + * first + * captured group in the match. * @return The string to replace the match with. - * @throws IndexOutOfBoundsException If template references - * an invalid group (less than zero or greater than the number of - * groups matched). + * @throws IndexOutOfBoundsException + * If template references + * an invalid group (less than zero or greater than the number + * of + * groups matched). */ public static String getReplacementText(Matcher m, CharSequence template) { - // NOTE: This code was mostly ripped off from J2SE's Matcher // class. - // Process substitution string to replace group references with groups int cursor = 0; StringBuilder result = new StringBuilder(); - while (cursor < template.length()) { - char nextChar = template.charAt(cursor); - if (nextChar == '\\') { // Escape character. nextChar = template.charAt(++cursor); switch (nextChar) { // Special cases. @@ -558,22 +530,17 @@ public final class SearchEngine { } result.append(nextChar); cursor++; - } - else if (nextChar == '$') { // Group reference. - + } else if (nextChar == '$') { // Group reference. cursor++; // Skip the '$'. - // The first number is always a group int refNum = template.charAt(cursor) - '0'; - if ((refNum < 0)||(refNum > 9)) { + if ((refNum < 0) || (refNum > 9)) { // This should really be an IllegalArgumentException, // but we cheat to keep all "group" errors throwing // the same exception type. - throw new IndexOutOfBoundsException( - "No group " + template.charAt(cursor)); + throw new IndexOutOfBoundsException("No group " + template.charAt(cursor)); } cursor++; - // Capture the largest legal group string boolean done = false; while (!done) { @@ -581,141 +548,122 @@ public final class SearchEngine { break; } int nextDigit = template.charAt(cursor) - '0'; - if ((nextDigit < 0)||(nextDigit > 9)) { // not a number + if ((nextDigit < 0) || (nextDigit > 9)) { // not a number break; } int newRefNum = (refNum * 10) + nextDigit; if (m.groupCount() < newRefNum) { done = true; - } - else { + } else { refNum = newRefNum; cursor++; } } - // Append group if (m.group(refNum) != null) { result.append(m.group(refNum)); } - - } - - else { + } else { result.append(nextChar); cursor++; } - } - return result.toString(); - } - - + /** * Returns whether the characters on either side of * substr(searchIn, startPos, startPos+searchStringLength) * are not letters or digits. */ - private static boolean isWholeWord(CharSequence searchIn, - int offset, int len) { - + private static boolean isWholeWord(CharSequence searchIn, int offset, int len) { boolean wsBefore, wsAfter; - try { wsBefore = !Character.isLetterOrDigit(searchIn.charAt(offset - 1)); } catch (IndexOutOfBoundsException e) { wsBefore = true; } - try { - wsAfter = !Character.isLetterOrDigit(searchIn.charAt(offset + len)); + wsAfter = !Character.isLetterOrDigit(searchIn.charAt(offset + len)); } catch (IndexOutOfBoundsException e) { wsAfter = true; } - return wsBefore && wsAfter; - } - - + /** * Makes the caret's dot and mark the same location so that, for the * next search in the specified direction, a match will be found even * if it was within the original dot and mark's selection. * - * @param textArea The text area. - * @param forward Whether the search will be forward through the - * document (false means backward). + * @param textArea + * The text area. + * @param forward + * Whether the search will be forward through the + * document (false means backward). * @return The new dot and mark position. */ - private static int makeMarkAndDotEqual(JTextArea textArea, - boolean forward) { + private static int makeMarkAndDotEqual(JTextArea textArea, boolean forward) { Caret c = textArea.getCaret(); - int val = forward ? Math.min(c.getDot(), c.getMark()) : - Math.max(c.getDot(), c.getMark()); + int val = forward ? Math.min(c.getDot(), c.getMark()) : Math.max(c.getDot(), c.getMark()); c.setDot(val); return val; } - - + /** - * Marks all instances of the specified text in this text area. This + * Marks all instances of the specified text in this text area. This * method is typically only called directly in response to search events - * of type SearchEvent.Type.MARK_ALL. "Mark all" behavior + * of type SearchEvent.Type.MARK_ALL. "Mark all" behavior * is automatically performed when {@link #find(JTextArea, SearchContext)} * or {@link #replace(RTextArea, SearchContext)} is called. * - * @param textArea The text area in which to mark occurrences. - * @param context The search context specifying the text to search for. - * It is assumed that context.getMarkAll() has already - * been checked and returns true. + * @param textArea + * The text area in which to mark occurrences. + * @param context + * The search context specifying the text to search for. + * It is assumed that context.getMarkAll() has + * already + * been checked and returns true. * @return The results of the operation. */ - public static SearchResult markAll(RTextArea textArea, - SearchContext context) { + public static SearchResult markAll(RTextArea textArea, SearchContext context) { textArea.clearMarkAllHighlights(); -// if (context.getMarkAll()) { - return markAllImpl(textArea, context); -// } -// return new SearchResult(); + // if (context.getMarkAll()) { + return markAllImpl(textArea, context); + // } + // return new SearchResult(); } - - + /** - * Marks all instances of the specified text in this text area. This + * Marks all instances of the specified text in this text area. This * method is typically only called directly in response to search events - * of type SearchEvent.Type.MARK_ALL. "Mark all" behavior + * of type SearchEvent.Type.MARK_ALL. "Mark all" behavior * is automatically performed when {@link #find(JTextArea, SearchContext)} * or #replace(RTextArea, SearchContext) is called. * - * @param textArea The text area in which to mark occurrences. - * @param context The search context specifying the text to search for. - * It is assumed that context.getMarkAll() has already - * been checked and returns true. + * @param textArea + * The text area in which to mark occurrences. + * @param context + * The search context specifying the text to search for. + * It is assumed that context.getMarkAll() has + * already + * been checked and returns true. * @return The results of the operation. */ - private static SearchResult markAllImpl(RTextArea textArea, - SearchContext context) { - + private static SearchResult markAllImpl(RTextArea textArea, SearchContext context) { String toMark = context.getSearchFor(); int markAllCount = 0; - // context.getMarkAll()==false => clear "mark all" highlights - if (context.getMarkAll() && toMark!=null && toMark.length()>0 - /*&& !toMark.equals(markedWord)*/) { - + if (context.getMarkAll() && toMark != null && toMark.length() > 0 + /* && !toMark.equals(markedWord) */) { List highlights = new ArrayList(); context = context.clone(); context.setSearchForward(true); context.setMarkAll(false); - String findIn = textArea.getText(); int start = 0; - // Optimization for pedantic worst-case of thousands of matches - // while doing a case-insensitive search. Go ahead and normalize + // while doing a case-insensitive search. Go ahead and normalize // case just once, so that toLowerCase() isn't done for toMark and // findIn for each match found. if (!context.getMatchCase()) { @@ -723,20 +671,18 @@ public final class SearchEngine { context.setSearchFor(toMark.toLowerCase()); findIn = findIn.toLowerCase(); } - SearchResult res = SearchEngine.findImpl(findIn, context); while (res.wasFound()) { DocumentRange match = res.getMatchRange().translate(start); if (match.isZeroLength()) { - // Searched for a regex like "foo|". The "empty string" - // part of the regex matches space between chars. We want + // Searched for a regex like "foo|". The "empty string" + // part of the regex matches space between chars. We want // to skip these in the case of mark-all. start = match.getEndOffset() + 1; - if (start>findIn.length()) { + if (start > findIn.length()) { break; } - } - else { + } else { highlights.add(match); start = match.getEndOffset(); } @@ -744,70 +690,62 @@ public final class SearchEngine { } textArea.markAll(highlights); markAllCount = highlights.size(); - } - - else { + } else { // Force a repaint of "mark all" highlights so ErrorStrips can // get updated List empty = Collections.emptyList(); textArea.markAll(empty); } - return new SearchResult(null, 0, markAllCount); - } - - + /** * Finds the next instance of the regular expression specified from - * the caret position. If a match is found, it is replaced with + * the caret position. If a match is found, it is replaced with * the specified replacement string. * - * @param textArea The text area in which to search. - * @param context What to search for and all search options. + * @param textArea + * The text area in which to search. + * @param context + * What to search for and all search options. * @return The result of the operation. - * @throws PatternSyntaxException If this is a regular expression search - * but the search text is an invalid regular expression. - * @throws IndexOutOfBoundsException If this is a regular expression search - * but the replacement text references an invalid group (less than - * zero or greater than the number of groups matched). + * @throws PatternSyntaxException + * If this is a regular expression search + * but the search text is an invalid regular expression. + * @throws IndexOutOfBoundsException + * If this is a regular expression search + * but the replacement text references an invalid group (less + * than + * zero or greater than the number of groups matched). * @see #replace(RTextArea, SearchContext) * @see #find(JTextArea, SearchContext) */ - private static SearchResult regexReplace(RTextArea textArea, - SearchContext context) { - - // Be smart about what position we're "starting" at. For example, + private static SearchResult regexReplace(RTextArea textArea, SearchContext context) { + // Be smart about what position we're "starting" at. For example, // if they are searching backwards and there is a selection such that // the dot is past the mark, and the selection is the text for which // you're searching, this search will find and return the current - // selection. So, in that case we start at the beginning of the + // selection. So, in that case we start at the beginning of the // selection. Caret c = textArea.getCaret(); boolean forward = context.getSearchForward(); int start = makeMarkAndDotEqual(textArea, forward); - CharSequence findIn = getFindInCharSequence(textArea, start, forward); - if (findIn==null) { + if (findIn == null) { return new SearchResult(); } - int markAllCount = 0; if (context.getMarkAll()) { markAllCount = markAllImpl(textArea, context).getMarkedCount(); } - // Find the next location of the text we're searching for. RegExReplaceInfo info = getRegExReplaceInfo(findIn, context); - // If a match was found, do the replace and return! DocumentRange range = null; - if (info!=null) { - + if (info != null) { // Without this, if JTextArea isn't in focus, selection won't // appear selected. c.setSelectionVisible(true); - int matchStart = info.getStartIndex(); int matchEnd = info.getEndIndex(); if (forward) { @@ -818,12 +756,11 @@ public final class SearchEngine { textArea.setSelectionEnd(matchEnd); String replacement = info.getReplacement(); textArea.replaceSelection(replacement); - // If there is another match, find and select it. int dot = matchStart + replacement.length(); findIn = getFindInCharSequence(textArea, dot, forward); info = getRegExReplaceInfo(findIn, context); - if (info!=null) { + if (info != null) { matchStart = info.getStartIndex(); matchEnd = info.getEndIndex(); if (forward) { @@ -831,58 +768,52 @@ public final class SearchEngine { matchEnd += dot; } range = new DocumentRange(matchStart, matchEnd); - } - else { + } else { range = new DocumentRange(dot, dot); } RSyntaxUtilities.selectAndPossiblyCenter(textArea, range, true); - } - - int count = range!=null ? 1 : 0; + int count = range != null ? 1 : 0; return new SearchResult(range, count, markAllCount); - } - - + /** * Finds the next instance of the text/regular expression specified from - * the caret position. If a match is found, it is replaced with the + * the caret position. If a match is found, it is replaced with the * specified replacement string. * - * @param textArea The text area in which to search. - * @param context What to search for and all search options. + * @param textArea + * The text area in which to search. + * @param context + * What to search for and all search options. * @return The result of the operation. - * @throws PatternSyntaxException If this is a regular expression search - * but the search text is an invalid regular expression. - * @throws IndexOutOfBoundsException If this is a regular expression search - * but the replacement text references an invalid group (less than - * zero or greater than the number of groups matched). + * @throws PatternSyntaxException + * If this is a regular expression search + * but the search text is an invalid regular expression. + * @throws IndexOutOfBoundsException + * If this is a regular expression search + * but the replacement text references an invalid group (less + * than + * zero or greater than the number of groups matched). * @see #replaceAll(RTextArea, SearchContext) * @see #find(JTextArea, SearchContext) */ - public static SearchResult replace(RTextArea textArea, - SearchContext context) { - + public static SearchResult replace(RTextArea textArea, SearchContext context) { // Always clear previous "mark all" highlights if (context.getMarkAll()) { textArea.clearMarkAllHighlights(); } - String toFind = context.getSearchFor(); - if (toFind==null || toFind.length()==0) { + if (toFind == null || toFind.length() == 0) { return new SearchResult(); } - textArea.beginAtomicEdit(); try { - // Regular expression replacements have their own method. if (context.isRegularExpression()) { return regexReplace(textArea, context); } - - // Plain text search. If we find it, replace it! + // Plain text search. If we find it, replace it! // First make the dot and mark equal (get rid of any selection), as // a common use-case is the user will use "Find" to select the text // to replace, then click "Replace" to replace the current @@ -890,123 +821,100 @@ public final class SearchEngine { // the selection, we must remove the selection to work properly. makeMarkAndDotEqual(textArea, context.getSearchForward()); SearchResult res = find(textArea, context); - if (res.wasFound() && !res.getMatchRange().isZeroLength()) { - // Do the replacement String replacement = context.getReplaceWith(); textArea.replaceSelection(replacement); - // Move the caret to the right position. int dot = res.getMatchRange().getStartOffset(); if (context.getSearchForward()) { - int length = replacement==null ? 0 : replacement.length(); + int length = replacement == null ? 0 : replacement.length(); dot += length; } textArea.setCaretPosition(dot); - SearchResult next = find(textArea, context); DocumentRange range; if (next.wasFound()) { range = next.getMatchRange(); - } - else { + } else { range = new DocumentRange(dot, dot); } res.setMatchRange(range); RSyntaxUtilities.selectAndPossiblyCenter(textArea, range, true); - } - return res; - } finally { textArea.endAtomicEdit(); } - } - - + /** * Replaces all instances of the text/regular expression specified in * the specified document with the specified replacement. * - * @param textArea The text area in which to search. - * @param context What to search for and all search options. + * @param textArea + * The text area in which to search. + * @param context + * What to search for and all search options. * @return The result of the operation. - * @throws PatternSyntaxException If this is a regular expression search - * but the replacement text is an invalid regular expression. - * @throws IndexOutOfBoundsException If this is a regular expression search - * but the replacement text references an invalid group (less than - * zero or greater than the number of groups matched). + * @throws PatternSyntaxException + * If this is a regular expression search + * but the replacement text is an invalid regular expression. + * @throws IndexOutOfBoundsException + * If this is a regular expression search + * but the replacement text references an invalid group (less + * than + * zero or greater than the number of groups matched). * @see #replace(RTextArea, SearchContext) * @see #find(JTextArea, SearchContext) */ - public static SearchResult replaceAll(RTextArea textArea, - SearchContext context) { - + public static SearchResult replaceAll(RTextArea textArea, SearchContext context) { // Always clear previous "mark all" highlights if (context.getMarkAll()) { textArea.clearMarkAllHighlights(); } - context.setSearchForward(true); // Replace all always searches forward String toFind = context.getSearchFor(); - if (toFind==null || toFind.length()==0) { + if (toFind == null || toFind.length() == 0) { return new SearchResult(); } - // We call into SearchEngine.replace() multiple times, but we don't // want to perform a "mark all" ever. if (context.getMarkAll()) { context = context.clone(); context.setMarkAll(false); } - SearchResult lastFound = null; int count = 0; textArea.beginAtomicEdit(); try { - int oldOffs = textArea.getCaretPosition(); textArea.setCaretPosition(0); SearchResult res = SearchEngine.replace(textArea, context); - while (res.wasFound()) { - lastFound = res; count++; - // Protect against regexes that can match 0-length strings, - // such as ".*" and "(?=a). See: + // such as ".*" and "(?=a). See: // https://github.com/bobbylight/RSyntaxTextArea/issues/107 if (res.getMatchRange().isZeroLength()) { - if (res.getMatchRange().getStartOffset() == - textArea.getDocument().getLength()) { + if (res.getMatchRange().getStartOffset() == textArea.getDocument().getLength()) { break; - } - else { // End of a line + } else { // End of a line textArea.setCaretPosition(textArea.getCaretPosition() + 1); } } - res = SearchEngine.replace(textArea, context); - } - - if (lastFound==null) { // If nothing was found, don't move the caret + if (lastFound == null) { // If nothing was found, don't move the + // caret textArea.setCaretPosition(oldOffs); lastFound = new SearchResult(); } - } finally { textArea.endAtomicEdit(); } - lastFound.setCount(count); return lastFound; - } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/SearchResult.java b/src/org/fife/ui/rtextarea/SearchResult.java index 1daba18..ad8f486 100644 --- a/src/org/fife/ui/rtextarea/SearchResult.java +++ b/src/org/fife/ui/rtextarea/SearchResult.java @@ -1,16 +1,13 @@ /* * 09/21/2013 - * * SearchResult - The result of a find, replace, or "mark all" operation. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; import org.fife.ui.rsyntaxtextarea.DocumentRange; - /** * The result of a find, replace, or "mark all" operation. * @@ -19,112 +16,110 @@ import org.fife.ui.rsyntaxtextarea.DocumentRange; * @see SearchEngine */ public class SearchResult implements Comparable { - + /** * If a find or replace operation is successful, this will be the range * of text representing the found text (for "find" operations) or the * replacement text inserted (for "replace" operations; for "replace all" - * operations this will be the last replacement region). If no match was + * operations this will be the last replacement region). If no match was * found, or this was a "mark all" operation, this will be * null. */ private DocumentRange matchRange; - /** - * The number of matches found or replaced. For regular "find" and - * "replace" operations, this will be zero or 1. For "replace - * all" operations, this will be the number of replacements. For "mark + * The number of matches found or replaced. For regular "find" and + * "replace" operations, this will be zero or 1. For "replace + * all" operations, this will be the number of replacements. For "mark * all" operations, this should be zero. */ private int count; - /** * The number of instances marked. */ private int markedCount; - - + /** * Constructor; indicates no match is found. */ public SearchResult() { this(null, 0, 0); } - - + /** * Constructor. * - * @param range The selected range of text after the find or replace - * operation. This can be null if the selection was - * not changed. - * @param count The number of matches found or replaced. For regular - * "find" and "replace" operations, this will be zero or - * 1; for "replace all" operations, this will be the - * number of replacements. - * @param markedCount The number of matches marked. If "mark all" is - * disabled, this should be zero. + * @param range + * The selected range of text after the find or replace + * operation. This can be null if the selection was + * not changed. + * @param count + * The number of matches found or replaced. For regular + * "find" and "replace" operations, this will be zero or + * 1; for "replace all" operations, this will be the + * number of replacements. + * @param markedCount + * The number of matches marked. If "mark all" is + * disabled, this should be zero. */ public SearchResult(DocumentRange range, int count, int markedCount) { this.matchRange = range; this.count = count; this.markedCount = markedCount; } - - + /** * Compares this search result to another. * - * @param other Another search result to compare to. + * @param other + * Another search result to compare to. * @return How this result object should be sorted compared to * other. */ @Override public int compareTo(SearchResult other) { - if (other==null) { + if (other == null) { return 1; } - if (other==this) { + if (other == this) { return 0; } int diff = count - other.count; - if (diff!=0) { + if (diff != 0) { return diff; } diff = markedCount - other.markedCount; - if (diff!=0) { + if (diff != 0) { return diff; } - if (matchRange==null) { - return other.matchRange==null ? 0 : -1; + if (matchRange == null) { + return other.matchRange == null ? 0 : -1; } return matchRange.compareTo(other.matchRange); } - - + /** * Returns whether this search result represents the same logical result * as another. * - * @param other Another object (presumably another - * SearchResult). + * @param other + * Another object (presumably another + * SearchResult). */ @Override public boolean equals(Object other) { - if (other==this) { + if (other == this) { return true; } if (other instanceof SearchResult) { - return this.compareTo((SearchResult)other)==0; + return this.compareTo((SearchResult) other) == 0; } return false; } - - + /** - * Returns the number of matches found or replaced. For regular "find" and - * "replace" operations, this will be zero or 1. For "replace - * all" operations, this will be the number of replacements. For "mark + * Returns the number of matches found or replaced. For regular "find" and + * "replace" operations, this will be zero or 1. For "replace + * all" operations, this will be the number of replacements. For "mark * all" operations, this will be zero. * * @return The count. @@ -133,10 +128,9 @@ public class SearchResult implements Comparable { public int getCount() { return count; } - - + /** - * Returns the number of instances marked. If "mark all" was not enabled, + * Returns the number of instances marked. If "mark all" was not enabled, * this will be 0. * * @return The number of instances marked. @@ -145,13 +139,12 @@ public class SearchResult implements Comparable { public int getMarkedCount() { return markedCount; } - - + /** * If a find or replace operation is successful, this will be the range * of text representing the found text (for "find" operations) or the * replacement text inserted (for "replace" operations; for "replace all" - * operations this will be the last replacement region). If no match was + * operations this will be the last replacement region). If no match was * found, or this was a "mark all" operation, this will be * null, since they do not update the editor's selection. * @@ -161,8 +154,7 @@ public class SearchResult implements Comparable { public DocumentRange getMatchRange() { return matchRange; } - - + /** * Overridden simply as a best practice, since {@link #equals(Object)} is * overridden. @@ -172,74 +164,66 @@ public class SearchResult implements Comparable { @Override public int hashCode() { int hash = count + markedCount; - if (matchRange!=null) { + if (matchRange != null) { hash += matchRange.hashCode(); } return hash; } - - + /** - * Sets the number of matches found or replaced. For regular "find" and - * "replace" operations, this should be zero or 1. For + * Sets the number of matches found or replaced. For regular "find" and + * "replace" operations, this should be zero or 1. For * "replace all" operations, this should be the number of replacements. * For "mark all" operations, this should be zero. * - * @param count The count. + * @param count + * The count. * @see #getCount() */ public void setCount(int count) { this.count = count; } - - + /** * Sets the number of marked occurrences found. * - * @param markedCount The number of marked occurrences found. + * @param markedCount + * The number of marked occurrences found. * @see #getMarkedCount() */ public void setMarkedCount(int markedCount) { this.markedCount = markedCount; } - - + /** * Sets the selected range for this search operation. * - * @param range The new selected range. + * @param range + * The new selected range. * @see #getMatchRange() */ public void setMatchRange(DocumentRange range) { this.matchRange = range; } - - + /** - * Returns a string representation of this object. Useful for debugging. + * Returns a string representation of this object. Useful for debugging. * * @return A string representation of this object. */ @Override public String toString() { - return "[SearchResult: " + - "count=" + getCount() + - ", markedCount=" + getMarkedCount() + - ", matchRange=" + getMatchRange() + - "]"; + return "[SearchResult: " + "count=" + getCount() + ", markedCount=" + getMarkedCount() + ", matchRange=" + getMatchRange() + "]"; } - - + /** - * Returns whether anything was found in this search operation. This is + * Returns whether anything was found in this search operation. This is * shorthand for getCount()>0. * * @return Whether anything was found in this search operation. * @see #getCount() */ public boolean wasFound() { - return getCount()>0; + return getCount() > 0; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/SmartHighlightPainter.java b/src/org/fife/ui/rtextarea/SmartHighlightPainter.java index e0237ee..e604937 100644 --- a/src/org/fife/ui/rtextarea/SmartHighlightPainter.java +++ b/src/org/fife/ui/rtextarea/SmartHighlightPainter.java @@ -1,10 +1,8 @@ /* * 10/01/2009 - * * SmartHighlightPainter.java - A highlight painter whose rendered highlights * don't "grow" when the user appends text to the end of them. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -20,47 +18,44 @@ import javax.swing.text.JTextComponent; import javax.swing.text.Position; import javax.swing.text.View; - /** - * A "smart" highlight painter designed for use in RSyntaxTextArea. Adds the + * A "smart" highlight painter designed for use in RSyntaxTextArea. Adds the * following features: * *

      - *
    • Rendered highlights don't "grow" when users append text to the "end" - * of them. This is implemented by assuming that the highlights - * themselves specify their end offset as one offset "too short". This - * behavior is baked into various RSTA highlights (mark all, mark - * occurrences, etc.). - *
    • Ability to paint a border line around highlights. + *
    • Rendered highlights don't "grow" when users append text to the "end" + * of them. This is implemented by assuming that the highlights + * themselves specify their end offset as one offset "too short". This + * behavior is baked into various RSTA highlights (mark all, mark + * occurrences, etc.). + *
    • Ability to paint a border line around highlights. *
    * * @author Robert Futrell * @version 1.0 */ public class SmartHighlightPainter extends ChangeableHighlightPainter { - + private Color borderColor; private boolean paintBorder; - - + /** * Creates a highlight painter that defaults to blue. */ public SmartHighlightPainter() { super(Color.BLUE); } - - + /** * Constructor. * - * @param paint The color or paint to use for this painter. + * @param paint + * The color or paint to use for this painter. */ public SmartHighlightPainter(Paint paint) { super(paint); } - - + /** * Returns whether a border is painted around marked occurrences. * @@ -71,35 +66,29 @@ public class SmartHighlightPainter extends ChangeableHighlightPainter { public boolean getPaintBorder() { return paintBorder; } - - + /** * {@inheritDoc} */ @Override - public Shape paintLayer(Graphics g, int p0, int p1, Shape viewBounds, - JTextComponent c, View view) { - - g.setColor((Color)getPaint()); - + public Shape paintLayer(Graphics g, int p0, int p1, Shape viewBounds, JTextComponent c, View view) { + g.setColor((Color) getPaint()); // This special case isn't needed for most standard Swing Views (which // always return a width of 1 for modelToView() calls), but it is // needed for RSTA views, which actually return the width of chars for - // modelToView calls. But this should be faster anyway, as we + // modelToView calls. But this should be faster anyway, as we // short-circuit and do only one modelToView() for one offset. - if (p0==p1) { + if (p0 == p1) { try { - Shape s = view.modelToView(p0, viewBounds, - Position.Bias.Forward); + Shape s = view.modelToView(p0, viewBounds, Position.Bias.Forward); Rectangle r = s.getBounds(); - g.drawLine(r.x, r.y, r.x, r.y+r.height); + g.drawLine(r.x, r.y, r.x, r.y + r.height); return r; } catch (BadLocationException ble) { ble.printStackTrace(); // Never happens return null; } } - if (p0 == view.getStartOffset() && p1 == view.getEndOffset()) { // Contained in view, can just use bounds. Rectangle alloc; @@ -111,28 +100,23 @@ public class SmartHighlightPainter extends ChangeableHighlightPainter { g.fillRect(alloc.x, alloc.y, alloc.width, alloc.height); return alloc; } - // Should only render part of View. try { // --- determine locations --- - Shape shape = view.modelToView(p0, Position.Bias.Forward, p1, - Position.Bias.Backward, viewBounds); - Rectangle r = shape instanceof Rectangle ? (Rectangle) shape : - shape.getBounds(); + Shape shape = view.modelToView(p0, Position.Bias.Forward, p1, Position.Bias.Backward, viewBounds); + Rectangle r = shape instanceof Rectangle ? (Rectangle) shape : shape.getBounds(); g.fillRect(r.x, r.y, r.width, r.height); if (paintBorder) { g.setColor(borderColor); - g.drawRect(r.x,r.y, r.width-1,r.height-1); + g.drawRect(r.x, r.y, r.width - 1, r.height - 1); } return r; } catch (BadLocationException e) { // Never happens e.printStackTrace(); return null; } - } - - + /** * {@inheritDoc} */ @@ -140,21 +124,19 @@ public class SmartHighlightPainter extends ChangeableHighlightPainter { public void setPaint(Paint paint) { super.setPaint(paint); if (paint instanceof Color) { - borderColor = ((Color)paint).darker(); + borderColor = ((Color) paint).darker(); } } - - + /** * Toggles whether a border is painted around highlights. * - * @param paint Whether to paint a border. + * @param paint + * Whether to paint a border. * @see #getPaintBorder() * @see #setPaint(Paint) */ public void setPaintBorder(boolean paint) { this.paintBorder = paint; } - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/ToolTipSupplier.java b/src/org/fife/ui/rtextarea/ToolTipSupplier.java index e223286..1b72a3a 100644 --- a/src/org/fife/ui/rtextarea/ToolTipSupplier.java +++ b/src/org/fife/ui/rtextarea/ToolTipSupplier.java @@ -1,22 +1,19 @@ /* * 02/05/2009 - * * ToolTipSupplier.java - Can provide tool tips to RTextAreas without the need * for subclassing. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; import java.awt.event.MouseEvent; - /** * A ToolTipSupplier can create tool tip text for an RTextArea - * on its behalf. A text area will check its ToolTipSupplier for a + * on its behalf. A text area will check its ToolTipSupplier for a * tool tip before calling the super class's implementation of - * {@link RTextArea#getToolTipText()}. This allows + * {@link RTextArea#getToolTipText()}. This allows * applications to intercept tool tip events and provide the text for a tool * tip without subclassing RTextArea. * @@ -24,16 +21,15 @@ import java.awt.event.MouseEvent; * @version 1.0 */ public interface ToolTipSupplier { - - + /** * Returns the tool tip text to display for a given mouse event. * - * @param textArea The text area. - * @param e The mouse event. + * @param textArea + * The text area. + * @param e + * The mouse event. * @return The tool tip, or null if none. */ String getToolTipText(RTextArea textArea, MouseEvent e); - - -} \ No newline at end of file +} diff --git a/src/org/fife/ui/rtextarea/VolatileImageBackgroundPainterStrategy.java b/src/org/fife/ui/rtextarea/VolatileImageBackgroundPainterStrategy.java index 5b0638b..abace2f 100644 --- a/src/org/fife/ui/rtextarea/VolatileImageBackgroundPainterStrategy.java +++ b/src/org/fife/ui/rtextarea/VolatileImageBackgroundPainterStrategy.java @@ -1,10 +1,8 @@ /* * 01/22/2005 - * * VolatileImageBackgroundPainterStrategy.java - Renders an RTextAreaBase's * background as an image using VolatileImages. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rtextarea; @@ -13,14 +11,15 @@ import java.awt.Graphics; import java.awt.Image; import java.awt.image.VolatileImage; - /** * A strategy for painting the background of an RTextAreaBase - * as an image. The image is always stretched to completely fill the - * RTextAreaBase.

    + * as an image. The image is always stretched to completely fill the + * RTextAreaBase. + *

    * * A java.awt.image.VolatileImage is used for rendering; - * theoretically, this should be the best image format for performance.

    + * theoretically, this should be the best image format for performance. + *

    * * You can set the scaling hint used when stretching/skewing the image * to fit in the RTextAreaBase's background via the @@ -34,63 +33,65 @@ import java.awt.image.VolatileImage; * @see org.fife.ui.rtextarea.ImageBackgroundPainterStrategy * @see org.fife.ui.rtextarea.BufferedImageBackgroundPainterStrategy */ -public class VolatileImageBackgroundPainterStrategy - extends ImageBackgroundPainterStrategy { - +public class VolatileImageBackgroundPainterStrategy extends ImageBackgroundPainterStrategy { + private VolatileImage bgImage; - - + /** * Constructor. * - * @param ta The text area whose background we'll be painting. + * @param ta + * The text area whose background we'll be painting. */ public VolatileImageBackgroundPainterStrategy(RTextAreaBase ta) { super(ta); } - - + /** - * Paints the image at the specified location. This method assumes + * Paints the image at the specified location. This method assumes * scaling has already been done, and simply paints the background * image "as-is." * - * @param g The graphics context. - * @param x The x-coordinate at which to paint. - * @param y The y-coordinate at which to paint. + * @param g + * The graphics context. + * @param x + * The x-coordinate at which to paint. + * @param y + * The y-coordinate at which to paint. */ @Override protected void paintImage(Graphics g, int x, int y) { if (bgImage != null) { do { - int rc = bgImage.validate(null);//getGraphicsConfiguration()); - if (rc==VolatileImage.IMAGE_RESTORED) { - // FIXME: If the image needs to be restored are its width - // and height still valid?? If not, we'll need to cache + int rc = bgImage.validate(null);// getGraphicsConfiguration()); + if (rc == VolatileImage.IMAGE_RESTORED) { + // FIXME: If the image needs to be restored are its width + // and height still valid?? If not, we'll need to cache // these values... - renderImage(bgImage.getWidth(), bgImage.getHeight(), - getScalingHint()); + renderImage(bgImage.getWidth(), bgImage.getHeight(), getScalingHint()); } - g.drawImage(bgImage, x,y, null); + g.drawImage(bgImage, x, y, null); } while (bgImage.contentsLost()); } } - - + /** * Renders the image at the proper size into bgImage. * This method assumes that bgImage is not * null. * - * @param width The width of the volatile image to render into. - * @param height The height of the volatile image to render into. - * @param hint The scaling hint to use. + * @param width + * The width of the volatile image to render into. + * @param height + * The height of the volatile image to render into. + * @param hint + * The scaling hint to use. */ private void renderImage(int width, int height, int hint) { Image master = getMasterImage(); - if (master!=null) { + if (master != null) { do { - Image i = master.getScaledInstance(width,height, hint); + Image i = master.getScaledInstance(width, height, hint); tracker.addImage(i, 1); try { tracker.waitForID(1); @@ -101,7 +102,7 @@ public class VolatileImageBackgroundPainterStrategy } finally { tracker.removeImage(i, 1); } - bgImage.getGraphics().drawImage(i, 0,0, null); + bgImage.getGraphics().drawImage(i, 0, 0, null); tracker.addImage(bgImage, 0); try { tracker.waitForID(0); @@ -118,22 +119,22 @@ public class VolatileImageBackgroundPainterStrategy bgImage = null; } } - - + /** * Rescales the displayed image to be the specified size. * - * @param width The new width of the image. - * @param height The new height of the image. - * @param hint The scaling hint to use. + * @param width + * The new width of the image. + * @param height + * The new height of the image. + * @param hint + * The scaling hint to use. */ @Override protected void rescaleImage(int width, int height, int hint) { bgImage = getRTextAreaBase().createVolatileImage(width, height); - if (bgImage!=null) { + if (bgImage != null) { renderImage(width, height, hint); } } - - -} \ No newline at end of file +} diff --git a/src/org/fife/util/DynamicIntArray.java b/src/org/fife/util/DynamicIntArray.java index f654edd..176b080 100644 --- a/src/org/fife/util/DynamicIntArray.java +++ b/src/org/fife/util/DynamicIntArray.java @@ -1,10 +1,8 @@ /* * 03/26/2004 - * * DynamicIntArray.java - Similar to an ArrayList, but holds ints instead * of Objects. - * - * This library is distributed under a modified BSD license. See the included + * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.util; @@ -12,180 +10,183 @@ package org.fife.util; import java.io.Serializable; import java.util.Arrays; - /** * Similar to a java.util.ArrayList, but specifically for - * ints. This is basically an array of integers that resizes + * ints. This is basically an array of integers that resizes * itself (if necessary) when adding new elements. * * @author Robert Futrell * @version 0.8 */ public class DynamicIntArray implements Serializable { - + /** * The actual data. */ private int[] data; - /** - * The number of values in the array. Note that this is NOT the + * The number of values in the array. Note that this is NOT the * capacity of the array; rather, size <= capacity. */ private int size; - - + /** * Constructs a new array object with an initial capacity of 10. */ public DynamicIntArray() { this(10); } - - + /** * Constructs a new array object with a given initial capacity. * - * @param initialCapacity The initial capacity. - * @throws IllegalArgumentException If initialCapacity is - * negative. + * @param initialCapacity + * The initial capacity. + * @throws IllegalArgumentException + * If initialCapacity is + * negative. */ public DynamicIntArray(int initialCapacity) { - if (initialCapacity<0) { - throw new IllegalArgumentException("Illegal initialCapacity: " + - initialCapacity); + if (initialCapacity < 0) { + throw new IllegalArgumentException("Illegal initialCapacity: " + initialCapacity); } data = new int[initialCapacity]; size = 0; } - - + /** - * Constructs a new array object from the given int array. The resulting + * Constructs a new array object from the given int array. The resulting * DynamicIntArray will have an initial capacity of 110% * the size of the array. * - * @param intArray Initial data for the array object. - * @throws NullPointerException If intArray is - * null. + * @param intArray + * Initial data for the array object. + * @throws NullPointerException + * If intArray is + * null. */ public DynamicIntArray(int[] intArray) { size = intArray.length; - int capacity = (int)Math.min(size*110L/100, Integer.MAX_VALUE); + int capacity = (int) Math.min(size * 110L / 100, Integer.MAX_VALUE); data = new int[capacity]; - System.arraycopy(intArray,0, data,0, size); // source, dest, length. + System.arraycopy(intArray, 0, data, 0, size); // source, dest, length. } - - + /** * Appends the specified int to the end of this array. * - * @param value The int to be appended to this array. + * @param value + * The int to be appended to this array. */ public void add(int value) { ensureCapacity(size + 1); data[size++] = value; } - - + /** * Inserts all ints in the specified array into this array - * object at the specified location. Shifts the int + * object at the specified location. Shifts the int * currently at that position (if any) and any subsequent * ints to the right (adds one to their indices). * - * @param index The index at which the specified integer is to be - * inserted. - * @param intArray The array of ints to insert. - * @throws IndexOutOfBoundsException If index is less than - * zero or greater than getSize(). - * @throws NullPointerException If intArray is - * null. + * @param index + * The index at which the specified integer is to be + * inserted. + * @param intArray + * The array of ints to insert. + * @throws IndexOutOfBoundsException + * If index is less than + * zero or greater than getSize(). + * @throws NullPointerException + * If intArray is + * null. */ public void add(int index, int[] intArray) { - if (index>size) { + if (index > size) { throwException2(index); } int addCount = intArray.length; - ensureCapacity(size+addCount); + ensureCapacity(size + addCount); int moveCount = size - index; - if (moveCount>0) { - System.arraycopy(data,index, data,index+addCount, moveCount); + if (moveCount > 0) { + System.arraycopy(data, index, data, index + addCount, moveCount); } - System.arraycopy(intArray,0, data,index, addCount); + System.arraycopy(intArray, 0, data, index, addCount); size += addCount; } - - + /** * Inserts the specified int at the specified position in * this array. Shifts the int currently at that position (if * any) and any subsequent ints to the right (adds one to * their indices). * - * @param index The index at which the specified integer is to be - * inserted. - * @param value The int to be inserted. - * @throws IndexOutOfBoundsException If index is less than - * zero or greater than getSize(). + * @param index + * The index at which the specified integer is to be + * inserted. + * @param value + * The int to be inserted. + * @throws IndexOutOfBoundsException + * If index is less than + * zero or greater than getSize(). */ public void add(int index, int value) { - if (index>size) { + if (index > size) { throwException2(index); } - ensureCapacity(size+1); - System.arraycopy(data,index, data,index+1, size-index); + ensureCapacity(size + 1); + System.arraycopy(data, index, data, index + 1, size - index); data[index] = value; size++; } - - + /** - * Removes all values from this array object. Capacity will remain the + * Removes all values from this array object. Capacity will remain the * same. */ public void clear() { size = 0; } - - + /** - * Returns whether this array contains a given integer. This method + * Returns whether this array contains a given integer. This method * performs a linear search, so it is not optimized for performance. * - * @param integer The int for which to search. + * @param integer + * The int for which to search. * @return Whether the given integer is contained in this array. */ public boolean contains(int integer) { - for (int i=0; iDynamicIntArray instance can hold - * at least the number of elements specified. If it can't, then the + * at least the number of elements specified. If it can't, then the * capacity is increased. * - * @param minCapacity The desired minimum capacity. + * @param minCapacity + * The desired minimum capacity. */ private void ensureCapacity(int minCapacity) { int oldCapacity = data.length; @@ -193,58 +194,58 @@ public class DynamicIntArray implements Serializable { int[] oldData = data; // Ensures we don't just keep increasing capacity by some small // number like 1... - int newCapacity = (oldCapacity * 3)/2 + 1; + int newCapacity = (oldCapacity * 3) / 2 + 1; if (newCapacity < minCapacity) { newCapacity = minCapacity; } data = new int[newCapacity]; - System.arraycopy(oldData,0, data,0, size); + System.arraycopy(oldData, 0, data, 0, size); } } - - + /** * Sets the value of all entries in this array to the specified value. * - * @param value The new value for all elements in the array. + * @param value + * The new value for all elements in the array. */ public void fill(int value) { Arrays.fill(data, value); } - - + /** * Returns the int at the specified position in this array * object. * - * @param index The index of the int to return. + * @param index + * The index of the int to return. * @return The int at the specified position in this array. - * @throws IndexOutOfBoundsException If index is less than - * zero or greater than or equal to getSize(). + * @throws IndexOutOfBoundsException + * If index is less than + * zero or greater than or equal to getSize(). */ public int get(int index) { // Small enough to be inlined, and throwException() is rarely called. - if (index>=size) { + if (index >= size) { throwException(index); } return data[index]; } - - + /** * Returns the int at the specified position in this array - * object, without doing any bounds checking. You really should use + * object, without doing any bounds checking. You really should use * {@link #get(int)} instead of this method. * - * @param index The index of the int to return. + * @param index + * The index of the int to return. * @return The int at the specified position in this array. */ public int getUnsafe(int index) { // Small enough to be inlined. return data[index]; } - - + /** * Returns the number of ints in this array object. * @@ -253,119 +254,123 @@ public class DynamicIntArray implements Serializable { public int getSize() { return size; } - - + /** * Increments all values in the array in the specified range. * - * @param from The range start offset (inclusive). - * @param to The range end offset (exclusive). + * @param from + * The range start offset (inclusive). + * @param to + * The range end offset (exclusive). * @see #decrement(int, int) */ public void increment(int from, int to) { - for (int i=from; isize) { + if (offs > size) { throwException2(offs); } - ensureCapacity(size+count); - System.arraycopy(data,offs, data,offs+count, size-offs); - if (value!=0) { - Arrays.fill(data, offs, offs+count, value); + ensureCapacity(size + count); + System.arraycopy(data, offs, data, offs + count, size - offs); + if (value != 0) { + Arrays.fill(data, offs, offs + count, value); } size += count; } - - + /** * Returns whether or not this array object is empty. * * @return Whether or not this array object contains no elements. */ public boolean isEmpty() { - return size==0; + return size == 0; } - - + /** * Removes the int at the specified location from this array * object. * - * @param index The index of the int to remove. - * @throws IndexOutOfBoundsException If index is less than - * zero or greater than or equal to getSize(). + * @param index + * The index of the int to remove. + * @throws IndexOutOfBoundsException + * If index is less than + * zero or greater than or equal to getSize(). */ public void remove(int index) { - if (index>=size) { + if (index >= size) { throwException(index); } int toMove = size - index - 1; - if (toMove>0) { - System.arraycopy(data,index+1, data,index, toMove); + if (toMove > 0) { + System.arraycopy(data, index + 1, data, index, toMove); } --size; } - - + /** * Removes the ints in the specified range from this array * object. * - * @param fromIndex The index of the first int to remove. - * @param toIndex The index AFTER the last int to remove. - * @throws IndexOutOfBoundsException If either of fromIndex - * or toIndex is less than zero or greater than or - * equal to getSize(). + * @param fromIndex + * The index of the first int to remove. + * @param toIndex + * The index AFTER the last int to remove. + * @throws IndexOutOfBoundsException + * If either of fromIndex + * or toIndex is less than zero or greater than or + * equal to getSize(). */ public void removeRange(int fromIndex, int toIndex) { - if (fromIndex>=size || toIndex>size) { + if (fromIndex >= size || toIndex > size) { throwException3(fromIndex, toIndex); } int moveCount = size - toIndex; - System.arraycopy(data,toIndex, data,fromIndex, moveCount); + System.arraycopy(data, toIndex, data, fromIndex, moveCount); size -= (toIndex - fromIndex); } - - + /** * Sets the int value at the specified position in this * array object. * - * @param index The index of the int to set - * @param value The value to set it to. - * @throws IndexOutOfBoundsException If index is less than - * zero or greater than or equal to getSize(). + * @param index + * The index of the int to set + * @param value + * The value to set it to. + * @throws IndexOutOfBoundsException + * If index is less than + * zero or greater than or equal to getSize(). */ public void set(int index, int value) { // Small enough to be inlined, and throwException() is rarely called. - if (index>=size) { + if (index >= size) { throwException(index); } data[index] = value; } - - + /** * Sets the int value at the specified position in this - * array object, without doing any bounds checking. You should use + * array object, without doing any bounds checking. You should use * {@link #set(int, int)} instead of this method. * - * @param index The index of the int to set - * @param value The value to set it to. + * @param index + * The index of the int to set + * @param value + * The value to set it to. */ public void setUnsafe(int index, int value) { // Small enough to be inlined. data[index] = value; } - - + /** - * Throws an exception. This method isolates error-handling code from + * Throws an exception. This method isolates error-handling code from * the error-checking code, so that callers (e.g. {@link #get} and * {@link #set}) can be both small enough to be inlined, as well as * not usually make any expensive method calls (since their callers will @@ -374,17 +379,17 @@ public class DynamicIntArray implements Serializable { * See * this Sun bug report for more information. * - * @param index The invalid index. - * @throws IndexOutOfBoundsException Always. + * @param index + * The invalid index. + * @throws IndexOutOfBoundsException + * Always. */ private void throwException(int index) { - throw new IndexOutOfBoundsException("Index " + index + - " not in valid range [0-" + (size-1) + "]"); + throw new IndexOutOfBoundsException("Index " + index + " not in valid range [0-" + (size - 1) + "]"); } - - + /** - * Throws an exception. This method isolates error-handling code from + * Throws an exception. This method isolates error-handling code from * the error-checking code, so that callers can be both small enough to be * inlined, as well as not usually make any expensive method calls (since * their callers will usually not pass illegal arguments to them). @@ -392,17 +397,17 @@ public class DynamicIntArray implements Serializable { * See * this Sun bug report for more information. * - * @param index The invalid index. - * @throws IndexOutOfBoundsException Always. + * @param index + * The invalid index. + * @throws IndexOutOfBoundsException + * Always. */ private void throwException2(int index) { - throw new IndexOutOfBoundsException("Index " + index + - ", not in range [0-" + size + "]"); + throw new IndexOutOfBoundsException("Index " + index + ", not in range [0-" + size + "]"); } - - + /** - * Throws an exception. This method isolates error-handling code from + * Throws an exception. This method isolates error-handling code from * the error-checking code, so that callers can be both small enough to be * inlined, as well as not usually make any expensive method calls (since * their callers will usually not pass illegal arguments to them). @@ -410,14 +415,12 @@ public class DynamicIntArray implements Serializable { * See * this Sun bug report for more information. * - * @param index The invalid index. - * @throws IndexOutOfBoundsException Always. + * @param index + * The invalid index. + * @throws IndexOutOfBoundsException + * Always. */ private void throwException3(int fromIndex, int toIndex) { - throw new IndexOutOfBoundsException("Index range [" + - fromIndex + ", " + toIndex + - "] not in valid range [0-" + (size-1) + "]"); + throw new IndexOutOfBoundsException("Index range [" + fromIndex + ", " + toIndex + "] not in valid range [0-" + (size - 1) + "]"); } - - -} \ No newline at end of file +}